C. break语句可用于if体内,它将退出if语句
D. break语句在一个循环体内可以出现多次
22. int x=0,s=0; while(!x!=0) s+=++x; cout<
则_____b______。
A. 运行程序段后输出0 B. 运行程序段后输出1
C. 程序段中的控制表达式是非法的 D. 程序段执行无限次
23. 设e1和e3是表达式,与语句for(e1;;e3)s;等同的语句是______d______。 A. for(e1;e1;e3) s;B. for(e1;e3;e3) s;C. for(e1;0;e3) s;D. for(e1;1;e3) s; 24. 执行下列程序,输入为1的输出结果是____a_____。
#include
{case 1:cout< case 3:cout< } A. 1 B. 2 C. 2 3 4 5 D. 1 2 3 4 25. 循环语句for(<表达式1>;<表达式2>;<表达式3>)<语句>中,<语句>的执行情况是__c____. A. 至少执行一次 B. 至少执行两次 C. 可能执行,也可能不执行 D. 不执行 26. 选择出合法的if语句(设有int x,y;),正确输出x与y的大小关系___b_____。 A. if(x!=y) if(x>y) cout<<\; else cout<<\ B. if(x!=y) if(x>y) cout<<\ else cout<<\else cout<<\ C. if(x!=y) if(x>y) cout<<\else cout<<\cout<<\ D. if(x!=y); if(x>y)cout<<\ else cout<<\ else cout<<\ 27. 下面程序的运行结果是___a____ #include int i=0; while(++i) { if(i==10) break; if(i%3!=1) continue; cout<< i; } } A. 1 4 7 B. 1 1 1 C. 3 3 3 D. 2 4 6 28. 以下程序输出的结果是a=___a____,b=_______ #include { for(int a=1,b=1; a<=5; a++) { if (b>=8) break; if(b%2==1){b+=7; continue;} b-=3; } cout<<\ } A. 2 8 B. 1 7 C. 8 2 D. 7 1 29. int x=-1; do {x=x*x;} while(!x); 下列说法正确的是_____c______。 A. 是死循环 B. 循环执行两次 C. 循环执行一次 D. 有语法错误 30. 下面程序段____d_______。 for(t=1;t<=100;t++) {cin>>x; if(x<0)continue; cout< A. 当x<0时整个循环结束 B. x>=0时什么也不输出 C. cout永远也不执行 D. 最多允许输出100个非负整数 31. 下列for循环的循环体执行次数为____d______. For(int i=0,j=10;i=j=10;i++,j--) A. 0 B. 1 C. 10 D. 无限 32. 以下程序的输出结果是___a_____。 #include int x=1,y=0,a=0,b=0; switch(x) { case 1: switch(y) { case 0:a++;break; case 1:b++;break; } case 2:a++;b++;break; } cout< } A. 2,1 B. 1,1 C. 1,0 D. 2,2 33. break语句只能用在__d_____ A. 开关语句中 B. 函数体中允许语句出现的任一位置 C. 循环语句中 D. 开关语句或循环语句中 34. 下面程序段的运行结果是_____a______。 #include 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 35. 与以下程序段等价的是____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; } 36.为了避免嵌套的if-else语句的二义性,C++语言规定else总是与_c_组成配对关系。 A. 缩排位置相同的if B. 在其之前未配对的if C. 在其之前未配对的最近的if D. 同一行上的if 37. 下述关于循环体的描述中,___c____是错误的. A. 循环体中可以出现break语句和continue语句 B. 循环体中还可以出现循环语句 C. 循环体中不能出现goto语句 D. 循环体中可以出现开关语句 38. 以下程序的输出结果是__a_。 #include void main() { int k=4,m=1,p; p=func(k, m); cout< p=func(k,m); cout< } A. 8,17 B. 8,16 C. 8,20 D. 8,8 39. 已知int f(int);和int g(int);分别是函数f和g的原型。下列语句中,将函数f作为语句调用的有_____d_____。 A. f(3)+g(3); B. p/=f(3); C. g(f(3)); D. f(g(3)); 40.以下函数调用语句中实参的个数是_a__。 excc((v1,v2),(v3,v4,v5),v6); A. 3 B. 4 C. 5 D. 6 41. 下列有关编译预处理命令的说明中,正确的是_____a_____。 A. 以“#”开头的行,可出现的函数定义内或函数定义外 B. 以“#”开头的行,后面不可有分号 C. 以“#”开头,可出现在一行中的任何位置 D. 以“#”开头,必放在程序开头 42. 在下面的函数原型声明中,存在着语法错误的是____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); 43. 采用函数重载的目的在于___d_____。 A. 实现共享B. 减少空间 C. 提高速度 D. 使用方便,提高可读性 44. 设有宏定义和语句: #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. 26B. 17C. 17.5D. 31 45. 下列对重载函数的描述中,___a_____是错误的。 A. 重载函数中不允许使用默认参数 B. 重载函数中编译是根据参数表进行选择的 C. 不要使用重载函数来描述毫无相干的函数 D. 构造函数重载将会给初始化带来多种方式 46. 对于一个功能不太复杂,并且要求加快执行速度,选用______a_____合适。 A. 内联函数B. 重载函数 C. 递归调用D. 嵌套调用 47. 下面的哪个保留字不能作为函数的返回类型?_____c_____。 A. void B. int C. new D. long 48.关于函数返回值的的描述正确的是_c__。 A. 函数返回表达式的类型一定与函数的类型相同 B. 函数返回值的类型决定了返回值表达式的类型 C. 当函数类型与返回值表达式类型不同,将对返回值表达式的值进行类型转换 D. 函数返回值类型就是返回值表达式类型 49.有关函数重载的正确说法是__b_。 A. 函数名不同,但参数的个数和类型相同 B. 函数名相同,但参数的个数不同或参数的类型不同 C. 函数名相同,参数的个数和类型也相同 D. 函数名相同,函数的返回值不同,而与函数的参数和类型无关 50. 以下叙述中不正确的是____d____。 A. 在函数中,通过return语句传回函数值 B. 在函数中,可以有多条return语句 C. 主函数名main后的一对圆括号中也可以带有形参 D.调用函数必须在一条独立的语句中完成 -2.填空题 1. 以下程序输出的结果是a=_2_,b=_8_。 #include { for(int a=1,b=1;a<=5;a++) { if(b>=8) break; if(b%2==1){b+=7;continue;} b-=3; } cout<<\} 2. 设有循环语句: for (int i=0,x=0,s=0;i<=9&&x!=55;i++) { cin>>x; s+=x; } 在这个循环语句中,循环体最多执行 _10__次,最少执行___1___次。 3. 设有语句: int i=1,s=1; for( ; s+i<6,i=5 ; i++) s+=i; 以上for循环语句的循环次数为 _无数次_。 4. 下列程序运行后的输出结果是_s=7_。 #include for (k=7;k>=0;k--) { switch(k) {case 1: case 4: case 7:s++;break; case 2: case 3: case 6:break; case 0: case 5:s+=2;break; } } cout<<\ } 5. 若用0至9之间不同的三个数构成一个三位数,以下程序将统计出共有多少种方法。请填空。 #include { int i,j,k,count=0; for(i=1;i<=9;i++) for(j=0;j<=9;j++) if (________)continue; else for(k=0;k<=9;k++) if(________)count++; cout< 6. 指出下面程序的输出结果_1 1 2 3 5 8 13 21 34 55__。 #include { int i1=1,i2=1,i3,i; cout< cout< 7. Continue语句只能在__循环__语句中。 8. 若有int i=10, j=0; 则执行完语句 if(j=0) i++; else i--; 后i的值为__9___。 9.以下程序输出的第一行_4_,第二行_1_。 #include cout< 10. 每个基本语句的结束标志是_分号__。 11. 以下程序的输出结果是 __200,100____。 #include void f(int &a,int &b){int t=a;a=b;b=t;} void main(void) { int x=100,y=200; f(x,y); cout< 12. 以下程序的执行结果是__25___ 。 #include extern int x,y; cout< int x=20,y=5; int add(int a,int b) { int s=a+b; return s; } 13. 已知函数f的定义是: int f(int n) { n*=2; return n+1;} 则执行 int m=6,n=2; m=f(n); 后,m和n的值分别是_5__2___。 14. 函数my_cmp( )的功能是比较字符串s和t 的大小,当s等于t时返回0,否则返回s和t的第一个不同字符的ASCII码差值,即当s>t时返回正值,当s my_cmp(char *s, char *t) { while (*s==*t) { if (*s=='\\0') return(0); ++s, ++t; } return__________; } *s-*t 15. 若有宏定义: #define T(x,y,z) x*y*z/4 则表达式T(8-3,2*4,2+3)的值是__-40__。 16. 下面程序运行后输出的第二行是__10 35 5___ 。 #include void main() { int a=10,b=20; cout< for(int i=1; i<6; i++) {a+=i; b+=a; } cout< cout< 17. 以下程序的执行结果是__x=10____。 #include cout<<\} void func(int x) { x=20; } 18. 若函数的形式参数是指针类型,则实参可以是指针名、数组名或_变量的地址___。 19. 以下程序的执行结果是__88.18 97__。 #include void func(int),func(double); void main() { double a=88.18; func(a); char b='a'; func(b); } void func(int x) { cout< 20. 有如下函数说明: void display(char c);则它的返回值是__无值型__。 21. 下列函数A与B功能等价,请填空。 程序A: int f(int n) { if(n<=1) return n; else return f(n-1)+f(n-2) ; } 程序 B: int f(int n) { int t0,t1,t; t0=0 ; t1=1 ; t=n ; while(__________ ){ t=__________ ; t0=t1; t1=t; n-- ; } return t; } n>=1 t0+t1 22. 以下程序输出的结果是a=__2___,b=___8__。 #include { for(int a=1,b=1;a<=5;a++) { if(b>=8) break; if(b%2==1){b+=7;continue;} b-=3; }