C++基础+编程题复习 下载本文

3. 假定a为一个整型数组名,能引用元素a[5]的值是( b )

A. a(5) B.*(a+5) C. *a+5 D. *a[5] 4. 若对两个数组a和b进行初始化 char a[]=\

char b[]={'A', 'B', 'C', 'D', 'E', 'F'}; 则下列叙述正确的是。 d A. a与b数组完全相同 B. a与b数组长度相同 C. a与b数组都存放字符串 D. 数组a比数组b长度长

5. C++关系表达式中的关系成立时,则该关系表达式的值为___c__。

A. -1 B. 0 C. 1 D. 大于0的整数 6. 设有定义int a;float f;double i;则表达式10+'a'+i*f值的数据类型是__c____。

A. int B. float C. double D. 不确定 7. 在C++语言中,char型数据在内存中的存储形式是___a____

A. ASCII码 B. 补码C. 反码D. 原码

8. 设n=10,i=4,则赋值运算n%=i+l执行后,n的值是____a__。

A. 0B. 3C. 2D. 1 9.设int m=l,n=2;则m++==n的结果是__a_。 A. 0 B. 1 C. 2 D. 3

10. 设int x=2,y=3,z=4;则下面的表达式中值不为1的表达式是____b___。 A. 'x'&&'z'B. (!y==1)&&(!z==0) C. (x char ch='*';

void sub(int x,int y,char ch,double *z)

{ switch(ch)

{ case '+': *z=x+y; break; case '-': *z=x-y; break; case '*': *z=x*y; break; case '/': *z=x/y; break; }

}以下合法的函数调用语句是____b___。 A.sub(10,20,ch,y);

B. sub(1.2+3,2*2,'+',&z); C.

sub(sub(1,2,'+',&y),sub(3,4,'+',&x),'-',&y); D. sub(a,b,&x,ch);

12. 以下程序的输出是____b___。 #include int w=3; int fun(int); void main() { int w=10;

cout<

int fun(int k)

{ if(k==0) return w; return(fun(k-1)*k);

} A. 360 B. 3600 C. 1080 D. 1200 13. 下列对重载函数的描述中,___a____是错误的。

A. 重载函数中不允许使用默认参数 B. 重载函数中编译是根据参数表进行选择的

C. 不要使用重载函数来描述毫无相干的函数

D. 构造函数重载将会给初始化带来多种方式

14. 设有函数定义―int f1(void){return 200,100;}‖,设调用函数f1()时,___a___。 A. 函数返回值100

B. 函数返回两个值100和200 C. 函数返回值200

D. 语句―return 200,100;‖语法错,不能调用函数

15. 设有宏定义和语句如下: # define M(a,b) a*b; // E int x=M(3+,5+6),y; // F y=M(3,4); // G 则 d

A. 编译时,E行有语法错 B. 编译时,F行有语法错 C. 编译时,G行有语法错

D. 编译时,F行和G行有语法错 16. 当一个函数无返回值时,函数的类型应定义为____a___。

A. voidB. 任意C. int D. 无 17. 在一个被调用函数中,关于return语句使用的描述,错误的是___d____。

A. 被调用函数中可以不用return语句 B. 被调用函数中可以使用多个return语句 C. 被调用函数中,如果有返回值,就一定要有return语句

D. 被调用函数中,一个return语句可返回多个值给调用函数

18. 若有以下函数调用语句:fun(fun(n+k,d,(a,b)),a+(x,y));在此函数调用语句中实参的个数是__a____。 A. 2 B. 3 C. 4 D. 5

19. 在传值调用中,要求___c____。 A. 形参和实参类型任意,个数相等

B. 实参和形参类型都完全一致,个数相等 C. 实参和形参对应的类型一致,个数相等 D. 实参和形参对应的类型一致,个数任意 20. 下列给字符数组进行初始化中,__a____是正确的。 A. char s1[]=\; B. char s2[3]=\;

C. char s3[][]={'a','x','y'}; D. char s4[2][3]={\;

21.字符串\占用的存储单元为___a___个。

A. 8 B. 9 C. 10 D. 11 22.设有说明语句―int A[4][3]={{1,2},{3,4,5},{6,7,8},{9,10}};‖,则A[0][2]和A[2][2]的初始化值分别为___d__。 A. 0、7 B. 3、8 C. 3、7 D. 0、8 23. 对于以下递归函数f,调用f(4),其返回值为____d______。 int f(int n) {

if(n) return f(n-1)+n ; else return n;

}A. 10 B. 4 C. 0 D. 以上均不是 24. 函数的功能是交换x和y中的值,且通过正确调用返回交换结果。不能正确执行此功能的函数是____b_____。 A. void funa(int *x, int *y) {

int i, *p=&i;

*p=*x; *x=*y; *y=*p; }

void main() { int x=3,y=5; funa(&x,&y);

cout<

B. void funa(int x, int y) { int t;

t=x; x=y; y=t; }

void main() { int x=3,y=5; funa(x,y);

cout<

C. void funa( int *x, int *y) { int p;

p=*x; *x=*y; *y=p; }

void main() { int x=3,y=5; funa(&x,&y);

cout<

D. void funa (int *x, int *y) {

*x=*x+*y; *y=*x-*y; *x=*x-*y; }

void main() { int x=3,y=5; funa(&x,&y); cout<

25. 在C++语言程序中,有关函数的定义正确的是_______b___。

A. 函数的定义可以嵌套,但函数的调用不可以嵌套

B. 函数的定义不可以嵌套,但函数的调用可以嵌套

C.函数的定义和函数的调用均不可以嵌套 D. 函数的定义和函数的调用均可以嵌套 26. 已知函数f的定义是:int f(int n){n*=2;return n+1;} 则执行

int m=5, n=3; m=f(n); 后,变量m的值和n的值分别是 __c____ 。 A. 5 3 B. 7 6 C. 7 3 D. 5 6 27. 下面的哪个保留字不能作为函数的返回类型?____c____。

A. void B. int C. new D. long 28. 在下面的函数原型声明中,存在着语法错误的是____d___。

A. void BC(int a,int);B. void BD(int ,int); C.void BE(int ,int=5);D. int BF(int x;int y); 29. 在每个C++程序中都必须包含有这样一个函数,该函数的函数名为___a____。 A. main B. MAINC. nameD. function 30. 由C++目标文件连接而成的可执行文件的缺省扩展名为_____b____。

A. cpp B. exe C. obj D. lik 31. 对于一个功能不太复杂,并且要求加快执行速度,选用______a______合适。 A. 内联函数B. 重载函数 C. 递归调用D. 嵌套调用

32.C++中关于参数默认值的描述正确的是b A. 只能在函数定义时设置参数默认值 B.设置参数默认值时,应当从右向左设置 C. 设置参数默认值时,应当全部设置 D. 设置参数默认值后,调用函数不能再对参数赋值

33. 如果一个函数无返回值,定义它时函数类型应是_______c_____。

A. 任意 B. int C. void D. 无

34. 以下能正确计算1*2*3*…*10的程序段是_____c____。

A. do {i=1;s=1; s=s*i; i++;} while(i<=10); B. do {i=1;s=0; s=s*i;i++;} while(i<=10);

C. i=1;s=1; do {s=s*i; i++;} while(i<=10); D. i=1;s=0; do{s=s*i; i++;}

while(i<=10);

35. int a=1,b=2,c=2;

while(a

A. 1,2,0 B. 2,1,0 C. 1,2,1 D. 2,1,1 36. 设有定义int a=5,b;执行下列代码后,b的值不为2的是___c______。 A. b = a/2 B. b = 6-(--a)

C. b = a%2 D. b = a < 3 ? 3: 2

37. 运算符+、<=、=、%中,优先级最低的运算符是____c_____。 A. + B. <= C. = D. %

38. 下列字符列中,可作为C++语言程序自定义标识符是_____b_____。

A. switch B. For C. break D. do

39. 在C++语言中,080是_____d______。 A. 八进制数 B. 十进制数 C. 十六进制数 D. 非法数

40. 下列数据类型不是C++语言基本数据类型的是_____d____。

A. 字符型 B. 整型 C. 实型 D. 数组

41.文件包含命令中被包含的文件扩展名_d_ A. 必须为.h B. 不能为.h C. 必须是.cD. 不一定是.h

42. 下述关于循环体的描述中,___c___是错误的.

A. 循环体中可以出现break语句和continue语句

B. 循环体中还可以出现循环语句 C. 循环体中不能出现goto语句 D. 循环体中可以出现开关语句

43.下列for循环的循环体执行次数为__d__. For(int i=0,j=10;i=j=10;i++,j--)

A. 0 B. 1 C. 10 D. 无限 44.循环语句\x=0,y=0;y!=100||x<10;)x++;\,执行的循环次数是____a___。

A. 无限次 B. 10 C. 11 D. 100

45.为了避免嵌套的if-else语句的二义性,C++语言规定else总是与_c_组成配对关系。 A. 缩排位置相同的if

B. 在其之前未配对的if

C. 在其之前未配对的最近的if D. 同一行上的if 46. 若定义:float x;int a,b;则正确的switch语句是____d__。 A. switch(x)

{ case 1.0:cout<<\ case 2.0:cout<<\ }

B. switch(x)

{ case 1.2:cout<<\ case 3 : cout<<\ }

C. switch(a+b)

{ case 1 : cout<<\ case 1,2:cout<<\ }

D. switch(a+b)

{ case 1:cout<<\\n\ case 2:cout<<\ }

47. 设有两个语句―int x['a'];cin>>x;‖,则编译器认为___c__

A. 说明语句―int x['a'];‖错 B. 两个语句都错 C. 语句―cin>>x;‖错

D. 两个语句正确,没有语法错

48. 下述对C++语言字符数组的描述中错误的是___c___

A. 字符数组可以存放字符串 B. 字符数组可以整体输入,输出

C. 可以在赋值语句中用赋值运算符―=‖对字符数组整体赋值

D. 不可以用关系运算符对数组中的字符串进行比较

49. 判断字符串s1是否大于字符串s2,应当使用___d___

A. if(s1>s2) B. if(strcmp(s1,s2)) C.if(strcmp(s2,s1)>0)D. if(strcmp(s1,s2)>0) 50. 定义如下变量和数组:

int k; int a[3][3]={1,2,3,4,5,6,7,8,9}; 则下面语句的输出结果是__a___ for(k=0;k<3;k++) cout<

A. 3 5 7 B. 3 6 9 C. 1 5 9 D. 1 4 7 -2.填空题

1. 有数组定义int a[5];那么,*(a+2)访问的是数组a中下标为2的元素的___值__。(填 值 或者 地址)

2. 如有定义int *p1;char *p2;则从变量占用的字节数来看,存在关系sizeof(p1)____等于____sizeof(p2)(填 大于、小于或者等于) 3. 函数的参数为数组或指针时,参数的传递方式为__按地址__传递。

4. 设x,y,z均为int型变量,请写出描述―x、y和z中只有两个为负数‖的表达式为_x*y<=0||y*z<=o||x*z<=0__。

5. 以下程序的执行结果是_120___ 。 #include 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<

6. 执行完

int data[ ]={0,1,2,3,4,5};

#define SIZE sizeof(data)/sizeof(data[0]) 则SIZE的值为_6__。 7. 执行语句序列

char s1[ ]=\for(int i=0;s2[i]=s1[i];i++);

后,数组s2中的字符串是__ABCD___。 8. 静态整型变量有确定的初值,其缺少的初值是___0___。

9. 设有语句―int m;float x,y;y=m=x=5.99;‖,则y的值是____5___。

11vc交通第一至三章 总分:80分 -1.单项选择题

1. 实型变量x的取值范围为闭区间[–2,10]或开区间(15,34),则正确表示x取值范围的逻辑表达式是__b__

A. –2<=x<=10||15

B. (–2<=x&&x<=10)||(15

C. –2<=x<=10&&15

D. (–2<=x&&x<=10)&&(15

4. 如果a=1,b=2,c=3,d=4,则条件表达式a

5.设int a=2,b=2;则++a+b的结果是___d_,a的结果是______,b的结果是______。 A. 2 3 5B. 3 2 5C. 4 3 2D. 5 3 2

6. 设int x=2,y=3,z=4;则下面的表达式中值不为1的表达式是___b____。 A. 'x'&&'z' B. (!y==1)&&(!z==0) C. (x

7. 系统约定C++源程序文件名的缺省的扩展名为___a__。

A. cppB. c++C. bccD. vcc

8. 采用函数重载的目的在于___d___。 A. 实现共享 B. 减少空间

C. 提高速度D. 使用方便,提高可读性 9.设有代码―int a=5;‖,则执行了语句―a+=a-=a*a;‖后,变量a的值是__c___。 A. 3 B. 0 C. -40 D. –12

10.在C++语言中,自定义的标识符__d__。 A. 能使用关键字并且不区分大小写 B. 不能使用关键字并且不区分大小写 C. 能使用关键字并且区分大小写 D. 不能使用关键字并且区分大小写 11. 下列字符列中,可以作为―字符串常量‖的是______b___。

A. ABC B. ″xyz″ C. ′uvw′ D. ′a′ 12. 运算符+、<=、=、%中,优先级最低的运算符是_____c______。 A. + B. <= C. = D. %

13. 在C++语言中,080是______d_____。 A. 八进制数 B. 十进制数 C. 十六进制数 D. 非法数

14. 下列数据类型不是C++语言基本数据类型的是______d_____。

A. 字符型B.整型 C. 实型 D. 数组 15. 若有执行语句char str[7];cin>>str;当输入为:ObjectWindowsPrograrmming!所得的结果是str=____b___

A. Object Windows Programming! B. Object C. Object Windows D. Object Windows Programming

16. 使用如setw()的操作对数据进行格式输出时,应包含____c___文件 A.iostream.hB.fstream.h C.iomanip.hD. stdlib.h

17. C++中cin是_____d_____。

A. 一个标准的语句 B. 预定义的类 C. 预定义的函数D. 预定义的对象 18. 设有两个语句―int x['a'];cin>>x;‖,则编译器认为___c___

A. 说明语句―int x['a'];‖错

B. 两个语句都错 C. 语句―cin>>x;‖错 D. 两个语句正确,没有语法错

19.下面程序段的运行结果是____a_____。 #include void main( ) {

int I,j,a=0;

for(I=0;I<2;I++) {

for(j=0;j<4;j++) {

if(j%2) break; a++; } a++; }

cout<

} A. 4 B. 5 C. 6 D. 7

20. 下面程序的运行结果是_____b____。 #include void main() {

int a,b;

for(a=1,b=1;a<=100;a++) {

if(b>=20)break; if(b%3==1)

{b+=3;continue;} b-=5;