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. 关于C和C++的描述中,正确的是( )
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. 函数模板定义中typename和class的作用不同
23已知函数func的原型是:double func(double*pd,int &ri);
变量x和y的定义是:析构函数的定义double x; int y;
把x和y分别作为第一参数和第二参数来调用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小时内删除。
发表评论