C\C++程序设计复习题
一、 选择题
1 一个C语言程序总是从(  C  )开始执行
A) 书写顺序的第一个函数
B) 书写顺序的第一条执行语句
C) 主函数main
D) 不确定
2、以下能正确定义二维数组的是  (  C  )
  Aint a[][3];
  Bint a[][3]=2{2*3};
  Cint a[][3]={};
  Dint a[2][3]={{1},{2},{3,4}};
3、设int x=3y=4z=5,则下列表达式中的值为0的是 (  D    )
      A) ‘x’&&’y’            B) x||y+z&&y-z    C) x<=y                D) !((x<y)&&!z||1)
4 执行以下程序段后,i的值是 (    C  )
      int i=10;
      switch(i+1)
        {  case 10: i++; break;
            case 11: ++i;
            case 12: ++i; break;
            default : i=i+1;
        }
    A) 11            B) 13            C) 12            D) 14   
5、语句while(!e);中的条件!e等价于 (  B  )
        A) e==0            B)e!=1            C) e!=0                D) 运行时出错
6、下列数据中,为字符串常量的是(
(A)‘A’   
(B)“house”   
(C)How do you do 
(D)’$abc’
7 int a[4]={1,2}; 对数组进行初始化后,数组元素a[3]的值是 (  B  )
    A) 随机值        B) 0                C) 1                D) F
8 在执行char str[10]=“china\0” strlenstr)的结果是 (  B    )
        A)5        B) 6            D) 7            D 9
9 若有定义,char *p=”computer”;  则语句printf(“%c”,*(p+2))运行结果是 (  B  )
    A) 随机值        B) m            C)o                D) omputer
10、有以下程序      (  D  )
  main()
  { int i=0,x=0;
  for (;;)
  {
  if(i==3||i==5) continue;
  if (i==6) break;
  i++;
  s+=i;
  };
  printf("%d\n",s);
  }
  程序运行后的输出结果是
  A10
  B13
  C21
  D.程序进入死循环
11、以下定义语句中正确的是    (  C  )
  Achar a='A'b='B';
  Bfloat a=b=10.0;
  Cint a=10,*b=&a;
  Dfloat *a,b=&a;
12、设有int x=11;则表达式(x++*l/3)的值为(  B )。
(A)3   
(B)4   
(C)11   
(D)12
13 在说明一个结构体变量时系统分配给它的存储空间是(  D 
    A)该结构体中第一个成员变量所需存储空间 B) 该结构体中最后一个成员变量所需存储空间 
C)该结构体中占用最大存储空间的成员变量所需存储空间D) 该结构体中所有成员变量所需存储空间的总和
14 C语言编写的代码程序(  B  )
A)可立即执行  B)是一个源程序  C)经过编译即可执行  D)经过编译解释才能执行
15C语言中用于结构化程序设计的三种基本结构是( A  )
A)顺序结构、选择结构、循环结构    Bifswitchprintf函数的执行顺序break  Cforwhiledo-while  Difforcontinue
16、下列选项中,不能用作标识符的是(  D 
A)_1234_    B)_1_2    C) int_2_    D)2_int_
17、有以下程序
  main()
  { int m=0256,n=256;printf("%o %o\n",m,n);
  }
  程序运行后的输出结果是    (  C  )//02560开头,表示是8进制整数,%o8进制输出,0x16进制,%x16进制。)
  A0256 0400
  B0256 256
  C256 400
  D400 400
18、以下变量xyz均为double类型且已正确赋值,不能正确表示数学式子:(x)/(y×z)c语言表达式是(  A  )。
(A)x/y*z   
(B)x*(1/(y*z)) 
(C) x/y*1/z     
(D)x/y/z
19有以下程序
  int f(int a)
  { return a%2; }
  main()
  { int s[8]={1,3,5,2,4,6},i,d=0;
  for (i=0;f(s[i]);i++) d+=s[i];//f(s[i])为判断奇偶
  printf("%d\n",d);
  }
  程序运行后的输出结果是  (  A  )
  A9
  B11
  C19
  D21
20、以下叙述中正确的是 ( A )
A)局部变量说明为static存储类,其生存期将得到延长
B)全局变量说明为static存储类,其作用域将被扩大
C)任何存储类的变量在未赋初值时,其值都是不确定的
D)形参可以使用的存储类说明符与局部变量完全相同
21、有以下程序    (  B  )
  main()
  { char a='a',b;
  print("%c,",++a);
  printf("%c\n",b=a++);
  }
  程序运行后的输出结果是
  Ab,b
  Bb,c
  Ca,b
  Da,c
22、若变量已正确定义,要求程序段完成求5!的计算,不能完成此操作的程序段是(  D  )
A)for(i=1,p=1;i<=5;i++) p*=i;B)for(i=1;i<=5;i++){ p=1; p*=i;}
C)i=1;p=1;while(i<=5){p*=i; i++;}D)i=1;p=1;do{p*=i; i++; }while(i<=5);
23、有以下程序(  B  )
main()
{ char a='a',b;
  printf("%c,",++a);
  printf("%c\n",b=a++);}
程序运行后的输出结果是a)b,b          B)b,c      C)a,b            D)a,c
24、有以下程序
  main()
  { int i;
  for(i=0;i<3;i++)
  switch(i)
  {
  case 0:printf("%d",i);
  case 2:printf("%d",i);
  default:printf("%d",i);
  }
  }
  程序运行后的输出结果是    (  D  )
  A022111
  B021021
  C000122
  D012
25、假定wxyzm均为int型变量;有如下程序段:
w=1;x=2y=3;z=4
m=(w<x)?wx,  m=(m<y)?my;  m=(m<z)?mz
则该程序段执行后,m的值是(  D  )。
(A)4   
(B)3   
(C)2   
(D) 1
26、已定义c为字符型变量,则下列语句中正确的是(    A    )
Ac='97';    Bc="97";        Cc=97;        Dc="a";
27、在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是(  B 
(A)  地址传递                                     
(B)  单向值传递
(C)  由实参传给形参,再由形参传回实参             
(D)  传递方式由用户指定
28、以下定义语句中,错误的是   D  )。
(A)int  a[]={12}     
(B) char *a[3];
(C)char  s[10]="text" 
(D) int n=5,a[n];
29、以下能正确定义数组并正确赋初值的语句是(      D    )