实验4 选择结构程序设计_第1页
实验4 选择结构程序设计_第2页
实验4 选择结构程序设计_第3页
实验4 选择结构程序设计_第4页
实验4 选择结构程序设计_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验4分枝结构程序设计实验4选择结构程序设计1.实验目的(1)熟练掌握if语句的三种形式,在实际中能根据具体情况灵活选择某种形式的if语句(2)进一步熟悉关系表达式和逻辑表达式(3)熟练掌握switch语句的功能、格式和执行过程(4)能用switch语句实现简单的选择功能2.实验内容2.1基础知识(1)在横线上填上适当的标点符号。 该程序的功能是输出a、b中的最大值。#include“stdio.h”voidmain()实验4分枝结构程序设计{inta,b,t;scanf("%d%d",&a,&b);if___b>a_______t=a;a=b;b=t;____ptintf("\nmax=%d",a);}(2)在横线上填上适当的标点符号。将题(1)改写成if—else的形式:#include“stdio.h”voidmain(){inta,b,t;scanf("%d%d",&a,&b);if___a>b_______ptintf("\nmax=%d",a);____/*思考:此处的符号是否可以省略?什么情况下不能省略?*/else ____ptintf("\nmax=%d",b);____}(3)在横线上填上适当的标点符号。switch(表达式){case_____常量表达式1____语句1____ case_____常量表达式2____语句2____ ……default____语句n____}(4)对于if—else语句,如果分支较多,有时用swtich语句更加合适,swtich语句是多分支选择结构,其执行过程:首先比较___________与___________是否相等,如果相等,则执行case后面的语句,如果都不相等,则执行__________。2.2阅读程序(1)#include“stdio.h”voidmain(){intnumber;printf(“number=“);scanf(“%d”,&number);if(number%10==0)printf(“%d是10的倍数。”,number);}回答:当输入300时,程序的运行结果是什么?当输入27时,程序的运行结果是什么?(2)#include“stdio.h”voidmain(){intnumber;printf(“number=“);scanf(“%d”,&number);if(number%10==0)printf(“%d是10的倍数。”,number);elseprintf(“%d不是10的倍数。”,number);}回答:当输入300时,程序的运行结果是什么?当输入27时,程序的运行结果是什么?(3)#include“stdio.h”voidmain(){intnumber;printf(“number=“);scanf(“%d”,&number);if(number>0)printf(“%d为正数。”,number);elseif(number==0)printf(“%d为零。”,number);elseprintf(“%d为负数。”,number);}回答:当分别输入-10、0、10时,程序的运行结果是什么?(4)#include“stdio.h”voidmain() {intn;scanf(“%d”,&n);swtich(n) {case1:puts(“*”); case2:puts(“**”);case3:puts(“***”);default:puts(“?”);}}回答:当分别输入1、2、3、4、10时,程序的运行结果是什么?如果希望程序出现这样的结果:当输入1时,输出:*当输入2时,输出:**当输入3时,输出:***当输入其他数时,输出:?则程序应该如何修改?(5)#include“stdio.h”voidmain(){inta,b,c,t;printf(“输入a、b、c的值:”);scanf(“%d%d%d”,&a,&b,&c);if(a>b){t=a;a=b;b=t;}//如果a>b,则交换a、b的值if(a>c){t=a;a=c;c=t;}//如果a>c,则交换a、c的值if(b>c){t=b;b=c;c=t;}//如果b>c,则交换b、c的值printf(“\n%d,%d,%d\n”,a,b,c);}回答:该程序的功能是什么?还有什么其他的写法可以完成此功能?并比较这些写法,那些具有通用性?(6)#include“stdio.h”voidmain(){inta=100,x=10,y=20,k1=5,k2=0;if(x<y)if(y!=10)if(!k1)a=1;elseif(k2)a=10;elsea=-1;printf(“a=%d”,a);}回答:该程序的输出结果是什么?如果k1=0,输出结果是什么?如果k2=1,输出结果是什么?2.3程序填空(1)下面程序的功能是:输入一个百分制成绩,输出用A、B、C、D、E表示的成绩等级。已知90分以上为A等;80到89分为B等;70到79分为C等;60到69分为D等;60分以下为E等。在横线处填写正确的语句或表达式,使程序完整,并调试程序,使程序的运行结果与给出的结果一致。#include“stdio.h”voidmain(){intgrade;//该变量表示学生的成绩printf(“输入成绩:”);scanf(“%d”,&grade);grade=grade/10;/*grade/10的目的是减少case语句的个数,使程序具有可行switch(__________)性,也是该题目的关键。*/{case10:case9:printf(___________);break;case8:printf(“等绩为B”);________;case7:________________;________;case6:________________;________;default:________________;}}运行结果一:输入成绩:98↙等级为A运行结果二:输入成绩:100↙等级为A运行结果三:输入成绩:80↙等级为B运行结果四:输入成绩:65↙等级为D运行结果五:输入成绩:51↙等级为E(2)将上一题2.3(1)改写成if—else语句,要求运行结果相同。#include“stdio.h”voidmain(){intgrade;//该变量表示学生的成绩printf(“输入成绩:”);scanf(“%d”,&grade);if(_______________)printf(“等级为A”); elseif(_______________)printf(“等级为B”); elseif(_______________)printf(“等级为C”); elseif(_______________)printf(“等级为D”); elseprintf(“等级为E”);}(3)将上一题2.3(1)改写成if语句,要求运行结果相同。#include“stdio.h”voidmain(){intgrade;//该变量表示学生的成绩printf(“输入成绩:”);scanf(“%d”,&grade);if(____________________________)printf(“等级为A”); if(____________________________)printf(“等级为B”); if(____________________________)printf(“等级为C”); if(____________________________)printf(“等级为D”); if(____________________________)printf(“等级为E”);}注意:对比(2)(3)题中if语句的条件写法有何不同,仔细体会if—else语句中else的含义。回答:能否将(3)中的最后一行if语句改成:elseprintf(“等级为E”);为什么?(4)下面程序的功能是:输入年、月,输出该月有多少天。请在横线处填写正确的表达式或语句,使程序完整。上机调试程序,使程序的运行结果与书中的结果一致。#include“stdio.h”voidmain(){inty,m,days;printf(“输入年份、月份:”);scanf(“%d%d”,&y,&m);//每年的1、3、5、7、8、10、12月都有31天。if(__________________________________)days=31;//每年的4、6、9、11月都有30天。elseif(m==4||m==6||m==9||m==11)____________;//2月份要考虑平年闰年才能确定天数。else{if(__________________________)days=29;elsedays=28;}printf(“________________________”,y,m,days);}运行结果一:输入年份、月份:19815↙1981年5月份有31天。运行结果二:输入年份、月份:199911↙1999年11月份有30天。运行结果三:输入年份、月份:20002↙2000年2月份有29天。运行结果四:输入年份、月份:20092↙2009年2月份有28天。(5)该程序的功能是模拟简单计算机器,进行两个数的加、减、乘、除四则运算。如:输入2+3,则输出2+3=5;输入2*3,则输出2*3=6。将程序补充完整,时运行结果与书中的运行结果一致。#include“stdio.h”voidmain(){floatx,y;//x、y为参与计算的两个数 charop;//op为运算符printf(“输入运算表达式:”);scanf(“%f%c%f”,&x,&op,&y);//如输入:2+3switch(op)//用switch语句,通过判断运算符,进行相应的计算//匹配加法运算:如果op为“+”则输出2+3=5{case_____:printf(__________________________________________);break;//匹配减法运算:如果op为“-”则输出2-3=-1case_____:printf(__________________________________________);break;//匹配乘法运算:如果op为“*”则输出2*3=6case_____:printf(__________________________________________);break;//匹配除法运算:如果op为“/”则输出2/3=0.67case_____://在除法中要考虑到除数不能为0if(y!=0){printf(______________________________________);break;}else{printf(“除数为0!”);break;}default:printf(“输入表达式有误!\n”);}}运行结果一:输入运算表达式:2+3↙2+3=5运行结果二:输入运算表达式:2-3↙2-3=-1运行结果三:输入运算表达式:2*3↙2*3=6运行结果四:输入运算表达式:2/3↙2/3=0.67运行结果四:输入运算表达式:2/3↙2/3=0.67运行结果五:输入运算表达式:2/0↙除数为0!运行结果六:输入运算表达式:2#3↙输入表达式有误!2.4编写程序(1)有一函数x(x<1)y=2x-1(1<=x<10)3x-11(x>=10)写一程序,输入x,输出y的值。(2)编一程序,要求实现下面的功能:输入一个实数后,屏幕上显示如下菜单:1

.输出相反数2.输出平方数3.输出平方根若按1键,则输出该数的相反数;按2键,则输出该数的平方数;按3键,则输出该数的平方根。按1~3之外的其他键时,显示“输入出错”。要求:应尽可能使程序的输入输出界面美观。(3)编写一个自动售货机的程序。该程序应具有如下功能:有二级菜单,一级菜单是商品类的选择,二级是具体商品的选择。顾客首先选择商品类,然后再选择具体的商品,输入购买数量,自动售货机根据选择的商品及数量,计算并显示顾客应付的总金额。运行结果:请选择:1.日用品2.文具3.食品1↙请选择:1.牙刷(3.5元/支)2.牙膏(4.5元/支)3.肥皂(2元/块)4.毛巾(7元/条)3↙数量?5↙总计:10.00元提

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论