b=(++a)+(++a)+(++a)怎么运算
首先要明确一点: ++a这个表达式的计算结果就是+1之后的a, 而不是a+1的结果数值
b=(++a)+(++a)+(++a)
依据从左向右的顺序, 相当于b=((++a)+(++a))+(++a)
所以它的计算过程如下(这里就是"脱括号"的过程了, a=0)
b=(a+(++a))+(++a), 第一次脱括号的结果, 这时a=1
b=(a+a)+(++a), 第二次脱括号的结果. 这时a=2
b=(2+2)+(++a),
b=4+(++a) 第三次脱括号的结果, 这时a=2
b=4+a 第四次脱括号的结果, 这时a=3
b=4+3=7
C语言是一门面向过程的计算机编程语言,与C++、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
C语言描述问题比汇编语言迅速,工作量小、可读性好,易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编语言代码生成的目标程序效率低10%~20%。因此,C语言可以编写系统软件。
扩展资料
语法结构
1、顺序结构
顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。
例如:a = 3,b = 5,现交换a,b的值,这个问题就好像交换两个杯子水,这当然要用到第三个杯子,假如第三个杯子是c,那么正确的程序为:c = a; a = b; b = c;执行结果是a = 5,b = c = 3如果改变其顺序,写成:a = b; c = a; b =c;
则执行结果就变成a = b = c = 5,不能达到预期的目的,初学者最容易犯这种错误。
顺序结构可以独立使用构成一个简单的完整程序,常见的输入、计算,输出三步曲的程序就是顺序结构,例如计算圆的面积,其程序的语句顺序就是输入圆的半径r,计算s = 3.14159*r*r,输出圆的面积s。
不过大多数情况下顺序结构都是作为程序的一部分,与其它结构一起构成一个复杂的程序,例如分支结构中的复合语句、循环结构中的循环体等。
2、选择结构
顺序结构的程序虽然能解决计算、输出等问题,但不能做判断再选择。对于要先做判断再选择的问题就要使用选择结构。选择结构的执行是依据一定的条件选择执行路径,而不是严格按照语句出现的物理顺序。
选择结构的程序设计方法的关键在于构造合适的分支条件和分析程序流程,根据不同的程序流程选择适当的选择语句。
选择结构适合于带有逻辑或关系比较等条件判断的计算,设计这类程序时往往都要先绘制其程序流程图,然后根据程序流程写出源程序,这样做把程序设计分析与语言分开,使得问题简单化,易于理解。程序流程图是根据解题分析所绘制的程序执行流程图。
参考资料来源:百度百科-c语言
可以放在程序里去运行看。
假如a的初值是1,用VC编译运算的结果 b=12,而用gcc编译则 b=10。结果与上面的分析没有相同的。
int main()
{
int a = 0;
int b;
b=(++a)+(++a)+(++a);
printf( "%d %d\n", a, b );
}
所以说这种代码没有意义。
首先要明确一点: ++a这个表达式的计算结果就是+1之后的a, 而不是a+1的结果数值
b=(++a)+(++a)+(++a)
依据从左向右的顺序, 相当于b=((++a)+(++a))+(++a)
所以它的计算过程如下(这里就是"脱括号"的过程了, a=0)
b=(a+(++a))+(++a), 第一次脱括号的结果, 这时a=1
b=(a+a)+(++a), 第二次脱括号的结果. 这时a=2
b=(2+2)+(++a),
b=4+(++a) 第三次脱括号的结果, 这时a=2
b=4+a 第四次脱括号的结果, 这时a=3
b=4+3=7
题外话:++a 在c++中是左值表达式, 但在c中不是左值表达式
( 令cosB=a/[根号(a^2+b^2)],sinB=b/[根号(a^2+b^2)] )
这是公式,往里套就行。
比如sinA+cosB=根号2[(根号2/2)*sinA+(根号2/2)*cosA]=根号2[sinAcos45`+cosAsin45`]=根号2*sin(A+45`)
直接套上面的公式也可:
[根号(a^2+b^2)]sin(A+B)=根号2*sin(A+B)
令cosB=根号2/2,sinB=根号2/2,满足这个式子的角最常见的就是45`
所以:根号2*sin(A+45`)
参考资料: 百度一下
分解式子b=x+y+z
从左到右计算,其中x=++a,先算++a,得到x=1,a=1
然后计算第二个++a时,得到y=2,a=2
最后第三个++a,得到z=3,a=3
最后将x+y+z =6,得到b的值