若有一下类型标识符定义:char c = 'c'; int a = 4; float f = 3.14; double d = 1.212? 10
若有一下类型标识符定义:charc='c';inta=4;floatf=3.14;doubled=1.212;则表达式c+a/(int)d+f的结果类型是A.floatB...
若有一下类型标识符定义:char c = 'c'; int a = 4; float f = 3.14; double d = 1.212;则表达式c + a/(int)d + f的结果类型是
A.float B.char C. int D.double 展开
A.float B.char C. int D.double 展开
4个回答
展开全部
char c='c';
int a=4;
float f=3.14;
double d=1.212;
则表达式:c+a/(int)d+f的结果类型是:
A.float B.char C.int D.double
按照计算顺序:
第一步:先做圆括号内的类型转换,d本来是double型(双精度浮点型) ,结果(int)d后,d变成int型(整型);
第二步,做除法,因为被除数和除数都是整型,系统自动做整型除法,得到的结果也是整型;
第三步,做前面的加法,c是char型(字符型),系统按照int型对待,这样两个加数都是int型,结果仍然是int型;
第四步,做后面的加法,因为f是float型(浮点型),前面的结果是整型,结果也会是浮点型。
所以,最终的结果是float型。
int a=4;
float f=3.14;
double d=1.212;
则表达式:c+a/(int)d+f的结果类型是:
A.float B.char C.int D.double
按照计算顺序:
第一步:先做圆括号内的类型转换,d本来是double型(双精度浮点型) ,结果(int)d后,d变成int型(整型);
第二步,做除法,因为被除数和除数都是整型,系统自动做整型除法,得到的结果也是整型;
第三步,做前面的加法,c是char型(字符型),系统按照int型对待,这样两个加数都是int型,结果仍然是int型;
第四步,做后面的加法,因为f是float型(浮点型),前面的结果是整型,结果也会是浮点型。
所以,最终的结果是float型。
展开全部
c+a/(int)d+f结果是float型:
首先a/(int)d是int / int结果是int;
那带入就是char + int + float;
+都是一样的运算符,程序会按里面最高精度进行,char + int = int, int + float=float。
就是说程序会按参与运算的两个数最高精度转换。
首先a/(int)d是int / int结果是int;
那带入就是char + int + float;
+都是一样的运算符,程序会按里面最高精度进行,char + int = int, int + float=float。
就是说程序会按参与运算的两个数最高精度转换。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
虽然d是double,但被强制转换成了int,剩下的float是最高级的类型,所以结果转成了float。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
D 11112
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询