第5讲 选择结构程序设计-1

合集下载

C语言全国计算机二级等级考试教程第一二章(章节带习题)

C语言全国计算机二级等级考试教程第一二章(章节带习题)
10
2.2 标识符、常量和变量
2.2.3 符号常量
在C语言中,可以用一个符号名来代表一个常量,称为符号常
量。但是这个符号名必须在程序中用(#define)进行特别的“
指定"。 例2.2 计算圆面积和周长,此程序中将如何教大家使用符号常量。
#include “stdio.h” /*包含头文件*/
#define PI 3.14159 /*定义符号常量,符号常量名为PI,用PI来代表3.14159*/
main()
/*主函数,程序的入口*/
{double r,s,l;
/*声明部分,定义了3实型个变量*/
r
r=5.0;
/*给变量r赋值*/
函 s=PI*r*r;
数 体
l=2*PI*r;
/*计算圆的面积*/ /*计算圆的周长*/
s
printf(“s=%f,l=%f\n”,s,l/)*;分别圆的面积和周长*/
/*给变量b赋值*/
数 体
area=a*b;
/*将a*b的结果赋值给变量area*/
printf(“a=%f,b=%f,area=%f\n”,a,b,area/)*;分别输出矩形的两条边长和面积*/
1.2
}
3.6
a=1.200000,b=3.600000,area=4.320000
4.32
注意:
1. C程序由函数组成,一个程序必须有一个且只能有一个主函数(main),C程
a
b
1.5000002.500000 2.5000003.500000
a b
内存空间
2.在程序中,声明变量就是在计算机内存中申请了某个内存单元。对变量 进行赋值,实质上就是把数据存入该变量所代表的存储单元中。

选择结构程序设计 (1)

选择结构程序设计 (1)

•选择结构程序设计作用:根据所指定的条件是否满足,决定从给定的两组操作选择其一。

实现:if语句最常用的形式:if(关系表达式)语句1 else 语句25.1关系运算符和关系表达式关系运算:将两个值进行比较,判断其比较的结果是否符合给定的条件。

5.1.1关系运算符及其优先次序6种关系运算符:1.< 2.<= 3.> 4.>=5.==(等于)6.!=(不等于)优先次序:1.前4种的优先级别相同(高于后2种),后2种也相同。

2.关系运算符的优先级低于算术运算符,高于赋值运算符。

5.1.2关系表达式------用关系运算符将两个表达式(算术表达式或关系表达式、逻辑表达式、赋值表达式、字符表达式)连接起来的式子。

关系表达式的值---逻辑值(“真”或“假”)。

C语言没有逻辑型数据,以“1”代表“真”,以“0”代表“假”。

赋值表达式:若d=a>b (a=3,b=2),则d=15.2逻辑运算符和逻辑表达式------用逻辑运算符将关系表达式或逻辑量连接起来的式子。

5.2.1逻辑运算符及其优先次序3种逻辑运算符:(1)&& 逻辑与(2)I I 逻辑或(3)!逻辑非“&&”和“I I”是双目运算符,它要求有两个运算量(操作数)“!”是一目运算符,只要求有一个运算量逻辑运算的真值表多个逻辑运算符的优先次序:5.2.2逻辑表达式逻辑表达式的值是一个逻辑量“真”或“假”。

表示逻辑运算结果:1代表“真”,0代表“假”。

判断数值:0代表“假”,非0代表“真”。

逻辑运算符两侧的运算对象可以是0,1,或0,非0的整数,也可以是字符型、实型、指针型。

改进的逻辑运算的真值表逻辑表达式的求解中,是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符对&&运算符:(a&&b&&c)只有a不为0才继续右边运算。

对I I运算符:(a I I b I I c)只有a=0才继续右边运算。

c语言结构化程序设计讲课文档

c语言结构化程序设计讲课文档
语句2;
else
if ( )
语句3;
else 语句4;
内嵌if 内嵌if
返回到本章目录
第31页,共104页。
3)嵌套的说明
以上形式的嵌套if语句执行过程可以这样理解
:从上向下逐行对if后的表达式进行检测。当某一个
表达式的值为非零时,就执行与此有关子句中的语句 ,阶梯形中的其余部分被越过去。如果所有表达式的
返回到本章目录
第14页,共104页。
二、标准if语句
思考题3-2:从键盘上输入一个数,如果大于等于零
输出“Positive Number”(正数),否则输出
“Negative Number”(负数)(要求用标准if语句
实现)。 (一)程序分析
(1)从键盘输入一个数;
(2)判断该数是否大于等于零; (3)输出结果。
/*接受输入的数赋值
if(x>=0) 否大于0*/
/*判断x是
printf("%d is Positive Number!\n",x);
/*如果大于0,输出结果为正数*/
if(x<0)
小于0*/
/*判断x是否
printf("%d is Negative Number!\n返",回x到)本; 章目录
第8页,共104页。
if语句实现)。
(一)程序分析
(1)从键盘输入一个整数;
(2)判断该数是大于等于零或者小于零; (3)输出对应结果。
返回到本章目录
第7页,共104页。
(二)编写程序代码
main()
{ int x; /*定义整型变量x*/
printf ("input x:"); /*提示从键盘输入 一个数*/

