C语言我下面这题,我if(a)为什么输出来的是0而不是1,C语言他是怎么判断的? C语言:请问这道题为啥是输出-1,为啥不是0,不是从右向左计...

作者&投稿:保忽 (若有异议请与网页底部的电邮联系)
给你注释下,就看明白了!
#include<stdio.h>
int main(void)
{
int a; //局部变量,存储于栈
a=1;
a=0; //如果没有特别的类型(volatile),编译器会优化变量a,a会等于最后赋的值,也就是a=0;
//下面我就不解释了,肯定打印0啦
if(a)
printf("是1\n");
else
printf("是0\n");
}

你的问题::
那如果我a=2 后定义a=3
if(a)
printf(“是2”);
else
printf(“是3”);
为什么又是2了呢

这是个最基本的了,条件判断if!
a=2;
a=3;
if(a) //此时a=3,相当于if(1),条件为真,肯定打印1啦,建议看看C吧
printf("是1\n");
else
printf("是0\n");

a有两条赋值语句,第一个1被第二条语句里面的0给覆盖了
最终a的值是0
c里面的if判断语句的条件是:非0即真

a的值是0,所以是假,执行else代码块中的语句

C语言中0 是假,非0是真。

先定义a=1 后又定义a=0 所以a是0 if(0) 是假 所以执行else下面的

这个C语言题目为什么输出结果是2,那个if语句什么意思?为什么不是执行if语句而是执行下面的els~

if(--a)的意思是,先执行 a = a - 1;然后判断a是否为真,此时a=0,所以执行else后面的语句

p=f(i,i+1)中,括号内不是逗号表达式,而是一个形参表,把i的值传给a,把i+1的值传给b
调用函数f时,a=2,b=3.
第一次判断,2>3不成立
else if(2==3)不成立,
else c=-1.
所以函数值就是-1

...执行下列程序段后,a值为() a=1;b=0; if((a++>++b)?a
答:很简单,看一下吧 a++是先使用a(来比较)再赋值,而++b正好相当,是先赋值给b再进行比较 a=1;b=0;然后if(a++>++b)的结果是if(1>1)即if(0),注:这里0表示假,原因如上所述,而比较完之后肯定是a=2; b=1;然后再因为if(0)执行b--,即b=0;后面估计你也会明白了,a+=b;即为a=...

C语言中if(a【i】>=’0’&&a【i】<=’9’的理解为)?
答:在这个地方,让存于数组内的3~100分别除以从2到sqrt(i)的值,以此来判断是否为素数。前面是从a[2]开始赋值的。需要判断a[i]和a[j]不能为0;后面的则是在一个i的循环内用j——i后面的整数,来除以i,如果除尽了则让a[j]为0;为0了i的话,也需要在第一步的”判断a[i]和a[j]不能为...

if(a> b)这个题应该选择什么呀?
答:比如 int a=5, b=6;a>b是关系表达式,结果是逻辑值false,但false可以看作是逻辑值,也可以看作是逻辑表达式。而a-b则是算术表达式,三者均可以做为if的判断条件。所以即使在C#语言中,严格区分的情况下,关系表达式也是被认为可行的,而逻辑表达式也是可以得到逻辑结果的。所以这里应当是选择了做任意...

C语言中的if语句问题:
答:先解释代码运行结果为什么是:a=1,b=0,c=1 因为if里面的条件是短路条件。因为 ++a>0 是true,所以不再执行 后面的++b>0 了。因此,b的值没有变。你的选择题答案是B,因为 A 中 1 默认是int,而另外的三个变量也都是 int变量。因此表达式最后的结果也会是int型的,也就是说最后的结果是...

简单c语言纠结问题 If(a==1)a=b;else a++
答:switch是先计算参数的值,和哪个分支相匹配则跳到哪个分支执行,如果此分支最后没有break,则会向下一个分支执行,直到遇到break或者运行完毕。所以不是按CASE0,1,2,3依次执行的,0,1,2,3只是起一个定位的作用。然后执行顺序是冲上往下依次执行和case中的值没关系,直到遇到break。如果为真,值就为...

c语言if语句的用法
答:c语言提供了三种形式的if语句:1、if(表达式)语句。例如:if(x>y)printf("%d",x);此时,如果表达式为真,则执行printf语句。2、if(表达式)语句1 else 语句2 例如:if(x>y)printf("%d",x);else printf("%d",y);此时,如果x>y成立为真,则执行语句printf("%d",x),然后直接跳过else...

刚学c语言求大神给我解释一下这句话的意思if(a[i]!=0&&a[j]!=0) 尤...
答:如果 a[i] 不等于0 并且 a[j] 不等于 0 &&就是并且的意思 &&前后都为 真 则为真

c语言中if(a>b>c)和if(a>b&&b>c)有什么区别
答:C语言中没有连续不等式的写法。if(a>b>c) 这种写法程序不能正确执行。if(a>b&&b>c) 是正确写法。

...编程,我是C语言初学者,请高手们帮我为下面这道题编个程序,分别用if...
答:include <stdio.h> int main(){ char c;int x = 0, y = 0;printf("***请按提示选择***\n");printf("a---本校全日制学生\n");printf("b---本校夜大学生\n");printf("c---外校学生\n");scanf("%c", &c);if(c == 'a'){ printf("你是本校全日制学生,不收付费 ^_...

单片机C语言问题。 假如a=8,那么if(a>>2==2)这个表达式的值是真还是...
答:a=8的二进制为1000,a>>2为二进制右移两位结果为10既2,2==2 ,最后为真