c语言表达式7 3,C语言: 1、表达式4>3>7>8的值是?,C语言表达式问题 急

导航:网站首页 >

C语言: 1、表达式4>3>7>8的值是?,C语言表达式问题 急

C语言: 1、表达式4>3>7>8的值是?,C语言表达式问题 急

匿名网友:

#include #include int main(){int y=1 + 4 / 5 + 5 printf("y=%d\n", y);return 0;}/*运行结果:y=1首先你要知道:c语言 运算符优先级别 和 运算符的结合方向 的知识。

int y=1 + 4 / 5 + 5 1.根据运算符的优先级别我们知道此时最高所以先运算 8, 10 又由于此时括号里面又是个逗号表达式根据逗号所以括号内的值是10 也就是逗号表达式中的最右边的值得:int y=1 + 4 / 5 + 5 2.根据运算符的优先级别我们知道此时 / 和 % 最高 那么怎么办? 先运算那个? 这个时候结合方向就派上用场了,根据它们的结合方向为“从左至右”得知先运算它们两左边那个。

得:int y=1 + 0 + 5 int y=1 + 0 + 5 3.根据运算符的优先级别我们知道此时+运算符号先运算 注意此时表达式中+那么多 先运算那个? 这个和上面同理,根据+运算符的结合方向为“从左至右”得知先运算它们最左边那个 以此类推···。

得:int y=1 + 5 4.此时计算1+5得int y=6 5.计算11+10得int y=6 最后:y=1;总结:其实就一个知识:运算符的优先级,结合方向。

运算符的优先级:通俗理解就是决定一个表达式中哪个先运算的根据!结合方向:就是在一个表达式中出现了 多个同样优先级别的运算符哪个先运算的事情。

例如第2步中的/ 和% 最后的+ 也是。

其实和小学数学一样。

^_^*/

匿名网友:

问题一:b+c/2值为6,是因为c/2中c和2都是整型所以得到的值也为整型,这个值是2整型要舍掉小数部分,在加上值为4的b,最后就等于6了。

问题二:int a=0,b=2,c=3;a&&b++&&++c值为0,b值为2,c为3。

是因为逻辑“&&”表示关系与,所以当a等于0时,就已经知道了整个表达式的值为0,因此不必再计算后面的子表达式的值了,所以a&&b++&&++c值为0,b值为2,c为3。

int a=1,b=0,c=3;a&&b++&&++c值为0,b值是1,c值是3。

其实跟上面差不多的因为a为1,还不知道整个表达式的值,要继续计算,当计算到b++时,由于b++是先引用值再将加1,所以b为0去当&&得左表达式因为&&是“副作用”点,++被执行,b就变成1,知道整个表达式为0,终止计算。

所以a&&b++&&++c值为0,b值是1,c值是3。

int a=0,b=2,c=3;a||b++||++c的值是1,b值是3,c值是3。

因为逻辑“||”表示关系或,a为0,不知道整个表达式的值,需要继续计算,当计算到b当||左表达式因为是“副作用”点,++被执行,b变成3,知道了整个表达式值为1,终止计算。

所以a||b++||++c的值是1,b值是3,c值是3。

最后一个自己想想吧。

匿名网友:

1L用1/i明显是错的,因为当i>1的时候1/i是等于0的,应该改为1.0/i,而且他没有考虑正负问题2L没有用函数形式表示,而且他所谓的更改符号貌似无法起到作用吧3L犯的错误和1L差不多,1/(i+1)是等于0的#include "stdio.h"double fun(int n){double sum=0;float flag=1;//正负符号,且直接用float类型,不会出现1/i等于0的情况int i;for (i=1;i{sum+=flag/i;flag*=-1;//正负交替}return sum;}int main(){int n;printf("input n:");scanf("%d",&n);double sum=fun(n);printf("S(%d)=%lf\n",n,sum);return 0;}

问题推荐

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值