*1
A
一个C程序的执行是从_____。
 A)本程序的main函数开始,到main函数结束
 B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
 C)本程序的main函数开始,到本程序文件的最后一个函数结束
 D)本程序文件的第一个函数开始,到本程序main函数结束
*2
C
以下叙述正确的是:
A)在C程序中,main函数必须位于程序的最前面
B)C程序的每行中只能写一条语句
C)C语言本身没有输入输出语句
D)在对一个C程序进行编译的过程中,可发现注释中的拼写错误
*3
D
以下叙述不正确的是。
A)一个C源程序可由一个或多个函数组成
B)一个C源程序必须包含一个main函数
C)C程序的基本组成单位是函数
D)在C程序中,注释说明只能位于一条语句的后面
*4
C
C语言规定:在一个源程序中,main函数的位置 。
A)必须在最开始
B)必须在系统调用的库函数的后面
C)可以任意
D)必须在最后
*5
B
一个C语言程序是由
A)一个主程序和若干子程序组成    B)函数组成
C)若干过程组成                  D)若干子程序组成
*6
A
在C语言中(以16位PC机为例),5种基本数据类型的存储空间长度的排列顺序为
A)char<1ong  int><=FLOAT
B)char=int<1ong  int<=float
C)char<  int  <1ong  int=float=double
D)char=int  =1ong  int<=float
*7
C
若x,i,j和k都是int型变量,则执行下面表达式后x的值为
 x=(i=4,j=16,k=32)
 A)4   B)16  C)32     D)52
*8
B
假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是:
 A)7    B)8   C)6   D)2
*9
A
下列四组选项中,均不是C语言关键字的选项是
A)define    B)getc    C)include   D)while
 IF           char       scanf        go
type          printf       case        pow
*10
B
下面四个选项中,均是C语言关键字的选项是
A)auto      B)switch    C)signed    D)if
 enum       typedef       union      struct
 include     continue      scanf      type
*11
C
下面四个选项中,均是不合法的用户标识符的选项是。
 A)  A            B)float       C)b-a       D)一123
    P_0            1a0          goto          temp
    do             一A          int           INT
*12
C
C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符
 A)必须为字母            B)必须为下划线
 C)必须为字母或下划线   D)可以是字母,数字和下划线中任一种字符
*13
A
下面四个选项中,均是合法整型常量的选项是:
A)160      B)一0xcdf    C)一01    D)一0x48a
 一0xffff      01a       986, 012      2e5
     011        0xe        0668         0x
*14
D
下面四个选项中,均是不合法的整型常量的选项是:
A)一一0f1    B)一0Xcdf  C)一018    D)一0x48eg
一0xffff          017        999        一068
  
      0011        12,456      5e2         03f
*15
B
下面四个选项中,均是不合法的浮点数的选项是
A)  160.    B)  123     C)一.18    D)一e3
   0.12        2e4.2     123e4          .234
     e3        .e5        0.0           1e3      
*16 
b
下面四个选项中,均是合法浮点数的选项是
  A)  +le+1    B)-.60    C)  123e      D)一e3
      5e一9.4    12e-4     1.2e-.4     .8e4
      03e2     一8e5        +2e一1     5.e一0
*17
A
下面四个选项中,均是合法转义字符的选项是
 A)'\''        B)'\'    C)'\018'   D)'\\0'
    '\\'     '\017'    '\f'       '101'
    '\n'     '\"'       'xab'       'xlf'
*18
B
下面四个选项中,均是不合法的转义字符的选项是
  A)'\''     B)'\1011'    C)'\011'    D)'\abc'
    '\\'         '\'        '\f'         '\101' 
    '\xf'       '\a'         '\}'        'xlf'
*19
C
下面正确的字符常量是:
A)"a"    B)'\\''    C)'W'    D)''
*20
d
  
下面四个选项中,均是不正确的八进制数或十六进制数的选项是。
    A)  016      B)oabc       C)010      D)  0a12
0x8f  017 -0x11   7ff
018   0x8  0x16   -123
*21
C
下面四个选项中,均是正确的八进制数或十六进制数的选项是。
 A)一10 B)0abc      C)0010   0)  0al2
   0x8f    一017       一0x11-0xl23
  一011     0xc 0xf1      一0x8
*22
d
下面四个选项中、均是正确的数值常量或字符常量的选项是:
   A)0.0       日)"a"     C)'3'D)十001
      0f  3.9E-2.5       011     0xabcd
     8.9e   lel0xFFOO  2e2
      '&' '\'''       0a       50.
*23
A
下面不正确的字符串常量是。
  A)'abc'  B)"12'12"     C)"0"     D)""
*24
c
若有代数式3ae/bc,则不正确的C语言表达式是:
 A) a/b/c*e*3      B)3*a*e/b/c
 C)3*a*e/b*c       D)a*e/c/b*3
*25
A
已知各变量的类型说明如下:
   int   k,a,b;
   unsigned  long  w= 5;
  double    x=1.42;
则以下不符合C语言语法的表达式是:
A)  x%(一3)   B)  w+=-2
C)k=(a=2,b=3,a十b)      D)a十= a一=(b=4)*(a=3)
*26
A
已知各变量的类型说明如下:
 int i=8,k,a,b;
unsigned  long  w=5;
 double  x=1.42,y=5.2;
则以下符合C语言语法的表达式是:
A)  a十=a一=(b= 4)*(a=3)  B)a=a*3=2
C)  x%(一3)  D)y=f1oat(i)
*27
D
以下不正确的叙述是
A)在C程序中,逗号运算符的优先级最低
B)在C程序中,APH和aph是两个不同的变量
C)若a和b类型相同,在执行了赋值表达式a=b后b中的值将放人a中,而b中的值不变。
D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值。
*28
D
以下正确的叙述是:
A)在C程序中,每行中只能写一条语句
B)若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数
C)在C程序中,无论是整数还是实数,都能被准确无误地表示
D)在C程序中,%是只能用于整数运算的运算符
*29
B
以下符合C语言语法的赋值表达式是
A)d=9+e+f=d+9B)  d=9+e,f=d+9
C)d=9十e,e++,d十9     D)d=9十e++=d十7
*30
A
已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'十'6'一'3';后,c2中的值为
A)D     B)68   C)不确定的值     D)C
*31
D
在C语言中,要求运算数必须是整型的运算符是。
A) /   B) ++  c) !=   D)%
*32 
B
若以下变量均是整型,且num=sum=7;则执行表达式sUM=num++,sUM++,++num后sum的值为
 A)  7    B)  8  C)  9  D)  10
*33
D
在C语言中,int、char和short种类型数据在内存中所占用的字节数
A)由用户自己定义     B)均为2个字节
C)是任意的   D)由所用机器的机器字长决定
*34
A
若有说明语句:char c='\72'则变量c
A)包含1个字符   B)包含2个字符
C)包含3个字符   D)说明不合法,c的值不确定
*35
A
若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是
A)2•500000  B)2.7500OO  c)  3.500000  D)  0.000000。
*36
B
sizeof(float)是:
A)一个双精度型表达式  B)一个整型表达式
C)一种函数调用D)一个不合法的表达式
*37
C
设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为
 A)int     B)  float  C)  double  D)不确定
