您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > C语言实验-中级-16通信-19
学生实验报告册(理工类)课程名称:C语言程序设计实验专业班级:16通信工程(1)学生学号:1616901019学生姓名:潘锦程所属院部:网通院指导教师:樊静2016——2017学年第1学期金陵科技学院教务处制实验报告书写要求实验报告上交电子稿,标题采用四号黑体,正文采用小四号宋体,单倍行距。实验报告书写说明实验报告中实验目的和要求、实验仪器和设备、实验内容与过程、实验结果与分析这四项内容为必需项。教师可根据学科特点和实验具体要求增加项目。填写注意事项(1)细致观察,及时、准确、如实记录。(2)准确说明,层次清晰。(3)尽量采用专用术语来说明事物。(4)外文、符号、公式要准确,应使用统一规定的名词和符号。(5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。实验报告批改说明实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批改成绩采用五级记分制或百分制,按《金陵科技学院课堂教学实施细则》中作业批阅成绩评定要求执行。金陵科技学院实验报告1实验项目名称:中级程序设计实验学时:8同组学生姓名:实验地点:工科楼A101实验日期:第十周——第十三周实验成绩:批改教师:批改时间:金陵科技学院实验报告2实验2中级程序设计一、实验目的和要求(1)掌握函数的定义、调用及返回、声明的应用;(2)熟练掌握一维数组的定义、初始化及使用;(3)掌握二维数组的定义、初始化及应用;(4)熟练掌握向函数传递一维数组的方法和应用;(5)掌握向函数传递一维数组的方法和应用。二、实验仪器和设备奔腾以上计算机,装有windowsXP以上版本操作系统和VisualC++6.0软件。三、实验内容与过程1、程序调试#includestdio.hintfunc(inta,intb){return(a+b);}main(){intx=3,y=8,z=4,r;r=func(func(x,y),z);printf(“r=%d\n”,r);}2、程序改错要求:1、改错时,只允许修改现有语句中的一部分内容,不允许添加和删除语句。2、提示行下一行为错误行。(1)功能:判断m是否为素数,若是返回1,否则返回0。#includestdio.h/**********FOUND**********/voidfun(intn){inti,k=1;if(m=1)k=0;/**********FOUND**********/for(i=1;im;i++)/**********FOUND**********/if(m%i=0)k=0;/**********FOUND**********/returnm;}voidmain(){intm,k=0;金陵科技学院实验报告3for(m=1;m100;m++)if(fun(m)==1){printf(%4d,m);k++;if(k%5==0)printf(\n);}}(2)功能:在一个已按升序排列的数组中插入一个数,插入后,数组元素仍按升序排列。#includestdio.h#defineN11main(){inti,number,a[N]={1,2,4,6,8,9,12,15,149,156};printf(pleaseenteranintegertoinsertinthearray:\n);/**********FOUND**********/scanf(%d,&number)printf(Theoriginalarray:\n);for(i=0;iN-1;i++)printf(%5d,a[i]);printf(\n);/**********FOUND**********/for(i=N-1;i=0;i--)if(number=a[i])/**********FOUND**********/a[i]=a[i-1];else{a[i+1]=number;/**********FOUND**********/continue;}if(numbera[0])a[0]=number;printf(Theresultarray:\n);for(i=0;iN;i++)printf(%5d,a[i]);printf(\n);}(3)找出一个二行三列二维数组中的最大值,输出该最大值及其行列下标,建议二维数组值由初始化给出。#includestdio.h#includeconio.hmain(){inti,j,max,s,t;金陵科技学院实验报告4/**********FOUND**********/inta[2][]={1,34,23,56,345,7};clrscr();/**********FOUND**********/max=0;s=t=0;for(i=0;i2;i++)/**********FOUND**********/for(j=1;j3;j++)if(a[i][j]max){max=a[i][j];s=i;t=j;}/**********FOUND**********/printf(max=a[%d][%d]=%d\n,i,j,max);}3、程序设计说明,所有题目均需添加main(),在main()中调用子函数并设计完整的输入输出才可调试通过。(1)功能:编写函数floatfun(intn),求一分数序列2/1,3/2,5/3,8/5,13/8,21/13…的前n项之和。说明:每一分数的分母是前两项的分母之和,每一分数的分子是前两项的分子之和。例如:求前20项之和的值为32.660259。(2)完成子函数intfun(intn),找出一个大于给定整数且紧随这个整数的素数,并作为函数值返回。说明,以下四个关于数组的题目,可以先用一个main()函数实现,然后相关内容学习后再利用数组作函数参数的子函数和main()函数共同实现。(3)功能:编写函数voidfun(intn,inta[]),按顺序将一个4位的正整数每一位上的数字存到一维数组,然后在主函数输出。例如输入5918,则输出结果为5918。(4)功能:编写函数voidfun(intarr[],intn)将一个数组中的值按逆序存放,并在main()函数中输出。例如:原来存顺序为18,2,50,43,69。要求改为:69,43,50,2,18。(5)功能:程序定义了N×N的二维数组,并在主函数中自动赋值。请编写函数voidfun(inta[][N],intn),使数组a左下三角元素中的值乘以任意整数n。例如:若n的值为2,a数组中的值为|197||297|a=|238|则返回主程序后a数组中的值应为|468||456||81012|(6)功能:编写函数voidfun(intarray[3][3]),实现矩阵(3行3列)的转置(即行列互换)。例如:输入下面的矩阵:100200300400500600700800900金陵科技学院实验报告5程序输出:100400700200500800300600900五、实验注意事项(1)调用系统库函数要包含相应头文件;(2)函数可以嵌套调用,但不可以嵌套定义;(3)注意数组的越界问题;(4)找最大值(最小值)的算法:先将第一个值认为是最大(小)的,检索以后的值,判断如果当前数组元素值比保留在变量中的最大(小)值大(小),则用当前数组元素值替换该变量中的值。六、讨论、思考题1、功能:编写函数floatfun(),利用以简单迭代方法Xn+1=cos(Xn)求方程:cos(x)-x=0的一个实根。迭代步骤如下:(1)取x1初值为0.0;(2)x0=x1,把x1的值赋给x0;(3)x1=cos(x0),求出一个新的x1;(4)若x0-x1的绝对值小于0.000001,执行步骤(5),否则执行步骤(2);(5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。输出:程序将输出结果Root=0.739085。2、功能:编写floatfun(floatarray[],intn),统计出若干个学生的平均成绩,最高分以及得最高分的人数。例如:输入10名学生的成绩分别为92,87,68,56,92,84,67,75,92,66,则输出平均成绩为77.9,最高分为92,得最高分的人数为3人。3、编写函数intfun(intlim,intaa[MAX]),该函数的功能是求出小于lim的所有素数并放在aa数组中,该函数返回求出素数的个数。4、功能:编写函数intfun(inta[M][M]),求5行5列矩阵的主、副对角线上元素之和。注意,两条对角线相交的元素只加一次。5、功能:请编一个函数voidfun(inttt[M][N],intpp[N]),tt指向一个M行N列的二维数组,求出二维数组每列中最小元素,并依次放入pp所指一维数组中。二维数组中的数已在主函数中赋予。程序清单:(上述“程序设计”和“思考题”的各题程序,标明文件名)3(1)pjc23_1.c#includestdio.hfloatfun(intn){floatw=1.0,x=2.0,y=2.0,z=3.0,k,sum=0.0,p,q;inti;if(n==1)金陵科技学院实验报告6{sum=x/w;returnsum;}elseif(n==2){sum=x/w+z/y;returnsum;}else{for(i=3;i=n;i++){k=(x+z)/(w+y);sum+=k;p=y;q=z;y=w+y;z=x+z;w=p;x=q;}returnsum+3.5;}}main(){intm;printf(请输入正整数m);scanf(%d,&m);printf(序列前%d项和为%f,m,fun(m));}3(2)pjc23_2.c#includestdio.hintfun(intn){intj,k,l=0;for(j=n+1;;j++){for(k=2;kj;k++){if(j%k!=0)l=k;elsebreak;if(k==j-1)returnj;}}}金陵科技学院实验报告7main(){intm;printf(请输入整数m\n);scanf(%d,&m);printf(紧跟%d的最大素数是%d,m,fun(m));}3(3)pjc23_3.c#includestdio.h#defineN4voidfun(intn,inta[]){inti;for(i=0;iN;i++){a[i]=n%10;n=n/10;}}main(){intn,t,a[N];scanf(%d,&n);fun(n,a);printf(\n);for(t=3;t=0;t--){printf(%-3d,a[t]);}}3(4)pjc23_4.c#includestdio.hvoidfun(intarr[],intn){inti,j,temp;for(j=0;jn/2;j++){temp=arr[j];arr[j]=arr[n-1-j];arr[n-1-j]=temp;}printf(\n);for(i=0;in;i++){金陵科技学院实验报告8printf(%-5d,arr[i]);}}main(){inta[999],i,m;m=0;for(i=0;;i++){scanf(%d,&a[i]);m++;if(getchar()=='\n')break;}fun(a,m);}3(5)pjc23_5.c#includestdio.h#includestdlib.h#defineN3voidfun(inta[][N]){inti,j;for(i=0;i3;i++){for(j=0;j=i;j++){a[i][j]=2*a[i][j];}}}main(){inta[N][N],j,i;printf(theresult\n);for(i=0;i3;i++){for(j=0;j3;j++){a[i][j]=rand()%10;printf(%4d,a[i][j]);}printf(\n);}金陵科技学院实验报告9fun(a);printf(the
本文标题:C语言实验-中级-16通信-19
链接地址:https://www.777doc.com/doc-1746637 .html