问题 单项选择题

有以下程序:
main()
{int X,Y,Z;
x=y=1:
Z=X++,Y++,++Y;
printf(“%d,%d,%d\n”,X,Y,Z);

程序运行后的输出结果是( )。

A) 2,3,3
B) 2,3,2
C) 2,3,1
D) 2,2,1

答案

参考答案:C

解析: 本题主要考查的知识点是运算符的优先级和结合性。解本题的关键在于表达式Z=x++、V++、++Y的计算,其中有三种运算符“=”、“,”和“++”,它们的优先级从高到低依次是“++”、“=”和“,”,所以原表达式就相当于(Z=(X++)),(Y++),(++Y)。自增运算符“++”是单目运算符,即它只对一个运算分量起作用,根据其在运算分量的前面或后面分为前缀和后缀两种形式。两种形式的作用效果是一样的,都是使运算分量的值加1,但是它们的表达式的值不一样,前缀形式表达式的值为运算分量加1之后的值,后缀形式表达式的值为运算分量加1之前的值。

问答题 简答题
单项选择题