C语言实验报告参考答案.pdf

上传人:赵** 文档编号:52444806 上传时间:2022-10-23 格式:PDF 页数:26 大小:533.02KB
返回 下载 相关 举报
C语言实验报告参考答案.pdf_第1页
第1页 / 共26页
C语言实验报告参考答案.pdf_第2页
第2页 / 共26页
点击查看更多>>
资源描述

《C语言实验报告参考答案.pdf》由会员分享,可在线阅读,更多相关《C语言实验报告参考答案.pdf(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、长沙理工大学长沙理工大学 2010C2010C 语言实验报告参考答案语言实验报告参考答案实验一实验一熟悉熟悉 C C 语言程序开发环境及数据描述语言程序开发环境及数据描述四、程序清单四、程序清单1编写程序实现在屏幕上显示以下结果:The dress is long The shoes are big The trousers are black答案:#includemain()printf(The dress is longn);printf(The shoes are bign);printf(The trousers are blackn);2改错题(将正确程序写在指定位置)正确的程序为:

2、#include main()printf(商品名称价格n);printf(TCL 电视机¥7600n);printf(美的空调¥2000n);printf(SunRose 键盘¥50.5n);2编写程序:a=150,b=20,c=45,编写求 a/b、a/c(商)和 a%b、a%c(余数)的程序。答案:#includemain()int a,b,c,x,y;a=150;b=20;c=45;x=a/b;y=a/c;printf(a/b 的商=%dn,x);printf(a/c 的商=%dn,y);x=a%b;y=a%c;printf(a/b 的余数=%dn,x);printf(a/c 的余数=

3、%dn,y);4.设变量 a 的值为 0,b 的值为-10,编写程序:当 ab 时,将 b 赋给 c;当 a=b 时,将 a赋给 c。(提示:用条件运算符)答案:#includemain()int a,b,c;a=0;b=-10;c=(ab)?b:a;printf(c=%dn,c);五、调试和测试结果五、调试和测试结果1.编译、连接无错,运行后屏幕上显示以下结果:The dress is long The shoes are big The trousers are black3、编译、连接无错,运行后屏幕上显示以下结果:a/b 的商=7a/c 的商=3a/b 的余数=10a/c 的余数=15

4、4.编译、连接无错,运行后屏幕上显示以下结果:c=-10实验二实验二顺序结构程序设计顺序结构程序设计四、程序清单四、程序清单1键盘输入与屏幕输出练习问题问题 1 1 D。问题问题 2 2改 printf(%c,%c,%dn,a,b,c);printf(%c,%c,%dn,a,b,c);这条语句这条语句改成:printf(%c%c%dn,a,b,c);printf(%c%c%dn,a,b,c);问题问题 3 3改 scanf(%c%c%d,&a,&b,&c);scanf(%c%c%d,&a,&b,&c);这条语句这条语句改为:改为:scanf(%cscanf(%c,%c%c,%d,&a,&b,&

5、c);%d,&a,&b,&c);问题问题 4 4改 printf(%c,%c,%dn,a,b,c);printf(%c,%c,%dn,a,b,c);这条语句这条语句改成:printf(printf(%c%c%c%c%dn,a,b,c);%dn,a,b,c);2(1)从键盘输入两个八进制数,计算两数之和并分别用十进制和十六进制数形式输出。#include int main()int a,b,c;printf(Enter a and b:);scanf(%o%o,&a,&b);c=a+b;printf(d:%dn,c);printf(x:%xn,c);return 0;2(2)编写程序:从键盘输入

6、两个实数 a 和 x,按公式计算并输出 y 的值:#include#includeint main()float a,x,y;scanf(%f%f,&a,&x);y=pow(a,5)+sin(a*x)+exp(a*x)+log(a+x);printf(y=%fn,y);return 0;3改错题正确的程序为:#include main()int a,b,c,s;scanf(%d%d%d,&a,&b,&c);s=a+b+c;printf(%d=%d+%d+%dn,s,a,b,c);/*输出 s=a+b+c*/printf(%d+%d+%d=%dn,a,b,c,s);/*输出 a+b+c=s*/五

7、、调试和测试结果五、调试和测试结果2(1)输入:12 14输出:26 1a2(2)输入:1 0输出:2.000000实验三实验三选择结构程序设计选择结构程序设计四、设计流程(算法描述)四、设计流程(算法描述)(请写出上机内容 2(2)题的算法描述)主要是两两比较,然后得出最大的数主要是两两比较,然后得出最大的数五、程序清单五、程序清单2(1)输入整数 x 和 a,计算并输出下列分段函数 f(x)的值(保留 2 位小数),请调用 log函数求自然对数,调用 fabs 函数求绝对值。程序为:#include#include main()int x,a;double y;printf(Enter a

