}
cout<<'\\n'< 11. 设有语句 int a=6,b=3; float x=8,y; y=b/a*x/2; 则y的值是__0.0____。 12. 设int a=1,b=2,c,d,e;执行: c=(-a++)+(++b); d=(b--)+(++a)-a; e=(a/(--b))-(b/(--a)); 语句序列后,变量a、b、c、d、e的结果分别是_2_、_1_、_2_、3_、_3_。 13. 以下程序输出的第一行是__20__,第二行是___400___ 。 #include { static int u=1; x+=x; return u*=x; } void main(void) { int x=10; cout< 14. #include { if(k<1) return f(n/10,k+1); else return(n); } void main(void) { int y1=f(45678,3); int y2=f(5432,2); int y3=f(987,1); int y; y=y1+y2+y3+f(23,0); cout<<\<<\} 程序输出的第一行是 __y1=8__,第三行是__y3=7__。 15. 已知函数f的定义是: int f(int n) { n*=2; return n+1;} 则执行 int m=6,n=2; 精品文档 欢迎下载 m=f(n); 后,m和n的值分别是__5_2___。 16. 有如下函数说明: void display(char c);则它的返回值是__无值型__。 17. 以下程序的执行结果是__3_6_1_3_______ 。 #include cout< void f1() { x+=1; cout< void f2() { int x=1; cout< 18. 若有宏定义: #define T(x,y,z) x*y*z/4 则表达式T(8-3,2*4,2+3)的值是__-40___。 19. 设有语句int a=258,b; unsigned char c;b=c=a;则b的值是__2__。 20. 有语句“int a=5,b=7,c=15,d ; d=b>a||(c=a+b);”, 则c的值是__15___。 21. 下列程序运行后的输出结果是____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<<\ } 22. 函数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 23. 52.若有宏定义: #define N 3 #define Y(n) ((N+1)*n) 则执行语句“z=2*(N+Y(N+2));”后,z的值为 ___34____。 24. 语句cout<<\的输出结果为_\\\\___。 25. 对数组按值从大到小的顺序排序后输出,请填空。 #include float a[7]={2,6,3,8,3,12,9}; _________________; sort(a,7); for(int i=0;i<7;i++) cout< void sort(float *p,int n) {int i,j,k; float t; for(i=0;i for(j=i+1;j if(____________) k=j; 精品文档 欢迎下载 if(________) { t=*(p+i); *(p+i)=*(p+k); *(p+k)=t; } } } void sort(float*,int) p[k] 26. 以下程序的执行结果是__d=20___。 #include {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<<\ } 27. 以下程序的执行结果是_firstthird__。 #include switch(y) { case 0: cout<<\ case 1: cout<<\ } case 2: cout<<\ } } 28. 设有语句“int m;float x,y;y=m=x=5.99;”,则y的值是__5___。 29. 每个基本语句的结束标志是_分号___。 30. 执行cout<<\的输出结果为__abc123_。 31. 下列函数用于将任意方阵(行数等于列数的二维数组)转置,请填空。 void mt(float *a,int n) 如数组:1 11 3 -2 { int i,j; float t; 2 3 4 5 for(i=0;i for( _________ ) 4 5 6 7 { t=*(a+i*n+j); 精品文档 欢迎下载 #include *(a+i*n+j)=*(a+j*n+i); void func(int); 1 2 7 4 void main() _________; { int x=10; 11 3 -4 5 func(x); } cout<<\ -3 4 4 6 } } void func(int x) -2 5 2 7 j=0;j_。 33. 以下程序运行后输出的结果是 __2_4_6_________。 #include if(j==0) i++; else i--; 后i的值为___11___ 。 36. break语句只能用在循环语句和_switch_ 语句中。 37. 以下程序的执行结果是__x=10__。 { x=20; } 38. 如果一函数直接或间接地调用自身,这样的调用称为__递归调用__。 39. 以下程序的输出结果是s=__10__ ,k=___7__ 。 #include int i, p=0; while(x>w[p]) p++; for(i=n+1;i>p;i--) w[i]=_______; w[p]=x; ++n; } w[i-1] 44. 验证哥德巴赫猜想:任何一个大于6的 偶数均可表示为两个素数之和。要求将6~100之间的偶数都表示为两个素数之和。素数指只能被1和自身整除的正整数,1不是素数,2是素数。请填空。 #include for( k=2; k<=n/2; k++) if( n%k==0) return 0 ; return__________; } void main( ) { int j, k ; for(j=6; j<=100 ; j+=2) for(k=2; k<=j/2 ; k++) if(_________) { cout< break; } } 1 prime(k)>>prime(j-k) 45. 下列函数将判断字符c是否在字符串s中出现, 请填空。 int f(char *s , char c) { for(__________) if(c==*s) break; return(c==*s); } *s;s++ 46. 以下程序的执行结果是___x=1____。 #include void func(int); void main() { func(x); cout<<\} void func(int x) { x=3;} 47. 以下程序的执行结果是__25____ 。 #include extern int x,y; cout< int x=20,y=5; int add(int a,int b) { int s=a+b; return s; } 48. 指出下面程序的输出结果_1_1_2_3_5_8_13_21 34 55 #include { int i1=1,i2=1,i3,i; cout< cout< 49. 执行下列程序段后,i值为__2____。 int f(int x) { static int k=0; x+=k++; return x; } int i=f(f(1)) ; 50.在C++中,函数名的值是__函数的入口地址__。 VC练习卷1 总分:100分 -1.单项选择题 1.设有说明“int x=10,y=4,f;float m;”,执行表达式“f=m=x/y”后,则f、m的值分别为 A. 2、2.5 B. 3、2.5 C. 2.5、2.5 D. 2、2.0 d 2. 设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 3. 下列字符列中,可以作为“字符串常量”的是___b_____。 A. ABC B. ″xyz″ C. ′uvw′D. ′a′ 4. 设有变量说明:int a=3,b=4,c=5下列表 达式中,值为0的表达式是 d A. ?a‘&&?b B. a<=b C. a || b+c && b-c D. !(a 5. 设int m=l,n=2;则m++==n的结果_a__。 A. 0 B. 1C. 2D. 3 6.表达式18/4*sqrt(4.0)/5值的数据类型是_c_ A. int B. float C. double D. 不确定 7. 设有语句“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) 8. 设int m=l,n=2;则++m==n的结果是__b______。 A. 0 B. 1 C. 2 D. 3 9. 在C++语言中,自定义的标识符_______d_____。 A. 能使用关键字并且不区分大小写 B. 不能使用关键字并且不区分大小写 C. 能使用关键字并且区分大小写 D. 不能使用关键字并且区分大小写 10. 设有说明“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 11. 在ios中提供控制格式的标志位中,__a__是转换为十六进制形式的标志位。 A. hex B. oct C. dec D. 1eft 12. 若有执行语句char str[7];cin>>str;当输入为:ObjectWindowsPrograrmming!所得的结果是str=___b_____ A. Object Windows Programming! B. Object C. Object Windows D. Object Windows Programming 13. 两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果分别是___b____. #include if(x++>5) cout< A. 6和3 B. 7和5 C. 7和4 D. 6和4 精品文档 欢迎下载 14. C++中cin是______d______。 A. 一个标准的语句 B. 预定义的类 C. 预定义的函数 D. 预定义的对象 15. 使用如setw()的操作对数据进行格式输出时,应包含___c_____文件 A. iostream.h B. fstream.h C. iomanip.h D. stdlib.h 16. 设有两个语句“int x['a'];cin>>x;”,则编译器认为___c____ A. 说明语句“int x['a'];”错 B. 两个语句都错 C. 语句“cin>>x;”错 D. 两个语句正确,没有语法错 17. 控制格式I/O的操作中,__d___是设置域宽的。 A. ws B. oct C. setfill() D. setw() 18. 下列关于开关语句的描述中,__a_____是正确的. A. 开关语句中default子句可以没有,也可以有一个 B. 开关语句中每个语句序列中必须有break语句 C. 开关语句中default子句只能放在最后 D. 开关语句中case子句后面的表达式可以是整型表达式 19. C++语言中while和do-while循环的主要区别是____a____. A. do-while的循环体至少无条件执行一次 B. while的循环控制条件比do-while的循环控制条件严格 C. do-while允许从外部转到循环体内 D. do-while的循环体不能是复合语句 20.下列DO-While循环的次数为___d_____. int i=5; Do { cout< }while(i!=0); A. 0 B. 1 C. 5 D. 无限 21. 下述关于break语句的描述中,____c___是不正确的 A. break语句可用于循环体内,它将退出该重循环 B. break语句可用于开关语句中,它将退出开关语句