*38
A
下面四个选项中,均是非法常量的选项是。
A)'as'    B)'\\'  c)-0xl8    D)0xabc
  -0fff '\01'    01177     '\0'
'\0xa'     12,456     0xf"a"
*39
D
在C语言中,  char型数据在内存中的存储形式是:
A)补码 B)反码 C)原码     D)ASCII码
*40
B
设变量n为f1oat类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五人运算的表达式是一一一。
A) n=(n*100+0.5)/100.0     B)m=n*100+0.5 ,n= m/100.0
C) n=n*100+0.5/100.0   D)n=(n/100+0.5)*100.0
*41
C
表达式18/4*sqrt(4.0)/8值的数据类型为:
A)  int    B)float   C)double  D)不确定
*42
C
设C语言中,一个int型数据在内存中占2个字节,则unsigned  int型数据的取值范围为:
  
A)  0~255   B) 0~32767     C) 0~65535  D)  0~2147483647
*43
D
设有说明:  char w; int  x;  f1oat  y;  double  z;则表达式w* x+z一y值的数据类型为:
A)float    B)char   C)int     D)double
*44
D
若有以下定义,则能使值为3的表达式是:
int  k= 7,x =12;
A)  x%=(k%= 5)B)  x%=(k一k%5)
C)  x%=k- k%5   D)  (x%=k)一(k%=5)
*45
C
设以下变量均为int类型,则值不等于7的表达式是
A)  (x= y= 6,  x+y,x+1)   B)(x= y= 6,x+y,y+1)
C)  (x= 6,x+1,y= 6,x+y)   D)  (y=6,y+l,x = y,x+1)
*46
D
putchar函数可以向终端输出一个:
A)整型变量表达式值
B)实型变量值
C)字符串
D)字符或字符型变量值
*47
B
printf函数中用到格式符%5s ,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式
A)从左起输出该字串,右补空格
B)按原字符长从左向右全部输出
C)右对齐输出该字串,左补空格
D)输出错误信息
*48
C
printf函数中用到格式符%5s ,其中数字5表示输出的字符串占用5列。如果字符串长度小于5,则输出按方式。
A)从左起输出该字串,右补空格
B)按原字符长从左向右全部输出
C)右对齐输出该字串,左补空格
D)输出错误信息
*49
D
已有定义 int a=-2;和输出语句:printf("%8lx",a);以下正确的叙述是:
A)整型变量的输出格式符只有%d一种
B)%x 是格式符的一种,它可以适用于任何一种类型的数据
C)%x 是格式符的一种,其变量的值按十六进制输出,但%8lx 是错误的
D)%8lx 不是错误的格式符,其中数字8规定了输出字段的宽度
*50
D
若x ,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是:
A)  scanf(" %d%lx,%le",&x,&y,&z);
B)  scanf("%2d * %d%lf"&x,&y,&z );  
C)  scanf("%x %* d%o",&x,&y);
D)  scanf("%x%o%6.2f",&x,&y,&z);   
*51
A
已有如下定义和输入语句 ,若要求a1,a2,c1,c2值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是
int  a1,a2;  char  c1,c2;
scanf("%d%c%d%c",&a1,&c1,&a2,&c2);
A)10A 20B< CR>     B)10 A 20 B
C)10A20   D)10A20 B
*52
B
已有定义int  x;  f1oat  y;且执行scanf("%3d%f",&x,&y);语句,若从第一列开始输入数据12345  678(回车),则x 的值为
A)12345  B)123   。  C)  45       D)  345
*53
B
已有定义int  x;  f1oat  y;且执行scanf("%3d%f",&x,&y);语句,若从第一列开始输入数据12345  678(回车),则y 的值为:
A)无定值B)45.0000  C)  678.000000  D)  123.00000
*54
D
已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A,B,当从第一列开始输入数据时,正确的数据输入方式是:
int  a1,a2;  char  c1,c2;
scanf("%d%d",&a1,&a2);
scanf("%c%c",&c1,&c2);
 A)  1020AB    B)10  20AB
 C)10  20   AB   D)10 20AB
*55
D
已有程序段和输入数据的形式如下,程序中输入语句的正确形式应当为
 main()
{int  a;float f;
    printf("\nInput number:");
  输入语句
    printf("\nf=%f,a= %d\n ,f,a);
}
Input  number:  4.5   2
A )scanf("%d,%f",&a,&f);  B)scanf("%f,%d",&f,&a)
C)scanf("%d%f",&a,&f);   D)scanf("%f%d",&f,&a);
*56
B
根据定义和数据的输入方式,输入语句的正确形式为:
已有定义:  float  fl,f2;
数据的输入方式:4.52
3. 5
A)scanf("%f,%f",&f1,&f2);  B)scanf("%f%f",&f1,&f2 );
C)scanf("%3.2f%2.1f",&f1,&f); D)scanf("%3.2f%2.1f",&f1,&f2);
*57
D
阅读以下程序,当输入数据的形式为25,13,10正确的输出结果为:
 main()
{int  x,y,z
 scanf("%d%d%d",&x,&y,&z );
 printf("x+y+z=%d\n ,x+y+z);。
 }
 A)x +y+z=48      B)x +y+z=35
 C)x +z=35D)不确定值
*58
B
阅读 下程序,若运行结果为如下形式  ,输入输出语句的正确内容是:
main()
{int  x;  float  y;printf("enter  x,y  :")
输入语句    输出语句
}
输入形式    enter  x,y:  2  3.4
输出形式    x+y=5.40
A)scanf("%d,%f",&x,&y);printf("\nx+y= %4.2f",x+y);
B)scanf("%d%f",&x,&y );printf("\nx+y=%4.2f",x+y);
C)scanf("%d%f",&x,&y); printf("\nx+y=%6.lf",x+y);
D)scanf("%d%3.1f",&x,&y );printf("\nx十y=%4.2f",x+y);
*59
D
以下说法正确的是:
A)输入项可以为一实型常量,如scanf("%f",3.5);
B)只有格式控制,没有输入项,也能进行正确输入,如scanf("a=%d,b=%d");
C)当输入一个实型数据时,格式控制部分应规定小数点后的位数,
如scanf("%4.2f",&f);
D)当输入数据时,必须指明变量的地址,如scanf("%f",&f);
*60
A
根据下面的程序及数据的输入方式和输出形式,程序中输入语句的正确形式应该为:
 main()
{char  ch1  ,ch2  ,ch3;
 输入语句
printf("%c%c%c",ch1,ch2,ch3);}
 输入形式:  A B C
 输出形式:  A B
 A)  scanf("%c%c%c",&ch1,&ch2,&ch3);
 B)  scanf("%c,%c,%c", &ch1,&ch2, &ch3);
 C)  scanf("%c %c %c",&ch1,&ch2,&ch3);
 D)  scanf("%c%c",&ch1,&ch2,&ch3);
