c语言大神求教!!五题和六题,多谢了?!!

2025-05-20 06:13:43
推荐回答(5个)
回答(1):

是18和1,你这不是做对了么

回答(2):

第5题

k=1*(163%10)=3;%是求余数
n=163/10=16;/是除
while(16);16不为0则是真,再执行循环体,
k=3*(16%10)=18;
n=16/10=1;
while(1);为真,再执行循环体
k=18*(1%10)=18;
n=1/10=0;
while(0);为假,不执行
结束
结果为18
第六题
y=10
y--;y=9;
while(--y);就是while(8);为真继续
y--;y=7;
while(6);
y--;y=5;
while(4);
y--;y=3;
while(2);
y--;y=1;
while(0);为假结束,此时y=0;
++y;printf 1

回答(3):

k=k*(n%10) ( %取余数)
n=n\10 (int 除的结果为整数 )
一次 k=1*(163%10)=3 n=16 判定 while(16)为真
二次 k=3*(16%10)=18 n=1 判定
三次 k=18*(1%10)=18 n=1 判定 while(0)为假结束运算

第二个是 --y y--的区别
--y 先自减 在使用 y--先使用 再自减
当while(0)才能为假输出 printf(“%d\N”,++y)
++y同理 输出的就是1

回答(4):

教你一题有何用?既然有学习的心,就应该下个VS, 自己敲敲代码,调试观察每一步值的变化和操作,跑一遍就全明白了。

回答(5):

第五题:
k=1*(163%10)=3;%是求余数
n=163/10=16;/是除
while(16);16不为0则是真,再执行循环体,
k=3*(16%10)=18;
n=16/10=1;
while(1);为真,再执行循环体
k=18*(1%10)=18;
n=1/10=0;
while(0);为假,不执行
结束
结果为18
以上内容是来自LYWW214 网友的。(讲的挺详细的我就不多说明了)
这边帮你解答一下他没回答的第六题吧。
首先y初始化的值为10.采用的是do...while()结构,故是先执行循环体再进行条件判断。
首先当y为10的时候,符合条件执行循环。直到--y的值等于0.则退出循环。
这一题输出的结果是++y,所以我们判断什么时候循环退出就可以了。
显然当y=1时,--y=0.这时循环退出。此时y的值为0.
在printf函数中输出的是++y,所以输出结果为1.
这里你要区分清楚++y和y++的区别。
++y先自增,后执行该行语句。y++是执行改行语句后自增。
比如printf("%d", y++);如果最后一句改成这样,输出结果就是0.
有不懂得可以继续追问哈。