问2道C语言程序题,谢谢~~我要过程思路,谢谢

来源:百度知道 编辑:UC知道 时间:2024/06/22 20:48:45
{int i;
for(i=1;i<=5;i++)
switch(i%5)
{case0:printf("*");break;
case1:printf("#"):break;
default:printf("\n");
case2:printf("&");
}
}
<#&
&
&*

*>

{int i, b,k=0;
for(i=1;i<=5;i++)
{b=i%2;
while(b-->=0)k++;
}
printf("%d,%d",k,b);
}
<8 -2>
答案一个是 第二个是8,-2
#&
&
&*

*

第一个,走一遍
i==1,进case 1,输出#,break;
i==2,进case 2,输出&;
i==3,进default,输出换行,没有break,往下执行,输出&
i==4,进default,输出换行,没有break,往下执行,输出&
i==5,进case 0,输出*,break;
结果:
#&
&
&*
第二题,k的值是8很容易算出来,最后一次循环,i==5,b==1,
while循环,判断b--,值为1,b变为0,k++,判断b--,值为0,b变为-1,k++,判断b--,值为-1,b变为-2,出循环