ImageVerifierCode 换一换
格式:DOCX , 页数:42 ,大小:42.39KB ,
资源ID:7443182      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7443182.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C++面向对象程序设计复习题集.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C++面向对象程序设计复习题集.docx

1、C+面向对象程序设计复习题集C+面向对象程序设计复习题集一、单项选择题 21. 假定下列x和y均为int型变量,则不正确的赋值为( B )。 A. x+=y+ B. x+=y+ C. x=+y D. +x=+y 23. 循环语句“for(int i=0; in; i+) couti*i ;”中循环体执行的次数为( C )。 A. 1 B. n-1 C. n D. n+1 25. 在下面循环语句中内层循环体S语句的执行总次数为( D )。 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(

2、n+1)/2 26. 在下面循环语句中循环体执行的次数为( C )。 int i=0,s=0; while(s20) i+; s+=i; A. 4 B. 5 C. 6 D. 7 27. 在下面循环语句中循环体执行的次数为( A )。 int i=0; do i+; while(i*i10); A. 4 B. 3 C. 5 D. 2 37. 若定义了函数 double *function(), 则函数function的返回值为( B )。 A. 实数型 B.实数的地址 C.指向函数的指针 D.函数的地址 38. 以下说法中正确的是( B )。 A. C+程序总是从第一个定义的函数开始执行 B.

3、C+程序总是从main函数开始执行 C. C+函数必须有返回值,否则不能使用函数 D. C+程序中有调用关系的所有函数必须放在同一个程序文件中 40. 函数重载是指( A )。 A. 两个或两个以上的函数取相同的函数名,但形参的个数或类型不同 B. 两个以上的函数取相同的名字和具有相同的参数个数,但形参的类型可以不同 C. 两个以上的函数名字不同,但形参的个数或类型相同 D. 两个以上的函数取相同的函数名,并且函数的返回类型相同 41. 以下关于函数模板叙述正确的是( C )。 A. 函数模板也是一个具体类型的函数 B. 函数模板的类型参数与函数的参数是同一个概念 C. 通过使用不同的类型参数

4、,函数模板可以生成不同类型的函数 D. 用函数模板定义的函数没有类型 42. 下列( C )的调用方式是引用调用。 A. 形参和实参都是变量 B.形参是指针,实参是地址值 C. 形参是引用,实参是变量 D.形参是变量,实参是地址值 43. 为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应选择( A )。 A. 内联函数 B.重载函数 C.递归函数 D.函数模板 44. 函数原型语句正确的是( B )。 A. int Function(void a); B.void Function (int); C. int Function(a); D.void int(double a);

5、45. C+中函数返回值的类型是由( B )决定的。 A. return语句中表达式的类型 B.该函数定义时的类型 C.调用函数时的调用语句 D.系统根据结果 46. 以下函数的返回结果是( A )。 int function(char *x) char *p=x; while(*p+); return(p-x-1); A. 求字符串的长度 B.将字符串x连接到字符串p后面 C. 将字符串x复制到字符串p中 D.将字符串x反向存放 48. 设有如下函数定义 int f(char *s) char *p=s; while(*p!=0) p+; return(p-s); 在主函数中用coutf(“

6、good”)调用上述函数, 则输出结果为( B )。 A. 3 B. 4 C. 5 D. 6 49. 以下正确的函数原型语句是( C )。 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. 以下正确的说法是( B )。 A. 用户调用标准库函数前,必须重新定义 B. 用户可以重新定义标准库函数,若如此,该函数将失去原有含义 C. 系统不允许用户重新定义标准库函数 D. 用户调用标准库函数前,不必使用预编译命令将该函数所在文件包括到用户

7、源文件中 51. 函数调用不可以( D )。 A. 出现在一个表达式中 B. 出现在执行语句中 C. 作为一个函数的实参 D. 作为一个函数的形参 55. 以下正确的描述是( C )。 A. 不允许设置参数的默认值 B. 设置参数的默认值只能在定义函数时设置 C. 设置参数的默认值时,应该设置右边的参数 D. 设置参数的默认值时,应该全部参数都设置 56. 采用重载函数的目的是(D )。 A. 实现共享 B. 减少空间 C. 提高速度 D. 使用方便,提高可读性 58. 以下叙述中正确的是( B )。 A. 使用#define可以为常量定义一个名字,该名字在程序中可以再赋另外的值 B. 使用c

