c语言,题目如图

c语言,题目如图为什么这个k的结果是-1... c语言,题目如图为什么这个k的结果是-1 展开
 我来答
百I度网友AQnlQ
2019-03-08 · TA获得超过143个赞
知道小有建树答主
回答量:188
采纳率:37%
帮助的人:14.5万
展开全部
此应该是为了说明算式k- -,特意设计的一道题目。在C语言中,算式k- -单独使用时,表示k值减1,即k=k-1。而对于将算式k- -做为参数代入到其它语句,当被代入的语句在执行时,是先使用未曾减1的k值来执行操作,在被代入语句执行完成后,再将k值减1。
所以在本题目中,whiⅠe(k- -)表示在k非0吋,继续执行whiⅠe,且k=k-1; 而k为0时,结束while操作,且依然会执行一次k=k-1,因此k= -1。
xuzhouliuying
高粉答主

2019-03-08 · 繁杂信息太多,你要学会辨别
知道顶级答主
回答量:5.4万
采纳率:86%
帮助的人:2.5亿
展开全部
while(k--);
循环语句最后有分号,只要满足循环条件,就一直循环。直到不满足循环条件,才退出循环,执行后面的printf语句(即printf语句只有在前面的循环结束后,执行一次)。
判断条件为k--,即判断k是否等于0,等于0时退出循环,否则一直进行循环。每次判断之后k自减1。
因此一直循环到k=0时,不满足循环条件,退出循环,k自减1,k的值变为-1
执行printf语句,输出k的值,输出-1。
while(k--);注意与while(k--)进行区分,最后带不带分号,两者是不同的。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
左冷禅2014
2019-03-07 · TA获得超过210个赞
知道小有建树答主
回答量:249
采纳率:71%
帮助的人:55.9万
展开全部

这需要理解后部--操作的原理,如果使用C语言的函数来实现,等价于代码实现:

int k = 1;
int decrement() {
    int tmp = k;
    k= k- 1;
    return tmp;
}
while (decrement()) ;
println("%d = k", k);

当tmp==0的时候就会退出while循环,这个时候的k其实是-1

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2019-03-07
展开全部
k- -会先完成其他运算后再自减1,k一开始等于1,它会先进行while的判断再自减1,也就是先while(1),然后k=k-1=0,然后进行下一次循环,也就是while(0),while循环跳出,k=k-1=-1
这是跟- -k作出区别,- -k会先完成自减,再进行其他运算,如果是- -k,那k就等于0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
风见云夜
2019-03-07
知道答主
回答量:8
采纳率:0%
帮助的人:6328
展开全部
在while循环中第一次循环k先用后减判定为真执行循环此时k=0
第二次循环k先用后减判定为假结束循环,这是k再次减一
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lhy781105
2019-03-07 · TA获得超过116个赞
知道答主
回答量:102
采纳率:0%
帮助的人:30.2万
展开全部
先判断 i=0,括号里i=0-1 ,跳出循环 i=-1了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
爱网球的PPT
2019-03-07 · TA获得超过207个赞
知道小有建树答主
回答量:707
采纳率:47%
帮助的人:204万
展开全部
因为k=0退出循环后,它还做了次自减。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(12)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式