第3章习题及解答20110315

第3章习题及解答20110315
第3章习题及解答20110315

第3章数据类型、运算符与表达式

习题答案

一、选择题

1.以下表示正确常量的是()。

(A) E-5 (B) 1E5.1 (C) 'a12' (D) 32766L

【答案】D

2.若有定义:int a=1,b=2,c=3,d=4,x=5,y=6; 则表达式(x=a>b)&&(y=c>d) 的值为()。

(A)0 (B) 1 (C) 5 (D) 6

【答案】A

3.以下()是正确的字符常量。

(A)"c" (B) '\\'' (C) 'W' (D) "\32a"

【答案】C

4.以下()是不正确的字符串常量。

(A) 'abc' (B) "12'12" (C) "0" (D) " "

【答案】A

5.以下是正确的浮点数的是()。

(A)e3 (B) .62 (C) 2e4.5 (D) 123

【答案】B

6.若有定义:int a=2; 则正确的赋值表达式是()。

(A)a-=(a*3) (B) double(-a) (C) a*3 (D) a*4=3

【答案】A

7.若有定义:int x=1111,y=222,z=33;则语句printf("%4d+%3d+%2d", x, y, z);运行后的

输出结果为()。

(A)111122233 (B)1111,222,33

(C)1111 222 33 (D)1111+222+33

【答案】D

8.已有如下定义和输入语句:

int a,b;

scanf("%d,%d",&a,&b);

若要求a、b的值分别为11和22,正确的数据输入是哪一个?()

(A)11 22 (B)11,22 (C)a=11,b=22 (D)11;22

【答案】B

9.已有如下定义和输入语句,

int a; char c1,c2;

scanf("%d%c%c",&a,&c1,&c2);

若要求a、c1、c2的值分别为40、A和A,正确的数据输入是()。

(A) 40AA(B) 40 A A (C) 40A A (D) 40,A,A

【答案】A

10.语句a=(3/4)+3%2;运行后,a的值为()。

(A) 0 (B) 1 (C) 2 (D) 3

【答案】B

11.char型变量存放的是()。

(A) ASCII代码值(B) 字符本身

(C) 十进制代码值(D) 十六进制代码值

【答案】A

12.在下列运算符中,优先级最高的运算符是()。

(A) <= (B) != (C) ! (D) ||

【答案】C

13.设单精度型变量f、g的值均为2.0,使f为4.0的表达式是()。

(A) f+=g (B) f-=g+2 (C) f*=g-6 (D) f/=g*10

【答案】A

14.若有定义:int i=7,j=8;则表达式i>=j||i

(A) 1 (B) 变量i的值(C) 0 (D) 变量j的值

【答案】A

15.若希望当a的值为奇数时,表达式的值为"真",a的值为偶数时,表达式的值为"假"。则

不能满足要求的表达式是()。

(A) a%2==1 (B) !(a%2==0) (C) !(a%2) (D) a%2

【答案】C

16.若有定义:int x=3,y=4,z=5;则值为0的表达式是()。

