C语言题目 1.下面程序的运行结果是( )

2024-12-16 17:58:03
推荐回答(5个)
回答1:

其中有不少小的错误,作为程序它是不能运行的。

#include
int main( )
{ int y=2,a=1;
while(y--!=-1)
{ do{a *=y; a++;} while(y--); }
printf("%d,%d",a,y);
return 0;
}

运行后的输出是:

1,-2

分析运行过程:

y=2,a=1;

判断,为真,y变为1

进入do循环:

a=1*1=1; a++变为2

内循环判断y--为真,y变为0;

再次内循环:

a=2*0=0; a++变为1

内循环判断y--为假,y变为-1;

外循环判断为假,y变为-2;

所以,最后的输出是1,-2

回答2:

C语言中 -1<=i<1 这样的语句是无法达到你要的效果的,对于这个句子,C语言是这样处理的: (-1<=i)<1 (1) 这样的话,-1<=i为真,所以这个表达式的值为1,也就是说(1)这个表达式等价于(1<1)然后这个式子为假,所以不会进入该循环,所以i没有发生变化,也不会输出i,所以答案为-1 如果for循环写成这样:for (a=1,i=-1;-1<=i&&i<1;i++) 那么题主你的答案就对了。

回答3:

#include
int main(void)

     int y=2,a=1;
     while(y--!=-1)
   { 
    do{a*=y; a++;} 
    while(y--); 
    }

printf("%d,%d",a,y);
 system("pause");
return 0;
}

回答4:

回答5:

运行结果是:1,-2