设有如下变量说明,则a+(int)((int)b+c)>>(int)(b-c)的值为【 】。 int a=5;float b=7.2,c=3.6;

admin2013-06-11  34

问题 设有如下变量说明,则a+(int)((int)b+c)>>(int)(b-c)的值为【  】。
int a=5;float b=7.2,c=3.6;

选项

答案1

解析 在表达式a+(int)((int)b+c)>>(int)(b-c)中圆括号最优先,其次为类型转换(int)、加法+、减法-、右移运算>>。所以先看两个圆括号((int)b+c)和(b-c),前者b先被转换为int型7,然后与c相加 得10.6,后者结果是3.6,现在表达式为a+ (iot)10.6>>(int)3.6。C语言中,float型转换为int型是截尾取整,所以表达式进一步简化为5+10>>3=>15>>3。由于15的二进制为000011112(下标),所以15>>3的结栗是000000012(下标),即1。
转载请注明原文地址:https://kaotiyun.com/show/UVJp777K
0

最新回复(0)