云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 《面向对象C++程序设计》综合练习题

《面向对象C++程序设计》综合练习题

  • 62 次阅读
  • 3 次下载
  • 2025/6/20 13:30:19

A. 3 B. 4 C. 5 D. 9 67.假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[1][2]的值为( C )。 A. 2 B. 4 C. 6 D. 8 68.一个类的静态数据成员所表示属性 ( C )。

A. 是类的或对象的属性 B. 只是对象的属性 C. 只是类的属性 D. 类和友元的属性 69.当将一个类A或函数f()说明为另一个类B的友元后,类A或函数f()能够直接访问类B的( D )。 A. 只能是公有成员 B. 只能是保护成员

C. 只能是除私有成员之外的任何成员 D. 具有任何权限的成员 70.类的静态成员的访问控制( D )。

A. 只允许被定义为private B. 只允许被定义为private或protected C. 只允许被定义为public D. 可允许被定义为private、protected或public

71.软件产品在需求发生变化、运行环境发生变化或发现软件产品本身的错误或不足时进行相应的软件更新的难易程度叫做软件的( A )。

A. 可维护性 B. 可复用性 C. 兼容性 D. 正确性 72.在成员函数中进行双目运算符重载时,其参数表中应带有( B )个参数。 A. 0 B. 1 C. 2 D. 3

73.如果表达式++a中的“++”是作为成员函数重载的运算符,若采用运算符函数调用格式,则可表示为( D )。

A. a.operator++(1) B. operator++(a) C. operator++(a,1) D. a.operator++()

74.双目运算符重载为普通函数时,其参数表中应带有( C )个参数。 A. 0 B. 1 C. 2 D. 3 75.以下叙述中不正确的是( C )。

A. 在一个函数中,可以有多条return语句 B. 函数的定义不能嵌套,但函数的调用可以嵌套 C. 函数必须有返回值 D. 不同的函数中可以使用相同名字的变量 76.对于公有继承,基类中的私有成员在派生类中将 ( C )。 A. 能够直接使用成员名访问 B. 能够通过成员运算符访问 C. 仍然是基类的私有成员 D. 变为派生类的私有成员 77.从一个基类派生出的各个类的对象之间( C )。 A. 共享所有数据成员,每个对象还包含基类的所有属性 B. 共享部分数据成员,每个对象还包含基类的所有属性 C. 不共享任何数据成员,但每个对象还包含基类的所有属性 D. 共享部分数据成员和函数成员

78.当保护继承时,基类的( B )在派生类中成为保护成员,在类作用域外不能够通过派生类的对象来直接访问该成员。

A. 任何成员 B.公有成员和保护成员 C. 保护成员和私有成员 D.私有成员 79.在关键字private后面定义的成员为类的(A )成员。

A. 私有 B. 公用 C. 保护 D. 任何 80.函数原型语句正确的是( B )。

A. int Function(void a); B.void Function (int); C. int Function(a); D.void int(double a);

81.在多文件结构的程序中,通常把含有main()函数的文件称为( A )。 A. 主文件 B. 实现文件 C. 程序文件 D. 头文件

第 5 页 共 29 页

82.设有如下函数定义 int f(char *s) { char *p=s;

while(*p!=’\\0’) p++; return(p-s); }

在主函数中用cout<

83.当类中一个字符指针成员指向具有n个字节的存储空间时,它所能存储字符串的最大长度为( C )。 A. n B. n+1 C. n-1 D. n-2 84.若用数组名作为函数调用的实参,传递给形参的是(A )。 A. 数组的首地址 B. 数组中第一个元素的值 C. 数组全部元素的值 D. 数组元素的个数

85.类的构造函数是在定义该类的一个( C )时被自动调用执行的。 A. 成员函数 B. 数据成员 C. 对象 D. 友元函数 86.预处理命令在程序中都是以( B )符号开头的。 A. * B. # C. & D. @

87.假定一个类的构造函数为 “A(int aa, int bb) {a=aa; b=aa*bb;}”,则执行 “A x(4,5);”语句后,x.a和x.b的值分别为( C )。

A. 4和5 B. 5和4 C. 4和20 D. 20和5 88.假定有定义“int b[10]; int *pb;”,则不正确的赋值语句为( D)。 A. pb=b; B. pb=&b[0]; C. *pb=new int; D. pb=b[5]; 89.当一个类对象离开它的作用域时,系统自动调用该类的( D )。