*61
D
有输入语句:  scanf("a= %d,b= %d,c=%d",&a,&b,&c);为使变量a的值为1,b为3,c为2,从键盘输入数据的正确形式应当是
A)132(回车)
B)1,3,2(回车)
C)a=1b=3c=2(回车)
D)a=1,b =3,c =2(回车)
*62
A
以下能正确地定义整型变量a,b和c 并为其赋初值5的语句是
 A)int a=b= c= 5;       B) int a,b, c= 5;
 C)a= 5,b=5,c=5;     D)  a= b= c=5;
*63
A
已知ch是字符型变量,下面不正确的赋值语句是
A)ch='a+b';  B)ch='\0';  C)ch='7'+'9';  D)  ch=5+9;
*64
B
已知ch是字符型变量,下面正确的赋值语句是 
A)  ch= '123';  B)  ch= '\xff';  C)  ch= '\08';  D)  ch="\";
*65
B
若有以下定义,则正确的赋值语句是:
 int  a,b;float  x;
  A)  a=1,b=2,    B)b++;  C)  a= b= 5     D)  b= int(x);
*66
B
设x 、y均为f1oat型变量,则以下不合法的赋值语句是
A)++x;   B)y=(x%2)/10; C)  x*=y+8;  D)x=y=0;
*67
A
x,y,z均为int型变量,则执行语句x=(y=(z=10)+5)一5;后,x 、y 和之的值是:
  A)  x=10    B)  x=10  C)  x=10  D)  x=10
       y=15 y=10       y=10       y=5
       z=10 z=10       z=15       z=10
      
*68  
D  
逻辑运算符两侧运算对象的数据类型一一一。
  A)只能是0或1
  B)只能是0或非0正数
  C)只能是整型或字符型数据
  D)可以是任何类型的数据
*69
C
下关于运算符优先顺序的描述中正确的是一一一。
A)关系运算符< 算术运算符< 赋值运算符< 逻辑与运算符
B)逻辑 运算符< 关系运算符< 算术运算符< 赋值运算符
C)赋值运算符< 逻辑与运算符< 关系运算符< 算术运算符
D)算术运算符< 关系运算符< 赋值运算符< 逻辑与运算符
*70
B
下列运算符中优先级最高的是一一一。
  A)<   B)十   C)&&     D)!=
*71
C
能正确表示"当x 的取值在[1,10]和[200,210]范围内为真,否则为假"的表达式是一一一。
  A)  (x>=1)  &&(x<=10)  &&(x> = 200)  &&(x<=210)
  B)  (x>=1)  || (x<=10)  ||(x>=200)  ||(x<=210)
  c)  (x>=1)  &&(x<=10)||(x>= 200)  &&(x<=210)
  D) (x > =1)||(x< =10)  &&  (x> = 200)||(x<=210)
*72
C
表示图中坐标轴上阴影部分的正确表达式是: 
      /////||//////|
      /////||//////|
   ----------------------------->   X
  a  b      c     
  A)(X<=A)&&(X>=B)&&(X<=C)
  B) (x< =a)||(b<=x<=c)
  C)(x<=a)|| (x> =b)  &&  (x<=c)
  D)(x < =a)&&(b< = x < = c)
*73
C
判断char型变量ch是否为大写字母的正确表达式是一一一。
  A)' A' <=ch<='z'     B)(ch> = 'A')&(ch<=' z' )
  C)(ch>=' A' )&&(ch<='z') D)(' A' < = ch)AND('z'> = ch)
*74
D
设x,y 和z是int型变量,且x = 3,y= 4,z= 5,则下面表达式中值为0的是
  A)'y'&&'y'
  B)x < =y
  C) x||y+z&&y-z
  D) !(x
*75
C
已知x =43,ch='A',y=0则表达式(x > = y && ch<'B'&&!Y) 的值是
   A)0   B)语法错   C)1   D)"假"  
*76
C
若希望当A的值为奇数时,表达式的值为"真",A的值为偶数 表达式的值
  
为"假"。则以下不能满足要求的表达式是:
A)  A%2= =1    B)!(A%2 = =0)   C)!(A%2)    D)  A%2
*77
B
设有 int a = 1,b=2,c =3, d =4, m=2, n=2;
       执行(m= a>b)&&(n=c>d)后n的值为:
    A)1B )2       C)3      D)4
 *78
 D     
判断char型变量c1是否为小写字母 正确表达式为:
    A)' a' <=cl<=' z'    B)  (cl> = a)&&(cl<=z)
    C)(' a' >=cl)||(' z' < = cl)  D)(c1>='a')&&(cl<='z')
*79
B
以下程序的运行结果是:
   #include  "stdio.h"
    main()      ,,  \
    {int  a,b,d= 241;
      a=d/100 % 9
      b= (一1)&&(一1);
    printf("%d,%d",a  ,b);
  } 
  A)6,1     B)2,1     C) 6,0     D)2,0
*80
C
执行以下语句后a的值为:
int a,b,c;
a= b= c= 1;
++a||++b&&++c    
  A)错误    B)  0      C)  2  D)  1
*81
A
 执行以下语句后b 的值为:
    int  a=5,b=6,w=1,x=2,y=3,z=4;
    (a=w>x)&&(b=y>z);
  A)  6     B)  0     C)  1      D)  4
*82
C
以下不正确的if语句形式是:   
  A)if(x>y && x!=y);
  B)if(x= =y)  x+=y    
  C)if(x != y)scanf("%d",&x )else scanf("%d",&y);
  D)if(X
*83
A
下列运算符中优先级最低的是:
  A)?:   B)&&     c)+     D)  !=
*84
B
以下if语句语法正确的是一一一。
    A)if(x>0)
printf("%f",x)
else  printf("%f",- -x);
    B) if (x>0)
       {x=x+y;printf("%f",x);}
       else  printf("f",-x);
    C) if(x>0)
       {x=x+y;  prinrf("%f",x);};
       else  printf("%f",-x);
    D) if(x > 0)
       { x = x +y;printf("%f",x)}
else  printf("%f",-x);
*85
D
  
请阅读以下程序:
    main()
    {int  a=5,b=0,c=0; 
    if(a=b+c)  printf("***\n  ");
    e1se   printf("$$$\n");
   以上程序 :
      A)有语法错不能通过编译   B)可以通过编译但不能通过连接
      C)输出***D)输出$$$
*86
C
以下程序的运行结果是 :
     main()    
    {int m=5;
    if(m++> 5)  printf(" %d\n",m);
    e1se     printf("%d\n",m- - );
  }
  A)4    B)5   C)6    D)7
*87
B
当a=1,b=3,c=5,d=4 ,执行完下面一段程序后x 的值是 :
       if(a
       if(c
       else
       if(a
       if(b
       else x= 3;
       else x=6;
       else x=7;
      A)18)2      C)3      D)6
