int a=0,b=1;问!(a='0')&&b-- ,a+b的值并作出解释

苦命的女孩2022-10-04 11:39:541条回答

已提交,审核后显示!提交回复

共1条回复
封装阿甲 共回答了21个问题 | 采纳率81%
!(a='0')&&b-- (1)!(a='0') 结果:0 a的值为:48 (2)0&&b-- 结果:0 b的值为:1 (3)a+b = 48+1 = 49
1年前

相关推荐

int a=0;after excution of statement a=(2*3,3*4,4*5,5*6);the
int a=0;after excution of statement a=(2*3,3*4,4*5,5*6);the value of a is?
狼多肉少的世界1年前1
oyyh03201 共回答了19个问题 | 采纳率84.2%
the value of a is 30
有以下程序 int a=0,b=0,c=0,d=0; if(a=1) b=1;c=2; .
有以下程序 int a=0,b=0,c=0,d=0; if(a=1) b=1;c=2; .
有以下程序
main()
{
int a=0,b=0,c=0,d=0;
if(a=1) b=1;c=2;
else d=3;
printf(“%d,%d,%d,%dn”,a,b,c,d);
}
程序输出
A)0,1,2,0 B) 0,0,0,3 C)1,1,2,0 D)编译有错
请告诉我哪里有编译错误
hanfan3331年前1
jujuewanglian123 共回答了18个问题 | 采纳率88.9%
if(a=1) b=1;c=2;
这一行有问题
if和else之间永远只能有一条语句,而b=1;c=2;是两条语句!
c语言一条语句可以写在多行,多条语句也可以写在一行,关键是就分号,一个分号到上一个分号(或者是{,左半花括号)之间的内容都被认为是一条语句
所以想在if和else之间执行多条语句的时候,必须用花括号{},使多条语句组成一条复合语句.
如果把b=1;c=2;改为b=1,c=2;就可以编译通过了,它的结果是1,1,2,0
原因是if(a=1)是先给a赋值,然后判断a的值,非0则执行if后紧跟的语句,若为0则执行else后跟的语句,这里给a赋值为1,非0,因此执行给b,c赋值的语句,所以结果是1,1,2,0
进一步,如果把if(a=1)改为if(a=0),程序执行流程跟刚才说的一样,但是由于a值为0,因此执行else后的语句,所以最后结果会是0,0,0,3
再进一步,如果把if(a=1)改为if(a==1),那么程序执行的时候,判断a是否等于1,若等于则给bc赋值,否则给d赋值,这里a==0,因此执行else后的语句,结果跟前一种情况一样,会是0,0,0,3
若有变量说明,int a=0,b=0,v=0;,以下符合C语言语法的赋值表达式是()
若有变量说明,int a=0,b=0,v=0;,以下符合C语言语法的赋值表达式是()
A.a=9+b+c=a+9 B.a==9+b C.a=(9+b,b++) D.a=9+b+==a+7
选哪个?其他的怎么错了?
海桐花1年前1
baokailing 共回答了22个问题 | 采纳率81.8%
选C,C是逗号表达式.A中有两个赋值语句是错的,B中==是判断语句不是赋值语句
若有以下程序段:int a=0,b=0,c=0 c=(a-=a-5),(a=b,b+3); printf(“%d,%d,
若有以下程序段:int a=0,b=0,c=0 c=(a-=a-5),(a=b,b+3); printf(“%d,%d,%dn”,a,b,c);
执行后输出地结果是0,0,5,为什么前面是0,
夜穿黑衣1年前1
ghy19106 共回答了21个问题 | 采纳率90.5%
大哥题都不对.
int a=0,b=0,c=0;
c=(a-=a-5),(a=b,b+3);
printf(“%d,%d,%dn”,a,b,c);
按程序运行来讲吧.
第一句不说了...
第二句为逗号表达式.
c=(a-=a-5)
给c赋值,把a-=a-5的结果赋给c;
(a-=a-5)=(a=a-(a-5));
把a=0;代入得a=5;
进而(a-=a-5)的值为5;
c=5;
接下来执行(a=b,b+3);
这里面又有逗号表达式.
a=b;因b=0;故a=0;
b+3;不对任何变量赋值,相当于空语句;
综上所述:a=0;b=0;c=5.
论述完毕.
int a=0,b=1,c=1; if(a++==b&&++a!=b) a=b++ + ++c+1; Question:
int a=0,b=1,c=1; if(a++==b&&++a!=b) a=b++ + ++c+1; Question:执行该程序之后a的值将会是多少?
答案是a=1.
但是我想要具体的步骤.是怎么得出来的.
比如:第一步,在if的条件表达式里:a++==b,先是a==b的条件执行,后a进行自增.(请问这里哪里错了呢?a++不是先自增后赋值吗?这里虽然是==,但不是先进行a==b的判断而是先进行a的自增后进行a==b的判断?所以说==和=相对于i++和++i的运算顺序不一样?)
然后第二步等等.
wkawoaini1年前1
tdl2000 共回答了20个问题 | 采纳率80%
先判断if里的是0还是非0
a++这个式子是0,但a=1;所以a++!=b.
所以if里面为0(有&&时,只要有一个式子是0则整个为0).
所以不执行后面的a=b++ + ++c+1;
所以a=1.
void main() {int a=0,b=0,d=0;char *s="xcbc3abcd";for(;*s!=`\
void main() {int a=0,b=0,d=0;char *s="xcbc3abcd";for(;*s!=` `;s++ )
switch(*s)
{case`a`:a++;break;
case`b`:b++;break;
default:d++;
}
printf("a=%d,b=%d,d=%dn",a,b,d);
}
江南第七才子1年前1
wenfei66 共回答了20个问题 | 采纳率80%
这个程序应该是找一个字符串中'a'的个数、'b'的个数、还有剩余字符的个数.
有什么不明白的吗?
int a=0,b=1,c=0,d=20; if(a) d-=10 ;else if(b) {if(!c) d=15;e
int a=0,b=1,c=0,d=20; if(a) d-=10 ;else if(b) {if(!c) d=15;else d=25} cout
emily_ma111年前1
害羞的猪0 共回答了26个问题 | 采纳率92.3%
答案:15,大意:如果a为真(即如果a=1),输出 d=d-10=10,否则,如果b为真条件下,(!c)为真,则输出d=15,否则输出d=25
c/c++ 设有以下定义设有以下定义 int a=0;  double b=1.25; char c=’A’;
c/c++ 设有以下定义
设有以下定义
 int a=0;
 double b=1.25;
 char c=’A’;
 #define d 2
 则下面语句中错误的是( )。
 A) a++;   B) b++   C) c++;   D) d++;
syvenn1年前1
strong_lure 共回答了18个问题 | 采纳率88.9%
D是错误的,其他都是正确的

A a++ 没意思吧
B b++ 也没意思,double也可以++
C c++ c='A'就是 c=65,c++就是c=65+1==66,然后c就成'B'了

D d++; d是个宏,替换后就是2++, 这个太2了吧,常数不能++ 的