C语言第5讲--选择程序设计

C语言第5讲--选择程序设计
X 错误!
语句1
else子句条件默认为:所有不满足if子句 条件的情况下,都执行else子句的步骤, 因此不需要再写执行后面步骤所需的条件 (即不再有圆括号和圆括号里的条 件),else后面也不要加分号
5
2双边选择结构
格式: if (表达式) 语句1 else 语句2
执行过程:
表达式取值非0,即条件成立,执行语句1后继续向下执行
•为了使逻辑关系清晰,注意培养良好的程序设计习惯。
14
if(表达式)中的表达式对执行方向的影响
if语句执行的实质是判断表达式的值是否为 0来决定执行语句1还是语句2。 即if语句先去计算表达式的值,当表达式最 终值不为0时执行if子句,否则执行else子 句。
15
四、条件运算符
条件运算符(三目): ? :
16
条件运算符使用举例
有如下程序: main( ) { int a=3,b=4,c; c=a>b?a:b; if(a>b) c=a; else c=b; printf("max=%d\n",c); }
语句:c=a>b?a:b;执行以后,变量c中存放的是 变量a,b中的最大值
17
五、switch 语句(多分支选择语句) 根据此表达式
判断条件
表达式取值为0,即条件不成立,跳过语句1执行语句2后向 下执行 (入口)
Y
语句1
P
N
语句2
(出口)
6
3.多层选择结构
格式:
当我们遇到 的情况不只 一种,且针 对每种情况 我们要采取 不同的步骤 措施时,使 用多层选择 结构
if (表达式1) 语句1 else if (表达式2) 语句2 第2种情况 else if (表达式3) 语句3 及相应的措 : : 施,注意前 面是写 : : else if else if (表达式n) 语句n else 语句n+1 最后一种情况及相应的措施,

c语言第五章 选择结构程序设计(习题册答案)

c语言第五章 选择结构程序设计(习题册答案)

第五章选择结构程序设计基础练习(A)一、填空题1、关系表达式的运算结果是逻辑值。

C语言没有逻辑型数据,以1代表“真”,以0代表“假”。

2、逻辑运算符!是单目运算符,其结合性是由右结合性。

3、C语言提供的三种逻辑运算符是&&、|| 、!。

其中优先级最高的为!,优先级最低的为| | 。

4、逻辑运算符两侧的运算对象不但可以是0和1,或者是0和非0的整数,也可以是任何类型的数据。

系统最终以0 和非0 来判定它们属于“真”或“假”。

5、设y为int型变量,请写出描述“y是偶数”的表达式(y%2==0)。

6、设x,y,z均为int型变量,请写出描述“x或y中有一个小于z”的表达式x<z||y<z 。

7、条件“2<x<3或x<-10”的C语言表达式是x<-10||x>2&&x<3。

8、判断char型变量ch是否为大写字母的正确表达式是(ch>=‘A’)&&(ch<=‘Z’)。

9、当a=3,b=2,c=1时,表达式f=a>b>c的值是0。

10、当a=5,b=4,c=2时,表达式a>b!=c的值是1。

11、已知A=7.5,B=2,C=3.6,表达式A>B&&C>A||A<B&&!C>B的值是0。

