2013秋川大网教《面向对象程序设计》第一、二次作业及答案解析_第1页
2013秋川大网教《面向对象程序设计》第一、二次作业及答案解析_第2页
2013秋川大网教《面向对象程序设计》第一、二次作业及答案解析_第3页
2013秋川大网教《面向对象程序设计》第一、二次作业及答案解析_第4页
2013秋川大网教《面向对象程序设计》第一、二次作业及答案解析_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、中访问。类对象以成员函数形式重载后 + 运算那么, sizeof (str )的值应该是 ( D)参数表不同,那么(D )。面向对象程序设计第一次作业答案一、单项选择题。本大题共 30 个小题,每小题 2.0 分,共 60.0 分。在每小题给出的选 项中,只有一项是符合题目要求的。1. C + +函数的声明和定义可以分开,函数声明不需要(D )。A. 返回类型B. 函数名C. 参数表D. 函数体2. 函数的形参是 ( B ) 。A. 全局变量B. 局部变量C. 静态变量D. 部变量3. 数组名表示的是数组的( C )。A. 类型B. 用途C. 地址D. 长度4. 如果短整型的长度是 2字节,有

2、一个短整型指针 p的值是0XFFED1200 ,那么p+1的值为( B )。A. 0XFFED1201B. 0XFFED1202C. 0XFFED1203D. 0XFFED12045. private 访问属性限制对象的成员可以在 ( A)A. 本类的成员函数B. main 函数C. 父类的成员函数D. 子类的成员函数6. 如果定义了一个类 myclass ,则为 myclass 符的声明应该为( C )。A. myclass operator+();B. myclass&operator+();C. myclass operator+( int );D. myclass&operator+(

3、 int );7. 如果有如下定义: const char* str = OK;A. 1B. 2C. 3D. 48. 父类和子类各自定义一个成员函数,函数名相同,A. 在子类中这两个函数构成重载关系B. 子类不会继承父类的这个函数C. 子类中的函数会覆盖父类中的函数D.编译时会发生错误9.如果 myclass 类定义了拷贝构造函数和一个整型参数的构造函数,还重载了赋值运算符,那么语句 myclass obj = 100 ;会( B )。A.调用拷贝构造函数B.调用整型参数的构造函数C.调用赋值运算符D.引起编译错误10.抽 象类指的是( D )。A.没有任何成员的类B.只有成员函数没有数据成员

4、的类C.有虚函数的类D.有纯虚函数的类r. xrtir-t 、,. t、r ” r r n-a,、r ”/ .ar i i1 r ri ,r亠、r ”一i-tr i ,r 、r ”11.多 重继承时,如果派生类的两个父类有一个共同的虚基类,那么虚基类的初始化参数由(C )的构造函数来传递。A.第一个父类B.第二个父类C.派生类D.以上都不是12.多 态性是通过( C )实现的。A.构造函数B.析构函数C.虚函数D.函数重载13.十 进制数 127 转换成二进制数是( B )A.11111111B.01111111C.10000000D.1111111014.执 行语句char ch = Hel

5、lo;char *p = &ch0;cout1; I-=2)cout*;A. 24B. 25C. 26D. 508. 有如下定义: int a5=1,3,5,7,9,*p=a; 下列表达式中不能得到数值 5 的是 ( B )A.a2B.a3C.*(p+2)D.*p+49. 已知函数 f 的原型是 void f(int *a, long & b);,变量 v1 、 v2 的定义是:int v1; loong v2;下列调用语句中正确的是 ( D )A.f(v1, &v2)B.f(v1, v2)C.f(&v1, &v2)D.f(&v1, v2)10. 有 如下类定义:class Point pri

6、vate;static int how_many; ;,下划线处应填入的内容是 how_many=0;要初始化 Point 类的静态成员 how_manyA.ingB.static intC.int Point:D.static int Point:11. 在 下列关键字中,不能用来表示继承方式的是(B )A. privateB. staticC. publicD. protected12. 已 知 Value 是一个类, Value 是 Value 的一个对象。下列以非成员函数形式重 载的运算符函数原形中,正确的是(B )A.Value operator+(Value v, int i);B

7、.Value operator+(Value v=value, int i);C.Value operator+(Value vint i=0);D.Value operator+(Value v=value, int i=0);13. 下 面是一个模板声明的开始部分:templute double _由此可知 ( A )A. 这可能是一个函数模板的声明B. 这可能是一个类模板的声明C. 这既可能是一个函数模板的声明,也可能是一个类模板的声明D. 这肯定是一个错误的模板声明14. 有 如下 4 个语句: coutAsetfill(*)leftsetw(7)Bendl; coutsetfill(

8、*)leftsetw(7)ABendl; coutAserfill(*)rightsetw(7)Bendl; coutsetfill(*)rightsetw(7)ABendl; 其中能显示 A*B 的是 (A )A. 和B. 和C. 和D. 和15. 有 如下类定义:class MyClassint value;public:MyClass(int n): value (n) int gerValue()const return value;则类 MyClass 的构造函数的个数是( A )A.1 个B.2 个C.3 个D. 4 个16. 有 如下类和对象的定义:class Constants

