1 / 22
文档名称:

C语言程序设计第三次25实验报告解读.doc

格式:doc   大小:125KB   页数:22页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

C语言程序设计第三次25实验报告解读.doc

上传人:282975922 2020/5/20 文件大小:125 KB

下载得到文件列表

C语言程序设计第三次25实验报告解读.doc

文档介绍

文档介绍:实验报告语言程序设计C专业班级日期11月26日成绩实验组别第3()次实验指导教师李开学生姓名学号同组人姓名实验名称数组实验一、实验目的(1)掌握数组的说明、初始化和使用。(2)掌握一维数组作为函数参数时实参和形参的用法。(3)掌握字符串处理函数的设计,包括串操作函数及数字串与数之间转换函数实现算法。(4)掌握基于分治策略的二分查找算法和选择法排序算法的思想,以及相关算法的实现。二、。分析程序中存在的问题,并对程序进行修改,使之能够正确完成任务。#include<>voidmain(void){inta[10]={27,13,5,32,23,3,17,43,55,39};voidsort(int[],int);inti;sort(a[0],10);for(i=0;i<10;i++)printf(m,a[i]);printf(\);}voidsort(intb[],intn){inti,j,t;for(i=0;i<n-1;i++)for(j=0;j<n-i-1;j++)if(b[j]<b[j+1])t=b[j],b[j]=b[j+1],b[j+1]=t;}、修改、替换(1)下面程序用于求解瑟夫问题。M个人围成一圈,从第一个人开始依次从1至N循环报数,每当报数为N时报数人出圈,直到圈中只剩下一个人为止。请在下划线处填写合适的代码来完善该程序。#include<>#defineM10#defineN3voidmain(void){inta[M],b[M];/*数组a存放圈中人的编号,数组b存放出圈人的编号*/inti,j,k;for(i=0;i<M;i++)/*对圈中人按顺序编号1—M*/a[i]=i+1;for(i=M,j=0;i>1;i--){/*i表示圈中人个数,初始为M个,剩1个人时结束循环;j表示当前报数人的位置*/for(k=1;k<=N;k++)/*1至N报数*/if(++j>i-1)j=0;/*最后一个人报数后第一个人接着报,形成一个圈*/b[M-i]=j?a[j-1]:a[i-1];/*将报数为N的人的编号存入数组b*/if(j)for(k=--j;k<i;k++)/*压缩数组a,使报数为N的人出圈*/a[k]=a[k+1];}for(i=0;i<M–1;i++)/*按次序输出出圈人的编号*/printf(“m”,b[i]);printf(“m\n”,a[0]);/*输出圈中最后一个人的编号*/}(2)上面程序用数组元素的值表示圈中人的编号,每当有人出圈时都要压缩数组,这种算法不够精炼。如果采用做标记的办法,即每当有人出圈时对相应数组元素做标记,省掉压缩数组的时间,这样处理效率更高一些。请采用做标记的办法修改(1)中程序,使修改后的程序与(1)中程序具有相同的功能。#include<>voidstrncat(char[],char[],int);voidmain(void){chara[50]=Theadoptedsymbolis,b[27]=abcdefghijklmnopqrstuvwxyz;strncat(a,b,4);printf(%s\n,a);}voidstrncat(chars[],chart[],intn){inti=0,j;while(s[i++]);for(j=0;j<n&&t[j];)s[i++]=t[j++];s[i]='\0';}函数strncat(s,t,n)本来应该将字符数组t的前n个字符连接到字符数组s中字符串的尾部。但函数strncat在定义时代码有误,不能实现上述功能。按下面的要求进行操作,回答问题并排除错误。(1)单步执行。进入函数strncat后观察表达式s、t和i。当光条落在for语句所在行时,i为何值?当光条落在strncat函数块结束标记(右花括号})所在行时,s、t分别为何值?(2)分析函数出错的原因,排除错误,使函数正确实现功能,最后写出程序的输出结果。(1)编写程序从键盘读取数据,对一个3?4矩阵进行赋值,求其转置矩阵,然后输出原矩阵和转置矩阵。(2)输入一个整数,将它在内存中二进制表示的每一位转换成为对应的数字字符,存放到一个字符数组中,然后输出该整数的二进制表示。(3)输入n个学生的姓名和C语言课程的成绩,将成绩按从高到低的次序排序,姓名同时作相应调整,输出排序后学生的姓名和C语言课程的成绩。然后,输入一个C语言课程成绩值,用二分查找进行搜索。如果查找到有该成绩,输出该成绩同学的姓名和C语言课程的成绩;否则输出提示“notfound!”。(1)编写函数strnins(s,t,n)。它将字符数组t中的字符串