逗号表达式优质

编辑:周舟 | 时间:2019-02-21 10:43:39
来源:互联网
正文
编辑推荐

概括:这道题是糜浪汹同学的课后数学练习题,主要是关于逗号表达式,指导老师为弘老师。c语言提供一种特殊的运算符,逗号运算符,优先级别最低,它将两个及其以上的式子联接起来,从左往右逐个计算表达式,整个表达式的值为最后一个表达式的值。如:(3+5,6+8)称为逗号表达式,其求解过程先表达式1,后表达式2,整个表达式值是表达式2的值,如:(3+5,6+8)的值是14,a=(a=3*5,a*4)的值是60,而(a=3*5,a*4)的值是60, a的值在逗号表达式里一直是15,最后被逗号表达式赋值为60,a的值最终为60。

题目:逗号表达式

解:

逗号表达式,其求解过程先表达式1,后表达式2,整个表达式值是表达式2的值,如:(3+5,6+8)的值是14

a = 3*5;是把15赋值给a变量;

相当于(15*4,15+15)根据逗号表达式原则:所以该题的值应该是30.

举一反三

例1: 跪求C语言中逗号表达式(a=4*5,a*2),a+15的值是逗号表达式(a=4*5,a*2),a+15的值是____一点点解析,


思路提示:

逗号 表达式,按顺序一个一个执行,然后把最后一个语句,当做整个逗号表达式的最后结果,

先执行a=4*5=20,然后执行a*20=40当做整个表达式的结果,但这个结果并不赋给 a,因为没有赋值给a,所以a还是20,最后求 a+15的值,=35

例2: 【逗号表达式a=2*6,a*3,a+5的值为麻烦过程讲的清楚些,我只是个初学者,谢谢】[数学练习题]


思路提示:

逗号表达式 a=2*6,a*3,a+5 的值:

int a;

int s;

s = (a=2*6,a*3,a+5);

右边小括号里的是逗号表达式,它分成3个表达式:

(1)a=2*6,

(2)a*3,

(3)a+5

计算顺序是 (1) (2) (3); 算毕,把 (3) “最后一个表达式的结果” 作为 “逗号表达式 的 结果” 给出.

(1) 式,叫“赋值表达式” -- C 语言的叫法!算得 a=12

(2) 式,表达式 的 结果 是 a*3 ,a 的当前值 是 12 ,表达式 的 结果 是 36,a自身值 是 12没变

(3)式,表达式 的 结果 是 a+5,上一步说了,a自身值 是 12没变,所以这里 a+5 = 12 + 5 = 17

“最后一个表达式的结果” 作为 “逗号表达式 的 结果” 给出 ,最终给出 17

printf("%d ",s); 打印出 17.

例3: 【逗号表达式“(a=3*5,a*4),a+5”的值】


思路提示:

如果a的值等于15,那么将a*4;如果不等,那么将a+5

例4: 【逗号表达式"a=5,a++,a*3"的值是?】


思路提示:

a=5

a++ => a=6

a*3=6*3=18

结果:18

例5: 逗号表达式,"(a=3*5,a*4),a+15"结果是多少?[数学练习题]


思路提示:

逗号的优先级比赋值运算符低,所以先运算a的值是15,再运算a*4,最后运算a+15,整个表达式的值是a+15,应该是30.

相关思考练习题:

题1:C++高手请进 逗号表达式(x = 4 * 5, x * 5), x + 2...

点拨:你是不是觉得X*5后X应该等于100啊???? 先把程序看清楚 你的表达式都没有赋值,我给一个相同格式的表达式吧(注意这里的ABCD代表的是表达式) D=((A,B),C)这里的D你没有给出,A就是你的x = 4 * 5,B就是你的x * 5,C就是你的 x + 25 记住,...

题2:C语言中逗号运算符怎么用?

点拨:2楼说的很详细了 ,逗号运算符的作用是将若干表达式连接起来。它的优先级别在所有运算符中是最低的,结合方向是"自左至右"的。其值是最后一个表达式的,其间所有的都要计算,你所说的 a=12+(s+2,d+4); 先算s+2.的4,然后算d+4,最后逗号表达是式的值...

题3:java 支持"逗号表达式" ?

点拨:java里的逗号只有一个用处,分隔表达式,没有c/c++里返回列表最后一个逗号之后的值的作用 比如分隔变量声明:int a = 1, b =2; for里边对多个表达式求值:for( int i = 0; ; ++i, --j );

题4:在c语言的运算中,逗号表达式 a=3*5,a*4,a+5的值...

点拨:先算a=3*5,a的值为15,然后算15*4,值为60(注意这步a的值不变),最后算15+5,值为20,作为整个逗号表达式的值。因此是20

题5:C语言逗号表达式(a=3*5,a*4,a+5)的值是多少?

点拨:逗号表达式的值是最右边表达式的值 a=3*5 赋值给a=15 a*4 这个表达式的值被丢弃 a+5 是逗号表达式的返回值 15+5 =20 逗号表达式的值是20

查看全部
收到6607个赞