C++基础+编程题复习

cout<<\} 23. 有如下函数说明: void display(char c);则它的返回值是__无值型___。 24. 已知函数f的定义是: int f(int n) { n*=2; return n+1;} 则执行 int m=6,n=2; m=f(n); 后,m和n的值分别是___5__2___。 25. 以下程序运行后输出的结果是__36__。#include int get(int x[],int n) //n表示数组x中的元素

个数

{ if(n==1) return x[0]; else return get(x,n-1)+x[n-1]; } void main( ) { int x[]={0,1,2,3,4,5,6,7,8}; int n=sizeof(x)/sizeof(int); cout< int fun(int n) { static int j=1; return j*=++n; } void main(void) { for(int k=1;k<=4;k++) cout<

int f(int n) { return((n==0)?1:f(n-1)+2);} 29. 在C++中,函数名的值是__函数的入口地址___。 30. 如果一函数直接或间接地调用自身,这样的调用称为_____递归调用_____。 31. C++是一种以___编译方式___实现的高级语言。 32. C++关系表达式中的关系成立时,则该关系表达式的值为__1__。 33. C++中标识符的大小写字母是__有____区别的。 34. 以下程序的执行结果是_0,0,1___。

#include void main() { int x=5,y=2; cout<=y)< void main() { int i=1,s=1,n=20; while(s void main(void) {int j,k,s,m; for(k=1;k<7;k++){ s=1;m=k+2; for(j=k;j

if(j==0) i++; else i--;

后i的值为__11___ 。

39. 以下程序的执行结果是__d=20___。 #include void main()

{int a=0,b=1,c=0,d=20,x; if(a) d=d-10; else if(!b)

if(!c) x=15; else x=25;

cout<<\ }

40. 以下程序输出的第一行是4___,第二行是__1___。

#include void main(void) {int x=6; do{ x-=2;

cout<

41. 设有语句: int i=1,s=1;

for( ; s+i<6,i=5 ; i++) s+=i;

以上for循环语句的循环次数为 _无数次_。 09VC练习卷1-5章 总分:360分 -1.单项选择题

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

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

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

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

A. int B. float C. double D. 不确定 3. 表达式18/4*sqrt(4.0)/5值的数据类型是c_A. int B. float C. double D. 不确定 4. 在C++语言中,char型数据在内存中的存储形式是___a____

A. ASCII码 B. 补码 C. 反码 D. 原码 5. 设char ch;以下正确的赋值语句是___b___

A.ch='123'; B.ch='\\xff'; C. ch='\\08' D. ch='\\' 6. sizeof(double)是一个__a____表达式。 A. 整型 B. 双精度 C.不合法D. 函数调用 7. 设n=10,i=4,则赋值运算n%=i+l执行后,n的值是___a____。

A. 0 B. 3 C. 2 D. 1

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

9. 设int n=3;则++n的结果是____,n的结果是_c__。 A. 2 3 B. 3 2 C. 4 4 D. 5 3 10. 设int a=2,b=2;则++a+b的结果是__d__,a的结果是_____,b的结果是______。 A. 2 3 5 B. 3 2 5 C. 4 3 2 D. 5 3 2 11. 设int m=l,n=2;则m++==n的结果是____a___。 A. 0B. 1 C. 2 D. 3 12. 设int m=l,n=2;则++m==n的结果是____b___。 A. 0 B. 1 C. 2 D. 3

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

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

A. cpp B. c++ C. bcc D. vcc 15. 设有语句“int k=7,x=12;”,则能使值为3的表达式是___d___

A. x%=(k%=5) B. x%=(k–k%5) C. x%=k–k/5 D. (x%=k)–(k%=5) 16. 下面四个选项中,均不能作为用户标识符使用的是____d____

A. m,P—0, do B. float, ka0, –A C. –123,temp,INT D. b–a,goto,int 17. 设有说明“int a=15,b=17,c;”,执行表达式“c=a||(b+=b)”后,则a、b、c的值分别是 a

A. 15、17、1 B. 1、34、35 C. 15、34、1 D. 15、17、15 18. 设有说明“int x=10,y=4,f;float m;”,执行表达式“f=m=x/y”后,则f、m的值分别为 d A. 2、2.5 B. 3、2.5 C. 2.5、2.5 D. 2、2.0

19. 设有变量说明:int a=3,b=4,c=5下列表达式中,值为0的表达式是 d A. ?a‘&&?b B. a<=b

C. a || b+c && b-c D. !(a

C. b = a%2 D. b = a < 3 ? 3: 2 21. 设有代码“int a=5;”,则执行了语句“a+=a-=a*a;”后,变量a的值是_____c___。 A. 3 B. 0 C. -40 D. –12

22. 在C++语言中,自定义的标识符_____d____。

A. 能使用关键字并且不区分大小写 B. 不能使用关键字并且不区分大小写 C. 能使用关键字并且区分大小写 D. 不能使用关键字并且区分大小写 23. 设变量m,n,a,b,c,d均为0,执行(m=a==b)||(n=c==d)后,m,n的值是___c______。

A. 0,0 B. 0,1 C. 1,0 D. 1,1

24. 下列字符列中,可以作为“字符串常量”的是____b_____。

A. ABC B. ″xyz″ C. ′uvw′ D. ′a′

25. 运算符+、<=、=、%中,优先级最低的运算符是____c_____。

A. + B. <= C. = D. %

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

A. switch B. For C. break D. do 27. 在C++语言中,080是______d_____。 A. 八进制数 B. 十进制数 C. 十六进制数 D. 非法数

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

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

29. 若有执行语句char str[7];cin>>str;当输入为:ObjectWindowsPrograrmming!所得的结果是str=____b___

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

30. 使用如setw()的操作对数据进行格式输出时,应包含___c___文件 A. iostream.h B. fstream.h C. iomanip.h D. stdlib.h 31. C++中cin是_____d______。 A. 一个标准的语句B. 预定义的类 C. 预定义的函数D. 预定义的对象 32. 两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果分别是___b___. #include void main() { int x; cin>>x;

if(x++>5) cout<

A. 6和3 B. 7和5 C. 7和4 D. 6和4 33. 在ios中提供控制格式的标志位中,___a____是转换为十六进制形式的标志位。 A. hex B. oct C. dec D. 1eft 34. 控制格式I/O的操作中,_d____是设置域宽的。

A. ws B. oct C. setfill()D. setw() 35. 设有两个语句“int x['a'];cin>>x;”,则编译器认为___c___

A. 说明语句“int x['a'];”错 B. 两个语句都错

C. 语句“cin>>x;”错

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

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

C. 提高速度 D. 使用方便,提高可读性 37. 若有以下变量和函数说明: #include 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);

38. 以下程序的输出是___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 39. 以下程序的正确运行结果是__d____。 #include int f(int); void main() { int a=2,i;

for(i=0; i<3; i++) cout<

int f(int a) { int b=0; static int c=3; b++; c++; return(a+b+c);

} A. 7 7 7 B. 7 10 13 C. 7 9 11 D. 7 8 9

40. 以下程序的输出结果是_a_。 #include func(int a,int b) { static int m,i=2; i+=m+1; m=i+a+b; return(m); }

void main()

{ int k=4,m=1,p; p=func(k, m); cout<

} A. 8,17 B. 8,16 C. 8,20 D. 8,8 41. 下列对重载函数的描述中,___a___是错误的。

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

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

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

42. 设有语句“voidf(int a[10],int &x);int y[10],*py=y,n;”,则对函数f的正确调用语句是__b__。

A. f(py[10],n); B. f(py,n); C. f(*py,&n); D. f(py,&n); 43. 设有宏定义和语句: #define P(x,y) x/y #define PP(a,b) a*b

int c=P(2+3,2+3)+PP(2+3,2+3); 则变量c的值是__b____ 。

A. 26 B. 17 C. 17.5 D. 31

44. 设有语句“for(int i=5,sum=0;++sum,i<5;i++)sum+=i;”,则for()语句的执行情况是____a___。

A. 循环0次 B. 循环4次 C. 循环5次 D. 循环6次

45. 设有函数定义“int f1(void){return 200,100;}”,设调用函数f1()时,____a__。 A. 函数返回值100

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

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

46. 设有宏定义和语句如下: # 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行有语法错

47. 有关函数重载的正确说法是_____b___。

A. 函数名不同,但参数的个数和类型相同 B. 函数名相同,但参数的个数不同或参数的类型不同

C. 函数名相同,参数的个数和类型也相同 D. 函数名相同,函数的返回值不同,而与函数的参数和类型无关

48. 下列有关编译预处理命令的说明中,正确的是_____a____。

A. 以“#”开头的行,可出现的函数定义内或函数定义外

B. 以“#”开头的行,后面不可有分号 C. 以“#”开头,可出现在一行中的任何位置

D. 以“#”开头,必放在程序开头 49. 设有宏定义“#define f(x)(-x)*2 ”,执行语句”cout<

A. -14 B. 2 C. -5 D. 5

50. 编译以下程序时,结果是____b____。 #include //第一行 #define aa 4+3; //第二行 void main (void ) //第三行 { cout<

C. 编译时第二行和第四行均出错 D. 编译时无错误

51. 以下四组函数原型说明中,满足C++函数重载规则的是_____c_____。 A. float f(float x); void f(float y);

B. float f(float x); void f2(float x,float y); C. float f(float x,int y); void f(float y); D. float f(float y); float f(float y); 52. 当一个函数无返回值时,函数的类型应定义为___a___。

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

53. C++语言中规定函数的返回值的类型是由____d___。

A. return语句中的表达式类型所决定 B.调用该函数时的主调用函数类型所决定 C. 调用该函数时系统临时决定

D. 在定义该函数时所指定的函数类型所决定

54. 以下叙述中不正确的是__d____。 A. 在函数中,通过return语句传回函数值 B. 在函数中,可以有多条return语句 C. 主函数名main后的一对圆括号中也可以带有形参

D.调用函数必须在一条独立的语句中完成 55. 在函数的返回值类型与返回值表达式的类型的描述中,错误的是____b___。 A. 函数返回值的类型是在定义函数时确定,在函数调用时是不能改变的

B. 函数返回值的类型就是返回值表达式的类型

C. 函数返回值表达式类型与返回值类型不同时,函数表达式类型应转换成返回值类型 D. 函数返回值类型决定了返回值表达式的类型

56. 在一个被调用函数中,关于return语句使用的描述,错误的是___d___。

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

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

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

58. 以下函数调用语句中实参的个数是____a___。

excc((v1,v2),(v3,v4,v5),v6); A. 3 B. 4 C. 5D. 6

59. 在传值调用中,要求___c___。 A. 形参和实参类型任意,个数相等 B. 实参和形参类型都完全一致,个数相等 C. 实参和形参对应的类型一致,个数相等 D. 实参和形参对应的类型一致,个数任意 60. 在C++中,关于下列设置参数默认值的描述中,正确的是__c___。 A. 不允许设置参数的默认值

B. 设置参数默认值只能在定义函数时设置 C. 设置参数默认值时,应该是先设置右边的再设置左边的

D. 设置参数默认值时,应该全部参数都设置

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4