8. ******执行下列程序段后,a的值是 . int a,b,c,m=10,n=9; a=(--m==n++)?--m:++n; A) 11 B) 10 C) 9 D)答案是D,不过我认为是C,为什么?

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/17 23:48:54
8. ******执行下列程序段后,a的值是 . int a,b,c,m=10,n=9; a=(--m==n++)?--m:++n; A) 11 B) 10 C) 9 D)答案是D,不过我认为是C,为什么?
xRN@~.CwT)DEW^Ьl&"V*ȅ[V_fxg cb╱I'g94Șu5~xJ;lXPyp ]j7(xs@t.eZX/dDBa5H8sd^#Ap!1I^HlX߹'K6 E%v2Ku ^|6*5^[SnSSAd?i9(M9อO|zgj X9]*!گUH8#.ѱ, PA/!^O=|JyĢfB#޾{>?u7?TB8 Ah7MYwgC5Fձ1y[ё~QU4lԚ}qwtޤEKhP%7Z

8. ******执行下列程序段后,a的值是 . int a,b,c,m=10,n=9; a=(--m==n++)?--m:++n; A) 11 B) 10 C) 9 D)答案是D,不过我认为是C,为什么?
8. ******执行下列程序段后,a的值是 . int a,b,c,m=10,n=9; a=(--m==n++)?--m:++n; A) 11 B) 10 C) 9 D)
答案是D,不过我认为是C,为什么?

8. ******执行下列程序段后,a的值是 . int a,b,c,m=10,n=9; a=(--m==n++)?--m:++n; A) 11 B) 10 C) 9 D)答案是D,不过我认为是C,为什么?
你的D)没有内容,如果D)的内容是8的话那应该是D).
因为条件句--m==n++中--m是前增1符,要先计算,即m=m-1=10-1=9;而n++是后增1符,要在表达式计算后才增1,所以n=9不变.这样表达式--m==n++就是9=9为真.那么?语句就要将紧跟在?后的表达式的计算结果赋给a而不理会:后的表达式;本题中紧跟在?后的表达式是--m,即要做m=m-1=9-1=8,即要把8赋给a,所以答案D)正确.