问一道C语言的问题。请高手解答!

2025-02-25 09:33:16
推荐回答(5个)
回答1:

首先While(--k)这里,括号里的是--k的返回值,--在k的前面是先k减掉1再返回结果,因此运行到这里k为4,括号中的值为4,大于0应该是true,所以需要执行循环里的内容。
下面是printf这个函数,首先要先计算出printf的参数的值,也就是k-=3的值,那么这个表达式实际上就是k先减去3,再返回减掉以后的k的值,那么应该是1,于是输出也就是1
所以答案应该是A
本题主要考点就是--k,k--之类和k-=3之类的返回值和操作后k的值的关系。(这里可以把语句当作函数来理解,因此有返回值一说)

回答2:

答案:A)1

第一次while条件判断前,k就先自减1,所以是判断条件时 k=4 ,条件为真(非0为真),进入循环体

然后printf输出时,k又自减3,所以 k=1,输出1

然后第二次while条件判断前,k又先自减1,所以是判断条件时 k=0 ,条件为假(0为假),所以结束循环

回答3:

应该是A

while(--k) printf("%d",k-=3);

--k先自减,k变成4,printf("%d",k-=3); 里面表达式先求值,k变成1,输出1,然后再--k先自减,k变成0,判断while(0),结果跳出循环。

唉,我生平最讨厌这种题……

回答4:

答案:A
解释:
k
初始 5
--k 4 //进入第一轮循环
k-=3 1 //程序打印出1
--k 0 //while的条件为0,即false,跳出循环,程序结束。

回答5:

A吧

第一次执行循环
k-=3
k=4-3=1

第二次
--K先执行 K=0
while(0)退出吧

我也不知道,没测试..顺嘴胡说的,嘿嘿