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

10. 下列DO-While循环的次数为_d_____. int i=5; Do

{ cout<

}while(i!=0);

A. 0 B. 1 C. 5 D. 无限 11. 已知函数f的原型为:void f(int &a,char *b);变量s,t的定义是:int s;char t[]=\把s和t分别作为第一参数和第二参数来调用函数f,正确的调用语句是:____c____。 A. f(&s,&t); B. f(&s,t); C. f(s,t); D. f(s,&t);

12. 下列___a____是语句.

A. ; B. a=17 C. x+y D. cout<<‖\\n‖ 13. 若定义: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<<\ }

14. 以下正确的说法是______d____。 A. 用户若需要调用标准函数,调用前必须重新定义

B. 用户可以直接调用所有标准库函数 C. 用户可以定义和标准库函数重名的函数,但是在使用时调用的是系统库函数 D. 用户可以通过文件包含命令将系统库函数包含到用户源文件中,然后调用系统库函数

15. 采用函数重载的目的在于___d____。 A. 实现共享B. 减少空间C. 提高速度D. 使用方便,提高可读性 16. int x=-1; do

{x=x*x;} while(!x);

下列说法正确的是_____c____。

A. 是死循环 B. 循环执行两次 C. 循环执行一次 D. 有语法错误

17. 以下四组函数原型说明中,满足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);

18. 下面的程序输出的结果是___b____。 #include void LE(int &a,int b) {

int x=a; a=b; b=x;

cout <

