1 / 13
文档名称:

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

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

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

分享

预览

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

上传人:小博士 2018/11/14 文件大小:502 KB

下载得到文件列表

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

文档介绍

文档介绍::..C语言程序设计实验报告专业 班级 日期11月26H 成缋 实验组别 第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("%6d",a[i]);printf("\n");}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+l])t=b[j],b[j]=b[j+l],b[j+l]=t;、修改、替换(1)下面程序用于求解瑟夫问题。M个人围成一圈,从第一个人开始依次从1至N循环报数,每当报数为N时报数人fli阐,直到阐中只剩下一个人为止。请在下划线处填写合适的代码来完善该程序。#include<>#defineM10#defineN3voidmain(void){inta[M],b[M]; /*数组a存放圈巾人的编号,数组b存放出圈人的编号*/inti,j,k;for(i=0;i<M;i++) */a[i]=i+1;for(i=M,j=0;i>1;i—){Ai表示圈中人个数,初始为M个,剩1个人时结束循环;j表示当前报数人的位置*/for(k=1;k〈=N;k++) /*1至N报数*/if(++j〉i-1)j=0;/*最后一个人报数后第一个人接着报,形成一个圈吟b[M-i]=j?a[j-l] :a[i-l]; /*将报数为N的人的编号存入数组b*//*压缩数组a,使报数为N的人出圈吟/*按次序输出出圈人的编号*//*输出圈中®£;*—个人的编号*/if(j)for(k=—j;k<i;k++)a[k]=a[k+l] ;}—for(i=0;i<M-1;i++)printf(“%6d”,b[i]);printf(“%6d\n”,a[0]);}(2)上面程序用数组元素的值表示圈中人的编号,每当有人出阖时都要压缩数组,这种算法不够精炼。如果采用做标记的办法,即每当有人出圈时对相应数组元素做标记,省掉压缩数组的时间,这样处理效率更高一些。请采用做标记的办法修改(1)屮程序,使修改后的程序与U)中程序具有相同的功能。#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中字符串的尾部。但函数strrwat在定义吋代码有误,不能实现上述功能。按下面的要求进行操作,冋答W题并排除错误。(1)单步执行。进入函数strncat后观察表达式s、t和i。当光条落在for语句所在行时,i为何值?当光条落在strncat函数块结束标记(右花括号})所在行时,s、t分别为何值?(2)分析函数岀错的原因,排除错误,使函数正确实现功能,最后写出程序的输出结果。(1)编写程序从键盘读取数据,对一个3x4矩阵进行赋值,求其转置矩阵,然后输出原矩阵和转罝矩阵。(2)输入一个整数,将它在内存中二进制表示的每一位转换成为对应的数字字符,存放到一个字符数组中,然后输出该整数的二进制表示。(3)输入n个学生的姓名和C语言课程的成绩,将成绩按从高到低的次序排序,姓名同时作相应调整,输出排序后学生的姓名和C语言课程的成绩。然后,输入一个C语言课程成缋值,用二分查找进行搜索。如果查找到有该成绩,输山该