第三章 选择结构程序设计
第3章顺序和选择结构程序设计

3.3 C语句
1.表达式语句
任何一个表达式加上一个分号就可以组成一条
语句。
例如: 表达式 a=b+c*(d+3) a+b+c i++
表达式语句 a=b+c*(d+3); a+b+c; i++;
函数调用也是表达式,在其后加一个分 号,就变成了函数调用语句。
eg:printf函数调用语句和scanf函数调 用语句
-1.0 (x<0) y= 0 (x=0) 1.0 (x>0)
运行结果: -88 y=-1.000000
3.4.4
if语句的嵌套
条件语句的嵌套就是在if语句中包含另一 个if语句。 从语法上讲,if语句中所包含的语句是一 个语句或一个复合语句,这个语句当然也 可以是另一个if语句,即内嵌if语句。
3.1 程序设计概述
程序设计的最终目的是能在计算机上计算出正确的 结果来。 1969年,Dijkstra首先提出了结构程序设计的概念, 强调从程序的结构和风格上来研究和设计程序。 首先应从全局上把握系统所具备的功能是什么,并 将系统划分成几个相对独立的子系统,而每个子系 统只涉及局部的环境和条件。 然后,进入第二步的实现阶段,即进行编码。在第 一阶段,只要知道“做什么”,而在实现阶段,才 考虑“如何做”。
用交换变量值的方法按顺序输出这两个数
交换变量值的思想: 不改变变量名,但变量值可改变的性质。 若a的值大于b的值,则a与b的值不交换;若a的值 小于b的值,则两者互相交换值。从而使得无论何 时,变量a的值始终大于变量b的值。最后,按先a 后b的顺序输出,即可实现按由大到小的顺序输出 的功能。 实现方法: 为了能够进行相互交换,必须引进一个临时变量 t。用以下三个赋值语句可实现交换。 t=a; a=b;b=t; /*t=a,a=b,b=t;*/
C语言程序设计第3章选择结构程序设计

√
!注意 if 与 else 的配对关
系,else总是与它上面最近 的未配对的 if 配对,若if与 else 的数目不一致,可以加 { }来确定配对关系。
整理课件
例:有一函数
y=
-1 0
(x<0) 输入X值,输出Y值。 (x=0)
1 (x>0)
main( ) { int x, y; scanf("%d",&x);
if (x<0) y= -1; else if (x= =0) y=0;
if(x<=0)
else y=1;
if (x= =0) y=0; y= -1;
else y=-1;
if (x>=0)
eplrsientfy(="1x;=%d,y=%d\n{"i,xf ,(yx)>;0) y=1; }
}
else y=0;
整理课件
程序设计基本步骤
定义变量 产生数据 数据处理、计算 输出结果
整理课件
√
程序举例
编程1:判断某一年是否闰年。 能被4整除但不能被100整除的是闰年; 能被400整除的是闰年。
main( ) { int y; scanf("%d",&y);
if ((y%4==0&&y%100!=0)||(y%400==0)) printf("yes\n",y);
}
15 x 30 30 x 100 100 x 200 其它
整理课件
读程序段
m,n,x,y,z均为整型变量,求执行完该段 程序后各变量的值。
m=10;n=5;
x=(--m==n++)?--m:++n;
高中信息学奥赛C++ 第3章 选择结构(C++版)

