MOOC C++程序设计-淮阴工学院 中国大学慕课答案.pdf
《MOOC C++程序设计-淮阴工学院 中国大学慕课答案.pdf》由会员分享,可在线阅读,更多相关《MOOC C++程序设计-淮阴工学院 中国大学慕课答案.pdf(26页珍藏版)》请在文库网上搜索。
1、MOOC C+程序设计程序设计-淮阴工学院淮阴工学院 中国大学慕课答案中国大学慕课答案11-1 随堂测验随堂测验1、问题:C+语言是从早期的 C语言逐渐发展演变而来的,与 C 语言相比,它在求解问题方法上进行的?最大改进是(?)?选项:A、面向过程B、面向对象?C、安全性?D、复用性正确答案:【面向对象?】2、问题:下列标识符中都是合法的是(?)?选项:A、_key,?example,?a_bB、5ap,?test1,?_3a?C、bcp,?mail,?_c_d?D、INL,?_paper,?union正确答案:【_key,?example,?a_b】3、问题:class Animalpubl
2、ic:void sleep(double h=1)hour+=h;private:double distance;double hour;小明将类中成员函数进行类外定义如下,请问有几处错误?class Animalpublic:void sleep(double h=1);private:double distance;double hour;void sleep(double h=1)hour+=h;选项:A、1B、2C、3D、4正确答案:【2】4、问题:类的成员函数只能在类内定义。选项:A、正确B、错误正确答案:【错误】5、问题:void Account:SetAccount(int d,
3、double m)id=d;money=m;相当于:void Account:SetAccount(int d,double m)this-id=d;this-money=m;选项:A、正确B、错误正确答案:【正确】11-2 对象测验对象测验1、问题:数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体也就是(?)。?选项:A、类B、对象C、函数体D、数据块正确答案:【类】2、问题:类的实例化是指(?)。?选项:A、定义类?B、创建类的对象C、指明具体类D、调用类的成员正确答案:【创建类的对象】3、问题:以下创建对象的方法中,哪个是错误的?选项:A、Tdate date1
4、,date2,date3;B、class Tdate/成员函数实现/数据成员定义 date1,date2;C、class/成员函数实现/数据成员定义 date1,date2;D、Tdate date1正确答案:【Tdate date1】4、填空题:类的访问限定符包括 public、_和 private。正确答案:【protected】5、填空题:类成员默认的访问方式是_。正确答案:【private】类和对象作业类和对象作业类和对象测验题类和对象测验题1、问题:关于面向对象的程序设计方法,下列说法正确的是_。选项:A、封装性指的是将不同类型的相关数据组合在一起,作为一个整体进行处理B、多态性指的
5、是对象的状态会根据运行时要求自动变化C、基类的私有成员在派生类的对象中不可访问,也不占内存空间D、在面向对象的程序设计中,结构化程序设计方法仍有着重要作用正确答案:【在面向对象的程序设计中,结构化程序设计方法仍有着重要作用】2、问题:在 C+中,实现封装性需借助_。选项:A、枚举B、类C、数组D、函数正确答案:【类】3、问题:下列关于类和对象的叙述中,错误的是_。选项:A、一个类只能有一个对象B、对象是类的具体实例C、类是对某一类对象的抽象D、类和对象是一种数据类型与变量的关系正确答案:【一个类只能有一个对象】4、问题:以下关键字不能用来声明类的访问权限的是_。选项:A、publicB、sta
6、ticC、protectedD、private正确答案:【static】5、问题:有如下类声明:class Fooint bar;则 Foo 类的成员 bar是_。选项:A、公有数据成员B、公有成员函数C、私有数据成员D、私有成员函数正确答案:【私有数据成员】6、填空题:在 C+面向对象程序设计框架中,_是程序的基本组成单元。正确答案:【类#%_YZPRLFH_%#class】7、填空题:在面向对象的程序设计中,将数据和处理数据的操作封装成一个整体就定义了一种事物的类型,称作类。类是一种抽象的概念,属于该类的一个实例叫做_。正确答案:【对象】8、填空题:与指针成员访问表达式 p-name等价的
7、表达式是_。正确答案:【(*p).name】9、填空题:有如下类声明:class MyClass int i;private:int j;protected:int k;public:int m,n;其中,私有成员的数量为_。正确答案:【2#%_YZPRLFH_%#两个#%_YZPRLFH_%#2 个】12-1 构造函数测验构造函数测验1、问题:下列说法中正确的是(?)。选项:A、类定义中只能说明函数成员的函数头,不能定义函数体?B、类中的函数成员可以在类体中定义,也可以在类体之外定义C、类中的函数成员在类体之外定义时必须要与类声明在同一文件中D、在类体之外定义的函数成员不能操作该类的私有数据
8、成员正确答案:【类中的函数成员可以在类体中定义,也可以在类体之外定义】2、问题:类的构造函数被自动调用执行的情况是在创建该类的(?)选项:A、成员函数时B、数据成员时C、对象时D、友元函数时正确答案:【对象时】3、问题:在下列函数原型中,可以作为类 AA 构造函数的是(?)选项:A、void?AA(int);B、int?AA();C、AA(int)const;D、AA(int)正确答案:【AA(int)const;】4、问题:Account类定义如下,用该类创建对象错误的是()class Accountpublic:/公有成员函数 Account(int d=1151,double m=0.0
9、)/默认参数构造函数 id=d;money=m;/初始化数据成员void deposit(double m)/一般成员函数 money+=m;void withdraw(double m)/一般成员函数 money-=m;void print()/一般成员函数 cout“ID:”id“,Money:”moneyendl;private:/私有数据成员 int id;double money;选项:A、Account ac;B、Account bc(1151);C、Account cc(1151,10);D、Account cc(1151,10,1);正确答案:【Account cc(1151,
10、10,1);】5、问题:构造函数在类体外实现时要通过类名进行限定。选项:A、正确B、错误正确答案:【正确】12-2 类成员初始化测验类成员初始化测验1、问题:对象成员构造函数的调用发生在类的构造函数调用之前选项:A、正确B、错误正确答案:【正确】2、问题:class Personpublic:Person(char*n,int h)strcpy(name,n);height=h;private:char name20;int height;Birthday birth(2016,2,24);以上代码能够对 birth进行初始化。选项:A、正确B、错误正确答案:【错误】3、填空题:类对象作为数据
11、成员时,用_调用类对象的构造函数进行初始化。正确答案:【初始化表】12-3 析构函数测验析构函数测验1、问题:()不是析构函数的特点选项:A、一个类中只能有一个析构函数B、析构函数名和类名相同,前面再加一个C、析构函数没有返回类型D、析构函数可以有一个或多个参数正确答案:【析构函数可以有一个或多个参数】2、问题:每个类必须有一个析构函数,若未提供类的析构函数,则 C+会提供一个默认的析构函数。选项:A、正确B、错误正确答案:【正确】3、问题:类对象成员析构的顺序是:按照类对象成员声明顺序依次调用析构函数。选项:A、正确B、错误正确答案:【错误】构造函数和析构函数作业构造函数和析构函数作业构造函
12、数与析构函数测试构造函数与析构函数测试1、问题:有以下类定义 class MyClasspublic:MyClass()cout1;则执行语句MyClass a,b2,*p2;后,程序的输出结果是_。A:11 B:111 C:1111 D:11111选项:A、11B、111C、1111D、11111正确答案:【111】2、问题:关于类的概念下列说法正确的是_。选项:A、类和结构体是同一个概念B、类的数据成员外界都不可访问C、类可以没有显式的构造函数D、类一定要有显式的析构函数正确答案:【类可以没有显式的构造函数】3、问题:有如下两个类的定义 class AA;class BBAA v1,*v2
13、;BB v3;int*v4;其中有一个成员变量的定义是错误的,这个变量是_。选项:A、v1B、v2C、v3D、v4正确答案:【v3】4、问题:Sample是一个类,定义如下 class Sample int val;public:Sample(int v):val(v);执行下面语句后,调用 Sample类的构造函数的次数是_。Sample a3,*p=new Sample;选项:A、0B、2C、3D、4正确答案:【4】5、问题:有如下程序:class Name char*name;public:Name():name(NULL)Name(char*fname)/将 fname所指字符串拷贝到
14、 name所指向的存储空间 name=_;strcpy(name,fname);Name()deletename;横线处应填写的表达式是_。选项:A、new charstrlen(fname)+1B、charstrlen(fname)+1C、charstrlen(fname)D、new charsizeof(fname)正确答案:【new charstrlen(fname)+1】6、填空题:有如下定义:class MA int value;public:MA(int n=0):value(n);MA*ta,tb;其中 MA 类的对象名标识符是_。正确答案:【tb】7、填空题:己知下列程序的输出
15、结果是 42,请将画线处缺失的部分补充完整。#includeiostreamusing namespace std;class Foo int value;public:Foo():value(0)void setValue(int value)_=value;/给 Foo的数据成员 value赋值 void print()coutvalue;int main()Foo f;f.setValue(42);f.print();return 0;正确答案:【this-value#%_YZPRLFH_%#Foo:value#%_YZPRLFH_%#(*this).value】8、填空题:1、插入排序
16、算法的主要思想是:每次从未排序序列中取出的一个数据,插入到已排序序列中的正确位置。InsertSort类的成员函数 sort()实现了插入排序算法。请将画线处缺失的部分补充完整。class InsertSortpublic:InsertSort(int*a0,int n0):a(a0),n(n0)/参数 a0是某数组首地址,n 是数组元素个数 void sort()/此函数假设已排序序列初始化状态只包含 a0,未排序序列初始为 a1 an-1 for(int i=1;in;+i)int t=ai;int j;for(_;j0;-j)if(t=aj-1)break;aj=aj-1;aj=t;pr
17、otected:int*a,n;/指针 a 用于存放数组首地址,n用于存放数组元素个数;正确答案:【j=i】拷贝构造函数作业拷贝构造函数作业拷贝构造函数测试拷贝构造函数测试1、问题:有如下程序:#includeiostreamusing namespace std;class A public:A(int i=0):r(i)A(Aa)r=a.r;cout1;void print()coutr;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
18、=a1;fun(A(6);coutendl;return 0;运行此程序时,类 A 的拷贝构造函数执行的次数是_。选项:A、0B、2C、3D、4正确答案:【3】2、问题:有如下程序#includeiostreamusing namespace std;class MyClasspublic:MyClass(int x):val(x)void print()constcoutconst:val=valt;void print()coutval=valt;private:int val;int main()const MyClass obj1(10);MyClass obj2(20);obj1.p
19、rint();obj2.print();return 0;程序的输出结果是_。选项:A、val=10 const:val=20B、const:val=10 const:val=20C、const:val=10 val=20D、val=10 val=20正确答案:【const:val=10 val=20】3、问题:拷贝构造函数使用的场合有_。选项:A、由一个对象初始化另一个对象时B、当对象作为函数实参传递给函数形参时C、当对象作为函数的返回值,创建一个临时对象时D、创建任何类的对象时正确答案:【由一个对象初始化另一个对象时#当对象作为函数实参传递给函数形参时#当对象作为函数的返回值,创建一个临时
20、对象时】4、填空题:有如下类定义,请将 Sample类的拷贝构造函数补充完整。class Samplepublic:Sample()Sample()if(p)delete p;Sample(const Samples)p=new int;*p=_;void SetData(int data)p=new int(data);void print()cout*pendl;private:int*p;正确答案:【*(s.p)#%_YZPRLFH_%#*(s.p)】常量成员、静态成员与友元测验常量成员、静态成员与友元测验常量成员、静态成员与友元测验常量成员、静态成员与友元测验1、问题:有如下类定义和变
21、量定义:class Apublic:A()data=0;A()int GetData()const return data;void SetData(int n)data=n;private:int data;const A a;A b;下列函数调用中错误的是_。选项:A、a.GetData();B、a.SetData(10);C、b.GetData();D、b.SetData(10);正确答案:【a.SetData(10);】2、问题:有如下程序#includeiostreamusing namespace std;class Testpublic:Test()data=0;k+;Test(
22、)int getK()return k;private:static int k;int data;int Test:k=0;int main()Test a2,*ptr;Test b;coutb.getK()endl;return 0;程序的输出结果是_。选项:A、0B、1C、2D、3E、4正确答案:【3】3、问题:关于友元说法错误的是_。选项:A、友元函数可以访问类中的所有数据成员B、友元函数必须被声明在 public区C、友元类的所有成员函数都是另一个类友元函数D、友元函数不可以在类内部被定义正确答案:【友元函数必须被声明在 public 区】4、问题:一个类的友元函数能够通过成员访问运
23、算符符访问该类的_。选项:A、私有成员B、保护成员C、公有成员D、公有成员、保护成员、私有成员正确答案:【公有成员、保护成员、私有成员】5、问题:下列各种函数中,_不是类的成员函数。选项:A、构造函数B、析构函数C、友元函数D、拷贝构造函数正确答案:【友元函数】6、填空题:将一个函数声明为一个类的友元函数必须使用关键字_。正确答案:【friend】7、填空题:若需要把一个函数 void F();定义为一个类 AB 的友元函数,则应在类AB 的定义中加入一条声明语句:_。正确答案:【friend void F();】继承与派生作业(继承与派生作业(1)继承与派生测验(继承与派生测验(1)1、问题
24、:在公有派生的情况下,派生类中定义的成员函数只能访问原基类的_。选项:A、公有成员和私有成员B、私有成员和保护成员C、公有成员和保护成员D、私有成员、保护成员和公有成员正确答案:【公有成员和保护成员】2、问题:下列说法中错误的是_。选项:A、公有继承时基类中的 public成员在派生类中仍是 public的B、公有继承时基类中的 private成员在派生类中仍是 private 的C、私有继承时基类中的 public成员在派生类中是 private 的D、保护继承时基类中的 public成员在派生类中时 protected 的正确答案:【公有继承时基类中的 private 成员在派生类中仍是
25、private的】3、问题:若有如下类定义:class B void fun1()protected:double var1;public:void fun2();class D:public Bprotected:void fun3();已知 obj是类 D 的对象,下列语句中不违反类成员访问控制权限的是_。选项:A、obj.fun1();B、obj.var1;C、obj.fun2();D、obj.fun3()正确答案:【obj.fun2();】4、问题:下列关于派生类的描述中错误的是_。选项:A、一个派生类可以作为另一个派生类的基类B、派生类至少有一个基类C、派生类的缺省继承方式是 pri
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MOOC C+程序设计-淮阴工学院 中国大学慕课答案 C+ 程序设计 淮阴 工学院 中国 大学 答案