*88
C
以下程序的输出结果是:
   main()
  {int  a=100,x =10,y=20,okl=5,ok2=0;
    if  (x
    if(y ! =10)
    if(!okl)  a=1;
   else
     if(ok2)  a=10;
      a=-1:
    printf( "%d\n",a )
  }
  A)  1      B)  0    C)一1    D)值不确定
*89
B
以下程序的输出结果是:
      main()
      {int  x= 2,y= 一1,z=2;
if (x
 if(y<0)  z= 0;
  else    z+ =1;
    printf("%d\n",z);
    }
    A)3      B )2       C)1      D) 0
*90
B
为了避免在嵌套的条件语句If一else中产生二义性,C语言规定else子句
    总是与(  )配对。
    A)缩排位置相同的if     B)其之前最近的if
    C) 之后最近的if D)同一行上的if
*91
B
以下不正确的语句为:
  A)  if(x>y);
  B)  if  (x= y) &&(x! = 0)  x+= y;
  C)  if(x!= y)scanf("%d",&x);  else  scanf("%d",&y);
  D)if(x< y){x++ ;y十十;}
*92
B
请阅读以下程序:
      #include
       main()
      {float  a,b
      scanf("%f",&a);
      if (a<10.0) b=1.0/x;
      else if((a<0.5)&&(a!=2.0))b= 1.0/(a十2.0);
      else  if(a<10.0)  b= 1.0/x ;
      else  b=10.0;
    printf("%f\n",y);
    }
    若运行时输入2.0(回车),则上面程序的输出结果是:
    A)0.000000   B)0.500000  C)  1. 000000   D) 0.250000
*93
B
若有条件表达式(exp) ?  a++:b--,则以下表达式中能完全等价于表
    达式(exp)的是:
    A)  (exp==0) B)  (exp!=0)
    C)  (exp== 1) D)  (exp!=1)   
*94
A
若运行时给变量x 输入12,则以下程序的运行结果是:
    main()
    {int  x,y; 
     scanf("%d",&x);
    y=x > 12?x+10:  x一12;
    printf("%d\n",y);
    }
      A)0      B)22C)12       0)10
*95
D
以下程序的运行结果是:
      main()
      {int  k= 4,a=3,b=2,c=1;
       printf("\n %d\n",k< a ? k:c
    }
    A)4      B )3     C)2      D)1
*96
B
执行以下程序段后、变量a,b,c的值分别是一。
    int  x=10,y=9;
    int  a,b,c;
    a =(- -x = = y++)?- -x:++y ;
    b = x ++;
    c = y;
    A)a=9,b= 9,c= 9       B )a=8,b=8,c=10
    C)a=9,b= 10,c=9      0)a=1,b= 11,c=10
*97
A
若w,x,y,z,m均为int型变量,则执行下面语句后的m值是:
    w= 1;x = 2;y= 3;z=4;
    m=(w
    m= (m
    m=(m
    A)1B )2     C)3D)4
*98
D
若w=1,X = 2,y= 3,z=4,则条件表达式w
nbsp;   A)4      B)3      C)20)1
*99
C
执行以下程序段后的输出结果是
    int  w=3,  z=7,x =10;
    printf("%d\n",x> 10?  x+100:x 一10);
    printf("%d\n",w++||z++ );
    printf("%d\n",!w>z);
    printf("%d\n",w&&z);
    A)0       B)   1       C)0      D) 0
        1            1           1          1
        1            1           0          0
        1            1           1          0
*100
C
设有程序段
  int  k=10;
  while  (k=0)  k= k—1;
  则下面描述中正确的是
A)  while循环执行10次      B)循环是无限循环
C)循环体语句一次也不执行   D)循环体语句执行一次
*101
B
有以下程序段
    int  x=0,s=0;
    while  (!  x!= 0)  s+=++x;
    printf("%d",s);
    则
A)运行程序段后输出0 B)运行程序段后输出1
C)程序段中的控制表达式是非法的       D)程序段执行无限次
*101
A
语句while(!E)中的表达式!E等价于:
A)  E==0   B)  E!=1  C)  E!=0    D)  E==1
  
*
A
下面程序段的运行结果是
    a=1;b= 2;c=2;
while(a
printf("%d,%d,%d",a,b,c);
A)1,2,0    B)2,1,0    C)1,2,1    D)2,1,1
*102 
  
D
下面程序段的运行结果是:
x = y= 0;
while(x<15)  y++,x + = ++y;
printf("%d,%d",y,x);
A)  20,7    B)6,12      c)  20,8      D)8,20
*
C
【题5.6】下面程序段的运行结果是
  if    n=0;
  while(n++<=2);  printf("%d",n);  A)  2      B)  3C)  4     D)有语法错
*103
B
设有程序段
    t=0;
    while  (printf"*"))
     {t++;
      if(t<3)  break
      } 
  面描述正确的是:
  A)其中循环控制表达式与0等价       B)其中循环控制表达式与'0'等价
  C)其中循环控制表达式是不合法的     D)以上说法部不对
*104
B
下面程序的功能是将从键盘输入的一对数,由小到大排序输出。当输入一对相等数时结束循环,请选择填空:
    #indude  
      main()
      {int  a,b,t;
scanf("%d%d",&a,&b);
while(  【1】  )
{if(a>b)
 {t=a;a=b;b=t;}
  printf("%d,%d",a,b);
scahf("%d%d",&a,&b);人
}
【1】   A)  !a=b    B)  a!=b     C)  a= =b     D)  a=b
*105
C
下面程序的功能是从键盘输入的一组字符中统计出大写字母的个数m和小写字母的个数n,并输出m、n中的较大者,请选择填空:
    #indude   "stdio.h"   
      main()
      {int  m=0,n=0;
      char    c;  1
      while((【1】)!='\n')
      { if(c>='A' && C<='Z') m++ ;
      if(c>='a'  && c<='z')  n++; }     
      printf("%d\n",  m
1】 A) c=getchar()  B)  getchar()  C)c=getchar()  D)  scanf("%c",c)
*106
C
下面程序的功能是将小写字母变成对应大写字母后的第二个字母。其中y变成A,z 变成B.请选择填空。
    #include "stdio. H"
    main()
    {    char c;
  while((c=getchar())!='\n')  
{if(c>= 'a'&& c<='z')
  c - = 30;   
   if(c>'z' && c<='z'+ 2)
      【2】; }
    printf(" %c",c)
      }
  【2】A)  c='B'   B)  c='A'      C)  c-=26     D)  c=c+26
*107
B
下面程序的功能是在输入的一批正整数中求出最大者,输入0结束循环,请选择填空。
#include  
      main()
      {int a,max= 0;
      scanf("%d",&a)  
      while(【1】)    
     {if(max
      scanf("%d",&a); }
   printf("%d" ,max  );}
      
【1】  A)  a==o    B)A     C)  !A = = 1D)!a 
*108
C
下面程序的运行结果是。
    #include
    main()
    { int  num= 0;     
     while(num<= 2)
     {num++    
    printf ("%d\n", num);}
       }    
    A)1      B )  1   c)1D)1
    2      2  2
   3  3
       4     
