第3章数据类型、运算符与表达式习题答案一、选择题1.以下表示正确常量的是()。(A)E-5(B)1E5.1(C)'a12'(D)32766L【答案】D2.若有定义:inta=1,b=2,c=3,d=4,x=5,y=6;则表达式(x=ab)&&(y=cd)的值为()。(A)0(B)1(C)5(D)6【答案】A3.以下()是正确的字符常量。(A)c(B)'\\''(C)'W'(D)\32a【答案】C4.以下()是不正确的字符串常量。(A)'abc'(B)12'12(C)0(D)【答案】A5.以下是正确的浮点数的是()。(A)e3(B).62(C)2e4.5(D)123【答案】B6.若有定义:inta=2;则正确的赋值表达式是()。(A)a-=(a*3)(B)double(-a)(C)a*3(D)a*4=3【答案】A7.若有定义:intx=1111,y=222,z=33;则语句printf(%4d+%3d+%2d,x,y,z);运行后的输出结果为()。(A)111122233(B)1111,222,33(C)111122233(D)1111+222+33【答案】D8.已有如下定义和输入语句:inta,b;scanf(%d,%d,&a,&b);若要求a、b的值分别为11和22,正确的数据输入是哪一个?()(A)1122(B)11,22(C)a=11,b=22(D)11;22【答案】B9.已有如下定义和输入语句,inta;charc1,c2;scanf(%d%c%c,&a,&c1,&c2);若要求a、c1、c2的值分别为40、A和A,正确的数据输入是()。(A)40AA(B)40AA(C)40AA(D)40,A,A【答案】A10.语句a=(3/4)+3%2;运行后,a的值为()。(A)0(B)1(C)2(D)3【答案】B11.char型变量存放的是()。(A)ASCII代码值(B)字符本身(C)十进制代码值(D)十六进制代码值【答案】A12.在下列运算符中,优先级最高的运算符是()。(A)=(B)!=(C)!(D)||【答案】C13.设单精度型变量f、g的值均为2.0,使f为4.0的表达式是()。(A)f+=g(B)f-=g+2(C)f*=g-6(D)f/=g*10【答案】A14.若有定义:inti=7,j=8;则表达式i=j||ij的值为()。(A)1(B)变量i的值(C)0(D)变量j的值【答案】A15.若希望当a的值为奇数时,表达式的值为真,a的值为偶数时,表达式的值为假。则不能满足要求的表达式是()。(A)a%2==1(B)!(a%2==0)(C)!(a%2)(D)a%2【答案】C16.若有定义:intx=3,y=4,z=5;则值为0的表达式是()。(A)'x'&&'y'(B)x=y(C)x||y+z&&y-z(D)!((xy)&&!z||1)【答案】D17.若有定义:floatx=3.5;intz=8;则表达式x+z%3/4的值为()。(A)3.75(B)3.5(C)3(D)4【答案】B18.已知chara='R';则正确的赋值表达式是()。(A)a=(a++)%4(B)a+2=3(C)a+=256--(D)a='\078'【答案】A19.若有定义:intb=7;floata=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【答案】C20.若已定义:inti=3,k;则语句k=(i--)+(i--);运行后k的值为()。(A)4(B)5(C)6(D)7【答案】C21.若已定义:inta=5;floatb=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);【答案】B22.C语言中,能正确表示条件10x20的逻辑表达式是()。(A)10x20(B)x10||x20(C)x10&&20(D)(x10)&&(x20)【答案】D23.若表达式!x的值为1,则以下哪个表达式的值为1()。(A)x==0(B)x==1(C)x=!1(D)x!=0【答案】A24.语句x=(y=3,b=++y);运行后,x、y、b的值依次为()。(A)4,4,3(B)3,3,3(C)4,4,4(D)4,3,4【答案】C25.若有定义:intx,c;则语句x=(c=3,c+1);运行后,x,c的值分别是()。(A)3,3(B)4,4(C)3,3(D)4,3【答案】D26.语句a=(6/8)+6%5;运行后,a的值为()。(A)1(B)2(C)1.75(D)1.2【答案】A27.若有定义:intx,y;则表达式(x=2,y=5,x*2,y++,x+y)的值是()。(A)7(B)8(C)9(D)10【答案】B28.对代数式(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【答案】C29.若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【答案】C30.若有以下程序段,则z的二进制值是()。intx=3,y=6,z;z=x^y2;(A)00010100(B)00011011(C)00011000(D)00000110【答案】B二、填空题1.表达式3/5的值是:,5.0/7的值是,5%7的值是。【答案】00.752.以下程序运行的结果是:。voidmain(){charc;c=’B’+32;printf(“%c\n”,c);}【答案】b3.若有定义:inta=5,b=4;charc1='A',c2='B';则表达式a+b%5+c2-c1的值是。【答案】104.若有定义:intb;则语句b=9/5+9%5;运行后,b的值为。【答案】55.若已定义:inta=9,b=11,c;则语句c=ab;运行后c的值为。【答案】06.若有定义:inta=2,b=3;floatx=3.5,y=2.5;则表达式(float)(a+b)/2+(int)x%(int)y的值是。【答案】3.57.已知doublea=5.2;则语句a+=a-=(a=4)*(a=3);运行后a的值为。【答案】-18.08.若有定义:intx,y;则表达式(x=2,y=5,x++,x+y++)的值是。【答案】89.若有定义:intm=3,n=5;则表达式(m+1,n+1,(--m)+(n--))的值是。【答案】710.若有定义:intx=3,y=4;则表达式!x||y的值为。【答案】111.若有定义:inta=5,b=2,c=1;则表达式a-bc||b==c的值是。【答案】012.若有定义:inta=2,b=2,c=2;则语句++a||++b&&++c;运行后b的值为。【答案】213.以下程序段中,要将a的值的低4位取反,b的值应取。unsignedchara=0x39,b;b=;a=a^b;【答案】15或0xf14.pow(3.0,2.0)的函数值是。【答案】9.015.若有定义:intk,i=3,j=3;则表达式k=(++i)*(j--)的值是。【答案】12三、程序设计题1.编写程序,从键盘输入大写字母,用小写字母输出。【参考答案】voidmain{charc1;printf(“inputauppercase:”);scanf(“%c”,&c1);c1=c1+32;/*在ASCII表中,小写字母的ASCII值比对应的大写字母大32*/printf(%c\n,c1);}2.编写程序,从键盘输入一个矩形的长度和宽度,输出面积和周长。【参考答案】voidmain{floatlen,wid,size;/*len,wid,size分别表示矩形的长、宽、面积*/printf(inputlength:);scanf(%f,&len);printf(inputwidth:);scanf(%f,&wid);size=len*wid;printf(sizeoftherectangleis:%f\n,size);}3.编写一个程序,从键盘输入华氏温度,将其转换成摄氏温度值后输出。转换的公式为:C=(F-32)/1.8【参考答案】voidmain{floatc,f;printf(inputFahrenheittemperaturef:);scanf(%f,&f);c=(f-32)/1.8;printf(Centigradetemperaturecis:%f\n,c);}4.编写程序,输入两个字符,利用条件运算符,输出其中较小字符的ASCII码值。【参考答案】voidmain(){charc1,c2;inti;printf(inputtwoletters:);scanf(%c,%c,&c1,&c2);/*注意:输入的两个字符之间要用逗号隔开*/i=c1c2?c1:c2;printf(minimumASCIIis%d\n,i);}5.用C赋值语句表示以下计算式:1)Area=r2+2rh2)Torque=gmmmm212123)Side=)cos(222xabba4)Energy=mass[acceleration×height+2)(2velocity]【参考答案】1)Area=PI*r*r+2*PI*r*h2)Torque=((2*m1*m2)/(m1+m2))*g3)Side=sqrt(a*a+b*b-2*a*b*cos(x))4)Energy=mass(acceleration*height+velocity*velocity/2)转换成程序:#includestdio.h#definePI3.1415926voidmain(){floatr,h,Area;printf(Inputr:);scanf(%f,&r);pirntf(Inputh:);scanf(%f,&h);Area=PI*r*r+2*PI*r*h;printf(Area=%f,Area);}2)#includestdio.h#defineg9.8voidmain(){floatm1,m2,Torque;printf(Inputm1:);scanf(%f,&m1);pirntf(Inputm2:);scanf(%f,&m2);Torque=((2*m1*m2)/(m1+m2))*g;printf(Torque=%f,Torque);}3)#includestdio.h#includemath.hvoidmain(){floata,b,c,Side;printf(Inputa:);scanf(%f,&a);printf(Inputb:);scanf(%f,&b);printf(Inputc:);scanf(%f,&c);Side=sqrt(a*a+b*b-2*a*b*cos(x));printf(Side=%f,Side);}4)#includestdio.hvoidmain(){floatmass,acceleration,height,velocity;printf(Inputmass:);scanf(%f,&mass);printf(Inputacceleration:);scanf(%f,&acceleration);printf(Inputheight:);scanf(%f,&height);printf(Inputvelocity:);scanf(%f,&velocity);Energy=mass(acceleration*height+velocity*velocity/2);printf(Energy=%f,Energy);}薃肀莂蒃袂肀肂虿袈聿芄薂螄肈莇螇蚀肇葿