8、 and x:);scanf(%d%d,&a,&x);if(fabs(x)!=a)y=log(fabs(a+x)/(a-x)/(2*a);elsey=0;printf(a=%d,f(%d)=%.2fn,a,x,y);(2)输入 a、b、c 三个整数,输出最大数。#includemain()int a,b,c,x;scanf(%d%d%d,&a,&b,&c);if(a=b)x=a;elsex=b;if(xc)x=c;printf(the max number is:%dn,x);return 0;3改错题正确程序为:#include main()double n;printf(Enter n:)

9、;scanf(%lf,&n);if(n0)printf(n is less than 0n);else if(n=0)printf(n is equal to 0n);elseprintf(n is greater 0n);六、调试和测试结果六、调试和测试结果2(1)Enter a and x:5 6a=5,f(6)=0.24Enter a and x:5 5a=5,f(5)=0.002(2)输入:3 2 1输出:the max number is:3输入:2 3 1输出:the max number is:3输入:1 2 3输出:the max number is:3实验四实验四循环结构程序

10、设计循环结构程序设计四、设计流程(算法描述)四、设计流程(算法描述)(请写出上机内容 2 的算法描述)首先求出每一个给定数的所有因子和,然后从 2 到 5000 循环,那一个数 x 与因子之和相等,就是完数。五、程序清单五、程序清单1编写程序:求 1+2+3+100 和 12+22+33+1002。#include#includeint main()int i,j,sum;sum=0;for(i=1;i=100;i+)sum+=i;printf(the sum is:%dn,sum);sum=0;for(i=1;i=100;i+)j=pow(i,2);sum+=j;printf(the squ

11、are sum is:%dn,sum);return 0;2一个数如果恰好等于它的因子之和,这个数就称为“完数”,编写程序找出 25000中的所有完数。#include#include main()int i,j,sum=0;for(i=2;i=5000;i+)/遍历从 2 到 5000 的所有数sum=0;for(j=1;j=i/2;j+)/找出给定整数 X 的所有因子和if(i%j=0)sum+=j;if(i=sum)/sum 为因子和,如果和 i 相等,则输出printf(%d ,i);return 0;3.改错题正确的程序为:#include main()int n=1;int fin

12、d=0;while(!find)if(n%5=1&n%6=5&n%7=4&n%11=10)printf(n=%dn,n);find=1;n+;六、调试和测试结果六、调试和测试结果1:结果:the sum is:5050 the square sum is:3383502:结果:6 28 496实验五实验五函数和预处理命令函数和预处理命令四、设计流程(算法描述)四、设计流程(算法描述)(请写出上机内容 1 的算法描述)利用循环将 m 乘 n 次五、程序清单五、程序清单1编写自定义函数 long power(int m,int n),计算mn的值。利用此函数编程序实现:从键盘输入两个整数 m 和

13、n,计算出mn的值。#includelong power(int m,int n)/要返回的是 long 型int i;long s;/因为是要返回的数,所以这里也定义为 long 型s=1;for(i=1;i=n;i+)s*=m;return s;int main(void)int m,n;scanf(%d%d,&m,&n);printf(s=%ldn,power(m,n);return 0;2、写出两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果,两个整数由键盘输入。1源程序如下:int zdgys(int n1,int n2)int y,i;for(i