12、若a=6,b=4,c=2,则表达式!(a-b)+c-1&&b+c/2的值是1。

13、有int x,y,z;且x=3,y=-4,z=5,则表达式(x&&y)==(x||z)的值为1。

14、有int x,y,z;且x=3,y=-4,z=5,则以下表达式的值为1。

!(x>y)+(y!=z)||(x+y)&&(y-z)15、有int a=3,b=4,c=5,x,y;,则以下表达式的值为0。

!(x=a)&&(y=b)&&016、if (!k) a=3;语句中的!k可以改写为k= =0,使其功能不变。

第五章 选择结构程序设计0PPT课件

第五章 选择结构程序设计0PPT课件

执行过程:
…... [ else
statementn ]
=0
例:ifex(spar1lary>1000)
index=0.4;
非el0se if (salareyx>p8r200) =0 index=0.3;
else if (salary>600) else if (sala非ry0>400)
index=0=0.2; expinr3dex=0.1;

则 a<=x<=b的值为 0


例 5>2>7>8在C中是允许的,
值为 0
例 int i=1, j=7,a;
a=i+(j%4!=0);
则a= 2


例 ‘a’>0 结果为1
章 选
‘A’>100 结果为0




序< >


C

关系运算注意:

程 序
例 应避免对实数作相等或不等的判断

如 1.0/3.0*3.0==1.0 结果为 0
❖逻辑运算符

种类: ! && ||
设 计
逻辑运算真值表
a
b
!a
!b a&&b a||b












第 五 章 选 择 结 构 程
序< >
设 计









C语言第五章

C语言第五章
T t=a a=b 开始 输入a,b a>b
学习提示: (1)算法包括输入、处理和输出三个部分 ,其中处理部分为选择结构。
b=t
F
输出a,b 结束
5
信息科学与技术学院 软件工程系
选择结构算法设计
South West Jiaotong University
【例5. 1】输入a、b值,如果a>b,那么交换a和b,使得a≤b。 解决该问题的主要步骤为: 开始
17
信息科学与技术学院 软件工程系
关系运算符和关系表达式
【例】编写以下程序,查看结果。 #include <stdio.h> void main() { int a,b,c; int d,e,f; a=4,b=5,c=6; d=a>b; e=a<b<c; f=c>b>a; printf("%d %d %d \n",d,e,f); }
South West Jiaotong University
20
信息科学与技术学院 软件工程系
逻辑运算符- 优先级
• 各类运算符的优先级关系:
South West Jiaotong University
– !(非)高于 &&(与) 高于 ||(或)。 – &&(与)和||(或)低于关系运算符 – !(非)高于 算术运算符
1)任何数值(字符、整数、实数、指针)都可以表示 逻辑意义,只要数值不等于0,就表示“真”,而0 表示“假”;
2)关系与逻辑运算表达式的运算结果为“真”,表达 式的值为int型整数1,运算结果为“假”,则表达 式的值为int型整数0。
由2)可知,C语言的关系运算表达式和逻辑运算表 达式应该属于整型表达式范畴。

(完整版)《C语言程序设计》授课教案

(完整版)《C语言程序设计》授课教案
鼓励学生通过课外资料和上机编程,自己应用c语言开发一些较简单的小的应用程序,教师从旁辅导
考核方式:采用实验与理论结合的考核方式
平时成绩*10%+实验成绩*10%+期中成绩*20%+期末成绩*60%
对教案的分析总结
本教案较全面地概括了整个教学的过程,有层次、有重点地指导了教学的各个层面,教师可以使用本教案更好的组织教学活动。
教 学
后 记
结构化流程图和N-S图是教学中需要学生课堂练习的部分
课程名称
C程序设计
授课对象
2011级电子班
章节
第3章数据类型、运算符与表达式(一)
授课方式
多媒体
授课学时时
2学时
教学目的和要求
1.掌握C语言的数据分类
2.掌握常量与变量
教学
重点
难点
重点:C语言的数据分类
难点:常量与变量






对学生的要求
2.难点:C程序的上机步骤

学ห้องสมุดไป่ตู้




