C++练习题
一、选择题
1. C++语言是从早期的C语言逐渐发展演变而来的。与C语言相比,它在求解问题方法上进行的最大改进是( B )。
A.面向过程 B.面向对象 C.安全性 D.复用性
2. C++对C语言作了很多改进,即从面向过程变成为面向对象的主要原因是 ( D )。
A. 增加了一些新的运算符 B. 允许函数重载,并允许设置缺省参数
C. 规定函数说明符必须用原型 D. 引进了类和对象的概念
3. 对C++语言和C语言的兼容性,描述正确的是( A )。
A.C++兼容C B.C++部分兼容C C.C++不兼容C D.C兼容C++
4. 在C++中,头文件扩展名为( B )。
A. .cpp B. .h C. .1ib D. .obj
5. C++源程序文件扩展名为( A ) 。
A. .cpp B. .h C. .1ib D. .obj
6. 由C++源程序文件编译而成的目标代码文件的缺省扩展名为( C )。
A. .cpp B. .exe C. .obj D. .lik
7. 布尔类型标识符是( D )。
A.void B.short C.long D.bool
8. 下列不是C++语言的基本数据类型的是( D )。
A.字符类型 B.整数类型 C.逻辑类型 D.枚举类型
9. 用于标识十六进制前缀或后缀是( D )。
A. 后缀L B.后缀e C.前缀零 D.前缀0x
10. 设x和y均为bool量,则x&&y为真的条件是( A )。
A. 它们均为真 B. 其中一个为真 C. 它们均为假 D. 其中一个为假
11. 在下列成对的表达式中,运算结果类型相同的一对是( D )。
A.7/2和7.0/2.0 B.7/2.0和7/2 C.7.0/2和7/2 D.7.0/2.0和7.0/2
12. 如果a=1,b=2,c=3,d=4,则条件表达式a<b?a:c<d?c:d的值为( A )。
A.1 B.2 C.3 D.4
13.在预编译指令中,宏定义使用哪个指令( B )。
A.#include B.#define C.#if D.#else
14. 包含自定义头文件file.h的预处理指令是( D )。
A.#define<file.h> B.#include file.h C.#define file.h D.#include"file.h"
15. 可替换#define PI 3.1415926的语句是( B )。
A.float PI 3.1415926; B.const float PI=3.1415926;
C.const PI(3.1415926); D.const 3.1415926;
16. 在C++中使用流进行输入输出,其中专用于从键盘进行输入的流是( B )。
A.cerr B.cin C.cout D.cfile
17.在C++中使用流进行输入输出,其中用于屏幕输出的对象是( C )。
A.cerr B.cin C.cout D.cfile
18. 下列给字符数组进行的初始化中,正确的是 ( A )。
A. char s1[]="abcd"; B.char s2[3]="xyz";
C. char s3[][]={'a','x','y'}; D.char s4[2][3]={"xyz","mnp"};
19. 在int b[][3]={{1},{3,2},{4,5,6},{0}}中,a[2][2]的值是( C )。
A. 0 B. 5 C.6 D.2
20. int a=3;int *p=&a;中,*p的值是( D ) 。
A.变量a的地址值 B.无意义 C.变量p的地址值 D. 3
21. 对于int *pa[5];的描述,正确的是 ( D )。
A. pa是一个指向数组的指针,所指向的数组是5个int型元素
B. pa是一个指向某数组中第5个元素的指针,该元素是int型变量
C. pa[5]表示某个数组中的第5个元素的值
D. pa是一个具有5个元素的指针数组,每个元素是一个int型指针
22. 已知:int a,&ra=a;关于ra的描述中正确的是 ( C )。
A. ra是int型变量a的地址值 B.a是int型变量ra的地址值
C. ra是int型变量a的引用 D. ra是int型变量a的指针
23. 假定变量x定义为“int x=5;”,要使rx成为x的引用(别名),rx应定义为( D )。
A. int rx=x; B. int rx=&x; C. int *rx=&x; D. int &rx=x;
24. 设存在整型变量int x,则下列语句中与其它三项含义不同的是( A ) 。
A.int* p=&x; B.int& p=x; C.int & p=x; D.int &p=x;
25. 设函数void swap(int&,int&)将交换两形参的值,如两整型变量int a=10;int b=15;
则执行swap(a,b)后,a、b值分别为( C ) 。
A.10,10 B.10,15 C.15,10 D.15,15
26. 设存在函数int min(int,int)返回两参数中较小值,若求15,26,47三者中最小值,下列表达式中错误的是( B ) 。
A.int m=min(min(15,26),min(15,47)); B.int m=min(15,26,47);
C.int m=min(15,min(47,26)); D.int m =min(min(47,26),16);
27.设存在函数int max(int,int)返回两参数中较大值,若求22,59,70三者中最大值,下
列表达式不正确的是( C )。
A.int m = max(22,max(59,70)); B.int m = max(max(22,59),70);
C.int m = max(22,59,70); D.int m = max(59,max(22,70));
28. 以下正确的函数原型语句是( 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);
29. 在函数声明中,下面哪项不是必要的( D )。
A.函数参数的类型和参数名 B.函数名
C.函数的类型 D.函数体
30. 使用值传递方式将实参传给形参,下列说法正确的是( A )。
A.形参是实参的备份 B.实参是形参的备份
C.形参和实参是同一对象 D.形参和实参无联系
31. 在每个C++程序中都必须包含有这样一个函数,该函数的函数名为( A )
A. main B. MAIN C. name D. function
32. 包含哪种语句的函数不能声明为内联函数( A )。
A.循环 B.变量自增自减 lse… D.变量声明
33. 在( C )情况下适宜采用inline定义内联函数。
A.函数体含有循环语句 B.函数体含有递归语句
C.函数代码少、频繁调用 D.函数代码多、不常调用量
34. 一个函数功能不太复杂,但要求被频繁调用,选用( A )。
A.内联函数 B.重载函数 C.递归函数 D.嵌套函数
35. 在C++中,关于下列设置参数默认值的描述中,正确的是 ( C )。
A.不允许设置参数的默认值
B.设置参数默认值只能在定义函数时设置
C.设置参数默认值时,指向类成员函数的指针应该是先设置右边的再设置左边的
D.设置参数默认值时,应该全部参数都设置
36. 函数默认参数在函数原型中说明,默认参数必须放在参数序列的( C )。
A.前部 B.中部 C.后部 D.两端
37. 下列哪种默认参数的声明是不正确的( C )。
A. int max(int a,int b,int c,int d=0);
B. int max(int a,int b,int c=0,int d=0);
C. int max(int a=0,int b,int c=0,int d=0);
D. int max(int a,int b=0,int c=0,int d=0);
38.下列函数不能和函数void print(char)构成重载的是( C ) 。
A.int print(int); B.void print(char,char);
C.int print(char); D.void print(int,int);
39.int Func(int,int);不可与下列哪个函数构成重载( B )。
A.int Func(int,int,int); B.double Func(int,int);
C.double Func(double,double); D.double Func(int,double);
40. 定义函数模板中使用的参数类型标识符需使用下列哪组符号括起来( A )。
A.<> B.“” C.() D.{}
41. 设有函数T Sum(T x,T y){return x+y;},其中T为模板类型,则下列语句中对该函数错误的使用是( D ) 。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论