3 数据类型、运算符与表达式
一、单项选择题
1、以下选项中,不正确的 C 语言浮点型常量是( C )。
A. 160.    B. 0.12      C. 2e4.2      D.  0.0
分析:e后面的指数必须为整数。
2、以下选项中,(  D )是不正确的 C 语言字符型常量。
A. 'a'        B. '\x41'      C. '\101'      D. "a"
分析:在C语言中,a表示字符常量,a”表示字符串
3、    在 C 语言中,字符型数据在计算机内存中,以字符的(C )形式存储。
A.原码      B.反码      C. ASCII 码    D. BCD码
分析:将一个字符常量放入一个字符变量中,实际上并不是将字符本身放到内存单元中,而是将字符的对应的ASCII码放到储存单元中。
4、若x、i、j和k都是int型变量,则计算下面表达式后,x的值是( C )。
x=(i=4,j=16,k=32)
A. 4        B. 16        C.32        D.52
分析:(i=4,j=16,k=32)的值为最后一个表达式的值,即为32,所以x=32.
5、算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为(B )。
A.    算术运算、赋值运算、关系运算    B.  算术运算、关系运算、赋值运算
C.    关系运算、赋值运算、算术运算    D.  关系运算、算术运算、赋值运算
分析:算术运算符包括加法运算“+”符减法运算“-”符乘法运算符“*”以及除法运算符“/”,赋值运算符包括“=、+=、-=、*=、/=、……”,关系运算符包括“<、<=、>、>=”。
6、若有代数式 ,则不正确的C语言表达式是( C )。
A.a/b/c*e*3      B. 3*a*e/b/c        C.3*a*e/b*c    D. a*e/c/b*3
分析:C选项表达的是3ace/b。
7、表达式!x||a==b 等效于( D )。
A. !((x||a)==b)          B. !(x||y)==b      C. !(x||(a==b))    D. (!x)||(a==b)
分析:由符优先级先后顺序在!x||a==b中应先算“||再算“!”,最后算“==”。选项B不影响运算顺序。
8、设整型变量 m,n,a,b,c,d 均为1,执行 (m=a>b)&&(n=c>d)后, m,n 的值是( A )。
A. 0,0    B. 0,1    C. 1,0    D. 1,1
分析:先算括号里面的,a不大于b,则m=0,c不大于d,则n=0.
9、 设有语句 int a=3;,则执行了语句 a+=a-=a*=a;后,变量 a 的值是( B )。
A. 3          B. 0      C. 9        D. -12 运算符优先级图片
分析:从后往前算,a*=a即a=a*a,a=9;然后a-=a=9,a=a-9,=0;a+=0,a=a+a=0.
10、在以下一组运算符中,优先级最低的运算符是( D )。
A. *    B. !=      C. +    D. = 
分析:在上述选项中,运算符优先级从低到高为=、!=、+、*。
11、设整型变量 i 值为2,表达式(++i)+(++i)+(++i)的结果是(  B  )。
A. 6      B. 12    C. 15    D.  表达式出错
分析:++i表示在将i运算前先加上1再进行运算。
12、若已定义 x 和 y为double 类型,则表达式 x=1,y=x+3/2 的值是( C  )。
A. 1      B. 2    C. 2.0    D. 2.5
分析double类型下,3/2=1,y为double类型,故y=1+1=2.0。
13、sizeof (double)的结果值是( A  )。
A. 8      B. 4    C. 2    D.  出错
分析:SIZEOF的作用是判断数据类型长度,double在C里用8个字节来存储数据。
14、设a=1,b=2,c=3,d=4,则表达式:a<b? a : c<d? a : d的结果为( A )。
A. 4      B. 3    C. 2    D. 1
分析:a<b? a : c<d? a : d的意思是a<b吗,如果是的话就执行 a,不是的话就执行 c<d,c<d 执行吗,如果执行的话就执行a,不是的话就执行 d。
15、设a 为整型变量,不能正确表达数学关系:10<a<15的 C 语言表达式是( A )。
A. 10<a<15                  B. a= =11|| a= =12 || a= =13 || a= =14
C. a>10 && a<15              D. !(a<=10) && !(a>=15)
分析:a 为整型变量表示a为整数,10<a<15表示a可取值11、12、13、14。B表示a= =11
a= =12 a= =13 a= =14符合题意。C表示a>10并且a<15。D表示a不小于等于10并且a不大于等于15.均符合题意。
16、设 f是实型变量,下列表达式中不是逗号表达式的是( A )。
A. f= 3.2, 1.0      B. f>0, f<10      C. f=2.0, f>0      D. f=(3.2, 1.0) 
分析:逗号的优先级低于等号的优先级。A表示将3.2赋值给f,1.0无法识别。
17、 表达式18/4*sqrt(4.0)/8值的数据类型是( B )。
A. int    B. float    C. double    D. 不确定
分析:int表示整形, float表示单精度型, double表示双精度型。
18、已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句C2=A+6-3;后c2中的值是( A  )。
A. D    B. 68    C. 不确定的值    D. C
分析:字符型常量A为65,加上6减去3为68,对应D的ASCII码。
19、以下用户标识符中,合法的是( B )。
A. int        B. nit        C. 123      D. a+b
分析:C语言规定标识符只能由字母、数字、 下划线组成,并且只能由字母、下划线开头。一些标识符被赋于特定的含义就叫做保留字不用于标
20、C 语言中,要求运算对象只能为整数的运算符是( A )。
A. %        B. /        C. >        D. *
分析:%表示求余,运算对象只能为整数。
21、若有说明语句:char c='\72';则变量c在内存占用的字节数是( A )。
A. 1      B. 2        C. 3       D. 4
分析char 是字符型,它定义的字符,在内存中只占一个字节,定义的char c='\72',系统
只会将它做一个字符处理。
22、字符串"ABC"在内存占用的字节数是( B )。
A. 3      B. 4        C. 6       D. 8
分析:C规定在每一个字符常量的结尾加上一个字符串结束标志/0在内存单元中ABC表示6个字符。
23、要为字符型变量 a赋初值,下列语句中哪一个是正确的( B )。
A. char a="3";  B. char a=’3’;    C. char a=%;      D. char a=*;
分析:字符用单引号,字符串用双引号。
24、下列不正确的转义字符是( C )。
A. \\            B. \'                C. 074              D. \0
分析所有的ASCII码都可以用“\”加数字(一般是8进制数字)来表示。而C中定义了一些
字母前加"\"来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等,就称为转义字符,因为后面的字符都不是它本来的ASCII字符意思了。
二、填空题
1、C 语言中的逻辑值“真”是用   1    表示的,逻辑值“假”是用   0  表示的。
2、若x和n都是int型变量,且x的初值为12,n的初值为5,则计算表达式x%=(n%=2)后x的值为  0 
3、设 c='w',a=1,b=2,d=-5,  则表达式 'x'+1>c, 'y'!=c+2, -a-5*b<=d+1, b==a=2的值分别为     1      0        1      1   
4、设 float x=2.5,y=4.7; int a=7;,表达式 x+a%3*(int)(x+y)%2/4的值为  2.75 
5、判断变量 a、b 的值均不为 0 的逻辑表达式为   a!==0&&b!==0 
6、求解赋值表达式 a=(b=10)%(c=6),表达式值、a、b、c 的值依次为  4、10、10、6   
7、求解逗号表达式 x=a=3,6*a 后,表达式值、x、a 的值依次为    18、3、3 
逗号运算符应先求解逗号前面的,求出后变量经重新赋值,在计算逗号后面的。
8、数学式a/(b*c)的 C 语言表达式  a/b/c   
三、判断题
(  Y )1、C语言中,非0值作为true0作为false;若表达式取得true值时,结果为1 取得false值时,为0 
( N  )2、为了确保表达式n/2的值为float型,可写成float(n/2)
(  N )3、若有(floatx,x变成float型变量。
( N  )4、若a=3,b=4,c=5,则d=!(a%b)的值是0 

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。