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