对学生的要求
1、要求掌握的内容
(1)简单的C程序
(2)C程序的上机步骤
2、要求了解的内容
C语言出现的历史背景、C语言的特点
3、自学内容
在UNIX、DOS下运行C的步骤
教学过程
1.教案与讲课临场发挥的关系
2.教案执行的灵活性
3.教学过程组织:
(1)复习、提问上节课内容(5分钟)
讨论
练习
作业
1.讨论问题:算法特性;为什么提倡结构化的算法.
2.练习与思考:例题2.12.22.32。4
3.作业:习题2.4 2.5

选择结构程序设计说课稿

选择结构程序设计说课稿

选择结构程序设计说课稿选择结构程序设计说课稿我说课的题目是《选择结构程序设计》,下面我从教材分析、学情分析、教学目标、教学重难点、教学方法、教学资源、教学过程七方面来进行说课。

一、说教材《选择结构程序设计》是电子工业出版社出版的《Visual Basic 6.0程序设计》第二章第五节的内容。

在此之前,学生已学习了顺序结构程序设计,为本节课的内容做好了铺垫,同时本节课知识是学好多分支结构的基础,它在整个教材中起着承上启下的作用。

是学生掌握程序设计的基础。

二、学情分析本节课的教学对象中职专业计算机二年级的学生,经过前几节课的学习,学生在顺序结构的学习中已经熟练掌握控件的添加、属性的设置、动作的实现等内容,对于VB程序的建立、运行、调试过程也有了多次实践经验,这些内容的学习和掌握为本节课的学习奠定了一定的基础。

三、说教学目标:根据教材结构与内容分析,考虑到已有的认知结构心理特征,我制定如下教学目标:知识目标:1、掌握IF语句的格式2、掌握IF语句的执行流程3、学会使用IF语句编写简单的选择结构程序,解决实际问题。

能力目标:培养学生自主探索、自主学习的能力和动手操作能力。

情感目标:通过小组合作,培养学生团结合作能力;让学生在解决解决问题的过程中,体验成功的快乐。

四、说重点难点本着新课标,在吃透教材的基础上,我确立了如下的教学重点、难点。

教学重点:IF语句的格式和执行流程。

教学难点:使用IF语句编写程序解决实际问题。

五、说教学方法1、说教法结合教材特点和学生的认知规律,本课我主要采用“创设情境法”、“任务驱动法”、教学方法。

2、说学法本课教给学生的学法是“发现问题――分析问题――解决问题”。

故此课教学过程中,让学生带着学习任务通过自主学习、课堂讨论、相互合作等方式,使学生在完成任务的过程中不知不觉实现知识的传递、迁移和融合。

六、教学资源:VB演示程序、多媒体课件、学案、Microsoft Visual Basic 6.0中文版软件、计算机网络机房、网络广播教学软件。

c语言选择结构程序设计教案

c语言选择结构程序设计教案