//maxn 为a,b中的最大值 //maxn 为a,b,c中的最大值
三、目运算符 c++有一个常用来代替if else 语句的操作符,这个操作符 被称为三目运算符(?:),它是c++中唯一一个需要3个操作数的 操作符。该操作符的通用格式如下: b?a:c 如果 b为 true ,则整个表达式的值为 a;否则,整个表达 式的值为c。下面两个语句演示了该操作符是如何工作的: x=5>3?10:12 // 5>3为true,所以 x=10; x=3==9?25:18 // 3==9为false,所以 x=18;
#include<iostream> using namespace std; int main() { int t; cin >> t; if ((t>=25) &&(t<=30)) cout<<"ok!\n"; else cout<<"no!\n"; return 0; }
格式2 : if (条件表达式) { 语句1; 语句2; …… } else { 语句1; 语句2; …… } 若分支语句由多个句子构成,我们必须把这些句子括在一 对花括号{ }内。
条件表达式
false
true 语句1
图3-1
程序设计风格提示:从语法上来讲,整个if语句可以写 在一行。如果条件表达式和语句都非常简单,那么整个语句 可以写在一行;否则,最好在条件表达式后换行,而且语句 部分要相对if缩进两格。
例3.1 读入一个整数a,如果a为偶数在屏幕上输出yes #include<iostream> using namespace std; int main( ) { int a; cin>>a; if (a%2==0) cout<<"yes"; return 0; } 注意:关系运算符==用来表达该符号的左右两边是 否相等,不要写成赋值号=。 试一试
实验三-选择结构程序设计

实验三选择结构程序设计3.1实验要求与目的1.掌握关系表达式和逻辑表达式的正确应用2.条件表达式的正确应用3. 掌握if语句,if-else语句,if语句的嵌套的编程方法4. 掌握switch的编程方法及执行特点5.掌握相关的算法(大小写字母的转换,判断数的奇偶,整数的整除,分段函数的求解,成绩的转换等)6. 培养解决实际问题的能力3.2实验指导结构化程序设计的三大结构:顺序结构、选择结构和循环结构。
计算机在执行过程时,根据条件选择所要执行的语句,称为选择结构,也称为分支结构。
在解决实际问题时,可能会因为其种条件的约束产生分支,可能是单分支结构、双分支结构和多分支结构等。
因此可选择相应的语句进行程序设计。
C语言程序设计实现单分支结构常采用,if语句;实现双分支结构常采用:if-else语句;实现多分支结构常采用:if-else嵌套语句或switch语句。
选择结构的程序设计除了选择适当的语句外,另一关键问题是条件的正确表示。
条件可以用表达式来描述,如关系表达式、逻辑表达式等。
【3.1】录入下列程序,输入给定的测试数据,观察其程序执行结果。
程序文件名为:ex3_1.c。
输入测试数据:23 56程序运行结果:max=56#include<stdio.h>void main(){int a,b,max;scanf("%d%d",&a,&b); /*从键盘输入两整数*/max=a;if(max<b)max=b;printf("max=%d\n",max); /*输出最大数*/}该程序的执行过程,从键盘输入两个整数赋予a,b,把a的值先赋予变量max,采用if 语句判别max和b的大小,若max小于b,则把b的值赋予max,然后执行printf语句输出max的值;若max大于b,不执行if后的语句,而执行printf语句输出max的值;max中的值总是大数。
实验三-选择结构程序设计(解答)-(2)

实验三选择结构程序设计(解答)1.改错题(1)下列程序的功能为:输入1个字母,如果它是小写字母,则首先将其转换成大写字母,再输出该字母的前序字母、该字母、该字母的后序字母,例如:输入g,则输出FGH;输入a,则输出ZAB;输入M,则输出LMN;输入Z,则输出YZA。
请纠正程序中存在错误,使程序实现其功能,程序以文件名sy3_1.c存盘。
#include <stdio.h>main(){char ch,c1,c2;printf("Enter a character:");ch=getchar();if((ch>='a')||(ch<='z')) // if((ch>='a')&&(ch<='z'))ch-=32;c1=ch-1;c2=ch+1;if(ch='A') // if(ch=='A')c1=ch+25;else if(ch='Z') // else if(ch=='Z')c2=ch-25;putchar(c1);putchar(ch);putchar(c2);putchar('\n');}改正后的程序:#include <stdio.h>main(){char ch,c1,c2;printf("Enter a character:");ch=getchar();if((ch>='a')&&(ch<='z'))ch-=32;c1=ch-1;c2=ch+1;if(ch=='A')c1=ch+25;else if(ch=='Z')c2=ch-25;putchar(c1);putchar(ch);putchar(c2);putchar('\n');}(2)下列程序的功能为:输入3个整数后,输出其中最大值。
C语言程序设计第3章 选择结构流程和应用

