![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
以下程序的输出结果是main(){ int a=21,b=11; printf('%d\n',--a+b,--b+a);} A.30 B.31 C.32 D.33
1个回答
展开全部
【答案】:A
本题主要考查逗号运算符。在本题的程序中,首先定义两个整型变量a和b,并分别赋初值为21和11,然后用输出语句对由a和b组成的表达式进行输出。输出语句的输出格式表明只输出一个数据,但在后面的输出列表中则有两个待输出的表达式。
--a+b,--b+a的运算顺序是首先运算--a+b,然后由于--和+运算符的优先级高于逗号运算符,因此,运算--b+a,最后执行逗号运算符。
运算--a+b的结果为31,但此时变量a的值变为了20,然后运算--b+a得到的结果为30,根据逗号运算符的特点,逗号运算符的结果为最后一个表达式的结果,因此,最后输出的30,本题正确的答案选A。
本题主要考查逗号运算符。在本题的程序中,首先定义两个整型变量a和b,并分别赋初值为21和11,然后用输出语句对由a和b组成的表达式进行输出。输出语句的输出格式表明只输出一个数据,但在后面的输出列表中则有两个待输出的表达式。
--a+b,--b+a的运算顺序是首先运算--a+b,然后由于--和+运算符的优先级高于逗号运算符,因此,运算--b+a,最后执行逗号运算符。
运算--a+b的结果为31,但此时变量a的值变为了20,然后运算--b+a得到的结果为30,根据逗号运算符的特点,逗号运算符的结果为最后一个表达式的结果,因此,最后输出的30,本题正确的答案选A。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询