实验三 程序流程控制结构 实验四 模块化程序设计.doc_第1页
实验三 程序流程控制结构 实验四 模块化程序设计.doc_第2页
实验三 程序流程控制结构 实验四 模块化程序设计.doc_第3页
实验三 程序流程控制结构 实验四 模块化程序设计.doc_第4页
实验三 程序流程控制结构 实验四 模块化程序设计.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

实验三:程序流程控制结构专业班级学 号姓 名 实验学时2实验类型验证+简单设计实验地点4号楼网络实验室 实验时间指导老师成 绩教师批语 年 月 日1、实验目的:学会正确使用逻辑运算符和逻辑表达式以及关系运算符与关系表达式,熟练掌握if语句和switch语句,掌握在程序设计中灵活使用顺序结构和选择结构,掌握while、for、dowhile循环结构的使用方法以及循环条件的使用;能够使用三种循环结构设计程序、分析程序并解决实际问题;掌握三种循环结构的差异和不同,能灵活地实现三种结构间的转换。2、实验内容:(1)有一个函数 编写程序计算y的值。用scanf函数输入x的值(分别为x0,1x10,x10),输出y的值。运行程序,察看并分析程序执行结果。请将编译通过的程序抄写在下边的空白处。#include void main()int x,y;printf(请您输入一个数n);scanf(%d,&x);if(x=1)y=x;else if(1x&x10)y=10*x-20;printf(x=%d,y=%dn,x,y);运行结果:请您输入一个数59x=59,y=570Press any key yo continue(2)给出一个不多于5位的正整数,要求:求出它是几位数;分别输出每一位数;按逆序输出各位数字,例如原数为5631,应输出为1365。运行程序,察看并分析程序执行结果。#includevoid main()int a,b,c,d,e,num;printf(请输入一个不多于五位的整数n);scanf(%dn,&num);if(num99999)printf(输入有误n);elsea=num/10000;b=num/1000%10;c=num/100%10;d=num/10%10;e=num%10;if(a!=0)printf(num是一个五位数n);printf(%d%d%d%d%dn,a,b,c,d,e);printf(逆序数为n);printf(%d%d%d%d%dn,e,d,c,b,a); else if(b!=0)printf(num是一个四位数n);printf(%d%d%d%dn,b,c,d,e);printf(逆序数为n);printf(%d%d%d%dn,e,d,c,b);else if(c!=0)printf(num是一个三位数n);printf(%d%d%dn,c,d,e);printf(逆序数为n);printf(%d%d%dn,e,d,c);else if(d!=0)printf(num是一个二位数n);printf(%d%dn,d,e);printf(逆序数为n);printf(%d%dn,d,e);else printf(num是一个一位数n);printf(%dn,e);输出结果请输入一个不多于五位的整数56985698是一个四位数5,6,9,8逆序数为8,9,6,5press any key to continue(3)某人从汽车销售公司以分期付款的方式购买一辆总价为14.5万元的小客车。约定首付款为5万元,未付款部分以5.8%的年利率按月计息,从买车后的第7个月开始每月付款3000元。编写程序计算此人付清余款后最终支出了多少利息?(先画流程图后写程序)。#includevoid main()double m,lixi;int i,c=6;m=14.5,lixi=0;printf(购买车花费14.5万元n);m=m-5;printf(首付5万元后剩余%fn,m);for(i=1;i0)printf(*n);printf(第%d月;n,c);printf(本息和为m=%f(万元)n,m);printf(利息%f(万元);n,lixi);else break;printf(*n);printf(最后一个月;n);lixi=lixi+m*(0.058/12);printf(利息%f(万元);n,lixi);printf(*n);printf(总共支付利息%f(万元)an,lixi);购买车花费14.5万元首付5万元后剩余9.500000六个月后产生利息为0.278850(万元)本息和为9.778850(万元)从第七个月开始每月付0.3(万元)*第7月;本息和为m=9.526115(万元)利息0.326115(万元);*第8月;本息和为m=9.272158(万元)利息0.372158(万元);*第9月;本息和为m=9.016973(万元)利息0.416973(万元);*第10月;本息和为m=8.760555(万元)利息0.460555(万元);*第11月;本息和为m=8.502898(万元)利息0.502898(万元);*第12月;本息和为m=8.243995(万元)利息0.543995(万元);*第13月;本息和为m=7.983841(万元)利息0.583841(万元);*第14月;本息和为m=7.722430(万元)利息0.622430(万元);*第15月;本息和为m=7.459755(万元)利息0.659755(万元);*第16月;本息和为m=7.195810(万元)利息0.695810(万元);*第17月;本息和为m=6.930590(万元)利息0.730590(万元);*第18月;本息和为m=6.664088(万元)利息0.764088(万元);*第19月;本息和为m=6.396298(万元)利息0.796298(万元);*第20月;本息和为m=6.127213(万元)利息0.827213(万元);*第21月;本息和为m=5.856828(万元)利息0.856828(万元);*第22月;本息和为m=5.585136(万元)利息0.885136(万元);*第23月;本息和为m=5.312131(万元)利息0.912131(万元);*第24月;本息和为m=5.037806(万元)利息0.937806(万元);*第25月;本息和为m=4.762156(万元)利息0.962156(万元);*第26月;本息和为m=4.485173(万元)利息0.985173(万元);*第27月;本息和为m=4.206851(万元)利息1.006851(万元);*第28月;本息和为m=3.927184(万元)利息1.027184(万元);*第29月;本息和为m=3.646166(万元)利息1.046166(万元);*第30月;本息和为m=3.363789(万元)利息1.063789(万元);*第31月;本息和为m=3.080047(万元)利息1.080047(万元);*第32月;本息和为m=2.794934(万元)利息1.094934(万元);*第33月;本息和为m=2.508443(万元)利息1.108443(万元);*第34月;本息和为m=2.220567(万元)利息1.120567(万元);*第35月;本息和为m=1.931300(万元)利息1.131300(万元);*第36月;本息和为m=1.640634(万元)利息1.140634(万元);*第37月;本息和为m=1.348564(万元)利息1.148564(万元);*第38月;本息和为m=1.055082(万元)利息1.155082(万元);*第39月;本息和为m=0.760182(万元)利息1.160182(万元);*第40月;本息和为m=0.463856(万元)利息1.163856(万元);*第41月;本息和为m=0.166098(万元)利息1.166098(万元);*最后一个月;利息1.166257(万元);*总共支付利息1.166257(万元)Press any key to continue(4)一个人大代表选区,要从甲、乙、丙、丁4个候选人中选人大代表。请编写一个计票程序(先画出程序流程图后写程序)。#includevoid main()int a,b,c,d,e;char ch;a=b=c=d=e=0;printf(投票数为n);scanf(%cn,&ch);while (a=chb&ac&ad)printf(甲获选为人大代表n);if(ba&bc&bd)printf(已获选为人大代表n);if(ca&cb&cd)printf(丙获选为人大代表n);if(da&db&dc)printf(丁获选为人大代表n);3、 实验总结: 通过本次试验,我发现自己对if语句和swith语句不够熟练掌握,不能正确使用逻辑运算符和逻辑表达式以及关系运算符和关系表达式,在上机操作时有一定的困难。因此,我以后会多加练习。程序设计基础实验报告实验四:模块化程序设计专业班级学 号姓 名实验学时2实验类型验证实验地点4号楼网络实验室实验时间指导老师成 绩教师批语 年 月 日1、实验目的:掌握函数的定义方法,及函数调用的形式;掌握函数实参与形参的对应关系,“值传递”与“地址传递”的方式与区别;掌握函数的应用方法,熟悉函数的嵌套调用和递归调用的设计方法;了解全局变量、局部变量、动态变量及静态变量的概念和使用方法。2、实验内容:(1)分析下面程序,给出运行结果。本题要求理解和掌握函数的定义和调用#include intf(inti); voidmain() inti,j for(i=0i5i+) j=f(i);printf(%d,%d,i,j)intf(inti)return i*i1 运行程序,察看并分析程序执行结果(用单步执行的方式追踪程序的运行过程,并说明上述程序的执行方式)。运行结果:0,-1,1,0,2,3,3,8,4,15,Press any key to continue函数voidmain()中的变量i与函数intf(inti)中的变量i,是同一个变量吗?为什么? 答:函数voidmain()中的变量i与函数intf(inti)中的变量i不是同一个变量。因为它们虽然公用同一个标识符,但各自作用域不同。(2)下面程序为选择排序,要求按如下步骤完成本题实验,理解和掌握函数参数的传递, 理解函数的嵌套调用。 #include #define N 10 void sel_sort(int x, int n);int max(int x, int n);void main() int aN, i; for(i=0; iN; i+)scanf(%d, &ai); sel_sort(a, N); for(i=0; i0; i-)j=max(x,i);int temp=xj;xj=xi-1;xi-1=temp; int max(int x, int n)int i,j=0;for(i=1; ixj) j=i;return j; 上机编辑,调试程序;#include #define N 10 void sel_sort(int x, int n);int max(int x, int n);void main() int aN, i; for(i=0; iN; i+)scanf(%d, &ai); sel_sort(a, N);for(i=0;i0; i-)j=max(x,i);int temp=xj;xj=xi-1;xi-1=temp; int max(int x, int n)int i,j=0;for(i=1; ixj) j=i;return j; 用两组数据,给出程序运行结果;将测试结果写在下面。运行结果:35674328167613256599105481325486599105281356676743Press any key to continue运行结果:568689468789246348521320987244863320468521568689987Press any key to continue程序中有几个函数?它们之间的调用关系是什么?答:程序中共有3个函数,void sel_sort(int x, int n)函数调用了int max(int x, int n)函数;main 函调用了void sel_sort(int x, int n)函数void sel_sort(int x, int n)与int max(int x, int n)两个函数在程序中的作用各是什么?答:int max(int x, int n)它传递了一个数组名和数组元素个数,求出该数组元素中的最大元素的下标,并且使用void sel_sort(int x, int n)调换该组数组元素最大元素与最后一个元素的位置,该函数意义为选择排序。用单步执行,观察程序执行的流程并用流程图描述程序的实现;并回答什么是函数的嵌套调用? (注:流程图以函数为模块来画)答:函数的嵌套调用指的是被调用的函数内容里面又调用了其它函数。 (3)输入以下程序,编译运行并回答问题。#include void auto_static(void)int va=0; static int vs=0; printf(va=%d,vs %dn, va, vs); +va; +vs; void main()int i; for(i=0; i5; i+)auto_static(); 运行结果:va=0,vs 0va=0,vs 1va=0,vs 2va=0,vs 3va=0,vs 4Press any key to continue函数void auto_static(void)中变量va与vs的数据类型是什么?他们的存储类别各是什么类别的?答:函数void auto_static(void)中变量va与vs的数据类型都是int型,va的存储类型是动态存储类,而vs是静态存储类。程序在每次调用void auto

温馨提示

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

评论

0/150

提交评论