A. 无参构造函数 B. 带参构造函数 C. 拷贝构造函数 D. 析构函数 90.假定变量b和pb定义为“int b[10], *pb=b;”,要将24赋值给b[1]元素中,不正确的语句是( C )。 A. *(pb+1)=24; B. *(b+1)=24; C. *++b=24; D. *++pb=24; 91.对类中常量成员的初始化是通过构造函数中给出的( C )实现的。

A. 函数体 B. 参数表 C. 初始化表 D. 初始化表或函数体

92.假定AA为一个类,a为该类公有的数据成员,若要在该类的一个成员函数中访问它,则书写格式为(A )。

A. a B. AA::a C. a() D. AA::a() 93.引入友元的主要目的是为了( C )。

A. 增强数据安全性 B. 提高程序的可靠性 C. 提高程序的效率和灵活性 D. 保证类的封装性 94.类中定义的成员默认为( B )访问属性。

A. public B. private C. protected D. friend 95.关于运算符重载,下列说法正确的是( C )。

A. 重载时,运算符的优先级可以改变。 B. 重载时,运算符的结合性可以改变。

C. 重载时,运算符的功能可以改变。 D. 重载时,运算符的操作数个数可以改变。 96.如果是类B在类A的基础上构造,那么,就称( B )。

A. 类A为基类或父类,类B为超类或子类 B. 类A为基类、父类或超类,类B为派生类或子类 C. 类A为派生类,类B为基类 D. 类A为派生类或子类,类B为基类、父类或超类 97.一个类的构造函数通常被定义为该类的( A )成员。

A. 公用 B. 保护 C. 私有 D. 友元

第 6 页 共 29 页

98.假定一个类对象数组为A[n],当离开它定义的作用域时,系统自动调用该类析构函数的次数为( C )。 A. 0 B. 1 C. n D. n-1

二、填空题

1.C++语言是在____C_____语言的基础上发展起来的。 2.假定x=10,则表达式x<=10?20:30的值为___20___。 3.一条表达式语句必须以__;____作为结束符。

4.一个完整程序中必须有一个名为___main _____的函数。 5.行尾使用注释的开始标记符为_____//_____。

6.程序中的预处理命令是指以___#___字符开头的命令。

7.当在程序中执行到__continue______语句时,将结束所在循环语句中循环体的一次执行。

8.当执行cout语句输出endl数据项时,将使C++显示输出屏幕上的光标从当前位置移动到_下一行_______的开始位置。

9.C++头文件和源程序文件的扩展名分别为__h____和___cpp___。 10.C++常数0x145对应的十进制值为___325_______。 11.从一条函数原型语句“int fun1(void);”可知,该函数的返回类型为__int____,该函数带有___0___个参数。

12.用于存储一个长度为n的字符串的字符数组的长度至少为__n+1______。 13.int和float类型的数据分别占用___4_____和_____4_____个字节。 14.假定一个类对象数组为A[N],当离开它的作用域时,系统自动调用该类析构函数的次数为___N_____。 15.当执行cin语句时,从键盘上输入每个数据后必须接着输入一个___空白____符,然后才能继续输入下一个数据。

16.假定x和y为整型,其值分别为16和5,则x/y和double(x)/y的值分别为____3______和_____3.2_____。 17.如果一个函数只允许同一程序中的函数调用,则应在该函数定义前加上_____static_____C++保留字。 18.假定x是一个逻辑量,则x && true的值为____x______。 19.假定x是一个逻辑量,则x && !x的值为_____0_____。

20.使用#include命令可以包含一个头文件,也可以包含一个__程序____文件。 21.常数-4.205和6.7E-9分别具有___4_______和___2_______位有效数字。

22.调用系统函数时,要先使用#include命令包含该系统函数的原型语句所在的_____头文件_____。 23.枚举类型中的每个枚举值都是一个_枚举常量____,它的值为一个_整数_____。

24.在程序中执行到__return__语句时,将结束所在函数的执行过程,返回到调用该函数的位置。 25.假定x=5,y=6,则表达式x++*++y的值为__35________。

26.元素类型为char的二维数组a[10][30]共占用___300_____字节的存储空间。

27.当定义一个结构体变量时,系统分配给该变量的内存大小等于各成员所需内存大小的___总和____。 28.执行switch语句时,在进行作为条件的表达式求值后,将从某个匹配的标号位置起向下执行,当碰到下一个标号位置时(停止/不停止)___不停止_____执行。

29.若a是一个字符数组,则从键盘上向该数组输入一个字符串的表达式为___cin>>a_______。 30.假定x是一个逻辑量,则x && false的值为__0________。

31.若需要把一个字符串”aaa”赋值到字符数组a中,则需要执行_strcpy_______函数的调用来实现。 32.假定p所指对象的值为25,p+1所指对象的值为42,则执行(*p)++运算后,p所指对象的值为__26______。

