大门|大门CS模拟2018 |第2组|问题47

当我们编译并运行下面的C程序段时会发生什么?

null

#include "stdio.h"
int main()
{
int a = 10;
int b = 15;
printf ( "=%d" ,(a+1),(b=a+2));
printf ( " %d=" ,b);
return 0;
}


(A) =11 15= (B) =11 12= (C) 由于第一个printf()中的(b=a+2),编译器出现错误。 (D) 没有编译错误,但输出为=11 X=其中X取决于编译器实现。 答复: (B) 说明: 根据C标准C11,printf()的所有参数都会被计算,无论它们是否被打印。这就是为什么(b=a+2)也会被计算,并且在第一次printf()之后,b的值会是12。这就是为什么正确答案是B。 这个问题的小测验

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享