已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机及C51编程实验报告实验三 模块化程序设计(3学时)【实验目的】1. 掌握一维数组和二维数组的定义、赋值和输入输出的方法。2. 掌握字符数组和字符串函数的使用。3. 掌握与数组有关的算法。4. 掌握函数定义的方法。5. 掌握函数实参与形参的传递方式。6. 掌握函数的嵌套调用和递归调用的方法。7. 了解全局变量和局部变量、动态变量、静态变量的概念和使用方法。【实验内容】任务1 数组的基本定义与应用1. 定义一个10个元素的int数组a,输入10个数,并输出。参考程序:main()int i,a10; for(i=0;i10;i+) scanf(%d,&ai); for(i=0;i10;i+) printf(%5d,ai); printf(n);运行结果:2. 寻找整数数组num中的最大值及其所在的下标。参考程序:main()int i,max,p,a10; printf(please enter 10 data:n); for(i=0;i10;i+) scanf(%d,&ai); max=a0;p=0; for(i=1;imax) max=ai;p=i; printf(max is:%dn,max); printf(point is:%dn,p+1);运行结果:3. 实现对n个数的数列从小到大排序。(比较交换法、选择法、冒泡法)参考程序:冒泡法#include main()int i,j,n,a100;int temp;clrscr(); printf(enter the number:n); scanf(%d,&n); for(i=0;in;i+) scanf(%d,&ai); printf(n output the original arrayn); for(i=0;in;i+) printf(%5d,ai); for(i=0;in-1;i+) for(j=0;jaj+1) temp=aj;aj=aj+1;aj+1=temp; printf(n output the sorted arrayn); for(i=0;in;i+) printf(%5d,ai); printf(n);运行结果:4. 有一个44的矩阵,编程将行和列的元素互换,输出互换后的矩阵。参考程序:main()int a44,i,j,t; for(i=0;i4;i+) for(j=0;j4;j+) scanf(%d,&aij); printf(output array a: before change:n);for(i=0;i4;i+) for(j=0;j4;j+) printf(%5d,aij); printf(n); for(i=0;i4;i+) for(j=0;ji;j+) t=aij;aij=aji;aji=t; printf(output array a: after change:n);for(i=0;i4;i+) for(j=0;j=a&ai=A&ai=0&ai=a&si=z) si=si-32; i+; puts(s);运行结果: 任务3. 函数的定义和声明1分析推测下面程序的输出,并上机运行验证结果。(运行结果: )#include unsigned fun26(unsigned num) unsigned k=1; do k*=num%10;num/=10; while(num); return k;main() unsigned n=26; printf(%dn,fun26(n);2求出以下程序的运行结果,并描述程序所完成的功能。(运行结果: 程序功能是: )#include main() int power(int x,int n); int x=2,n=4; printf(ns=%d,power( x,n);int power(int x,int n) int i,p=1; for(i=1;i=n;i+) p=p*x; return(p);3下面程序中,函数fun的功能是根据形参m计算公式T=1/1!+1/2!+1/3!+1/m!的值,上机调试,当从键盘输入10时,给出程序运行的正确结果(按四舍五入保留10位小数)。输入10时的结果: )#include main() double fun(int m); /先调用再定义,且不是能缺省的int型,请加上函数说明。 int m; printf(n input m:); scanf(%d,&m); printf(n t=%12.10lf n,fun(m);double fun(int m) double fac,t=0.0; int i=1,j; for(i=1;i=m;i+) fac=1.0; for(j=1;j=i;j+) fac=fac*j; t+=1.0/fac; return t;任务4. 数组与函数的综合应用1. 在一个一维数组a中存放10个正整数, 求其中所有的素数。(用数组元素作为函数的实际参数)参考程序:int sushu(int x) int i,k=1; if(x=1) k=0; for(i=2;i=x/2;i+) if(x%i=0) k=0; return(k); main( ) int a10,i; for(i=0;i10;i+) scanf(%d,&ai); printf(sushu of array a are:n); for(i=0;i10;i+) if(sushu(ai) printf(%5d,ai);printf(n); 运行结果:2. 设有一个34的矩阵,求出其中的最大元素。(要求:将计算最大值的功能设计成函数,数组名作为参数)参考程序:max_value(int array12)int i,max; max=array0; for(i=0;imax) max=arrayi; return(max);main()int a34=1,3,5,7,2,4,6,8,15,17,34,12; printf(max=%dn,max_value(a);运行结果:任务5. 函数的嵌套调用1跟踪调试下面程序,注意函数调用的过程中形参、实参的关系。记录并分析结果;将形参a,b对应改为x,y,使之与实参变量同名,记录并分析结果。#include main() int t,x=2,y=5; int swap(int,int); printf(1) in main: x=%d,y=%dn,x,y); swap(x,y); printf(4) in main: x=%d,y=%dn,x,y);swap(int a,int b) int t; printf(2) in swap: a=%d,b=%dn,a,b); t=a; a=b; b=t; printf(3) in swap: a=%d,b=%dn,a,b);运行结果:将形参a,b对应改为x,y 的结果:结论:无论实参、形参是否同名,交换的只是子函数(swap)中两个变量的值。主函数中的x,y的值没有变。(参考红字内容,用自己的话写结论)2若输入2、3,求以下程序的运行结果,分析函数嵌套调用的执行过程。#include long sum(int a,int b);long factorial(int n);main() int n1,n2; long a; scanf(%d,%d,&n1,&n2); a=sum(n1,n2); printf(a=%ld,a);long sum(int a,int b) long c1,c2; c1=factorial(a); c2=factorial(b); return(c1+c2);long factorial(int n) long rtn=1; int i; for(i=1;i=0) printf(%d!=%ld n,num,fun(num); else printf(input data error! n);运行结果:任务7. 变量的存储类型与编译预处理1. 从键盘上输入一个字符串,内有若干个字符,再输入一个字符,编写程序将字符串中该字符删去。(用外部函数实现,分别编译连接,执行main函数文件) /* 文件名为:zy161.c*/#include void main() extern enter_string(char str),delete_string(char str,char ch),print_string(char str); char c; static char str80; enter_string(str); scanf(%c,&c);delete_string(str,c); print_string(str); /* 文件名为:zy162.c*/#include #include string.henter_string(char str) gets(str); /* 文件名为:zy163.c*/delete_string(char str,char ch)int i,j; for(i=j=0;stri
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025化工产品+油漆行业市场供需分析及投资评估规划分析研究报告
- 2025化学行业市场现状供需分析及投资评估规划分析研究报告
- 2025化学品生产行业市场竞争深度解析及行业发展趋势与投资规划研究报告
- 2025制造业行业市场竞争态势与未来发展趋势分析报告
- 2025制造业服务化转型路径研究报告及供应链协同创新模式
- 《随机过程学习指导及习题解析》课件 第3章第3节随机质点到达的时间
- 弱电智能化项目施工管理方案
- 平面设计核心要素与实战技巧
- 森林消防安全宣传
- 深基坑施工安全管理专项方案
- (完整文本)乌有先生传(原文+注释+译文)
- 儿童流感的预防与治疗
- 三年级数学专项思维训练习题11套原卷+答案解析
- 事故油池基坑开挖专项施工方案
- 2021级数据科学与大数据技术专业培养方案(本科)
- 《量子力学》全本课件
- 《我弥留之际》读书笔记思维导图PPT模板下载
- 病毒性肝炎的免疫学检查
- 环境催化-课件1
- 旭辉地产年度品牌整合传播规划方案
- GB/T 27924-2011工业货架规格尺寸与额定荷载
评论
0/150
提交评论