C语言数据类型和运算符及表达式复习题Word文档下载推荐.docx
《C语言数据类型和运算符及表达式复习题Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C语言数据类型和运算符及表达式复习题Word文档下载推荐.docx(15页珍藏版)》请在冰点文库上搜索。
17.若a为int型,且其值为3,则执行完表达式:
a+=a-=a*a后,a的值是()
a)-3b)9c)-12d)6
18.设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的值,能正确表示代数式
的C语言表达式是()
a)1/(float)a*b*cb)1/(a*b*c)
c)1.0/a/b/cd)1/a/b/(float)c
20.以下变量x,y,z均为double型且已正确赋值,不能正确表示代数式
a)x/y*zb)x*(1/(y*z))
c)x/y*1/zd)x/y/z
21.不能正确表示代数式
a)a/(c*d)*bb)a*b/c/d
c)a*b/c*dd)a*b/(c*d)
22.若题中变量已正确定义并赋值,下面符合C语法的表达式是()
a)a%=7.6b)a++,a=7+b+c
c)int(12.3)%4d)a=c+d=a+7
23.若t已定义为double型,则表达式:
t=1,t++,t+5的值为()
a)7b)7.0c)2.0d)1.0
24.已有定义:
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=1111
y=001111y=+01111y=+01111y=1111
26.有以下程序:
{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.有以下程序:
{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”,&
c)scanf(“%lf%lf”,&
d)scanf(“%5e%5e”,&
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)2
35.有以下程序:
{intk=2,i=2,m;
m=(k+=i*=k++);
printf(“y=%d,%d\n”,m,i);
a)8,6b)8,3c)6,4d)7,4
36.有以下程序:
{inty=3,x=3,z=1;
printf(“%d%d\n”,(++x,y++),z+2);
a)34b)42
c)43d)33
37.有以下程序:
{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.7
c)666.06.7d)666.76.0
38.有以下程序:
{unsigneda=32768;
intb
b=a
printf(“b=%d\n”,b);
a)b=32768b)b=32767c)b=-32768d)b=-1
39.有以下语句printf(“%d,%d,%u\n”,016,16,-16);
其输出结果是()
a)16,16,65520b)14,16,65520
c)16,16,-16d)14,16,-16
40.若有定义语句:
intb=0x17;
printf(“%d”,b++);
,其正确的输出结果是()
a)23b)24c)25d)22
41.有以下程序:
{intx=0xffff;
printf(“%d\n”,x--);
a)32767b)FFFE
c)-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____.
a=b=24.5/5;
14.以下程序的运行结果是a=374ㄩㄩ**a=fc
a=0374**a=0xfc
#include<
stdio.h>
{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.写出以下程序运行的结果:
{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.分析以下程序能否正常运行。
{intc1,c2;
c1=97;
c2=98;
printf("
%c%c\n"
c1,c2);
%d%d\n"
3.写出程序运行的结果。
{inti,j,m,n;
i=8;
j=10;
m=++i;
n=j++;
%d,%d,%d,%d\n"
i,j,m,n);
4.求下面算术表达式的值
(1)设x=2.5,a=7,y=4.7
x+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)y
5.要将“China”翻译成密码。
密码规律是:
用原来字母的后面第4个字母代替原来的字母。
请编写一程序实现。
并输出结果。
(Glmre)
6.写出以下四个程序运行的结果:
{
inti=6;
%d,%d,%d\n"
i,(i++)+(i++)+(i++),i);
i,(++i)+(++i)+(++i),i);
inti=6,j;
j=(i++)+(i++)+(i++);
%d,%d\n"
i,j);
j=(++i)+(++i)+(++i);
7.写出以下程序运行的结果:
typedefintcounter;
counterx;
floaty;
x=sizeofy;
y=sizeof(counter);
%d,%f\n"
x,y);
8.写出以下程序运行的结果:
{floatf;
inti=4;
f=10/i;
%f\n"
f);
inti=4;
f=10.0/i;
9.写出以下程序运行的结果:
inta,b,c;
longintu,n;
floatx,y,z;
charc1,c2;
a=3;
b=4;
c=5;
x=1.2;
y=2.4;
z=-3.6;
u=51274;
n=128765;
c1='
c2='
\n"
);
a=%2db=%2dc=%2d\n"
a,b,c);
x=%8.6f,y=%8.6f,z=%9.6f\n"
x,y,z);
x+y=%5.2fy+z=%5.2fz+x=%5.2f\n"
x+y,y+z,z+x);
u=%6ldn=%9ld\n"
u,n);
c1='
%c'
or%d(ASCII)\n"
c1,c1);
c2,c2);
10.写出以下程序运行的结果:
inta=5,b=7;
floatx=67.8564,y=-789.124;
charc='
A'
longn=1234567;
unsignedu=65535;
%d%d\n"
a,b);
%3d%3d\n"
%f,%f\n"
%-10f,%-10f\n"
%8.2f,%8.2f,%.4f,%.4f,%3f,%3f\n"
x,y,x,y,x,y);
%e,%10.2e\n"
%c,%d,%o,%x\n"
c,c,c,c);
%ld,%lo,%x\n"
n,n,n);
%u,%o,%x,%d\n"
u,u,u,u);
%s,%5.3s\n"
"
COMPUTER"
11.用下面的scanf函数输入数据,问在键盘上应如何输入才能使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’
inta,b;
scanf("
a=%db=%d"
&
%f%e"
x,&
y);
%c%c"
c1,&
c2);
a=%d,b=%d\n"
x=%f,y=%f\n"
c1=%c,c2=%c\n"
12.用下面的scanf函数输入数据,问在键盘上应如何输入才能使a=10,b=20,c1=’A’,c2=’a’,x=1.5,y=-3.75,z=67.8
%5d%5d%c%c%f%f%*f,%f"
&
b,&
c2,&
y,&
z);
x=%6.2f,y=%6.2f,z=%6.2f\n"