C语言选择结构程序设计教案第一章:选择结构概述1.1 选择结构的概念介绍选择结构的基本概念和作用解释条件语句的条件表达式和执行过程1.2 选择结构的语法介绍if语句的语法结构和用法解释if-else语句的语法结构和用法第二章:单分支选择结构2.1 单分支选择结构的概念解释单分支选择结构的含义和应用场景2.2 单分支选择结构的语法介绍if语句的语法结构和用法第三章:双分支选择结构3.1 双分支选择结构的概念解释双分支选择结构的含义和应用场景3.2 双分支选择结构的语法介绍if-else语句的语法结构和用法第四章:多分支选择结构4.1 多分支选择结构的概念解释多分支选择结构的含义和应用场景4.2 多分支选择结构的语法介绍if-else if-else语句的语法结构和用法第五章:嵌套选择结构5.1 嵌套选择结构的概念解释嵌套选择结构的含义和应用场景5.2 嵌套选择结构的语法介绍嵌套if-else语句的语法结构和用法第六章:选择结构的实践应用6.1 简单应用案例设计一个程序,根据用户输入的正负数输出相应的提示信息编写一个程序,根据用户输入的年龄判断并输出相应的年龄段6.2 复杂应用案例设计一个程序,根据用户输入的考试成绩判断并输出相应的等级编写一个程序,根据用户输入的天气情况输出相应的建议第七章:选择结构与逻辑运算符7.1 逻辑运算符概述介绍逻辑运算符的概念和作用解释逻辑运算符的优先级和结合性7.2 逻辑运算符的应用展示如何使用逻辑运算符结合选择结构解决问题举例说明逻辑运算符在实际编程中的应用场景第八章:选择结构与函数8.1 选择结构与函数的关系解释选择结构如何在函数中使用展示选择结构在函数中如何影响程序的执行流程8.2 选择结构在函数中的应用案例编写一个函数,根据传入的参数值返回相应的结果设计一个函数,根据传入的条件判断并执行相应的操作第九章:选择结构与循环结构的结合9.1 选择结构与for循环的结合介绍如何将选择结构与for循环结合使用举例说明选择结构与for循环结合的应用场景9.2 选择结构与while循环的结合介绍如何将选择结构与while循环结合使用举例说明选择结构与while循环结合的应用场景第十章:选择结构的扩展与优化10.1 选择结构的扩展介绍选择结构的扩展方法和技巧解释如何提高选择结构程序的可读性和可维护性10.2 选择结构的优化介绍选择结构优化的方法和原则展示如何通过优化选择结构提高程序的性能和效率第十一章:选择结构与数组的结合11.1 选择结构与一维数组的结合介绍如何使用选择结构对一维数组进行排序展示如何根据特定条件对一维数组进行查找11.2 选择结构与二维数组的结合解释如何使用选择结构遍历和处理二维数组举例说明选择结构在二维数组中的应用场景第十二章:选择结构与文件操作12.1 选择结构与文件读写介绍如何使用选择结构实现文件的打开、读取和关闭展示如何根据特定条件对文件内容进行处理12.2 选择结构与文件操作应用案例编写一个程序,根据用户选择实现文件的复制和移动设计一个程序,根据文件内容判断并输出相应的信息第十三章:选择结构与指针13.1 选择结构与指针的关系解释指针在选择结构中的作用和意义展示如何使用指针和选择结构实现复杂的数据操作13.2 选择结构与指针应用案例编写一个函数,根据指针指向的内容判断并执行相应操作设计一个程序,利用指针和选择结构处理动态分配的内存第十四章:选择结构与字符串处理14.1 选择结构与字符串的关系解释字符串在选择结构中的作用和意义展示如何使用选择结构实现字符串的常见操作14.2 选择结构与字符串处理应用案例编写一个程序,根据用户输入的字符串判断并输出其长度设计一个程序,根据字符串内容判断并执行相应的操作第十五章:选择结构综合案例15.1 选择结构在复杂程序中的应用介绍选择结构在复杂程序中的作用和意义展示如何使用选择结构实现复杂程序的流程控制15.2 选择结构综合案例分析分析并讲解一个涉及选择结构的多模块程序引导学生学会如何将选择结构应用于实际项目开发重点和难点解析本文主要介绍了C语言选择结构程序设计的相关内容,包括选择结构的基本概念、语法和应用场景。

教学课件第5章选择结构程序设计

教学课件第5章选择结构程序设计

……
条件表达式1
T 语句块1
F
条件表达式2
T 语句块2
…… 结束(End)
F
……
条件表达式n
T 语句块n
F
语句块n+1
选择结构程序设计
If...Goto结构 Visual Basic提供了一种控制If...goto
语句,这种控制语句主要用于程
序的出错处理或者是根据条件提
前结束程序的操作。这种语句的 格式是:

