第二章  练习题
一、填空题
1、在C语言中的实型变量分为两种类型,它们是float型和(  )型。
2、若有定义:char c='\010';则变量c中包含的字符个数为( )
3、已知字母a的ASCII码为十进制数97,且设ch为整型变量,则表达式ch='a'+'8'-'3'的值为(  )
4、在C语言中(以16位PC机为例),一个float型数据在内存中所占的字节数为( )个;一个int型数据在内存中所占的字节数为( )个。
5、在C语言中,表示逻辑“假”值用数字(  )表示。
6、C语言中的标识符只能由字母、数字和(  )三种字符组成。
7、表达式8/4*(int)(2.5)/(int)(1.25*(3.7+2.3))的值为(  )
8、整型常量即整常数。可用三种形式表示:十进制整数、八进制整数以( )开头、十六进制整数以(  )开关(注:请用小写字母)
9、请将75写成C语言八进制和十六进制表示(  ),(  )。
10、若有定义:int m=5,y=2;则计算表达式y+=y-=m*=y后的y值是(  )
11、若a是int型变量,则表达式(a=4*5,a*2),a+6的值为(  )。
12、若a,b和c均是int型变量,则计算表达式a=(b=4)+(c=2)后,a值为(  ),b值为(    ),c值为(  )。
13、若a是int型变量,且a的初值为6,则计算表达式a+=a-=a*a后a的值为(  )
14、若a是int型变量,则计算表达式a=25/3%3 后a的值为()
15、若x和n均是int型变量,且x和n的初值均为5,则计算表达式x+=n++后x的值为(  ),n的值为(  )
16、若有定义:int b=7;float a=2.5,c=4.7;则下面表达式的值为(  )
a+(int)(b/3*(int)(a+c)/2)%4
17、若有以下定义:int a=2,b=3;float x=3.5,y=2.5;则下面表达式的值为()  (float)(a+b)/2+(int)x%(int)y
18、若有定义:int x=3,y=2;float a=2.5,b=3.5;则下面表达式的值为(  )
(x+y)%2+(int)a/(int)b
19、所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为(    )
20、若有定义:int e=1,f=4,g=2;float m=11.29,n=4.0,k;则计算赋值表达式k=(e+f)/g+sqrt(n*1.2/g+m)后k的值是()
21、若x为int型变量,则执行以下语句后x的值是()
x=7;  x+=x-=x+x;
22、当a=3,b=2,c=1时,表达式f=a>b>c的值是( )
23、已知A=7.5,B=2,C=3.6,表达式A>B&&C>A||A<B&&!C>B的值是(  )
24、若a=6,b=4,c=2,则表达式!(a-b)+c-1&&b-c*2的值是(  )
25、若a=1,b=4,c=3,则表达式!(a<b)||!c-3&&!a+c-b的值是(  )
26、若a=6,b=4,c=3,则表达式a&&b-c-1||!(c-3)的值是(  )
27、设a=3,b=4,c=5,则表达式a||b+c&&b==c的值是(  )
28、当m=2,n=1,a=1,b=2,c=3时,执行完d=(m=a!=b)&&(n=b>c)后,n的值为(  ),m的值为(  )
29、有int x,y,z;且x=3,y=-4,z=5,则表达式x-3&&y==(!x-3||z-5)的值为()
30、以下程序的运行结果是()
main()
{
if (2*2==5<2*2==4)
    printf("T");
else
    prinft("F");
}
31、若a=1,b=2,c=3,d=4,则表达式a>b?a:c>d?c:d的值为()
32、以下程序的运行结果是()
#inclue <stdio.h>
main( )
{ int x=1,y,z:
  x*=3+2;  printf("%d,",x);
  x*=y=z=5;    printf("%d,",x);
  x=y==z;      printf("%d\n",x);
}
33、若运行时输入:100<回车>时,则以下程序的运行结果是()
main()
{ int a;
  scanf("%d",&a);
printf("%s",(a%2!=0)?"no":"yes");
}
34、已有定义int i,j;float x;为将-10赋给i,12赋给j,410.34赋给x;则对应以下scanf函数调用语句的数据输入形式是(  )
scanf("%d,%d,%f",&i,&j,&x);
35、在printf函数中,以八进制形式输出整数用%()格式,以十六形式输出整数用%()格式。(注:请用小写字母)
36、在printf函数中,输出长整型数据用%()格式,输出字符串用%()格式。(注:请用小写字母)
37、在printf函数中,以小数形式输出实型数据用%()格式,以指数形式输出实型数据用%()格式。(注:请用小写字母)
38、有以下语句:
int  i=79;              printf("%o",i);
实际输出(  )。
float x=333.1234567890;    printf("%.2f",x);
实际输出(  )。
39、有以下语句:
int i=79;                printf("%x",i);
实际输出(    )。
double y=333.1234567890;  printf("%2.5f",y);
实际输出(    )。
40、有以下语句:
int i=7900;              printf("%2d",i);
实际输出域宽为(  )。
float x=1.23456789;        printf("%.5f",x);
实际输出为(      )。
二、选择题
1、下面正确的字符常量是()
A)“C”        B) '12'      C) 'W'        D) ''
2、在C语言中,int、char、short三种类型数据在内存中所占用的字节数()
A)由用户自己定义        B)均为2个字节
C)是任意的              D)由所用机器的机器字长决定
3、下面四个选项中,均是合法整型常量的选项是()
A)160    -0xffff    011    B)-0xcdf  01a        0xe
C)-01    986,012    0668  D)-0x48a  2e5        0x
4、下面四个选项中,均是不合法的整型常量的选项是()
A)--0f1    -0xffff  0011    B)-0xcdf  017      12,456
C)-018    999    5e2    D)-0x48eg  -068      1a
5、下面四个选项中,均不是合法的浮点数的选项是()
A)160.    0.12      e3    B)123    2e4.2    e5
C)-.18    123e4    0.0    D)-e3    .234      1e3
6、下面四个选项中,均是合法的浮点数的选项是()
A)+1e+1    5e-9.4    03e2  B)-.60    12e-4    -8e5
C)123e    1.2e-.4  +2e-1  D)-e3      .8e-4    5.e-0
7、下面四个选项中,均是正确的八进制或十六进制数的选项是()
A)-10    0x8f    -011    B)0abc  -017    0xc
C)0010  -0x11    0xf1    D)0a12  -0x123  -0xa
8、下面四个选项中,均是正确的数值常量或字符常量的选项是()
float型
A)0.0  0f    8.9e    '&'    B)"a" 3.9e-2.5  1e1  "\'"
C)'3'  011    0xff00  0a    D)+001 0xabcd  2e2    50.
9、已知字母'A'的ASCII码为十进制65,且c2为字符型,则执行语句c2='A'+'6'-'3';后,在内存中c2中的值为()
A) D      B) 68      C)不确定        D)C
10、sizeof(float)是()
A)一个双精度型表达式      B)一个整型表达式
C)一种函数调用          D)一个不合法的表达式
11、设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为()
A)int      B)float      C)double    D)不确定
12、下面四个选项中,均是非法常量的选项是()
A)‘as’  -0fff    '\0xa'  B) '\\'    '\01'    12,456
C) -0x18  01177    0xf  D)0xabc    '\0'    'ab'
13、以下正确地定义整型变量a,b和c并为它们赋初值5的语句是()
A)int a=b=c=5;            B)int a,b,c=5;
C)int a=5,b=5,c=5;          D)a=b=c=5;
14、若x,i,j和k都是int型变量,则计算下面表达式后,x的值为()
x=(i=4,j=16,k=32)
A) 4    B) 16    C)32    D)52
15、假设所有变量均为整型变量,则表达式(a=2,b=5,b++,a+b)的值是(  )
A)7    B)8    C)6    D)2
16、若有代数式(3ae)/(bc),则不正确的C语言表达式是()