*109
C
以下程序段
x= -1;
do
       {x=x*x;}
  while(!x);
    A)是死循环 B)循环执行二次
    C)循环执行一次     D)有语法错误
*110
C
以下描述中正确的是:
     A)由于do一while循环中循环体语句只能是一条可执行语句,所以循环体内不能使用复合语句
     B)  do一while循环由do开始,用while结束,在while(表达式)后面不能写分号
     C)在do一while循环体中,一定要有能使while后表达式值变为零("假")的操作
     D)do一while循环中,根据情况可以省略while
*111
B
若有如下语句
 int  x=3;
 do { printf(" %d\n",x -=2);} while(!(--x));
    则上面程序段
    A)输出的是 1  B)输出的是1和-2
    C)输出的是3和0      D)是死循环
*112
C
下面程序的功能是计算正整数2345的各位数字平方和,请选择填空。
    #include
main()
       {int  n,sum=0;
n=2345
do{ sum=sum+(n%10)*n%10); 
n=【2】;
}while(n);
printf("sum=%d",sum);} 
【2】 A)  n/1000   B)n/100      C)  n/10    D)  n%10
*113
B
下面程序是从键盘输入学号,然后输出学号中百位数字是3的学号,输入0时结束循环。请选择填空。
   #  include
    main()
  {1ong  int  num;
    scanf("%ld",&num);
    do  { if( 【1】) printf("%ld",num);
scanf("%ld",&num);
      }while(!num==0);}
  【1】 A)num%100/10==3 B)num/100%10==3
C)num%10/10==3 D)num/10%10==3
 
*114
B
下面程序的功能是把316表示为两个加数的和,使两个加数分别能被13和11整除。请选择填空。 
 #include  
   main()
 {int  i=0,j,k;
  do{  i++;k=316一13*i;}
  while(【1】);j=k/11;
  printf(" 316=13* %d十11*%d",i,j);
   }
【1】A)k/11    B) k%11    C) k/11==0   D) k/11== 0
*115
D
下面程序的运行结果是:
      #indude
      main()
      {int  y=10;
       do{y--;}
       while(--y);
       printf("%d\n",y--);
}
    A)一1B) 1      C)8      D) 0
*116
D
若运行以下程序时,从键盘输入ADescriptor(CR)表示回车),则下面程序的运行结果是:
      #include
      main()   
      { char c;
      int v0=0.v1=0,v2=0;
  do{
    switch(c=getchar())
      {case 'a':case  'A'  :
case 'e':case  ' E' :
case 'i':case 'I' :
case 'o':Case  'O'  :
case 'u':case  'U'  :vl+=1;
default:v0+=1;v2+=1  ;}     ;
while(c!='\n');
      printf("v0=%d,v1=%d,v2=%d\n",v0,v1,v2);
 
    }    
A)v0=7,v1=4,v2=7B)  v0=8,v 1=4,v2=8    
C)v0= 11,v1=4,v2=11      D)  v0=12,vl=4,v2=12
*117
B
下面程序的运行结果是:    
      #include
       main()  
      {int   a==1,b=10;
 do
{b-=a;a++;}while(b--<0);
printf("a=%d,b=%d\n",a,b);
      }    '
   A)a=3,b=11   B )a=2,b=8    C)a=1,  b=一1    D)a=4,b=9
*118
D
下面有关for循环的正确描述是:   
    A)  for循环只能用于循环次数已经确定的情况
    B)  for循环是先执行循环体语句,后判断表达式
    C)  在for循环中,不能用break语句跳出循环体
    D)  for循环的循环体语句中, 可以包含多条语句,但必须用花括号括起来
*119
B
对for(表达式1;;表达式3)可理解为:
A)  for(表达式1;  0;表达式3)
B)  for(表达式1;1;表达式3)
C)    for(表达式1;表达式1;表达式3)
D)    for(表达式1;表达式3;表达式3)
*120
B
若i为整型变量,则以下循环执行次数是:
  for  (i=2;i==0;)  printf("%d",i-- ); 
  A)无限次   B) 0次   C) 1 次     D)  2次
*121
C
以下for循环的执行次数是:
  for  (x=0,y一0;  (y=123)&&(x<4);  x++);
  A)是无限循环 B)循环次数不定 C)执行4次  D)执行3次
*122
A
以下不是无限循环的语句为:
  A)  for  (y=0,x=1;x > ++y;x =i++)  i=x ;
  B)   for (;;  x++=i);
  C)  while  (1){x ++;}
  D)  for(i=10; ;i--)sum+=i;
*123
C
下面程序段的运行结果是:
for (y= 1;y<10;) y=((x=3* y,x+1),x-1);
printf  ("x=%d,y=%d",x,y);
A)x=27,y=27   B)x=12,y=13   C)x=15,y=14   D)x=y=27
*124
D
下面程序段的运行结果是
 for(x=3;x<6;x++)printf((x %2)?("**%d"):(" ##%d\n"),x);
   A)**3      B )##3     C)##3  D)**3##4
      ##4  **4 **4##5 **5
      **5  ##5
*125
C
下列程序段不是死循环的是
      A)  int  i=100;
   whiLe  (1)
  {i=i%100+1;
  if  (i>100)  break;    
   }   
      B)  for(;;);    
      C)  int  k=0;     
   do{++k;}  while  (k> =0)  ;
      D)  int  s=36;
   while  (s);--s  
*126
C
执行语句for(i=1;i++<4;);后变量i的值是
  A)3    B )4     C)5    D)不定
      
*127
D
下面程序的功能是计算:至50中是7的倍数的数值之和,请选择填空。
     #include    •
     main()
    {int  i,sum= 0;  
      for(i=1;i<=50;i++)
if([1])  sum+=i;
      printf("%d",sum);
    }     
A) (int)(i/7)==i/7 
B) (int)i/7==i/7
C)  i%7= 0
D)  i%7==0
*128
B
下面程序的功能是计算 1至10之间的奇数之和及偶数之和。请选择填空;
    # include 
    main()
   {int  a,b,c,i; 
     a=c=0;
    for(i=0;i<=10;i+=2)
    { a+=i;
     [1];
     c+=b;
}
     printf("偶数之和=%d\n",a);      
     printf("奇数之和=%d\n",c-11),
}
[1] A )b=i--  B)  b=i+1   C)  b=i++   D)b=i-1
*129
B
下面程序的运行结果是:
    #include  
      main()     
    {int i;
for(i=1;i<=5;i++)
  switch(i%5)
{case  0:printf("* ");break;
  case  1  :printf("#");break;
  default  :printf("\n");
  case  2  :printf("&");
    }
      A)#&&&*  B) #&   C)  #    D)#& 
        &         &
        &         &
                  *
*130
D
下面程序的运行结果是:
    #include 
      main()
     {  int    x,i;    
      for(j-1;i<=100;i++)
      {x=i;
  if(++x%2==0)
    if(++x%3==0)
  
      if(++x%7==0)
      printf("%d",x);
  
  }
      }
    A)39  81     日)42  84      C)26  68       D)  28  70
