最新数据类型运算符与表达式练习题.docx
《最新数据类型运算符与表达式练习题.docx》由会员分享,可在线阅读,更多相关《最新数据类型运算符与表达式练习题.docx(17页珍藏版)》请在冰豆网上搜索。
最新数据类型运算符与表达式练习题
第三章运算符与表达式练习题
一、单项选择题
1.下列数据中属于“字符串常量”的是()。
A.”a”B.{ABC}C.’abc\0’D.’a’
2.下列数据中属于“字符串常量”的是()。
A.ABCB.“ABC”C.’abc’D.’a’
3.在PC机中,’\n’在内存占用的字节数是()。
A.1B.2C.3D.4
4.在PC机中,”a\xff”在内存占用的字节数是()。
A.5B.6C.3D.4
5.字符串”\”ABCD\””在内存占用的字节数是()。
A.4B.6C.7D.8
6.在C语言中,合法的长整型常数是()。
A.0LB.49627C.0.054838743D.2.1869e10
7.在C语言中,合法的短整型常数是()。
A.OLB.0821C.40000D.0x2a
8.下列数据中不属于“字符常量”的是()。
A.‘\a’B.‘\160’C.‘070’D.070
9.char型常量在内存中存放的是()。
A.ASCII代码值B.BCD代码值C.内码值D.十进制代码值
10.inta=4,b=3,c=-2,d=2;逻辑表达式a>0&&b&&c<0&&d>0的值是()。
A.1B.0C.-1D.出错
11.在以下一组运算符中,优先级最高的运算符是()。
A.<=B.=C.%D.&&
12.设整型变量i的值为3,则计算表达式i---i后表达式的值为()。
A.0B.1C.2D.表达式出错
13.设整型变量i,j=3;则计算表达式i=j+++j后i,j的值为()。
A.4,4B.6,6C.4,6D.6,4
14.设整型变量a,b,c均为2,表达式a+++b++c++的结果是()。
A.6B.9C.8D.表达式出错
15.设整型变量i,j值均为3,执行了“j=i++,j++,++i”后,i,j的值是()。
A.3,3B.5,4C.4,5D.6,6
16.sizeof(double)的结果值是()。
A.8B.4C.2D.出错
17.表达式“1?
(0?
3:
2):
(10?
1:
0)”的值是()。
A.3B.2C.1D.0
18.inta=0;if(a=1)a+=10;结果的值是()。
A.0B.11C.10D.出错
19.下列表达式中符合C语言语法的赋值表达式是()。
A.a=7+b+c=a+7B.a=7+b++=a+7C.a=(7+b,b++,a+7)D.a=7+b,c=a+7
20.下列表达式中,不正确的表达式是()。
A.a=1,b=1B.y=int(x)C.a=b=5D.i++
21.intn;floatf=13.8;执行“n=((int)f)%3”后,n的值是()。
A.1B.4C.4.333333D.4.6
22.用十进制数表示表达式“12|012”的运算结果是()。
A.1B.0C.14D.12
23.设有整型变量a=35,表达式“(x&15)&&(x|15)”的值是()。
A.0B.1C.15D.35
24.设a,b和c都是int型变量,且a=3,b=4,c=5,则下面的表达式中值为0的是()。
A.’a’&&’b’B.a<=bC.a||b+c&&b-cD.!
((a
c||1)
25.设a是char型变量,其值字符为’1’,则把其值变成整数1的表达式是()。
A.(int)aB.int(a)C.a=a-48D.a/(int)a
26.设a是int型变量,其值为3,则把其值变成字符’3’的表达式是()。
A.(char)aB.a=3C.a=a-48D.a=a+48
27.以下选项中,不正确的C语言常量是(TC中)。
A.32LB.510000C.-1.00D.0568
28.以下选项中,是不正确的C语言字符型常量。
A.'a'B.'\x41'C.'\101'D."a"
29.字符串的结束标志是。
A.0B.'0'C.'\0'D."0"
30.逻辑运算符中,运算优先级按从高到低依次为。
A.&&,!
,||B.||,&&,!
C.&&,||,!
D.!
,&&,||
31.表达式!
x||a==b等效于。
A.!
((x||a)==b)B.!
(x||y)==bC.!
(x||(a==b))D.(!
x)||(a==b)
32.intb=0,x=1;执行语句if(x++)b=x+1;后,x,b的值依次为。
A.2,3B.2,0C.3,0D.3,2
33.设ch是char型变量,其值为'A',则下面表达式的值是
ch=(ch>='A'&&ch<='Z')?
(ch+32):
ch
A.AB.aC.ZD.Z
34.字符串"ABC"在内存占用的字节数是
A.3B.4C.6D.8
35.要为字符型变量a赋初值,下列语句中哪一个是正确的
A.chara=3;B.chara=”3”;C.chara=%;D.chara=*;
36.下列不正确的转义字符是
A.\\B.\'C.074D.\0
37.下面四个选项中均是合法整型常量的选项是()
A.160-0xffff011B.-0xcdf01a0xe
C.-01986,0120668D.-0x48a2e50x
38.下面四个选项中均是不合法整型常量的选项是()
A.-0f1-0xffff0011B.-0xcdf01712,456
C.-0189995e2D.-0x48eg-06803f
39.下面四个选项中,均是不合法的浮点数的选项是()
A.1600.12e3B.1232e4.2e5
C.-18123e40.0D.-e32341e3
40.下面四个选项中,均是合法的浮点数的选项是()
A.+1e+15e-9.403e2B.-60.12e-4-8e5
C.123e1.2e-4-8e5D.-e38e-45.e-0
41.下面四个选项中,均是合法转义字符的选项是()
A.'\"‘\\'‘\n'B.‘\'‘\017'‘\"'
C.'\018'‘\f'‘xab'D.'\\0'‘\101'‘x1f'
42.下面四个选项中,均是不合法的转义字符的选项是()
A.'\"'‘\\'‘\xf'B.'\1011'‘\'‘\a'
C.'\011'‘f'‘\}'D.'\abc'‘\101'‘x1f
43.下面正确的字符常量是()
A.‘c"B.'\\"C.'w'D."
44.下面四个选项中,均是正确的数值常量或字符常量的选项的是()
A.0.00f8.9e‘&'B."a"3.9E-2.51e1‘\"'
C.'3'0110xFF000aD.+0010xabcd2e250
45.下面不正确的字符串常量是()
A.'abc'B."12'12"C."0"D.""
46.已知各变量的类型说明如下:
intk,a,b;unsignedlongw=5;doublex=1.42;则以下不符合C语言语法的表达式是()
A.x%(-3)B.w+=-2C.k=(a=2,b=3,a+b)D.a+=a-=(b=4)*(a=3)
47.已知各变量的类型说明如下:
inti=8,k,a,b;unsignedlongw=5;doublex=1.42,y=5.2;则以下符合C语言合法的表达式是()
A.a+=a-=(b=4)*(a=3)B.a=a*3=2C.x%(-3)D.y=float(i)
48.以下不正确的叙述是()
A.在C程序中,逗号运算符的优先级最低
B.在C程序中,APH和aph是两个不同的变量
C.若a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中
的值不变
D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值
49.以下正确的叙述是()
A.在C程序中,每行中只能写一条语句
B.若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数
C.在C语程序中,无论是整数还是实数,都能被准确无误地表示
D.在C程序中,%是只能用于整数运算的运算符
50..以下符合C语言语法的赋值表达式是()
A.d=9+e+f=d+9B.d=9+e,f=d+9C.d=9+e,e++,d+9D.d=9+e++=d+7
51.表达式18/4*sqrt(4.0)/8值的数据类型为()
A.floatBcharC.doubleD.不确定
52.若有以下定义,则能使值为3的表达式为3的表达式是()intk=7,x=12;
A.x%=(k%=5)B.x%=(k-k%5)C.x%=k-k%5D.(x%=k)-(k%=5)
53.设以下变量均为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)
54.C语言并不是非常严格的缩放语言,在以下关于C语言的不严格的叙述中,错误的说法是()。
A)任何不同数据类型都不可以通用
B)有些不同类型的变量可以在一个表达式中运算
C)在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型
D)同一个运算符号在不同的场合可以有不同的含义
55.在C语言中,int、char和short三种类型数据所占的内存()。
A)均为2个字节B)由用户自己定义
C)由所用机器的字长决定D)是任意的
56.下列常数中不能作为C语言的数据类型是()。
A)0xa5B)2.5e-2C)3e2D)0582
57.设int类型的数据长度为2字节,则unsignedint类型数据的取值范围是()。
A)0至255B)0至65535C)-256至255D)-32768至32767
58.在C语言中,数字029是一个()。
A)八进制数B)十六进制数C)十进制D)非法数
59.下列可以正确表示字符型常数的是()。
A)”a”B)'\t’C)”\n”D)297
60.以下错误的转义字符是()。
A)'\\’B)'\'’C)'\81’D)'\0’
61.C语言中整数-8在内存中的存储形式是()。
A)1111111111111000B)1000000000000000
C)0000000000001000D)1111111111110111
62.已知inti;floatf;正确的语句是()。
A)(intf)%iB)int(f)%iC)int(f%i)D)(int)f%i
63.已知:
chara;intb;floatc;doubled;执行语句c=a+b+c+d;后,变量c的数据类型是()。
A)intB)charC)floatD)double
64.已知:
inti,a;执行语句“i=(a=2*3,a*5),a+6;后,变量i的值是()。
A)6B)12C)30D)36
65.已知:
inti=5;执行语句i+=++i;i的值是()。
A)10B)11C)12D)A,B,C答案都不对
66.字符串”\\\22a,0\n”的长度是()。
A)8B)7C)6D)5
67.已知:
charc='A';inti=1,j;执行语句j=!
c&&i++;则i和j的值是()。
A)1,1B)1,0C)2,1D)2,0
68.已知:
intx=1,y=2,z;则执行z=x>y?
++x:
++y;则z的值为()。
A)1B)2C)3D)4
69.为了求出s=10!
的值,则变量s的类型应当为()。
(10!
=3628800)
A)intB)unsignedC)longD)以上三种类型均可以
70.已知:
intx=1,y;则y=++x*++x的结果为()。
A)y=9B)y=6C)y=1D)表达式是错误的
71.已知“inta=4,b=5,c;”,则执行表达式“c=a=a>b”后变量a的值为()。
A)0B)1C)4D)5
72.选出使变量i的运行结果为4的表达式()。
A)inti=0,j=0;B)inti=1,j=0;
(i=3,(j++)+i)j=i=((i=3)*2);
C)inti=0,j=1;D)inti=1,j=1;
(j==1)?
(i=1):
(i=3);i+=j+=2;
73.已知:
intx;则使用逗号运算的表达式“(x=4*5,x*5),x+25”的结果为(),变量x的值为()。
(1)A)20B)100C)表达式不合法D)45
(2)A)20B)100C)125D)45
74.执行下面的语句后x的值为()。
inta=14,b=15,x;
charc='A';
x=((a&b)&&(c<'a'));
A)TRUEB)FLASEC)0D)1
75.若定义了intx;则将x强制转化为双精度类型应该写成()。
A)(double)xB)x(double)C)double(x)D)(x)double
76.要判断char型变量m是否是数字字符,可以使用下列表达式()。
A)0<=m&&m<=9B)'0'<=m&&m<='9'
C)“0”<=m&&m<=“9”D)前3个答案都是错误的
77.以下可用作用户标识符的是:
()
A)12_aB)signedC)t-oD)_if
78.以下不是关键字的标识符是:
()
A)continueB)charC)IfD)default
79.C语言提供的合法的关键字是:
()
A)swicthB)cherC)CaseD)void
80.以下选项中不合法的int整型常数是()
A)32768B)-56C)03D)0xAF
81.以下不合法的长整型常量是()
A)2LB)49627C)34566666D)213
82.以下正确的实型常量是()
A)1.2EB).579899C)1.2e0.6D)8
83.以下选项中合法的实型常数是()
A)5E2.0B)E-3C).2E0D)1.3E
84.以下合法的八进制数是()
A)0135B)068C)013.54D)o7
85.以下合法的十六进制数是()
A)0xB)0x4deC)0x1hD)ox77
86.以下选项中非法的数值常量是()
A)019B)0LC)0xffD)1e1
87.若变量已正确定义,以下合法的赋值表达式是()
A)a=1/b=2B)++(a+b)
C)a=a/(b=5)D)y=int(a)+b
88.若变量已正确定义,以下非法的表达式是()
A)a/=b+cB)a%(4.0)
C)a=1/2*(x=y=20,x*3)D)a=b=c
89.设x为int类型,其值为11,则表达式(x++*1/3)的值是:
A)3B)4C)11D)12
90.设a,b均为double型,且a=5.5;b=2.5;则表达式
(int)a+b/b的值是()
A)6.500000B)6C)5.500000D)6.000000
91.若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
92.以下变量x,y,z均为double型且已正确赋值,不能正确表示代数式
的C语言表达式是()
A)x/y*zB)x*(1/(y*z))C)x/y*1/zD)x/y/z
93.若题中变量已正确定义并赋值,下面符合C语法的表达式是()
A)a%=7.6B)a++,a=7+b+cC)int(12.3)%4D)a=c+d=a+7
94.若t已定义为double型,则表达式:
t=1,t++,t+5的值为()
A)7B)7.0C)2.0D)1.0
95.下面四个选项中,均是不合法的用户标识符的选项的是:
()
A.Ap_odoB.floatlao_AC.b-agotointD._123tempINT
二、填空题
1.符号常量的定义方法是。
2、双精度实数的表示范围是___________,其有效位数是________。
3、关系表达式的运算结果是________。
4、逻辑运算符!
是________运算符,其结合性是由______。
5、表达式的运算对象可以是常量、变量和________。
6、已知charc;表达式(c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122)&&c<=98的值为1,则变量c的值是_____________。
7、已知:
a=15,b=240;则表达式(a&b)&b||b的结果为______。
8、负数在计算机中是以______形式表示。
9、在内存中存储“A”要占用个字节,存储‘A’要占用个字节。
10、设a,b,c为整型数,且a的值为2,b的值为3,c的值为4,表达式:
a*=16+(b++)-(++c)的值为______。
11、已有定义:
intx=0,y=0;,则计算表达式:
(x+=2,y=x+3/2,y+5)后,表达式的值是___,变量x的值是___,变量y的值是____
12、定义变量的完整语句格式是。
13、设下列运算符:
<<、+、++、&&、<=,其中优先级最高的是,优先级最低的是。
14、已有定义:
intx=110,y=017;,则计算表达式:
(x++,++y)后,按十进制表示,变量x的值是_____,变量y的值是_____。
15、C语言中运算结果可以当成逻辑值使用的表达式有:
表达式、表达式、表达式、表达式、表达式和表达式。
16、若已有定义语句:
intk=3,j=4;,运行表达式(k+=j,j/=4.0,++j,j+2)后,表达式的值是_____,变量k的值是_____,变量j的值是_____。
17、若x和y都是double型变量,且x的初值为3.0,y的初值为2.0,则表达式pow(y,fabs(x))的值为。
18、若有定义:
inte=1,f=4,g=2;floatm=10.5,n=4.0,k;则计算赋值表达式
k=(e+f)/g+sqrt((double)n)*1.2/g+m后k的值是。
19、表达式8/4*(int)2.5/(int)(1.25*(3.7+2.3))值的数据类型为。
20、表达式pow(2.8,sqrt(double)(x)))值的数据类型为。
21、假设m是一个三位数,从左到右用a、b、c表示各位的数字,则从左到右各个数字是bac的三位数的表达式是。
22、已有定义:
floatf=13.8;,则表达式:
(int)f%3的值是______.
23、已有定义:
intx=3;,则表达式:
x=x+1.78的值是______.
24、已有定义:
doublex=3.5;则表达式:
x=(int)x+1的值是___.
25、已有定义:
intx=10,y=3,z;,则表达式:
z=(x%y,x/y)的值是_____.
三、操作题
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=6;
printf("%d,%d,%d\n",i,(i++)+(i++)+(i++),i);
}
main()
{
inti=6,j;
j=(i++)+(i++)+(i++);
printf("%d,%d\n",i,j);
}
main()
{
inti=6,j;
j=(++i)+(++i)+(++i);
printf("%d,%d\n",i,j);
}
4.写出以下程序运行的结果:
(1)main()
{floatf;
inti=4;
f=10/i;
printf("%f\n",f);
}
(2)main()
{floatf;
inti=4;
f=10.0/i;
printf("%f\n",f);}
5.分析下面程序执行后的结果。
main()
{inta=3,b=7;
printf(“%d\n”,a+++++b);
printf(“%d\n”,b%a);
printf(“%d\n”,!
a>b);
printf(“%d\n”,a+b);
printf(“%d\n”,a&&b);
}
四、简答题
(1)用户标识符在命名时,应注意哪几个方面?
(2)C语言中,怎样区分求负与减法运算?
怎样区分取地址运算和按位与运算?
五、求下面算术表达式的值
(1)设x=2.5,a=7,y=4.7,x+a%3*(int)(x+y)%2/4
设a=2,b=3,x=3.5,y=2.5,(float)(a+b)/2+(int)x%(int)y
(2)设inti=1,j=2,k=3;,请写出以下表达式的值