谭浩强c语言程序设计习题集

参考分析:算术表达式的类型由表达式计算结果的类型决定

*2.33设变量a是整型,f是实型,i是双精度型,则表达式10+'a'+i*f值的数据类型为 。

A)int B)float C)double D)不确定 参考答案:C

参考分析:实型只要参与运算就自动转换为double型。 2.34下面四个选项中,均是非法常量的选项是 。

A)'as' B)'\\\\' C)-0x18 D)0xabc -0fff '\\01' 01177 '\\0' '\\0xa' 12,456 0xf \参考答案:A

参考分析:A3转义字符以十六进制描述时,前面不能加0。非法的还有B3

*2.35若有代数式√yx+log10y,则正确的C语言表达式是 。 A) sqrt(fabs(pow(y,x)+log10(y))) B) sqrt(abs(pow(y,x)+log10(Y))) C) sqrt(fabs(pow(x,y)+log10(y))) D) sqrt(abs(pow(x,y)+log10(y))) 参考答案:A

参考分析:c语言中整型和实型的绝对值函数各自独立,为abs和fabs;pow为一系统函数pow(y,x)=>yx。

2.36 若有代数式|x3+lgx|,则正确的C语言表达式是 。

A)fabs(x*3+log10(x)) B)abs(pow(x,3)+log10(x)) C)abs(pow(x,3.0)+log10(x)) D)fabs(pow(x,3.0)+log10(x)) 参考答案:D

参考分析:以上两题均未说明x,y的类型,从表达式的性质可分析隐含为实型,因此应使用fabs。

*2.37在C语言中,char型数据在内存中的存储形式是 。

A)补码 B)反码 C)原码 D)ASCII码 参考答案:D

参考分析:计算机系统不能存储字符本身,存储的是字符的ASCII码。

*2.38

设变量n为float,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 参考答案:B

参考分析:m=n*100+0.5赋值过程中有实型转整型的自动转换。 2.39表达式18/4*sqrt(4.0)/8值的数据类型为 。

A)int B)float C)double D)不确定 参考答案:C

参考分析:表达式的类型由表达式结果的类型决定。

2.40设C语言中,一个int型数据在内存中占2个字节,则unsigned int型数据的取值范围为 。

A)0-255 B)0-32767 C)0-65535 D)0-2147483647 参考答案:C

参考分析:各种数据类型的取值范围是由其字长决定,字长确定的情况下,有符号数与无符号数的范围应当容易计算得知。

2.41设有说明:char w;int x;float y;double z;则表达式w*x+z-y值的数据类型为 。

A)float B)char C)int D)double 参考答案:D

参考分析:表达式的类型由表达式结果的类型决定。虽然本题各变量没有具体的变量值,由于参与运算的变量中z变量为double型,表达式计算的结果肯定为double型。

2.42若有以下定义,则能使值为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) 参考答案:D

参考分析:A的值为0,B、C两个表达式相同,值为2,只有D的值

为3。

2.43设以下变量均为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+1,x=y,x+1 参考答案:C

参考分析:经计算可知,只有C的值为12,不为7。 2.2 填空题

2.44 在C语言中(以16位PC机为例),一个char型数据在内存中所占的字节数为【1】;一个int型数据在内存中所占的字节数为【2】。 参考答案:【1】1 【2】2 2.45 在C语言中(以16位PC机为例),一个float型数据在内存中所占的字节数为【1】;一个double型数据在内存中所占的字节数为【2】。 参考答案:【1】4 【2】8

2.46 若有以下定义,int m=5,y=2;则计算表达式y+=y-=m*=y后y的值是【 】。 参考答案:-16

2.47 设C语言中,一个int型数据在内存中占2各字节,则int型数据的取值范围为【 】。 参考答案:-32768~32767

2.48 在C语言中的实型变量分为两种类型,它们是【1】和【2】。 参考答案:【1】float 【2】double

*2.49 C语言所提供的基本数据类型包括:单精度型、双精度型、【1】、【2】和【3】。 参考答案:字符型 整型 枚举

参考分析:基本类型又称简单类型,若分为四种则为字符、整型、实型和枚举,若分为五种,则将实型分为单精度型和双精度型两种。

*2.50 若s是int型变量,则表达式s%2+(s+1)%2的值为【 】。 参考答案:1

参考分析:无论s是奇数还是偶数表达式的值只能是1。 *2.51

若a是int型变量,则表达式(a=4*5,a*2),a+6的值为【 】。 参考答案:26

*2.52 若x和a均是整型变量,则计算表达式(1)后的x值为【1】,计算表达式(2)后x的值为【2】。 (1)x=(a=4,6*2) (2)x=a=4,6*2 参考答案:【1】12 【2】4

2.53 若a、b和c均是int型变量,则计算表达式a=(b=4)+(c=2)后,a的值为【1】,b的值为【2】,c的值为【3】。 参考答案:【1】6 【2】4 【3】2 2.54 若a是int 型变量,且a的初值为6,则计算表达式a+=a-=a*a后a的值为【 】。 参考答案:-60

2.55 若a是int型变量,则计算表达式a=25/3%3后a的值为【 】。 参考答案:2

2.56 若x和n均是int型变量,且x和n的初值均为5,则计算表达式x+=n++后x的值为【1】,n的值为【2】。

参考答案:【1】10 【2】6

2.57 若有定义:int b=7;float a=2.5,c=4.7;则表达式a+(int)(b/3*(int)(a+c)/2)%4的值为【 】。 参考答案:5.5

2.58 若有定义:int a=2,b=3;float x=3.5,y=2.5;则表达式(float)(a+b)/2+(int)x%(int)y的值为【 】。 参考答案:3.5

2.59 若有定义:char c='\\010';则变量c中包含的字符个数为【 】。 参考答案:1

2.60 若有定义:int x=3,y=2;float a=2.5,b=3.5;则表达式(x+y)%2+(int)a/(int)b的值为【 】。

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4