第五章逻辑运算和判断选取控制
- 格式:ppt
- 大小:49.51 KB
- 文档页数:15
第四讲第五章逻辑运算和判断选取控制内容:§5.1关系运算符和关系表达式§5.2逻辑运算符和逻辑表达式§5.3 if语句§5.1 关系运算符和关系表达式在程序设计中,我们经常会遇到对两个数据进行比较.比如说,在上节的最后例3.12中,如果我们在计算三角形的面积之前,能够对判别式disc的值进行判断,对于disc<0的情况进行另外的理,就不会出现令人啼笑皆非的结果了。
在计算机中程序设计中,比较运算是通过关系运算实现的.所谓关系运算实际上就是比较运算,即判断结果是否符合给定的条件。
一、关系运算符及其优先等级1. 关系运算符: < > <= >= == !=小于大于小于等于大于等于等于不等于2. 关系运算符的优先次序:<、 >、<=、>= ──→ ==、!=高──→ 低3. 关系运算符与其它运算符的优先次序:关系运算符的优先等级低于算术运算符,高于赋值运算符。
二、关系表达式1. 关系表达式:用关系运算符将两个表达式(算术、关系、逻辑、赋值表达式均可)连起来的式子叫关系表达式。
2. 关系表达式的取值: 关系表达式的值是一个逻辑值,即"真"或"假",条件成立取值为"真",以"1"代表"真";条件不成立,取值为"假",以"0"代表"假"。
§5.2 逻辑运算符和逻辑表达式除了关系运算之外,我们还会遇到这样的问题:若干个开关并联,在何种条件下,电路接通;若干个开关串联,在何种条件下,电路接通.这类问题就是我们上个学期讲过的逻辑运算问题。
一、逻辑运算符1. 逻辑运算符: && || !逻辑与逻辑或逻辑非(双目) (双目) (单目)2. 逻辑运算符的优先次序: ! ──→ && ──→ ||(非) (与) (或)高─────→低逻辑运算符与其它运算符的优先次序: 逻辑运算符中的!(非)运算符的优先等级高于算术运算符;||(或)和&&(与)运算符的优先等级低于关系运算符但高于赋值运算符。
第一章一种新的C语言学习方式1.一台能够工作的计算机包括?CPU (Central Processing Unit,中央处理单元,进行运算和控制,包括运算器和控制器等)、存储器(如RAM、ROM等)、输入设备、输出设备(包括串行/并行接口、USB等)。
其中,RAM (RandomAccess Memory,随机存储器)主要用于存储数据,ROM (RcadOnlyMemory, 只读存储器)主要用于存储程序。
2.单片机工作时需要什么?需要稳定的电源、晶振、外部存储器和编程调试接口,就像计算机工作时需要电源、晶振、硬盘或其他大容量外部存储器和操作系统一样。
微控制器是将单片机独立工作所需的电源适配器、晶振、外部存储器和串口转换电路等封装到一个模块上,这样就能直接与计算机连接并进行编程开发,不需任何其他芯片和电路。
3. AT89S52是一种什么样的单片机?是一种高性能、低功耗的8位单片机,内含8 KBISPdn-System Programmable系统在线编程)可反复擦写IOOO次的Flash只读程存器,采用ATMEL公司的高密度非易失性存储技术制造,兼容标准MCS51指令系统及其引脚结构。
在实际工程应用中,功能强大的AT89S52 已成为许多高性价比嵌入式控制应用系统的解决方案。
4. Progisp是一款什么样的软件?是一款免费下载的ISP软件,不需要专门的安装即可使用,非常方便。
使用该软件,读者可以将C语言程序生成的可执行文件下载到机器人单片机上。
使用时需要1根USBA转B 信号线。
5.简述串口调试工具的特点。
串口调试工具就是串行通信接口调试软件,集数据发送、数据接收、数据监控、数据分析等功能于一身,具有小巧精致、操作简捷、功能强大的特点,可以在串口通信监控、设备通信测试工作中有效提高效率。
6. pr i ntf ()函数称为?称为格式输出函数,其功能是按用户指定的格式,把指定的数据输出显示。
Print ()函数是C语言提供的标准输出函数,定义在C语言的标准函数库中,要使用它,必须包括定义标准函数库的头文件stdio. h o第二章最简单的C程序设计——机器人做算数1. C语言用什么整型变量?C语言用关键字imt定义整型变量。
逻辑运算和判断选取控制1C语言中,逻辑“真”等价于A 大于零的数B 大于零的整数C 非零的数D 非零的整数参考答案C2C语言的 switch 语句中,case 后A 只能为常量B 只能为常量或常量表达式C 可为常量及表达式或有确定值的变量及表达式D 可为任何量或表达式参考答案B3main(){ int a,b,d=241;a=d/100%9;b=(-1)&&(-1);printf(“%d,%d”,a,b);}A 6,1B 2,1C 6,0D 2,0参考答案B4若有int x=10,y=20,z=30;以下语句执行后x,y,z的值是()if (x>y)z=x;x=y;y=z;A x=10,y=20,z=30B x=20,y=30,z=30C x=20,y=30,z=10D x=20,y=30,z=20参考答案B5为了避免嵌套的if—else语句的二义性,C语言规定else总是与()组成配对关系。
A 缩排位置相同的ifB 在其之前未配对的ifC 在其之前未配对的最近的ifD 同一行上的if参考答案C6以下程序段的输出结果是。
int a=10,b=50,c=30;if(a>b)a=b;b=c;c=a;printf("a=%d b=%d c=%d\n",a,b,c);A a=10 b=50 c=10B a=10 b=30 c=10C a=50 b=30 c=10D a=50 b=30 c=50参考答案B7已知int i=10;表达式"20-0<=i<=9"的值是A 0B 1C 19D 20参考答案B8为判断字符变量c的值不是数字也不是字母时,应采用下述表达式A c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122B !(c<=48||c>=57&&c<=65||c>=90&&c<=97||c>=122)C c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122D !(c>=48&&c<=57||c>=65&&c<=90||c>=97&&c<=122)参考答案D9设有int i, j, k; 则表达式i=1,j=2,k=3, i&&j&&k 的值为A 1B 2C 3D 0参考答案A10逻辑运算符两侧运算对象的数据类型A 只能是0或1B 只能是0或非0正数C 只能是整型或字符型数据D 可以是任何类型的数据参考答案D11能正确表示“当x的取值在[1,10]和[200,210]范围内为真,否则为假”的表达式是()A (x>=1)&&(x<=10)&&(x>=200)&&(x<=210)B (x>=1)||(x<=10)||(x>=200)||(x<=210)C (x>=1)&&(x<=10)||(x>=200)&&(x<=210)D (x>=1)||(x<=10)&&(x>=200)||(x<=210)参考答案C12判断char型变量ch是否为大写字母的正确表达式是A ’a’<=ch<=’z’B (ch>=’a’)&(ch<=’z’)C (ch>=’a’)&&(ch<=’z’)D (‘a’<=ch)and(‘z’>=ch)参考答案C13已知x=43,ch=’a’,y=0;则表达式(x>=y&&ch<’b’&&!y)的值是()A 0B 1C 语法错误D 假参考答案B14执行下列语句后a的值为int a=5,b=6,w=1,x=2,y=3,z=4;(a=w>x)&&(b=y>z);A 5B 0C 2D 1参考答案B15以下程序的输出结果是()main(){ int a=5,b=0,c=0;if(a=b+c) printf(“***\n”);else printf(“$$$\n”);}A 有语法错误不能通过编译B 可以通过编译但不能通过连接C ***D $$$参考答案D16以下程序的输出结果是()main(){ int m=5;if(m++>5) printf(“%d\n”,m);else printf(“%d\n”,m--);}A 4B 5C 6D 7参考答案C17若运行时给变量x输入12,则以下程序的运行结果是()main(){ int x,y;scanf(“%d”,&x);y=x>12?x+10:x-12;printf(“%d\n”,y);}A 0B 22C 12D 10参考答案A18若w=1,x=2,y=3,z=4,则表达式w<x?w:y<z?y:z的值是A 4B 3C 2D 1参考答案D19设有int a=2,b;则执行b=a&&1;语句后,b的结果是A 0B 1C 2D 3参考答案B20设有int m=1,n=2;则++m==n的结果是A 0B 1C 2D 3参考答案B21设有int n=2;则++n+1==4的结果是A trueB falseC 1D 0参考答案C22设有int n=2;则++n+1==4,n的结果是A 1B 2C 3D 4参考答案C23以下使i的运算结果为4的表达式是A int i=0,j=0; (i=3,(j++)+i);B int i=1,j=0; j=i=((i=3)*2);C int i=0,j=1; (j==1)?(i=1):(i=3);D int i=1,j=1; i+=j+=2;参考答案D24当a=5,b=2时,表达式a= =b的值为A 2B 1C 0D 5参考答案C25若执行以下程序时从键盘上输入9,则输出结果是main(){ int n;scanf("%d",&n);if(n++<10) printf("%d\n",n);else printf("%d\n",n--);}A 11B 10C 9D 8参考答案B26对如下程序,若用户输入为A,则输出结果为()main(){char ch;scanf(“%c”,&ch);ch=(ch>=‘A’&&ch<=‘Z’)?(ch+32):ch;printf(“%c\n”,ch);}A AB 32C aD 空格参考答案C27下列表达式中能表示a在0到100之间的是A a>0&a<100B !(a<0||a>100)C 0<a<100D !(a>0&&a<100)参考答案B28在以下给出的表达式中,与while(E)中的(E)不等价的表达式是A (!E=0)B (E>0||E<0)C (E==0)D (E!=0)参考答案C29已知:int x,a,b;下列选项中错误的if语句是A if(a=b) x++;B if(a<=b) x++;C if(a-b) x++;D if(x) x++;参考答案B30当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是()。
c语言逻辑运算和判断选取控制
C语言中的逻辑运算和判断选取控制是编程中非常重要的部分。
逻辑运算包括与、或和非,用于将多个条件组合成一个条件。
判断选取控制包括if语句、switch语句和三元运算符,
用于根据条件执行不同的代码块。
这些控制结构可以帮助程序员根据不同情况执行不同的操作,提高程序的灵活性和可读性。
在C语言中,逻辑运算符的优先级高于赋值运算符,因此在使用时需要注意运算符的优先级。
if语句用于判断一个条件是否成立,如果成立则执行相应的代码块,否则执行另一个
代码块。
switch语句则根据一个表达式的值执行不同的代码块。
三元运算符则可以在一行
代码中完成简单的判断操作。
在编写程序时,需要注意逻辑运算和判断选取控制的正确使用。
过多的嵌套和复杂的条件判断会降低程序的可读性和可维护性。
因此,需要根据实际情况选择合适的控制结构,使程序更加简洁明了。
掌握C语言中的逻辑运算和判断选取控制是编程中必不可少的一部分。
正确使用这些控制结构可以提高程序的效率和可读性,使程序更加灵活和易于维护。
第五章 电气控制的逻辑设计逻辑设计是近年发展起来的一种新兴设计方法,它的主要优点就在于能充分应用数学 工具和表格,全面考虑控制电路的逻辑关系,按照一定的方法和步骤设计出符合要求的控 制电路。
用逻辑设计法设计出的控制电路,精炼、可靠。
第一节 电气线路的逻辑表示一、电器元件的逻辑表示为便于用逻辑代数描述电路,对电器元件状态的逻辑表示作如下规定:(1)用K 、KM 、ST 、SB 分别表示继电器、接触器、行程开关、按钮的常开(动合)触头;用 表示其相应的常闭(动断)触头。
(2)电路中开关元件的受激状态(如继电器线圈得电,行程开关受压)为“1”状态;开关元件的原始状态(如继电器线圈失电,行程开关未受压)为“o ”状态,触头的闭合状态为“1”状态,触头的断开状态为“0”状态。
K =1,继电器线圈处于得电状态;K =o ,继电器线圈处于失电状态;K =1,继电器常开触头闭合;K =o ,继电器常开触头断开;K =1,继电器常闭触头闭合;K =o ,继电器常闭触头断开。
从上述规定看出,开关元件本身状态的“1”(线圈得电)、“o ”取值和它的常开触头的‘1”、“o ”取值一致,而和其常闭触头的取值相反。
B S T S MK K 、、、二、逻辑代数的基本逻辑关系及串、并联电路的逻辑表示在逻辑代数中,常用大写字母A、B、C、…表示逻辑变量。
三、电气线路的逻辑表示有了上述规定和基本逻辑关系,就可以应用逻辑代数这一工具对电路进行描述和分析。
具体步骤是:以某一控制电器的线圈为对象,写出与此对象有关的电路中各控制元件、信号元件、执行元件、保护元件等,它们触头间相互联接关系的逻辑函数表达式(均以未受激时的状态来表示)。
有了各个电气元件(以线圈为对象)的逻辑表达式后,当发出主令控制信号时(如按一下按钮或某开关动作),可分析判断哪些逻辑表达式输出为“1”(表示那个电器线圈得电),哪些表达式由“1’’变为“o”。
从而可进一步分析哪些电动机或电磁阀等运行状态改变,使机床各运动部件的运行发生何种变化等。
C 语言程序设计基本知识点解答(三)第五章 选择结构程序设计Q116➢ 如何进行选择结构的程序设计?(选择结构) A116➢ “选择结构”也可以叫做“分支结构”。
在一个合理的“选择结构”中,总是先进行某个条件的判断,然后根据判断的结果选择执行预先设定的操作。
其流程图如下:可见,要想实现“选择结构”,需要2个条件:① 能表达条件判断的运算符:即关系运算符和逻辑运算符 ② 能实现判断并选择的控制语句:即if 和switch 语句Q117➢ 什么是关系运算符?(关系运算符)A117➢ 关系运算符也叫“比较运算符”,用于对两个数据进行比较判断的。
C 语言中一共有6种关系运算符,分别是 < 小于、<= 小于等于、> 大于、>= 大于等于、== 等于、!= 不等于。
用这6种运算符按规定把运算量连接起来构成的式子就是关系表达式。
其中,参与关系运算的数据可以是常量、变量或任何合法的表达式。
比如:a * a <= 100、NowIndex == MaxIndex 。
所有6种关系运算符的优先级都比算术运算符低,而== 等于、!= 不等于两个运算符的优先级又比其它四个关系运算符低。
所有6种关系运算符的结合性都是从左向右。
Q118➢ C 语言中如何表示一个关系表达式的值?(关系表达式)A118➢ 关系表达式进行的是关系运算,也就是“比较运算”。
比较的结果只可能有两个:“真”或“假”。
对应于实际生活中,就是“成立”还是“不成立”,“正确”还是“不正确”,“对”还是“不对”这样一些比较和判断的结果。
可见,关系运算的结果的特点是:只有两种可能的结果;任何时候答案只可能是其中的一个;两种可能是相互对立不可能同时出现的。
这样的特点正对应于数学上的“逻辑值”:“真”或“假”。
所以最终的结论就是:关系表达式的值是“逻辑值”,即“真”或“假”。
C 语言中分别以“1”和“0”来代表。
就是说,如果关系表达式的值为“真”,则得到整数1;如果值为“假”,则得到整数0。
第一章 概述1. C语言的特点①语言简洁、紧凑,使用方便、灵活。
共有32个关键字,9种控制语句。
②运算符丰富,公有34种运算符。
③数据结构丰富,数据类型有:整型、实型、字符型、数组、指针、结构体、共用体等。
④具有结构化的控制语句(如if…else、while、do…while、switch、for)⑤语法限制不太严格,程序设计自由度大。
⑥允许直接访问物理地址,能进行位(bit)操作,可以直接对硬件操作。
⑦生成目标代码质量高,程序执行效率高。
⑧可移植性好。
2. C语言的用途C虽不擅长科学计算和管理领域,但对操作系统和系统实用程序以及对硬件进行操作方面,C有明显的优势。
现在很多大型应用软件也用C编写。
Top of Page第二章 数据类型、运算符与表达式1. C的数据类型C的数据类型包括:整型、字符型、实型或浮点型(单精度和双精度)、枚举类型、数组类型、结构体类型、共用体类型、指针类型和空类型。
2.常量与变量常量其值不可改变,符号常量名通常用大写。
变量其值可以改变,变量名只能由字母、数字和下划线组成,且第一个字符必须为字母或下划线。
否则为不合法的变量名。
变量在编译时为其分配相应存储单元。
3.整型数据整型常量的表示方法:十进制不用说了,八进制以0开头,如0123,十六进制以0x开头,如0x1e。
整型变量分为:基本型(int)、短整型(short int)、长整型(long int)和无符号型。
不同机器上各类数据所占内存字节数不同,一般int型为2个字节,long型为4个字节。
4.实型数据实型常量表示形式:十进制形式由数字和小数点组成(必须有小数点),如:0.12、.123、1230.0等。
指数形式如123e3代表123×10的三次方。
实型变量分为单精度(float)和双精度(double)两类。
在一般系统中float型占4字节,7位有效数字,double型占8字节,15~16位有效数字。
5.字符型数据字符变量用单引号括起来,如'a','b'等。