C语言,求过程
15.执行以下程序后,输出的结果是()。main(){inty=10;do{y--;}while(--y);printf("%d\n",y--);}(A)-1(B)1(C...
15. 执行以下程序后,输出的结果是( )。
main ()
{ int y=10;
do { y - -;} while(- - y);
printf("%d\n",y - -);}
(A) -1 (B) 1 (C) 8 (D) 0 展开
main ()
{ int y=10;
do { y - -;} while(- - y);
printf("%d\n",y - -);}
(A) -1 (B) 1 (C) 8 (D) 0 展开
展开全部
答案选D,即输出 0。
分析:
这题有两个自减运算符,一个是前缀,一个是后缀。
后缀,y--,是先使用 y 的值,再 -1。
前缀,--y,是先 -1,再使用 y 的值。
运算过程(y 初始为 10):
do{y--;}:执行 y--,此时 y = 9。
while(--y):y 先 -1,此时 y = 8,再判断 y 是否为真,此时为真。
do{y--;}:执行 y--,此时 y = 7。
while(--y):y 先 -1,此时 y = 6,再判断 y 是否为真,此时为真。
do{y--;}:执行 y--,此时 y = 5。
while(--y):y 先 -1,此时 y = 4,再判断 y 是否为真,此时为真。
do{y--;}:执行 y--,此时 y = 3。
while(--y):y 先 -1,此时 y = 2,再判断 y 是否为真,此时为真。
do{y--;}:执行 y--,此时 y = 1。
while(--y):y 先 -1,此时 y = 0,再判断 y 是否为真,此时为假。
退出循环,执行 printf 语句,先输出 y 的值,即先输出 0,y 再 -1,此时 y = -1。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询