第二章 基本数据类型及运算
一、选择题
1. 若以下选项中的变量已正确定义,则正确的赋值语句是       
A) x1=26.8%3;        B) 1+2=x2;      C) x3=0x12;        D) x4=1+2=3;
答案:C
2. 设变量xfloat型且已经赋值,则以下语句中能够将x中的数值保留到小数点后面两位,并将第三位四舍五入的是       
A) x=x*100+0.5/100.0                      B) x=(x*100+0.5)/100.0 
C) x=(int)(x*100+0.5)/100.0              D) x=(x/100+0.5)*100.0
答案:C
3. 下列C语言中运算对象必须是整型的运算符是       
A) %=        B) /      C) =        D) *=
答案:A
4. 若有以下程序段:int c1=1,c2=2,c3;c3=1.0/c2*c1;则执行后,c3中的值是       
A) 0        B) 0.5      C) 1        D) 2
答案:A
5. xy均为int型变量,则以下语句:x+=y; y=x-y; x-=y; 的功能是       
A) xy按从大到小排列    B) xy按从小到大排列 
C) 无确定结果                D) 交换xy中的值
答案:D
6. 下列变量定义中合法的是     
Ashort_a=1-.le-1;              Bdouble b=1+5e2.5;
Clong do=0xfdaL;              Dfloat 2_and=1-e-3;
答案:A
7. 以下4个选项中,不能被看作是一条语句的是     
A) {}                              B) a=0,b=0,c=0;
C) if (a>0);                        D) if (b==0)m=1;n=2;
答案:D
8. x=1,y=-1,下列表达式中解为8的是   
Ax&y      B~xx      Cxx      Dx<<=3
答案:D
9. C语言中不合法的整数是   
A20      B0x4001      C08      D0x12ed
答案: C
10. 以下选项中不正确的实型常量是
A2.607E-1    B)0.8103e0.2    C)-77.77    D)456e –2
答案:B
11.若变量已正确定义并赋值,符合C语言语法的表达式是
Aa=a+7                      Ba=7+b+c,a++
Cint(12.3%4)                  Da=a+7=c+b
答案:B
12.以下十六进制数中不合法的是
Aoxff      B0Xabc    C0x11    D0x19
答案:A
13. int i=2,j=3,k=4,a=4,b=5,c=3;,则执行表达式(a=i<j&&(b=j>k)&&(c=i,j,k)后,c值是   
A0      B1      C2    D3
答案:D
14. 下列程序的运行结果是   
# include stdio.h
void main( )
{  int i=23;
  do{++i;}
  while(i);
  printf(%d,i);
}
A23      B24      C)死循环    D)无任何结果
答案:C
15.int a=3,b=4,c=5;,下列表达式的值不为1的是   
Aa+b>c&&b==c        Ba||b+c&&b-c     
C!(a>b)&&!c||1        D!(a+b)+c-1&&b+c/2
答案:A
16.下列不合法的常量是:   
1’?’  2’abc’  3Turbo c  4\0x32’  5\123’
6’’’’  7 (8     9\\\  10’’a’’’
11\\12\0123’13\xaf’    14’  15李为民
16\xaif
答案:(2),(12),(14),(16
17. 下列运算符中,结合方向为自左向右的是(  )。
A)?:  B),  C+ =  D+ +
答案:(B
18. 若有float x;sizeof (x)sizeof (float)两种描述(  )。
A)都正确  B)都不正确  C)前者正确 D)后者正确
答案:(A
19. 有整型变量x,单精度变量y=5.5,表达式x=(float)(y*3+((int)y)%4)执行后,x的值为(  )。
A17  B17.500000  C17.5 D16
答案:(A
20. 若给定条件表达式(M?(a++):(a--),则其中表达式(M     
A.和(M==0)等价              B.和(M==1)等价
C.和(M!=0)等价              D.和(M!=1)等价
答案:C
21. 已知float x=1,y;y=++x*++x的结果是     
Ay=9        By=6      Cy=1      D.表达式是错误的
答案:D
22. 以下程序的输出结果是     
short i=65535; printf ("%d\n",i);
A65535                                      B0
C.语法错误,无输出结果          D-1
答案:D
23.有变量说明语句int a,b ,c;,顺序执行下面语句:
  a=b=c=1
  ++a||++b&&++c;
那么,变量b的值应是(
A2    B1    C0    D3
答案:B
24. 有变量说明int a=3;,则表达式a<1&&--a>1的运算结果和a的值应该是(
A02    B03    C12    D13
答案:B
25. 以下程序的输出为     
#include<stdio.h>
void main( )
{
  double x=213.82631;
  printf("%-6.2e\n",x);
}
A213.82        B21.38e+01      C2.14e+02      D-2.14e2
答案:C
26. 下列关于单目运算符+ +- -的叙述中正确的是     
A)它们的运算对象可以是任何变量和常量
B)它们的运算对象可以是char型变量和int型变量,但不能是float型变量
C)它们的运算对象可以是int型变量,但不能是double型变量和float型变量
D)它们的运算对象可以是char型变量、int型变量和float型变量
答案:D
27. 有以下程序:
#include <stdio.h>
void main ( )
{
    char a,b,c,*d;
    a='\';b='\xbc';
    c='\0xab';d="\0127";
    printf ("%c%c%c%c\n",a,b,c,*d);
float型
}
编译时出现错误,以下叙述中正确的是     
A)程序中只有“a='\';”语句不正确
B)“b='\xbc';”语句不正确
C)“d="\0127";”语句不正确
D)“a='\';”和“c='\0xab';”语句都不正确
答案:D
28. 有以下程序:
#include <stdio.h>
void main ( )
{
    int a=1,b=2,m=0,n=0,k;
    k=(n=b>a)||(m=a<b);//k=(0=2>1)||(0=1<2)
    printf ("%d,%d\n",k,m);//k值若等于1程序便停止运行,m的值不会改变
}
程序运行后的输出结果是     
A00      B01      C10      D11
答案:C
29. 已定义ch字符型变量,下列赋值语句中错误的是     
Ach='\';      Bch=62+3;      Cch=NULL;      Dch='\xaa';
答案:A
30. 以下4个选项中,不能看作一条语句的是     
A{}                    Ba=0,b=0,c=0;
Cif (a>0);                  Dif (b= =0)m=1;n=2;
答案:D
31. 假定有以下变量定义,则能使值为3的表达式是     
int k=7,x=12;
Ax%=(k%=5)            Bx%=(k-k%5)
Cx%=k-k%5            D(x%=k)-(k%=5)
答案:D
32. 以下程序的输出结果是       
#include <stdio.h>
void main( )
{
    int x=3,y=2,z=1;
    printf ("%s=%d\n", "x/y&z",x/y&z);
    printf ("%s=%d\n", "x^y&~z", x^y&~z);
}
Ax/y&z=0            Bx/y&z=1
  x^y&~z =0            x^y&~z =0
Cs=x/y&z=0          Dx/y&z=1
  s=x^y&~z =1          x^y&~z =1
答案:D
33. 设有“int x=11;”则表达式(x++*1/3)的值是