C语言求值,谢谢

C语言求值,谢谢第8题,谢谢,在线等

3>-4,a>b为真,!(a>b)为假,值为0。-4≠5,b!=c,值为1。0+1=1
3+(-4)=-1≠0,a+b为真。-4-5=-9≠0,b-c为真,(a+b)&&(b-c)的值为1
1||1,值为1,因此结果是1追问

为什么先算后面的且,不先算或呢?

a不等于0,a就为真吗

追答

请重新描述你的追问,看不出你的追问和本题有什么关联。

追问

是优先级?

为什么a+b为真,不为0就为真吗?

追答

+的优先级高于&&,&&的优先级高于||,因此不存在你所说的先算①式。
优先级也是C语言最基础的知识,请自行查阅相关内容。

追问

额,搞忘记了

追答

+的优先级高于&&,&&的优先级高于||

追问

那为啥a+b为真

追答

a+b等价于(a+b)!=0,只要a+b的值不为0,a+b就为真。
同理,b-c等价于(b-c)!=0,只要b-c的值不为0,b-c就为真。
建议先看书,再做题。不要什么基础知识都不具备去硬做题,效率不高而且效果很差。

追问

谢谢,这是昨天的模拟考试题,快期末了,我还啥也不会

温馨提示:内容为网友见解,仅供参考
第1个回答  2017-12-21
!(a>b)+(b!=c)||(a+b)&&(b-c)
a=3,b=-4,c=5;
//分析如下
/*
!(a>b)的值为0,(b!=c)为真,值为1,而+的优先级比||、&&都要高,因此是
0+1 || (a+b)&&(b-c) ====> 1 || (a+b)&&(b-c)
||的特点是一真为真,所以(a+b)&&(b-c)无论结果是真还是假,整个表达式的值都为真,故最后的结果是1。
*/

C语言求值,谢谢
3>-4,a>b为真,!(a>b)为假,值为0。-4≠5,b!=c,值为1。0+1=1 3+(-4)=-1≠0,a+b为真。-4-5=-9≠0,b-c为真,(a+b)&&(b-c)的值为1 1||1,值为1,因此结果是1

c语言求值,在线等,麻烦大家把过程也写上,谢谢!
x+a%3*(int)(x+y)%2\\4 \/\/除法是\/ =2.5+7%3*(int)(7+4.7)%2\/4 \/\/7对3取余结果为1 =2.5+1*(int)11.7%2\/4 \/\/对11.7强制转为int为11 =2.5+1*11%2\/4 \/\/11对2取余为1 =2.5+1\/4 \/\/整型常量1\/4结果为0 =2.5+0 =2.5 \/\/最终赋给整型数...

C语言求值
void main(){ int i,n,m=1;scanf("%d",&n);for(i=1;i<=n;i++)m*=n;printf("%d",m);} 数小行 大了你就得换类型了

C语言求值
void main() { int a=1,b;for(b=1;b<=10;b++){ \/ 当a>=8的时候跳出循环 当a是奇数的时候a=a+5,并执行下一循环 当a是偶数的时候,a=a-3;b 1 a是奇数a=a+5=6 2 a是偶数a=a-3=3 3 a是奇数a=a+5=8 4 a>=8跳出 \/ if(a>=8)break;if(a%2==1){ a+=5;contin...

c语言 求值
include<stdio.h> void main(){ long i,p,s;for(i=1,s=0,p=1;i<=10;i++){ p=p*i;s=s+p;} printf("%ld\\n",s);} 注意* 变量的数据类型(即i,p,s)应为长整型,否则计算到10!会溢出。编写时注意变量的定义和变量的输出 (输出时%之前有一个l,用来代表长整形)...

C语言求值
for(x=2;x<=102;x=x+2){ i=(x\/2)%2;if(i==0)s=s-x;else s=s+x;} printf("%d",s);} for(x=2;x<=102;x=x+2)for(i=1; ;i++;)\/*原本这里你是希望执行完一个i之后就继续执行 for(x=2;x<=102;x=x+2)里的下一个循环吧,可是事实是这里会 一直执行for(i=1; ...

...用C语言编个完整的程序求表达式的值,例如3*(7-2)。很急!!!谢谢了
define TRUE 1 define FALSE 0 define LEN 10\/\/输入数字不得超过10位 define MAXSIZE 40\/\/数字和运算符总个数不得超过40个 typedef struct { char data[MAXSIZE][LEN];\/\/栈区为二维数组 int top;}seqstack;seqstack *initseqstack();void push(seqstack *s, char *x);char *pop(seqstack *...

C语言程序求值
include "stdio.h"void main(){ int a;float s,b=1;for(a=1;a<=7;a++){ b\/=a;s+=b;} printf("%1.5f",s);}

c语言求值
include <stdio.h> void main (){ float x=2.5;int y=4,a=7;printf("%f\\n",x+a%3*(int)(x+y)%2\/4);} 运行结果:2.500000 你可以直接写成:2.5

c语言 表达式求值
{ char str[20][201],*p0,*p1;int t,i,s,f,loop;scanf("%d",&t); if ( t>20 ) t=20;for ( i=0;i<t;i++ ) scanf("%s",str[i]);for ( i=0;i<t;i++ ){ p0=p1=str[i]; s=0; f=1; loop=1;while ( loop ){ while ( (*p1)>='0' && (*p1)<='9' ...

相似回答