(A) 'x'&&'y' (B) x<=y (C) x||y+z&&y-z (D) !((x

【答案】D

17.若有定义:float x=3.5;int z=8;则表达式x+z%3/4 的值为()。

(A) 3.75 (B) 3.5 (C) 3 (D) 4

【答案】B

18.已知char a='R'; 则正确的赋值表达式是()。

(A) a=(a++)%4 (B) a+2=3 (C) a+=256-- (D) a='\078'

【答案】A

19.若有定义:int b=7; float a=2.5,c=4.7;则表达式a+(b/2*(int)(a+c)/2)%4的值是()。

(A) 2.5 (B) 3.5 (C) 4.5 (D) 5.5

【答案】C

20.若已定义:int i=3,k; 则语句k=(i--)+(i--); 运行后k的值为()。

(A) 4 (B) 5 (C) 6 (D) 7

【答案】C

21.若已定义:int a=5;float b=63.72; 以下语句中能输出正确值的是()。

(A) printf("%d %d",a,b); (B) printf("%d %.2f",a,b);

(C) printf("%.2f %.2f",a,b); (D) printf("%.2f %d",a,b);

【答案】B

22.C语言中,能正确表示条件10

(A) 1010 || x<20

(C) x>10 && <20 (D) (x>10) && (x<20)

【答案】D

23.若表达式!x的值为1,则以下哪个表达式的值为1()。

(A) x==0 (B) x==1 (C) x=!1 (D) x!=0

【答案】A

24.语句x=(y=3,b=++y);运行后,x、y、b的值依次为()。

(A)4,4,3 (B)3,3,3 (C)4,4,4 (D)4,3,4

【答案】C

25.若有定义:int x,c;则语句x=(c=3,c+1);运行后,x,c的值分别是()。

(A)3,3 (B)4,4 (C)3,3 (D)4,3

【答案】D

26.语句a=(6/8)+6%5;运行后,a的值为()。

(A)1 (B)2 (C)1.75 (D)1.2

【答案】A

27.若有定义:int x,y;则表达式(x=2,y=5,x*2,y++,x+y)的值是()。

(A)7 (B)8 (C)9 (D)10

【答案】B

28.对代数式(4ad)/(bc),不.正确的C语言表达式是()。

(A)a/b/c*d*4 (B)4*a*d/b/c (C)4*a*d/b*c (D)a*d/c/b*4

【答案】C

29.若x和y为整数,以下表达式中不能正确表示数学关系|x-y|<10的是()。

(A)abs(x-y)<10 (B)(x-y)>-10&&(x-y)<10

(C)!(x-y)<-10||!(y-x)>10 (D)(x-y)*(x-y)<100

【答案】C

30.若有以下程序段,则z的二进制值是()。

int x=3,y=6,z;

z=x^y<<2;

(A)00010100 (B)00011011

(C)00011000 (D)00000110

【答案】B

二、填空题

1.表达式3/5的值是: ,3.0/5的值是 ,3%5的值是。

【答案】0 0.6 3

2.以下程序运行的结果是:。

void main()

{

char c;

c=’B’+32;

p rintf(“%c\n”,c);

}

【答案】b

3.若有定义:int a=5,b=4;char c1='A',c2='B';则表达式a+b%5+c2-c1的值是。

【答案】10

4.若有定义:int b; 则语句b=9/5+ 9%5;运行后,b的值为。

【答案】5

5.若已定义:int a=9,b=11,c; 则语句c=a>b; 运行后c的值为。

【答案】0

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

是。

【答案】3.5

7.已知double a=5.2; 则语句a+=a-=(a=4)*(a=3);运行后a的值为。

【答案】-18.0

8.若有定义:int x,y;则表达式(x=2,y=5,x++,x+y++)的值是。

【答案】8

9.若有定义:int m=3,n=5;则表达式(m+1,n+1,(--m)+(n--))的值是。

【答案】7

10.若有定义:int x=3,y=4;则表达式!x||y 的值为。

【答案】1

11.若有定义:int a=5,b=2,c=1;则表达式a-b

【答案】0

12.若有定义:int a=2,b=2,c=2; 则语句 ++a||++b&&++c;运行后b的值为。

【答案】2

13.以下程序段中,要将a的值的低4位取反,b的值应取。

unsigned char a=0x39,b;

b=;

a=a^b;

【答案】15或0xf

14.pow(3.0,2.0)的函数值是。

【答案】9.0

15.若有定义:int k,i=3,j=3; 则表达式 k=(++i)*(j--) 的值是。

【答案】12

三、程序设计题

1. 编写程序,从键盘输入大写字母,用小写字母输出。

【参考答案】

void main

{

char c1;

printf(“input a uppercase:”);

scanf(“%c”,&c1);

c1=c1+32; /*在ASCII表中,小写字母的ASCII值比对应的大写字母大32*/

printf("%c\n", c1);

}

2. 编写程序,从键盘输入一个矩形的长度和宽度,输出面积和周长。

【参考答案】

void main

{

float len,wid,size; /*len,wid,size分别表示矩形的长、宽、面积*/

printf("input length:");

scanf("%f",&len);

printf("input width:");

scanf("%f",&wid);

size=len*wid;

printf("size of the rectangle is: %f\n", size);

}

3. 编写一个程序,从键盘输入华氏温度,将其转换成摄氏温度值后输出。转换的公式为:

C=(F-32)/1.8

【参考答案】

void main

{

float c,f;

printf("input Fahrenheit temperature f:");

scanf("%f",&f);

c=(f-32)/1.8;

printf("Centigrade temperature c is: %f\n", c);

}

4. 编写程序,输入两个字符,利用条件运算符,输出其中较小字符的ASCII 码值。

【参考答案】

void main()

{

char c1,c2;

int i;

printf("input two letters:");

scanf("%c,%c",&c1,&c2); /*注意:输入的两个字符之间要用逗号隔开*/ i= c1

printf("minimum ASCII is %d\n",i);

}

5. 用C 赋值语句表示以下计算式:

1)Area=πr 2+2πrh

2)Torque=

g m m m m ?+2

12

12

3)Side=)

cos(222x ab b a -+

4)Energy=mass[acceleratio n ×height+2

)(2

velocity ]

【参考答案】

1)Area=PI*r*r+2*PI*r*h

2)Torque=((2*m1*m2)/(m1+m2))*g 3)Side=sqrt(a*a+b*b-2*a*b*cos(x))

4)Energy=mass(acceleration*height+velocity*velocity/2)

相关主题
相关文档
最新文档