数据类型、运算符和表达式复习题
一.选择题
1. 以下不合法的用户标识符是:( )
  a)  f2_G3      b)  If      c)  4d     d)  _8
2. 以下选项中合法的用户标识符是:( )
  a)  long    b)  _2Test    c)  3Dmax    d)  A.dat
3. 以下可用作用户标识符的是:( )
  a)  12_a    b)  signed    c)  t-o      d)  _if
4. 以下不是关键字的标识符是:( )
  a)  continue    b)  char    c)  If      d)  default
5. C语言提供的合法的关键字是:( )
  a)  swicth    b)  cher    c)  Case      d)  void
6. 以下选项中不合法的int整型常数是( )
  a)  32768    b)  -56    c)  03        d)  0xAF
7. 以下合法的长整型常量是( )
  a)  2L    b)  49627    c)    d)  213&
8. 以下正确的实型常量是( )
  a)  1.2E    b)  .   c)  1.2e0.6  d)  8
9. 以下选项中合法的实型常数是( )
  a)  5E2.0    b)  E-3    c)  .2E0    d)  1.3E
10. 以下合法的八进制数是( )
  a)  0135    b)  068    c)  013.54    d)  o7
11. 以下合法的十六进制数是( )
  a)  0x    b)  0x4de    c)  0x1h    d)  ox77
12. 以下选项中非法的数值常量是( )
  a)  019    b)  0L    c)  0xff    d)  1e1
13. 若变量已正确定义,以下合法的赋值表达式是( )
  a)  a=1/b=2              b)  ++(a+b) 
c)  a=a/(b=5)            d)  y=int(a)+b
14. 若变量已正确定义,以下非法的表达式是( )
  a)  a/=b+c                b)  a%(4.0)  
c)  a=1/2*(x=y=20,x*3)      d)  a=b=c
15. 设x为int类型,其值为11,则表达式(x++*1/3)的值是:
a)  3     b)  4      c)  11    d)  12
16.设a,b均为double型,且a=5.5;b=2.5;则表达式
  (int)a+b/b的值是( )
  a)  6.    b)  6    c)  5.  d)  6.
17.若a为int型,且其值为3,则执行完表达式:
  a+=a-=a*a后,a的值是( )
  a)  -3      b)  9    c)  -12     d)  6 
18.设k和x均为int型变量,且 k=7; x=12;则能使
值为3的表达式是( )
a)  x%=(k%=5)            b)  x%=(k-k%5) 
c)  x%=k-k%5            d)  (x%=k)-(k%=5)
19. 若a,b,c均被定义成整型并已赋大于1的值,能正确表示代数式的C语言表达式是( )
a)  1/(float)a*b*c            b)  1/(a*b*c) 
c)  1.0/a/b/c                d)  1/a/b/(float)c
20. 以下变量x,y,z均为double型且已正确赋值,不能正确表示代数式的C语言表达式是( )
a)  x/y*z                   b)  x*(1/(y*z)) 
c)  x/y*1/z                d)  x/y/z
21. 不能正确表示代数式的C语言表达式是( )
  a)  a/(c*d)*b              b)  a*b/c/d 
c)  a*b/c*d                d)  a*b/(c*d)
整型常量合法要求22.若题中变量已正确定义并赋值,下面符合C语法的表达式是( )
  a)  a%=7.6              b)  a++,a=7+b+c 
c)  int(12.3)%4            d)  a=c+d=a+7
23. 若t已定义为double型,则表达式:t=1,t++,t+5的值为( )
  a)  7      b) 7.0      c)  2.0      d)  1.0
24. 已有定义:int a,b; float x,y;,以下正确的赋值语句是:( )
  a)  a=1,b=2,  b)  y=(x%2)/10;  c)  x*=y+8; d)  a+b=x;
25. 有以下程序:
main()
{  int y=1111;
  printf(y=%6d\n,y);
  printf(y=%+06d\n,y);
}
程序运行的结果是:( )
  a)  y=  1111  b)  y=  1111  c)  y=1111    d)  y=  1111
      y=    y=+01111     y=+01111      y=1111 
26. 有以下程序:
main()
{  int y=456;
  printf(*y=%7o*\n,y);
  printf(*y=%-7o*\n,y);
  printf(*y=%07o*\n,y);
}
程序运行的结果是:( )
  a)  *y=    710*            b)  *y=    456*