3.21 以下程序的输出结果是
main()
{ int a=21,b=11;
printf("%d\n",- -a+b,- -b+a);
}
新手上路、求指教
答案是30啊、这我就不明白了
追答不会是30,是31,只打印第一个--a+b
追问3.21 以下程序的输出结果是
main()
{ int a=21,b=11;
printf("%%d\n",- -a+b,- -b+a);
}
A)30 B)31 C)32 D)33
正确答案: A
它的答案有误
学习C要灵活,因为C本身就很灵活
追问没有吧、答案是对的。
追答你上机执行一次就知道了
追问嗯、试试。谢谢
追答不再和你说了,加强一下基础才能讨论问题,88
追问sorry
3.21 以下程序的输出结果是
main()
{ int a=21,b=11;
printf("%%%%d\n",- -a+b,- -b+a);
}
A)30 B)31 C)32 D)33
正确答案: A
这是原题
追答原题的printf语句,这4个答案全打印不出来
原题能打印出%%d
追问我明白了
答案是30
追答我不和你讨论了,没办法讨论了,88
答案是30、这我就不明白了
追答优先级原因吧
这种题不要纠结了,在程序里只有现在的二级考试里面才会出现这种题,在现实中,肯定得用括号扩'起来让程序的可读性增强,这种题其实毫无意义
追问俺要考二级、求解答
追答(--a)+(--b)建议学习二级的时候在电脑旁边,遇到不明确的程序自己编译运行一下,这样更容易掌握
追问谢了、不是急于考试麻
追答二级九月份才考的吧
追问嗯、我说c语言、会出这样的题吗?
追答会,这就是二级比较二的地方,而且估计不止一道
追问唉、还没听懂。- -a+b,- -b+a。 等价于(--a)+(--b)?
追答稍等我开电脑
追问嗯、谢谢
追答答案是30和31吧?
我打程序的时候打错了,sorry
printf("%d\n",--a+b,--b+a); }这句是个逗号运算,取后面的值.....但是前面的--a+b也是要运行的,运行了--a后a=20啦!!在运行后面的--b,b就等于10啦!!加起来就等于30.了
没看清楚程序,sorry,这道题考察自加运算,和C语言里面的逗号运算,取后面的值
能理解吧?
追问奥、也就是说先--a然后取值为--b+a?
追答对,--a+b因为逗号运算不输出,但也是运行过的,改变了a的值,前面输出语句要是这样写printf("%d/n%d/n",…)有两个输出的话就是都输出,这个只是输出后面那个表达式的值
之前输出都没看清,就给你说答案了不好意思啊
追问嘿嘿、明白了。谢谢
这个程序怎么写?
为什么不用return返回阿
追答我就是让你看一下正确写法,加上无所谓,不影响结果输出么,加上吧那
追问呜呜
追答怎么了
追问你看运行结果?反了?
追答没有,printf是从右至左计算参数表的
追问OK
能帮我看一下、为什么不选B吗?
追答有点不清楚,输出的那里再清楚点
追问3.12 若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是
A)2.500000 B)2.750000
C)3.500000 D)0.000000
正确答案: A
看到那个(int)了吧?0.25的int型就是0
追问类型转换?这个题(int)的作用范围是哪部分阿?
追答就是它后面的值
本回答被提问者采纳