C++复习200
说明:该复习题供安徽科技学院信息安全专业2017级《C++面向对象程序设计》课程复习之用,红部分为参考答案,其中缺点或不完善之处在所难免,欢迎同学们批评指正。
目  录
一、选择题:    2
二、填空题    10
三、写出程序运行结果    11
四、完成程序题    16
五、程序设计题    24

一、选择题:
1. 关于C++C语言的关系描述中,错误的是(
A. C语言与C++是兼容的              B. C语言是C++的一个子集
C. C++C语言都是面向对象的        D. C++C语言进行了一些改进
2. 关于CC++的描述中,正确的是(
A. C是面向过程,C++是纯面向对象        B. C++C的超集
C. C++是对C的错误的修改                D. C++C没有关系
3. C++C作了很多改进,从面向过程成为面向对象的主要原因是(
A. 增加了一些新的运算符          B. 允许函数重载,并允许设置参数默认值
C. 规定函数必须用原型            D. 引进了类和对象的概念
4. 将高级语言编写的源程序翻译成目标程序的是(
A. 解释程序    B. 编译程序    C. 汇编程序    D. 调试程序
5. C++语言是从早期的C语言逐渐发展演变而来的,与C语言相比,它在求解问题方法上进行的最大改进是(
A. 面向过程      B. 面向对象   C. 安全性    D. 复用性
6. C++语言支持过程程序设计方法和( )设计方法。
A. 面向对象      B. 面向函数    C. 面向用户    D. 面向问题
7. C++语言最有意义的方面是支持(
A. 面向事件    B. 面向程序    C. 面向对象     D. 面向用户
8.下列说法中,正确的是(
A. C++程序总是从第一个定义的函数开始执行
B. C++程序总是从主函数开始执行
C. C++函数必须有返回值,否则不能调用此函数
D. C++程序中有调用关系的所有函数必须放在同一个源程序文件中
9. 下列描述中,正确的是(
A. 程序就是软件                  B. 软件开发不受计算机系统的限制
C. 软件既是逻辑实体,又是物理实体 D. 软件就是程序、数据与相关文档的集合
10. C++语言中,自定义的标识符(
A. 能使用关键字并且不区分大小写    B. 不能使用关键字并且不区分大小写
C. 能使用关键字并且区分大小写      D. 不能使用关键字并且区分大小写
11. 不能用于组成C++程序标识符的是(
A. 连接符 B. 下划线 C. 大小写字母 D. 数字字符
12. 下列符号中,不可作为分隔符的是(
A. 逗号          B. 分号        C. 问号       D. 空格
13. 下列变量名中,合法的是(
A. CHINA      B. byte-size        C. double        D. A+a
14. 注释的目的主要是用来提高(
A. 可读性       B. 可移植性      C. 运行效率      D. 编码效率
15. 程序中的注释部分(
A. 参加编译,并会出现在目标程序中          B. 参加编译,但不会出现在目标程序中
C. 不参加编译,但会出现在目标程序中      D. 不参加编译,也不会出现在目标程序中
16. 在一个C++程序中(
A. main函数必须出现在所有函数之前        B. main函数可以在任何地方出现
C. main函数必须出现在所有函数之后        D. main函数必须出现在固定位置
17. C++语言可执行程序的开始执行点是(
A. 程序中第一条可执行语言                  B. 程序中第一个函数
C. 程序中的main函数                       D. 包含文件中的函数
18. 关于内置函数的说法中,不正确的是(
A. 内置函数不需要使用堆栈进行现场的保护与恢复
B. 内置函数以牺牲程序的存储空间换取程序的执行时间
C. 内置函数体内不能有循环语句
D. 类的内置函数必须在类体外通过加关键字inline定义
19. 在函数定义前加上inline表示该函数被定义为(
A. 重载函数      B. 内置函数      C. 成员函数      D. 普通函数
20. 关于设置C++函数参数默认值的描述中,正确的是(
A. 不允许设置函数参数的默认值
B. 只能在定义函数时设置函数参数的默认值
C. 设置函数参数默认值时,应该是先设置右边的再设置左边的
D. 设置函数参数默认值时,应该全部参数都设置
21. 若同时定义了下列四个选项格式的函数和模板,fun(8,3.1)调用的是(
A. template<class T1,class T2)fun(T1,T2)      B. fun(double,int)
C. fun(char,char)                              D. fun(double,char)
22. 关于函数模板的叙述中,正确的是(
A. 函数模板实际上是函数类型和形参类型不具体指定的通用函数
B. 函数模板可以用于描述函数体不同的一系列函数
C. 函数模板可以用于描述参数个数不同的一系列函数
D. 函数模板定义中typenameclass的作用不同
23已知函数func的原型是:double func(double*pd,int &ri);
变量xy的定义是:析构函数的定义double x; int y;
xy分别作为第一参数和第二参数来调用func,正确的调用语句是(
A. func(x,&y);    B. func(&x,y);      C. func(&x,&y);      D. func(x,y);
24. 定义一个函数模板要用到的第一个修饰符是(
A. typename        B. template     C. class        D. typedef
25. 为了提高程序的运行速度,可将不太复杂的功能用函数实现,此函数应选择(
A. 内置函数       B. 重载函数      C. 递归函数    D. 函数模板
26. 关于函数模板的叙述中,正确的是(
A. 函数模板也是一个具体类型的函数
B. 函数模板的类型参数与函数的参数是同一个概念
C. 通过使用不同的类型参数,函数模板可以生成不同类型的函数
D. 用函数模板定义的函数没有类型
27. 在函数的传值调用中,要求(
A. 形参和实参类型任意,个数相等      B. 形参和实参类型相同,个数相等
C. 形参和实参对应类型一致,个数相等   D. 形参和实参对应类型一致,个数任意
28. 设函数模板定义为
template<class T>
T f(T x,T y){return x+y;}
对该函数模板使用不正确的是(
A. f(4,8);    B. f(4.9,8.5);    C. f(12.8f,45.9f);    D. f("123",456);
29. 若在程序中有一个名字为a1的全局标识符,在该程序的某函数中有一个同名的局部标识符,如果在该函数中访问这个同名的全局标识符,则该全局标识符应表示为(
A. a1        B. a1::          C. ->a1        D. ::a1
30. 在函数说明中,不必要的是(
A. 函数的类型    B. 函数参数的类型    C. 函数的名字    D. 函数参数的名字
31. 预处理命令在程序中都是以( )开头的。
A. *      B. #      C. :      D. /
32. 以下的函数调用语句中实参的个数是(
fun(a+b, (x, y), fun(n+k, d, (a, b)));
A. 3    B. 4      C. 5      D. 6
33. C++语言中允许同一程序中有相同的函数名存在,称为(
A. 类型转换        B. 结构体          C. 函数重载   D. 函数原型
34. 下列关于C++函数的说法中正确的是(
A. 若函数先定义后调用,则必须在调用前说明
B. 如函数先调用后定义,则必须在调用前说明
C. 不论函数定义与调用的先后,都必须在调用前说明
D. 不论函数定义与调用的先后,都不必在调用前说明
35. 若函数没有返回值,则该函数的类型应被说明为(
A. void         B. int        C. char        D. double
36. C++中,下列关于函数原型的描述中错误的是(
A. 如果函数先定义后调用,则该函数不能有函数原型说明
B. 函数原型与函数定义在返回类型、函数名及参数表上必须完全一致
C. 函数原型不必包含参数的名字,而只要包含参数的类型
D. 函数原型说明是语句
37. 通常情况下,函数模板中的类型参数个数不能是(
A. 0      B. 1      C. 2    D. 3
38. 文件包含命令中对被包含的文件名的要求是(
A. 必须为.h      B. 不能用.h      C. 必须是.cpp   D. 不一定是.h

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。