版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学生实验报告册课程名称:C语言程序设计专业班级:学生学号:学生姓名:所属院部:指导教师:20—-20学年第学期金陵科技学院教务处制实验报告书写要求实验报告上交电子稿,标题采用四号黑体,正文采用小四号宋体,单倍行距。实验报告书写说明实验报告中实验目的和要求、实验仪器和设备、实验内容与过程、实验结果与分析这四项内容为必需项。教师可根据学科特点和实验具体要求增加项目。填写注意事项(1)细致观察,及时、准确、如实记录。(2)准确说明,层次清晰。(3)尽量采用专用术语来说明事物。(4)外文、符号、公式要准确,应使用统一规定的名词和符号。(5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。实验报告批改说明实验报告的批改要及时、认、真仔细,一律用红色笔批改。实验报告的批改成绩采用五级记分制或百分制,按《金陵科技学院课堂教学实施细则》中作业批阅成绩评定要求执行.
金陵科技学院实验报告实验项目名称:初级程序设计同组学生姓名:实验日期:实验学时:6实验地点:实验成绩:批改教师:批改时间:1金陵科技学院实验报告实验1初级程序设计一、实验目的和要求(1)熟悉VisualC++集成环境,进行编辑、保存、编译、连接及运行,并能进行简单程序调试;(2)掌握C语言中各种运算符的使用;(3)掌握C语言中各种数据类型的区别与应用;(4)熟练掌握C语言中变量的定义、赋值和使用,表达式语句、输入(5)掌握C语言中输入(6)掌握C语言中控制语句的使用,含/输出语句的使用;/输出函数的使用;if-else、for、while、do-while语句的使用。二、实验仪器和设备奔腾以上计算机,装有windowsXP以上版本操作系统和VisualC++6。0软件。三、实验内容与过程1、程序调试(1)#include〈stdio。h>main(){ints,t,p,sum;scanf(“%d%d%d",&s,&t,&p);sum=s+t+p;printf(“sum=%d\n”,sum);}(2)#include<stdio。h〉main(){intk=3;if(k=3)printf(“***”);elseprintf(“###");}(3)#include<stdio。h〉main(){intk=0;do{printf(“k=%d\n”,k);}while(k++>0);}2、程序改错2金陵科技学院实验报告下面是判断一个学生考试成绩及格与否的程序(成绩A,或B,或C者为及格;成绩为D者不及格),调试并改进如下程序使其能满足上述输出的需要。#include<stdio。h〉main(){charmark=“A";switch(mark){case“A”:case“B”:case“C”:printf(“>=60\n");case“D”:printf(“〈60\n”);default:printf(“Error\n”);}}3、程序设计(1)功能:编程实现使实型正数保留2位小数,并对第三位进行四舍五入。例如:实型数为1234.567,则函数返回1234。570000;实型数为1234.564,则函数返回1234。560000。(2)功能:从键盘输入一个大写字母,要求改用小写字母输出。(3)功能:编写函数计算下列分段函数的值:xx6x0且x-32f(x)x5x60x10且x2且x32x2x1其它(4)功能:判断整数x是否是同构数.若是同构数,函数返回1;否则返回0。x的值由主函数从键盘读入,要求不大于100。(画程序流程图)说明:所谓“同构数”是指这样的入整数5,5的平数方是25,5是25中右侧的数,所以5是同构数.:计算正整数n的所有因子(1和n除外)之和并输出。n的值由键盘输例如:n=120时,输出239。(画程序流程图)列多项式的值S=1+1/1!+1/2!+1/3!+...+1/n!例如:键盘给n输入15,注意求n的值大于1但不大于100。功能:从低位开始取出长整型变量s奇数位上的例如:当s中的数为:7654321时,t中的数为4、思考题数,这个数出现在它的平数方的右边.例如:输(5)功能:功能入。(6)功能:计算并输出下则输出为:s=2。718282。:要(7)数,依次构成一个新数放在t中。:7531。(1)功能:判断一个三位数是否"水仙花数”.在main函数中从键盘输入一个三位数,并输出判断结果.说明:所谓”水仙花数"是指一:153是一个水仙花数,因为153=1+125+27.:计算并输出3到n之间所有素数的平方根之和。3位数,其各位数字立方和等于该数本身。例如(2)功能3金陵科技学院实验报告例如:键盘给n输入100后,输出为:sum=148。874270。(3)功能:输出Fibonacci数列中大于s的最小的一个数。其中Fibonacci数列F(n)的定义为:F(0)=0,F(1)=1F(n)=F(n-1)+F(n—2)例如:键盘输入s=1000时,输出1597。程序清单及流程图:4金陵科技学院实验报告1.程序调试(2)结果(3)结果2.程序改错5金陵科技学院实验报告3.程序设计(1)#include<stdio。h>main(){floata;scanf("%f",&a);printf("%f”,(int)(a*100+0.5)/100.0);}(2)6金陵科技学院实验报告#include〈stdio。h>main()putchar(ch);putchar('\n’);}(3)#include〈stdio.h〉main(){floatx,y;printf(”Inputx:");scanf(”%f",&x);if(x<0&&x!=-3){y=x*x+x+6;}elseif(0<=x&&x<10&&x!=2&&x!=3)y=x*x—5*x+6;elsey=x*x-x—1;printf(”%f\n”,y);7金陵科技学院实验报告if((k%10==x)||(k%100==x)&&x<=100)printf(”1\n”);elseprintf(”0\n”);}(5)#include<stdio。h>main(){intn,i,j,printf("请输入数字:");scanf(”%d",&n);for(i=2;i<n;i++){sum=0;if(n%i==0){8金陵科技学院实验报告sum=sum+i;}}printf(”%d\n",sum);}(6)#include<stdio.h>main(){doubles=1.0,num;unsignedintn,i,x=1,k=2,j;printf("请输入数字:”);scanf(”%d",&n);if(n>0){for(i=1;i<=n;i++){for(j=1;j<k;j++){x=x*j;}k++;num=1.0/x;x=1;s=s+num;}}else{s=1;}printf(”%lf\n”,s);}(7)9金陵科技学院实验报告#include〈stdio.h〉#include〈math.h〉main()4。思考题(1)金陵科技学院实验报告#include<stdio。h〉#include<math.h>main(){intnum,a,b,c,sum;printf("请输入数字:");scanf("%d",&num);a=num/100;b=num/10%10;c=num%10;sum=pow(a,3)+pow(b,3)+pow(c,3);if(a==0)printf(”Error!\n");elseif(sum==num)printf(”Yes\n”);elseprintf(”No\n");}(2)#include<stdio。h>#include<math.h>main(){intn,i=3,j,k;doublesum=0,p;printf(”请输入数字:");scanf(”%d",&n);if(n<3){printf(”Error!\n");}else{for(i=3;i〈(n+1);i++){11金陵科技学院实验报告for(j=2;j〈i;j++){if(i%j==0)break;k=j;}if(k==i-1){p=sqrt(i);sum=sum+p;}}}printf(”%lf\n",sum);}(3)#include<stdio。h〉#include〈math.h>main(){intf0,f1,n,s;printf(”请输入数字:”);scanf(”%d”,&s);f0=0;f1=1;for(n=3;n>2;n++){f0=f0+f1;f1=f1+f0;if(f0〉s)break;if(f1〉s)break;}if(f0>s){printf("%d\n",f0);}12金陵科技学院实验报告else{printf(”%d\n”,f1);}}5。附加题(1)#include<time。h>#include<stdlib.h〉#include<stdio。h〉main(){intmagic,guess,counter=0;srand(time(NULL));magic=rand()%100+1;do{printf("Pleaseguessamagicnumber:”);scanf(”%d”,&guess);counter++;if(guess〉magic)printf("Wrong!Toobig!\n”);elseif(printf("Wrong!Toosmall!\n”);guess〈magic)elseprintf(”Right!\n");}while(guess!=magic&&counter〈10);printf(”counter=%d\n",counter);}13金陵科技学院实验报告for(k=3;k〈100;3+k/3==100&&d母鸡:%d小鸡:%d\n",i,j,k);k+=3)if(i*5+j*"公鸡:%}(3)#include〈stdio。h>main(){inti,j;floatx1;printf(”年平均增长率至少为:");for(i=100;;i++){for(j=1,x1=1。0;j<=10;j++)x1=x1*(1+i/1000。0);if(x1〉=4){printf(”%。1f%%\n",i/1000。0*100);break;}}}五、实验体会(遇到问题及解决办法,编程后的心得体会,增做补充题题目及金陵科技学院实验报告文件名清单。)C语言的上机操作的确比想象中的难很多,和平时上课所接触的有很多不同,上课时,看看书或许就感觉能对程序一知半解,然而,一自己动手操作,就发现还是有很多不会不懂。但经受的考验和克服的困难,遇到不会做的题同学互相讨论,互相帮助,共同解决,攻克了C语言的复杂程序,我感触良多。在上机操作过程中,我对C语言有了一个更深的认识了解,也对这学期的知识得到巩固,还尝试了运行编程,每次运行程序成功,让我感到了成就感,对下面的项目充满了信心。通过自己的努力最终把最初的理论知识转化成基本技能,使我对C语言的学习产生了兴趣。15金陵科技学院实验报告实验项目名称:中级程序设计同组学生姓名:实验学时:8实验地点:实验日期:实验成绩:批改时间:批改教师:16金陵科技学院实验报告实验2中级程序设计一、实验目的和要求(1)掌握函数的定义、调用及返回、声明的应用;(2)熟练掌握一维数组的定义、初始化及使用;(3)掌握二维数组的定义、初始化及应用;(4)熟练掌握向函数传递一维数组的方法和应用;(5)掌握向函数传递一维数组的方法和应用。二、实验仪器和设备奔腾以上计算机,装有windowsXP以上版本操作系统和VisualC++6.0软件。三、实验内容与过程1、程序调试#include<stdio。h>intfunc({return(a+b);}main()inta,intb){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。#include<stdio.h〉/**********FOUND**********/voidfun(intn){inti,k=1;if(m〈=1)k=0;/**********FOUND**********/for(i=1;i〈m;i++)/**********FOUND**********/if(m%i=0)k=0;/**********FOUND**********/returnm;}voidmain(){intm,k=0;17金陵科技学院实验报告for(m=1;m<100;m++)if(fun(m)==1){printf("%4d”,m);k++;if(k%5==0)printf(”\n");}}(2)功能:在一个已按升序排列的数组中插入一个数,插入后,数组元素仍按升序排列.#include<stdio.h>#defineN11main(){inti,printf("pleaseenteranintegertoinsertinthearray:\n”);/*************/number,a[N]={1,2,4,6,8,9,12,15,149,156};**FOUND*****scanf("%d",&number)printf("Theoriginalarray:\n");for(i=0;i〈N—1;i++)printf(”%5d”,a[i]);printf(”\n");****FOUND**********/i>=0;i——)/******for(i=N-1;if(number〈=a[i])/**********FOUND**********/a[i]=a[i—1];else{a[i+1]=number;/**********FOUND**********/exit;}if(number<a[0])a[0]=number;printf(”Theresultarray:\n”);for(i=0;i<N;i++)printf(”%5d",a[i]);printf("\n”);}(3)找出一个二行三列二维数组中的最大值,输出该最大值及其行列下标,建议二维数组值由初始化给出。#include”stdio.h"#include”conio。h"main(){inti,j,max,s,t;18金陵科技学院实验报告/**********FOUND**********/inta[2][]={1,34,23,56,345,7};clrscr();/**********FOUND**********/max=0;s=t=0;for(i=0;i〈2;i++)/**********FOUND**********/for(j=1;j<3;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),找出一个大于给定整数且紧随这个整数的素数,并作为函数值返回.(画程序流程图)(3)功能:编写函数voidfun(intn,inta[]),按顺序将一个4位的正整数每一位上,然后在主函数输出。例如输入5678,则输出结果为(4)功能:编写函数intarr[],intn)将一个数组中的值按逆序存放,并在main(例如:原来存顺序为8,6,5,4,1。要求改为(5)功能:程序定义了a[][N],intn),使数组a左下三角元素中的值乘以n。(画程序流程图)例如:若n的值为|197||397|a=|238|则返回主程序后应为|698|的数字存到一维数组5678。voidfun()函数中输出。:1,4,5,6,8。N×N的二维数组,并在主函数中自动赋值。请编写函数fun(int3,a数组中的值为a数组中的值|456||121518|(6)功能:编写函数voidfun(intarray[3][3]),实现矩阵(3行3列)的转置(即行列互换)。例如:输入下面的矩阵:100200300400500600700800900程序输出:10040070020050080019金陵科技学院实验报告3006009004、讨论、思考题(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所指一数维组中。二数维组中的数已在主函数中赋予.程序清单及流程图:20金陵科技学院实验报告四、实验结果与分析(程序运行结果及其分析)结果2。程序改错(1)#include〈stdio。h>intfun(intn){inti,k=1;if(n<=1)k=0;for(i=2;i<n;i++)if(n%i==0)k=0;returnk;}voidmain(){intm,k=0;for(m=1;m〈100;m++)if(fun(m)==1){printf("%4d",m);k++;if(k%5==0)printf(”\n”);}}(2)金陵科技学院实验报告inti,number,a[N]={1,2,4,6,8,9,12,15,149,156};printf("Theoriginalarray:\n");for(i=0;i<N—1;i++)printf(”%5d",a[i]);for(i=N—2;i>=0;i—-)printf("\n”);}(3)#include〈#include<conio.h〉main(){stdio。h〉inti,j,max,s,t;金陵科技学院实验报告inta[][3]={1,34,23,56,345,7};clrscr();max=[0][0];s=t=0;for(i=0;i〈2;i++)for(j=0;j<3;j++)if(a[i][j]〉max){max=a[i][j];s=i;t=j;}%d]=%d\n”,s,t,max);printf(”max=a[%d][}3。程序设计(1)#include<stdio。h>floatfun(intn){inti;floatf1=1,f2=1,f3,s=0;for(i=1;i〈=n;i++){f3=f1+f2;f1=f2;f2=f3;s=s+f2/f1;}returns;}main(){inta;printf("请输入一个大于1的实数:");scanf(”%d”,&a);printf(”s=%f\n",fun(a));}(2)23金陵科技学院实验报告return0;}(3)金陵科技学院实验报告#include〈stdio。h>voidfun(intn,inta[]){inti,b[4]={0};for(i=0;i<n;i++){b[i]=a[i];printf(”a[%d]=%d\n",i,b[i]);}}main(){intn,a[4]={0},i;printf("请输入:”);scanf("%d",&n);for(i=3;i>=0;i-—){a[i]=n%10;n=n/10;}fun(4,a);}(4)#include〈stdio。h〉#defineN5voidfun(intarr[],intn){inti,j;for(i=0;i〈=N/2;i++){j=arr[i];arr[i]=arr[N-i—1];arr[N—i—1]=j;}}voidmain(){25金陵科技学院实验报告inti,a[]={8,6,5,4,1};fun(a,N);for(i=0;i〈N;i++){printf(”%2d”,a[i]);}printf(”\n");}(5)#include<stdio。h>#defineN3voidfun(inta[][N],intn){inti,j;for(i=0;i〈N;i++){for(j=0;j<N;j++){if(j==i||i-j==1||i-j==2)a[i][j]*=3;}}}voidmain(){inti,j,a[][3]={1,9,7,2,3,8,4,5,6};fun(a,N);for(i=0;i〈N;i++){for(j=0;j〈N;j++){printf(”%4d”,a[i][j]);if(j==N-1)26金陵科技学院实验报告printf(”\n”);}}}(6)#include<stdio。h>#defineN3voidfun(inta[][N],intn){inti,j,k;for(i=0;i<N;i++){for(j=0;j<N/2;j++){k=a[i][j];a[i][j]=a[j][i];a[j][i]=k;}if(i+j==N){k=a[i][j];a[i][j]=a[j][i];a[j][i]=k;}}}voidmain(){inti,j,a[][3]={100,200,300,400,500,600,700,800,900};fun(a,N);for(i=0;i〈N;i++){for(j=0;j〈N;j++)printf("%6d",a[i][j]);if(j=N-1)printf(”\n”);}}27金陵科技学院实验报告#include〈floatfun(){if(fabs(x0-x1)<0.000001)break;{printf("Root=%f\n",fun());}(2)#include〈stdio。h>#defineN10floatfun(floatarray[],intn){floatavg,sum=0.0,k;inti,j=0,max=0;金陵科技学院实验报告for(i=0;i〈n;i++){sum+=array[i];if(array[i]〉max)max=array[i];}for(i=0;i〈n;i++){if(max==array[i])j++;}avg=sum/10。0;printf(”平均成绩=%。1f\n最高分=%d\n得最高分的人数=%d\n”,avg,max,j);}voidmain(){float[aN]={fun(a,10);}92,87,68,56,92,84,67,75,92,66};(3)#include〈stdio。h>#defineMAX100intfun(intlim,intaa[MAX]){inti,j,m=1;for(i=3;i<lim;i++){for(j=2;j<i;j++){if(i%j==0)break;if(j>=i-1){m++;29金陵科技学院实验报告aa[m—1]=i;}}}returnm;}voidmain(){intn,a[MAX]={0};scanf("%d",&n);printf("%d\n",fun(n,a));}(4)#include〈stdio.h>#defineM5intfun(inta[][M]){inti,j,sum1=0,sum2=0;for(i=0;i〈M;i++){for(j=0;j<M;j++){if(i==j)sum1+=a[i][j];if(i+j==M-1)sum2+=a[i][j];}}printf(”主对角线=%d\n副对角线=%d\n",sum1,sum2—a[M—3][M—3]);printf(”主对角线+付对角线=%d\n",sum1+sum2-a[M—3][M-3]);}voidmain(){inta[M][M]={1,2,3,4,1,6,1,8,1,1,30金陵科技学院实验报告2,3,1,5,6,7,1,9,1,2,1,4,5,6,1};fun(a);}(5)#include<stdio。h>#defineM4#defineN5intfun(inttt[M][N],intpp[N]){inti,j,min=0;for(i=0;i<N;i++){for(j=0;j〈M;j++){min=tt[0][i];if(tt[j][i]<min)min=tt[j][i];pp[i]=min;}printf(”pp[%d]=%d\n”,i,pp[i]);}}voidmain(){inta[M][N]={1,5,3,4,5,8,9,1,2,2,1,5,6,6,7,7,2,9,5,2},b[N]={0};fun(a,b);}31金陵科技学院实验报告5.附加题(1)#include〈stdio。h>voidSwap(int*x,int*y);intmain(){inta,b;printf("Pleaseentera,b:");scanf(”%d,%d”,&a,&b);printf(”Beforeswap:a=%d,b=%d\n”,a,b);Swap(&a,&b);printf(”Afterswap:a=%d,b=%d\n",a,b);return0;}voidSwap(int*x,int*y){inttemp;temp=*x;*x=*y;*y=temp;}五、实验体会(遇到问题及解决办法,编程后的心得体会,增做补充题题目及文件名清单.)这次上机,相比于上一次,的确在难度和复杂度上又提升了一个台阶,当然,我们经过一段时间的学习,知识上也有了一定的提高。但自己动手操作时依旧遇到了很多难题,令大家抓耳挠腮。不过,同学们都是一个集体,大家在操作时认真思考,在休息的时间里便在一起讨论,寻找解决方法。渐渐的,一道道难题就顺利完成了。我们在上机中取长补短,在上机中长知识,通过上机我们也发现有理清楚,而且许多东西要经过翻书,上网查阅,搜索,遇到一小点错误运行不出来,会就提高了我们学习。了许多问题,认识到自己还有很多知识没学好,最基本的知识点没32金陵科技学院实验报告烦躁不安。其实,编程错误是很常见的问题,我们需要耐心去找到错误之处,尽量保持一颗良好的心态,学好C语言,编出最棒的程序。33金陵科技学院实验报告实验项目名称:高级程序设计实验学时:6同组学生姓名:实验地点:实验成绩:批改时间:实验日期:批改教师:34金陵科技学院实验报告实验3高级程序设计一、实验目的和要求(1)理解C语言中指针的本质,区分指针与指针变量,掌握有关指针的应用;(2)熟练掌握字符串常量和字符串的存储及字符串处理函数的使用;(3)掌握字符指针的定义、使用等;(4)掌握向函数传递字符串的方法;二、实验仪器和设备奔腾以上计算机,装有windowsXP以上版本操作系统和VisualC++6。0软件。三、实验内容与过程1、程序调试(1)main(){inta=10,b=20,x,*pa,*pb;pa=&a;pb=&b;printf(“%d,%d,%d,%d”,a,b,*pa,*pb);x=*pa;*pa=*pb;*pb=x;printf(“%d,%d,%d,%d",a,b,*pa,*pb);}(2)main(){inta=10,b=20,*p,*pa=&a,*pb=&b;printf(“%d,%d,%d,%d”,a,b,*pa,*pb);p=pa;pa=pb;pb=p;printf(“%d,%d,%d,%d”,a,b,*pa,*pb);}(3)int*swap(int*a,int*b){int*p;p=a;a=b;b=p;return(a);}main(){intx=3,y=4,z=5;swap(swap(&x,&y),&z);printf(“%d,%d,%d”,x,y,z);}思考:上面程序中函数swap()预将两个数的值相互交换,但结果为什么没有交换?2、程序改错35金陵科技学院实验报告要求:1、改错时,只允许修改现有语句中的一部分内容,不允许添加和删除语句。2、提示行下一行为错误行.(1)功能:为一维数组输入10个整数;将其中最小的数与第一个数对换,将最大的数与最后一个数对换,输出数组元素。#include<stdio。h〉voidinput(int*arr,intn){int*p,i;p=arr;printf("pleaseenter10integers:\n");for(i=0;i〈n;i++)/**********ERROR**********/scanf("%d”,p);}voidmax_min(int*arr,intn){int*min,*max,*p,t;min=max=arr;for(p=arr+1;p<arr+n;p++)/**********ERROR**********/if(*p〈*max)max=p;elseif(*p〈*min)min=p;t=*arr;*arr=*min;*min=t;/**********ERROR**********/if(max=arr)max=min;t=*(arr+n-1);*(arr+n-1)=*max;*max=t;}voidoutput(int*arr,intn){int*p,i;p=arr;printf(”Thechangedarrayis:\n");/**********ERROR**********/while(i=0;i<n;i++)printf("%3d”,*p++);printf("\n");}main(){inta[10];input(a,10);36金陵科技学院实验报告max_min(a,10);output(a,10);}(2)功能:将s所指字符串的反序和正序进行连接形成一个新串放在t所指的数组中。例如:当s所指的字符串的内容为”ABCD"时,t所指数组中的内容为"DCBAABCD"。#include<conio。h〉#include<stdio。h>#include<string.h〉/**********FOUND**********/voidfun(chars,chart){inti,d;/**********FOUND**********/d=len(s);/**********FOUND**********/for(i=1;i〈d;i++)t[i]=s[d-1-i];for(i=0;i〈d;i++)t[d+i]=s[i];/**********FOUND**********/t[2*d]=’/0';}main(){chars[100],t[100];printf(”\nPleaseenterstringS:”);scanf("%s”,s);fun(s,t);printf("\nTheresultis:%s\n”,t);}3、程序设计说明,所有题目均需添加main(),在main()中调用子函数并设计完整的输入输出才可调试通过。(1)功能:请编写一个函数intfun(int*s,intt,int*k),用来求出数组的下标,用k返回。:876675896101301401980431451777则输出结果为:最大元素在数组中的例如:输入如下整数6,980(2)功能:编写函数voidlen_cat(charc1[],charc2[])将第二个串连接到第之后,不允许使用strcat函数(一个串画程序流程图)(3)功能:编写函数longfun(char*p),将一个数字字符串转换为一个整数(不得调用C语言提供的将字符串转换为整数的函数)。例如:若输入字符串”-1234”,则函数整数值—1234。把它转换为37金陵科技学院实验报告(4)功能:编写函数intfun(char*ptr)过滤串,即只保留串中的字母字符,并统计新生成串中包含的字母个数作为函数的返回值.(5)功能:编写函数voidfun(chars[])将一个由四个数字组成的字符串转换为每两个数字间有一个空格的形式输出.例如:输入“4567",应输出“4□5□6□7”(□表示空格)。(6)功能:编写函数voidfun(chars[],charc)从字符串s中删除指定的字符c。说明:该字符可能多次和连续出现,算法应全面考虑。(画程序流程图)4、讨论、思考题(1)功能:请编写函数voidfun(char(*s)[N],char*b),将M行N列的二维数组中的字符数据按列的顺序依次放到一个字符串中。例如:二维数组中的数据为:WWWWSSSSHHHH则字符串中的内容应是:WSHWSHWSHWSH。(2)功能:编写函数voidfun(charstr[],inti,intn),从字符串str中删除第i开始的连续n个字符(注意:str[0]代表字符串的第一个字符)。s所指字符串中除了下标为之外,其余的所有字符都删除,串中个字符(3)功能:编写函数voidfun(char*s,chart[]),将奇数、同时放在t所指的数组中。:若s所指字符串中的A的ASCII码值虽为奇数,但所在元素的下标为偶数,因此必需删除;而的下标也为奇数,因此不应当删除,依此类推.最后t所指的数组中的行字符串中单词的个数作为函数间由若干个空格隔开,一行的开始没有ASCII值也为奇数的字符剩余字符所形成的一个新串例如内容为:”ABCDEFG12345”,其中字符1的ASCII码值为奇数,所在数组中内容应是:”135”.字符其他(4)功能:请编写函数intfun(char*s),统计一值返回。规定所有单词由小写字母组成,单词之空格。程序清单及流程图:38金陵科技学院实验报告(2)结果(3)结果金陵科技学院实验报告2.程序改错(1)#include〈stdio。h〉voidinput(int*arr,intn){int*p,i;p=arr;printf("pleaseenter10integers:\n”);for(i=0;i〈n;i++)/**********ERROR**********/scanf("%d",p++);}voidmax_min(int*arr,intn){int*min,*max,*p,t;min=max=arr;for(p=arr+1;p<arr+n;p++)/**********ERROR**********/if(*p〉*max)max=p;elseif(*p〈*min)min=p;t=*arr;*arr=*min;*min=t;/**********ERROR**********/if(max==arr)max=min;t=*(arr+n—1);*(arr+n-1)=*max;*max=t;}voidoutput(int*arr,intn){int*p,i;40金陵科技学院实验报告p=arr;printf("Thechangedarrayis:\n”);/**********ERROR**********/for(i=0;i〈n;i++)printf(”%3d",*p++);printf(”\n");}main(){inta[10];input(a,10);max_min(a,10);output(a,10);}(2)#include〈conio。h〉#include<stdio.h〉#include<string。h〉/**********FOUND**********/voidfun(chars[],chart[]){inti,d;/**********FOUND**********/d=strlen(/*********s);*FOUND**********/for(i=0;i<d;i++)t[i]=s[d—1—i];for(i=0;i<d;i++)t[d+i]=s[i];*******FOUND**********/t[2*d]=’\0';/***}main(){chars[100],t[100];printf("\nPleaseenterstringS:");scanf(”%s",s);41金陵科技学院实验报告fun(s,t);printf("\nTheresultis:%s\n”,t);}3。程序设计(1)#include〈stdio。h〉intfun(int*s,intt,int*k){inti,m=0,max;k=s+1;max=*s;for(i=0;i<t-1;i++){if(*(k+i)>max){max=*(k+i);m=i+1;}}printf("\nTmaxis:%d,%d\n”,m,max);}main(){inti,s[10]={0},*p=0;printf("\nPleaseenterstringS:\n");for(i=0;i〈10;i++)scanf(”%d”,&s[i]);fun(s,10,p);}42金陵科技学院实验报告#include〈stdio。h>voidlen_cat(charc1[],charc2[])i=0;c1[i]!='\0’;i++)d[i]=c1[!=’\0’;j++)gets(t);len_cat(s,t);}(3)#defineN100#include〈stdio.h〉longfun(char*p){inti,m=0;金陵科技学院实验报告for(i=0;*(p+i)!='\0';i++){if(*(p+i)=='-’)printf(”%c",*(p+i));elsem=m*10+(*(p+i)—48);}printf(”%d”,m);printf(”\n");}main(){chars[N];printf(”\nPleaseenterstringS:”);gets(s);fun(s);}(4)#defineN100#include<stdio.h>intfun(char*ptr){Inti,j,m=0,a[N];for(i=0;*(ptr+i)!='\0’;i++){if(*(ptr+i)>=’A'&&*(ptr+i)<='Z’||*(ptr+i)〉='a’&&*(ptr+i)〈=’z’)m++;a[m]=*(ptr+i);}returnm;}main(){chars[N];printf("\nPleaseenterstring:S");gets(s);44金陵科技学院实验报告printf(”%d\n”,fun(s));#include〈stdio。h〉voidfun(chars[]){printf(”\nPleaseenterstringS:");gets(s);fun(s);}(6)#defineN100#include<stdio。voidfun(chars[],charc){h>inti;for(i=0;s[i]!='\0';i++)if(s[i]!=c)printf("%c”,s[i]);printf(”\n”);}main(){金陵科技学院实验报告chars[N];printf("\nPleaseenterstringS:");gets(s);#defineM3#include<stdio.h>voidfun(char(*s)[N],char*b)inti,j;for(i=0;i〈N;i++){for(j=0;j〈M;j++)printf(”%c",*(b+j*N));chars[M][N]={’W’,’W’,’W’,'W','S','S’,’S’,'S','H',’H’,'H','H'},*b;fun(s,b);}(2)#defineM100金陵科技学院实验报告#include<stdio.h>voidfun(intstr[],inti,intn){inta,j;for(a=0;a〈12;a++)if(a〈i-1)printf(”%3d”,str[a]);for(j=i+n—1;j〈12;j++)printf(”%3d",str[j]);printf("\n");}main(){ints[M]={1,2,3,4,5,6,7,8,9,10,11,12};inti,n;printf(”Inputi:\n”);scanf(”%d",&i);printf("Inputn:\n”);scanf("%d”,&n);fun(s,i,n);}(3)#defineM100#include<stdio。h>voidfun(char*s,chart[]){inti=0,j=0;char*p;p=s;while(*p!='\0'){if(i%2==1&&*p%2==1){t[j]=*p;j++;}i++;p++;47金陵科技学院实验报告}puts(t);}main(){chars[M]={1},t[M]={1};inti,n;gets(s);fun(s,t);}(4)#defineM100#include〈stdio.h>intfun(char*s){intj=1;char*p;p=s;while(*p!='\0’){if(*p==’'&&*(p+1)!='')j++;p++;}printf(”%d\n",j);}main(){chars[M]={1};inti,n;gets(s);fun(s);}5.附加题(1)48金陵科技学院实验报告#include<stdio。h>intmain(){inta[3][4]={{1,3,5,7},{9,11,13,15},{17,19,21,23}};inti,(*ptr)[4];floatsum,average;for(ptr=a;ptr〈a+3;ptr++){sum=0;for(i=0;i<4;i++)sum+=*(*ptr+i);average=sum/4;printf("average=%.2f\n",average);}return0;}五、实验体会(遇到问题及解决办法,编程后的心得体会,增做补充题题目及文件名清单。)编写越来越具难度的程序,然而发现良好的编程习惯也是学好C语言的重要因素。例如编写程序时用缩进的方式、写注释、程序写到一定的阶段时要做一下测试等.这些工作可以帮我们在调试程序时有很大的帮助。程序代码实现后,错误是难免的,所以也要锻炼自己的调试查错能力,而良好的编程习惯可以使我们在调试时减小工作量和提高调试效,率也有助自己的编程风格。在学习的时候,会觉得C语言学起来很枯燥,后来才发现学果编写的程序没有目的性,你会发现自己在学习的过程中会很枯燥,会渐渐失去对C语言的学习兴趣,编写程序时会迷失方向,也会缺乏层次性,容易编写错误,然后就会更加烦躁,越发不能很好完成进入一个死循环。所以,我们需要先确定一个目标,有一个大概的于形成习语言,是要有目的性。如编程,过程,然后按照思路,耐心一步步完成,才能做到最好。49金陵科技学院实验报告实验项目名称:构造类型程序设计实验学时:4同组学生姓名:实验地点:实验日期:实验成绩:批改教师:批改时间:50金陵科技学院实验报告实验4构造类型程序设计一、实验目的和要求(1)熟悉结构体和共同体的概念;(2))熟悉并掌握结构体变量、数组和共同体变量的定义、赋值与使用;(3)掌握结构体指针的定义与引用;(4)掌握链表的概念,初步学会对链表进行操作;(5)熟悉文件打开、关闭、写入、读出的方法;学会使用文件操作函数。二、实验仪器和设备奔腾以上计算机,装有windowsXP以上版本操作系统和VisualC++6.0软件。三、实验内容与过程1、程序调试(1)structaa{intx,*y;}*p;inta[8]={10,20,30,40,50,60,70,80};structaab[4]={100,&a[1],200,&a[3],10,&a[5],20,&a[7]};main(){p=b;printf(″%d″,*++p—>y);printf(″%d\n″,++(p->x));}(2)strucSTU{charname[10];intnum;};voidf1(structSTUc){structSTUb={“LiSiGuo”,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CSPSTC 166-2025洪涝灾害空天地一体化监测数据采集技术指南
- T/ZAWS 005-2024燃煤耦合污泥发电安全管理要求
- T/HAEPCI 63-2024尾砂环保涂料应用技术规范
- T/CIE 257-2024大模型系统质量要求 第1部分:文本类型
- T/CAOE 72-2023海滩养护拦沙堤设计技术导则
- T/CSAE 469-2025乘用车线控转向手感模拟单元技术规范
- 2025~2026学年广东某校连州市北师大版下册期末素养检测三年级数学【附答案】
- 2025-2026学年宁夏回族自治区石嘴山市初中生物八年级期末下册高分预测重点黑金模拟题附答案
- PHP 基础知识测试题(含详细答案)
- 2026年康复治疗师理论真题卷及答案
- 2026年新教材人教版九年级上册英语期中素养综合评价测试卷(含答案)
- 中国老年人睡眠管理新范式专家共识(2026 版)
- 2026年轮胎制造行业市场现状分析报告及未来五至十年碳中和与循环经济
- 2026年托业(TOEIC)全真试题及详细答案解析
- 2026年台州市路桥区政务服务中心(窗口人员)招聘考试备考试题及答案详解
- 石方清运施工方案
- 2026广西民族大学招聘专任教师128人笔试参考题库及答案详解
- 湖南省2026年高考招生计划-历史类
- 【人教版】第二单元第4课《含糖饮料要少喝》课件-【核心素养目标】《体育与健康》三年级全
- GJB135B-2021合成航空发动机润滑油规范
- 光伏发电项目管理表格
评论
0/150
提交评论