C语言数据类型和运算符及表达式复习题

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

数据类型、运算符和表达式复习题一.选择题1.以下不合法的用户标识符是:()a)f2_G3b)Ifc)4dd)_82.以下选项中合法的用户标识符是:()a)longb)_2Testc)3Dmaxd)A.dat3.以下可用作用户标识符的是:()a)12_ab)signedc)t-od)_if4.以下不是关键字的标识符是:()a)continueb)charc)Ifd)default5.C语言提供的合法的关键字是:()a)swicthb)cherc)Cased)void6.以下选项中不合法的int整型常数是()a)32768b)-56c)03d)0xAF7.以下合法的长整型常量是()a)2Lb)49627c)34566666d)213&8.以下正确的实型常量是()a)1.2Eb).579899c)1.2e0.6d)89.以下选项中合法的实型常数是()a)5E2.0b)E-3c).2E0d)1.3E10.以下合法的八进制数是()a)0135b)068c)013.54d)o711.以下合法的十六进制数是()a)0xb)0x4dec)0x1hd)ox7712.以下选项中非法的数值常量是()a)019b)0Lc)0xffd)1e113.若变量已正确定义,以下合法的赋值表达式是()a)a=1/b=2b)++(a+b)c)a=a/(b=5)d)y=int(a)+b14.若变量已正确定义,以下非法的表达式是()a)a/=b+cb)a%(4.0)c)a=1/2*(x=y=20,x*3)d)a=b=c15.设x为int类型,其值为11,则表达式(x++*1/3)的值是:a)3b)4c)11d)1216.设a,b均为double型,且a=5.5;b=2.5;则表达式(int)a+b/b的值是()a)6.500000b)6c)5.500000d)6.00000017.若a为int型,且其值为3,则执行完表达式:a+=a-=a*a后,a的值是()a)-3b)9c)-12d)618.设k和x均为int型变量,且k=7;x=12;则能使值为3的表达式是()a)x%=(k%=5)b)x%=(k-k%5)c)x%=k-k%5d)(x%=k)-(k%=5)19.若a,b,c均被定义成整型并已赋大于1的值,能正确表示代数式cba1的C语言表达式是()a)1/(float)a*b*cb)1/(a*b*c)c)1.0/a/b/cd)1/a/b/(float)c20.以下变量x,y,z均为double型且已正确赋值,不能正确表示代数式zyx的C语言表达式是()a)x/y*zb)x*(1/(y*z))c)x/y*1/zd)x/y/z21.不能正确表示代数式dcba的C语言表达式是()a)a/(c*d)*bb)a*b/c/dc)a*b/c*dd)a*b/(c*d)22.若题中变量已正确定义并赋值,下面符合C语法的表达式是()a)a%=7.6b)a++,a=7+b+cc)int(12.3)%4d)a=c+d=a+723.若t已定义为double型,则表达式:t=1,t++,t+5的值为()a)7b)7.0c)2.0d)1.024.已有定义:inta,b;floatx,y;,以下正确的赋值语句是:()a)a=1,b=2,b)y=(x%2)/10;c)x*=y+8;d)a+b=x;25.有以下程序:main(){inty=1111;printf(“y=%6d\n”,y);printf(“y=%+06d\n”,y);}程序运行的结果是:()a)y=1111b)y=1111c)y=1111d)y=1111y=001111y=+01111y=+01111y=111126.有以下程序:main(){inty=456;printf(“*y=%7o*\n”,y);printf(“*y=%-7o*\n”,y);printf(“*y=%07o*\n”,y);}程序运行的结果是:()a)*y=710*b)*y=456**y=710**y=456**y=0000710**y=0000456*c)*y=710*d)*y=456**y=-710**y=-456**y=0710**y=0456*27.有以下程序:main(){floaty=3.667;printf(“*%f*\n”,y);printf(“*%7.2f*\n”,y);printf(“*%8.0f*\n”,y);}程序运行的结果是:()a)*3.667000*b)*3.667000**3.67**3.667**4**4.000000*c)*3.667*d)*3.667000**3.667000**3.67**3.667000**4.000000*28.已有定义:doublea,b;,若要求按输入方式(此处*代表一个空格)**1.0**2.0回车分别给a,b输入1,2,则能正确进行输入的语句是()a)scanf(“%f%f”,&a,&b);b)scanf(“%5.1lf%5.1lf”,&a,&b);c)scanf(“%lf%lf”,&a,&b);d)scanf(“%5e%5e”,&a,&b);29.以下合法的定义语句是()a)short_auto_=100-1;b)doubleb=1+5e2.5;c)longdo=1l;d)float2_and=1e-3;30.以下选项中不是C语句的是()a)++tb);c)k=i=j;d){a/=b=1;b=a%2;}31.有定义语句:inta=5,b;,不能给b赋2的赋值语句是()a)b=a/2;b)b=b+2;c)b=2%a;d)b=5;b=2;32.设x和y均为int型变量,语句组x+=y;y=x-y;x-=y;的功能是()a)把x和y从小到大排列b)把x和y从大到小排列c)无确定结果d)交换x和y中的值33.有定义语句:longinta;intk;,能给a赋40000的正确语句是()a)a=20000+20000;b)a=4000*10;c)k=400;a=k*100;d)a=4000;a=a*10;34.若有定义:inta=8,b=5,c;,执行语句:c=a/b+0.4;后,c的值是()a)1.4b)1c)2.0d)235.有以下程序:main(){intk=2,i=2,m;m=(k+=i*=k++);printf(“y=%d,%d\n”,m,i);}程序运行的结果是:()a)8,6b)8,3c)6,4d)7,436.有以下程序:main(){inty=3,x=3,z=1;printf(“%d%d\n”,(++x,y++),z+2);}程序运行的结果是:()a)34b)42c)43d)3337.有以下程序:main(){inti;longl;floatf;doubled;i=f=l=d=20/3;printf(“%d%ld%3.1f%3.1f\n”,i,l,f,d);}程序运行的结果是:()a)666.06.0b)666.76.7c)666.06.7d)666.76.038.有以下程序:main(){unsigneda=32768;intb;b=a;printf(“b=%d\n”,b);}程序运行的结果是:()a)b=32768b)b=32767c)b=-32768d)b=-139.有以下语句printf(“%d,%d,%u\n”,016,16,-16);其输出结果是()a)16,16,65520b)14,16,65520c)16,16,-16d)14,16,-1640.若有定义语句:intb=0x17;printf(“%d”,b++);,其正确的输出结果是()a)23b)24c)25d)2241.有以下程序:main(){intx=0xffff;printf(“%d\n”,x--);}程序运行的结果是:()a)32767b)FFFEc)-1d)-32768二.填空题1.已有定义:floatf=13.8;,则表达式:(int)f%3的值是___1___.2.已有定义:intx=3;,则表达式:x=x+1.78的值是___4___.3.已有定义:doublex=3.5;则表达式:x=(int)x+1的值是_4.000000__.4.已有定义:intx=10,y=3,z;,则表达式:z=(x%y,x/y)的值是__3___.5.设a,b,c为整型数,且a的值为2,b的值为3,c的值为4,表达式:a*=16+(b++)-(++c)的值为__28____.6.已有定义:intx=0,y=0;,则计算表达式:(x+=2,y=x+3/2,y+5)后,表达式的值是_8__,变量x的值是_2__,变量y的值是__3__.7.已有定义:intx=110,y=017;,则计算表达式:(x++,++y)后,按十进制表示,变量x的值是__111___,变量y的值是__16___。8.若已有定义语句:intk=3,j=4;,运行表达式(k+=j,j/=4.0,++j,j+2)后,表达式的值是__4___,变量k的值是__7___,变量j的值是___2___.9.已有定义:intx,y;,执行以下语句后的输出结果是__%d,%3__.x=11/3;y=5;printf(“%%d,%%%d\n”,x,y);10.已有定义:inty;,执行以下语句后的输出结果是_26,032,0x1a_____.y=26;printf(“%d,%#o,%#x”,y,y,y);11.执行以下语句后的输出结果是__7/8=0%1___.printf(“7/8=%d”,7/8);printf(“%%%d”,7%2);12.以下程序的运行结果是___4.900000,4____.main(){floata;intb;b=a=24.5/5;printf(“%f,%d”,a,b);}13.以下程序的运行结果是___4.000000,4____.main(){floata;intb;a=b=24.5/5;printf(“%f,%d”,a,b);}14.以下程序的运行结果是a=374ㄩㄩ**a=fca=0374**a=0xfc#includestdio.hmain(){inta=252;printf(“a=%-5o**a=%x\n”,a,a);printf(“a=%#o**a=%#x\n”,a,a);}15.若有定义:intt1;doublet2;,执行下列语句后,t1的值是__1__。t1=(t2=1.9,t2+5,t2++);16.若有下列定义和语句,输出结果是000034213.69。floatx=34213.6894;printf(“%012.2f”,x);17.int类型变量占两个字节,以下语句的输出结果是-1,177777,ffff,65535。inta=-1;printf(“%d,%o,%x,%u”,a,a,a,a);三.操作题1.写出以下程序运行的结果:main(){charc1='a',c2='b',c3='c',c4='\101',c5='\116';printf(a%cb%c\tc%c\tabc\n,c1,c2,c3);printf(\t\b%c%c,c4,c5);}2.分析以下程序能否正常运行。main(){intc1,c2;c1=97;c2=98;printf(%c%c\n,c1,c2);printf(%d%d\n,c1,c2);}3.写出程序运行的结果。main(){inti,j,m,n;i=8;j=10;m=++i;n=j++;printf(%d,%d,%d,%d\n,i,j,m,n);}4.求下面算术表达式的值(1)设x=2.5,a=7,y=4.7x+a%3*(int)(x+y)%2/4(2)设a=2,b=3,x=3.5,y=2.5,(float)(a+b)/2+(int)x%(int)y5.要将“China”翻译成密码。密码规律是:用原来字母的后面第4个字母代替原来的字母。请编写一程序实现。并输出结果。(Glmre)6.写出以下四个程序运行的结果:main(){inti=6;printf(%d,%

1 / 17
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功