




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
南昌大学实验报告实验类型:□验证eq\o\ac(□,√)综合□设计□创新实验日期:实验成绩:实验3控制语句二.实验目的1.熟练掌握if、if…else、if…else、if语句和switch语句格式及使用方法,掌握if语句中的嵌套关系和匹配原那么,利用if语句和switch语句实现分支选择结构。2.熟练掌握while语句、do...while语句和for语句格式及使用方法,掌握三种循环控制语句的循环过程以及循环结构的嵌套,利用循环语句实现循环结构。3.掌握简单、常用的算法,并在编程过程中体验各种算法的编程技巧。进一步学习调试程序,掌握语法错误和逻辑错误的检查方法。三.实验内容选择结构程序设计;if语句的使用;使用switch语句实现多分支选择结构;三种循环语句的应用;循环结构的嵌套;break和continue语句的使用。三.实验环境PC微机DOS操作系统或Windows操作系统Visualc++程序集成环境四.实验内容和步骤本实验要求事先编好解决下面问题的程序,然后上机输入程序并调试运行程序。学会单步调试和断点调试程序及变量跟踪方法。1.通过键盘输入一个字符,判断该字符是数字字符、大写字母、小写字母、空格还是其他字符。2.编程实现:输入一个整数,判断该数的正负性和奇偶性之后,将其数值按照①小于10,②10~99,③100~999,④1000以上四个类别分类并显示。要求:〔1〕将变量定义为整型。〔2〕输入整数前,利用cout给出提示信息。〔3〕输出结果时要有必要的说明,例如:输入358时,显示358is100to999。〔4〕该程序利用if语句实现。运行程序,分别输入9,21,321,4321数据检查输出信息的正确性。3.从键盘输入学生的考试成绩,利用计算机将学生的成绩划分等级并输出。学生的成绩可分成5个等级,90-100分为A级,80-89分为B级,70-79分为C级,60-69分为D级,0-59分为E级。要求在输入负数时,给出错误提示。①事先编好程序,要求分别用if语句和switch语句实现。运行程序,并检查结果是否正确。②再运行一次程序,输入分数为负值〔如-70〕,这显然是输入时出错,不应给出等级。修改程序,使之能正确处理任何数据。当输入数据大于100或小于0时,通知用户“输入数据错〞,程序结束4.某航空公司规定:在旅游旺季7~9月份,如果订票20张及其以上,优惠票价的10%,20张以下,优惠5%;在旅游淡季1~6月份,10~12月份,订票20张及其以上,优惠票价的20%,20张以下,优惠10%。编写一个C程序,根据月份和旅客订票张数决定优惠率。机票单价,请算出旅客的总付款。请使用不同的测试数据进行测试。5.编写程序:根据公式,输出π的值。要求:〔1〕变量π为单精度类型,n为整型;〔2〕计算当n的取值分别为20,50,100,200时的π值,说明什么问题?〔3〕修改程序,不给出n值,而改为求π值,直到最后一项的数值小于10-4为止。〔4〕对修改后的程序,输出π值以及总的项数n。输出格式为:π=值;n=值。6.从键盘输入一个0~1000之间的任意整数,输出该整数的所有因子〔例如:输入12,其因子为1,2,3,4,6,12〕。要求:〔1〕采用while循环语句实现。〔2〕输出格式为:Input:12Output:1,2,3,4,6,127.计算并输出N以内最大的10个素数以及它们的和,N为用户任意输入的正整数〔如:1000〕。要求:〔1〕在程序内部加必要的注释。〔2〕由于偶数不是素数,可以不考虑对偶数的处理。〔3〕需要考虑N以内的素数个数没有超过10个的情况处理。(4)输出形式为:素数1+素数2+素数+…+素数10=总和值。五.实验数据及处理结果[习题1]通过键盘输入一个字符,判断该字符是数字字符、大写字母、小写字母、空格还是其他字符。[问题分析]从键盘上输入一个字符,它的ASCII值如果等于32就是空格字符,如果在a和z之间就是小写字母;如果在Z和A之间就是大写字母;如果在字符0和9之间就是数字字符;以上都不是的,就是其他字符。[数据需求]这次输入需要一个空格输入,所以要用到c=cin.get(〕[算法设计][程序实现]#include<iostream>usingnamespacestd;intmain(){cout<<"请输入一个字符"<<endl; charch;cin.get(ch);if(ch==32)cout<<ch<<"是空格字符";elseif(ch>=48&&ch<=57)cout<<ch<<"是数字字符";elseif(ch<='z'&&ch>='a')cout<<ch<<"小写字母"; else if(ch<='Z'&&ch>='A')cout<<ch<<"是大写字母";elsecout<<ch<<"是其他字符";}[程序测试][习题2]编程实现:输入一个整数,判断该数的正负性和奇偶性之后,将其数值按照①小于10,②10~99,③100~999,④1000以上四个类别分类并显示。要求:〔1〕将变量定义为整型。〔2〕输入整数前,利用cout给出提示信息。〔3〕输出结果时要有必要的说明,例如:输入358时,显示358is100to999。〔4〕该程序利用if语句实现。运行程序,分别输入9,21,321,4321数据检查输出信息的正确性。[问题分析]这道题主要是使用if结构,输入一个数,先判断其奇偶,再判断其正负,然后再根据大小比拟,输出数字段即可。[数据需求]定义输入的数字为整型,在判断奇偶性时,还需要取余运算。[算法设计][程序实现]#include<iostream>usingnamespacestd;intmain(){inta;cout<<"输入一个整数"<<endl;cin>>a;if(a>0&&a%2==0){if(a<10){cout<<a<<"是一个正数且为偶数"<<endl;cout<<a<<"islessthan10";}if(a>=10&&a<=99){cout<<a<<"是一个正数且为偶数"<<endl;cout<<a<<"is10to99";}if(a>99&&a<=999){cout<<a<<"是一个正数且为偶数"<<endl;cout<<a<<"is100to999";}if(a==1000){cout<<a<<"是一个正数且为偶数"<<endl;cout<<a<<"isequalto1000";}if(a>1000) {cout<<a<<"是一个正数且为偶数"<<endl;cout<<a<<"ismorethan1000";}}if(a>0&&a%2!=0){if(a<10){cout<<a<<"是一个正数且为奇数"<<endl;cout<<a<<"islessthan10";}if(a>=10&&a<=99){cout<<a<<"是一个正数且为奇数"<<endl;cout<<a<<"is10to99";} if(a>=99&&a<=999) {cout<<a<<"是一个正数且为奇数"<<endl;cout<<a<<"is100to999";}if(a==1000){cout<<a<<"是一个正数且为奇数"<<endl;cout<<a<<"isequalto1000";}if(a>1000){cout<<a<<"是一个正数且为奇数"<<endl;cout<<a<<"ismorethan1000";} } if(a=0){cout<<a<<"是0且为偶数"<<endl;cout<<a<<"小于10";}if(a<0&&a%2==0){cout<<a<<"是一个负数且为偶数"<<endl;cout<<a<<"小于10";}if(a<0&&a%2!=0){cout<<a<<"是一个负数且为奇数"<<endl;cout<<a<<"小于10";}}[程序测试][习题3]从键盘输入学生的考试成绩,利用计算机将学生的成绩划分等级并输出。学生的成绩可分成5个等级,90-100分为A级,80-89分为B级,70-79分为C级,60-69分为D级,0-59分为E级。要求在输入负数时,给出错误提示。①事先编好程序,要求分别用if语句和switch语句实现。运行程序,并检查结果是否正确。②再运行一次程序,输入分数为负值〔如-70〕,这显然是输入时出错,不应给出等级。修改程序,使之能正确处理任何数据。当输入数据大于100或小于0时,通知用户“输入数据错〞,程序结束[问题分析]把成绩分为五个等级可以用switch语句实现,if语句用来提示错误[数据需求]需要输入学生的成绩,输出相应等级或者输入错误[算法设计]〔流程图中X为输入学生的成绩〕[程序实现]#include<iostream>usingnamespacestd;intmain(){ doublea; inti; cin>>a; if(a<0||a>100) cout<<"输入数据错误"<<endl; else { i=a/10;switch(i){ case0: case1: case2: case3: case4: case5:cout<<"E"<<endl;break; case6:cout<<"D"<<endl;break; case7:cout<<"C"<<endl;break;case8:cout<<"B"<<endl;break;case9:cout<<"A"<<endl;break;case10:cout<<"A"<<endl;break; }}}[程序测试]〔/*一共输入了9个数字*/〕[习题4]某航空公司规定:在旅游旺季7~9月份,如果订票20张及其以上,优惠票价的10%,20张以下,优惠5%;在旅游淡季1~6月份,10~12月份,订票20张及其以上,优惠票价的20%,20张以下,优惠10%。编写一个C程序,根据月份和旅客订票张数决定优惠率。机票单价,请算出旅客的总付款。请使用不同的测试数据进行测试。[问题分析]此题是在月份不同、票数不同计算总票价的问题,使用switch和if语句就好[数据需求]需要输入单价,输入月份,输入票数,然后做简单的计算就可以了[算法设计][程序实现]#include<iostream>usingnamespacestd;intmain(){ intm,n; doublep,sum; cout<<"请输入单价:"<<endl; cin>>p; cout<<"请输入月份:"<<endl; cin>>m; cout<<"请输入票数"<<endl; cin>>n; switch(m) { case7: case8: case9: if(n<=20) sum=p*n*(1-0.05); else sum=p*n*(1-0.1); cout<<"总价为"<<sum<<endl;break; default: if(n<=20) sum=p*n*(1-0.1); else sum=p*n*(1-0.2); cout<<"总价为"<<sum<<endl;break;}}[程序测试][[习题5]编写程序:根据公式,输出π的值。要求:〔1〕变量π为单精度类型,n为整型;〔2〕计算当n的取值分别为20,50,100,200时的π值,说明什么问题?当n值越大时,最后的约接近3.14,并且相差减小。〔3〕修改程序,不给出n值,而改为求π值,直到最后一项的数值小于10-4为止。〔4〕对修改后的程序,输出π值以及总的项数n。输出格式为:π=值;n=值。[问题分析]需要用for语句实现1/n2求和,然后做数学运算就好[数据需求]需要调用数学函数,pow()和sqrt()。对于修改前额程序,需要输入n值,对修改后的不需要做输入。[算法设计](修改前算法〕[程序实现]修改前:#include<iostream>#include<math.h>usingnamespacestd;intmain(){ intn; floatpai,sum; cout<<"请输入n值"<<endl; cin>>n; for(sum=0;n>=1;--n) sum=sum+pow(n,-2); pai=sqrt(6*sum); cout<<pai<<endl;}修改后:#include<iostream>#include<math.h>usingnamespacestd;intmain(){ intn=0; floatpai,sum=0,m=0; do { m=pow(n,-2); ++n; sum=sum+pow(n,-2); } while(m>=1e-4); pai=sqrt(6*sum); cout<<"pai="<<pai<<endl; cout<<"n="<<n<<endl;} [程序测试]修改前:当n值越大时,最后的约接近3.14,并且相差减小。修改后:[习题6]从键盘输入一个0~1000之间的任意整数,输出该整数的所有因子〔例如:输入12,其因子为1,2,3,4,6,12〕。要求:〔1〕采用while循环语句实现。〔2〕输出格式为:Input:12Output:1,2,3,4,6,12[问题分析]输入一个数,需要输出所有能被它整除的数[数据需求]输入一个数,然后对小于它的正整数做取余运算即可[算法设计][程序实现]#include<iostream>usingnamespacestd;intmain(){ inta,n; n=1; cout<<"Input:"; cin>>a; cout<<"Output:"; if(a>=0&&a<=1000) { while(a>n) { if(a%n==0) { cout<<n<<","; n++; } else n++; } cout<<a;}elsecout<<"请输入0~1000的整数"<<endl;}[程序测试][习题7]计算并输出N以内最大的10个素数以及它们的和,N为用户任意输入的正整数〔如:1000〕。要求:〔1〕在程序内部加必要的注释。〔2〕由于偶数不是素数,可以不考虑对偶数的处理。〔3〕需要考虑N以内的素数个数没有超过10个的情况处理。(4)输出形式为:素数1+素数2+素数+…+素数10=总和值。[问题分析]28以内的数质数的个数小于10,所以单独考虑;大于28的数,从输入数开始要从大到小先判断是不是质数,是的话顺次输出,当输出10个是求和,并结束程序。[数据需求]程序开始时需要输入一个正整数[算法设计][程序实现]#include<iostream>usingnamespacestd;intmain(){ cout<<"输入一个正整数"<<endl; inta,sum=0,i,b=0; cin>>a; if(a<=28)//28之内只有9个质数,所以拿出来单独考虑 cout<<"输入数据错误,小于28的数字以内不满足有10个质数,请重新输入"; if(a>28) { while(b<10) {for(i=2;a>i;i++) { if(a%i==0) break;} if(a==i) { b++; sum=sum+a; cout<<a<<"+"; } a--;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年石油化工安装工程内部承包合同示范文本
- 二零二五版智能家居装修设计与施工合同
- 二零二五年度车辆抵押担保汽车保险合同
- 二零二五版电视剧剧本创作合同终止协议
- 2025版高端酒店场地租赁合同模板
- 2025版商业地产场地租赁分成合同示范文本
- 2025版智能仓储厂房租赁安全协议范本
- 2025版早餐店连锁经营合作协议
- 2025版仓储物流园区建设承包管理合同样本
- 二零二五年度工业厂房消防喷淋系统升级改造合同
- 2024 入党积极分子预备党员发展对象培训考试题库答案
- 水库三个责任人培训课件
- 糖尿病护理和管理
- 2025年呼和浩特市公安局招聘警务辅助人员考试笔试试题(含答案)
- 党的理论知识考试题库及答案(2025年)
- 《子宫颈癌筛查规范(2025年版)》解读
- 2025年广东省中考化学真题(解析版)
- 供电系统安全培训
- 箱变吊装方案(3篇)
- 直播电商结算管理制度
- 吊篮作业考试题及答案
评论
0/150
提交评论