8、onst定义的常量名有类型之分,其值在程序运行时是不可改变的 C. 在程序中使用内联函数使程序的可读性变差 D. 在定义函数时可以在形参表的任何位置给出缺省形参值 59. 下面的标识符中,( C )是文件级作用域。 A. 函数形参 B.语句标号 C.外部静态类标识符 D.自动类标识符 60. 以下叙述不正确的是(D )。 A. 宏替换不占用运行时间 B. 宏名无类型 C. 宏替换只是字符替换 D. 宏名必须用大写字母表示 61. C+语言的编译系统对宏命令的处理是( D )。 A. 在程序运行时进行 B. 在程序连接时进行 C. 和C+程序的其它语句同时进行编译 D. 在对源程序中其它成分正式

9、编译之前进行 62. 当#include后面的文件名用双引号括起来时,寻找被包含文件的方式是( B )。 A. 直接按系统设定的标准方式搜索目录 B. 先在源程序所在目录搜索,再按系统设定的标准方式搜索目录 C. 仅仅搜索源程序所在目录 D. 搜索当前逻辑盘上的所有目录 63. 当#include后面的文件名用尖括号括起来时,寻找被包含文件的方式是( A )。 A. 直接按系统设定的标准方式搜索目录 B. 先在源程序所在目录搜索,再按系统设定的标准方式搜索目录 C. 仅仅搜索源程序所在目录 D. 搜索当前逻辑盘上的所有目录 64. 在下面存储类中, ( C ) 对象的可见性与生存期不一致。 A

10、. 外部类 B. 自动类 C. 内部静态类 D. 寄存器类 65. 在下面存储类中,( A )的对象不是局部变量。 A. 外部静态类 B. 自动类 C. 函数形参 D. 寄存器类 66. 关于局部变量,下面说法正确的是( C )。 A. 定义该变量的程序文件中的函数都可以访问 B. 定义该变量的函数中的定义处以下的任何语句都可以访问 C. 定义该变量的复合语句中的定义处以下的任何语句都可以访问 D. 定义该变量的函数中的定义处以上的任何语句都可以访问 69. 设array为一个数组,则表达式sizeof(array)/sizeof(array0)的结果为( B )。 A. array数组首地址

11、 B. array数组中元素个数 C. array数组中每个元素所占的字节数 D. array数组占的总字节数 70. 用new运算符创建一个含10个元素的一维整型数组的正确语句是( C )。 A. int *p=new a10; B. int *p=new float10; C. int *p=new int10; D. int *p=new int10=1,2,3,4,5 71. 下列给字符数组赋初值时,正确的是( A )。 A. char s1=”abcdef”; B. char s24=”abcd”; C. char s323=“abc”,”xyz”; D. char s44=a,x,

12、s,t; 72. 设有定义“static int data56;”,设该数组在静态存储区中的起始地址为十进制的100,若每个int型数占4个字节,则数组元素data23的地址为( D )。 A. 115 B.124 C.130 D.160 73. 假定变量m定义为“int m=7;”,则定义变量p的正确语句为( B )。 A. int p=&m; B. int *p=&m; C. int &p=*m; D. int *p=m; 74. 假定k是一个double类型的变量,则关于变量p的正确定义语句为( D )。 A. double p=&k; B. int *p=&k; C. double &

13、p=*k; D. char *p=”Thank you!”; 75. 变量s的定义为“char *s=”Hello world!”;”,要使变量p指向s所指向的同一个字符串,则应选取( A )。 A. char *p=s; B. char *p=&s; C. char *p;p=*s; D. char *p; p=&s; 76. 关于void 指针,下列说法正确的是( C )。 A. void 指针就是未指向任何数据的指针 B. void 指针就是已定义而未初始化的指针 C. 指向任何类型数据的指针可直接赋值给一个void 指针 D. void 指针值可直接赋给一个非void 指针 77. 假

