首页 热点资讯 义务教育 高等教育 出国留学 考研考公

程序的输出结果是( ) main() { int a=-1,b=4,k; k=(++a<=0)&&!(b--<=0); printf("%d %d %d",k,a,b); }

发布网友 发布时间:2022-04-27 02:58

我来回答

2个回答

热心网友 时间:2023-11-18 04:58

考的是运算符优先级http://ke.baidu.com/link?url=IL17TMPY1OPIEkLlnNdfhjCWxGWh5gu6MLMTSVVaN8VbTegB5aVueWR8eVmkR9NFAXYkkcnLrb4EoWn_Jgqncm5m2zTjW_GqbkV9JpcqT5GcGIuMG310Hlt7ZqUHAOex9o2GQIn_KuZRbcRRiv5Oka这里有详细的
解答你的题:
前置++的运算优先级小于<=所以先<= a<=0为1(真)++后结果为2;0<=0所以第一个表达式为真结果为1。注意此时a的值为0
第二个表达式同理b--=3;3<=0为假表达式结果为1,现在算!(1)=0;
最后算与运算2&&0=0(0为假2>0C语言中不为0的都是真,与运算的含义是俩都为真才为真所以结果为1)因此k=1;
k=1,a=0,b=3

热心网友 时间:2023-11-18 04:59

k=(++a<=0)&&!(b--<=0)
(++a<=0) 为 True ++a为加一后再执行 此时 a = 0

!(b--<=0) 为 True b--为执行完后再减一 此时 b = 4

比较完成后 b = 3

k = True %d 转换为 1

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com