08VC练习卷 总分:80分 -1.单项选择题
1. 在C++语言中,char型数据在内存中的存储形式是___a_____
A. ASCII码 B. 补码 C. 反码 D. 原码 2. 设n=10,i=4,则赋值运算n%=i+l执行后,n的值是___a_____。
A. 0 B. 3 C. 2 D. 1
3. 设int n=3;则++n的结果是____c____,n的结果是________。
A. 2 3 B. 3 2 C. 4 4 D. 5 3 4.设int m=l,n=2;则m++==n的结果是_a__。 A. 0 B. 1 C. 2 D. 3 5.设int m=l,n=2;则++m==n的结果是__b_。 A. 0 B. 1 C. 2 D. 3
6. 系统约定C++源程序文件名的缺省的扩展名为___a___。
A. cpp B. c++ C. bcc D. vcc 7. 设有说明“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
8. 设有说明“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
9. 设有语句“for(int i=5,sum=0;++sum,i<5;i++)sum+=i;”,则for()语句的执行情况是___a_____。
A. 循环0次 B. 循环4次 C. 循环5次 D. 循环6次
10. 有关函数重载的正确说法是___b___。 A. 函数名不同,但参数的个数和类型相同 B. 函数名相同,但参数的个数不同或参数的类型不同
C. 函数名相同,参数的个数和类型也相同 D. 函数名相同,函数的返回值不同,而与函数的参数和类型无关
11. 下列有关编译预处理命令的说明中,正确的是____a______。
A. 以“#”开头的行,可出现的函数定义内或函数定义外 B. 以“#”开头的行,后面不可有分号 C. 以“#”开头,可出现在一行中的任何位置
D. 以“#”开头,必放在程序开头
12. 以下四组函数原型说明中,满足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); 13. 当一个函数无返回值时,函数的类型应定义为___a_____。
A. void B. 任意 C. int D. 无 14. C++语言中规定函数的返回值的类型是由____d____。
A. return语句中的表达式类型所决定 B. 调用该函数时的主调用函数类型所决定
C. 调用该函数时系统临时决定 D. 在定义该函数时所指定的函数类型所决定 15. 以下叙述中不正确的是___d_____。 A. 在函数中,通过return语句传回函数值 B. 在函数中,可以有多条return语句 C. 主函数名main后的一对圆括号中也可以带有形参
D.调用函数必须在一条独立的语句中完成 16.下列数组的定义中,___c_____是错误的。 A. char cal[]={'c','h','a','r'} ; B. char *ca2=\ C. char ca3[4]=\ D. int array[]={6,5,3,4} ;
17. 在int b[][3]={{1},{3,2},{4,5,6},{0}};中b[2][2]值是___c_____ A. 0 B. 5 C. 6 D. 2
18. 在int a[5]={1,3,5};中,数组元素a[1]的值是__c_ A. 1 B. 0 C. 3 D. 2 19. 设有说明语句: char s[]=\
strlen(s)的值是____a_______。
A. 2 B. 3 C. 8 D. 14 20设有说明语句:char s[]=\的值是__b___。 A. 2 B. 9 C. 11 D. 15 21. 数组作为函数的形参时,把数组名作为实参,传递给函数的是____a________。 A. 该数组的首地址 B.该数组的元素个数
C.该数组中的各元素值D. 该数组的大小 22. 运算符+、<=、=、%中,优先级最低的运算符是_____c_______。 A. + B. <= C. = D. %
23. 循环语句for(<表达式1>;<表达式2>;<表达式3>)<语句>中,<语句>的执行情况是__c_.
A. 至少执行一次 B. 至少执行两次 C. 可能执行,也可能不执行 D. 不执行
24. 下列关于开关语句的描述中,__a_____是正确的.
A. 开关语句中default子句可以没有,也可以有一个
B. 开关语句中每个语句序列中必须有break语句
C. 开关语句中default子句只能放在最后 D. 开关语句中case子句后面的表达式可以是整型表达式
25. 下述关于break语句的描述中,___c____是不正确的
A. break语句可用于循环体内,它将退出该重循环
B. break语句可用于开关语句中,它将退出开关语句
C. break语句可用于if体内,它将退出if语句
D. break语句在一个循环体内可以出现多次
26. 下列While循环的次数是___a_____. While( int i=0) i--;
A. 0 B. 1 C. 5 D. 无限 27.循环语句\x=0,y=0;y!=100||x<10;)x++;\,执行的循环次数是__a___。
A. 无限次 B. 10 C. 11 D. 100 28. C++语言中while和do-while循环的主要区别是___a_____.
A. do-while的循环体至少无条件执行一次 B. while的循环控制条件比do-while的循环控制条件严格
C. do-while允许从外部转到循环体内 D. do-while的循环体不能是复合语句
29. 使用如setw()的操作对数据进行格式输出时,应包含___c_____文件 A.iostream.h B.fstream.h C.iomanip.h D. stdlib.h
30. 判断字符串s1是否大于字符串s2,应当使用___d_____
A. if(s1>s2) B. if(strcmp(s1,s2)) C. if(strcmp(s2,s1)>0) D. if(strcmp(s1,s2)>0) 31. 判断字符串a和b是否相等,应当使用____d____
A. if(a==b) B. if(a=b) C. if(strcmp(a,b)) D. if(!strcmp(a,b))
32. 有下面的程序段,则___d_____ char a[3],b[ ]=\a=b;cout< A. 运行后将输出China B. 运行后将输出Ch C. 运行后将输出Chi D. 编译出错 33. 下面程序段的运行结果是___b_____ char c[5]={?a‘,‘b‘,‘\\0‘,‘c‘,‘\\0‘}; cout< A. ‘a‖b‘ B. ab C. ab0c D. abc 34. 下面是对字符数组s的初始化,其中不正确的是__d______ A. char s[5]=―abc‖; B. char s[5]={‘a‘,‘b‘,‘c‘}; C. char s[5]=‖‖; D. char s[5]=‖abcdef‖; 35. 定义如下变量和数组: 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 36. 若二维数组a有m列,则在a[I][J]前的元素个数为____b____ A. J*m+I B. I*m+J C. I*m+J-1 D. I*m+J+1 37. 若有说明:int a[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是___b____ A. 2 B. 3 C. 4 D. 无确定值 38. 若有说明:int a[3][4];则数组a中各元素____c____ A. 可在程序的运行阶段得到初值0 B. 可在程序的编译阶段得到初值0 C. 不能得到确定的初值 D. 可在程序的编译或运行阶段得到初值0 39. 若有说明:int a[3][4]={0};则下面正确 的叙述是___d_____ A. 只有元素a[0][0]可得到初值0 B. 此说明语句不正确 C. 数组a中各元素都可得到初值,但其值不一定为0 D. 数组a中每个元素均可得到初值0 40. 若有说明:int a[10];则对a数组元素的正确引用是____d____ A. a[10] B. a[3.5] C. a(5) D. a[10-10] 41. 以下定义一维整型数组a的正确方法是___d_____ A. int a(10); B. int n=10,a[n]; C. int n;cin>>n;int a[n]; D. #define SIZE 10 int a[SIZE]; 42. 在C++语言中,引用数组元素时,其数组下标的数据类型允许的是____c____ A. 整型常量 B. 整型表达式 C. 整型常量或整型表达式 D. 任何类型的表达式 43. 执行以下语句序列: enmu{Red,Blue,Yellow} c1,c2;c1=Yellow; //A cout< A. 输出 1 B. 输出 2 C. 输出 3 D. B行语法错 44. 下面程序的运行结果是___b_____ #inlcude {char a[ ]=\for(I=1;I<7;I++) if(a[j] t=a[j]; a[j]=a[7]; a[7]=a[j];cout< } A. mogninr B. mo C. morning D. mornin 45. 下面程序的运行结果是___d_____ #include {char a[80]=‖AB‖,b[80]=‖LMNP‖; int I=0; strcat(a,b); while(a[I++]!=‘\\0‘) b[I]=a[I]; cout< } A. LB B. ABLMNP C. AB D. LBLMNP 46. 下面程序的运行结果是___a_____ void main() {char ch[7]={\for(I=0;ch[I]>='0'&&ch[I]<='9';I+=2) s=10*s+ch[I]-'0'; cout< A. 字符数组可以存放字符串 B. 字符数组可以整体输入,输出 C. 可以在赋值语句中用赋值运算符“=”对字符数组整体赋值 D. 不可以用关系运算符对数组中的字符串进行比较 48. 下列____a____是语句. A. ; B. a=17 C. x+y D. cout<<‖\\n‖ 49. 设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; 50. 若定义: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<<\ } -2.填空题 1. 设有语句“int x[4][3]={3,4,5,6,7,8,9,10,11,12};”,则x[3][2]的初值是____0__。 2. 执行语句序列 char s[20]=\程序设计\ cout< 3. 设有语句“ char s[ ]=\m=strlen(s);”,则m 的值是___5_____。 4. 执行以下语句序列后,y的值为 ____17________。 #define S(x) x*x int y,z=5; y=S(z+2); 5. 已知函数f的定义是: int f(int n) { n*=2; return n+1;} 则执行 int m=6,n=2; m=f(n); 后,m和n的值分别是____5__2__。 6. 下面程序运行后输出的第二行是___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< 7. C++中默认main函数的返回类型是__int___,所以在定义main函数时可以不写返回值类型。 8. 以下程序的执行结果是__s=10____ 。 #include cout<<\} int sum(int k) { int x=0; return(x+=k); } 9.以下程序的执行结果是_19_24_30_37_45__ 。 #include x+=a; a++; y++; return(x+y+a); } void main() { int i=3; while(i<8) cout< 10. 下面函数要求计算两个整数x、y之和,并通过形参z传回该和值,请填空。 void add(int x, int y,__________) {__________= x+y; } Int>z z 11. 若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]得到的初始值是__0___,a[2][1]得到的初值是__6___。 12. 以下程序的执行结果是_0,0,1____。 #include int x=5,y=2; cout<=y)< 13. 语句cout<<\的输出结果为__\\\\___。 vc练习卷 总分:115分 -1.单项选择题 1. 在一个被调用函数中,关于return语句使用的描述,错误的是___d___。 A. 被调用函数中可以不用return语句 B. 被调用函数中可以使用多个return语句 C. 被调用函数中,如果有返回值,就一定要有return语句 D. 被调用函数中,一个return语句可返回多个值给调用函数 2. 以下程序输出的结果是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 3. 在C++语言程序中,有关函数的定义正确的是_____b___。 A. 函数的定义可以嵌套,但函数的调用不可以嵌套 B. 函数的定义不可以嵌套,但函数的调用可以嵌套 C.函数的定义和函数的调用均不可以嵌套 D. 函数的定义和函数的调用均可以嵌套 4. 在循环语句的循环体中使用break语句的作用是___b___。 A. 结束本次循环 B. 结束该层的循环 C. 结束开关语句 D. 结束程序执行 5. 下面程序段的运行结果是____a____。 #include for(I=1;I<=5;I++) { if(I%2) cout<<―*‖; else continue; cout<<―#‖; } cout<<―$\\n‖; } A. *#*#*#$ B. #*#*#*$ C. *#*#$ D. #*#*$ 6. 以下程序的正确运行结果是___d___。 #include 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 7. 设有宏定义和语句: #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 8.有关函数重载的正确说法是__b___。 A. 函数名不同,但参数的个数和类型相同 B. 函数名相同,但参数的个数不同或参数的类型不同 C. 函数名相同,参数的个数和类型也相同 D. 函数名相同,函数的返回值不同,而与函数的参数和类型无关 9. 选择出合法的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<<\ 2