1、第1套给定程序的功能是调用fun函数建立班级通讯录。通讯录中记录每位学生的编号、姓名和电话号码。班级的人数和学生的信息从键盘读入,每个人的信息作为一个数据块写到名为myfile5.dat的二进制文件中。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。#include #include #define N 5typedef struct int num;char name10;char tel10;STYPE;void check();/*found*/int fun(_1_ *std)/*found*/_2_ *fp; int i;if(fp=fopen(“myfile5
2、.dat“,“wb“)=NULL)return(0);printf(“nOutput data to file !n“);for(i=0; i#include void fun (char *s, char *t) int i, sl;sl = strlen(s);/*found*/for( i=0; ivoid fun(int a, int b, long *c)main() int a,b; long c;void NONO ( );printf(“Input a, b:“); scanf(“%d,%d“, fun(a, b, printf(“The result is: %dn“, c)
3、;NONO();填 :1) int fun(STYPE *std)2) FILE *fp; int i;3) fwrite(修改 :1) for(i = 0 ; i #include #include void WriteText(FILE *);void ReadText(FILE *);main() FILE *fp;if(fp=fopen(“myfile4.txt“,“w“)=NULL) printf(“ open fail!n“); exit(0); WriteText(fp);fclose(fp);if(fp=fopen(“myfile4.txt“,“r“)=NULL) printf
4、(“ open fail!n“); exit(0); ReadText(fp);fclose(fp);/*found*/void WriteText(FILE _1_) char str81;printf(“nEnter string with -1 to end :n“);gets(str);while(strcmp(str,“-1“)!=0) /*found*/fputs(_2_,fw); fputs(“n“,fw);gets(str);void ReadText(FILE *fr) char str81;printf(“nRead file and output to screen :n
5、“);fgets(str,81,fr);while( !feof(fr) ) /*found*/printf(“%s“,_3_);fgets(str,81,fr);给定程序MODI1.C中函数fun的功能是:从位出整currency1“s中数位上的数,依次成一个数放在t中。位fi在位,位fi在位。例如,当s中的数为:7654321时,t中的数为:7531。请改正程序中的错误,使它能得出正确的结果。注意:不fl改 main函数,不得 删 , 不得 改程序的结#include /*found*/void fun (long s, long t) long sl=10;*t = s % 10;whi
6、le ( s 0) s = s/100;*t = s%10 * sl + *t;/*found*/sl = sl*100;main() long s, t;printf(“nPlease enter s:“); scanf(“%ld“, fun(s, printf(“The result is: %ldn“, t);函数fun的功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的个位和百位上, b数的十位和个位数依次放在c数的千位和十位上。例如,当a45,b=12时,调用该函数后,c=1524。注意: 部分源程序存在文件PROG1.C中。
7、数据文件IN.DAT中的数据不得修改。请改 函数main和它函数中的 内容,在函数fun的号中填入编写的 ”。#include void fun(int a, int b, long *c)main() int a,b; long c;void NONO ( );printf(“Input a, b:“);scanf(“%d,%d“, fun(a, b, printf(“The result is: %ldn“, c);NONO();填 :1) void WriteText(FILE *fw)2) fputs(str,fw); fputs(“n“,fw);3) printf(“%s“,str)
8、;修改 :1) void fun (long s, long *t)2) sl = sl*10;程序 :void fun(int a, int b, long *c)*c=(b/10)*1000+(a%10)*100+(b%10)*10+(a/10);第3套给定程序中,函数fun的功能是:将 然数110 它的 方写到名为myfile3.txt的文 文件中,然后序读出 在 上。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在 生文件 下的BLANK1.C中。不得 删 , 不得 改程序的结#include #include int fun(char *fna
9、me ) FILE *fp; int i,n; float x;if(fp=fopen(fname, “w“)=NULL) return 0;for(i=1;i#include fun ( int n, int *a ) int i, j, p, t;for ( j = 0; jai )/*found*/t=i;if ( p!=j ) t = aj; aj = ap; ap = t; putarr( int n, int *z ) int i;for ( i = 1; i void fun(int a, int b, long *c)main() int a,b; long c;void NO
10、NO ( );printf(“Input a, b:“);scanf(“%d,%d“, fun(a, b, printf(“The result is: %ldn“, c);NONO();填 :1) fprintf(fp,“%d %fn“,i,sqrt(double)i);2) fclose(fp);3) if(fp=fopen(fname,“r“)=NULL)修改 :1) for ( i=j+1; i#include int fun(char *source, char *target) FILE *fs,*ft; char ch;/*found*/if(fs=fopen(source, _
11、1_)=NULL)return 0;if(ft=fopen(target, “w“)=NULL)return 0;printf(“nThe data in file :n“);ch=fgetc(fs);/*found*/while(!feof(_2_) putchar( ch );/*found*/fputc(ch,_3_);ch=fgetc(fs);fclose(fs); fclose(ft);printf(“nn“);return 1;main() char sfname20 =“myfile1“,tfname20=“myfile2“;FILE *myf; int i; char c;my
12、f=fopen(sfname,“w“);printf(“nThe original data :n“);for(i=1; ivoid fun (long s, long *t) int d;long sl=1;*t = 0;while ( s 0) d = s%10;/*found*/if (d%2=0) *t=d* sl+ *t;sl *= 10;/*found*/s = 10;main() long s, t;printf(“nPlease enter s:“); scanf(“%ld“, fun(s, printf(“The result is: %ldn“, t);函数fun的功能是:
13、将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的十位和千位上, b数的十位和个位数依次放在c数的百位和个位上。例如,当a45,b=12时,调用该函数后,c=5142。注意: 部分源程序存在文件PROG1.C中。数据文件IN.DAT中的数据不得修改。请改 函数main和它函数中的 内容,在函数fun的号中填入编写的 ”。#include void fun(int a, int b, long *c)main() int a,b; long c;void NONO ( );printf(“Input a, b:“);scanf(“%d,%d“,
14、fun(a, b, printf(“The result is: %ldn“, c);NONO();填 :1) if(fs=fopen(source, “r“)=NULL)2) while(!feof(fs)3) fputc(ch,ft);修改 :1) if (d%2=0)2) s /= 10;程序 :void fun(int a, int b, long *c)*c=(a%10)*1000+(b/10)*100+(a/10)*10+(b%10);第5套给定程序中 建立一个 结 的 , 中的 结 按结 数据 中的数据 序 接。函数fun的功能是:把形 x的放入一个结 并 入到 中, 入后 结
15、数据 的fi 序。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在 生文件 下的BLANK1.C中。不得 删 , 不得 改程序的结#include #include #define N 8typedef struct list int data;struct list *next; SLIST;void fun( SLIST *h, int x) SLIST *p, *q, *s;s=(SLIST *)malloc(sizeof(SLIST);/*found*/s-data=_1_;q=h;p=h-next;while(p!=NULL p=p-next;
16、s-next=p;/*found*/q-next=_3_;SLIST *creatlist(int *a) SLIST *h,*p,*q; int i;h=p=(SLIST *)malloc(sizeof(SLIST);for(i=0; idata=ai; p-next=q; p=q;p-next=0;return h;void outlist(SLIST *h) SLIST *p;p=h-next;if (p=NULL) printf(“nThe list is NULL!n“);else printf(“nHead“);do printf(“-%d“,p-data); p=p-next;
17、while(p!=NULL);printf(“-Endn“);main() SLIST *head; int x;int aN=11,12,15,18,19,22,25,29;head=creatlist(a);printf(“nThe list before inserting:n“); outlist(head);printf(“nEnter a number : “); scanf(“%d“,fun(head,x);printf(“nThe list after inserting:n“); outlist(head);给定程序MODI1.C中函数fun的功能是: 正整数num的 位上的
18、数字 。例如, 入:252,则 出应该是:20。 入:202,则 出应该是:0。请改正程序中的错误,使它能得出正确的结果。注意:不fl改 main函数,不得 删 , 不得 改程序的结#include long fun (long num)/*found*/long k;do k*=num%10 ;/*found*/num=10 ; while(num) ;return (k) ;main( ) long n ;printf(“nPlease enter a number:“) ; scanf(“%ld“,printf(“n%ldn“,fun(n) ;请编写一个函数fun,它的功能是: n 程的
19、 分, 结果作为函数 。例如: 5 程的成是:90.5, 72, 80, 61.5, 55则函数的为:71.80。注意: 部分源程序存在文件PROG1.C中。请改 函数main和它函数中的 内容,在函数fun的号中填入编写的 ”。#include float fun ( float *a , int n )main() float score30=90.5, 72, 80, 61.5, 55, aver;void NONO ( );aver = fun( score, 5 );printf( “nAverage score is: %5.2fn“, aver);NONO ( );填 :1) s
20、-data=x;2) q=p;3) q-next=s;修改 :1) long k=1;2) num/=10 ;程序 :float fun ( float *a , int n )int i;float ave=0.0;for(i=0; i#include #define N 8typedef struct list int data;struct list *next; SLIST;void fun( SLIST *p) SLIST *t, *s;t=p-next; s=p;while(t-next != NULL) s=t;/*found*/t=t-_1_;/*found*/printf(“
21、 %d “,_2_);s-next=NULL;/*found*/free(_3_);SLIST *creatlist(int *a) SLIST *h,*p,*q; int i;h=p=(SLIST *)malloc(sizeof(SLIST);for(i=0; idata=ai; p-next=q; p=q;p-next=0;return h;void outlist(SLIST *h) SLIST *p;p=h-next;if (p=NULL) printf(“nThe list is NULL!n“);else printf(“nHead“);do printf(“-%d“,p-data
22、); p=p-next; while(p!=NULL);printf(“-Endn“);main() SLIST *head;int aN=11,12,15,18,19,22,25,29;head=creatlist(a);printf(“nOutput from head:n“); outlist(head);printf(“nOutput from tail: n“);while (head-next != NULL)fun(head);printf(“nn“);printf(“nOutput from head again :n“); outlist(head);给定程序MODI1.C中
23、函数fun的功能是:将字符串中的字符按逆序 出, 不改字符串中的内容。例如, 字符串为abcd,则应 出:dcba。请改正程序中的错误,使它能 出正确的结果。注意:不fl改 main函数,不得 删 , 不得 改程序的结#include /*found*/fun (char a) if ( *a ) fun(a+1) ;/*found*/printf(“%c“ *a) ;main( ) char s10=“abcd“;printf(“处 字符串=%sn处 后字符串=“, s);fun(s); printf(“n“) ;请编写一个函数fun,它的功能是: 两个字符串的 ,(不得调用C” 的字符串
24、的函数),函数 的字符串。 两个字符串 ,则 第一个字符串。例如, 入beijing shanghai 为 键 ,函数将 shanghai。注意: 部分源程序存在文件PROG1.C中。请改 函数main和它函数中的 内容,在函数fun的号中填入编写的 ”。#include char *fun ( char *s, char *t)main( ) char a20,b20;void NONO ( );printf(“Input 1th string:“) ;gets( a);printf(“Input 2th string:“) ;gets( b);printf(“%sn“,fun (a, b
25、);NONO ();填 :1) t=t-next;2) printf(“ %d “,t-data);3) free(t);修改 :1) fun (char *a)2) printf(“%c“, *a) ;程序 :char *fun ( char *s, char *t)int sl=0,tl=0,i;for(i=0 ; si ; i+)sl+;for(i=0 ; ti ; i+)tl+;if(sl=tl)return s;elsereturn t;第7套给定程序中 建立一个 结 的 , 中的 结 按数据 序 接。函数fun的功能是:删除 中数据 的结 ,使 一个。请在程序的下划线处填入正确的内
26、容并把下划线删除,使程序得出正确的结果。注意:源程序存放在 生文件 下的BLANK1.C中。不得 删 , 不得 改程序的结#include #include #define N 8typedef struct list int data;struct list *next; SLIST;void fun( SLIST *h) SLIST *p, *q;p=h-next;if (p!=NULL) q=p-next;while(q!=NULL) if (p-data=q-data) p-next=q-next;/*found*/free(_1_);/*found*/q=p-_2_;else p=q
27、;/*found*/q=q-_3_;SLIST *creatlist(int *a) SLIST *h,*p,*q; int i;h=p=(SLIST *)malloc(sizeof(SLIST);for(i=0; idata=ai; p-next=q; p=q;p-next=0;return h;void outlist(SLIST *h) SLIST *p;p=h-next;if (p=NULL) printf(“nThe list is NULL!n“);else printf(“nHead“);do printf(“-%d“,p-data); p=p-next; while(p!=NU
28、LL);printf(“-Endn“);main( ) SLIST *head; int aN=1,2,2,3,4,4,4,5;head=creatlist(a);printf(“nThe list before deleting :n“); outlist(head);fun(head);printf(“nThe list after deleting :n“); outlist(head);给定程序MODI1.C中函数fun的功能是:用 法对数组中的n个元素按从到的序进 序。请修改程序中的错误,使它能得出正确的结果。注意:不fl改 main函数,不得 和删 , 不得 改程序的结#inclu
29、de #define N 20void fun(int a, int n) int i, j, t, p;for (j = 0 ;j #define M 100void fun ( int m, int *a , int *n )main( ) int aaM, n, k;void NONO ( );fun ( 50, aa, for ( k = 0; k next;3) q=q-next;修改 :1) p = j;2) p = i;程序 :void fun ( int m, int *a , int *n )int i,cnt=0 ;for(i=7 ; i#include #define N
30、 8typedef struct list int data;struct list *next; SLIST;SLIST *creatlist(char *);void outlist(SLIST *);int fun( SLIST *h, char ch) SLIST *p; int n=0;p=h-next;/*found*/while(p!=_1_) n+;/*found*/if (p-data=ch) return _2_;else p=p-next;return 0;main() SLIST *head; int k; char ch;char aN=m,p,g,a,w,x,r,d
31、;head=creatlist(a);outlist(head);printf(“Enter a letter:“);scanf(“%c“,/*found*/k=fun(_3_);if (k=0) printf(“nNot found!n“);else printf(“The sequence number is : %dn“,k);SLIST *creatlist(char *a) SLIST *h,*p,*q; int i;h=p=(SLIST *)malloc(sizeof(SLIST);for(i=0; idata=ai; p-next=q; p=q;p-next=0;return h
32、;void outlist(SLIST *h) SLIST *p;p=h-next;if (p=NULL) printf(“nThe list is NULL!n“);else printf(“nHead“);do printf(“-%c“,p-data); p=p-next; while(p!=NULL);printf(“-Endn“);给定程序MODI1.C中函数fun的功能是:删除p所字符串中的所 白字符(包制 符、 符 换 符)。入字符串时用#结 入。请改正程序中的错误,使它能 出正确的结果。注意:不fl改 main函数,不得 删 , 不得 改程序的结#include #include
33、 #include fun ( char *p) int i,t; char c80;/*found*/For (i = 0,t = 0; pi ; i+)if(!isspace(*(p+i) ct+=pi;/*found*/ct=“0“;strcpy(p,c);main( ) char c,s80;int i=0;printf(“Input a string:“);c=getchar();while(c!=#) si=c;i+;c=getchar(); si=0;fun(s);puts(s);请编写一个函数fun,它的功能是:将ss所字符串中所 下 为数位置上的字母转换为写( 该位置上不是字
34、母,则不转换)。例如, 入“abc4EFg“,则应 出“aBc4EFg“。注意: 部分源程序存在文件PROG1.C中。请改 函数main和它函数中的 内容,在函数fun的号中填入编写的 ”。#include #include void fun ( char *ss )main( ) char tt81 ;void NONO ( );printf( “nPlease enter an string within 80 characters:n“ ); gets( tt );printf( “nnAfter changing, the stringn “%s“, tt );fun( tt );pr
35、intf( “nbecomesn “%s“n“, tt );NONO ( );填 :1) while(p!=0)2) if (p-data=ch) return n;3) k=fun(head,ch);修改 :1) for (i = 0,t = 0; pi ; i+)2) ct=0;程序 :void fun ( char *ss )int i ;for(i = 0 ; ssi ; i+) if(i%2=1 struct list *next; SLIST;SLIST *creatlist(int *a);void outlist(SLIST *);void fun( SLIST *h, int
36、 *n) SLIST *p;/*found*/_1_=0;p=h-next;while(p) (*n)+;/*found*/p=p-_2_;main() SLIST *head;int aN=12,87,45,32,91,16,20,48, num;head=creatlist(a); outlist(head);/*found*/fun(_3_, printf(“nnumber=%dn“,num);SLIST *creatlist(int a) SLIST *h,*p,*q; int i;h=p=(SLIST *)malloc(sizeof(SLIST);for(i=0; idata=ai;
37、 p-next=q; p=q;p-next=0;return h;void outlist(SLIST *h) SLIST *p;p=h-next;if (p=NULL) printf(“The list is NULL!n“);else printf(“nHead “);do printf(“-%d“,p-data); p=p-next; while(p!=NULL);printf(“-Endn“);给定程序MODI1.C中函数fun的功能是:出s所字符串中最后一次出 的t所子字符串的地址,通 函数 ,在函数中 出从此地址的字符串; 未找到,则函数为NULL。例如,当字符串中的内容为:“ab
38、cdabfabcdx“,t中的内容为:“ab“时, 出结果应是:abcdx。当字符串中的内容为:“abcdabfabcdx“,t中的内容为:“abd“时,则程序 出未找到信息:not be found!。请改正程序中的错误,使它能得出正确的结果。注意:不fl改 main函数,不得 删 , 不得 改程序的结#include #include char * fun (char *s, char *t )char *p , *r, *a;/*found*/a = Null;while ( *s ) p = s; r = t;while ( *r )/*found*/if ( r = p ) r+;
39、p+; else break;if ( *r = 0 ) a = s;s+;return a ;main()char s100, t100, *p;printf(“nPlease enter string S :“); scanf(“%s“, s );printf(“nPlease enter substring t :“); scanf(“%s“, t );p = fun( s, t );if ( p ) printf(“nThe result is : %sn“, p);else printf(“nNot found !n“ );函数fun的功能是: 将s所字符串中除了下 为 数、时ASC
40、II 为 数的字符外,余的全都删除;串中剩余字符所形成的一个串放在t所的数组中。例如, s所字符串中的内容为:“ABCDEFG123456“,中字符A的ASCII码为数,因此应当删除;中字符B的ASCII码为 数, 在数组中的下 为数,因此 应当删除;而字符2的ASCII码为 数,所在数组中的下 为 数,因此不应当删除,它依此类推。最后t所的数组中的内容应是:“246“。注意: 部分源程序存在文件PROG1.C中。请改 函数main和它函数中的 内容,在函数fun的号中填入编写的 ”。#include #include void fun(char *s, char t)main()char s
41、100, t100;void NONO ( );printf(“nPlease enter string S:“); scanf(“%s“, s);fun(s, t);printf(“nThe result is: %sn“, t);NONO();填 :1) *n=0;2) p=p-next;3) fun(head, 修改 :1) a = NULL;2) if ( *r = *p )程序 :void fun(char *s, char t)int i, j = 0 ;for(i = 0 ; si ; i+)if(i%2=0 tj = 0 ;第10套给定程序中,函数fun的功能是: 出 结 的
42、中 结 数据 中 和作为函数。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在 生文件 下的BLANK1.C中。不得 删 , 不得 改程序的结#include #include #define N 8typedef struct list int data;struct list *next; SLIST;SLIST *creatlist(int *);void outlist(SLIST *);int fun( SLIST *h) SLIST *p; int s=0;p=h-next;while(p)/*found*/s+= p-_1_;/*found
43、*/p=p-_2_;return s;main() SLIST *head;int aN=12,87,45,32,91,16,20,48;head=creatlist(a); outlist(head);/*found*/printf(“nsum=%dn“, fun(_3_);SLIST *creatlist(int a) SLIST *h,*p,*q; int i;h=p=(SLIST *)malloc(sizeof(SLIST);for(i=0; idata=ai; p-next=q; p=q;p-next=0;return h;void outlist(SLIST *h) SLIST *
44、p;p=h-next;if (p=NULL) printf(“The list is NULL!n“);else printf(“nHead “);do printf(“-%d“, p-data); p=p-next; while(p!=NULL);printf(“-Endn“);给定程序MODI1.C中函数fun的功能是:将s所字符串中出 的与t1所字符串的子串全部替换成t2所字符串,所形成的串放在w所的数组中。在此处,flt1和t2所字符串的 。例如,当s所字符串中的内容为:“abcdabfab“,t1所子串中的内容为:“ab“,t2所子串中的内容为:“99“时, 结果在w所的数组中的内容应:“99cd99f99“。请改正程序中的错误,使它能得出正确的结果。注意:不fl