您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 冶金工业 > 朱虎林实验单元二程序模块化设计(修改版)
《C语言程序设计》实验报告专业:应用化学班级:应化15EIE学号:201513280205学生姓名:朱虎林实验日期:成绩:指导老师:实验单元二程序模块化设计一、实验题目实验六函数二、实验目的(1)掌握函数的定义和调用方法。(2)掌握形参和实参之间的对应关系。(3)利用函数实现相应的功能模块。(4)熟悉函数的嵌套调用和递归调用的方法。三、实验内容1.编写一个函数,该函数的功能是判断一个整数是不是素数(素数是指除了1和它本身以外,不能被任何整数整除的数)。在main函数中输入一个整数,调用该函数,判断该数是不是素数,若是则输出“yes”,否则输出“no”。2.编写一个函数,用“冒泡法”对输入的10个数按由小到大的顺序排列。3.编写一个函数,利用迭代法求X2−a=0的近似根,要求精度为10−5,迭代公式为:Xn+1=(Xn+a/Xn)/2。四、实验环境1.硬件环境:当前所有电脑硬件环境均支持。2.软件环境:VisualC++6.0五、实验代码及结果(程序运行结果请以截屏图给出)1.源程序代码:#includestdio.h2.intmain()3.{4.inta,i;5.intflag=1;6.printf(请输入一个整数:\n);7.scanf(%d,&a);8.if(a1)9.{10.for(i=2;ia;i++)11.{12.if(a%i==0)13.flag=-1;14.}15.if(flag==-1)16.{17.printf(no\n);18.}19.else20.printf(朱虎林yes\n);21.}22.else23.printf(no\n);24.}运行结果为:25.源程序代码:#includestdio.h26.intmain()27.{28.inta[10];29.inti,j;30.for(i=0;i10;i++)31.{32.scanf(%d,&a[i]);33.}34.for(i=0;i10;i++)35.{36.for(j=0;j9-i;j++)37.{38.if(a[j]a[j+1])39.{40.intt=a[j];41.a[j]=a[j+1];42.a[j+1]=t;43.}44.}45.}46.printf(Aftersorting,thearrayis:);47.for(i=0;i10;i++)48.{49.printf(%d,a[i]);50.}51.printf(朱虎林\n);52.return0;53.}运行结果为:54.源程序代码:#includestdio.h55.#includemath.h56.main()57.{58.floatx,x1,a;59.scanf(%f,&a);60.x1=a;61.do62.{63.x=x1;64.x1=(x+a/x)/2;65.}66.while(fabs(x-x1)1e-5);67.printf(朱虎林x=%.5f\n,x1);68.return0;69.}运行结果为:六、实验心得(请对每个实验题目编程及调试运行中遇到的问题及解决方案进行简单总结)要通过不断的上机操作才能更好地学习它,通过实践,我也发现我的好多不足之处,首先是自己在指法上还不行,经常按错字母,通过学习也有所改进;再有对c语言的一些标准库函数不太了解,还有对函数调用的正确使用不够熟悉,还有对c语言中经常出现的错误也不了解,通过实践,使我在这几个方面的认识有所提高。通过实践的学习,我认到学好计算机要重视实践操作,不仅仅是学习c语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我会更加注视实践操作,使自己便好地学好计算机《C语言程序设计》实验报告专业:应用化学班级:应化15EIE学号:201513280205学生姓名:朱虎林实验日期:成绩:指导老师:实验单元二程序模块化设计一、实验题目实验七指针二、实验目的(1)掌握指针的概念和定义方法。(2)掌握指针的操作符和指针运算。(3)掌握指针和数组的关系。三、实验内容1.有3个整型变量i、j、k,请编写程序,设置3个指针变量p1、p2、p3,分别指向i、j、k。然后通过指针变量使变量i、j、k的值顺序交换,即把i的原值赋给j,把j的原值赋给k,把k的原值赋给i。要求输出i、j、k的原值和新值。2.输入3个整数,按由小到大的顺序输出。要求定义函数用来交换两个变量的值,函数参数要使用指针变量。3.输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换,写三个函数:①输入10个数;②进行处理;③输出10个数。四、实验环境1.硬件环境:当前所有电脑硬件环境均支持。2.软件环境:VisualC++6.0五、实验代码及结果(程序运行结果请以截屏图给出)1.有三个整型变量i,j,k,请编写程序,设置3个指针变量p1,p2,p3,分别指向i,j,k。然后通过指针变量使i,j,k3个变量的值顺序交换,即把i的原值赋给j,把j的原值赋给k,把k的原值赋给i。要求输出i,j,k的原值和新值。源程序代码:#includestdio.hintmain(){inti=1,j=2,k=3,c;int*p1=&i,*p2=&j,*p3=&k;printf(未交换前:\n);printf(%4d,%4d,%4d,i,j,k);c=*p3;*p3=*p2;*p2=*p1;*p1=c;printf(\n);printf(朱虎林交换后:\n);printf(%4d,%4d,%4d,i,j,k);return0;}运行结果为:2.输入3个整数,按由小到大的顺序输出。源程序代码:#includestdio.hvoidswap(int*i,int*j){intp;p=*i;*i=*j;*j=p;}intmain(){intx,y,z;int*pos1,*pos2,*pos3;printf(请输入三个整数:);scanf(%d,%d,%d,&x,&y,&z);pos1=&x;pos2=&y;pos3=&z;if(xy)swap(pos1,pos2);if(xz)swap(pos1,pos3);if(yz)swap(pos2,pos3);printf(朱虎林201513280205三个整数的顺序为:%d,%d,%d,x,y,z);return0;}运行结果为:3.输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换,写三个函数:①输入10个数;②进行处理;③输出10个数。源程序代码#includestdio.hvoidinp(int*a);voidcomp(int*a);voidout(inta[10]);intmain(){inta[10];inp(a);comp(a);out(a);}void\inp(int*a){inti;for(i=0;i10;i++){scanf(%d,a+i);}}voidcomp(int*a){intmin,max;inti;intm;min=0;max=0;for(i=0;i10;i++){if(a[i]a[min]){min=i;}if(a[i]a[max]){max=i;}}m=a[0];a[0]=a[min];a[min]=m;m=a[9];a[9]=a[max];a[max]=m;}voidout(inta[10]){inti;for(i=0;i10;i++){printf(朱虎林%d,a[i]);}}:运行结果为:六、实验心得(请对每个实验题目编程及调试运行中遇到的问题及解决方案进行简单总结)学习c语言不能停留在学习它的语法规则,而是利用学到的知识编写c语言程序,解决实际问题。即把c语言作为工具,描述解决实际问题的步骤,由计算机帮助我们解题。只有通过上机才能检验自己是否掌握c语言、自己编写的程序是否能够正确地解题。《C语言程序设计》实验报告专业:应用化学班级:应化15EIE学号:201513280205学生姓名:朱虎林实验日期:成绩:指导老师:实验单元二程序模块化设计一、实验题目实验八结构体二、实验目的(1)掌握结构体数据类型的定义;(2)掌握结构体变量中成员的赋值及引用;(3)掌握结构体数组的定义及初始化;(4)掌握结构体数组元素中成员的赋值和引用。三、实验内容1.设计一个程序,用结构体实现复数的运算。定义复数结构体,包含复数的实部real,虚部img,输入两个复数,进行加、减、乘运算,最后输出结果。(复数乘法:(a+bi)(c+di)=(ac−bd)+(bc+ad)i)2.编写程序完成10门课程信息的管理。每门课程包括课程号、课程名、授课老师、学分、上课时间、上课教室,编写函数完成课程信息的输入、查询、输出。四、实验环境1.硬件环境:当前所有电脑硬件环境均支持。2.软件环境:VisualC++6.0五、实验代码及结果(程序运行结果请以截屏图给出)1.源程序代码:#includestdio.h2.3.structComplex4.{5.doublereal,img;6.};7.intmain()8.{9.structComplexa,b;10.printf(依次输入两个复数a和b的实部和虚部:\n);11.scanf(%lf%lf%lf%lf,&a.real,&a.img,&b.real,&b.img);12.if(a.img+b.img0)printf(a+b=%.1lf+%.1lfi\n,a.real+b.real,a.img+b.img);13.elseprintf(a+b=%.1lf%.1lfi\n,a.real+b.real,a.img+b.img);14.if(a.img-b.img0)printf(a-b=%.1lf+%.1lfi\n,a.real-b.real,a.img-b.img);15.elseprintf(a-b=%.1lf%.1lfi\n,a.real-b.real,a.img-b.img);16.if(a.img*b.real+a.real*b.img0)17.printf(a*b=%.1lf+%.1lfi\n,a.real*b.real-a.img*b.img,a.img*b.real+a.real*b.img);18.elseprintf(朱虎林a*b=%.1lf%.1lfi\n,a.real*b.real-a.img*b.img,a.img*b.real+a.real*b.img);19.return0;20.}运行结果为:21.源程序代码:#includestdio.h22.#defineNUM1023.#defineSHOW324.25.structstudent26.{27.intid;28.charname[20];29.floatscore[3];30.floataverage;31.}32.info[NUM];33.34.voidgetdata()35.{36.inti;37.38.for(i=0;iNUM;i++)39.{40.printf(pleaseinputthe%dstudentinfomationlike:\n,i+1);41.printf(idnamescore(1)score(2)score(3)\n);42.scanf(%d%s%f%f%f,&info[i].id,info[i].name,&info[i].score[0],&info[i].score[1],&info[i].score[2]);43.info[i].average=(info[i].score[0]+info[i].score[1]+info[i].score[2])/3.0;44.}45.return;46.}47.48.voidshowlist()49.{50.inti;51.52.printf(thestudentinformationlist:\n);53.printf(id\tname\tscore(1)\tscore(2)\tscor
本文标题:朱虎林实验单元二程序模块化设计(修改版)
链接地址:https://www.777doc.com/doc-2324361 .html