C++程序设计考试题库(精简版)
【章节】第1章C++基础知识 【知识点】
1、C++程序的构成与书写形式; 2、基本数据类型,常量、变量和表达式 3、C++的标准输入输出 【单选题】
1、在C++中,源程序变为可执行程序的正确顺序应该是( ) 。 A. 编辑、链接、编译、执行 B. 编辑、编译、链接、执行 C. 编译、编辑、链接、执行 D. 编译、链接、编辑、执行 答案:B
2、要把高级语言编写的源程序转换为目标程序,需要使用( ) 。 A. 编辑程序 B. 驱动程序 C. 调试程序 D. 编译程序 答案:D
3、下列关于C++与C语言的关系描述中,错误的是( ) 。 A. C语言是C++语言的一个子集 B. C++与C语言是兼容的 C. C++对C语言进行了一些改进 D. C++和C语言都是面向对象的 答案:D
4、下面为使用面向对象语言的正确理由是( ) 。
A. 面向对象程序由三种基本结构组成,分别是顺序结构、选择结构和循环结构
B. 程序语句比面向过程语言简单
C. 面向对象程序设计可以设计为自行修改错误 D. 面向对象程序很容易概念化 答案:D
5、以下选项中,合法的用户标识符是( ) 。 A. long B. _2Test C. 3Dmax D. A.dat 答案:B
6、下列描述中正确的是( ) 。
A. 不是每个C++程序都必须包含预处理命令#include B. C++程序必须有return 语句
C. C++程序中的变量必须定义在主程序内部 D. C++程序中所使用的符号常量可以不进行定义 答案:A
7、C++源程序文件的扩展名为( ) 。 B. .C C. .DLL D. .EXE 答案:A
8、cout是I0流库预定义的( ) 。 A. 类 B. 对象 C. 包含文件 D. 常量 答案:B
9、C++对C语言作了很多改进,即从面向过程变成为面向对象的主要原因是( ) 。
A. 增加了一些新的运算符
B. 允许函数重载,并允许设置缺省参数
C. 规定函数说明符必须用原型 D. 引进了类和对象的概念 答案:D
10、下列选项中,( ) 是不合法的标识符. A. Program B. Obj23 C. double D. B_C_D 答案:C
11、下列标识符中,不合法的用户标识符为( ) 。 A. a~! B. _int C. a_10 D. PAd 答案:A
12、只能向终端输出一个字符的函数是( ) 。 A. pringf函数 B. putchar函数 C. getchar函数 D. scanf函数 答案:B
13、如果有整型量int x = 5,执行情况x += 1.9 后x的值为( ) 。 A. 6 B. 7
C. 结果不确定 D. 表达式非法 答案:A
14、已知a=5,b=3,表达式a+=a*=++b*3的值为( ) 。 A. 40 B. 80
D. 120 答案:D
20、在C++语言中,自定义的标识符( ) 。 A. 能使用关键字并且不区分大小写 B. 不能使用关键字并且不区分大小写 C. 能使用关键字并且区分大小写 D. 不能使用关键字并且区分大小写 答案:D
32、C++语言程序的基本单位是( ) 。 A. 程序行 B. 语句 C. 函数 D. 字符 答案:B
37、C++ 对C语言作了很多改进,即从面向过程变成为面向对象的主要改进是( )
A. 增加了一些新的运算符
B. 允许函数重载,并允许设置缺省参数 C. 规定函数说明符必须用原型 D. 引进了类和对象的概念 答案:D
38、下列符号属于c++语言用户标识符的是()。 A. DO B. if C. void D. switch 答案:A
39、任意一个类,析构函数的个数最多是( )。 A. 不限个数 B. 1
C. 2 D. 3 答案:B
【章节】第3章函数 【知识点】
1、C++函数的相关知识 2、函数定义与函数的调用 3、内联函数与函数重载 【单选题】
1、若有以下函数调用语句,在此函数调用语句中实参的个数是( ) 。 fun(a+b,(y=10,y),fun(n,k,d)); A. 3 B. 4 D. 6 答案:A
2、以下程序的运行结果是( ) 。 int main() { int k=4,m=1,p; p=func(k,m);
cout<
p=func(k,m);
cout<
}
func(int a,int b) { static int m,i=2; i+=m+1; m=i+a+b; return(m); } A. 8,17
B. 8,16 C. 8,20 D. 8,8 答案:A
3.以下函数调用语句中,含有的实参个数是( ). func(rec1,rec2 +1,(rec3,rec4));
A. 3 B. 4 C. 5
D. 有语法错误 [答案] A
4.分析如下程序: #include int f(int b[],int n) {int i,r=1; for(i=0;i<=n;i++) r=r*b[i]; return r; }
void main(){
int x,a[]={2,3,4,5,6,7,8,9}; x=f(a,3);
cout< }上面程序的输出结果是( ) 。 A. 720 B. 120 C. 24 D. 6 答案:B
5、下列函数参数默认值定义错误的是( ) 。 A. Fun(int x, int y=0) B. Fun(int x = 100) C. Fun(int x = 0, int y)
D. Fun(int x = f( )) (假定函数f()已经定义) 答案:C
6、在函数定义前加上关键字“inline”表示该函数被定义为( ) 。 A. 重载函数 B. 内联函数 C. 成员函数 D. 普通函数 答案:B
7、一个函数功能不太复杂,但要求被频繁调用,选用( ) 。 A. 内联函数 B. 重载函数 C. 递归函数 D. 嵌套函数 答案:A
8、下面有关重载函数的说法中正确的是( ) 。 A. 重载函数必须具有不同的返回值类型 B. 重载函数形参个数必须不同 C. 重载函数必须有不同的形参列表 D. 重载函数名可以不同 答案:C
9、在C++语言中,对函数参数默认值描述正确的是( ) 。 A. 函数参数的默认值只能设定一个
B. 一个函数的参数若有多个,则参数默认值的设定可以不连续 C. 函数必须设定默认值
D. 在设定参数的默认值后,该参数后面定义的所有参数都必须设定默认值
答案:D
10、考虑函数原型void test(int a,int b=7,char z='*'),下面的函数调用中,属于不合法调用的是
A. test(5); B. test(5,8); C. test(6,'#'); D. test(0,0,'*'); 答案:C
11、以下对C++ 函数的有关描述中,正确的是( ) 。
A. C 调用函数时,只能把实参的值传给形参,形参的值不能传递给实参
B. C++函数既可以嵌套定义又可以递归调用 C. 函数必须有返回值,否则不能使用函数
D. C++程序中有调用关系的所有函数必须放在同一源程序文件中答案:A
12、在C++语言中函数返回值的类型是由( )决定的。 A. 调用该函数时系统临时 B. return语句中的表达式类型 C. 定义该函数时所指定的函数类型 D. 调用该函数时的主调函数类型 答案:C
13、以下程序的输出结果是( ) 。 int func(int a,int b) { return a+b;} int main()
{ int x=6,y=7,z=8,r; r=func(func(x,y),z--); cout< } A. 15B. 20 C. 21 D. 31 答案:C
14、以下程序的输出结果是( ) 。 void fun(int a,int b,int c) { a=456;b=567;c=678;} int main( )
{ int x=10,y=20,z=30; fun(x,y,z);
cout< }A. 30,20,10 B. 10,20,30 C. 456,567,678 D. 678,567,456 答案:A
15、C++语言中,形参与实参之间的数据传递方式是( ) 。 A. 只能按值传递 B. 只能按地址传递
C. 既可以按值传递也可以按地址传递 D. 以上说法都不对 答案:C
16、分析以下程序: #include
void fun(int num){cout< void fun(char ch){cout<<(ch+1)< int main(){ fun('A'); return 0;}
以上程序的输出结果是( ) 。 A. 65 B. 66 C. A D. B 答案:B
17、一个函数为void f(int x, char y = ‘a’),另一个函数为void f(int),则它们( ) 。
A. 不能在同一程序块中定义
B. 可以在同一个程序块中定义并可重载 C. 可以在同一个程序块中定义,但不可以重载 D. 以上说法均不正确 答案:A
18、函数定义为Fun(int &i),变量定义n = 100,则下面调用正确的是( ) 。
A. Fun(20) B. Fun(20 + n) C. Fun(n) D. Fun(&n) 答案:C
19、当一个函数无返回值时,函数的类型应为( ) 。 A. 任意 B. void C. int D. char 答案:B
20、下列带缺省值参数的函数说明中,正确的说明是( ) 。 A. int Fun(int x,int y=2,int z=3); B. int Fun(int x=1,int y,int z=3);
C. int Fun(int x,int y=2,int z); D. int Fun(int x=1,int y,int z=3); 答案:A
21、下列函数参数默认值定义错误的是( ) 。 A. Fun(int x, int y=0) B. Fun(int x = 100) C. Fun(int x = 0, int y)
D. Fun(int x = f( )) (假定函数f( )已经定义) 答案:C
22、在函数定义前加上关键字“inline”表示该函数被定义为( ) 。 A. 重载函数 B. 内联函数 C. 成员函数 D. 普通函数 答案:B
23、一个函数功能不太复杂,但要求被频繁调用,选用( ) 。 A. 内联函数 B. 重载函数 C. 递归函数 D. 嵌套函数 答案:A
24、下面有关重载函数的说法中正确的是( ) 。 A. 重载函数必须具有不同的返回值类型 B. 重载函数形参个数必须不同 C. 重载函数必须有不同的形参列表 D. 重载函数名可以不同 答案:C
25、在C++语言中,对函数参数默认值描述正确的是( ) 。 A. 函数参数的默认值只能设定一个
B. 一个函数的参数若有多个,则参数默认值的设定可以不连续
C. 函数必须设定默认值
D. 在设定参数的默认值后,该参数后面定义的所有参数都必须设定默认值
答案:D
26、考虑函数原型void test(int a,int b=7,char z='*'),下面的函数调用中,属于不合法调用的是( ) 。
A. test(5); B. test(5,8); C. test(6,'#'); D. test(0,0,'*'); 答案:C
27、以下对C++ 函数的有关描述中,正确的是( ) 。
A. C 调用函数时,只能把实参的值传给形参,形参的值不能传递给实参
B. C++函数既可以嵌套定义又可以递归调用 C. 函数必须有返回值,否则不能使用函数
D. C++程序中有调用关系的所有函数必须放在同一源程序文件中 答案:A
28、在C++语言中函数返回值的类型是由( )决定的。 A. 调用该函数时系统临时 B. return语句中的表达式类型 C. 定义该函数时所指定的函数类型 D. 调用该函数时的主调函数类型 答案:C
29、以下程序的输出结果是( ) 。 int func(int a,int b) { return a+b;} int main( )
{ int x=6,y=7,z=8,r;