两道c语言题目 14题为什么选B啊?应该是C吧 15题求解析

两道c语言题目14题为什么选B啊?应该是C吧15题求解析... 两道c语言题目
14题为什么选B啊?应该是C吧
15题求解析
展开
 我来答
匿名用户
2016-01-06
展开全部
15题(int)f1=2,这个是直接舍去小数点后来取整的(注意这个括号int只对f1有用)。
再加上f2的2.5,就是4.5

另:14题看不见题目
追问
大神帮忙看看16题吧 y不执行了吗?
我看懂了 不执行是因为前一句不为0 为真 所有不执行
furious_tauren
2016-01-06 · TA获得超过4053个赞
知道大有可为答主
回答量:1913
采纳率:100%
帮助的人:756万
展开全部

15 题: (int)f1+f2: (int)f1把f1强制类型转换为整数型,所以小数部分被舍弃, 其值为2

2+2.5 就是 4.5


16 题:a=(x=x+1)||(y=y+1)

按运算优先级:

  1. 先执行 x=x+1, 此时x 等于3,表达式x=x+1的返回值为3

  2. 再执行 3 ||(y=y+1), 3为真(非0即真),|| 短路,后面语句得不到执行,y保持不变即2

  3. (x=x+1)||(y=y+1)返回值为真,即1

追问
万分感谢 !
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
黔含品2
2017-01-11 · TA获得超过3.8万个赞
知道小有建树答主
回答量:2.7万
采纳率:45%
帮助的人:1383万
展开全部
A 数组只有五个元素。 p+0到p+4合法, p+5越界。
B *a其实就是a[0] 所以 *a+1是a[0]+1 不是地址。
C a本身已经等效int*型了,所以 &a其实是int**型。 更准确的说法是int*[5]这样的数组指针。 再加1,其值等效于&a[5]
这段可能不好理解, 总之这里是类型不匹配就好。
D唯一正确项
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
AN_Alarm
2016-01-06 · TA获得超过3274个赞
知道大有可为答主
回答量:3989
采纳率:0%
帮助的人:2512万
展开全部
选b是因为f1被强制转换成整型就是2。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式