1、void fun(char *filename, STU n)FILE *fp;/*found*/fp = fopen(_1_, rb+);fseek(_2_, -(long)sizeof(STU), SEEK_END);fwrite(&n, sizeof(STU), 1, _3_);fclose(fp);main()STU tN= 10001,MaChao, 91, 92, 77, 10002, CaoKai, 75, 60, 88,10003,LiSi, 85, 70, 78, 10004, FangFang, 90, 82, 87,10005,ZhangSan, 95, 80, 88;S
2、TU n=10006,ZhaoSi, 55, 70, 68, ssN;int i,j; FILE *fp;fp = fopen(student.dat, wbfwrite(t, sizeof(STU), N, fp);rbfread(ss, sizeof(STU), N, fp);printf(nThe original data :nnfor (j=0; jN; j+)printf(nNo: %ld Name: %-8s Scores: ,ssj.sno, ssj.name);for (i=0; i3; i+) printf(%6.2f , ssj.scorei);nfun(, n);nTh
3、e data after modifing :解题答案:/*第一空*/fp = fopen(filename, /*第二空*/fseek(fp, -(long)sizeof(STU), SEEK_END);/*第三空*/n, sizeof(STU), 1, fp);* 二、改错题:给定程序MODI1.C中的函数Creatlink的功能是创建带头结点的单向链表, 并为各结点数据域赋0到m-1的值。请改正函数Creatlink中指定部位的错误, 使它能得出正确的结果。注意: 不要改动main函数, 不得增行或删行, 也不得更改程序的结构!#include typedef struct aaint
4、data;struct aa *next; NODE;NODE *Creatlink(int n, int m)NODE *h=NULL, *p, *s;int i;/*found*/p=(NODE)malloc(sizeof(NODE);h=p;p-next=NULL;for(i=1;=n; i+)s=(NODE *)malloc(sizeof(NODE);s-data=rand()%m; s-next=p-next;next=s; p=p-return p;outlink(NODE *h)NODE *p;p=h-nnTHE LIST :nn HEAD while(p)-%d ,p-data
5、);p=p-NODE *head;head=Creatlink(8,22);outlink(head);p=(NODE *)malloc(sizeof(NODE);return h;三、程序题:请编写函数fun, 函数的功能是:统计一行字符串中单词的个数,作为函数值返回。一行字符串在主函数中输入, 规定所有单词由小写字母组成,单词之间由若干个空格隔开, 一行的开始没有空格。部分源程序在文件PROG1.C中。请勿改动主函数main和其它函数中的任何内容, 仅在函数fun的花括号中填入你编写的若干语句。string.h#define N 80int fun(char *s)char lineN;
6、int num=0;void NONO ();Enter a string : gets(line);num=fun(line);The number of word is : %dnn,num);NONO();void NONO ()/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */FILE *rf, *wf ; int i, num ; char lineN, *p ;rf = fopen(in.dat,rwf = fopen(out.datwfor(i = 0 ; i 10 ; i+) fgets(line, N, rf);p = strchr(li
7、ne, nif(p != NULL) *p = 0 ;num = fun(line);fprintf(wf, %dn, num);fclose(rf); fclose(wf);参考答案:int fun( char *s) int k = 1 ;while(*s) if(*s = ) k+ ;s+ ; return k ;#第02套:给定程序的功能是:从键盘输入若干行文本(每行不超过80个字符),写到 文件myfile4.txt中,用-1作为字符串输入结束的标志。然后将文件的内容读出显示在屏幕上。文件的读写分别由自定义函数ReadText和WriteText实现。请在程序的下划线处填入正确的内容
8、并把下划线删除,使程序得出正确的结果。void WriteText(FILE *);void ReadText(FILE *);if(fp=fopen(myfile4.txt)=NULL) open fail! exit(0);WriteText(fp);ReadText(fp);void WriteText(FILE _1_)char str81;nEnter string with -1 to end :gets(str);while(strcmp(str,-1)!=0) fputs(_2_,fw); fputs(,fw);void ReadText(FILE *fr)nRead file and output to screen :fgets(str,81,fr);while(!feof(fr) %s,_3_);void WriteText(FILE *fw)fputs(str,fw);,str);给定程序MODI1
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1