14、=n2;i=1;i-)if(n1%i=0&n2%i=0)y=i;break;return y;int zxgbs(int n1,int n2)int y,i;for(i=n1;i=n1*n2;i+)if(i%n1=0&i%n2=0)y=i;break;return y;main()int n1,n2,t;scanf(n1=%d n2=%d,&n1,&n2);if(n1n2)t=n1;n1=n2;n2=t;printf(zdgys=%d zxgbs=%d,zdgys(n1,n2),zxgbs(n1,n2);3、改错题正确程序如下:#include int fact(int n);int mult

15、i(int n);main()int i;double sum,item,eps;eps=1E-6;sum=1;item=1;for(i=1;item=eps;i+)item=fact(i)/multi(2*i+1);sum=sum+item;printf(“PI=%0.5lfn”,sum*2);return 0;int fact(int n)int i;int res=1;for(i=0;i=n;i+)res=res*i;return res;int multi(int n)int i;int res=1;for(i=3;i=n;i=i+2)res=res*i;return res;六、调试

16、和测试结果六、调试和测试结果1、输入:2 3输出:s=82、输入:n1=24 n2=16输出:zdgys=8 zxgbs=482.3、输出结果为:实验六实验六数组数组四、设计流程(算法描述)四、设计流程(算法描述)(请写出上机内容 1 的算法描述)设置两个变量分别指示头和尾。第一个和最后一个元素值互换,然后头和尾变量向里移动,最终到两变量相遇为止。五、程序清单1编写程序:从键盘输入一串整数保存到数组中,调用函数 antitone()将数组反序输出。自定义函数 void antitone(int a,int n)实现将数组中的 n 个数据按逆序存放。void antitone(int a,int

17、 n)int i,j;int k;i=0;j=n-1;while(ij)k=ai;ai=aj;aj=k;i+=1;j-=1;2已知某数列的前两项为 2 和 3,其后每一项为其前两项之积。编程实现:从键盘输入一个整数 x,判断并输出 x 最接近数列的第几项?#include#includevoid Mad(int a,int n)int i;a0=2;a1=3;for(i=2;iai;i+);k1=abs(x-ai-1);k2=abs(x-ai);if(k1k2)printf(x 最接近第%d 项n,i+1);elseprintf(x 最接近第%d 项n,i);return 0;3、源程序如下:

18、#include main()char c15;int i,word=0,num=0,space=0;for(i=0;i=14;i+)scanf(%c,&ci);for(i=0;i=0&cia&ciz)word+;printf(字符:%d 数字:%d 空格:%dn,word,num,space);六、调试和测试结果六、调试和测试结果1、输入:1 2 3 4 5输出:5 4 3 2 12、输入:110输出:x 最接近第 6 项3、输入:sd234kj64jk mjk输出:字符:9数字:5空格:1实验七实验七数组和函数综合程序设计数组和函数综合程序设计四、程序清单四、程序清单(请写出上机内容 2、

19、3 中源程序)2、原程序求得的是下三角形,经改进调试之后的程序为:#include#define N 6main()int i,j,sum=0;int aNN=0;printf(input 55 data:n);for(i=1;iN;i+)printf(Input the%d line data:n,i);for(j=1;jN;j+)scanf(%d,&aij);for(i=1;iN;i+)for(j=1;jN;j+)printf(%5d,aij);printf(n);for(i=1;i=i;j-)sum=sum+aij;printf(sum=%dn,sum);3 3、void fun(int

20、 ttMN,int ppN)int i,j,max;for(j=0;jN;j+)max=tt0j;for(i=1;imax)max=ttij;ppj=max;五、调试和测试结果五、调试和测试结果(写出上机内容 1 中填空的内容)1、(1)sum=0(2)tii(3)1实验八实验八指针指针四、程序清单四、程序清单(请写出上机内容 2 中的函数)求出每个位上的数字,然后放在千位上的数字乘以 1000,放在百位上的数字乘以 100,放在 10 位上的数字乘以 10,然后相加。void fun(int a,int b,long*c)int a10,a1,b10,b1;a10=a/10;a1=a%10;

21、b10=b/10;b1=b%10;*c=a10*1000+b1*100+a1*10+b10;五、调试和测试结果五、调试和测试结果(请写出上机内容 1 的输出结果)1(1)1(1)输出结果为:输出结果为:8,7,7,88,7,7,8(2)6(2)6(3)(1)x=10 y=20(3)(1)x=10 y=20(2)x=20 y=10(2)x=20 y=10(4)(4)【1 1】int*p【2 2】&ai【3 3】pi输入:1 2 3 4 5 6输出:1 2 3 4 5 6实验九实验九指针、函数和数组综合程序设计指针、函数和数组综合程序设计设计流程(算法描述)设计流程(算法描述)(请写出上机内容 2

22、 中的算法描述)i=0五、程序清单五、程序清单1已知一个整型数组 a5,其各元素值为 4,6,8,10,12。使用指针编程求数组元素之积。当*(x+i)!=0*(x+i)=yTF#include int main(void)int a=4,6,8,10,12,sum;int*p;sum=1;for(p=a;pa+5;p+)sum*=*p;printf(%dn,sum);return 0;2定义函数 int f(char*x,char y)判断 x 所指的字符串中是否包含字符 y,若是则函数返回 1,否则返回 1。int f(char*x,char y)char*p;for(p=x;*p!=0;

