当前位置:文档之家› 实验三-选择结构程序设计

实验三-选择结构程序设计

实验三-选择结构程序设计实验三选择结构程序设计实验要求与目的1.掌握关系表达式和逻辑表达式的正确应用 2.条件表达式的正确应用3. 掌握if语句,if-else语句,if语句的嵌套的编程方法4. 掌握switch的编程方法及执行特点5.掌握相关的算法6. 培养解决实际问题的能力实验指导结构化程序设计的三大结构:顺序结构、选择结构和循环结构。

计算机在执行过程时,根据条件选择所要执行的语句,称为选择结构,也称为分支结构。

在解决实际问题时,可能会因为其种条件的约束产生分支,可能是单分支结构、双分支结构和多分支结构等。

因此可选择相应的语句进行程序设计。

C语言程序设计实现单分支结构常采用,if语句;实现双分支结构常采用:if-else语句;实现多分支结构常采用:if-else嵌套语句或switch语句。

选择结构的程序设计除了选择适当的语句外,另一关键问题是条件的正确表示。

条件可以用表达式来描述,如关系表达式、逻辑表达式等。

录入下列程序,输入给定的测试数据,观察其程序执行结果。

程序文件名为:ex3_。

输入测试数据:23 56程序运行结果:max=56 #include void main() {int a,b,max;scanf(\ /*从键盘输入两整数*/ max=a;if(max void main() {char c;scanf(\ if('a' void main() {int m,n;printf(\ m & n:\ scanf(\if(m%n==0) /*判断m能否被n整除*/ printf(\ elseprintf(\}第一次运行程序,输入测试数据:21 7 程序运行结果:m=21,n=7 第二次运行程序。

输入测试数据:23 6 程序运行结果:5 小结:1.此题可扩展为,判断一个数是偶数还是奇数。

若m是偶数则只需考虑m能否被2整除,若能整除,则m是偶数,不能整除则m是奇数。

2.注意一个等号“=”与双等号“==”的区别。

一个等号称为赋值号,若a=5,其含义是将5赋给a。

双等号为算术运算符“等号”,若a==5,其含义是变量a的值与整数5是否相等。

3.求余运算符“%”,求余运算只能求任意两整数的余数。

输入x的值求分段函数y的值。

程序文件名:ex3_。

x1x y2x1 1x103x11 x10分析:本程序是求分段函数的值,根据x的取值不同,出现了三个分支的情形。

因此采用多分支的控制结构,嵌套的if语句实现。

编程思路,当有多分支结构时,可先转换为二分支结构,如选择表达式条件为,条件为真计算y=x,条件为假继续采用if-else语句判断,在else分支中继续采用if-else二分支结构。

#include void main() {float x,y;scanf(\ if(x void main() {float x,y;scanf(\ if(x=1&&x10) y=3*x-11;printf(\}2. 正确使用逻辑运算符,逻辑与和逻辑或。

