📜  C测验– 104 |问题3

📅  最后修改于: 2021-05-29 12:35:27             🧑  作者: Mango

当我们编译并运行以下C程序时,将会发生什么?

#include "stdio.h"
  
int main()
{
  int i = 1, j;
  for ( ; ; )
  { 
    if (i)
        j = --i;
    if (j < 10)
       printf("GeeksQuiz", j++);
    else
       break;
  }
  return 0;
}

(A)编译错误。
(B)没有编译错误,但会遇到无限循环打印GeeksQuiz的问题。
(C)没有编译错误,它将打印GeeksQuiz 10次。
(D)没有编译错误,但它将打印GeeksQuiz 9次。答案: (C)
说明:基本上,即使for循环在括号中不包含三个表达式中的任何一个,初始化,控制和增量操作仍在循环主体中完成。因此,j将首先通过if初始化为0。如果由于i–本身仅执行一次,则将执行此操作。下一个if和else块将用于检查j的值,并且如果j变为10,则该循环存在。请注意,即使format 字符串没有格式说明符,j在printf中也会递增。这就是为什么GeeksQuiz将在j = 0到j = 9的情况下(即总共打印10次)进行打印的原因。
这个问题的测验

想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。