有如下定义:int a=1;byte b=2;则表达式a+b的数据类型为()。A.intB.byteC.charD.long

题目

有如下定义:int a=1;byte b=2;则表达式a+b的数据类型为()。

A.int

B.byte

C.char

D.long

参考答案和解析
答案:A
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

有如下定义: int b[10]={1,2,3,4,5,6,7,8,9,10},*q=b; 则数值为8的表达式是( )。

A.*q+8

B.*(q+7)

C. *q+=8

D.q+7


正确答案:B

第2题:

设有如下定义: int a=4; 则计算表达式“a+=a-a*a”后的值是( )。

A.0

B.-12

C.-24

D.-8


正确答案:D
解析:a+=a-a*a等价于a=a+a-a*a=4+4-4*4=-8。

第3题:

设有如下定义:int x=1,y=-1;则下列语句的输出结果是______。printf("%d\n",(x--&++y));

A.1

B.0

C.-1

D.2


正确答案:B

第4题:

有如下定义 int a; float f; double i; 则表达式4+‘a’+i*f的值的数据类型是 ______。

A.int

B.float

C.double

D.不确定


正确答案:C

第5题:

若有以下定义: char a;int b; float c;double d; 则表达式a*b+b-c值的类型为( )。A. floatSX

若有以下定义: char a;int b; float c;double d; 则表达式a*b+b-c值的类型为( )。

A. float

B.int

C.char

D.double


正确答案:D
在表达式a*b+d-c中,double的类型最高,C语言中,由低类型自动向高类型转换,所以最后的结果一定是double型。

第6题:

有如下定义: int a[5]={1,3,5,7,9}, * p=a; 下列表达式中不能得到数值5的是

A.a[2]

B.a[3]

C.*(p+2)

D.*p+4


正确答案:B

第7题:

有以下定义语句

double a, b; intw; longc;

若各变量已正确赋值,则下列选项中正确的表达式是

A.a=a+b=b++

B.w%(int)a+b)

C.(c+w)%(int)a

D.w=a==b;


正确答案:D
解析:本题中仅选项D为合法的赋值语句,可以解释为w=(a= =b),即把逻辑运算a = =b的结果(真或假,即1或0)赋给整数w。

第8题:

有以下定义语句: double a,b; int w; long c; 若各变量已正确赋值,则下列选项中正确的表达式是( )。

A.a=a+b=b++

B.w%((int)a+b)

C.(c+w)%(int)a

D.w=a==b


正确答案:C
解析:选项A不是合法的赋值语句,将最右边的第一个赋值表达式加括号即为a=a+(b=b++)才正确,故选项A不正确。选项B中运算符%的对象必须是整型,而在选项B中(int)a+b为double型,故选项B不正确。a,b都为double型,应当避免使用a==b这样的关系表达式,因为通常存放在内存中的实型数据是有误差的,因此不可能精确相等,这将导致关系表达式a==b总为0。所以,4个选项中选项C符合题意。

第9题:

若有如下定义: int x=6,y=3,z=2; 则表达式x=y||y<z&&z==z的值是( )。

A.0

B.1

C.4

D.6


正确答案:B
解析:优先级高于==高于&&高于||高于=。首先计算表达式yz的值,yz为假,表达式的值为0,则逻辑表达式yz&&z= =z的值也为0,||左侧y的值为非零值3,所以表达式的值为1,将1赋值给x,赋值表达式的值是1。

第10题:

若有定义:int a=6,b=2;charc1=’a’,c2=’b’;则表达式a+b%5+c2-c1的值是()

A.7

B.8

C.9

D.表达式错误


参考答案:C