你好
1程序的运行结果是:1,-2
2解释每一步的运行过程:
#include <stdioh>
void main()
{
int y, a ;
y=2, a=1;
while (y--!=-1)
{
do{
a=y ;
a++ ;
} while(y--);
}
printf("%d,%d\n",a,y);
}
从y=2,a=1开始哈
(首先我们要知道后自减y--型的返回值是y自减前的值 例如y=2 y--就返回2)
进入while循环
y--返回2 不等于-1 (此时y=1)
于是循环继续进入do while循环
执行a=y;a++后
a=2 y=1
y--返回1 是非零 于是do while循环继续进行 (此时y=0)
执行a=y;a++后
a=1 y=0
y--返回0 于是do while循环终止 (此时y=-1)
再判断while的循环条件: y--返回-1 于是while循环终止 此时y=-2
(讲的比较多 希望楼主能理解了)
输入2时,输出66
输入3时,输出77
输入4时,输出8
输入5时,输出88
输入6时,输出9
输入其他数字或字母时,无输出,键入<ENTER>时,结束程序。
/
23456
66778889
Press any key to continue
/
改下程序 #include <stdioh>
int main()
{
int k=0;
char c='A';
do
{
switch(c++)
{
case 'A': k++; printf("k={%d}\n", k); break;
case 'B': k--; printf("k=[%d]\n", k);
case 'C': k+=2; printf("k={%d}\n", k); break;
case 'D': k=k%2; printf("k=[%d]\n", k);continue;
case 'E': k=k10; printf("k={%d}\n", k); break;
default: k=k/3; printf("k=[%d]\n", k);
}
k++; printf("k=(%d)\t", k);
}while(c<'G');
printf("k=%d\n", k);
}
编译下 看输出
先执行 switch 语句 k++; k=1;
在执行 下面的k++ ; k=2;
然后回到switch k-- ; k=1;
由于没有 break; 忽略了 case 标号 继续 k=3;
执行下面的语句 k++ ; k=4;
在执行 语句 k+=2; k=6;
执行下面的语句 k++; k=7;
执行语句 k%=2; k=1;
由于是 continue; 语句 中断后继续执行
k=10; k=10;
执行下面的语句k++ ; k=11;
执行语句 k/=3; 隐式类型转换 先提升为double k=3666 后又转为int k=3;
执行 k++; k=4;
所以答案为4;
以上就是关于c语言中,下面程序的运行结果是全部的内容,包括:c语言中,下面程序的运行结果是、c语言中,下面程序运行的结果是什么、下面程序的运行结果是什么为什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)