C语言实验指导书24学时(4)
C语言程序设计实验指导书
a[j]与a[j-1]交换;并置flag=1。
⑤ 若没有交换(flag=0),排序完成,退出循环。 ⑥ 输出排序结果。
上述算法的①、⑥在main函数中实现,其余各步调用sort函数完成。主函数如下: #include
int a[100]; /* 外部数组 */ main() { int i,n;
void sort(int); /* 说明被调函数 */ printf(\请输入排序的数据个数n:\); scanf(\%d\,&n);
printf(\请输入要排序的%d个整数:\,n); for(i=0;i sort(n); /* 调用sort函数完成排序 */ printf(\排序结果:\); for(i=0;i 请编写sort函数(注意:函数只有一个形参int n)。 3 有一个3×4的矩阵,要求输出其中值最大的元素的值,以及它的行号和列号。 #include { int max,i,j,r,c; int a[M][N]={{123,94,-10,218},{3,9,10,-83},{45,16,44,-99}}; max=a[0][0]; for(i=0;i if(a[i][j]>max) { max=a[i][j]; r=i; c=j; } printf(\max=%d,row=%d,colum=%d\\n\,max,r,c); } 输入并调试、运行程序,记录程序的输出;若将a[0][0]改为1230,程序运行结果有错,应如何修改程序? 15 C语言程序设计实验指导书 4 按照下面算法编一个程序,将两个字符串连接起来,不能用strcat函数。 ⑴ 定义整型变量i、j,字符串s1、s2 ⑵ 输入字符串s1、s2 ⑶ 当字符串s1尚未结束,改变字符串s1的下标,使之到s1结束处 ⑷ 当字符串s2尚未结束,将字符串s2逐个字符连接到字符串s1的后面 ⑸ 为字符串s1添加结束标志 ⑹ 输出连接后的字符串 三 思考题 1 将一个数组中的值按逆序重新存放,例如,原来顺序为8,6,5,4,1,要求改为1,4,5,6,8。 2 最常用的排序方法除了冒泡排序外,还有选择排序。 程序设计思路:设有10个元素a[0]~a[9],将a[0]与a[1]~a[9]比较,若a[0]比a[1]~a[9]都小,则不进行交换,即无任何操作。若a[1]~a[9]中有一个以上比a[0]小,则将其中最小的一个(假设为a[i])与a[0]交换,此时a[0]中存放了10个中最小的数。第二遍将a[1]与a[2]~a[9]比较,将剩下9个数中的最小者a[i]与a[1]对换,此时a[1]中存放的是10个中第2小的数。依此类推,共进行9遍比较,a[0]到a[9]就已按由小到大顺序存放。 n个数的选择排序的N-S图如下: 定义变量、输入n及数组a各元素 for(i=0;i k=i for(j=i+1;j 真 k=j 交换a[k]与a[i] 输出已排序的n个数 用冒泡排序同样的主函数,请根据上面的N-S图编写选择排序函数。 a[j] 假 四、注意事项 1 在C语言中,数组元素的下标从0开始,最大下标总是比定义的数组长度少1。 2 在C语言中,定义数组时,其长度必须指定且必须用常量表示。 16 C语言程序设计实验指导书 实验七 函数参数的传递 一.实验目的: 1.理解函数的形参和实参的概念和应用 2.掌握函数的值调用和引用调用的含义 3.掌握简单变量、数组和指针作为函数参数进行传递的形式 二.实验内容: 1.实验要求:编写自定义函数:进行两个数据之间的交换 2.分析与设计:使用两种参数传递方法,进行数据的交换,比较下面程序的运行结果有何不同。 3.源代码: 程序1:参数的值传递。 void swap(int x,int y) {int t; t=x; x=y; y=t; printf(“x=%d\\ty=%d\\n”,x,y); } main() {int a,b; printf(“please input a,b:”); scanf(“%d,%d”,&a,&b); swap(a,b); printf(“a=%d\\tb=%d\\n”,a,b); } 程序2:参数的地址传递。 void swap(int *x,int *y) {int t; t=*x; *x=*y; *y=t; printf(“x=%d\\ty=%d\\n”,*x,*y); } main() {int a,b; printf(“please input a,b:”); scanf(“%d,%d”,&a,&b); 17 C语言程序设计实验指导书 swap(a,b); printf(“a=%d\\tb=%d\\n”,a,b); } 程序3 编写两个函数,分别求两个正整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果,两个正整数由键盘输入。 【提示】设有两个正整数m和n ⑴ 实验五介绍了求最大公约数的算法,下面介绍用递归求m和n的最大公约数h的方法。设hcf(int m,int n)是用来求m和n的最大公约数h函数,k=m%n,则: ?hcf(n,k)h???nk?0 k?0⑵ 若最大公约数为h,则最小公倍数l=m*n/h 。 实验时,完成以下两个函数的定义,使之和主程序构成完整的程序,实现题目的要求。 #include int hcf(int m,int n) /* 求最大公约数的函数 */ { ?? } int lcd(int m,int n,int h) /* 求最小公倍数的函数 */ { ?? } void main() { int m,n,h,l; printf(\请输入两个正整数m、n:\); scanf(\%d,%d\,&m,&n); h=hcf(m,n); printf(\%d和%d的最大公约数是:%d\\n\,m,n,h); l=lcd(m,n,h); printf(\%d和%d的最大公约数是:%d\\n\,m,n,l); } 程序调试通过后,用m=350、n=125和m=96、n=64两组数据运行程序,记录程序的输出。 选做题: 1.编写求两个数中最大值的函数 2.编写一个判断某个数是否是素数的函数,要求在主函数中输入一个整数,并输出是否是素数的信息。 18 C语言程序设计实验指导书 实验八 嵌套与递归调用的实现 一.实验目的: 1.掌握函数嵌套调用与递归调用的函数的含义 2.重点掌握函数嵌套调用与递归调用的实现过程 3.培养和锻炼解决较复杂C程序设计的能力 4. 掌握单步运行的调试方法 二.实验内容: 1.实验要求: 利用函数嵌套调用与递归调用求两个数的阶乘和 2.分析与设计: 先分别求出两个数的阶乘值,然后相加 3.源代码: #include long sum(int a,int b)/*求两个数的阶乘和*/ {long c1,c2; c1=fact(a); c2=fact(b); return(c1+c2); } long fact(int n)/* 利用递归求一个数的阶乘*/ {long r=1; if(n<0) printf(“n<0,data error!\\n”); else if(n==0||n==1) r=1; else r=n*fact(n-1); return r; } main() {int n1,n2; long result; clrcsr(); printf(“please input two number:\\n”); scanf(“%d,%d”,&n1,&n2); result=sum(n1,n2); printf(“Result=%ld”,result); getch();} 选做题: 1.猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃了一半,又多吃了一个。以后每天早上 19
相关推荐:
- [综合文档]应答器设备技术规范(征求意见稿)A1
- [综合文档]教师 2012年高考政治试题按考点分类汇
- [综合文档]保险公司的总经理助理竞职演说
- [综合文档]卫生应急大练兵大比武活动考试--题库(
- [综合文档]徐州经济技术开发区总体规划环境影响报
- [综合文档]汉语拼音表(带声调)
- [综合文档]二年级 上 思维训练( 1~18)
- [综合文档]特色学校五年发展规划
- [综合文档]机床经常出现报警“X1轴定位监控”
- [综合文档]《电子技术基础》21.§5—2、3、4 习题
- [综合文档]浙江省深化普通高中课程改革
- [综合文档]CRISP原理 - 图文
- [综合文档]2017年电大社会调查研究与方法形考答案
- [综合文档]浅析建筑施工安全毕业论文
- [综合文档]《回忆我的母亲》名师教案
- [综合文档]装饰装修工程监理规划
- [综合文档]三下乡心得体会-文艺
- [综合文档]柱计算长度系数 - 图文
- [综合文档]全流程思考,提高燃电系统热电转换率--
- [综合文档]2018年嘉定区中考物理一模含答案
- 433M车库门滚动码遥控器
- 8、架空线路施工规范
- 大学四年声乐学习的体会
- 新北师大版五年级数学上册《轴对称再认
- 部编版五年级上册语文第六单元小结复习
- 小学六年级英语形容词用法
- 第2课 抗美援朝保家卫国 课件01(岳麓版
- 2015年天津大学运筹学基础考研真题,考
- 微机计算机控制技术课后于海生(第2版)
- 安全教育实践活动
- Delphi程序设计教程_第1章_Delphi概述
- 第八讲 工业革命与启蒙运动
- 《中华人民共和国药典》2005年版二部勘
- 科粤版九年级化学2.3构成物质的微粒(1)
- 西师大版数学三年级下册《长方形、正方
- ch6_冒泡排序演示
- 第4章 冲裁模具设计
- 浙江中小民营企业员工流失论文[终稿]
- 再议有线数字电视市场营运模式
- 昆明供水工程监理大纲




