本答案对应课程为:点我自动跳转查看
本课程起止时间为:2021-02-28到2021-06-30
本篇答案更新状态:已完结

第1周 类和对象 类和对象测验题

1、 问题:关于面向对象的程序设计方法,下列说法正确的是______。
选项:
A:"封装性"指的是将不同类型的相关数据组合在一起,作为一个整体进行处理
B:"多态性"指的是对象的状态会根据运行时要求自动变化
C:基类的私有成员在派生类的对象中不可访问,也不占内存空间
D:在面向对象的程序设计中,结构化程序设计方法仍有着重要作用
答案: 【在面向对象的程序设计中,结构化程序设计方法仍有着重要作用

2、 问题:在C++中,实现封装性需借助______。
选项:
A:枚举
B:类
C:数组
D:函数
答案: 【

3、 问题:下列关于类和对象的叙述中,错误的是______。
选项:
A:一个类只能有一个对象
B:对象是类的具体实例
C:类是对某一类对象的抽象
D:类和对象是一种数据类型与变量的关系
答案: 【一个类只能有一个对象

4、 问题:以下关键字不能用来声明类的访问权限的是______。
选项:
A:public
B:static
C:protected
D:private
答案: 【static

5、 问题:有如下类声明:class Foo{int bar;};则Foo类的成员bar是______。
选项:
A:公有数据成员
B:公有成员函数
C:私有数据成员
D:私有成员函数
答案: 【私有数据成员

6、 问题:在C++面向对象程序设计框架中,______是程序的基本组成单元。
答案: 【(以下答案任选其一都对)类;
class

7、 问题:在面向对象的程序设计中,将数据和处理数据的操作封装成一个整体就定义了一种事物的类型,称作"类"。类是一种抽象的概念,属于该类的一个实例叫做"______"。
答案: 【对象

8、 问题:与指针成员访问表达式p->name等价的表达式是______。
答案: 【(*p).name

9、 问题:有如下类声明:class MyClass {               int i;   private :  int j;   protected :int k;   public :   int m,n;};其中,私有成员的数量为______。
答案: 【(以下答案任选其一都对)2;
两个;
2个

【作业】第1周 类和对象 类和对象作业

1、 问题:设计一个 Rectangle 类数据成员包含height和width;成员函数包含:void set(double w, double h); // 设置边长 double getWidth();   // 取矩形宽double getHeight();        // 取矩形高 double area();    // 计算矩形面积    double perimeter();        // 计算矩形周长
评分规则: 【 正确定义数据成员
正确声明各成员函数
正确定义各成员函数

2、 问题:作业2 分析并设计一个立方体类CCube:1.描述一个立方体,可以用哪些数据来确定?2.对立方体可以做哪些操作?3.用C++的类来封装立方体的数据和操作,并实现各操作;4.对立方体类进行测试。
评分规则: 【 完成立方体类CCube的框架
实现立方体类CCube的各成员函数
完成main函数对立方体类CCube进行测试

3、 问题:某公司决定为员工普涨7.6%的工资,同时按新标准补发前6个月工资,写一个程序输入员工去年的年薪,输出应补发的金额、新的年薪。请用面向对象程序设计方法解决该问题。思考:(1)如果用结构化程序设计方法如何实现?(2)借此对面向对象程序设计方法和结构化程序设计方法进行比较。
评分规则: 【 完成工资涨薪类的框架
实现工资涨薪类的成员函数
完成对工资涨薪类的测试

【作业】第2周 构造函数和析构函数 构造函数和析构函数作业

1、 问题:设计一个动态整型数组类 CArray ,并对CArray类进行测试数据成员:int *vec;           // 动态数组指针int  size;       //动态数组规模成员函数:publicCArray(int n);              // 构造函数,构造规模为n的数组~CArray();    //析构函数,释放动态数组空间                      int length();         // 取数组元素个数int get(int i);        // 取数组第i个元素void set(int i, int value);    // 设置数组第i个元素int getMax();     // 取数组最大元素int getMin();      // 取数组最大元素          void print();    //输出动态数组的所有元素
评分规则: 【 头文件和代码框架
正确定义数据成员
正确声明成员函数
正确定义成员函数

2、 问题:设计一个时间Time类,并对Time类进行测试数据成员:小时、分钟、秒操作:构造函数、设置新时间、获取当前时间、时间走1秒、时间走k秒、输出当前时间等
评分规则: 【 时间类的框架设计
时间类的成员函数实现
时间类的测试代码,即main函数

3、 问题:设计一个手机类MobilePhone类,并对MobilePhone类进行测试。要求:1)分析手机类MobilePhone的数据成员可以有哪些?2)分析手机类MobilePhone的操作(成员函数)可以有哪些?(要有构造函数)3)设计出手机类MobilePhone;4)实现手机类MobilePhone的成员函数;5)对手机类MobilePhone进行测试,即设计main函数。
评分规则: 【 设计手机类MobilePhone的框架
实现手机类MobilePhone的成员函数
对手机类MobilePhone进行测试

第2周 构造函数和析构函数 构造函数与析构函数测试

1、 问题:有以下类定义class MyClass{public:MyClass(){cout<<1;}};则执行语句MyClass a,b[2],*p[2];后,程序的输出结果是______。   A:11   B:111   C:1111   D:11111
选项:
A:11
B:111
C:1111
D:11111
答案: 【111

2、 问题:关于类的概念下列说法正确的是______。
选项:
A:类和结构体是同一个概念
B:类的数据成员外界都不可访问
C:类可以没有显式的构造函数
D:类一定要有显式的析构函数
答案: 【类可以没有显式的构造函数