23、p+)if(*p=y)printf(%cn,*p);return 1;return 0;3.定义函数 void f(float x,int*y,float*z)将 x 的整数部分存于 y 所指的存储单元,x 的小数部分存于 x 所指的存储单元。void f(float x,int*y,float*z)*y=(int)x;*z=x-*y;六、调试和测试结果六、调试和测试结果测试结果正确实验十实验十结构体结构体四、程序清单四、程序清单(请写出上机内容 1 的源程序和上机内容 2 中的函数)1、上机内容 1 的源程序#include#include#define FORMAT%0dt%st%dt%c

24、nstruct student int num;char name20;int age;char sex;main()void input(struct student stu);void stat(struct student stu);struct student stu4;int i;input(stu);for(i=0;i4;i+)printf(FORMAT,stui.num,stui.name,stui.age,stui.sex);stat(stu);void input(struct student stu)int i;for(i=0;i4;i+)scanf(%d,&stui.nu

25、m);getchar();scanf(%s,&stui.name);getchar();scanf(%d,&stui.age);getchar();scanf(%c,&stui.sex);getchar();void stat(struct student stu)int i,c=0,boy=0,girl=0;for(i=0;i4;i+)if(stui.age18)c+=1;if(stui.sex=m)boy+;else girl+;printf(boytgirltageave=0;for(i=0;iN;i+)for(i=0;iave+=a-si;a-ave+=a-si;a-ave/=N;a-

26、ave/=N;3 3、改错题正确的程序为:将 printf(%5d%-20s%2c%4dn,*p.num,*p.name,p.sex,p.age);改为:printf(%5d%-20s%2c%4dn,p-.num,p-name,p-sex,p-age);实验十一实验十一共用体、位运算和文件共用体、位运算和文件四、程序清单四、程序清单(请写出上机内容 2 中的程序源代码)(1)求 100 以内能同时被 3 和 5 整除的自然数,分别将它们输出到显示器屏幕和 x.txt文件中。(2)用程序读出上述 x.txt 文件中的数据,将它们输出到屏幕,并求它们的和。#include#include#incl

27、ude int main(void)int i,sum;FILE*fd;char s10,*p,ch;if(fd=fopen(D:shi.txt,wt)=NULL)printf(creat the file failedn);exit(0);else for(i=1;i100;i+)if(i%3=0)&(i%5=0)printf(%d,i);itoa(i,s,10);/转换成字符串fputs(s,fd);fputc(,fd);printf(n);fclose(fd);/提取字符转换成数字输入 if(fd=fopen(D:shi.txt,rt)=NULL)printf(open the file

28、 failedn);exit(0);else p=s;sum=0;doch=fgetc(fd);if(ch=)i=atoi(s);sum+=i;printf(%d,i);strset(s,0);p=s;else*p=ch;p+;while(ch!=EOF);printf(数的和是:%dn,sum);fclose(fd);return 0;实验十二参考答案实验十二参考答案:(可根据情况,弄清楚一个模块即可)题目:设某班有n 位同学,每位同学的数据包括以下内容:学号(长整型)、姓名(字符串)、数学成绩(整型)、程序设计成绩(整型)。设计程序完成以下五项功能:新建数据档案、添加数据、删除数据、对输入

29、的数据进行排序和查询。注:输入数据时,要求学号不能相同,姓名可以相同。设计思路:1)程序运行时,首先显示主菜单(模块)如下:1程序运行时,首先显示主菜单如下:1新建数据2添加数据3删除数据4排序5查询6退出用户输入序号后,程序进行相应操作。2)在主菜单中选择序号 4,弹出子菜单选择排序方式,子菜单如下:1数学成绩排序2程序设计成绩排序3总分排序。4返回主菜单选择子菜单的序号后,程序能正确运行并在屏幕上显示按要求排序后的相关信息。3在主菜单中选择序号 5,弹出子菜单选择查询方式,子菜单如下:1学号查询2姓名查询3数学成绩查询4程序设计成绩查询5总分查询6返回主菜单请按序号选择相应操作在子菜单中选

30、择序号后,程序按以下方式工作。(1)学号查询:输入学号后,若该学号存在则显示与其相关的所有信息,否则显示找不到的提示信息;(提示:查询到满足条件的结果后,查询即可结束)(2)姓名查询:输入姓名后,若该姓名存在则显示与其相关的所有信息,否则显示找不到的提示信息;(提示:使用字符串比较函数进行比较)(3)按科目查询:输入指定分数,程序运行后显示该科目中考试成绩大于等于指定分数的同学的学号、姓名以及该科成绩并统计满足条件的人数;(4)总分查询:输入指定分数,程序运行后显示总分成绩大于等于指定分数的同学的学号、姓名以及各科成绩并统计满足条件的人数。C 源程序清单如下:#include stdio.h#

