执行下面程序中的输出语句后,输出结果是______?

执行下面程序中的输出语句后,输出结果是______?,第1张

输出25.

要理解这个请先自行查阅“逗号表达式老敏”,这里做简单解释和copy:

c语言提供一种特殊的运算符,逗号运算符,优先级别最低,它将两个及其以上的式子联接起来,从左往右逐个计算表达式,整个表达式的值为最后一个表达式的值。如:(3+5,6+8)称为逗号表达式,其求解过程先表达式1,后表达式2,整个表达式值是表达式2的值,如:(3+5,6+8)的值是14;a=(a=3*5,a*4)的值是60,其中(a=3*5,a*4)的值是60,裂燃 a的值在逗号表达式里一直是15,最后被逗号表达式赋值为60,a的值最终为60。

你这里的情况就相当于先得侍源枝到a=15,(15,a*4,a+10)

然后得到(15,60,a+10)

最后得到(15,60,25)

输出的却是25

仅供参考,如有错误请各路网友及时反馈

printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息,

printf()函数的拍手调用格式为:

printf("<格式化字符串>铅好", <参量表>)

这里面的格式化字符串"%x"表示无符号以十六进制表示的整数,

这里的参量是a(袭激嫌=18),18用十六进制表示是12,所以输出应该是12

一开始,s被赋值,为运梁枣2

接着3次循环,

第一次,i= 0,%2求余为0做了else t= 5,a= 5,返回值8 (因为在内部调用,到了外面还是用a=3)

第二次,i= 1,a= 4,t= 4返回值8(外部a因前一次a++,所以为4)

第三次i= 2,a= 6,t= 6,返回值11(外部a因前一次a++,所以为旁拆5)[ 同理第一次使用else的时候a++了,所以不是5而是6了 ]

把三次返回值加起来,就是所渣橘输出s 29= 8+8+11+2

注意static的用法,区分局部和全局~


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12395674.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存