2 单分支和双分支选择结构程序设计
简单if语句 if-else语句 条件运算符与条件表达式
简单if语句
学一学 简单if语句的形式为: if ( 条件表达式 ) 语句
其流程图如图3-1所示。语句的执 行过程是先计算“条件表达式”, 若值为“真”,则执行“语句”; 否则什么也不做。此处的“语句” 可以是简单语句,也可以是用一对 大括号“{ }”括起来的复合语句。
本章内容中我们将学习 1 选择结构判定条件的构成 2 单分支与双分支选择结构程序设计 3 多分支选择结构程序设计
1 选择结构判定条件的构成
关系运算符与关系表达式 逻辑运算符与逻辑表达式
关系运算符
关系运算是对两个操作数之间进行比较的运算符,其 运算结果为逻辑值(或称“布尔”值,boolean) “真”或“假”。 C语言中提供六种关系运算符,如 表3-1所示。
条件
Y
N
语句
试一试
问题3.4 从键盘输入一个数,输出其绝对值。 解题步骤 1.定义变量二个int变量iX,iY,其中iX用来接收 用户从键盘输入的数据,iY用来存放iX的绝对值。 2.从键盘输入一个整数放iX; 3.把iX放iY; 4.正数的绝对值是正数本身,负数的绝对值是其 相反数。所以,如果iX<0,则iY= -iX,否则不 需要做什么; 5.输出iX和iY。
练一练
问题:小明去参加一个同学的生日聚会, 同学的家长规定18岁以上的才可以饮酒, 所以需要编一程序根据输入的年龄打印一 张饮酒卷,使的能饮酒的同学可以获取饮 酒卷。
if-else语句
学一学 if-else语句是标准的if语句。 用来实现双分支选择结构, 其一般形式为: if ( 条件 ) 语句1; else 语句2;
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语言选择结构程序设计的相关内容,包括选择结构的基本概念、语法和应用场景。
实验3 选择结构程序设计

实验3 选择结构程序设计一、实验目的及任务1、了解C 语句表示逻辑量的方法(以0代表"假"以1代表"真")。
2.学会正确使用逻辑运算符和逻辑表达式的方法。
3.熟悉if 语句和switch 语句。
4.结合程序掌握一些简单的算法。
二、实验环境VC++6.0编程环境;主机操作系统为Windows2000或Windows XP ; 三、 预备知识要深入理解选择结构的特点,掌握各自的语句实现。
四、实验内容本实验要求编程解决以下问题,然后上机调试运行程序。
1.⎪⎩⎪⎨⎧≥-<≤-<=10113101121x x x x x xy用scanf 函数输入x 的值,求y 的值。
程序提示:main 函数结构如下: 定义实型变量x 与y 使用scanf 函数输入x 的值 if x<1 y=x elseif x<10y=2x-1elsey=3x-11输出x的值与y的值2.给出一个百分制的成绩,要求输出成绩等级A,B,C,D,E。
90分及以上为A,80-89为B,70-79为C,60-69为D,60分以下为E。
要求从键盘输入成绩,然后输出相应等级,分别用if语句和switch语句实现。
程序提示:(1)使用if语句的main函数结构如下:定义float型变量score,char型变量grade输入百分制成绩赋给scoreif score>=90grade='A'else if score>=80grade='B'else if score>=70grade='C'else if score>=60grade='D'else grade='E'输出百分制成绩和等级。
(2)使用switch语句的main函数结构如下:定义float型变量score,char型变量grade输入百分制成绩赋给scoreswitch(int(score/10)){case 10:case 9: grade='A';break;case 8: grade='B';break;case 7: grade='C';break;case 6: grade='D';break;default: grade='E';break;}输出百分制成绩和等级3.编程实现:输入一个不多于5位的正整数,要求:(1)输出它是几位数,(2)分别输出每一位数字,(3)按逆序输出各位数字,如原数为321,则应输出123。
03-选择结构程序设计

