-
2021-12-18 22:43:07
判断下列表达式是0还是1
1.100>1&&'a'>'b' 2.100>1||'a'>'b' 3.!(100>1)
根据下列条件,分别构造一个表达式
1.n等于或大于90,但是小于100 2.ch不是字符q或z 3.ch在'a'~'z'之间(包括a和z),但不是q 4.ch不在'a'~'z'之间
求下列表达式的值
1.5>3 2.3+4>2&&3<2 3.x>=y||y>x 4.d=5+(6>2) 5.'X'>'T'?10:5 6.x>y?y>x:x>y
更多相关内容 -
C语言逻辑运算源文件.pdf
2020-08-29 15:34:43F:\stc_class\example_logic_operation\main.c 1 int main) 2 { 3 int a 40,b 10; //逻辑运算符 & || 4 bit c,d,e,f,g,h; 5 c=a<b & a>b; 6 d=a|| a>b; 7 e=(a>b; 8 f=a!=b & a b; 9 g=a!=b || a b; 10 h=(a b; 11 r -
C语言关系运算和逻辑运算
2021-12-21 16:41:25一、关系运算 1.关系运算符 每个关系运算符对它左侧值和右侧值进行比较大小的运算 2.关系表达式 用关系运算符连接起来的式子。 若关系为真,关系表达式的值为1; 若关系为假,关系表达式的值为0; 3.优先级...一、关系运算
1.关系运算符
每个关系运算符对它左侧值和右侧值进行比较大小的运算
2.关系表达式
用关系运算符连接起来的式子。
若关系为真,关系表达式的值为1;
若关系为假,关系表达式的值为0;
3.优先级
关系运算符优先级低于算术运算符,高于赋值运算符。例如x>(y+3)与x>y+3相同。
[例]:
执行a=-2; b=3; x=a+b>2; 后,x=?
4.结合性
从左到右
[例]:设 a=3, b=2, c=1,求下列表达式的值?
c>b (a-b)==1 (b+c)<a a=5>3>4
二、逻辑运算
1.逻辑运算符
逻辑运算符的运算对象通常是关系表达式。
C语言提供三种逻辑运算符:
&& 逻辑与 两边运算量都为非0时,结果为真
|| 逻辑或 两边运算量都为0时,结果为假,否则为真
! 逻辑非 使操作数的值0变1,1变0
说明:
&& 和||是‚双目运算符,要求有两个操作数,左侧一个,右侧一个。
! 是单目运算符,只要求有一个操作数。
2.逻辑表达式
用逻辑运算符将关系表达式或逻辑量连接起来的式子。
a&&b a、b均为真, 则a&&b为1(真)
a||b a、b之一为真,则a||b为1(真)
!a 若a为真,则!a为假
3.优先级
!运算符优先级高于算术运算符,与自增自减运算符同级。
&&运算符优先级高于||,两者的优先级都低于关系运算符,高于赋值运算符。
4.结合性
逻辑非——右结合
逻辑与、逻辑或——左结合
5.求值原则
在逻辑表达式的求解过程中,只要能确定表达式的值,立即停止求值。
[例1]:a&&b 如果a为假,就不再判断b
若a=7,b=1,c=6,d=5,n=8,
求表达式中(m=a<b)&&(n=c+d)的值
表达式的值为?m的值为?n的值为?
[例2]:a||b 如果a为真,就不再判断b
若y=5,执行6>1||++y后,y的值为?
-
C语言-逻辑运算
2022-03-29 10:37:41逻辑运算1、逻辑运算符
C语言有3种逻辑运算符,其逻辑运算对象可以是关系表达式或逻辑表达式,逻辑运算的结果只有“真”或“假”。
目数 单目 双目 运算符 ! && || 名称 逻辑非 逻辑与 逻辑或 逻辑非(
!
):逻辑非运算符的对象如果为“真”,那么结果为“假”;若对象为“假”,则结果为“真”。
逻辑与(&&
):逻辑与运算符的两个逻辑运算对象只要有一个为“假”,那么结果就是“假”;两个都为“真”,结果才为“真”。
逻辑或(||
):逻辑或运算符的两个逻辑运算对象只要有一个为“真”,那么结果就是“真”;两个都为“假”,结果才为“假”。2、逻辑运算符的使用
其中
!
是单目运算符,&&
与||
是双目运算符,C语言中单目运算符的优先级是高于双目运算符的。所以逻辑非(!
)的运算优先级高于关系运算符。而逻辑与(&&
)和逻辑或(||
)的优先级低于关系运算符。逻辑运算符经常是与if()语句搭配使用的,用它可以连接关系表达式,例如表示x是否在闭区间[-1,1]中可以表示为
if (x>=-1&&x<=1)
,表示x>=-1且x<=1那么此表达式的值才为“真”,才会执行if下的语句。注 :逻辑运算符的使用会出现短路的现象,例如当x=-2时,那么
if (x>=-1&&x<=1)
这个语句的第一个语句x>-1就为“假”,此时就可以判断出这个逻辑语句的结果一定就为“假”,程序就不会执行后面一句判断x<=1,如果后面有改变x值的语句,例如if(x>=-1&&x++<=1)
,那么此时x++就不会执行,即执行完此if语句后,x的值仍然为-2,。请注意此种现象!例1:判断输入的字符是否为英文字母
从键盘输入一个字符,判断是不是英文字母。
#include <stdio.h> int main(void) { char ch; printf("Enter a character:"); ch = getchar(); /*变量ch接收从键盘输入的一个字符*/ if ((ch>='a' && ch<='z') || (ch>='A' && ch<='Z')){ /*判断是否为英文字符,含大小写*/ printf("It is a letter.\n"); } else { printf("It is not a letter.\n"); } return 0; }
运行结果:
Enter a character:u
It is a letter.Enter a character:5
It is not a letter.例2:统计英文字母和数字字符
输入一个正整数n,再输入n个字符,统计其中英文字母、数字字符和其他字符的个数。
#include <stdio.h> int main(void) { int digit, i, letter, n, other; /*定义3个变量分别存放统计结果*/ char ch; digit = letter = other = 0; /*置存放统计结果的3个变量的初值为零*/ printf("Enter n:"); scanf("%d", &n); getchar(); /*读入并舍弃换行符*/ printf("Enter %d characters:", n); for (i=1; i<=n; i++){ ch = getchar(); if ((ch>='a' && ch<='z')||(ch>='A' && ch<='Z')){ letter++; /*如果ch是英文字母,累加letter*/ } else if (ch>='0' && ch<='9'){ digit++; /*如果ch是数字字符,累加digit*/ } else { other++; /*ch是除字母、数字字符、以外的其他字符,累加other*/ } } printf("letter = %d, digit = %d, other = %d\n", letter, digit, other); return 0; }
运行结果:
Enter n:7
Enter 7 characters:tys23*&
letter = 3, digit = 2, other = 2注: 1、该段程序注意
digit = letter = other = 0;
这种写法,这是因为赋值运算符的结合方向是从右向左,其等价于以下代码:other = 0; letter = other; digit = letter;
这样所以的变量都会置0。但是一般不建议使用这种写法,因为这样可读性不好。
2、注意scanf()函数后的getchar();
这一句程序,因为scanf()函数输入数据时要以回车结束,而回车本身也是一个字符,所以会被getchar();
这一句给读到,这句话读到后什么也没做,相当于舍弃掉了scanf()最后输入的回车字符。参考 C语言程序设计(第4版)/何钦铭,颜晖
例题及课后习题参考程序https://gitee.com/sgxgitee/mooc-c -
C语言逻辑运算短路(与运算、或运算)
2016-04-23 20:30:58总结: “或”逻辑前面为1(true)就会发生短路。 “与”逻辑前面为0(true)就会发生短路1. 或逻辑短路
#include <stdio.h> int main() { int a=5,b=6,c=7,d=8,m=2,n=2; (m=a<b)||(n=c>d); printf("%d\t%d",m,n); return 0; }
输出的结果为1,2.为什么呢,因为a<b,m=1,这个“或”逻辑就被“短路”掉了,后面的语句就没被执行,所以n还是等于原先的2
2. 与逻辑短路
#include <stdio.h> int main() { int a=5,b=6,c=7,d=8,m=2,n=2; (m=a>b)&&(n=c>d); printf("%d\t%d",m,n); return 0; }
输出的结果为0,2。因为a>b为0,m=0,整个“与”逻辑判断就为“假”,所以后面的“c>d”就被短路掉了,所以n还是等于原先的2
总结:
“或”逻辑前面为1(true)就会发生短路。
“与”逻辑前面为0(true)就会发生短路
-
C语言逻辑运算和判断
2013-12-23 21:41:57C语言逻辑运算和判断 把792分钟换算成小时和分钟表示 -
C语言:逻辑运算
2020-12-29 22:27:54逻辑运算符 &&表示与,即运算符两边都为真则表达式结果为真 ||表示或,即运算符两边中有一个为真则表达式结果就为真 !表示非,即表示取反 /* 闰年 */ #include <stdio.h> main() { int year; ... -
C语言逻辑运算
2020-02-22 15:43:16逻辑运算:&&(与)、||(或)、!(非) &&:连接的两个表达式都成立时,则整个结果成立; 否则,只要有一个不成立,则整个结果就不成立。 ||:连接的两个表达式只要有一个成立,则整个结果就是成立的 ... -
C语言逻辑类型与运算
2021-08-06 16:10:441,布尔类型 #include<stdbool.h> 可以使用ture,false.但不会输出。 #include <...2,逻辑运算 ! 逻辑非 && 逻辑与 || 逻辑或 age为一个整数 !age -
C语言例题(逻辑运算)
2021-11-11 10:35:211.a的值限定在21~27之间。 #include <stdio.h> int main(){ int a; printf("限定在21~27之间\n"); scanf("%d",&a); if(a>=21 && a<=27){ printf(" Yes");...} -
C语言中的位运算和逻辑运算
2021-05-21 06:01:11这篇文章来自:http://blog.csdn.net/qp120291570/article/details/8708286位运算C语言中的位运算包括与(&),或(|),亦或(^),非(~).下面的代码包扩了这些基本运算,还有一个两个数的交换(不用第三个数)。#... -
C语言逻辑运算的短路特性
2015-03-14 16:54:49原理:(表达式1)&&(表达式2) 如果表达式1为假,则表达式2不会进行运算,即表达式2“被短路” (表达式1)||(表达式2) 如果表达式1为真,则表达式2不会进行运算,即表达式2“被短路” 举例: 1、x=y=z=0;c=++x||++y... -
c语言关系运算与逻辑运算
2021-05-21 05:46:01《c语言关系运算与逻辑运算》由会员分享,可在线阅读,更多相关《c语言关系运算与逻辑运算(4页珍藏版)》请在人人文库网上搜索。1、C语言程序设计教案授课时间2015年5月 日课次第1次课授课方式(请打)理论课 讨论课 ... -
C语言中逻辑运算与位级运算
2021-01-07 14:02:38位级运算 一般将十六进制的参数扩展成二进制表示然后进行位级运算再转换为...逻辑运算只有两种结果:非零参数表示为true,参数0表示为false,他们返回1或0。 逻辑运算符: &&:与 ||:或 !:取反 ... -
入门C语言——逻辑运算
2020-10-30 16:55:19入门C语言——逻辑运算 你学习了C语言中的逻辑运算,觉得逻辑运算是一件非常好解决的事情。但当成群结队的逻辑运算符(这是一种夸张化的情况,但的确也会有这种情况出现)向你涌来,眼花缭乱的符号常常让人... -
C语言基础-逻辑运算优化
2020-02-10 13:10:30C语言中,当对一些逻辑表达式进行求解时,可能会出现逻辑运算的优化,也叫“逻辑运算短路”(这名字说实在的不好听¯_(ツ)_/¯) 所谓优化,是指求解逻辑表达式时,并非执行所有的运算符,而是当必须执行下一个... -
C语言逻辑推理例题(附答案)
2021-05-20 03:07:30C语言逻辑推理例题(多重循环)C语言逻辑推理例题(多重循环)例1明明找不到铅笔盒了,妈妈对他说:“我把铅笔盒放到三个抽屉中的一个抽屉里了,每个抽屉上都写了一句话。不过,其中只有一句话是真的。”明明看到的三句... -
C语言逻辑运算符
2021-01-23 09:04:05在C语言中,逻辑运算符有&&、||、! &&表示“与”的意思,需要两端的表达式的值都为true,该式的值才为true。 ||表示“或”的意思,两端的表达式的值只要有一端为true,该式的值就为true。 !表示“非... -
c语言关系运算符运算顺序_C语言中的逻辑运算符
2020-09-11 10:05:18c语言关系运算符运算顺序 Nested if-else statement helps in creating multiple choices inside a program. But there are also some disadvantages of using them which are given below. Indentation is most ... -
c语言逻辑运算符的优先级是怎样的
2021-05-20 15:05:17c语言逻辑运算符的优先级是怎样的C 语言提供了以下三种逻辑运算符。● 一元:!(逻辑非)。● 二元:&&(逻辑与)、||(逻辑或)。以上三种逻辑运算符中,逻辑非! 的优先级最高,逻辑与&& 次之,逻辑或 |... -
C语言逻辑运算 逻辑运算 逻辑运算逻辑运算
2017-08-09 09:29:22int x=1, y=1; 表达式(!x||y--)的值是多少 -
逻辑运算的真值表c语言程序设计.ppt
2021-05-19 19:19:59逻辑运算的真值表c语言程序设计小结 a&&b、a||b、!a 逻辑表达式的值 优先级 !3&&2||4>1&&2的值为? 2>1&&4||5+!7的值为? C语言程序设计 1 1 练习 编写程序:输入年份,判断... -
C语言之逻辑运算符(示例代码)
2021-05-19 20:07:48一 逻辑运算符:&&:逻辑与,读作并且表达式左右两边都为真,那么结果才为真口诀:一假则假||:逻辑或,读作或者表达式左右两边,有一个为真,那么结果就为真口诀:一真则真!: 逻辑非,读作取反表达式的结果... -
c语言逻辑运算与位运算区别
2013-12-09 09:28:08c语言中,逻辑运算与位运算很容易混淆,但是它们的功能是完全不同的。逻辑运算认为所有的非零的参数都为TRUE,参数0表示false,它们返回1或0. &&与||和&与|重要的区别是,如果第一个参数求值能确定表达式的结果,... -
C语言中逻辑运算符的规则是什么
2021-05-21 15:40:25匿名用户1级2013-05-30 回答逻辑运算符把...什么是逻辑运算--逻辑运算用来判断一件事情是“对”的还是“错”的,或者说是“成立”还是“不成立”,判断的结果是二值的,即没有“可能是”或者“可能不是”,这个“... -
C语言逻辑运算符知识整理
2021-05-18 14:54:28在C语言中,也有类似的逻辑运算:运算符说明结合性举例&&与运算,双目,对应数学中的“且”左结合1&&0、(9>3)&&(b>a)||或运算,双目左结合1||0、(9>3)||(b>a)!非运算。单目右... -
c语言100道经典逻辑算法题
2010-06-04 13:17:31C语言100道逻辑经典算法题,都是一些基础的语法,如for等基本语法,做完了这100道题可以让你更深刻的理解这些语法 -
c语言之逻辑运算符
2019-08-01 11:34:58一、逻辑运算符: 包括:1。&&逻辑与 2。||逻辑或 3。!逻辑非 逻辑运算符用于对包含关系运算符的表达式进行合并或取非 对于使用逻辑运算符的表达式,返回0表示“假”,返回1表示“真”。关于逻辑运算符... -
C语言 逻辑运算符与逻辑表达式
2018-12-19 11:48:591.逻辑运算符及其运算规则 (1)C语言提供三种逻辑运算符: &amp;amp;amp;amp;amp;amp;amp;&amp;amp;amp;amp;amp;amp;amp; 逻辑与(相当于&amp;amp;amp;amp;amp;quot;同时&amp;... -
C语言 逻辑表达式
2019-02-05 09:37:40C语言用整数"1"表示"逻辑真"、用"0"表示"逻辑假"。 但在判断一个数据的"真"或"假"时,却以0和非0为根据: 如果为0,则判定为"逻辑假";如果为非0,则判定为"逻辑真"。 例如,假设num=12,则: !num的值=...