*131
C
下面程序段的功能是计算1000!的末尾含有多少个零。请选择填空。
     (提示:只要算出1000!中含有因数5的个数即可
    for(k=0,i=5;i<=1000;  i+=5)
     
    while(【1】){k++; m=m/5;}
     
【1】A)m%5==0   B)m=m%5==0  C)m%5==0  D)m%5!=0
*132
D
下面程序的运行结果是:
    #include 
    main()
    {int i,b,k=0;
    for(i=1;i< =5;i++)
      {b=i%2;
       while(b-->=0)     k++;
      }
    printf("%d,%d",k,b);
  }
    A)3,-1     B )8,-1    C)3,0     D)8,-2
*133
B
以下正确的描述是。
  
    A)continue语句的作用是结束整个循环的执行
    B)只能在循环体内和switch语句体内使用break语句
    C)在循环体内使用break语句或continue语句的作用相同
    D)从多层循环嵌套中退出时, 只能使用goto语句
  
*134
D
下面程序段:    
      for  (t=1;  t<=100;t++)
  {scanf("%d",&x); 
   if(x<0)  continue; 
      printf("%3d",t);} 
   A) 当x<0时整个循环结束
   B) x>=0时什么也不输出
   C) printf函数永远也不执行
   D)最多允许输出100个非负整数
*135
C
下面程序段:
  x=3;
  do
  {y=x--;
  if(!y){ printf("x");continue;}
  printf("#");
  }  while (1<=x<=2);
    A)将输出##       B)将输出##*
    C)是死循环 D)含有不合法的控制表达式
  
  
*136
C
以下描述正确的是
    A)  goto语句只能用于退出多层循环
    B)  switch语句中不能出现continue语句
    C)  只能用continue语句来终止本次循环
    D)  在循环中break语句不能独立出现
*137
C
与下面程序段等价的是:
  for(n=100;n<= 200; n++)
  {if (n%3==0)  continue;
      printf("%4d",n);} 
     A) for(n=100;(n%3)&& n<=200;n++) printf("%4d",n);
     B)  for(n=100;(n%3)|| n<=200;n++) printf("%4d",n);
     C) for(n=100;n<=200;n++)if(n%3!=0)printf("%4d",n)
     D) for(n=100;n<=200;  n++)
      {if(n%3)  printf("%4d",n);
       else  continue;
       break;} 
*138
B
下面程序的运行结果是:      
    #include   
  { int k=0;
     char  c='A';
      do
       {switch(c++)
{case  'A':k++;break;
 case  'B':k--;
 case  'C':k+=2;break;
 case  'D':k=k%2;continue;
 case  'E':k=k*10;breab;
 default:k=k/3;}
 k++;}
      while(c<'G')
 printf("k=%d",k);}     
      A)k=3     B)k=4    C)k=2    D)k=0
*139
B
若运行以下程序时,从键盘输入3.6,2.4,(表示回车),则下面程序的运行结果是:
  #indude  
  # include  
 main()
  {float x,y,z;
   scanf("%f%f",&x,&y);
   z=x/y;
   while(1)
    {if(fabs(z)>1.0) {x=y;y=z;z=x/y;}
    else break;}
    printf("%f",y);}
   A) 1.5  B)1.6 C) 2.0 D)  2.4   
  
*140
B
下面程序的运行结果是:
#include  "stdio.h"
main()
{int a,b;
for(a=1,b=1;a<=100;a++)
{if (b>=20) break;
if(b%3==1) {b+=3;continue;}
b-=5;}
printf("%d\n",a);}
A) 7      B) 8     C)9      D) 10
*141
B
下面程序的运行结果是:
 #include "stdio.h"
 main()
{int i;
for(i=1;i<=5;i++) 
{if (i%2) printf("#");
else continue;
printf("*");
}
printf("$");}
A) *#*#$   B)   #*#*#*$   C) *#*#$   D)#*#*$
*142
A
下面程序的运行结果是:
 
main()
{int i,j,a=0;
for (i=0;i<2;i++)
{ for (j=0;j<=4;j++)
{if (j%2)  break;
a++;}
a++;}
printf("%d\n",a);
}
A)  4       B)  5       C)  6      D)  7 
  
*179
c
在c语言中,引用数组元素时,其数组下标的数据类型允许是__.
        A)整型常量         B)整型表达式
        c)整型常量或整型表达式D)任何类型的表达式
*180
D
以下对一维整型数组a的正确说明是__。
        A)  int a(10);  B)int n= 10,a[n];
        c)  int  n;       D)  #define  SIZE  10;
scanf("%",&J1);  int a[SIZE];
int a[n];
*181
D
若有说明:int a[10];则对a数组元素的正确引用是__。
        A)a[10] B) a[3.5] C) a(5) D) a[10-10]

*182
A
在C语言中,一维数组的定义方式为:,类型说说明符 数组名__。
A) [常量表达式]   B) [整形表达式]    
c)[ 整型常量]或[整型表达式] D)[整型常量]
  
*183
C
以下能对一维数组a进行正确初始化的语句是__。
        A)  int a[10]=(0,0,0,0,0) B)int  a[10]={}
C)  int  a[]={0};D) int a[10]={10*1};
*184
C
以下对二维数组a的正确说明是__。
      A)  int a[3][];   B)  floatf a(3,4);
       c)  double a[1][4];  D)  float a(3)(4);
*185
C
若有说明:int a[3][4]; 则对a数组元素的正确引用是__。
        A)  a[2][4]     B)  a[1,3]   C)  a[1+1][0]    D)  a(2)(1);
*186
D
若有说明:int a[3][4];则对a数组元素的非法引用是__。
  
  
A)  a[0][2*1]  B)  a[1][3]  C)a[4-2][0]    D)a[0][4]"       "
*187
B
以下能对二维数组a进行正确初始化的语句是__。
  
        A)  int a[2][]={{1,0,1},{5,2,3}};
        B)  int a[][3」={{1,2,3},{4,5,6}};
        C)   int  a  [2][4]={{1,2,3},{4,5},{6}};
        D)  int  a[][3={{1,0,1},{},{1,1}};
*188
C
以下不能对二维数组a进行正确初始化的语句是__。
  
 A)  int  a[2][3]={0};
 B)  int  a[][3」={{1,2,3},{4,5,6}};
 C)  int  a[2][4]={{1,2,3},{4,5}{6}};
 D)   int  a[][3]={{1,0,1},{0},{1,1}}; 
*189
D
若有说明:  int  a[3]「4]={0};则下面正确的叙述是
 A)只有元素a[0][0]可得到初值0 
 B)此说明语句不正确:。    
 C)数组a中各元素都可得到初值,但其值不一定为0。
 D)数组a中每个元素均可得到初值0

