C语言 main() { int a=9; a+=a-=a+a; printf(“%d尀n”,a); }得多少?为什么?

2024-11-27 19:42:28
推荐回答(4个)
回答(1):

1、C语言 main() { int a=9; a+=a-=a+a; printf(“%d\n”,a); }最后结果就是-18;

2、赋值语句,从右到左依次运行:那么:int a=9;a+=a-=a+a;

3、相当于:a-=a+a;a+=a;然后相当于:a=a-(a+a);a=a+a;

4、由于a初始化为9:a=a-(a+a)=-a=-9;a=a+a=-9+(-9)==-18;所以最后结果就是-18。

5、a+=(a-=a+a) 首先计算a-=a+a,因为赋值运算符的优先级小于算术运算符故先算a+a;

6、 得出a-=18;此刻a的值还是9,计算a-=18得出a=-9;

7、a+=-9,计算得出a=a+(-9) a=(-9)+(-9) 所以最后a=-18。

扩展资料:

C语言基本特性

1、高级语言:它是把高级语言的基本结构和语句与低级语言的实用性结合起来的工作单元。 [11] 

2、结构式语言:结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。

3、代码级别的跨平台:由于标准的存在,使得几乎同样的C代码可用于多种操作系统,如Windows、DOS、UNIX等等;

4、使用指针:可以直接进行靠近硬件的操作,但是C的指针操作不做保护,也给它带来了很多不安全的因素。

5、C++在这方面做了改进,在保留了指针操作的同时又增强了安全性,受到了一些用户的支持,

参考资料来源:百度百科:C语言

回答(2):

赋值语句,从右到左依次运行:

那么:

int a=9;

a+=a-=a+a;

相当于:

a-=a+a;

a+=a;

然后相当于:

a=a-(a+a);

a=a+a;

由于a初始化为9:

a=a-(a+a)=-a=-9;

a=a+a=-9+(-9)==-18;

所以最后结果就是-18

 

回答(3):

a+=(a-=a+a) 首先计算a-=a+a,因为赋值运算符的优先级小于算术运算符故先算a+a 得出a-=18;此刻a的值还是9,计算a-=18得出a=-9;a+=-9,计算得出a=a+(-9) a=(-9)+(-9) 所以最后a=-18.

回答(4):

第一步:a + a = 18;
第二步:a - = 18---> a = a - 18,此时a = 9 ,计算结果: -9;
第三步:a += -9 --> a = a+ (-9),因a= - 9,故结果: -18。

最后结果:-18.