14、定一条定义语句为“int a10, x, *pa=a;”,若要把数组a中下标为3的元素值赋给x,则不正确的语句为( D )。 A. x=pa3; B. x=*(a+3); C. x=a3; D. x=*pa+3; 78. 假定有定义“int b10; int *pb;”,则不正确的赋值语句为( D )。 A. pb=b; B. pb=&b0; C. *pb=new int; D. pb=b5; 79. 假定p是具有double类型的指针变量,则表达式+p使p的值(以字节为单位)增加( C )。 A. 1 B. 4 C. sizeof(double) D. sizeof(p) 80. 假定p指向

15、的字符串为”string”,则coutp+3的输出结果为( C )。 A. string B. ring C. ing D. i 81. 假定p指向的字符串为”string”,若要输出这个字符串的地址值,则使用( D )。 A. cout*p; B. coutp; C. cout&p; D. couttitle,”Wang Tao”); B. strcpy(book.title,”Wang Tao”); C. strcpy(*book.title,”Wang Tao”); D. strcpy(*book)-title,”Wang Tao”); 86. 假定有“struct BOOKchar t

16、itle40; float price; BOOK *book;”,则不正确的语句为( A )。 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 price;book;”,则正确的语句为( B )。 A. BOOK &x= &book; B. BOOK &x=book; C. BOOK &x=new BOOK; D. BOOK &x=BOOK; 88. 下列对引用的陈述中不正确的是( C

17、 )。 A. 每一个引用都是其所引用对象的别名,因此必须初始化 B. 形式上针对引用的操作实际上作用于它所引用的对象 C. 一旦定义了引用,一切针对其所引用对象的操作只能通过该引用间接进行 D. 不需要单独为引用分配存储空间 89. 假定变量a和pa定义为“double a10, *pa=a;”,要将12.35赋值给a中的下标为5的元素,不正确的语句是( D )。 A. pa5=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元素中,不正确的语句是

18、( C )。 A. *(pb+1)=24; B. *(b+1)=24; C. *+b=24; D. *+pb=24; 91. 假定指针变量p定义为“int *p=new int(100);”,要释放p所指向的动态内存,应使用语句( A )。 A. delete p; B. delete *p; C. delete &p; D. delete p; 92. 假定指针变量p定义为“int *p=new int30;”,要释放p所指向的动态内存,应使用语句( D )。 A. delete p; B. delete *p; C. delete &p; D. delete p; 93. 假定变量x定义为

19、“int x=5;”,要使rx成为x的引用(别名),rx应定义为( D )。 A. int rx=x; B. int rx=&x; C. int *rx=&x; D. int &rx=x; 94. 关于消息,下列说法中不正确的是( B )。 A. 发送消息的对象请求服务,接受消息的对象提供服务 B. 消息的发送者必须了解消息的接收者如何相应消息 C. 在C+中,消息的发送具体体现为对接收消息的对象的某个函数的调用 D. 每个对象只能接收某些特定格式的消息 95. 关于封装,下列说法中不正确的是( D )。 A. 通过封装,对象的全部属性和操作结合在一起,形成一个整体 B. 通过封装,一个对象的

20、实现细节被尽可能地隐藏起来(不可见) C. 通过封装,每个对象都成为相对独立的实体 D. 通过封装,对象的属性都是不可见的 96. 面向对象方法的多态性是指( C )。 A. 一个类可以派生出多个特殊类 B. 一个对象在不同的运行环境中可以有不同的变体 C. 针对一消息,不同的对象可以以适合自身的方式加以响应 D. 一个对象可以是由多个其他对象组合而成的二、填空题 2. C+语言的编译单位是扩展名为_.cpp_的_程序_文件。 4. 多行注释的开始标记符和结束标记符分别为_/*_和_*/_。 8. 一个函数的函数体就是一条_复合_语句。 10. 在C+程序中包含一个头文件或程序文件的预编译命令

