本科《C++语言程序设计》期末复习模拟训练题
一、单选题
1.在每个 C++程序中都必须包含有这样一个函数,该函数的函数名为(A)。
A. main B. MAIN C. name D. function
2.设 x 和 y 均为 bool 量,则 x && y 为真的条件是(D)。
A. 其中一个为假 B. 其中一个为真
C. 它们均为假 D. 它们均为真
3. 逻辑表达式 x>0 || y==5 的相反表达式为(B)。
A. x<=0 || y!=5 B. x<=0 && y!=5
C. x>0 || y!=5 D. x>0 && y==5
4. 假定 p 是一个指向 float 型数据的指针,则 p+1 所指数据的地址比 p 所指数据的地址大(C)
个字节。
A. 1 B. 2 C. 4 D. 8
5. 枚举类型中的每个枚举常量的值都是一个(A)。
A. 整数 B. 浮点数
C. 字符 D. 逻辑值
6. 循环体至少被执行一次的语句为(C)语句。
A. for 循环 B. while 循环
C. do 循环 D. 任一种循环
7. 在下面的字符数组定义中,(D)语句有语法错误。
A. char a[20]=”abcdefg”; B. char a[]=”x+y=55.”;
C. char a[15]={’1’,’2’}; D. char a[10]=’5’;
8. 若用数组名作为函数调用的实参,传递给形参的是(A)。
A. 数组的首地址 B. 数组中第一个元素的值
C. 数组全部元素的值 D. 数组元素的个数
9.假定 AB 为一个类,则执行“AB a(4), b[5], *p[2];”语句时,自动调用该类构造函数的次数为
(A)。
A. 6 B. 7 C. 9 D. 11
10.当使用 fstream 流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为
(D)。
A. ios::in B. ios::out
C. ios::in | ios::out D. 没有
11. 枚举类型中的每个枚举常量的值都是一个(A)值。
A. 整数 B. 浮点数
C. 字符 D. 逻辑
12.设 x 和 y 均为 bool 量,则逻辑表达式 x || y 为假的条件是(C)。
A. 它们均为真 B. 其中一个为真
C. 它们均为假 D. 其中一个为假
13. 声明或定义一个内联函数时,必须在函数开始使用保留字(D)。
A. static B. const
C. extern D. inline
14. 在下面的函数声明中,存在着语法错误的是(D)。
A. BC(int a, int); B. BC(int, int);
C. BC(int, int=5); D. BC(int x; int y);
15. 假定 a 为一个整型数组名,则元素 a[4]与(C)的表示等价。
A. a+4 B. *a+4
C. *(a+4) D. *(a+16)
16. 下面循环语句执行结束后输出的 i 值为(B)的值。
for(int i=0; i<n; i++) if(i>n/2) {cout<<i<<endl; break;}
A. n/2 B. n/2+1 C. n-1 D. n
17. 将两个字符串连接起来组成一个字符串时,选用(C)函数。
A. strlen() B. strcpy()
C. strcat() D. strcmp()
18. 预处理命令在程序中都是以(B)字符开头的。
A. * B. # C. & D. @
19. 假定有定义“struct BOOK{char title[40]; float price;};”,则不正确的变量定义语句为(D)。
A. BOOK x; B. BOOK x={"C++ Programming",27.0};
C. BOOK *x=new BOOK; D. BOOK x=new BOOK;
20. 假定 AB 为一个类,px 为指向该类动态对象数组的指针,该数组长度为 n,则执行“delete
[]px;”语句时,自动调用该类析构函数的次数为(B)。
A. 1 B. n C. n-1 D. n+1
21. 由 C++源程序文件编译而成的目标文件的缺省扩展名为(A)。
A. obj B. lik C. exe D. cpp
22. 程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用(D)符号作为分隔符。
A. 空格或逗号 B. 逗号或回车
C. 逗号或分号 D. 空格或回车
23. 设 x 是一个 bool 型的逻辑量,y 的值为 10,则表达式 x && y 的值为(C)。
A. 1 B. 0 C. 与 x 值相同 D. 与 x 值相反
24. for 语句能够被改写为(D)语句。
A. 复合 B. if C. switch D. while
25. 在下面的 do 循环语句中,其循环体被执行的次数为(A)。
int i=0; do i++; while(i*i<10);
A. 4 B. 3 C. 5 D. 2
26. 在下面的一维数组定义中,(C)语句有语法错误。
A. int a[]={1,2,3}; B. int a[10]={0};
C. int a[]; D. int a[5];
27. 下面的(C)保留字不能作为函数的返回类型。
A. void B. int C. new D. long
28. 下面的函数声明中,(B)是“void BC(int a, int b);”的重载函数。
A. int BC(int x, int y); B. void BC(int a, char b);
C. float BC(int a, int b, int c=0);
D. int BC(int a, int b=0);
29. 当类中一个字符指针成员指向具有 n 个字节的存储空间时,它所能存储字符串的最大长度
为(C)。
A. n B. n+1 C. n-1 D. n-2
30. 假定 AB 为一个类,则该类的拷贝构造函数的声明语句为(D)。
A. AB&(AB x); B. AB(AB x);
C. AB(AB* x); D. AB(AB&);
31. C++程序的基本功能模块为(D)。
A. 表达式 B. 标识符
C. 语句 D. 函数
32. 存储以下数据,占用存储字节最多的是(A)。
A. 0 B. ’0’ C. ”0” D. ’’
33. 在下面的一维数组定义中,有语法错误的是(C)。
A. int a[]={1,2,3}; B. int a[10]={0};
C. int a[]; D. int a[5];
34. 在下面的语句或语句组中,(B)不正确。
A. int a[5]; B. int M=10; int a[M];
C. int a[]={1,5,10,45}; D. const int N=12; int a[N];
35.C++语言中的每条简单语句以(B)作为结束符。
A. 逗号 B. 分号 C. 空格 D. 换行符
36. 含随机函数的表达式 rand()%20 的值在(C)区间内。
A. 1~19 B. 1~20 C. 0~19 D. 0~20
37. 当处理一个特定的问题时,若循环次数已知,则通常采用(A)来解决。
A. for 循环 B. while 循环 C. do 循环 D. switch 语句
38. 在下面循环语句中内层循环体 S 语句的执行总次数为(D)。
for(int i=0; i<n; i++)
for(int j=i; j<n; j++) S;
A. n
2
B.(n+1)/2 C. n(n-1)/2 D. n(n+1)/2
39. 若函数声明为 double* function(), 则该函数的返回值为(B)。
A. 实数型 B. 实数指针型 C. 函数指针型 D. 数组型
40. 假定变量 m 定义为“int m=7;”,则定义变量 p 的正确语句为(B)。
A. int p=&m; B. int *p=&m;
C. int &p=*m; D. int *p=m;
二、填空题
1.C++语言中的每条基本语句以 ; 作为结束符,每条复合语句以 } 作为结束符。
2.用于输出表达式值的标准输出流对象是 cout ,用于从键盘上为变量输入值的标准入流对象
是 cin 。
3.当不需要函数返回任何值时,则应把该函数类型定义为 void 。
4.执行“cout<<143<<’+’<<18<<’=’<<143+18<<endl;”语句后得到的输出结果为 143+18=161 。
5.执行“cout<<“ning”<<“chen”<<38<<endl;”语句后得到的输出结果为 ningchen 38。
6.在每个 C++程序中都必须包含有这样一个函数,该函数的函数名为 main 。
7.C++源程序文件的缺省扩展名为 .cpp ,由 C++源程序文件编译而成的目标文件的缺省扩展
名为 .obj ,由 C++目标文件连接而成的可执行文件的缺省扩展名为 .exe 。