计算机教研室
C语言笔试—3-27
switch 语句
考点1:switch 语句
switch(表达式) { case 常量表达式1: 语句1; break; case 常量表达式2: 语句2; break; case 常量表达式3: 语句3; break; default: 语句4; } 计算机教研室
<
>
小于
大于
<= 小于等于
>= 大于等于
军事交通学院
计算机教研室
C语言笔试—3-7
选择结构基本概念
考点1:关系运算和逻辑运算 3、关系运算 例1:若 a=5, b=3, c=1,则: a>b>c 的值为______。 例2:若 a=5, b=3, c=1, d=0, 则: d=b>c!=a 的值为______。
B)和之前与其最近的 if 配对; C)和之前与其最近的且不带 else 的 if 配对; D)和之前的第一个 if 配对。
军事交通学院
计算机教研室
C语言笔试—3-23
if 语句与条件表达式
例9:[2008年9月]有以下程序 #include <stdio.h> main( ) { int x=1, y=2, z=3; if(x>y) if(y<z) printf("%d", ++z); else printf("%d", ++y); printf(“%d\n”, x++); } 程序的运行结果是( )。 A)331 B)41 C)2
结束
军事交通学院
结束
计算机教研室
C语言笔试—3-5
c语言选择结构程序设计教案

C语言选择结构程序设计教案第一章:选择结构概述1.1 选择结构的概念介绍选择结构的基本概念和作用解释条件语句的语法和用法1.2 条件运算符介绍条件运算符的概念和语法演示条件运算符的使用方法和注意事项1.3 选择结构的执行流程解释选择结构的执行流程和条件判断原理通过示例程序展示选择结构的执行过程第二章:if语句2.1 if语句的基本语法介绍if语句的语法结构和使用方法解释条件表达式的真假判断2.2 if语句的嵌套讲解if语句的嵌套结构和规则通过示例程序演示if语句的嵌套应用2.3 if语句的注意事项强调if语句的注意事项,如条件表达式的正确性、代码的可读性等第三章:switch语句3.1 switch语句的基本语法介绍switch语句的语法结构和用法解释case标签和break语句的作用3.2 switch语句的执行流程解释switch语句的执行流程和条件判断原理通过示例程序展示switch语句的执行过程3.3 switch语句的注意事项强调switch语句的注意事项,如输入变量的类型、case标签的覆盖等第四章:选择结构的综合应用4.1 综合应用实例一:成绩判断程序介绍一个简单的成绩判断程序实例分析程序中的选择结构和逻辑运算符的使用4.2 综合应用实例二:员工福利计算程序介绍一个员工福利计算程序实例分析程序中的选择结构和循环结构的使用4.3 综合应用实例三:日期判断程序介绍一个日期判断程序实例分析程序中的选择结构和时间处理的方法第五章:选择结构的编程技巧5.1 选择结构的优化介绍选择结构的优化方法和原则通过示例程序展示优化前后的差异5.2 选择结构的扩展讲解选择结构的扩展方法和注意事项通过示例程序展示扩展选择结构的应用5.3 选择结构与其他程序结构的结合介绍选择结构与其他程序结构(如循环结构、函数结构)的结合方法和原则通过示例程序展示结合后的应用第六章:选择结构与用户输入6.1 用户输入的基本方法介绍如何使用C语言中的输入函数(如`scanf`)获取用户输入。
Fortran教程第三章 选择结构程序设计

