好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

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

8页
  • 卖家[上传人]:慢***
  • 文档编号:231282755
  • 上传时间:2021-12-28
  • 文档格式:DOC
  • 文档大小:74KB
  • / 8 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 实验三 选择结构程序设计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#includevoid main(){ int a,b,max; scanf("%d%d",&a,&b); /*从键盘输入两整数*/ max=a; if(max

      因此该程序的功能是输入两个整数,输出其中的大数单分支结构if语句的一般形式:if(表达式) 语句;其语义,如果表达式的值为非零值(为真),则执行其后的语句,否则不执行该语句小结:1. 表达式也称为条件表达式,可以包括常量、变量和表达式的任意表达式常用的是单一变量,关系表达式和逻辑表达式2. 若语句由两条以上的语句组成时,必须用花括号{}括起来,组合成一条复合语句3.2】编程实现,从键盘输入一个字符型数据,若输入小写字符,则将其转换成大写字符,输出相应的整数;若输入其它字符,则显示出错信息程序文件名为:ex3_2.c分析:根据题意,本程序要解决三个问题,1)输入字符数据;2)判断输入的字符是否是小写字符;3)输出(输出大写字符相应的整数或输出错误信息) 因此根据判断条件输出两种结果的其中一个include void main(){ char c; scanf("%c",&c); if(a<=c&&c<=z) { c=c-32; printf("%d\n",c); } else printf("data error\n");}第一次运行程序, 输入测试数据:a 程序运行结果:65第二次运行程序, 输入测试数据:A 程序运行结果:data error双分支结构if语句的一般形式:if(表达式) 语句1;else 语句2;其语义,如果表达式的值为非零值(为真),则执行if后的语句1,否则执行else后的语句2。

      同理,使用该语句时,表达式(条件表达式)是可以包括常量、变量和表达式的任意表达式若语句1或语句2是由两条以上的语句组成,则必须用必须用花括号{}括起来,组合成一条复合语句小结:1. 任意字符在内存中都以ASCII码存储,一个字符数据既可以以字符形式输出(输出格式控制符%c),也可以以整数形式输出(输出格式控制符%d)2. 字符数据可以进行算术运算,即相当于对其字符数据的ASCII码进行运算根据这一特点,可实现大小写字符的相互转换 小写字母转换为大写字母: c=c-32 或者 c=c- a+A大写字母转换为小写字母: c=c+32 或者 c=c+ a-A3. 字符数据可以进行比较运算,因此判断一个字符属于哪个范围可采用下列方式实现属于小写字母的表达式: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语句include void main(){ int m,n; printf("Input 2 number m & n:"); scanf("%d%d",&m,&n); if(m%n==0) /*判断m能否被n整除*/ printf("m=%d,n=%d",m,n); else printf("%d",m%n);}第一次运行程序, 输入测试数据: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.求余运算符“%”,求余运算只能求任意两整数的余数3.4】输入x的值求分段函数y的值程序文件名:ex3_4.c分析:本程序是求分段函数的值,根据x的取值不同,出现了三个分支的情形因此采用多分支的控制结构,嵌套的if语句实现编程思路,当有多分支结构时,可先转换为二分支结构,如选择表达式条件为(x<1),条件为真计算y=x,条件为假继续采用if-else语句判断,在else分支中继续采用if-else二分支结构include void main(){ float x,y; scanf("%f",&x); if(x<1) y=x; else { if(x<10) /*该if-else语句嵌套在上一个if-else的else中*/ y=2*x-1; else y=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;else if(表达式2) 语句2;else 语句3; 形式4:if(表达式1) if(表达式2) 语句1;else 语句2; else if(表达式3) 语句3;else 语句4;if语句的嵌套不影响if语句的独立性if语句的嵌套使用起来比较灵活,嵌套层次对应时内层的语句要被完整地包含在外层的语句之内小结:1. 编程的方法并非唯一,对于多分支结构也可以用多条简单的if语句实现如下修改后的程序include void main(){ float x,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);}2. 正确使用逻辑运算符,逻辑与(&&)和逻辑或(||)。

      如,的合法的C语言表达式,1<=x && x<=10 3.5】 编写实现:利用switch语句模拟两个整数的加、减、乘、除运算如,输入5+2,输出5+2=7 ;如,输入5/2,输出5/2=2.50程序文件名:ex3_5.c分析:本程序的关键是由输入的运算符来决定运算的结果因此引入一个字符变量存放算术运算符,由该变量的字符值来选择做何种运算include void main() { int a,b; char ch; 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后常量为 +后的语句执行。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.