21、为_#include_。 13. 在#include命令中所包含的头文件,可以是系统定义的头文件,也可以是_用户(或编程者)_定义的头文件。 14. 使用#include命令可以包含一个头文件,也可以包含一个_程序_文件。 15一个函数定义由_函数头_和_函数体_两部分组成。 16若一个函数的定义处于调用它的函数之前,则在程序开始可以省去该函数的_原型(或声明)_语句。 18程序文件的编译错误分为_警告(warning)_和_致命(error)_两类。 21从一条函数原型语句“int fun1(void);”可知,该函数的返回类型为_int_,该函数带有_0_个参数。 22. 当执行cout语

22、句输出endl数据项时,将使C+显示输出屏幕上的光标从当前位置移动到_下一行_的开始位置。 23. 假定x=5,y=6,则表达式x+*+y的值为_35_。 24. 假定x=5,y=6,则表达式x-*-y的值为_25_。 25. 假定x=5,y=6,则执行表达式y*=x+计算后,x和y的值分别为_6_和_30_。 26. 假定x=5,y=6,则执行表达式y+=x-计算后,x和y的值分别为_4_和_11_。 31. signed char类型的值域范围是_-128_至_+127_之间的整数。 34. bool和char类型的数据分别占用_1_和_1_个字节。 35. unsigned short

23、int和int类型的长度分别为_2_和_4_。 36. 字符串”Thiss a book.n”的长度为_15_。 37. 字符串”nThiss a pennn”的长度为_15_。 40. 假定x和y为整型,其值分别为16和5,则x%y和x/y的值分别为_1_和_3_。 41. 假定x和y为整型,其值分别为16和5,则x/y和double(x)/y的值分别为_3_和_3.2_。 42. 假定x是一个逻辑量,则x & true的值为_x_。 43. 假定x是一个逻辑量,则x | true的值为_true(或1)_。 44. 假定x是一个逻辑量,则x & false的值为_false(或0)_。 4

24、5. 假定x是一个逻辑量,则x | false的值为_x_。 46. 假定x是一个逻辑量,则!x | false的值为_!x_。 47. 假定x是一个逻辑量,则x & !x的值为_false(或0)_。 48. 假定x是一个逻辑量,则x | !x的值为_ true(或1)_。 52. 设enum Printstatusready,busy,error; 则 coutbusy的输出结果是_1_。 53. 设enum Printstatusready=2,busy,error; 则coutbusy的输出结果是_3_。 54. 常数-4.205和6.7E-9分别具有_4_和_2_位有效数字。 55.

25、 枚举类型中的每个枚举值都是一个_枚举常量_,它的值为一个_整数_。 56. 常数100和3.62的数据类型分别为_int_和_double_。 57. 若x=5, y=10, 则计算y*=+x表达式后,x和y的值分别为_ 6_和_60_。 58. 假定x和ch分别为int型和char型,则sizeof(x)和sizeof(ch)的值分别为_4_和_1_。 59. 假定x=10,则表达式x=10?20:30的值为_20_。 60. 表达式sqrt(81)和pow(6,3)的值分别为_9_和_216_。61. 含随机函数的表达式rand()%20的值在_0_至_9_区间内。 62. 在switc

26、h语句中,每个语句标号所含关键字case后面的表达式必须是整型_常量_。 63. 在if语句中,每个else关键字与它前面同层次并且最接近的_if_关键字相配套。 64. 作为语句标号使用的C+保留字case和default只能用于_switch_语句的定义体中。 65. 执行switch语句时,在进行作为条件的表达式求值后,将从某个匹配的标号位置起向下执行,当碰到下一个标号位置时_不停止_执行。 66. 若while循环的“头”为“while(i+=10)”,并且i的初值为0,同时在循环体中不会修改i的值,则循环体将被重复执行_11_次后正常结束。 67. 若do循环的“尾”为“while(+ia_。 81. 若a是一个字符数组,则向屏幕输出a中所存字符串的表达式为_couta_。 82. 一个二维字符数组a1020能够存储_10_个字符串,每个字符串的长度至多为_19_。 83. 对一个二维字符数组a进行初始化

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1