所作的处理在其后的块语句中完成。
(3)case default与其后的默认块,是缺省情况,可有可无。
如果加入它,则代表前面所有选择表达式的值皆非的情况下 执行该块。 (4)end select为case结构结束的标志。
例3.3、设计程序,完成小学加、减、乘、除四则运算, 即输入两个数,再输入一个运算符号,做对应的运算,
program exam
implicit none integer n
read *, n
if ( mod(n,3)==0.and.mod(n,5)==0 ) then print *,’该数能同时被3和5整除。’
else
print *,’该数不能同时被3和5整除。’ endif end
块IF结构的组成
program exam3 real g read *,g if (g>=90) then print *,“优秀”
else if( g>=80) then
print *,"良好" else if( g>=60) then
print *, "通过"
else print *,"不及格" endif end
FORTRAN所用的基本逻辑运算有:
.AND.
.EQV.
.OR.
.NEQV.
.NOT.
.XOR.
(1)逻辑与,运算符.AND. 当连接的两个逻辑操作数为真时, 逻辑表达式取值为真,只要一个为假则取假。例如数学表达式 1<X<2,在FORTRAN中应写成逻辑表达式:X>1.AND.X<2。
(2)逻辑或,运算符为.OR. 连接的两个逻辑操作数只要有一个 为真时,逻辑表达式取值为真,全部为假时才为假。例如|X|>5,
第3章 选择结构(C++版)

•
选择类语句包括if语句和switch语句,用它们来解决实际 应用中按不同的情况进行不同处理的问题。如根据学生的成 绩,对学生做出不同的等第评价。if选择结构称为单分支选 择结构,选择或忽略一个分支的操作。if/else选择结构称为 双分支选择结构,在两个不同分支中选择。switch选择结构 称为多分支(或多项)选择结构,以多种不同的情况选择多 个不同的操作。 • 循环类语句包括for循环语句、while循环语句和do循环语 句三种,用它们来解决实际应用中需要重复处理的问题。如 当统计全班同学总分时,就需要重复地做加法,依次把每个 人的分数累加起来。
【上机练习】
•7.收集瓶盖赢大奖【1.4编程基础之逻辑表达式与条件分支07】 • 某饮料公司最近推出了一个“收集瓶盖赢大奖”的活动:如果你拥有10个印 有“幸运”、或20个印有“鼓励”的瓶盖,就可以兑换一个神秘大奖。现分别 给出你拥有的印有“幸运”和“鼓励”的瓶盖数,判断是否可以去兑换大奖。 若可以兑换大奖,输出1,否则输出0。 •输入: • 一行,包含两个整数,分别是印有“幸运”和“鼓励”的瓶盖数,用一个空 格隔开。 •输出: • 一行。若可以兑换大奖,输出1,否则输出0。 •样例输入: • 11 19 •样例输出: • 1
【上机练习】
•4.奇偶ASCII值判断【1.4编程基础之逻辑表达式与条件分支04】 • 任意输入一个字符,判断其ASCII是否是奇数,若是,输出YES,否则,输出 NO。例如,字符A的ASCII值是65,则输出YES,若输入字符B(ASCII值是66),则输 出NO。 •输入: • 输入一个字符。 •输出: • 如果其ASCII值为奇数,则输出YES,否则,输出NO。 •样例输入: • A •样例输出: • YES
例3.5 输入温度t的值,判断是否适合晨练。(25<=t<=30,则 适合晨练ok,否则不适合no)
第三章 pascal选择结构程序设计

