当我们编译并运行下面的C程序时会发生什么?
null
#include < stdio.h ><br> <br> int main()<br> {<br> int i = 1, j;<br> for ( ; ; )<br> { <br> if (i)<br> j = --i;<br> if (j < 10)<br> printf ( "GeeksQuiz" , j++);<br> else <br> break ;<br> }<br> return 0;<br> }<br> |
(A) 编译错误。 (B) 没有编译错误,但它将运行到无限循环打印Geeksquick。 (C) 没有编译错误,它会打印10次Geeksquick。 (D) 没有编译错误,但会打印9次Geeksquick。 答复: (C) 说明: 基本上,即使for循环的括号中没有三个表达式中的任何一个,初始化、控制和增量都是在循环体中完成的。所以j将通过第一个if初始化为0。如果由于i-,它本身只执行一次。接下来使用if和else块检查j的值,如果j变为10,则检查现有循环。请注意,即使格式字符串中没有格式说明符,printf中的j也会递增。这就是为什么Geeksquick会打印j=0到j=9,即总共10次。 这个问题的小测验
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END