⑴ c语言中什么是逻辑表达式,什么是关系表达式。举几个例子
逻辑表达式是指运算符为或||、与&&、非!的表达式。返回值为0或1,0表示false,非0表示true. 例如!0返回1,0&&1返回0,0||1返回1。
关系表达式是指运算符为<,<=,>,>=,==,!=的表达式。返回值同样为0或1,例如a!=b,a>=0等。
C语言用整数"1"表示"逻辑真"、用"0"表示"逻辑假"。但在判断一个数据的"真"或"假"时,却以0和非0为根据:
如果为0,则判定为"逻辑假";如果为非0,则判定为"逻辑真"。
例如,假设num=12,则: !num的值=0 ,num>=1 && num<=31的值=1 ,num || num>31的值=1。
逻辑运算符两侧的操作数,除可以是0和非0的整数外,也可以是其它任何类型的数据,如实型、字符型等。
短路原则:非常重要,在计算逻辑表达式时,只有在必须执行下一个表达式才能求解时,才求解该表达式(即并不是所有的表达式都被求解)。换句话说:
对于逻辑与运算,如果第一个操作数被判定为"假",系统不再判定或求解第二操作数;对于逻辑或运算,如果第一个操作数被判定为"真",系统不再判定或求解第二操作数。
(1)c语言经典逻辑扩展阅读:
C语言逻辑表达式注意:
由于浮点数在计算机中不能非常准确地表示,所以,判断两个浮点数是否相同时,通常不使用关系运算符“等于”(==),而是利用区间判断方法来实现。为了判断x是否等于5.003,可利用如下逻辑表达式:x>5.002 && x<5.004。
当此逻辑表达式为“真”时,就可以认为x等于5.003
逻辑及性质保真性:所有变量的真值皆为“真”的命题在逻辑或运算后的结果为真。保假性:所有变量的真值皆为“假”的命题在逻辑或运算后的结果为假。
⑵ C语言原理
你好:和汇编语言相比,C语言属于高级语言,现在嵌入式中常用到C语言编程,因为它可以直接对硬件编程。
像你说的,用最抽象,最易懂的语言形容C语言,我做不到,因为C语言比逻辑上比汇编语言简单,但是它涉及到的知识点比较多,总的来说:有变量,常量,条件语句,循环语句,位操作,文件操作。。。我推荐你一本书吧:《C语言入门经典》lvor Horton编写的,知识点介绍得很全,而且每个例子后面的说明也全面,我开始学习C语言的时候就是看的这本书,还有,记住:C语言不必死记硬背,也不像你说的,它和英语没什么关系,你学习过就会明白了,C语言就那么几种语句,多练习,自然而然就记住了。最后祝你成功。
⑶ C语言常用逻辑符号
逻辑非:!
1&&1=1,0&&1=0(1为真,0为假)
逻辑或:||
1&&0=1,0&&0=0(1为真,0为假)
取反:~
如对11010
取反后为00101
位与:&
位与:&&
如对11010和10101
位与后为10000
就是0&1=1,1&1=1
0
与0或1位与都为0
位或:|
如对11010和10101
位或后为11111
就是0||0=1,0||1=1
1
与0或1位或都为1
位异或:^
如对11010和10101
位异或后为10000
就是0||0=1,0||1=1,俩个相同则为1,不同则为0
⑷ C语言逻辑关系
逻辑与&&的左侧表达式若为假,则结果一定为假,不再计算右侧表达式;
同理,逻辑或||的左侧表达式若为真,则结果一定为真,不再计算右侧表达式。
上述两点特性称为短路运算。
--a&&b--,由于左侧表达式--a=0为假,&&表达式结果一定为假,不再计算b--,直接返回0;
0||c--,左侧表达式0为假不能确保||结果一定为假,仍需计算右侧表达式,故计算c--,此时引用c的原值然后将c自减,结果为3,因此||表达式结果为真,返回1。
最终d被赋值为1。
⑸ 能解释一下这c语言语句的逻辑吗重赏
这个相当于
if(m%i==0)
{
return 0;
}
else
return 1;
因为 return语句会结束函数 所以即使没有else, return 0以后也不会再有return 1
如果m%i!=0就不会执行return 0 而执行return 1了
⑹ C语言逻辑或与非的用法
C语言逻辑或与非用于逻辑运算,可以在一条语句中同时出现,但还有优先级的限制。
基本应用:
逻辑与,符号为“&&”,只有两个操作数都是真,结果才是真。逻辑或,是逻辑运算符,符号是“||”。表示当两个条件中有任一个条件满足,“逻辑或”的运算结果就为“真”。“!”(逻辑非)逻辑运算符。“逻辑非”就是指本来值的反值。
优先级:
C语言中,运算符的运算优先级共分为15 级。1 级最高,15 级最低。逻辑与运算符 13级“&&”逻辑与运算符。逻辑或运算符 14 级,“ || ”逻辑或运算符。逻辑否“!”单目/一元运算 3级。因此优先级为:逻辑非高于逻辑与高于逻辑非。
运算方向:
在C语言中,只有4个运算符规定了运算方向,它们是&&、| |、条件运算符及赋值运算符。&&、| |都是先计算左边表达式的值,当左边表达式的值能确定整个表达式的值时,就不再计算右边表达式的值。如 a = 0 && b; &&运算符的左边位0,则右边表达式b就不再判断。
(6)c语言经典逻辑扩展阅读:
相关规则及应用:
1、逻辑运算符:a=1,b=1;a||b-1;因为a=1为真值,所以不管b-1是不是真值,总的表达式一定为真值,这时后面的表达式就不会再计算了。
2、短路原则:
在逻辑表达式的求解过程中,任何时候只要逻辑表达式的值已经可以确定,则求解过程不再进行,求解结束。表达式中优先级最低的逻辑运算符,以这些运算符为准将整个逻辑表达式分为几个计算部分。最左边一个计算部分开始,按照算术运算、关系运算和逻辑运算的规则计算该部分的值。
每计算完一个部分就与该部分右边紧靠着的逻辑运算符根据真值表进行逻辑值判断。如果已经能够判断出整个逻辑表达式的值则停止其后的所有计算;只有当整个逻辑表达式的值还不能确定的情况下才进行下一个计算部分的计算。
⑺ c语言的逻辑推理题!!急求!!!
#include<stdio.h>
typedefstruct{
intP,Q,R,S;
}Result;
intcheckPQ(Resultconst*constr){
if(r->P)//ifPistrue,Qmustbetrue.
returnr->Q;
return1;
}
intcheckQR(Resultconst*constr){//Q&&R=false;
return!(r->Q&&r->R);
}
intcheckRS(Resultconst*constr){//R||S=true;
returnr->R||r->S;
}
intcheckSQ(Resultconst*constr){//ifSistrue,Qisfalse
if(r->S)
return!r->Q;
return1;
}
intcheckPQRS(Resultconst*constr){
return2==r->P+r->Q+r->R+r->S;//only2istrue.
}
intmain()
{
Resultr;
for(inti=0;i<16;++i){
intj=i;
r.P=j%2;j/=2;
r.Q=j%2;j/=2;
r.R=j%2;j/=2;
r.S=j%2;
if(checkPQRS(&r)&&checkPQ(&r)&&checkQR(&r)&&checkRS(&r)&&checkSQ(&r))
printf("P=%d,Q=%d,R=%d,S=%d ",r.P,r.Q,r.R,r.S);
}
}
符号化短路略做简化版本:
#include<stdio.h>
typedefstruct{
intP,Q,R,S;
}Result;
intcheckPQ(Resultconst*constr){
returnr->P&&r->Q||!r->P;//ifpistrue,qmustbetrue.
}
intcheckQR(Resultconst*constr){//Qconst*const*R=false;
return!(r->Q&&r->R);
}
intcheckRS(Resultconst*constr){//R||S=true;
returnr->R||r->S;
}
intcheckSQ(Resultconst*constr){//ifSistrue,Qisfalse
returnr->S&&!r->Q||!r->S;
}
intcheckPQRS(Resultconst*constr){
returnr->P+r->Q+r->R+r->S==2;//only2istrue.
}
intmain()
{
Resultr;
for(inti=0;i<16;++i){
intj=i;
r.P=j%2;j/=2;
r.Q=j%2;j/=2;
r.R=j%2;j/=2;
r.S=j%2;
if(checkPQRS(&r)&&checkPQ(&r)&&checkQR(&r)&&checkRS(&r)&&checkSQ(&r))
printf("P=%d,Q=%d,R=%d,S=%d ",r.P,r.Q,r.R,r.S);
}
}
输出结果
P=0,Q=0,R=1,S=1
⑻ C语言中逻辑或的表示方法
c语言中逻辑或用符号“||”表示,在具体程序中的使用:
#include<stdio.h>
voidmain()
{
inta=5;
if(a>2||a<7)//或的使用
printf("a不在2-7之间 ");
}
同时“&&”表示逻辑的与,“!”表示逻辑的非
⑼ C语言提供3种逻辑运算符,按优先级高低它们分别是
C语言提供三种逻辑运算符,按优先级高低它们分别是:逻辑非(!),逻辑与(&&)、逻辑或(||)。
运算规则:
&&:当且仅当两个运算量的值都为“真”时,运算结果为“真”,否则为“假”。
|| :当且仅当两个运算量的值都为“假”时,运算结果为“"假”,否则为“真”。
! :当运算量的值为“真”时,运算结果为“假”;当运算量的值为“假”时,运算结果为“真”。
例如:假定x=5,则(x>=0) && (x<10)的值为“真”,(x<-1) || (x>5)的值为“假”。
(9)c语言经典逻辑扩展阅读
C语言中运算符分为四类:算数运算符、关系运算符、逻辑运算符、位运算符。
算数运算符(9):+ - * / % ++ --
关系运算符(6):== != > >= < <=
逻辑运算符(6):&& || ! ^ & |
位运算符(7):& | ~ ^ >> << >>>;
1级是特殊运算符:括号()
2级是单目运算符:++,-- 从右向左运算,只需要一个运算对象;
3、4级算数运算符:+ - * /
6、7级关系运算符:== != > >= < <=
11、12级逻辑运算符:&& || ! ^ & |
3~12级是双目运算符:从左向右,需要两个运算对象
13级是三目运算符:需要三个运算对象
14级是赋值运算符:=