33.存储字符’a’和字符串”a”分别需要占用___1_____和___2_____个字节。 34.若“double x=100;”是文件F1.CPP中的一个全局变量定义语句,若文件F2.CPP中的某个函数需要

第 7 页 共 29 页

访问此x , 则应在文件F2.CPP中添加对x的声明语句为____extern doule x;_____________。 35.常数100和3.62的数据类型分别为_int___和__double____。

36.全局变量和静态局部变量具有静态生存期,存放在内存的__全局数据____区中。

37.假定一个二维数组为c[5][8],则c[3]的值为二维元素_c[3][0]_______的地址,c[3]+2的值为二维元素_c[3][2]_______的地址。

38.假定对数组a[]进行初始化的数据为{2,7,9,6,5,7,10},则a[2]和a[5]分别被初始化为__9______和____7____。

39.函数形参的作用域是该函数的_函数体___________。

40.若a是一个字符数组,则向屏幕输出a中所存字符串的表达式为__cout<

42.假定p是一个指向整数对象的指针,则用__*p__表示该整数对象,用__&p__表示指针变量p的地址。 43.一个数组的数组名实际上是指向该数组_第一个_元素的指针,并且在任何时候都不允许_修改___它。 44.一个指针类型的对象占用内存的_4___个字节的存储空间。

45.假定对二维数组a[3][4]进行初始化的数据为{{3,5,6},{2,8},{7}},则a[1][1]和a[2][3]分别被初始化为_8___和___0_____。

46.局部变量具有局部生存期,存放在内存的__栈____区中。 47.假定x是一个逻辑量,则!x || false的值为__!x________。

48.若y是x的引用,则&y和&x的值_相等___,即为变量__x______的地址。

49.假定p为指向二维数组int d[4][6]的指针,则p的类型为__int(*)[6]______。

50.假定p所指对象的值为25,p+1所指对象的值为42,则执行*(p++)或*p++运算后,p所指对象的值为___42_____。

51.假定p是一个指针,则*p++运算首先访问__*p__,然后使___p_____的值增1。 52.特殊类的对象拥有其一般类的全部属性与操作,称特殊类__继承____了一般类。

53.假定用户没有给一个名为AB的类定义构造函数,则系统为其定义的构造函数为__AB(){}________。 54.在函数模板的参数中,用class修饰的参数称为__类型________参数。 55.执行_delete[]p_______操作将释放由p所指向的动态分配的数组空间。

56.假定指向一维数组b[10]中元素b[4]的指针为p,则p+3所指向的元素为_b[7]____,p-2所指向的元素为__b[2]______。

57.假定x=5,y=6,则执行表达式y+=x--计算后,x和y的值分别为__4__和_11______。 58.用于从键盘上为变量输入值的标准输入流对象是_cin_______。

59.若二维数组a有m列,设a[0][0]位于数组的第一个位置上,则计算任一元素a[i][j]在数组中位置序号的公式为___i*m+j+1_________。

60.已知有定义“int x, a[]={5,7,9}, *pa=a;”,在执行“x=++*pa;”语句后,x的值是__6______。 61.执行int p=new int操作得到的一个动态分配的整型对象为__*p______。 62.对于类中定义的任何成员,其隐含访问权限为_private_______。

63.为了避免在调用成员函数时修改对象中的任何数据成员,则应在定义该成员函数时,在函数头的后面加上_const______关键字。

64.如果一个派生类的基类不止一个,则这种继承称为___多重继承_________。

65.假定用户没有给一个名为AB的类定义析构函数,则系统为其定义的析构函数为__~AB(){}________。 66.若一个函数的定义处于调用它的函数之前,则在程序开始可以省去该函数的_原型_____语句。 67.已知变量a定义为“int a=5;”,要使ra成为a的引用,则ra应定义为___ int &ra=a_________。

68.对于结构中定义的任何成员,其隐含访问权限为_public_______。 69.已知语句“cout<

第 8 页 共 29 页

搜索更多关于: 《面向对象C++程序设计》综合练习题 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

A. 3 B. 4 C. 5 D. 9 67.假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[1][2]的值为( C )。 A. 2 B. 4 C. 6 D. 8 68.一个类的静态数据成员所表示属性 ( C )。 A. 是类的或对象的属性 B. 只是对象的属性 C. 只是类的属性 D. 类和友元的属性 69.当将一个类A或函数f()说明为另一个类B的友元后,类A或函数f()能够直接访问类B的( D )。 A. 只能是公有成员 B. 只能

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com