第三章 选择结构程序设计在许多情况下,语句执行的顺序依赖于输入的数据或中间运行结果。
在这种情况下,必须根椐某个变量或表达式的值作出判断,最后决定执行哪些语句或跳过不执行哪些语句。
我们称这种程序结构为选择结构。
PASCAL 中可实现选择功能的语句有if 语句和case 语句。
本章主要介绍这两个语句的应用。
在某种情况下,当满足某个条件时,我们需要连续执行多个语句,在PASCAL 语言中为了让结构清晰,允许我们把多个语句组成一个复合语句,这样一个复合语句的使用就可看作一个语句使用。
在PASCAL 中复合语句组成的一般形式及语法图如下:begin <语句1>; <语句2>; . . . . . . <语句n>; end 1.if 语句的一般形式及语法图如下:if <布尔表达式> then <语句1> else <语句2> ;例3.1 编程实现读入两个数,求第一个数除以第二个数的值。
程序如下: program rzy8; var a ,b ,begin if end .1.if 语句主要用于处理两条分支的情况,有些情况下会遇到多条分支的情况,这时使用if 语句就显得非常不方便,程序结构变得混乱,为此PASCAL 语言提供了case 语句。
case 语句的一般形式及语法图如下:N-S 框图描述case <表达式> of<常量表1> :<语句1>; . . . . . .<常量表n> :<语句n>;else <语句n+1> ; end ;例3.2 某校对学生的学科成绩评定分为A ,B ,C ,D 四个级别,分级方法是:100至90为A 级,89至80为B 级,79至60为C 级,59至0分为D 级,其它分数即显示输入错case 语句误。
试编程序,实现从键盘输入学生成绩,则可输该成绩的评级。
c语言程序设计教程 选择结构程序设计

3.1 if语句---3.1.1单分支选择结构 /*li3_1_1 从键盘任意输入一个整数,输出该数的绝对值*/ #include <stdio.h> int main(void) 将程序运行了3次,每次 { 输入不同的整数,结果分 int x; 别如下: printf("输入一个整数:"); scanf("%d",&x); 输入一个整数:-1 绝对值为:1 if (x<0) x=-x; printf("绝对值为:%d\n",x); 输入一个整数:0 绝对值为:0 return 0; 输入一个整数:1 } 绝对值为:1
【学习重难点】
(1)选择结构编程思想
(2)if语句使用
(3)switch语句的使用
第3章 选择结构程序设计
p
成立 不成立
A
B
(1)又称为分支结构,根据条件来判断哪些语句被执行。 (2)先计算条件表达式的值。如果为真,则执行程序段A,如果 为假,则执行程序段B。A程序段和B程序段是有选择的进行执行, 不可能两个模块都执行。 (3)只有一个入口(a点)和一个出口(b点)。 (4)主要用于解决不同条件选择不同操作的多分支类的问题。
输入一个整数:-2 1 输入一个整数:-3 13 输入一个整数:3 13
#include <stdio.h> #include<math.h> int main(void) { int x,y; printf(“输入一个整数:”); scanf("%d",&x);
3.1 if语句---3.1.3多分支选择结构---if else if语句
②执行过程:先计算表达式的值,当表达式为真时执行语句部分,
第3章_基本程序设计-1(周)

18
25 27
if (t < 18) printf("t=%f\tLower weight!\n", t); else if (t < 25) printf("t=%f\tStandard weight!\n", t); else if (t < 27) printf("t=%f\tHigher weight!\n", t); else printf("t=%f\tToo fat!\n", t); }
23
(4)for 语句的循环体还可为另一个循环语句
例如: for(i=1;i<=2;i++) for(j=1;j<=2;j++) { printf(“%3d”,i+j); printf(“\n”); } output: 2 3 3 4
24
do-while语句
do{
语句; } while(表达式); 功能:先执行循环体,然后计算表达式值, 其值若为真(非0)则继续执行循环体,直 到表达式为假时为止。
循环嵌套结构规划
外循环 入口
内循环
内循环出口
交叉循环
外循环出口
内循环出口
外循环
循环嵌套
1 2 3 4 5 6 7 8 9 -------------------------------------1 2 4 3 6 9 4 8 12 16 5 10 15 20 25 6 12 18 24 30 36 7 14 21 28 35 42 49 8 16 24 32 40 48 56 64 9 18 27 36 45 54 63 72 81
scanf("%d",&i);
C语言程序设计 第3章 选择结构 -

