问题 单项选择题

下列程序的执行结果是( )。
#include<stdio.h>
main()
int a,b,c;
a=b=2;
c=(a++)-1;printf("%Ad,%d",a,C) ;
c+=-a+++(++B) ;printf("%d,%d",a,C) ;

A) 3,14,1


B) 3,14,2
C) 2,04,1


D) 2,14,1

答案

参考答案:A

解析: 本题主要考查自加运算符(++、--)的使用。①前缀变量“++i,--i”,在使用i之前,先使i的值加1或者减1,再使用此时的表达式的值参与运算;②后缀变量“i++、i--”,先使用此时的表达式的值参与运算,在使用i之后,再使i的值加1或者减1。
题中计算表达式c=(a++)-1时先使用a的值进行计算,结果为c=2-1=1,然后将a的值加1,即执行完此语句后a的值是3,表达式 c+=-a+++(++B) 等价于c=c+(-a++)+(++B) ,c=1+(-3)+3=1,此时a=4,b=3。

选择题
单项选择题