如,1x10的合法的C语言表达式,1 void main(){ int a,b; char ch;scanf(\ switch(ch){ case '+':printf(\case '-':printf(\ case '*':printf(\case '/':printf(\ } }第一次运行程序,输入测试数据:5+2 程序运行结果:5+2=7 第二次运行程序。

输入测试数据:5-2 程序运行结果:5-2=3 第三次运行程序。

输入测试数据:5*2 程序运行结果:5*2=10 第四次运行程序,输入测试数据:5/2程序运行结果:5/2=该源程序中switch语句的表达式的值为字符,当字符变量ch的值为“+”时,则选取case后常量为 '+'后的语句执行。

若没有break语句,会依次执行其后所有case后的语句组。

若有break语句,中断该switch语句。

因此,switch语句实现多分支结构的关键是只需对条件判断一次,然后从其多种结果中取一种情形执行。

通常情况下,采用switch语句实现多分支结构时,需使用break语句。

但该语句的一般格式中是不包含break语句的。

switch的一般格式: switch(表达式) {case常量表达式1: 语句1 case常量表达式2: 语句2 …case常量表达式n: 语句n default : 语句n+1 }switch语句中的表达式的值,通常情况下,为整型值或字符型值。

若为实型值时自动取整。

而case后的各常量表达式数据类型的值必须互不相同,否则会出现错误。

default 子句也可以省略。

小结:函数中格式控制符为\,要求从键盘输入数据时,数、字符与数之间不能用空格分隔,否则结果会出错。

2.用switch语句实现多分支结构时,要正确合理地使用break语句。

实验内容夯实基础从键盘输入任意两个正整数m,n,判断m能否被n整除,若能输出m与n的值,否则继续判断两个数的奇偶性,若为奇数输出“Odd”,若为偶数输出“Even”。

程序文件名:ex3_。

第一次运行程序输入测试数据:49 4 程序运行结果:49:Odd4:Even第二次运行程序输入测试数据:24 8 程序运行结果:24 8编程实现,为鼓励居民节约用水,A市对居民用水按水量阶梯式计价。

计价标准:按每年用水量统计,不超过180立方米的部分按每立方米5元收费;超过180立方米不超过260立方米的部分按每立方米7元收费;超过260立方米的部分按每立方米9元收费。

编程对水费进行计算,要求保留两位小数。

程序文件名:ex3_输入测试数据:200程序运行结果:x: y:编程实现,判断某一年是否是闰年。

程序文件名:ex3_。

【提示】:判断某一年是否是闰年的条件是这一年的年份能被4整除但不能被100整除或者能被400整除。

第一次运行程序输入测试数据:20XX程序运行结果:20XX is not a leap year 第二次运行程序输入测试数据:20XX程序运行结果:20XX is a leap year编程实现,将一个百分制成绩转换为五分制成绩。

转换原则,当成绩大于或等于90分为A,小于90分且大于等于80分为B,小于80分且大于等于70分为C,小于70分且大于等于60分为D;小于60分为E。

程序文件名ex3_。

应用提高编程实现:输入任意四个整数n1、n2、n3、n4,求四个数中的最大值。

程序文件名:ex3_。

输入测试数据:56 34 87 23程序运行结果:max=87编程实现:中国有句俗语“三天打鱼两天晒网”。

某人从某天起,开始“三天打鱼两天晒网”,问这个人在以后的第n天中是“打鱼”还是“晒网”。

程序文件名:ex3_。

第一次运行程序输入测试数据:100 程序运行结果:晒网第二次运行程序输入测试数据:73 程序运行结果:打鱼实验思考【思考1】若将程序中的条件表达式'a' void main() { char a=66; if(a%2==0) putchar(a); elseputchar(a+32); }程序运行结果:修改条件表达式为:a%2=0,程序还会运行吗?实验三选择结构程序设计实验要求与目的1.掌握关系表达式和逻辑表达式的正确应用 2.条件表达式的正确应用3. 掌握if语句,if-else语句,if语句的嵌套的编程方法4. 掌握switch的编程方法及执行特点5.掌握相关的算法6. 培养解决实际问题的能力实验指导结构化程序设计的三大结构:顺序结构、选择结构和循环结构。

计算机在执行过程时,根据条件选择所要执行的语句,称为选择结构,也称为分支结构。

在解决实际问题时,可能会因为其种条件的约束产生分支,可能是单分支结构、双分支结构和多分支结构等。

因此可选择相应的语句进行程序设计。

C语言程序设计实现单分支结构常采用,if语句;实现双分支结构常采用:if-else语句;实现多分支结构常采用:if-else嵌套语句或switch语句。

选择结构的程序设计除了选择适当的语句外,另一关键问题是条件的正确表示。

条件可以用表达式来描述,如关系表达式、逻辑表达式等。

录入下列程序,输入给定的测试数据,观察其程序执行结果。

程序文件名为:ex3_。

输入测试数据:23 56程序运行结果:max=56 #include void main() {int a,b,max;scanf(\ /*从键盘输入两整数*/ max=a;if(max void main() {char c;scanf(\ if('a' void main() {int m,n;printf(\ m & n:\ scanf(\if(m%n==0) /*判断m能否被n整除*/ printf(\ elseprintf(\}第一次运行程序,输入测试数据:21 7 程序运行结果:m=21,n=7 第二次运行程序。

输入测试数据:23 6 程序运行结果:5 小结:1.此题可扩展为,判断一个数是偶数还是奇数。

若m是偶数则只需考虑m能否被2整除,若能整除,则m是偶数,不能整除则m是奇数。

2.注意一个等号“=”与双等号“==”的区别。

一个等号称为赋值号,若a=5,其含义是将5赋给a。

双等号为算术运算符“等号”,若a==5,其含义是变量a的值与整数5是否相等。

3.求余运算符“%”,求余运算只能求任意两整数的余数。

输入x的值求分段函数y的值。

程序文件名:ex3_。

x1x y2x1 1x103x11 x10分析:本程序是求分段函数的值,根据x的取值不同,出现了三个分支的情形。

因此采用多分支的控制结构,嵌套的if语句实现。

编程思路,当有多分支结构时,可先转换为二分支结构,如选择表达式条件为,条件为真计算y=x,条件为假继续采用if-else语句判断,在else分支中继续采用if-else二分支结构。

#include void main() {float x,y;scanf(\ if(x void main() {float x,y;scanf(\ if(x=1&&x10) y=3*x-11;printf(\}2. 正确使用逻辑运算符,逻辑与和逻辑或。

如,1x10的合法的C语言表达式,1 void main() { int a,b; char ch;。

相关主题