void main() {

int x=10,y=25;

LE(x,y); cout <

A. 25 10 25 10 B. 25 10 25 25 C. 25 10 10 25 D. 10 25 10 25

19. 以下函数声明中,存在着语法错误的是___d___。

A. int AA(int a,int); B. int *BB(int,int); C. void CC(int,int=5); D. void *DD(x, y); 20. int a=1,b=2,c=2;

while(a

运行结果为______a___。

A. 1,2,0 B. 2,1,0 C. 1,2,1 D. 2,1,1 21. 若有执行语句char str[7];cin>>str;当输入为:ObjectWindowsPrograrmming!所得的结果是str=____b___

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

D. Object Windows Programming

22. 控制格式I/O的操作中,__d____是设置域宽的。

A. ws B. oct C. setfill() D. setw()

23. 函数的功能是交换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<

24. 在每个C++程序中都必须包含有这样一个函数,该函数的函数名为_____a___。 A. main B. MAIN C. name D. function 25. int x=0,y=0;

while(x<15) y++,x+=++y; cout<

则运行结果为____d____。

A. 20,7 B. 6,12 C. 20,8 D. 8,20 26. 能把函数处理结果的两个数据返回给主调函数,在下面的方法中不正确的是_______a____。

A. return这两个数 B. 形参用两个元素的数组 C. 形参用两个这种数据类型的指针D. 用两个全局变量

27. sizeof(double)是一个__a_____表达式。 A. 整型 B. 双精度 C. 不合法 D. 函数调用

28. 与以下程序段等价的是___a___。 while(a)

{ if(b) continue; c; }

A. while(a) {if(!b)c;} B. while(c) {if(!b) break; c; }

C. while(c) {if(b) c;} D. while(a) {if(b) break; c;

}

29. 要求函数的功能是在一维数组a中查找x值;若找到则返回所在的下标值,否则返回0;数放在a[1]到a[n]中。不能正确执行此功能的函数是_____c_____。 A. funa(int *a, int n, int x) { *a=x;

while(a[n]!=x) n--; return(n); }

B. funb(int *a, int n, int x) { int k;

for(k=1;k<=n; k++) if(a[k]==x)return(k); return(0); }

C. func(int a[ ], int n, int x) {

int *k;

a[0]=x; k=a+n; while(*k!=x) k-- return(k-n); }

D. fund(int a[ ], int n, int x) {

int k=0; do k++;

while((k

30. 预处理命令在程序中都是以_b_开头的。 A. * B. # C. : D. /

31.有一函数的定义如:void fun(char*s){?}则不正确的函数调用是_d_。 A. void main( ) {

char s[20] =\fun(s); ? } B. void main( ) {

char a[20] =\fun(&a[0]); ? }

C. void main( ) {

char s[20] =\char *p=s; fun(p); ? }

D. void main( ) {

char s[20] =\fun(s[ ]); ? }

32. 对数组名作函数的参数,下面描述正确的是_______b______。 A. 数组名作函数的参数,调用时将实参数组复制给形参数组。

B. 数组名作函数的参数,主调函数和被调函数共用一段存储单元。

C. 数组名作参数时,形参定义的数组长度不能省略。

D. 数组名作参数,不能改变主调函数中的数据。

33. 预处理命令以(b)开头。 A. * B. # C. / D. :

34. 设有函数定义“int f1(void){return 200,100;}”,设调用函数f1()时,___a____。 A. 函数返回值100 B. 函数返回两个值100和200 C. 函数返回值200

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

35. 使用如setw()的操作对数据进行格式输出时,应包含____c___文件

A. iostream.h B. fstream.h C. iomanip.h D. stdlib.h

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

37. C++语言中while和do-while循环的主

要区别是___a____.

A. do-while的循环体至少无条件执行一次

B. while的循环控制条件比do-while的循

环控制条件严格

C. do-while允许从外部转到循环体内

D. do-while的循环体不能是复合语句

38. 下述关于循环体的描述中,___c___是

错误的.

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

continue语句 B. 循环体中还可以出现循

环语句

C. 循环体中不能出现goto语句 D. 循

环体中可以出现开关语句

39. 已知函数f的原型是:int f(char a,char

*b=NULL,double c=0.0); 则下列调用中,不

能正确地调用f函数的是____b_____。

A. f(99) B. f('A',4.5) C. f('A',\D. f((char)65,\ 40. 下述关于break语句的描述中,___c__是不正确的 A. break语句可用于循环体内,它将退出该重循环 B. break语句可用于开关语句中,它将退出开关语句 C. break语句可用于if体内,它将退出if语句 D. break语句在一个循环体内可以出现多次 41. 下列关于条件语句的描述中,____c___是错误的. A. if语句中只有一个else子句 B. if语句中可以有多个else if子句 C. if语句中if体内不能是switch语句 D. if语句的if体中可以是循环语句

42. 在参数传递过程中,对形参和实参的要求是______b______。 A. 函数定义时,形参一直占用存储空间。 B. 实参可以是常量、变量或表达式。

C. 形参可以是常量、变量或表达式。 D. 形参和实参类型和个数都可以不同。 43. 下列字符列中,可作为C++语言程序自定义标识符是_____b____。 A. switch B. For C. break D. do 44. 以下程序的输出结果是_____a_____。 #include sub1(char a , char b) {char c ; c=a ; a=b ; b=c ;} sub2(char *a , char b) {char c ; c=*a ; *a=b ; b=c ;} sub3(char *a , char *b) {char c ; c=*a ; *a=*b ; *b=c;} void main( ) { char a , b; a='A'; b='B'; sub3(&a,&b); cout<

A. + B. <= C. = D. % 48. 设int x=2,y=3,z=4;则下面的表达式中值不为1的表达式是__b____。

A. 'x'&&'z' B. (!y==1)&&(!z==0) C. (x

A. 2 3 5 B. 3 2 5 C. 4 3 2 D. 5 3 2 50. 在C++中,关于下列设置参数默认值的描述中,正确的是___c_____。 A. 不允许设置参数的默认值 B. 设置参数默认值只能在定义函数时设置 C. 设置参数默认值时,应该是先设置右边的再设置左边的

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

-2.填空题

1. 以下程序的执行结果是_42,54,54___。 #include void main() {

int x,y,z; x=y=z=3; y=x++-1;

cout<

cout<

cout<

2. 若给fun函数的形参s传递字符串:“∪∪6354abc”(其中“∪”表示空格字符),则函数的返回值是___6354___。 #include long fun(char s[ ]) { long n; int sign; for(;*s==' ';s++); sign=(*s=='-')? -1:1; if(*s=='+'||*s=='-') s++; for(n=0;*s>='0'&&*s<='9';s++) n=10*n+(*s-'0'); return(sign*n); }

void main() { char str[]=\ 6354abc\ cout<

3. 执行以下语句序列后,y的值为_____17____。 #define S(x) x*x int y,z=5; y=S(z+2);

4. 设有语句“float x=2.9; int a=5,b;b=a+x;”则变量b的值是__7____ 。

5. c++提供了两大类数据类型;基本数据类型和___复合/导出数据类型___。基本数据类型有4种:整型(int)、浮点型(float)、字符型(char)和___无值型__。

6. 下列函数求任意阶多项式 a0+a1X+a2X^2+?+anX^n 的值并返回多项式的值,请填空。

float sum(int *a,int x,int n) {

float y,t=1; y=*a;

for(i=1;i<=n;i++) { _____________; y+=*(a+i)*t; }

return y; } t*=x

7. 语句cout<<036+014;的输出结果为_42_。 8. 函数重载是指函数名相同,但函数的_参数个数_不同或函数的_参数类型_不同。 9. 以下程序的执行结果是____4___8____ 。 #include void func(int); void main() { int k=4; func(k); func(k); cout<

void func(int a) { static int m=0; m+=a;

cout<

10. 以下程序输出结果的第一行是_1_2_3_4_5______,第二行是__7__。 #include int k;

void main(void) { k=5;

for(int i=0;i<5;i++){ int k;k=i+1; cout<