设有语句int a=3,执行语句a+=a-=a*a后,变量a的值是多少啊?

答案怎么是-12?没想通,请教一下高手,谢了哈!

执行该语句的结果为-12,没有错误。注意赋值运算符的顺序为自右到左。

计算过程如下:

首先执行a*a=9,然后a-=9=(a=a-9)=-6,执行后a=-6,然后执行a+=a=(a=a+a)=-12。所以说正确答案是-12。

扩展资料:

C语言主要特点

C语言是一种结构化语言,它有着清晰的层次,可按照模块的方式对程序进行编写,十分有利于程序的调试,且c语言的处理和表现能力都非常的强大,依靠非常全面的运算符和多样的数据类型。

简洁的语言

C语言包含的各种控制语句仅有9种,关键字也只有32 个,程序的编写要求不严格且以小写字母为主,对许多不必要的部分进行了精简。

实际上,语句构成与硬件有关联的较少,且C语言本身不提供与硬件相关的输入输出、文件管理等功能,如需此类功能,需要通过配合编译系统所支持的各类库进行编程,故c语言拥有非常简洁的编译系统。

具有结构化的控制语句

C语言是一种结构化的语言,提供的控制语句具有结构化特征,如for语句、if⋯else语句和switch语句等。可以用于实现函数的逻辑控制,方便面向过程的程序设计。

丰富的数据类型

C语言包含的数据类型广泛,不仅包含有传统的字符型、整型、浮点型、数组类型等数据类型,还具有其他编程语言所不具备的数据类型,其中以指针类型数据使用最为灵活,可以通过编程对各种数据结构进行计算。

丰富的运算符

C语言包含34个运算符,它将赋值、括号等均是作运算符来操作,使C程序的表达式类型和运算符类型均非常丰富。

赋值运算符

用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)和复合位运算赋值(&=,|=,^=,>>=,<<=)三类共十一种。

条件运算符

这是一个三目运算符,用于条件求值(?:)。

逗号运算符

用于把若干表达式组合成一个表达式(,)。

指针运算符

用于取内容(*)和取地址(&)二种运算。

求字节数运算符

用于计算数据类型所占的字节数(sizeof)。

C语言运算符号指的是运算符号。C语言中的符号分为10类:算术运算符、关系运算符、逻辑运算符、位操作运算符、赋值运算符、条件运算符、逗号运算符、指针运算符、求字节数运算符和特殊运算符。

参考资料来源:百度百科-C语言的赋值运算符

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

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-01-02

从右往左左运算,a*a=36,执行语句a=a-36,得到值-30,然后执行语句a=a-30,得到值-60。

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

int a=3;

a+=a-=a*a;

相当于:

a-=a*a;

a+=a;

然后相当于:

a=a-a*a;

a=a+a;

由于a初始化为3:

a=a-a*a=3-3*3=-6;

a=a+a=-6+(-6)==-12;

所以最后结果就是-12

扩展资料:

例如

int a,b,c; (a,b,c为整型变量)

long x,y; (x,y为长整型变量)

unsigned p,q; (p,q为无符号整型变量)

定义整型变量的格式是

整数类型 1个变量名或用逗号隔开的多个变量名

类似地,还可以定义 unsigned int 、 unsigned long 型的变量。

定义一个变量,意味着在内存中给这个变量分配了相应大小的存储空间,同时确定了这个变量值的存储方式和可以进行的操作。

参考资料来源:百度百科-整型变量

本回答被网友采纳
第2个回答  推荐于2016-11-07
按运算符优先级规格,a+=a-=a*a可从右往左拆解如下:
1. a*a,即3*3=9,此时a还是等于3;
2. a-=9,即a=a-9,也就是a=3-9=-6,此时a等于-6;
3. a+=-6,即a=a+(-6),也就是a=(-6)+(-6)=-12本回答被提问者采纳
第3个回答  2019-06-10
第一条语句定义a为整型的数据3;
第二条语句的运算顺序是从右向左!有:
先将a减a乘a付给a,由于开始时a为3,则a暂时为-6;
(注意:这时的a为-6。因为:在计算机内存中,a只占一段存储空
间。所以,只要一旦a的值在前面的运算中有所改变;那么,后面的
运算中应该用已改变的值。)
再由a加a付给a,而现在的a为-6。
那么最终a的值为-12。
第4个回答  2019-12-08
-3
从右向左执行,首先执行:a=a-a*a,a初始值为3,所以a=3-3*3=-6;
然后执行左边的a+=-6,这时第一个a还是初始值-3,所以a=a-6=3-6=-3。