End If]
End If
选择结构程序设计
Select case 结构
这种结构就是根据我们对于一个事件的不同的选择而使其出现不同的
结果。实际上是对多分支结构的另一种表达方式,目的就在于增强程
序的可读性,它的理解方法完全和上面所讲述的多分支结构一样,只
是在语法上有一定的不同。这种结构的语法结构如下所示,下图是这
x=x^2+2*x+32 print x exits: x=x+100 print x End sub
选择结构程序设计
嵌套结构
在一个If … Then … Else结构的一个或者几个语句块中包含一个或若 干个If … Then … Else结构的语句称为嵌套结构。这种结构的语法 可以表示如下:
If <条件表达式> Then [If <条件表达式> Then
中在加上几个分支,达到多重条件的判断。它的语法可以表示如下:
If <条件表达式1> Then
语句块1
ElseIf <条件表达式2> Then
语句块2
ElseIf <条件表达式3> Then

第5章 选择结构程序设计PPT教学课件

第5章 选择结构程序设计PPT教学课件

2020/12/11
6
private void button1_Click(object sender, System.EventArgs e) {
double k,m; k=double.Parse(tCost.Text); if (k<1000)
{ m=k*0.9;
} else
{ m=k*0.8;
用选择语句实现该操作。
分析:本题使用编辑框实现 命令接受工作,使用if语句实 现判断。采用基本的控件实 现如图5-4所示。
2020/12/11
图5-4 口令验证
8
代码如下。
private void button1_Click(object sender,
System.EventArgs e)
{ if(textBox1.Text=="abc") // 设口令为“abc” label2.Text="欢迎使用本系统!"; // 如果输入正确,显
} pCost.Text=m.ToString( ); }
2020/12/11
7
(4) 编译、运行程序 单击工具栏上的启动按钮,或按〈F5〉键执行程序,显 示Windows窗体。在“请输入所购商品的总金额”文本 框中输入相关金额,单击【打折】按钮,完成相应的功 能。 【例5-2】编辑框的PasswordChar属性可以隐蔽用户通过 键盘输入的字符,常用来编写检查用户口令的程序。使
第5章 选择结构程序设计
5.1 选择结构程序的设计
在C#中,提供两种选择语句实现流程的改变: if语句,用于判断特定的条件能否满足,用于单 分支选择,也可以通过嵌套实现多分支选择。 switch语句,用于多分支选择。

选择结构程序设计课件PPT课件

选择结构程序设计课件PPT课件

scanf("%f,%f,%f",&a,&b,&c);
if(a>b)
{ t=a; a=b; b=t; }
if(a>c)
{ t=a; a=c; c=t; }
if(b>c)
如果 b>c,将b和c对换 b是三者中的次小者
{ t=b; b=c; c=t; }
p r i n t f ( " % 5 . 2 f, % 5 . 2 f, % 5 . 2 f \ n" , a , b , c ) ;
第6页/共97页
if (disc<0)
-15<0为真
printf(“has not real roots\n”);
else
{ p=-b/(2.0*a);
q=sqrt(disc)/(2.0*a);
x1=p+q;
x2=p-q;
printf(“real roots:\nx1=%7.2f\n
x2=%7.2f\n”,x1,x2);
第8页/共97页
if (disc<0)
8<0为假
printf(“has not real roots\n”);
else
{ p=-b/(2.0*a);
p的值变为-1
q=sqrt(disc)/(2.0*a);
q的值变为0.71
x1=p+q; x1的值变为-0.29
x2=p-q; x2的值变为-1.71
x1=p+q;
x2=p-q;
printf(“real roots:\nx1=%7.2f\n
x2=%7.2f\n”,x1,x2);
} return 0;

(完整版)《C语言程序设计》-谭浩强(第四版)教案

(完整版)《C语言程序设计》-谭浩强(第四版)教案

《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
第29-30 课时
《C语言程序设计》教案
第31-32 课时
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
第37-38 课时
《C语言程序设计》教案
第39-40 课时
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案
《C语言程序设计》教案。

信息技术基础(第五讲 程序设计初步)

信息技术基础(第五讲 程序设计初步)
象、直观,更易理解。
带羊过去 空船回 带菜过去 带羊回 带狼过去 空船回 带羊过去
流程图常用符号
起止框;输入输出框;处理框;判断框;流程线。 图形符号 名称 起止框 输入输出框 处理框 说明 表示事情的开始或结束 数据的输入或结果的输出 处理事情的具体步骤
判断框
流程线
根据不同情况选择不同步骤
从一个步骤到下一个步骤
(12)如下图所示的四个流程图,都是为计算22+42+62+…+1002而设 计的,正确的流程图序号为( D )
A
B
C
D
(13)如果执行下面的程序框图,那么输出的S=( C ) A、 7 B、 9 C、11 D、13
程序设计基础
计算机语言发展
计算机 语言---人和计算机进行交流所使用的语言
•机器语言:用二进制代码表示机器指令,计算机能直接识 别和执行。
实例
例题1: 从键盘输入两个数,求两数之和,并输出计算结果。
用自然语言描述算法:
开始
先用键盘输入一个加数,再输入第二个加数,
结束
计算两数之和,输出和。
用流程图描述算法:
开始 输入一个加数 输入另一个加数 计算两数之和 输出和 结束
同步练习
(1)下列关于算法说法不正确的是( A ) A、算法独立于任何具体的语言,BASIC算法只能用BASIC语言来实现 B、解决问题的过程就是实现算法的过程 C、算法是程序设计的“灵魂” D、其它三项都不正确 (2)图形符号" "在算法流程图描述中表示( B ) A、 处理或运算的功能 B、 输入输出操作 C 、用来判断条件是否满足需求 D、 算法的开始或结束 (3)图形符号" "在算法流程图描述中表示( A ) A、 处理或运算的功能 B、 输入输出操作 C、 用来判断条件是否满足需求 D、 算法的开始或结束 (4)以下哪个是算法的描述方法 ( A ) A、 流程图描述法 B、枚举法 C、顺序法
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

6
逻辑运算符及其表达式
逻辑运算符
种类: ! && || 逻辑运算真值表
a 真
真 假 假
b 真
假 真 假
!a 假
假 真 真
!b 假
真 假 真
a&&b 真
假 假 假
a||b 真 真 真 假
C语言中,运算量: 运算结果:
0表示“假”, 非0表示“真”, 0表示“假”, 1表示“真”,
7
表4-1 逻辑运算真值表
12
写成多函数程序
#include <stdio.h>
•根据条件中的三个表达式的组合,即选择2*2*2=8 个-4个不存在的数据=4个用例输入进行程序的 int LeapYear(int year);//函数声明 测试。 void main()
要用多少测试数据? •输入1996,输出结果是什么? { int year; •输入1998,输出结果是什么? printf(“please input year:”); •1998%4==0不成立,然后1998%400==0不 scanf(“%d”,&year); 成立,所以,整个条件不成立,不是闰年, if( LeapYear(year) )//函数调用 注意:1998%100==0并没有判断,这里采用 printf(“%d is a leap year!”,year);/*一般要缩进*/ 了懒惰求值法,因为无论它是何值,第一个 else 条件都不可能成立了。 printf(“%d is not a leap year!”,year); /*缩进与上边一致*/ •输入2400,会怎样? } •2000%4==0成立,2000%100!=0成立,所 int LeapYear(int year)//函数定义,函数功能是:判断闰年,是返回1,否返回0 以左边的第一个条件成立,2004%400==0不 { 用再判断了,同样是使用懒惰求值法。 if((year%4==0&&year%100!=0)||(year%400==0)) •输入2100,又会怎样? return 1; •不是闰年
a
0 0 1
b
0 1 0
a&& b 0
0 0
a||b
0 1 1
!a
1 1 0
1
1
1
1
0
8
简单的程序测试
一次输入,得到正 确的输出结果并不 能说明问题,要精 心选择不同的输入 (测试用例),反 复进行测试,才能 逐渐发现程序里的 问题
测试用例 预测结果 你输入的数据不 能构成三角形! 你输入的数据不 能构成三角形! 你输入的数据不 能构成三角形! 实际结果 ? ? ?
year是闰年,
•%求模(余)运算符,优先级与结合性同/(除法运算符) •结果的符号与被除数的符号相同 { •例: printf("10%3=%d,-10%3=%d,10%printf(“%d is not a leap year!”,year); 3=%d,-10%-3=%d\n",10%3,-10%3,10%-3,10%-3); } •结果为: 10%3=1,-10%3=-1,10%-3=1,-10%-3=-1
19
#include<stdio.h> #include<math.h> void main() /*求分段函数的值-程序1*/ { float x,y; scanf(“%f”,&x); if(x>0) { y=exp(x); //exp(x)的功能是求e的x次方 } if(x<0) { y= pow(2.71,-x); // pow(2.71,-x)的功能是求 2.71的-x次方 } if(x==0) { y=0; } printf(“y=f(%f)=%f\n”,x,y); }
year不是闰年。
10
分析
如果year能被4整除且不能被100整除,或者year能被400整除,
year能被4整除且不能被100整除,或者year 能被400整除 否则 if(year%4==0&&year%100!=0)||(year%400==0) (?)或者(?) year不是闰年。 (?且?)或者(?) { (?&&?)||(?) printf(“%d is a leap year!”,year); (year%4==0&&year%100!=0)||(year%400 } ==0)
3,4,5
1,1,5 1,5,1 5,1,1
area =6.000000 ?
因此,要想测试例1 程序是否正确,要 制作一个测试表, 如右图所示: 当所有实际结果都与
预测结果一样时,方 可结束程序测试。
9
例4-10
从键盘上输入一个年份,然后判断这个 年份是否为闰年。 分析结果(算法)
输入year year%4==0 && !(year%100==0) || 如果year能被4整除且不能被100整 判断year是否为闰年 除,或者year能被400整除, year是闰年, 输出yes或no 否则
#include <stdio.h> #include <math.h> void main()//求一元二次方程的根-1 { float a,b,c,disc,p,q,x1,x2; printf(“请输入一元二次方程的三个系数:”); scanf("%f%f%f",&a,&b,&c); disc=b*b-4*a*c; if(disc>=0) { p=-b/(2*a); q=sqrt(disc)/(2*a); x1=p+q; x2=p-q; printf("x1=%f\nx2=%f\n",x1,x2); } else printf(“no real root!”); }
16
#include <stdio.h> void main() { int m; printf(“请输入一个整数:”); scanf("%d", &m); /*输入一个整数*/ if (m % 2 == 0) /*是否为偶数*/ { printf("%d is even\n", m); } /*是偶数*/ else { printf("%d is odd\n", m); } /*是奇数*/ }
else
11
程序
#include <stdio.h> void main() { int year; printf(“please input year:”); scanf(“%d”,&year); if((year%4==0&&year%100!=0)||(year%400==0)) printf(“%d is a leap year!”,year); else printf(“%d is not a leap year!”,year); }
0,表示假(关系不成立)
优先级:在算术运算符和赋值运算符之间。 结合性:自左向右
5
涉及的语法 -逻辑运算符
逻辑运算也被称为布尔(Boolean)运算,即参 与运算的数据和运算结果都只有两个值:0和非0, 0表示假(条件不成立);非0表示真(条件成立) 与运算&&(相当于而且) 或运算|| (相当于或者) 求反!
输出“是”
else { printf(“%c is not a letter!”,c); 结束 } //切记:„a‟<=c<=„z‟写法不正确,为什么? }
15
另外两个库函数: 字符输入/输出函数
一般用法:字符型变量=getchar( ); #include <stdio.h> 含义是从键盘上敲入一个字符,然后把 void main() 它赋给字符型变量。 { 另一种用法:getchar();功能相当于 char lower,upper; “按任意健继续”,一般用于程序最后, 以便查看前边的结果。 printf(“please input an lowercase:”); lower=getchar(); /*从键盘上输入一个字符, 格式:putchar( 字符 ); 并赋值给lower */ upper=lower-32;功能:向终端输出一个字符。 putchar(upper); 参数可以是字符型常(变)量或整型常 /*将upper输出 */ (变)量。例如:putchar(c ); } putchar(‘a’); putchar( ‘\n’ ); putchar(97);
20
#include<stdio.h> #include<math.h> void main() /*求分段函数的值-程序2*/ { float x,y; scanf(“%f”,&x); if(x>0) { y=exp(x); } else { if(x<0) { y= exp(-x); //或在前面定义double e=2.71,此处 y=pow(e,-x)也可以。 } •嵌套:一层套一套 else { •此时要注意if-else的配对问题。 •一般加上{ }会明确配对,对避免逻辑错误非常有好处 y=0; } •要注意内层的条件中还有隐含条件 } printf(“y=f(%f)=%f\n”,x,y); 21 }
a && b当且仅当两者都为真,则结果为真 ( a > b && b > c);a大于b,并且b大于c
a || b只要两者中有一个为真,结果就为真 优先级: 高 ! (2) ( a > b || b > c); a大于b,或者b大于c && (11)
相关文档
最新文档