如果条件满足了,就执行{}里的语句, 如果条件不满足,直接越过{}里的语句。
3.2 关系运算符与关系表达式
关系运算符
< (小于) <= (小于或等于) > (大于) >= (大于或等于) == (等于) != (不等于)
3.2 关系运算符与关系表达式
关系表达式: 用关系运算符将两个表达式连接起来的式子
case 常量表达式2:语句2; ... default:语句n+’键向上运动,‘s’键向下运动, ‘a’键向左运动,‘d’键向右运动。
char ch = getch(); // 获得按键按下的值
switch(ch){ case 'w' : row = row - 1; case 's': row = row + 1; case 'a' : col = col - 1;
a > 60 x == 1 关系表达式的值是一个逻辑值,即“真”或“假”。
3.2 关系运算符与关系表达式
C语言中, 1表示“真”,0 表示“假”
例: 5 > 3 为真,值为1。 2 == 3 为假,值为0。 (2 > 3) == (3 > 5) 为真,值为1,
3.2 关系运算符与关系表达式
例:当按下‘w’键,方块向上运动
3.3 逻辑运算符与表达式
逻辑运算符
&& (逻辑与) || (逻辑或) ! (逻辑非) 运算规则: a&&b 若a,b为真,则a&&b为真。 a||b 若a,b之一为真,则a||b为真。 !a 若a为真,则!a为假。
3.3 逻辑运算符与表达式
逻辑表达式: 用逻辑运算符将关系表达式连接起来的 式子
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第三章选择结构程序设计
选择结构
例1:输入一个整数a,判断是否为偶数。
(是输出"yes"否则输出"no")。
①输入a;
②判断 a 值; a mod 2 =0 yes 否则显示no
③根据判断结果显示不同的值。
IF语句
1、格式
Ⅰ、IF <布尔表达式>THEN 语句;
Ⅱ、IF <布尔表达式>THEN 语句1 ELSE 语句2;
(注意Ⅱ型IF语句中语句1后无";"号)
2、功能
Ⅰ、执行IF语句时,先计算<布尔表达式>的值,若为TRUE则执行语句,否则不执行任何操作。
Ⅱ、执行IF语句时,先计算<布尔表达式>的值,若为TRUE则执行语句1,否则执行语句2;
Pascal程序:
Program ex4_2;
Var a:integer;
Begin
Write('a=');readln(a);
If (a mod 2 =0)then writeln('yes')
Else writeln('no');
Readln;
End.
例2:超市里卖电池,每个电池8角钱,若数量超过10个,则可打75折。
①输入X;
②判断 X 值;
③根据判断结果选择符合条件的那种方法计算Y值;
④输出计算结果。
Program ex2_2;
Var Num:integer;Price,Total:real;
Begin
Write('Num=');readln(Num);
Price=0.8;
If Num>10 then Price:=Price*0.75;
Total:=Num*Price;
Writeln('Total=',Total:0:2);
Readln;
End.
例3:读入三个不同的数,求出最大值。
例4:读入三个不同的数,编程按由小到大的顺序排列打印出来。
Progranm Exam2_4;
Var a,b,c,t: Real;
Begin
Write('Input a, b,c=');
Readln(a,b,c);
if a>b then
begin {复合语句}
t:=a; a:=b; b:=t {交换a,b}
end;
if a>c then
begin {复合语句}
t:=a; a:=c; c:=t {交换a,c}
end;
if b>c then
begin {复合语句}
t:=b; b:=c; c:=t {交换b,c}
end;
Writeln('a,b,c:',a:6, b:6, c:6);
Readln
End.
复合语句
if 语句规定它的真项或假项位置上只能是一个基本语句,如果需要写一组语句,就应当使用复合语句。
本程序中有三处用到复合语句。
每个复合语句的范围是从Begin 开始到与它相对应的End为止。
复合语句的地位和一个基本语句相同;其一般格式为:Begin
<语句1>;
<语句2>;
…
<语句n>
End;
复合IF语句
Else二义性问题
IF <条件1>
THEN IF <条件2>
THEN <语句1>
ELSE <语句2>
例5:输入某学生成绩,根据成绩的好坏输出等级。
如果成绩在90分以上,输出A,如果成绩在60到90之间,输出B,如果不足60分,输出C。
Progranm Exam2_5;
Var score: Real;
Begin
Readln(score);
if score>=90
then writeln(‘A‘)
else if score>=60
then writeln(‘B’)
else writeln(‘C’);
end.
注:请仔细阅读pascal教程第38--51页,调试书本上的例题3.1,3.2,3.3,3.4再完成以下任务:
1、对一批货物征收税金(长整型)。
价格在1万元及以上的货物征税5%,在5000元及以上,1万元以下的货物征税3%,在1000元及以上,5000元以下的货物征税2%,1000元以下的货物免税。
编写一程序,读入货物价格,计算并输出税金。
2、输入3个整数,将其中最小的数输出。
3、某超市为了促销,规定:购物不足50元的按原价付款,超过50不足100的按九折付款,超过100元的,超过部分按八折付款。
编一程序完成超市的自动计费的工作。
4、输入一个三位数的整数,将数字位置重新排列,组成一个尽可能大的三位数。
例如:输入213,重新排列可得到尽可能大的三位数是321。
例6:对某产品征收税金,在产值1万元以上征收税5%;在1万元以下但在5000元以上的征收税3%;在5000元以下但在1000元以上征收税2%;1000元以下的免收税。
编程计算该产品的收税金额。
Case语句
一般格式为:
Case 表达式 of
情况常量表1: 语句1;
情况常量表2: 语句2;
: :
情况常量表n: 语句n
end;
执行情况语句时,先计算Case后面表达式的值,然后根据该值在情况常量表中的“对应安排”,选择其对应的语句执行,执行完所选择语句后就结束Case语句;如果常量表中没有一个与表达式值对应的语句,则什么也不做就结束本Case语句。
Case 语句的另一种应用格式为:
Case 表达式 of
情况常量表1: 语句1;
情况常量表2: 语句2;
: :
情况常量表n: 语句n;
else 语句 n+1
end;
这种格式的前面部分是相同的,所不同的是:如果常量表中没有一个与表达式值对应的语句,则执行与else对应的语句,然后结束Case语句。
解:设x为产值,tax为税金,用P表示情况常量各值,以题意中每1000元为情况分界:
P=0: tax=0 (x<1000 )
P=1,2,3,4: tax=x*0.02 (1000<=x<5000 )
P=5,6,7,8,9: tax=x*0.03 (5000<X<=10000 )
P=10: tax=x*0.05 (x> 10000 )
这里的P是“情况”值,用产值x除以1000的整数值作为P,如果P>10也归入P=10的情况。
Pascal语言用P=trunc(x/1000)取整计算,
Pascal程序:
Program Exam22;
Var x,p : integer;
Tax : real;
Begin
Write('Number=') ; readln(x) ;
P:=trunc(x/1000) ;
if P>9 then P:=10;
Case P of
0 : tax:=0;
1,2,3,4 : tax:=x*0.2;
5,6,7,8,9 : tax:=x*0.3;
10 : tax:=x*0.5
end;
Writeln('tt=',tt:5:2) ;
Readln
End.
上机实践:
1.调试书本上的例题3.5再完成以下任务:
2.某全自动加油站a,b,c三种汽油的单价(元/kg)分别是1.50、1.35和1.18,也提供了“自己加”或“协助加”两个服务等级,这样用户可以得到5%或10%的优惠。
编一个程序,用户输入加油量、汽油品种和服务类型(f-自动,m-自己,e-协助),然后计算应付款。
3. 打印某年某月有多少天。
(提示:A、闰年的计算方法:年数能被4整除,并且不能被100整除;或者能被400整除的整数年份。
B、利用MOD运算可以判断一个数能否被另一个数整除。
C、用CASE 语句)
4、当前小学生的成绩单由以前的百分制改为优秀、良好、合格、不合格四个等级的等级制。
编一程序完成分数的自动转换工作。
转换规则如下:60分以下的为不合格;60到69分为合格;70到89分为良好;90分以上的为优秀。
(提示:可以利用DIV运算来使程序更简明,结合case语句)。