海之蓝衣服是名牌吗:C语言题帮忙看下

来源:百度文库 编辑:高校问答 时间:2024/05/06 17:53:12
35.下述程序段的输出结果是()
int x=10;
int y=x++;
printf(〃%d,%d〃,(x++,y),y++);

(本题分值:2分)

【正确答案】
A
A.11,10
B.11,11
C.10,10
D.10,11
答案是A晕呼呼

C,最后一个y++被省略了,因为printf()的格式符只写了两个。
其实这个题等你知道的多了,就知道它只是给新手做练习用的。因为printf(〃%d,%d〃,(x++,y),y++); 这一句在不同的编译器里可能结果不一样。最后一个y++虽然不显示,但可能要参加运算的。

我也在VC上试了是10,10
我也是新手根据我自己的理解步奏应该是这样的↓:
int x=10; //x=10
int y=x++; //y=10,因为在给y赋值的时候是先把X赋值给了y然后再做了++即y还是等于10;
printf(〃%d,%d〃,(x++,y),y++); //这里的原理就和上面是一样的了也是先打印了再做++;有说错的地方请各位大侠指点

用tc 2.0是A,
好象是(x,y)有关系,
(x,y)输出的是y的数值,
如果printf(〃%d,%d〃,(x++,y)); 输出的结果是10,2026

printf(〃%d,%d〃,(3,y),y++);输出结果是 11,10

printf(〃%d,%d〃,(x++,3),y++); 输出结果是3,10

自己去上机试试吧
可能编译环境不同,得到的结果也不同,
我在VC++试用了一下,结果是10,10
答案是C

答案是C! y++与++y的不同