执行该语句的结果为-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语言
从右往左左运算,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 型的变量。
定义一个变量,意味着在内存中给这个变量分配了相应大小的存储空间,同时确定了这个变量值的存储方式和可以进行的操作。
参考资料来源:百度百科-整型变量
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
第二条语句的运算顺序是从右向左!有:
先将a减a乘a付给a,由于开始时a为3,则a暂时为-6;
(注意:这时的a为-6。因为:在计算机内存中,a只占一段存储空
间。所以,只要一旦a的值在前面的运算中有所改变;那么,后面的
运算中应该用已改变的值。)
再由a加a付给a,而现在的a为-6。
那么最终a的值为-12。
从右向左执行,首先执行:a=a-a*a,a初始值为3,所以a=3-3*3=-6;
然后执行左边的a+=-6,这时第一个a还是初始值-3,所以a=a-6=3-6=-3。