2: n=1 while 成立 执行n++ n=2
3: n=2 while 成立 执行n++ n=3
4: n=3 while 不成立 执行n++ n=4
我现在没去编译他 我想答案应该是D 因为if n=0;我觉得这句有语病 如果是个条件判断的话 应该是
if n==0;
我现在编译了 真的有语病 报错如下图:
int main(void)
{
int n;
if (n==0);
while(n++<=2);
printf("%d",n);
system("pause");
return 0;
}
就可以编译了 结果是 4 这个结果我就想不通了
还有时候的程序可以写成这样:
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
int n;
if (n==0)
;
while(n++<=2)
;
printf("%d",n);
system("pause");
return 0;
}
我的理解是:当n=0时 什么都不执行 当我就想不通 n的初值是多少呢????结果怎么会是4呢???
if n=0;
while(n++<=2); printf("%d",n); A) 2 B) 3C) 4 D)有语法错
这个题目的答案是C为什么啊。
这题有语法错误啊 !!
if后面是什么??
不错 这个一定是有语病的 if 后面应该是个条件判断 可以改为 n==0
要是是n==0的话 就是他们那样说的:第一次 其实我都不知道n的初值是多少 要是是1的话 就是开始为1 但执行一次后 自加为2
第2次 n=2 满足条件 然后自加为3 这个时候再去判断 (n++<=2)时 就不满足条件了 就不再执行后面的空语句 但n++还是要执行的 所以 n自加为4
所以 答案是4
但哪个可以告诉我n的初值是多少?????
或许你可以把它写成这样:
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
int n;
if (n==0);
printf("%d\n",n);
while(n++<=2);
printf("%d",n);
system("pause");
return 0;
}
这样就可以判断它的初值了(或许不是吧 我也不知道算不算是)
运行结果是:
int main(void)
{
int n=0;
//printf("input n:");
//scanf("%d",&n);
if (n==0);
printf("%d\n",n);
while(n++<=2);
printf("%d",n);
system("pause");
return 0;
}
的话 又能怎么想呢???
他的初值又成了0(为0 应该是情理之中) 但为什么上面的就是2呢???