*190
D
若有说明:int  a[][4]={0,0};则下面不正确的叙述是__。
A)数组a的每个元素都可得到初值0  
 B)二维数组a的第一维大小为1  
 C)因为二维数组0中第二维大小的值除以初值个数的商为1,故数组a行
 数为1
 D)只有元素a[0]「0」和a[0]「1」可得初值0,其余元素均得不到初值0
*191
B
若有说明:int  a[3]「4];则数组a各元素
 A)可在程序的运行阶段得到初值0
 B)可在程序的编译阶段得到初值0   
 C)不能得到确定的初值
D)可在程序的编译或运行阶段得初值0
*192
C
以下各组选项中,均能正确定义二维实型数组a的选项是
  
 A)float a[3][4];                      B)float a(3,4);  
 float a[][4];                             float a[3][4];
 float a[3][]={{1},{0}};                   float a[][]={{0},{0}};
 C)float a[3][4];                      D)float a[3][4];
static float a[][4]={{0},{0}};             float a[3][];
auto float a[][4]={{0},{0},{0}};           float a[][4]
*193

下面程序(每行程序前面的数字表示行号)
 1   main()
 2     {
 3     int  a[3]={3*0};
 4     int  i;
 5     for(i=0;i<3;i++)  scanf("%d",&a[ i]);
 6     for(i=1;i<3;i++) a[0]=a[0]+a[ i] ;
 7     printf("%d\n",a[0]); }
A)没有错误B)第3行有错误
C)第5行有错误 D)第7行有错误 
*194

下面程序一一一(每行程序前面的数字表示行号)。
1    main()
2    {
3     float a[10]={0.0};
4     int  i
5     for(i=0;i<3;i++)  scanf("%d",&a[ i]);
6     for(i=0;i<10;i++)  a[0]=a[0]+a[ i];
7     printf("%d\n",a[0]);
8     }
A)没有错误         B)第3行有错误
C)第5行有错误      D)第7行有错误  
*195
D
下面程序有错的行是
 1  main()
 2{
 3   int  a[3]={1};
 4   int  i;
 5   scanf("%d",&a);
 6   for(i=1;i<3;i++)  a[0]=a[0]+a[ i];
 7   printf("a[0]=%d\n",a[0]);
 8   }
 A)3      B)6   C)7      D)5
*196
D
下面程序(每行程序前面的数字表示行号)
 1  main()
 2  {
 3   int a[3]={0};
 4   int i;
 5   for(i=0;i<3;i++)scanf("%d",&a[ i]);
 6   for(i=1;i<4;i++)a[0]=a[0]+a[ i];
 7   printf("%d\n",a[0]);
 8                     }
 
 A)没有错误            B)第3行有错误
 C)第5行有错误        D)第6行有错误
*197
D
若二维数组a有m列,则计算任一元素a[ i][j]在数组中位置的公式为
(假设a[0][0]位于数组的第一个位置上。)
 A)i*m+j    B)j*p+i。C)i*m+j-1    D)i*m+j+1  
*198
B
对以下说明语句的正确理解是
 int a[10]={6,7,8,9,10};
 A)将5个初值依次赋给a[1]至a[5]
 B)将5个初值依次赋给a[0]至a[4]
 C)将5个初值依次赋给a[6]至a[10]
 D)因为数组长度与初值的个数不相同,所以此语句不正确
*199
B
以下不正确的定义语句是__.
 A)  double  x[5]={2.0,4.0,6.0,8.0,10.0};
 B)  int  y「5」={0,1,3,5,7,9};
 C)  char  c1[]={’1’,’2’,’3’,’4’,’5’};    4       。二入广    \   "’   (:
 D)  char c2[]=}{'\x10','\xa','\x8'};
*200
B
若有说明:int  a[」「3」={1,2,3,4,5,6,7};则a数组第一维的大小是__.
 A)  2    B)  3  C)  4  D)无确定值
*201
B
若二维数组a有m列,则在a[ i][j]前的元素个数为__.
 A)j*m+j  B)i*m+j    C)i*m+j  D)i*m+j+1
*202
A
定义如下变量和数组: 
 int k; 
 int a[3][3]={1,2,3,4,5,6,7,8,9};
 则下面语句的输出结果是    。"
 for(k=0;k<3;k++)  printf  ("%d",a[k][2-k]);
 A)  3  5  7B)3 6  9   C) 1 5 9 D)  1 4 7
*203
B
若有以下程序段:
......
 int a[]={4,0,2,3,1};i,j,t;
 for(i=1;i<5;i++)
 {t=a[ i];j=i-1;
 while(j>=0&&t>a[j])
   {a[j+1]=a[j];j--;}
        ......
 则该程序段的功能是 __.  
 A)对数组a进行插入排序(升序)
 B)对数组a进行插入排序(降序)
 C)对数组a进行选择排序(升序)
 D)对数组a进行选择排序(降序)
*204
D
以下正确的定义语句是__.
 A)  int  a[1」[4」={1,2,3,4,5};
 B)  float x[3][]={{1},{2},{3}};
 C)  long b[2][3]={{1},{1,2},{1,2,3}};
 D)  double  y[][3]={0};
*205
C
下面程序的运行结果是__.
main() 
 {int  a[6」「6」,i,j;
   for(i=1;i<6;i++)
   for(j=1;j<6,j++)
     a[ i][j]=(i/j)*(j/i);
   for(i=1;i<6;i++)
     {for(j=1;j<6;j十十)
   printf("%2d",a[ i][j]);
       printf("\n"_);}
         }
  
A)11111     B)00001 C)10000     D)10001
11111        00010    01000         01010
11111        00100    00100         00100
11111        01000    00010         01010
11111        10000    00001         10001
*206
C
下面程序的运行结果是 __.
     main()
     {int  a[6],i;
         for(i=1;i<6;i十十)
     {a[ i]=9*(i-2+4*(i>3))%5;
      printf("%2d",a[ i]);
}        
       }
  
     A)—40404B)—40403
     C)一40443D)一40440
*207
D
下面是对s的初始化,其中不正确的是__.
 A)  char  s[5」={"abc"} B)char s[5]={'a','b','c'};
 C)  char  s[5]=""       D) char s[5]="abcdef";
*208
B
下面程序段的运行结果是 __.
 char  c[5]={'a','b','\0','c','\0'};
   printf("%s",c);}
A)’a’’b’ B)  ab   C)  ab c   D)  ab    
   (其中 表示空格)    
*209
D
对两个数组a和6进行如下初始化        
   char  a[]="ABCDEF";
   char  b[]={’A’,’B’,’C’,’D’,’E’,’F’};卜
   则以下叙述正确的是 __.   
   A)  a与b数组完全相同       B)  a与b长度相同
   C)  a和b中都存放字符串     D)  a数组比b数组长度长
*210
B
有两个字符数组a、b,则以下正确的输入格式是  __.
   A)  gets  (a,b);   B)  scanf  ("%s%s",a,b);
   C)  scanf  ("%s%s",&a,&b);  D)  gets  ("a"),  gets  ("b");
