第二章 基本数据类型及运算
一、选择题
1. 若以下选项中的变量已正确定义,则正确的赋值语句是       
A) x1=26.8%3;        B) 1+2=x2;      C) x3=0x12;        D) x4=1+2=3;
答案:C
2. 设变量x为float型且已经赋值,则以下语句中能够将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. 设x和y均为int型变量,则以下语句:x+=y; y=x-y; x-=y; 的功能是       
A) 把x和y按从大到小排列    B) 把x和y按从小到大排列 
C) 无确定结果                D) 交换x和y中的值
答案:D
6. 下列变量定义中合法的是     
A)short_a=1-.le-1;              B)double b=1+5e2.5;
C)long do=0xfdaL;              D)float 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的是   
A)x&y      B)~x│x      C)x^x      D)x<<=3
答案:D
9. 在C语言中不合法的整数是   
A)20      B)0x4001      C)08      D)0x12ed
答案: C
10. 以下选项中不正确的实型常量是
A)2.607E-1    B)0.8103e0.2    C)-77.77    D)456e 2
答案:B)
11.若变量已正确定义并赋值,符合C语言语法的表达式是
A)a=a+7                      B)a=7+b+c,a++
C)int(12.3%4)                  D)a=a+7=c+b
答案:B)
12.以下十六进制数中不合法的是
A)oxff      B)0Xabc    C)0x11    D)0x19
答案: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值是   
A)0      B)1      C)2    D)3
答案:D
14. 下列程序的运行结果是   
# include stdio.h
void main( )
{  int i=23;
  do{++i;}
  while(i);
  printf(%d,i);
}
A)23      B)24      C)死循环    D)无任何结果
答案:C
15.设int a=3,b=4,c=5;,下列表达式的值不为1的是   
A)a+b>c&&b==c        B)a||b+c&&b-c     
C)!(a>b)&&!c||1        D)!(a+b)+c-1&&b+c/2
答案:A
16.下列不合法的常量是:   
(1)?  (2)abc  (3)Turbo c  (4)\0x32  (5)\123
(6)’’’’  (7) (8)float型    (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的值为(  )。
(A)17  (B)17.500000  (C)17.5 (D)16
答案:(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的结果是     
A.y=9        B.y=6      C.y=1      D.表达式是错误的
答案:D
22. 以下程序的输出结果是     
short i=65535; printf ("%d\n",i);
A.65535                                      B.0
C.语法错误,无输出结果          D.-1
答案:D
23.有变量说明语句int a,b ,c;,顺序执行下面语句:
  a=b=c=1;
  ++a||++b&&++c;
那么,变量b的值应是( )
A.2    B.1    C.0    D.3
答案:B
24. 有变量说明int a=3;,则表达式a<1&&--a>1的运算结果和a的值应该是( )
A.0和2    B.0和3    C.1和2    D.1和3
答案:B
25. 以下程序的输出为     
#include<stdio.h>
void main( )
{
  double x=213.82631;
  printf("%-6.2e\n",x);
}
A.213.82        B.21.38e+01      C.2.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);
}
编译时出现错误,以下叙述中正确的是     
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;