《总面向对象程序设计c综合复习题集及答案详解.docx》由会员分享,可在线阅读,更多相关《总面向对象程序设计c综合复习题集及答案详解.docx(117页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、一, 单项选择题 1. C+源程序文件的缺省扩展名为( A )。 A. cpp B. exe C. obj D. lik 2. 由C+源程序文件编译而成的目标文件的缺省扩展名为( C )。 A. cpp B. exe C. obj D. lik 3. 由C+目标文件连接而成的可执行文件的缺省扩展名为( B )。 A. cpp B. exe C. obj D. lik 4. 编写C+程序一般需经过的几个步骤依次是( )。 A. 编译, 编辑, 连接, 调试 B. 编辑, 编译, 连接, 调试 C. 编译, 调试, 编辑, 连接 D. 编辑, 调试, 编辑, 连接 5. 以下标识符中不全是保存字的
2、是 。 A. case for int B. default then while C. bool class long D. goto return char 6. 能作为C+程序的根本单位是( )。 A. 字符 B. 语句 C. 函数 D. 源程序文件 7. 程序中主函数的名字为 。 A. main B. MAIN C. Main D. 随意标识符 8. C+程序的根本模块为 。 A. 表达式 B. 标识符 C. 语句 D. 函数 9. 可用作C+语言用户标识符的一组标识符是( )。A. void define +WORDB. a3_b3 _123 YNC. for -abc CaseD.
3、 2a DO sizeof 10. 存储以下数据,占用存储字节最多的是 。 A. 0 B. 0 C. “0” 11. 程序运行中须要从键盘上输入多于一个数据时,各数据之间应运用( )符号作为分隔符。 A. 空格或逗号 B. 逗号或回车 C. 逗号或分号 D. 空格或回车 12. 设int a=12;,那么执行完语句a+=a*a;后,a的值是( )。 A. 12 B. 144 C. 156 D. 288 13. 假设在程序中 a, b, c 均被定义成整型,所赋的值都大于1,那么以下能正确表示代数式1/abc的表达式是( )。 14. 设int a=15,b=26;,那么cout0 & x=10
4、的相反表达式为 。A. x10 B. x10C. x=0 | x0 & x10 17. x0 | y=5的相反表达式为 。A. x=0 | y!=5 B. x0 | y!=5 D. x0 & y=5 18设x和y均为bool量,那么x & y为真的条件是( )。 A. 它们均为真 B. 其中一个为真 C. 它们均为假 D. 其中一个为假 19设x和y均为bool量,那么x | y为假的条件是( )。 A. 它们均为真 B. 其中一个为真 C. 它们均为假 D. 其中一个为假 20. 字符串a+b=12n的长度为 。 A. 6 B. 7 C. 8 D. 9 21. 假定以下x和y均为int型变量
5、,那么不正确的赋值为 。 A. x+=y+ B. x+=y+ C. x=+y D. +x=+y 22. 以下的符号常量定义中,错误的定义是 。 A. const M=10; B. const int M=20; C. const char ch; D. const bool mark=true; 23. 循环语句“for(int i=0; in; i+) couti*i ;中循环体执行的次数为( )。 A. 1 B. n-1 C. n D. n+1 24. 在下面循环语句中循环体执行的次数为 。 for(int i=0; in/2) break; A. n/2 B. n/2+1 C. n/2-
6、1 D. n-1 25. 在下面循环语句中内层循环体S语句的执行总次数为 。 for(int i=0; in; i+) for(int j=i; jn; j+) S; A. n2 B. (n+1)/2 C. n(n-1)/2 D. n(n+1)/2 26. 在下面循环语句中循环体执行的次数为 。 int i=0,s=0; while(s20) i+; s+=i; A. 4 B. 5 C. 6 D. 7 27. 在下面循环语句中循环体执行的次数为 。 int i=0; do i+; while(i*i10); A. 4 B. 3 C. 5 D. 2 28. 当处理特定问题时的循环次数时,通常接受
7、 来解决。 A. for循环 B. while循环 C. do循环 D. switch语句 29. 循环体至少被执行一次的语句为 。 A. for循环 B. while循环 C. do循环 D. 任一种循环 30. switch语句能够改写为 语句。 A. for B. if C. do D. while 31. do语句能够改写为 语句。 A. 复合 B. if C. switch D. while 32. 在下面的一维数组定义中,哪一个有语法错误。 A. int a=1,2,3; B. int a10=0; C. int a; D. int a5; 33. 在下面的字符数组定义中,哪一个有
8、语法错误。 。 A. char a20=abcdefg; B. char a=x+y=55.; C. char a15; D. char a10=5; 34. 在下面的二维数组定义中,正确的选项是( )。 A. int a5; B. int a5; C. int a3=1,3,5,2; D. int a(10); 35. 假定一个二维数组的定义语句为“int a34=3,4,2,8,6;,那么元素a12的值为 。 A. 2 B. 4 C. 6 D. 8 36. 假定一个二维数组的定义语句为“int a34=3,4,2,8,6;,那么元素a21的值为 。 A. 0 B. 4 C. 8 D. 6
9、37. 假设定义了函数 double *function(), 那么函数function的返回值为 。 38. 以下说法中正确的选项是 。 A. C+程序总是从第一个定义的函数开场执行 B. C+程序总是从main函数开场执行 C. C+函数必需有返回值,否那么不能运用函数 D. C+程序中有调用关系的全部函数必需放在同一个程序文件中 39. 以下表达中不正确的选项是 。 A. 在一个函数中,可以有多条return语句 B. 函数的定义不能嵌套,但函数的调用可以嵌套 C. 函数必需有返回值 D. 不同的函数中可以运用一样名字的变量 40. 函数重载是指 。 A. 两个或两个以上的函数取一样的函
10、数名,但形参的个数或类型不同 B. 两个以上的函数取一样的名字和具有一样的参数个数,但形参的类型可以不同 C. 两个以上的函数名字不同,但形参的个数或类型一样 D. 两个以上的函数取一样的函数名,并且函数的返回类型一样 41. 以下关于函数模板表达正确的选项是 。 A. 函数模板也是一个详细类型的函数 B. 函数模板的类型参数及函数的参数是同一个概念 C. 通过运用不同的类型参数,函数模板可以生成不同类型的函数 D. 用函数模板定义的函数没有类型 42. 以下 的调用方式是引用调用。 A. 形参和实参都是变量 B.形参是指针,实参是地址值 C. 形参是引用,实参是变量 D.形参是变量,实参是地
11、址值 43. 为了提高程序的运行速度,可将不太困难的功能用函数实现,此函数应选择 。 44. 函数原型语句正确的选项是 。 A. int Function(void a); B.void Function (int); C. int Function(a); D.void int(double a); 45. C+中函数返回值的类型是由 确定的。 46. 以下函数的返回结果是 。 int function(char *x) char *p=x; while(*p+); return(p-x-1); 47. 函数调用func(exp1,exp2),(exp3,exp4,exp5)中所含实参的个数
12、为( )个。 A. 1 B. 2 C. 4 D. 5 48. 设有如下函数定义 int f(char *s) char *p=s; while(*p!=0) p+; return(p-s); 在主函数中用coutf(“good)调用上述函数, 那么输出结果为 。 A. 3 B. 4 C. 5 D. 6 49. 以下正确的函数原型语句是( )。 A. double fun(int x,int y) B. double fun(int x;int y) C. double fun(int,int); D. double fun(int x,y); 50. 以下正确的说法是 。 A. 用户调用标准库
13、函数前,必需重新定义 B. 用户可以重新定义标准库函数,假设如此,该函数将失去原有含义 C. 系统不允许用户重新定义标准库函数 D. 用户调用标准库函数前,不必运用预编译叮嘱将该函数所在文件包括到用户源文件中 51. 函数调用不行以 。 A. 出现在一个表达式中 B. 出现在执行语句中 C. 作为一个函数的实参 D. 作为一个函数的形参 52. 以下正确的描述是 。 A. 函数的定义可以嵌套,函数的调用不行以嵌套 B. 函数的定义不行以嵌套,函数的调用可以嵌套 C. 函数的定义和函数的调用均可以嵌套 D. 函数的定义和函数的调用均不行以嵌套 53. 假设用数组名作为函数调用的实参,传递给形参的
14、是 。 A. 数组的首地址 B. 数组中第一个元素的值 C. 数组全部元素的值 D. 数组元素的个数 54. 以下错误的描述是 。 A. 被调用函数中可以不用return语句 B. 被调用函数中可以用多个return语句 C. 被调用函数中,假如有返回值,就确定要有return语句 D. 被调用函数中,一个return语句可返回多个值给调用函数 55. 以下正确的描述是 。 A. 不允许设置参数的默认值 B. 设置参数的默认值只能在定义函数时设置 C. 设置参数的默认值时,应当设置右边的参数 D. 设置参数的默认值时,应当全部参数都设置 56. 接受重载函数的目的是 。 A. 实现共享 B.
15、削减空间 C. 提高速度 D. 运用便利,提高可读性 57. 将两个字符串连接起来组成一个字符串时,选用 函数。 A. strlen() B. strcap() C. strcat() D. strcmp() 58. 以下表达中正确的选项是( )。 A. 运用#define可以为常量定义一个名字,该名字在程序中可以再赋另外的值 B. 运用const定义的常量名有类型之分,其值在程序运行时是不行变更的 C. 在程序中运用内联函数使程序的可读性变差 D. 在定义函数时可以在形参表的任何位置给出缺省形参值 59. 下面的标识符中,( )是文件级作用域。 60. 以下表达不正确的选项是( )。 A.
16、宏替换不占用运行时间 B. 宏名无类型 C. 宏替换只是字符替换 D. 宏名必需用大写字母表示 61. C+语言的编译系统对宏叮嘱的处理是( )。 A. 在程序运行时进展 B. 在程序连接时进展 C. 和C+程序的其它语句同时进展编译 D. 在对源程序中其它成分正式编译之前进展 62. 当#include后面的文件名用双引号括起来时,找寻被包含文件的方式是( )。 A. 干脆按系统设定的标准方式搜寻书目 B. 先在源程序所在书目搜寻,再按系统设定的标准方式搜寻书目 C. 仅仅搜寻源程序所在书目 D. 搜寻当前逻辑盘上的全部书目 63. 当#include后面的文件名用尖括号括起来时,找寻被包含
17、文件的方式是( )。 A. 干脆按系统设定的标准方式搜寻书目 B. 先在源程序所在书目搜寻,再按系统设定的标准方式搜寻书目 C. 仅仅搜寻源程序所在书目 D. 搜寻当前逻辑盘上的全部书目 64. 在下面存储类中, ( ) 对象的可见性及生存期不一样。 A. 外部类 B. 自动类 C. 内部静态类 D. 存放器类 65. 在下面存储类中, 的对象不是局部变量。 A. 外部静态类 B. 自动类 C. 函数形参 D. 存放器类 66. 关于局部变量,下面说法正确的选项是( )。 A. 定义该变量的程序文件中的函数都可以访问 B. 定义该变量的函数中的定义处以下的任何语句都可以访问 C. 定义该变量的
18、复合语句中的定义处以下的任何语句都可以访问 D. 定义该变量的函数中的定义处以上的任何语句都可以访问 67. 文件包含叮嘱中被包含的文件的扩展名 。 68. 预处理叮嘱在程序中都是以( )符号开头的。 A. * B. # C. & D. 69. 设array为一个数组,那么表达式sizeof(array)/sizeof(array0)的结果为( )。 A. array数组首地址 B. array数组中元素个数 C. array数组中每个元素所占的字节数 D. array数组占的总字节数 70. 用new运算符创立一个含10个元素的一维整型数组的正确语句是( )。 A. int *p=new a
19、10; B. int *p=new float10; C. int *p=new int10; D. int *p=new int10=1,2,3,4,5 71. 以下给字符数组赋初值时,正确的选项是( )。 A. char s1=abcdef; B. char s24=abcd; C. char s323=“abc,xyz; D. char s44=a,x,s,t; 72. 设有定义“static int data56;,设该数组在静态存储区中的起始地址为十进制的100,假设每个int型数占4个字节,那么数组元素data23的地址为( )。 A. 115 B.124 C 73. 假定变量m定
20、义为“int m=7;,那么定义变量p的正确语句为 。 A. int p=&m; B. int *p=&m; C. int &p=*m; D. int *p=m; 74. 假定k是一个double类型的变量,那么关于变量p的正确定义语句为 。 A. double p=&k; B. int *p=&k; C. double &p=*k; D. char *p=Thank you!; 75. 变量s的定义为“char *s=Hello world!;,要使变量p指向s所指向的同一个字符串,那么应选取 。 A. char *p=s; B. char *p=&s; C. char *p;p=*s; D
21、. char *p; p=&s; 76. 关于void 指针,以下说法正确的选项是 。 A. void 指针就是未指向任何数据的指针 B. void 指针就是已定义而未初始化的指针 C. 指向任何类型数据的指针可干脆赋值给一个void 指针 D. void 指针值可干脆赋给一个非void 指针 77. 假定一条定义语句为“int a10, x, *pa=a;,假设要把数组a中下标为3的元素值赋给x,那么不正确的语句为 。 A. x=pa3; B. x=*(a+3); C. x=a3; D. x=*pa+3; 78. 假定有定义“int b10; int *pb;,那么不正确的赋值语句为 。 A
22、. pb=b; B. pb=&b0; C. *pb=new int; D. pb=b5; 79. 假定p是具有double类型的指针变量,那么表达式+p使p的值以字节为单位增加 。 A. 1 B. 4 C. sizeof(double) D. sizeof(p) 80. 假定p指向的字符串为string,那么coutp+3的输出结果为 。 A. string B. ring C. ing D. i 81. 假定p指向的字符串为string,假设要输出这个字符串的地址值,那么运用 。 A. cout*s; B. couts; C. cout&s; D. couttitle,Wang Tao);
23、B. strcpy(book.title,Wang Tao); C. strcpy(*book.title,Wang Tao); D. strcpy(*book)-title,Wang Tao); 86. 假定有“struct BOOKchar title40; float price; BOOK *book;,那么不正确的语句为 。 A. BOOK *x=new book; B. BOOK x=C+ Programming,27.0; C. BOOK *x=new BOOK; D. BOOK *x=book; 87. 假定有“struct BOOKchar title40; float pr
24、ice;book;,那么正确的语句为 。 A. BOOK &x= &book; B. BOOK &x=book; C. BOOK &x=new BOOK; D. BOOK &x=BOOK; 88. 以下对引用的陈述中不正确的选项是 。 A. 每一个引用都是其所引用对象的别名,因此必需初始化 B. 形式上针对引用的操作事实上作用于它所引用的对象 C. 一旦定义了引用,一切针对其所引用对象的操作只能通过该引用间接进展 D. 不须要单独为引用支配存储空间 89. 假定变量a和pa定义为“double a10, *pa=a;,要将12.35赋值给a中的下标为5的元素,不正确的语句是 。 A. pa5=
25、12.35; B. a5=12.35; C. *(pa+5)=12.35; D. *(a0+5)=12.35; 90. 假定变量b和pb定义为“int b10, *pb=b;,要将24赋值给b1元素中,不正确的语句是 。 A. *(pb+1)=24; B. *(b+1)=24; C. *+b=24; D. *+pb=24; 91. 假定指针变量p定义为“int *p=new int(100);,要释放p所指向的动态内存,应运用语句 。 A. delete p; B. delete *p; C. delete &p; D. delete p; 92. 假定指针变量p定义为“int *p=new
26、int30;,要释放p所指向的动态内存,应运用语句 。 A. delete p; B. delete *p; C. delete &p; D. delete p; 93. 假定变量x定义为“int x=5;,要使rx成为x的引用别名,rx应定义为 。 A. int rx=x; B. int rx=&x; C. int *rx=&x; D. int &rx=x; 94. 关于消息,以下说法中不正确的选项是 。 A. 发送消息的对象请求效劳,承受消息的对象供应效劳 B. 消息的发送者必需了解消息的接收者如何相应消息 C. 在C+中,消息的发送详细表达为对接收消息的对象的某个函数的调用 D. 每个对
27、象只能接收某些特定格式的消息 95. 关于封装,以下说法中不正确的选项是 。 A. 通过封装,对象的全部属性和操作结合在一起,形成一个整体 B. 通过封装,一个对象的实现微小环节被尽可能地隐藏起来不行见 C. 通过封装,每个对象都成为相对独立的实体 D. 通过封装,对象的属性都是不行见的 96. 面对对象方法的多态性是指 。 A. 一个类可以派生出多个特殊类 B. 一个对象在不同的运行环境中可以有不同的变体 C. 针对一消息,不同的对象可以以适合自身的方式加以响应 D. 一个对象可以是由多个其他对象组合而成的 97. 软件产品在需求发生变更, 运行环境发生变更或发觉软件产品本身的错误或缺乏时进
28、展相应的软件更新的难易程度叫做软件的 。 A. 可维护性 B. 可复用性 C. 兼容性 D. 正确性 98. 软件产品可被全部或局部地再用于新的应用的实力叫做软件的 。 A. 可维护性 B. 可复用性 C. 兼容性 D. 正确性 99. 软件产品及其他软件产品组合成一个整体的难易程度叫做软件的 。 A. 可维护性 B. 可复用性 C. 兼容性 D. 正确性 100. 软件产品精确执行软件需求规格说明书中所规定的任务的实力叫做软件的 。 A. 可维护性 B. 可复用性 C. 兼容性 D. 正确性 101. 面对对象软件开发中运用的OOA表示 。 A. 面对对象分析 B. 面对对象设计 C. 面对
29、对象语言 D. 面对对象方法 102. 面对对象软件开发中运用的OOD表示 。 A. 面对对象分析 B. 面对对象设计 C. 面对对象语言 D. 面对对象方法 103. 关于面对对象系统分析,以下说法中不正确的选项是 。 A. 术语“面对对象分析可以用缩写OOA表示 B. 面对对象分析阶段对问题域的描述比实现阶段更详细 C. 面对对象分析包括问题域分析和应用分析两个步骤 D. 面对对象分析须要识别对象的内部和外部特征 104. 在一个类的定义中,包含有 成员的定义。 A. 数据 B. 函数 C. 数据和函数 D. 数据或函数 105. 在类作用域中能够通过干脆运用该类的 成员名进展访问。 A.
30、 私有 B. 公用 C. 爱惜 D. 任何 106. 在关键字public后面定义的成员为类的 成员。 A. 私有 B. 公用 C. 爱惜 D. 任何 107. 在关键字private后面定义的成员为类的 成员。 A. 私有 B. 公用 C. 爱惜 D. 任何108. 假定AA为一个类,a为该类公有的数据成员,x为该类的一个对象,那么访问x对象中数据成员a的格式为 。 109. 假定AA为一个类,a()为该类公有的函数成员,x为该类的一个对象,那么访问x对象中函数成员a()的格式为 。 A. x.a B. x.a() C. x-a D. x-a()110. 假定AA为一个类,a为该类公有的数据
31、成员,px为指向该类对象的一个指针,那么访问px所指对象中数据成员a的格式为 。 111. 假定AA为一个类,a为该类私有的数据成员,GetValue()为该类公有函数成员,它返回a的值,x为该类的一个对象,那么访问x对象中数据成员a的格式为 。 A. x.a B. x.a() C. x-GetValue() D. x.GetValue() 112. 假定AA为一个类,int a()为该类的一个成员函数,假设该成员函数在类定义体外定义,那么函数头为 。 A. int AA:a() B. int AA:a() C. AA:a() D. AA:int a() 113. 假定AA为一个类,a为该类公
32、有的数据成员,假设要在该类的一个成员函数中访问它,那么书写格式为 。 A. a B. AA:a C. a() D. AA:a() 114. 假设须要把一个类外定义的成员函数指明为内联函数,那么必需把关键字 放在函数原型或函数头的前面。 A. in B. inline C. inLine D. InLiner 115. 在多文件构造的程序中,通常把类的定义单独存放于 中。 A. 主文件 B. 实现文件 C. 库文件 D. 头文件 116. 在多文件构造的程序中,通常把类中全部非内联函数的定义单独存放于 中。 A. 主文件 B. 实现文件 C. 库文件 D. 头文件 117. 在多文件构造的程序中,通常把含有main()函数的文件称为 。 A. 主文件 B. 实现文件 C. 程序文件 D. 头文件 118. 一个C+程序文件的扩展名为 。 A. .h B. .c C. .cpp D. .cp