3、 问题:有如下两个类的定义class AA{};class BB{AA v1,v2;BB v3;int v4;};其中有一个成员变量的定义是错误的,这个变量是_______。
选项:
A:v1
B:v2
C:v3
D:v4
答案: 【v3

4、 问题: Sample是一个类, 定义如下class Sample{       int val;public:       Sample(int v):val(v){}};执行下面语句后,调用Sample类的构造函数的次数是_。Sample  a[3],*p=new Sample;
选项:
A:0
B:2
C:3
D:4
答案: 【4

5、 问题:有如下程序:class Name{       char name;public:       Name( ):name(NULL){}       Name(char fname)//将fname所指字符串拷贝到name所指向的存储空间       {              name=____ ;              strcpy(name,fname);       }       ~Name(){delete[]name;}};横线处应填写的表达式是______。
选项:
A:new char[strlen(fname)+1] 
B:char[strlen(fname)+1]
C:char[strlen(fname)] 
D:new char[sizeof(fname)]
答案: 【new char[strlen(fname)+1] 

6、 问题:有如下定义:class MA{   int value;public:   MA(int n=0):value(n){}};MA *ta,tb;其中MA类的对象名标识符是______。
答案: 【tb

7、 问题:己知下列程序的输出结果是42,请将画线处缺失的部分补充完整。#include<iostream>using namespace std;class Foo{    int value;public:    Foo():value(0){}    void setValue(int value)    {______=value;}    //给Foo的数据成员value赋值    void print(){cout<<value;}};int main(){    Foo f;    f.setValue(42);    f.print();    return 0;}
答案: 【(以下答案任选其一都对)this->value;
Foo::value;
(*this).value

8、 问题:1、插入排序算法的主要思想是:每次从未排序序列中取出的一个数据,插入到已排序序列中的正确位置。InsertSort类的成员函数sort()实现了插入排序算法。请将画线处缺失的部分补充完整。class InsertSort{public:    InsertSort(inta0,int n0):a(a0),n(n0){} //参数a0是某数组首地址,n是数组元素个数void sort(){//此函数假设已排序序列初始化状态只包含a[0],未排序序列初始为a[1] …a[n-1]     for(int i=1;i<n;++i){         int t=a[i];         int j;         for(______;j>0;–j){             if(t>=a[j-1])break;             a[j]=a[j-1];         }         a[j]=t;    }}protected:    inta,n; //指针a用于存放数组首地址,n用于存放数组元素个数};
答案: 【j=i

【作业】第3周 堆与拷贝构造函数 拷贝构造函数作业

1、 问题:在上一次作业的时间类Time中,添加拷贝构造函数,并对拷贝构造函数进行测试。数据成员:int hour,minute,second;           // 时,分,秒成员函数:publicTime(int h,int m,int s);              // 构造函数,构造时间的时,分,秒Time(Time&t);         //拷贝构造函数~Time();    //析构函数                     void set(int h,int m,int s);    // 设置新的时间int getHour();     // 取小时int getMinute();      // 取分钟          int getSecond(int i);        // 取秒数void next();  //时间走1秒void print();    //输出当前时间
评分规则: 【 时间类Time的框架
时间类Time的拷贝构造函数实现
时间类Time的拷贝构造函数的测试

2、 问题:在上一次作业动态整型数组类 CArray 中,添加深拷贝构造函数设计一个动态整型数组类 CArray ,并对CArray类进行测试数据成员:int *vec;           // 动态数组指针int  size;       //动态数组规模成员函数:publicCArray(int n);              // 构造函数,构造规模为n的数组CArray (CArray &arr);   //拷贝构造函数~CArray();    //析构函数,释放动态数组空间                      int length();         // 取数组元素个数int get(int i);        // 取数组第i个元素void set(int i, int value);    // 设置数组第i个元素int getMax();     // 取数组最大元素int getMin();      // 取数组最大元素          void print();    //输出动态数组的所有元素
评分规则: 【 带拷贝构造函数的动态整型数组类 CArray 的框架
带拷贝构造函数的动态整型数组类 CArray 的成员函数实现
带拷贝构造函数的动态整型数组类 CArray 的测试

第3周 堆与拷贝构造函数 拷贝构造函数测试

1、 问题:有如下程序:#include<iostream>using namespace std;class A { public:       A(int i=0):r(i){}       A(A&a){ r=a.r;cout<<1;}       void print() {cout<<r;}private:       int r; };void fun(A a){       a.print();}A fun(){       A a(2);       return a;}int main(){       A a1(2),a2(a1),a3,a4;       a3=fun();       a4=a1;       fun(A(6));       cout<<endl;       return 0;}运行此程序时,类A的拷贝构造函数执行的次数是_____。
选项:
A:0
B:2
C:3
D:4
答案: 【3

2、 问题:有如下程序#include<iostream>using namespace std;class MyClass{public:    MyClass(int x):val(x){}    void print()const{cout<<"const:val="<<val<<"\t";}    void print(){cout<<"val="<<val<<"\t";}private:    int val;};int main(){    const MyClass obj1(10);    MyClass obj2(20);    obj1.print();    obj2.print();    return 0;}   程序的输出结果是__
选项:
A:val=10    const :val=20
B:const :val=10    const :val=20
C:const :val=10    val=20
D:val=10    val=20
答案: 【const :val=10    val=20

3、 问题:拷贝构造函数使用的场合有___。

本门课程剩余章节答案为付费内容
本文章不含期末不含主观题!!
本文章不含期末不含主观题!!
支付后可长期查看
有疑问请添加客服QQ 2356025045反馈
如遇卡顿看不了请换个浏览器即可打开
请看清楚了再购买哦,电子资源购买后不支持退款哦

   

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注