*211
D
有字符数组a[80]和b[80],则正确的输出形式是__.
A)  puts  (a,b);  B)  printf  ("%s,%s,a[],b[]);
C)  putchar(a,b);  D)  puts  (a),  puts  (b);
*212
D
下面程序段的运行结果是__.
 char  a[7]="abcdef";
 char  b[4]="ABC";
 strcpy(a,b);
 printf  ("%c",a[5]);
         J。        "      了
A)一   B)\O  C) e D)f(其中一表示空格)
*213
D
有下面的程序段
char  a[3],b[]="china";
a=b;
printf("%s",a);
则__.
A)运行后•将输出Chm、"、B)运行后将输出Ch’一
C)运行后将输出Chi      D)编译出错
*214
B
下面程序段的运行结果是__.
char  c[]="\t\v\\\0will\n";
printf("%d",strlen(c));        
A)14     B)  3  C)  9  D)字符串中有非法字符,输出值不确定
*215
D
判断字符串a和b是否相等,应当使用__.
A)  if  (a==b)   B)  if  (a=b)
C)  if  (strcpy(a,b)),  D)  if  (strcmp(a,b))
*216
D
判断字符串s1是否大于字符串s2应当使用__.
A)  if  (sl>s2)   B)  if  (strcmp(s1,s2))
C)  if  (strcmp(s2,sl)>0)  D)  if  (strcmp(s1,s2)>0)
*217
A
下面程序段是输出两个字符串中对应字符相等的字符。请选择填空。

char  x[]="programming";
char  y[]="Fortran";
int  i=0;
while  (x[ i]!='\0'&& y[ i]!='\0')
 {if  (x[i ]==y[ i]) printf  ("%c", 1  );  
     else i++;}
}


 【1】A)x[i++] B)y[++i]  C)x[ i]    D)y[ i]
*218
D
下面描述正确的是__.
 A)两个字符串所包含的字符个数相同时,才能比较字符串
 B)字符个数多的字符串比字符个数少的字符串大
 C)字符串"STOP "与"STOp"相等
 D)字符串"hat"小于字符串"he"

*219
C
下述对C语言字符数组的描述中错误的是
 A)字符数组可以存放字符串
 B)字符数组的字符串可以整体输入、输出
 C)可以在赋值语句中通过赋值运算符"="对字符数组整体赋值
 D)不可以用关系运算符对字符数组中的字符串进行比较
*220
B
有已排好序的字符串a,下面的程序是将字符串s中的每个字符按a中元素
的规律插入到a中。请选择填空。
 #indude
  main()
 {char  a[20」="cehiknqtw";
   char  s[]="fbla";
   int i,k,j;
   for(k=0;s[k]!='\0';k十+)
    {j=0;   
       
   while(s[k]>=a[j]&&a[j]!='\0')j++;
       for(i=str1en(a);i>=j;i--) 【2】;
      a[j」=S[k」;
     }
 puts(a);
   }
  【2】  A)  a[ i]=a[i+1]  B)  a[i+1]=a[ i];
        C)   a[ i]=a[i-1] D) a[i-1]=a[ i];
*221
A
下面程序的功能是将字符串5中所有的字符c删除。请选择填空。
 #include  
 main()
     {char  s[80];
int i,j;
      gets(s);
       for(i=j=0;s[ i]!='\0';i++)
         if(s[ i]!='c')【1】
    
     puts(s);
 
 【1】A)s[j++]=s[ i]  B)s[++j]=s[ i];
   C)  s[j]=s[ i];j++;   D)  s[j]=s[ i];
*222
B
下面程序的功能是从键盘输入一行字符,统计其中有多少个单词,单词之间
 用空格分隔。请选择填空。       
   #indude
   main()
       {char  s[80」,c1,c2='';
         int  i=0,num=0;
         gets(s);
         while(s[ i]!='\0')
         {c1=s[ i];
1f(i==0)  c2='';
else  c2=s[i-1];
if(【1】)  num++;
i++;
 )
     printf("There are %d words.\n",num);
 }
  
         【1】A)c1='' && c2=='' B)cl!='' && c2==''
   C)c1=='' && c2!='' D)cl!='' && c2!=''
*223
A
下面程序的运行结果是
   #indude
main()
  {char  ch[7]={"12ab56"};
         int  i,s=0;
   for(i=0;ch[ i]>='0'&&ch[ i]<='9';i+=2)
     s=10*s+ch[ i]-'0';
        printf("%d\n",s);
       }
   A)1       B)1256        C)  12ab56      D)1
                                                              2 
                                                              5 
                                                              6
*224
A
当运行以下程序时,从键盘输入:aa  bb
cc dd
(表示回车),则下面程序的运行结果是
 #  include
 main()    
 {char  a1[5],a2[5」,a3[5],a4[5];
 scanf("%s%s",a1,a2); 
 gets(a3);  gets(a4);
 puts(al);  puts(a2);
 puts(a3);  puts(a4);
       }

 A)  aa     B)  aa ()aa        D)  aa bb
bb         bb    bb           cc
cc    cc  dd       dd
     cc dd      dd ee


*225
D
  
当运行以下程序时,从键盘输入:ab
    c
    dd
 (表示回车),则下面程序的运行结果是
 #include
   #difine N 6
  main()
   {  char  c[N];       
       int  i=0;
       for  (;i
   for(i=0;  i

 A)abcdef   B)a    C)b      D)ab
 b       c         c
 c       d         d
 e      
    
 f      
*226
A
当运行以下程序时,从键盘输入:AhaMA  Aha(
 则下面程序的运行结果是
   #include  "stdio.h"
   main()
 {char  s[80],c='a';
   int i=0;
   scanf("%s",s);
   while(s[ i]!='\0')
     {if(s[ i]==c)  s[ i]=s[ i]-32;
   else  if(s[ i]==c-32)  s[ i]=s[ i]+32;
     i++;
     }
   puts(s);
)
A)ahAMa      B)AhAMa      C)  AhAMa  ahA  D)  ahAMa ahA
*227
D
下面程序的运行结果是一一一。
 #include
 #inc1ude
 main()
 {char  a[80」="AB",b[80]="LMNP";
       int  i=0;
       strcat(a,b); 
   whi1e(a[i++]!='\0')b[ i]=a[ i];
   puts(b);
 }
 A)LB   B)ABLMNP     C)AB     D)LBLMNP
*228
B
下面程序的运行结果是
  #include 
   main()
{
char str[]="SSSWLIA",c;
int k;
for(k=2;(c=str[k])!='\0';k++)
{switch(c)
{case 'I':++k;break;
case 'L':continue;
default:putchar(c);continue;
}
putchar('*');
}
}
A)SSW*    B)SW*   C)  SW*A  D)SW
*229
B
下面程序的运行结果是
 #include 
main()
{char a[]="morning",t;
int i,j=0;
for(i=1;i<7;i++) if(a[j]
t=a[j];a[j]=a[7];
a[7]=a[j];puts(a);
}
A)  mogninr  B)  mo  C)  morning  D)  mornin