C语言中的if语句问题: C语言中有关if语句的问题

作者&投稿:东野慧 (若有异议请与网页底部的电邮联系)
先解释代码运行结果为什么是:a=1,b=0,c=1
因为if里面的条件是短路条件。因为 ++a>0 是true,所以不再执行 后面的++b>0 了。因此,b的值没有变。

你的选择题答案是B,因为 A 中 1 默认是int,而另外的三个变量也都是 int变量。因此表达式最后的结果也会是int型的,也就是说最后的结果是不会有小数的,而是只保留整数部分。
而B 就不同了,1.0 默认是double型的,其他的 三个变量会自动转换成 double,结果也会是double。
double型数可以是小数。int型数只能是整数,所以int不符合题目要求。

因为编译器对或运算和与运算是采用中断方式的,对于或运算,如果第一个条件成立,后面的条件就不会判断了,直接执行后面的语句。对于与运算,如果第一个条件不成立,后面的条件也不会判断了,直接执行后面的语句。

if里面++a后 a变成了1所以第一个条件成立,因为他是两个条件相或,那么第一个条件成立后就不会去执行第二个条件了,所以++b就没有被执行
所以b就等于0

问题补充:
要是选 a 的话,那代数式的结果是 int 型的数据,当abc>1时,结果就是0
而 b ,就不是那样子,它们统一化成double的数据,然后再进行运算,结果是返回double型的数据

很好理解的
在C语言中,关于||,如果||前面为真,值为1的时候,不执行||后面的表达式
如果前面为0的话,就需要继续执行||后面的表达式
顺便说一下&&
关于&&,如果前面一个值为0,那么就不执行&&后面的\
如果前面为1,就需要继续执行&&后面的
如题,
++a>0 ++a=1>0,成立,不执行++b 所以b=0

结果就是a=1,b=0,c=1

if中两个条件为||(或)的关系,当第一个条件满足的时候,后面的就不再执行,所以++b没有执行。

问题补充:C语言中,表达式1/(a*b*c)中,1为int型,(a*b*c)也为int型,为取整运算。B答案才是和代数表达式意义相同的、。

c语言中if语句常见的错误有哪些~

c语言中if语句常见的错误有:
1、if语句的错误使用
if(3>2);
printf("hello");
else
printf("hi");
2、if语句的错误使用

if(3>2)

printf("one");

elseif(3>1)

printf("tow");

else(3>0)

printf("three");

扩展资料
正确使用if语句
if语句是指如果满足某种条件,就进行相应的处理。例如,小明妈妈跟小明说“如果你考试得了100分,星期天就带你去游乐场玩”。这句话可以通过下面的一段伪代码来描述。

如果小明考试得了100分

妈妈星期天带小明去游乐场

在上面的伪代码中,“如果”相当于C语言中的关键字if,“小明考试得了100分”是判断条件,需要用()括起来,“妈妈星期天带小明去游乐场”是执行语句,需要放在{}中。修改后的伪代码如下:

if(小明考试得了100分)

{

妈妈星期天带小明去游乐场

}

上面的例子就描述了if语句的用法,在C语言中,if语句的具体语法格式如下:

if(条件语句)

{

代码块

}

首先 你要理解 =与==的区别
=是赋值 即把=右边的值 赋值给=右边的
x=10 就是把10赋值给 x 这时候x的值就是10
==是比较 两边是否相同 如果相同 返回真 不相同 返回假

#include
void main()
{
int x=10,y=20,t=0;//x赋值为10,y赋值为20,t赋值为0
if(x=y)//把y的值 赋值给x 这个时候x的值就不是开始的10了 变成了20
t=x;//把x的值赋值给t t变成了20
x=y;//把y的值赋值给x x还是20 因为上面你已经把y 的值赋值给x一次了
y=t;//把t的值赋值给y y的值还是20
printf("%d %d
",x,y);//输出结果是20 20
}
if(x==y)//判断==两边的值是否相同 x是10,y是20,肯定不同 返回假
t=x;//因为返回时假 所以这句不执行 x没有能赋值给t 所以t的值还是0
x=y;//y赋值给x x的值为20
y=t;//t的值赋值给 y t为0 所以y变成了0

输出结果为20 0

C语言中的if语句问题:
答:因为if里面的条件是短路条件。因为 ++a>0 是true,所以不再执行 后面的++b>0 了。因此,b的值没有变。你的选择题答案是B,因为 A 中 1 默认是int,而另外的三个变量也都是 int变量。因此表达式最后的结果也会是int型的,也就是说最后的结果是不会有小数的,而是只保留整数部分。而B 就不同...

c语言中if语句常见的错误有哪些
答:1、if语句的错误使用 if(3>2);printf("hello");else printf("hi");2、if语句的错误使用 if(3>2)printf("one");elseif(3>1)printf("tow");else(3>0)printf("three");

c语言 if 语句的问题
答:if(1)语句1;当括号里是1,就会执行语句1,如果是0,就不会执行这个条件语句。但如果if语句有else语句,如 if(1)语句1; else 语句2;就会当括号里是1,就会执行语句1,如果是0,就会执行else后面的语句2.

c语言关于if的问题
答:if(a<b)//如果a

C语言中的if判断问题?
答:if(){} 这条语句的意思是 如果if后面括号内的表达式结果为真,则执行后面大括号内的语句!if(t) { }表示如果t为真 这执行后面{}内的语句if(!t) { } 在t前面加个“!”符号,表示“非t”的意思,就是t如果为真 则“非t”为假 t如果为假 则“非t”为真 ...

c语言if语句问题。。。
答:if(a=12)注意这里是a=12,而不是a==12,所以if里面是一个赋值,赋值表达式的返回值就是所赋的值,所以if为真,并且a=12这样后,a被赋值为12 再执行a=a+1;b=b+1;就得到13;1了

关于c语言中if的使用问题,if是只有选择结构不存在循环结构吗?比如下 ...
答:完全是两种不同的语句。if是条件判断语句,WHILE是循环语句。功能就不一样,所以不能替换。while可以和 For循环替换。因为两个都是循环语句。另外你的例子中 k和N都没有赋值就在while中作比较 会返回错误。赋值后 如果 k=1 n=100,如果那么 这条语句只要mod 2 结果为0 K就会自加, 循环就会继续 ...

关于C语言的一个问题,当if语句后的花括号去掉之后
答:当你把if后的大括号去掉后,那么这时if语句的执行语句只有一条就是:t=a 这是如果输入的 a 比 b小就是说满足if的执行条件,那么和你不去掉大括号是一样的 都都会完成ab交换 但是,当你输入的a》b时,if (a

C语言中关于if结构的问题?
答:x==1。因为这段代码写规整了是这样的——if(a>7)//成立,所以执行if(b>8) if(b>8)//不成立,直接完成if(a>7)语句而跳出. if(c>9) x=3;

一道c语言if条件句的问题
答:if(y<z)printf("%d",++z);else printf("%d",++y);printf ("%d\n",x++);} 因为,if(x>y)判断语句下面的if相当是嵌套在第一个if里面,而else要与和它最近的if,也就是与if(y<z),保持一直,也就是说,整个程序可以理解为:include<stdio.h> main(){ int x=1,y=2,z=3;if(x>...