9、public:static double getPI()return 3.1416;Constants constants; 下列各组语句中,能输出 3.1416 的是 ( D )A.coutgetPI();和 coutConstants:gerPI();B.coutconstants.getPI();和 coutConstants.getPI();C.coutgetPI();和 coutgetPI();D.coutconstants.getPI();和 coutConstants:getPI();17.若 有说明: int *p1,*p2,m=5,n;以下均是正确赋值语句的是( B )A.p

10、1=&m,p2=&p1B.p1=&m;p2=&n;*p1=*p2C.p1=&m;p1=p2D.p1=&m;*p2=*p118.C+语言对 C 语言做了很多改进,C+ 语言相对于 C 语言的最根本的变化是A.增加了一些新的运算符B.允许函数重载,并允许设置缺省参数C.规定函数说明符必须用原型D.引进了类和对象的概念19.若 已定义 int a=5; 下面对( 1 ),( 2 )两个语句正确理解的是(D)(1)int *p=&a; (2)*p=a;A.(1 )( 2)中的 *P 含义相同,都表示给指针变量 P 附值D )C.(1)在对 P 进行说明的同时进行初始化,使P 指向 a,( 2 )将变量

11、值赋给指针变量 PD.(1)在对 P 进行说明的同时进行初始化,使P 指向 a,( 2 )将变量值赋给 *20. 下列有关抽象类和纯虚函数的叙述中,错误的是(D)A.拥有纯虚函数的类是抽象类,不能用来定义对象B.抽象类的派生类若不实现纯虚函数,它也是抽象类C.纯虚函数的声明以 “=0; 结”束D.纯虚函数都不能有函数体21. 下列语句分别是不同程序中的第一个输入输出语句,若去掉其中的“ leftB. (1 )( 2 )的执行结果都是把变量 a 的地址值赋给指针变量 Pa的a的”输出效果将发生变化的是 ( B )A. coutleftsetfill(*)357;B. coutleftsetw(5

12、)357;C. coutleftsetw(5)ABCDE;D. coutleftABCDE;22. 下 面函数调用语句含有实参的个数为:( B )func(exp1,exp2),(exp3,exp4,exp5)A. 1B. 2C. 4D. 523. 设有定义 int x; float v; ,则 10+x+v 值的数据类型是( C )A. B. C.D.int double float 不确定24.在定义int a342; 后,第 10个元素是( B)A.a212B.a101C.a201D.a22125.下 列哪个是 C+ 语言的有效标识符? ( A )A._No1B.No 、 1C.1234

13、5D.int26.下面的选项中正确的赋值语句是(char a5,*p=a; )。 ( AA.p= “ abcd ”;B.a= “ abcd ”;C.*p= “ abcd ”;D.*a= “ abcd ”;27.若 k 为整形,则 while 循环执行(C )次。k=2; while(k=0) printf( “%d”k,-k-); printf(n“” );A.10B.9C.0D.128.数 组名作为实参传递给形参时 , 数组名被处理为该数组的(C )。A.长度B.元素个数C.首地址D.各元素的值29.两 个指针变量不可以( A )。A.相加B.比较C.相减D.指向同一地址30.以 下对二维数

14、组 a 的正确说明是:(C )A.int a3;B.float a(3,4);C.double a14;D.float a(3)(4);二、多项选择题。本大题共 5 个小题,每小题 4.0 分,共 20.0 分。在每小题给出的选项中,有一项或多项是符合题目要求的。1.构造函数( ACD )。A.函数名只能是类名B.返回类型可以是任意的C.参数个数和类型可以是任意的D.在对象创建时自动调用2.关于公共静态数据成员,下面说法正确的是(ABCD )。A.在 main 函数之前创建B.跟某个具体对象无关C.可以用类名和成员名直接访问D.需要在类体外初始化3.两个同名函数构成重载关系,只要(BCD )不

15、同。A.返回类型B.参数个数C.参数类型D.函数头后有无 const4.模板定义中的类型参数可以用作(ABCD )。A.局部变量类型B.函数参数类型C.函数返回值类型D.数据成员类型5.设有定义语句: int x6=2,4,6,8,5,7 ,*p=x ,i;要求依次输出 x 数组 6 个元素中的值, 下列选项中能完成次操作的语句有_(ABCA.for (i=0 ; i6 ;i+ ) printf (“ %2d”,* (p+ );B.for (i=0 ; i6 ;i+ ) printf (“ %2d”,* (p+i );C.for (i=0 ; i6 ;i+ ) printf (“ %2d”,*p+ );D

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论