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

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

举报
开通vip

实验三-选择结构程序设计实验三选择结构程序设计3.1实验要求与目的1.掌握关系表达式和逻辑表达式的正确应用2.条件表达式的正确应用3.掌握if语句,if-else语句,if语句的嵌套的编程方法4.掌握switch的编程方法及执行特点5.掌握相关的算法(大小写字母的转换,判断数的奇偶,整数的整除,分段函数的求解,成绩的转换等)6.培养解决实际问题的能力3.2实验指导结构化程序设计的三大结构:顺序结构、选择结构和循环结构。计算机在执行过程时,根据条件选择所要执行的语句,称为选择结构,也称为分支结构。在解决实际问题时,可能会因为其种条件的约束产...

实验三-选择结构程序设计
实验三选择结构程序设计3.1实验 要求 对教师党员的评价套管和固井爆破片与爆破装置仓库管理基本要求三甲医院都需要复审吗 与目的1.掌握关系 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 达式和逻辑表达式的正确应用2.条件表达式的正确应用3.掌握if语句,if-else语句,if语句的嵌套的编程方法4.掌握switch的编程方法及执行特点5.掌握相关的算法(大小写字母的转换,判断数的奇偶,整数的整除,分段函数的求解,成绩的转换等)6.培养解决实际问题的能力3.2实验指导结构化程序设计的三大结构:顺序结构、选择结构和循环结构。计算机在执行过程时,根据条件选择所要执行的语句,称为选择结构,也称为分支结构。在解决实际问题时,可能会因为其种条件的约束产生分支,可能是单分支结构、双分支结构和多分支结构等。因此可选择相应的语句进行程序设计。C语言程序设计实现单分支结构常采用,if语句;实现双分支结构常采用:if-else语句;实现多分支结构常采用:if-else嵌套语句或switch语句。选择结构的程序设计除了选择适当的语句外,另一关键问题是条件的正确表示。条件可以用表达式来描述,如关系表达式、逻辑表达式等。【3.1】录入下列程序,输入给定的测试数据,观察其程序执行结果。程序文件名为:ex3_1.c。输入测试数据:2356程序运行结果:max=56#includevoidmain(){inta,b,max;scanf("%d%d",&a,&b);/*从键盘输入两整数*/max=a;if(maxvoidmain(){charc;scanf("%c",&c);if('a'<=c&&c<='z'){c=c-32;printf("%d\n",c);}elseprintf("dataerror\n");}第一次运行程序,输入测试数据:a程序运行结果:65第二次运行程序,输入测试数据:A程序运行结果:dataerror双分支结构if语句的一般形式:if(表达式)语句1;else语句2;其语义,如果表达式的值为非零值(为真),则执行if后的语句1,否则执行else后的语句2。同理,使用该语句时,表达式(条件表达式)是可以包括常量、变量和表达式的任意表达式。若语句1或语句2是由两条以上的语句组成,则必须用必须用花括号{}括起来,组合成一条复合语句。小结:任意字符在内存中都以ASCII码存储,一个字符数据既可以以字符形式输出(输出 格式 pdf格式笔记格式下载页码格式下载公文格式下载简报格式下载 控制符%c),也可以以整数形式输出(输出格式控制符%d)。字符数据可以进行算术运算,即相当于对其字符数据的ASCII码进行运算。根据这一特点,可实现大小写字符的相互转换。小写字母转换为大写字母:c=c-32或者c=c-'a'+'A'大写字母转换为小写字母:c=c+32或者c=c+'a'-'A'字符数据可以进行比较运算,因此判断一个字符属于哪个范围可采用下列方式实现。属于小写字母的表达式:'a'<=c&&c<='z'或者97<=c&&c<=122属于大写字母的表达式:'A'<=c&&c<='Z'或者65<=c&&c<=90属于数值字符的表达式:'0'<=c&&c<='9'或者48<=c&&c<=57【3.3】从键盘输入两个整数m,n(假设输入的数m>0,n>0),判断m能否被n整除,若能输出m和n,否则输出m与n的余数。程序文件名:ex3_3.c。分析:分析问题,理出算法,是程序设计的核心,如何实现m能否被n整除是解决该问题的关键。m能被n整除的表达式:m%n==0。实现程序编写的要点是学会对题意的“翻译”。即,从键盘输入数一定采用scanf格式输入函数。判断m能否被n整除,其判断结果只有两个,能整除输出原数,否则输出两数的余数,因此可采用选择结构的if-else语句。#includevoidmain(){intm,n;printf("Input2numberm&n:");scanf("%d%d",&m,&n);if(m%n==0)/*判断m能否被n整除*/printf("m=%d,n=%d",m,n);elseprintf("%d",m%n);}第一次运行程序,输入测试数据:217程序运行结果:m=21,n=7第二次运行程序,输入测试数据:236程序运行结果:5小结:1.由此题可扩展为,判断一个数是偶数还是奇数。若m是偶数则只需考虑m能否被2整除,若能整除,则m是偶数,不能整除则m是奇数。2.注意一个等号“=”与双等号“==”的区别。一个等号称为赋值号,若a=5,其含义是将5赋给a。双等号为算术运算符“等号”,若a==5,其含义是变量a的值与整数5是否相等。3.求余运算符“%”,求余运算只能求任意两整数的余数。【3.4】输入x的值求分段函数y的值。程序文件名:ex3_4.c。分析:本程序是求分段函数的值,根据x的取值不同,出现了三个分支的情形。因此采用多分支的控制结构,嵌套的if语句实现。编程思路,当有多分支结构时,可先转换为二分支结构,如选择表达式条件为(x<1),条件为真计算y=x,条件为假继续采用if-else语句判断,在else分支中继续采用if-else二分支结构。#includevoidmain(){floatx,y;scanf("%f",&x);if(x<1)y=x;else{if(x<10)/*该if-else语句嵌套在上一个if-else的else中*/y=2*x-1;elsey=3*x-11;}printf("x=%.2f,y=%.2f",x,y);}第一次运行程序,输入测试数据:-3程序运行结果:x=-3.00,y=-3.00第二次运行程序,输入测试数据:7程序运行结果:x=7.00,y=13.00第三次运行程序,输入测试数据:13程序运行结果:x=13.00,y=28.00if-else嵌套实现多分支结构,嵌套的形式多种多样,无论如何嵌套else子句与if的匹配原则总是从最内层开始,即else与在它上面离它最近的,且尚未曾配对的if配对,else无二义性。常见的几种嵌套形式。形式1:if(表达式1)if(表达式2)语句1;else语句2;形式2:if(表达式1)if(表达式2)语句1;else语句2;else语句3;形式3:if(表达式1)语句1;elseif(表达式2)语句2;else语句3;形式4:if(表达式1)if(表达式2)语句1;else语句2;elseif(表达式3)语句3;else语句4;if语句的嵌套不影响if语句的独立性。if语句的嵌套使用起来比较灵活,嵌套层次对应时内层的语句要被完整地包含在外层的语句之内。小结:编程的方法并非唯一,对于多分支结构也可以用多条简单的if语句实现。如下修改后的程序。#includevoidmain(){floatx,y;scanf("%f",&x);if(x<1)y=x;if(x>=1&&x<=10)y=2*x-1;if(x>10)y=3*x-11;printf("x=%.2f,y=%.2f",x,y);}正确使用逻辑运算符,逻辑与(&&)和逻辑或(||)。如,的合法的C语言表达式,1<=x&&x<=10。【3.5】编写实现:利用switch语句模拟两个整数的加、减、乘、除运算。如,输入5+2,输出5+2=7;如,输入5/2,输出5/2=2.50。程序文件名:ex3_5.c。分析:本程序的关键是由输入的运算符来决定运算的结果。因此引入一个字符变量存放算术运算符,由该变量的字符值来选择做何种运算。#includevoidmain(){inta,b;charch;scanf("%d%c%d",&a,&ch,&b);switch(ch){case'+':printf("%d+%d=%d\n",a,b,a+b);break;case'-':printf("%d-%d=%d\n",a,b,a-b);break;case'*':printf("%d*%d=%d\n",a,b,a*b);break;case'/':printf("%d/%d=%.2f\n",a,b,(float)a/b);break;}}第一次运行程序,输入测试数据:5+2程序运行结果:5+2=7第二次运行程序,输入测试数据:5-2程序运行结果:5-2=3第三次运行程序,输入测试数据:5*2程序运行结果:5*2=10第四次运行程序,输入测试数据:5/2程序运行结果:5/2=2.50该源程序中switch语句的表达式的值为字符,当字符变量ch的值为“+”时,则选取case后常量为'+'后的语句执行。若没有break语句,会依次执行其后所有case后的语句组。若有break语句,中断该switch语句。因此,switch语句实现多分支结构的关键是只需对条件判断一次,然后从其多种结果中取一种情形执行。通常情况下,采用switch语句实现多分支结构时,需使用break语句。但该语句的一般格式中是不包含break语句的。switch的一般格式:switch(表达式){case常量表达式1:语句1case常量表达式2:语句2…case常量表达式n:语句ndefault:语句n+1}switch语句中的表达式的值,通常情况下,为整型值或字符型值。若为实型值时自动取整。而case后的各常量表达式数据类型的值必须互不相同,否则会出现错误。default子句也可以省略。小结:1.scanf函数中格式控制符为"%f%c%f",要求从键盘输入数据时,数、字符与数之间不能用空格分隔,否则结果会出错。2.用switch语句实现多分支结构时,要正确合理地使用break语句。3.3实验内容3.3.1夯实基础【3.6】从键盘输入任意两个正整数m,n,判断m能否被n整除,若能输出m与n的值,否则继续判断两个数的奇偶性,若为奇数输出“Odd”,若为偶数输出“Even”。程序文件名:ex3_6.c。第一次运行程序输入测试数据:494程序运行结果:49:Odd4:Even第二次运行程序输入测试数据:248程序运行结果:248【3.7】编程实现,为鼓励居民节约用水,A市对居民用水按水量阶梯式计价。计价 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 :按每年用水量统计,不超过180立方米的部分按每立方米5元收费;超过180立方米不超过260立方米的部分按每立方米7元收费;超过260立方米的部分按每立方米9元收费。编程对水费进行计算,要求保留两位小数。程序文件名:ex3_7.c输入测试数据:200程序运行结果:x:200.0y:1040.00【3.8】编程实现,判断某一年是否是闰年。程序文件名:ex3_8.c。【提示】:判断某一年是否是闰年的条件是这一年的年份能被4整除但不能被100整除或者能被400整除。第一次运行程序输入测试数据:2015程序运行结果:2015isnotaleapyear第二次运行程序输入测试数据:2016程序运行结果:2016isaleapyear【3.9】编程实现,将一个百分制成绩转换为五分制成绩。转换原则,当成绩大于或等于90分为A,小于90分且大于等于80分为B,小于80分且大于等于70分为C,小于70分且大于等于60分为D;小于60分为E。程序文件名ex3_9.c。3.3.2应用提高【3.10】编程实现:输入任意四个整数n1、n2、n3、n4,求四个数中的最大值。程序文件名:ex3_10.c。输入测试数据:56348723程序运行结果:max=87【3.11】编程实现:中国有句俗语“三天打鱼两天晒网”。某人从某天起,开始“三天打鱼两天晒网”,问这个人在以后的第n天中是“打鱼”还是“晒网”。程序文件名:ex3_10.c。第一次运行程序输入测试数据:100程序运行结果:晒网第二次运行程序输入测试数据:73程序运行结果:打鱼3.4实验思考【思考1】若将【3.2】程序中的条件表达式'a'<=c&&c<='z'写成'a'<=c<='z',程序会不会出错?输入测试数据A,写出程序运行结果。【思考2】阅读下列程序,写出其运行结果。#includevoidmain(){chara=66;if(a%2==0)putchar(a);elseputchar(a+32);}程序运行结果:修改条件表达式为:a%2=0,程序还会运行吗?
本文档为【实验三-选择结构程序设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
慢慢文档
8年外贸单证以及相关的工作经验
格式:doc
大小:74KB
软件:Word
页数:12
分类:管理学
上传时间:2023-03-19
浏览量:3