31、include stdlib.h#include string.h#include conio.h#include mem.h#include ctype.h#include alloc.h#define N 2typedef struct z1char no11;char name15;int scoreN;float sum;float average;int order;struct z1*next;STUDENT;/*Functions*/STUDENT*init();/*initialize*/STUDENT*create();STUDENT*delete(STUDENT*h);ST

32、UDENT*searchno(STUDENT*h);void print(STUDENT*h);void search(STUDENT*h);void save(STUDENT*h);STUDENT*load();STUDENT*insert(STUDENT*h);STUDENT*sort(STUDENT*h);STUDENT*index(STUDENT*h);int menu_select();/*menu*/*main*/main()int i;STUDENT*head;head=init();clrscr();for(;)switch(menu_select()case 1:head=i

33、nit();break;case 2:head=create();break;case 3:head=delete(head);break;case 4:print(head);break;case 5:search(head);break;case 6:head=searchno(head);break;case 7:save(head);break;case 8:head=load();break;case 9:head=insert(head);break;case 10:head=sort(head);break;case 11:case 12:case 13:head=index(h

34、ead);break;case 0:exit(0);menu_select()char*menu=*MENU*,1.Init list,2.Enter list,3.Delete a record from list,4.print list,5.Search record by name,6.Search record by Number,7.Save the file,8.Load the file,9.insert record to list,10.sort by total scores,11.sort by maths scores,12.sort by program score

35、s,13.index on number,0.Quit;char s3;int c,i;gotoxy(1,25);printf(press any key continue.n);getch();clrscr();gotoxy(1,1);textcolor(YELLOW);textbackground(BLACK);gotoxy(10,2);putch(0 xc9);for(i=1;i44;i+)putch(0 xcd);putch(0 xbb);for(i=3;i20;i+)gotoxy(10,i);putch(0 xba);gotoxy(54,i);putch(0 xba);gotoxy(

36、10,20);putch(0 xc8);for(i=1;i44;i+)putch(0 xcd);putch(0 xbc);window(11,3,53,19);clrscr();for(i=0;i16;i+)gotoxy(10,i+1);cprintf(%s,menui);textbackground(BLACK);window(1,1,80,25);gotoxy(10,21);doprintf(n Enter you choice(013):);scanf(%s,s);c=atoi(s);while(c14);return c;STUDENT*init()return NULL;STUDEN

37、T*create()int i;int s;STUDENT*h=NULL,*info;for(;)info=(STUDENT*)malloc(sizeof(STUDENT);if(!info)printf(nout of memory);return NULL;inputs(enter no:(10 digitals.enter 0 to exit),info-no,11);if(info-no0=0)break;/*when the first number is 0,break*/inputs(enter name:(name,15);printf(please input scores

38、n);s=0;/*s is sum,begins with 0*/for(i=0;iscorei);/*socre0 stores maths scores,socore1 stores programscores*/if(info-scorei100|info-scoreiscorei100|info-scoreiscorei;info-sum=s;info-order=0;info-next=h;h=info;return(h);inputs(char*prompt,char*s,int count)char p255;doprintf(prompt);scanf(%s,p);if(str

39、len(p)count)printf(n too long!n);while(strlen(p)count);strcpy(s,p);/*Print infor*/void print(STUDENT*h)int i=0;STUDENT*p;clrscr();p=h;printf(nnn*STUDENT*n);printf(|rec|NO.|name|maths|program|sum|order|n);printf(|-|-|-|-|-|-|-|n);while(p!=NULL)i+;printf(|%3d|%-10s|%-15s|%7d|%9d|%4.2f|n,i,p-no,p-name,

40、p-score0,p-score1,p-sum,p-order);p=p-next;printf(*end*n);STUDENT*delete(STUDENT*h)STUDENT*p,*q;char s11;clrscr();printf(please enter the number you want to delete n);scanf(%s,s);q=p=h;while(strcmp(p-no,s)&p!=NULL)q=p;p=p-next;if(p=NULL)printf(nlist no%s studentn,s);elseprintf(nnn*STUDENT*n);printf(|

41、NO.|name|maths|program|sum|order|n);printf(|-|-|-|-|-|-|n);printf(|%-10s|%-15s|%7d|%9d|%4.2f|%3d%3d|n,p-no,p-name,p-score0,p-score1,p-sum,p-order);printf(*end*n);getch();if(p=h)h=p-next;elseq-next=p-next;free(p);printf(n have deleted No%s studentn,s);return(h);STUDENT*searchno(STUDENT*h)STUDENT*p,*q

42、;char s11;clrscr();printf(please enter the number you want to search n);scanf(%s,s);q=p=h;while(strcmp(p-no,s)&p!=NULL)q=p;p=p-next;if(p=NULL)printf(n%s No Found!n,s);elseprintf(n%s Found!n,s);printf(nnn*STUDENT*n);printf(|NO.|name|maths|program|sum|order|n);printf(|-|-|-|-|-|-|n);printf(|%-10s|%-15

43、s|%7d|%9d|%4.2f|n,p-no,p-name,p-score0,p-score1,p-sum,p-order);printf(*end*n);getch();return(h);void search(STUDENT*h)STUDENT*p;char s15;clrscr();printf(please enter name for searchn);%3dscanf(%s,s);p=h;while(strcmp(p-name,s)&p!=NULL)p=p-next;if(p=NULL)printf(n%s No Found!n,s);elseprintf(n%s Found!n

44、,s);printf(nnn*STUDENT*n);printf(|NO.|name|maths|program|sum|order|n);printf(|-|-|-|-|-|-|n);printf(|%-10s|%-15s|%7d|%9d|%4.2f|n,p-no,p-name,p-score0,p-score1,p-sum,p-order);printf(*end*n);STUDENT*insert(STUDENT*h)STUDENT*p,*q,*info;char s11;int s1,i;printf(please enter the No.which this record will

45、 be located before n);scanf(%s,s);printf(nplease new recordn);info=(STUDENT*)malloc(sizeof(STUDENT);if(!info)printf(nout of memory);return NULL;inputs(enter no:(10 digitals),info-no,11);inputs(enter name:(name,15);printf(please input scores n);s1=0;for(i=0;iscorei);if(info-scorei100|info-scoreiscore

46、i100|info-scoreiscorei;info-sum=s1;info-order=0;info-next=NULL;p=h;q=h;while(strcmp(p-no,s)&p!=NULL)q=p;p=p-next;if(p=NULL)if(p=h)h=info;elseq-next=info;elseif(p=h)info-next=p;h=info;elseinfo-next=p;q-next=info;printf(n-have inserted%s student-n,info-name);return(h);/*SAVE*/void save(STUDENT*h)FILE*

47、fp;STUDENT*p;char outfile10;printf(Enter outfile name,for example c:cstudent.txt:n);scanf(%s,outfile);if(fp=fopen(outfile,wb)=NULL)printf(can not open filen);exit(1);printf(nSaving file.n);p=h;while(p!=NULL)fwrite(p,sizeof(STUDENT),1,fp);p=p-next;fclose(fp);printf(-save success!-n);STUDENT*load()STU

48、DENT*p,*q,*h=NULL;FILE*fp;char infile10;printf(Enter infile name,for example c:cstudent.txt:n);scanf(%s,infile);if(fp=fopen(infile,rb)=NULL)printf(can not open filen);exit(1);printf(n-Loading file!-n);p=(STUDENT*)malloc(sizeof(STUDENT);if(!p)printf(out of memory!n);return h;h=p;while(!feof(fp)if(1!=

49、fread(p,sizeof(STUDENT),1,fp)break;p-next=(STUDENT*)malloc(sizeof(STUDENT);if(!p-next)printf(out of memory!n);return h;q=p;p=p-next;q-next=NULL;fclose(fp);printf(-Read data successful!-n);return h;/*sort*/STUDENT*sort(STUDENT*h)int i=0;STUDENT*p,*q,*t,*h1;h1=h-next;h-next=NULL;while(h1!=NULL)t=h1;h1

50、=h1-next;p=h;q=h;while(t-sumsum&p!=NULL)q=p;p=p-next;if(p=q)t-next=p;h=t;elset-next=p;q-next=t;p=h;while(p!=NULL)i+;p-order=i;p=p-next;printf(sort sucessn);return h;/*index by number*/STUDENT*index(STUDENT*h)STUDENT*p,*q,*t,*h1;h1=h-next;h-next=NULL;while(h1!=NULL)t=h1;h1=h1-next;p=h;q=h;while(strcm

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