第三章 数据类型、运算符与表达式
3.1 选择题
【题3.1】在C语言中(以16位PC机为例),5种基本数据类型的存储空间长度的排列顺序为 。
char<int<long int<=float<double
char=int<long int<=float<double
char<int<long int=float=double
char=int=long int<=float<double
【题3.2】若x、i、j和k都是int型变量,则执行下面表达式后x的值为 。
x=(i=4,j=16,k=32)
A)4 B)16 C)32 D)52
【题3.3】假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是 。
A)7 B)8 C)6 D)2
【题3.4】下列四组选项中,均不是C语言关键字的选项是 。
define IF type
getc char printf
include scanf case
while go pow
【题3.5】下列四个选项中,均是C语言关键字的选项是 。
auto enum include
switch typedef continue
signed union scanf
if struct type
【题3.6】下面四个选项中,均不合法的用户标识符的选项是 。
A P_0 do
float la0 _A
b-a goto int
_123 temp INT
【题3.7】C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符 。
必须为字母必须为下划线必须为字母或下划线可以是字母、数字和下划线中任一种字符
【题3.8】下面四个选项中,均是合法整型常量的选项是 。
160 -0xffff 011
-0xcdf 01a 0xe
-01 986,012 0668
-0x48a 2e5 0x
【题3.9】下面四个选项中,均是不合法的整型常量的选项是 。
--0f1 -0xffff 0011
-0Xcdf 017 12,456
-018 999 5e2
-0x48eg -068 03f
【题3.10】下面四个选项中,均是不合法的浮点数的选项是 。
160. 0.12 e3
123 2e4.2 .e5
-.18 123e4 0.0
-e3 .234 1e3
【题3.11】下面四个选项中,均是合法浮点数的选项是 。
+1e+1 5e-9.4 03e2
-.60 12e-4 -8e5
123e 1.2e-.4 +2e-1
-e3 .234 5.e-0
【题3.12】下面四个选项中,均是合法转义字符的选项是 。
‘\’’ ‘\\’ ‘\n’
‘\’ ‘\017’ ‘\”’
‘\018’ ‘\f’ ‘xab’
‘\\0’ ‘\101’ ‘x1f’
【题3.13】下面四个选项中,均是不合法的转义字符的选项是 。
‘\”’ ‘\\’ ‘\xf’
‘\1011’ ‘\’ ‘\a’
‘\011’ ‘\f’ ‘\}’
‘\abc’ ‘\101’ ‘xlf’
【题3.14】下面正确的字符常量是 。
A)“c” B) ‘\\’’ C) ‘W’ D) ‘’
【题3.15】下面四个选项中,均是不正确的八进制数或十六进制数的选项是 。
016 0x8f 018
0abc 017 0xa
010 -0x11 0x16
0a12 7ff -123
【题3.16】下面四个选项中,均是正确的八进制数或十六进制数的选项是 。
-10 0x8f -011
0abc -017 0xc
0010 -0x11 0xf1
0a12 -0x123 -0xa
【题3.17】下面四个选项中,均是正确的数值常量或字符常量的选项是 。
0.0 0f 8.9e ‘&’
“a” 3.9E-2.5 1e1 ‘\”’
‘3’ 011 0xFF00 0a
+011 0xabcd 2e2 50.
【题3.18】下面不正确的字符串常量是 。
A)‘abc’ B)“12’12” C)“0” D)“ ”
【题3.19】对应以下各代数式中,若变量a和x均为double类型,则不正确的C语言表达式是 。
代数式 C语言表达式
 exp(x*x/2)/sqrt(2*3.14159)
 1.0/2.0*(a*x+(a+x)/(4*a)
 sqrt((pow(sin(x*3.14159/180),2.5))
 x*x-exp(5.0)
【题3.20】若有代数式,则不正确的C语言表达式是 。
a/b/c*e*3
3*a*e/b/c
3*a*e/b*c
a*e/c/b*3
【题3.21】已知各变量的类型说明如下:
int k,a,b;
unsigned long w=5;
double x=1.42;
则以下不符合C语言语法的表达式是 。
A)x%(-3) B)w+=-2 C)k=(a=2,b=3,a+b) D)a+=a-=(b=4)*(a=3)
【题3.22】已知各变量的类型说明如下:
int i=8,k,a,b;
unsigned long w=5;
double x=1.42,y=5.2;
则以下符合C语言语法的表达式是 。
A)a+=a-=(b=4)*(a=3) B)a=a*3=2 C)x%(-3) D)y=float(i)
【题3.23】以下不正确的叙述是 。
在C程序中,逗号运算符的优先级最低在C程序中,APH和aph是两个不同的变量若a和b类型相同,在执行了赋值表达式a=b后b中的值将放入a中而b中的值不变当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值
【题3.24】以下正确的叙述是 。
在C程序中,每行中只能写一条语句若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数在C程序中,无论是整数还是实数,都能被准确无误地表示在C程序中,%是只能用于整数运算的运算符
【题3.25】以下符合C语言语法的赋值表达式是 。
A)d=9+e+f=d+9 B)d=9+e,f=d+9 C)d=9+e,e++,d+9 D)d=9+e++=d+7
【题3.26】已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2=‘A’+‘6’-‘3’;后,c2中的值为 。
A)D B)68 C)不确定的值 D)C
【题3.27】在C语言中,要求运算数必须是整型的运算符是 。
A)/ B)++ C)!= D)%
【题3.28】若以下变量均是整型,且num=sum=7;则执行表达式sUM=num++,sUM++,++num 后sum的值为 。
A)7 B)8 C)9 D)10
【题3.29】在C语言中,int、char和short三种类型数据在内存中所占用的字节数 。
A)由用户自己定义 B)均为2个字节
C)是任意的 D)由所用机器的机器字长决定
【题3.30】若有说明语句:char c=‘\72’;则变量c 。
A)包含1个字节 B)包含2个字节
C)包含3个字节 D)说明不合法,c的值不确定
【题3.31】若有定义:int a=7; float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是 。
A)2.500000 B)2.750000 C)3.500000 D)0.000000
【题3.32】sizeof(float)是 。
A)一个双精度型表达式 B)一个整型表达式
C)一种函数调用 D)一个不合法的表达式
【题3.33】设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为 。
A)int B)float C)double D)不确定
【题3.34】下面四个选项中,均是非法常量的选项是 。
‘as’ -0fff ‘\0xa’
‘\\’ ‘\01’ 12,456
-0x18 01177 0xf
0xabc ‘\0’ “a”
【题3.35】若有代数式,则正确的C语言表达式是 。
sqrt(fabs(pow(y,x)+log(y)))
sqrt(abs(pow(y,x)+log(y)))
sqrt(fabs(pow(x,y)+log(y)))
sqrt(abs(pow(x,y)+log(y)))
【题3.36】若有代数式,则正确的C语言表达式是 。
fabs(x*3+log(x))
abs(pow(x,3)+log(x))
abs(pow(x,3.0)+log(x))
fabs(pow(x,3.0)+log(x))
【题3.37】在C语言中,char型数据在内存中的存储形式是 。
A)补码 B)反码 C)原码 D)ASCII码
【题3.38】设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是 。
A)n=(n*100+0.5)/100.0 B)m=n*100+0.5,n=m/100.0
C)n=n*100+0.5/100.0 D)n=(n/100+0.5)*100.0
【题3.39】表达式18/4*sqrt(4.0)/8值的数据类型为 。
A)int B)float C)double D)不确定
【题3.40】设C语言中,一个int型数据在内存中占2个字节,则unsigned int型数据的取值范围为 。
A)0~255 B)0~32767 C)0~65535 D)0~2147483647
【题3.41】设有说明:char w; int x; float y; double z;则表达式w*x+z-y值的数据类型为 。
A)float B)char C)int D)double
【题3.42】若有以下定义,则能使值为3的表达式是 。
int k=7,x=12;
A)x%=(k%=5) B)x%=(k-k%5) C)x%=k-k%5 D)(x%=k)-(k%=5)
【题3.43】设以下变量均为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)
3.2填空题
【题3.44】在C语言中(以16位PC机为例),一个char型数据在内存中所占的字节数为【1】;一个int型数据在内存中所占的字节数为【2】。
【题3.45】在C语言中(以16位PC机为例),一个float型数据在内存中所占的字节数为【1】;一个double型数据在内存中所占的字节数为【2】。
【题3.46】若有以下定义,则执行表达式y+=y-=m*=y后的y值是【 】。
int m=5,y=2;
【题3.47】设C语言中,一个int型数据在内存中占2个字节,则int型数据的取值范围为【 】。
【题3.48】在C语言中的实型变量分为两种类型,它们是【1】和【2】。
【题3.49】C语言所提供的基本数据类型包括:单精度型、双精度型、【1】、【2】和【3】。
【题3.50】若s是int型变量,且s=6,则下面表达式的值为【 】。
s%2+(s+1)%2
【题3.51】若a是int型变量,则下面表达式的值为【 】。
(a=4*5,a*2),a+6
【题3.52】若x和a均是int型变量,则执行表达式(1)后的x值为【1】,执行表达式(2)后的x值为【2】。
(1)x=(a=4,6*2)
(2)x=a=4,6*2
【题3.53】若a、b和c均是int型变量,则执行下面表达式后,a值为【1】,b值为【2】,c值为【3】。
a=(b=4)+(c=2)
【题3.54】若a是int型变量,且a的初值为6,则执行下面表达式后a的值为【 】。
a+=a-=a*a
【题3.55】若a是int型变量,则执行下面表达式后a的值为【 】。
a=25/3%3
【题3.56】若x和n均是int型变量,且x和n的初值均为5,则执行下面表达式后x的值为【1】,n的值为【2】。
x+=n++
【题3.57】若有定义:int b=7; float a=2.5,c=4.7;则下面表达式的值为【 】。
a+(int)(b/3*(int)(a+c)/2)%4
【题3.58】若有定义:int a=2,b=3; float x=3.5,y=2.5;则下面表达式的值为【 】。
(float)(a+b)/2+(int)x%(int)y
【题3.59】若有定义:char c=‘\010’;则变量c中包含的字符个数为【 】。
【题3.60】若有定义:int x=3,y=2; float a=2.5,b=3.5;则下面表达式的值为【 】。
(x+y)%2+(int)a/(int)b
【题3.61】若x和n均是int型变量,且x的初值为12,n的初值为5,则执行下面表达式后x的值为【 】。
x%=(n%=2)
【题3.62】假设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为【 】。
【题3.63】C语言中的标识符只能由三种字符组成,它们是【1】、【2】和【3】。
【题3.64】已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch=‘a’+‘8’-‘3’的值为【 】。
【题3.65】把以下多项式写成只含七次乘法运算,其余皆为减运算的表达式为【 】。
5X^7+3X^6-4X^5+2X^4+X^3-6X^2+X+10
【题3.66】若x和y都是double型变量,且x的初值为3.0,y的初值为2.0,则表达式pow(y,fabs(x))的值为【 】。
【题3.67】若有定义:int e=1,f=4,g=2; float m=10.5,n=4.0,k;则执行赋值表达式k=(e+f)/g+sqrt((double)n)*1.2/g+m后k的值是【 】。
【题3.68】表达式8/4*(int)2.5/(int)(1.25*(3.7+2.3))值的数据类型为【 】。
【题3.69】表达式pow(2.8,sqrt(double)(x)))值的数据类型为【 】。
【题3.70】假设m是一个三位数,从左到右用a、b、c表示各位的数字,则从左到右各个数字是bac的三位数的表达式是【 】。

【题3.1-3.43】 ACBAB CCADB BABCD CDACC AADDB ADADA ABCAA DDBCC DDC
【题3.44】 【1】1 【2】2
【题3.45】 【1】4 【2】8
【题3.46】 -16
【题3.47】 -32768 ~ 32767
【题3.48】 【1】单精度型(或:float) 【2】双精度型(或:double)
【题3.49】 【1】整型 【2】字符型 【3】枚举类型
【题3.50】 1
【题3.51】 26
【题3.52】 【1】12 【2】4
【题3.53】 【1】6 【2】4 【3】2
【题3.54】 -60
【题3.55】 2
【题3.56】 【1】10 【2】6
【题3.57】 5.500000
【题3.58】 3.500000
【题3.59】 1
【题3.60】 1
【题3.61】 0
【题3.62】 9
【题3.63】 【1】字母 【2】数字 【3】下划线
【题3.64】 f
【题3.65】 X*(X*(X*(X*(X*(X*(5*X+3)-4)+2)+1)-6)+1)+10
【题3.66】 8.000000
【题3.67】 13.700000
【题3.68】 整型(或:int)
【题3.69】 双精度型(或:double)
【题3.70】 m/10%10*100+m/100*10+m%10