《计算机二级c语言上机题库.pdf》由会员分享,可在线阅读,更多相关《计算机二级c语言上机题库.pdf(304页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2011全国计算机二级C语言上机参考题库注意:填空题填好答案要去掉下划线。改错题*found*下面的一行为错误地方,直接按答案更正即可。程序题答案只填在花括号中。(记得保存)第0 1套:、填空题:程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数f u n的功能是重写形参f i l e n a m e所指文件中最后 个学生的数据,即用新的学生数据覆盖该学生原来的数据,其它学生的数据不变。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下B L A N K l.C+不得增行或删行,也不得
2、更改程序的结构!给定源程序:#i n c l u d e d e f i n e N 5t yp e d e f s t r u c t s t u d e n t l o n g s n o;c h a r n a m e 1 0 ;f l o a t s c o r e 3 ;S T U;vo i d f u n(c h a r *f i 1 e n a m e,S T U n)F I LE *f p;/*f o u n d*/f p =f o p e n(_1_,r b+”);/*f o u n d*/f s e e k(_ 2 _,-(l o n g)s i ze o f (S T U
3、),S E E K_ E ND);/*f o u n d*/f wr i t e (&n,s i ze o f (S T U),1,_3_);f c l o s e (f p);)m a i n()S T U t N =1 0 0 0 1,Ma Ch a o ,9 1,9 2,7 7,1 0 0 0 2,Ca o Ka i”,7 5,6 0,8 8,1 0 0 0 3,Li S i ,8 5,7 0,7 8,1 0 0 0 4,“F a n g F a n g”,9 0,8 2,8 7,1 0 0 0 5,Z h a n g S a n ,9 5,8 0,8 8;S T U n=1 0 0 0
4、 6/Z h a o S i 5 5,7 0,6 8),s s N;i n t i,j;F I LE *f p;f p =f o p e n (s t u d e n t,d a t7 7,wb );f wr i t e(t,s i ze o f (S T U),N,f p);f c l o s e (f p);f p =f o p e n(s t u d e n t.d a t,“r b);f r e a d(s s,s i ze o f(S T U),N,f p);f c l o s e (f p);p r i n t f(n T h e o r i g i n a l d a t a :
5、n n );f o r (j=0;j N;j+)p r i n t f (,z n No:%l d Na m e:%-8 s S c o r e s:,s s j .s n o,s s j .n a m e);f o r (i=0;i 3;i+)p r i n t f C%6.2 f ”,s s j .s c o r e i );p r i n t f C n 3 ;)f u n(s t u d e n t,d a t”,n);p r i n t f (n T h e d a t a a f t e r m o d i f i n g :n n );f p =f o p e n Cs t u
6、d e n t.d a t ,r b );f r e a d(s s,s i ze o f(S T U),N,f p);f c l o s e (f p);f o r (j=0;j N;j+)p r i n t f (/z n No:%l d Na m e:%-8 s S c o r e s:,s s j .s n o,s s j .n a m e);f o r (i=0;i 3;i+)p r i n t f C%6.2 f s s j .s c o r e i l);p r i n t f (n );)解题答案:/*第-空*/f p =f o p e n(f i l e n a m e,r
7、b+”);/*第二空*/f s e e k(f p,-(l o n g)s i ze o f(S T U),S E E K_ E ND);/*第三空*/f wr i t e(&n,s i ze o f (S T U),1,f p);二改错题:给定程序M O D I L C 中的函数Cr e a t l i n k 的功能是创建带头结点的单向链表,并为各结点数据域赋0到 m-1 的值。请改正函数Cr e a t l i n k 中指定部位的错误,使它能得出正确的结果。注意:不要改动m a i n 函数,不得增行或删行,也不得更改程序的结构!给定源程序:#i n c l u d e i n c l
8、 u d e t yp e d e f s t r u c t a ai n t d a t a;s t r u c t a a *n e xt;NO D E;NO D E *Cr e a t l i n k(i n t n,i n t m)NO D E *h=NU LL,*p,*s;i n t i;/*f o u n d*/p=(NO D E)m a l l o c(s i ze o f(NO D E);h=p;p-n e xt=NU LL;f o r(i=l;i d a t a=r a n d();s-n e xt=p-n e xt;p-n e xt=s;p=p-n e xt;)/*f o
9、 u n d*/r e t u r n p;)o u t l i n k(NO D E *h)NO D E *p;p=h-n e xt;p r i n t f C n n T H E LI S T :n n H E AD );wh i l e(p)p r i n t f (z/-%d ”,p-d a t a);p=p-n e xt;)p r i n t f(n );)m a i n()NO D E *h e a d;h e a d=Cr e a t l i n k(8,2 2);o u t l i n k (h e a d);)解题答案:/*f o u n d*/p=(NO D E *)m a
10、 1 1 o c(s i ze o f(NO D E);/*f o u n d*/r e t u r n h;三、程序题:请编写函数f u n,函数的功能是:统计一行字符串中单词的个数,作为函数值返回。一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间由若干个空格隔开,一行的开始没有空格。注意:部分源程序在文件P R O G L C中。请勿改动主函数m a i n和其它函数中的任何内容,仅在函数f u n的花括号中填入你编写的若干语句。给定源程序:#i n c l u d e 4i n c l u d e d e f i n e N 80i n t f u n (c h a r *
11、s)()m a i n()c h a r l i n e N ;i n t n u m=0;v o i d N O N O ();p r i n t f (z zEn t e r a st r i n g :n);g e t s(l i n e);num二 fun(1 ine);printf(z,The number of word is:%dnn,num);N O N O O;)void N O N O ()/*请在此函数内打开文件,输入测试数据,调 用 fu n 函数,输出数据,关闭文件。*/FILE*rf,*wf;int i,num;char lineN,*p;rf=fopen(in.d
12、at,r);wf=fopen(z,out.dat,w);for(i=0;i 10;i+)fgets(line,N,r f);p 二 strchr(line,n);if(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中,用T 作为字符串输入结束的标志。然后将文件的
13、内容读出显示在屏幕上。文件的读写分别由自定义函数ReadText和 WriteText实现。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下BLANK 1.C中。不得增行或删行,也不得更改程序的结构!给定源程序:#include iinclude ttinclude v o i d W r i t e T e x t(F I L E*);v o i d R e a d T e x t(F I L E*);m a i n O F I L E*f p;i f (f p=f o p e n C*m y f i l e 4.t x t,v)二 二 N
14、 U L L)p r i n t f (z/o p e n f a i l!n,z);e x i t (0);W r i t e T e x t(f p);f c l o se(f p);i f (f p=f o p e n(,m y f i l e 4.t x t,r)=N U L L)p r i n t f C o p e n f a i l!n*);e x i t (0);R e a d T e x t(f p);f c l o se(f p);)/*f o u n d*/v o i d W r i t e T e x t(F I L E _ _ _)c h a r st r 81;p
15、r i n t f(,z n En t e r st r i n g w i t h -1 t o e n d :n);g e t s(st r);w h i l e(st r c m p(st r,*-1)!=0)/*f o u n d*/f p u t s(2,f w);f p u t s(n ,f w);g e t s(st r);)v o i d R e a d T e x t(F I L E*f r)c h a r st r 81;p r i n t f(z/n R e a d f i l e a n d o u t p u t t o sc r e e n :n);f g e t
16、s(st r,81,f r);w h i l e(!f e o f(f r)/*f o u n d*/p r i n t f (%s,_ _ _ 3_);f g e t s(st r,81,f r);)解题答案:/*第一空*/v o i d W r i t e T e x t(F I L E*f w)/*第二空*/f p u t s(st r,f w);f p u t s(n,f w);/*第1 空*/p r i n t f st r);二、改错题:给定程序M O D I L C 中函数f u n 的功能是:从低位开始取出长整型变量s 中奇数位上的数,依次构成一个新数放在t 中。高位仍在高位,
17、低位仍在低位。例如,当s中的数为:7654321时,t中的数为:7531o请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:#i n c l u d e /*f o u n d*/v o i d f u n (l o n g s,l o n g t)(l o n g sl=10;*t =s%10;w h i l e (s 0)s=s/100;*t 二 s%10*si +/*f o u n d*/si =sl*100;)m a i n()l o n g s,t;p r i n t f(,z n P l e a se e n t
18、 e r s:);sc a n f(“耦d”,&s);f u n (s,&t);p r i n t f(,zT h e r e su l t i s:%l d n”,t);)解题答案:/*f o u n d*/v o i d f u n (l o n g s,1 o n g *t)/*f o u n d*/sl=sl*10;三、程序题:函数fun的功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的个位和百位上,b数的十位 和个位数依次放在c数的千位和十位上。例如,当a=45,b=12时,调用该函数后,c=1524.注意:部分源程序存在文
19、件PROG1.C中。数据文件IN.DAT中的数据不得修改。请勿改动主函数main和其它函数中的任何内容,仅在函数ftin的花括号中填入你编写的若干语句。给定源程序:t t i n c l u d e v o i d f u n(i n t a,i n t b,l o n g *c)()m a i n O i n t a,b;l o n g c;v o i d N O N O ();p r i n t f(I n p u t a,b:);sc a n f (%d,%d,&a,&b);fun(a,b,&c);prin tf(z,The result is:%ldn,c);N O N O O;)vo
20、id N O N O ()/*本函数用于打开文件,输入数据-,调用函数,输出数据,关闭文件。*/FILE*rf,*wf;int i,a,b;long c;rf=fopcn(in.dat,r);wf=fopen(out.dat,w);for(i=0;i 10;i+)fscanf(rf,&a,&b);fun(a,b,&c);fprintf(wf,z/a=%d,b=%d,c=%ldnz,,a,b,c);fclose(rf);fclose(wf);)解题答案:(*c=(b/10)*1000+(a%10)*100+(b%10)*10+(a/10);)#第03套:一、填空题:给定程序中,函数fun的功能是
21、:将自然数110以及它们的平方根写到名为myfile3.txt的文本文件中,然后再顺序读出显示在屏幕上。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!给定源程序:include#include int fun(char*fname)FILE*fp;int i,n;float x;if(fp=fopen(fname,w)=NULL)return 0;for(i=l;i=10;i+)/*found*/fprintf(_1_,i,sqrt(double)i);printf(AnSucce
22、ed!n);/*found*/2;printfCAnThe data in file :n);/*found*/i f(f p=f o p e n(_ _ _ 3_ _ _,r)二:N U L L)r e t u r n 0;f sc a n f (f p,*%d%f&n,&x);w h i l e (!f e o f (f p)p r i n t f (,%d%f nz,,n,x);f sc a n f (f p,&n,&x);f c l o se(f p);r e t u r n 1;)m a i n O c h a r f n a m e =/zm y f i l e 3.t x t;f
23、 u n(f n a m e);)解题答案:/*第一*空*/f p r i n t f (f p,z,%d%f n”,i,sq r t (d o u b l e)i);p r i n t f (z/n S u c c e e d!n);/*第 二 空*/f c l o se(f p);/*第三空*/i f (f p=f o p e n(f n a m e,z,r,z)=N U L L)改错题:给定程序MOD11.C+fun函数的功能是:将 n 个无序整数从小到大排序。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:t t
24、i n c l u d e t t i n c l u d e f u n (i n t n,i n t *a)i n t i,j,p,t;f o r (j =0;j n-l ;j+)p =J;/*f o u n d*/f o r (i=j+l;i a i )/*f o u n d*/t=i;i f (p!=j)t =a j ;a j =a p ;a p =t;)p u t a r r(i n t n,i n t *z)i n t i;f o r (i =1;i 二 n;i+,z+)p r i n t f (%4d,*z);i f (!(i%10)p r i n t f(n);p r i n
25、t f(n);)m a i n()i n t a a 20 =9,3,0,4,1,2,5,6,8,10,7,n=l l;p r i n t f Cz n n Be f o r e s o r t i n g%d n u m b e r s:n*,n);p u t a r r(n,a a);f u n (n,a a);p r i n t f (An Af t e r s o r t i n g%d n u m b e r s:X n77,n);p u t a r r(n,a a);)解题答案:#i n c l u d e#i n c l u d e f u n (i n t n,i n t *a
26、)i n t i,j,p,t;f o r (j =0;j n-l ;j+)p =j;/*f o u n d*/f o r(i=j+l;i n;i+)/*f o u n d*/P=i;三、程序题:函数f u n的功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的个位和百位上,b数的十位 和个位数依次放在c数的十位和千位上。例如,当a=45,b=如时,调用该函数后,c=2514o注意:部分源程序存在文件P R O G 1.C中。数据文件I N.D AT中的数据不得修改。请勿改动主函数m a i n和其它函数中的任何内容,仅在函数f t m的
27、花括号中填入你编写的若干语句。给定源程序:t t i n c l u d e vo i d f u n(i n t a,i n t b,l o n g *c)()m a i n()i n t a,b;l o n g c;vo i d N O N O ();p r i n t f(I n p u t a,b:);s c a n f (%d,%d,&a,&b);f u n (a,b,&c);p r i n t f(T h e r e s u l t i s:c);N O N O O ;vo i d N O N O ()/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/F I L
28、E *r f,*wf ;i n t i,a,b ;l o n g c ;r f =f o p e n(i n.d a t,r );wf =f o p e n(,zo u t.d a t,w);f o r(i =0;i 10;i+)f s c a n f (r f,d,%d,&a,&b);f u n (a,b,&c);f p r i n t f (wf,a=%d,b=%d,c=%l d n”,a,b,c);)f c l o s e (r f);f c l o s e (wf);)解题答案:(*c=(b%10)*1000+(a%10)*100+(b/10)*10+a/10;第 04套:一、填空题:
29、程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数f u n的功能是从形参f i l e n a m e所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到f i l e n a m e所指的文件中,覆盖原来的文件内容。请在程序的卜 划线处填入正确的内容并把卜.划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下B L A N K 1.C中。不得增行或删行,也不得更改程序的结构!给定源程序:i n c l u d e d e f i n e N 5t y p e d e f s t r
30、u c t s t u d e n t l o n g s n o;c h a r n a m e 10;f l o a t s c o r e 3;S T U;vo i d f u n(c h a r *f i l e n a m e)F I L E *f p;i n t i,j;S T U s N ,t;/*f o u n d*/f p =f o p e n(f i l e n a m e,一1_);f r e a d(s,s i ze o f(S T U),N,f p);f c l o s e (f p);f o r (i=0;i N-l;i+)f o r (j=i+l;j N;j+)/
31、*f o u n d*/i f (s i .s n o _2_ s j .s n o)t =s i ;s i =s j ;s j =t;f p =f o p e n(f i l e n a m e,“wb);/*f o u n d*/_3_(s,s i ze o f(S T U),N,f p);/*二进制输出*/f c l o s e(f p);)m a i n OS T U t N =10005,Z h a n g S a n,9 5,80,88,10003,L i S i,85,70,78,10002,C a o K a i,75,(10004,F a n g F a n g,9 0,82
32、,87,10001,M a C h a o,9 1,9 2,77,s s N ;i n t i,j;F I L E *f p;f p =f o p e n (s t u d e n t.d a t ,“wb);f wr i t e(t,s i ze o f(S T U),5,f p);f c l o s e (f p);p r i n t f (n n T h e o r i g i n a l d a t a :n n);f o r (j=0;j N;j+)p r i n t f (/z n N o:%l d N a m e:%-8s S c o r e s:t j .s n o,t j .
33、n a m e);f o r (i=0;i 3;i+)p r i n t f C%6.2f ”,t j .s c o r e i );p r i n t f f n 9 ;)f u n (s t u d e n t,d a t);p r i n t f (n n T h e d a t a a f t e r s o r t i n g :n n );f p =f o p e n (s t u d e n t,d a t ,r b);f r e a d(s s,s i ze o f (S T U),5,f p);f c l o s e (f p);f o r (j=0;j N;j+)p r i
34、 n t f (z/n N o:%l d N a m e:%-8s S c o r e s:,s s j .s n o,s s j .n a m e);f o r (i=0;i s j .s n o)/*第三空*/f wr i t e(s,s i ze o f (S T U),N,f p);/*二进制输出*/改错题:给定程序M O D U.C H 函数f u n 的功能是:在字符串的最前端加入n个*号,形成二、新串,并且覆盖原串。注意:字符串的长度最长允许为79。88),请改正函数f u n中指定部位的错误,使它能得出正确的结果。注意:不要改动m a i n函数,不得增行或删行,也不得更改程序
35、的结构!给定源程序:4i n c l u d e i n c l u d e v o i d f u n (c h a r s,i n t n)(c h a r a 80 ,*p;i n t i;/*f o u n d*/s 二p;f o r(i=0;i n;i+)a i=d o a i=*p;i+;)/*f o u n d*/w h i l e(*p+)a 二 0;st r c p y (s,a);)m a i n O i n t n;c h a r s80;p r i n t f (z,n En t er a st r i n g :);g et s(s);p r i n t f (z,n
36、 T h e st r i n g%s n ,s);p r i n t f (/zn En t er n (n u m b er o f *);sc a n f (%d ,&n);f u n(s,n);p r i n t f (z/n T h e st r i n g a f t er i n ser t :n ,s);)解题答案:/*f o u n d*/P=s;/*f o u n d*/w h i l e(*p+);*三、程序题:请编写函数f u n,函数的功能是:统计各年龄段的人数。N个年龄通过调用随机函数获得,并放在主函数的a g e数组中;要求函数把0至9岁年龄段的人数放在d中,把1
37、 0至1 9岁年龄段的人数放在d l 中,把2 0至2 9岁年龄段的人数放在d中,其余依此类推,把1 0 0岁(含1 0 0)以上年龄的人数都放在仇1 0 中。结果在主函数中输出。注意:部分源程序在文件PRO G 1.C中。请勿改动主函数m a i n和其它函数中的任何内容,仅在函数f t m的花括号中填入你编写的若干语句。给定源程序:i n c l u d e d ef i n e N 5 0#d ef i n e M 1 1v o i d f u n(i n t *a,i n t *b)()d o u b l e r n d()st a t i c t=2 9,c=2 1 7,m=1 0
38、2 4,r=0;r=(r*t+c)%m;r et u r n(d o u b l e)r/m);)m a i n()i n t a g eN,i,d M;v o i d NO NO (i n t d M);f o r (i=0;i N;i+)a g ei =(i n t)(1 1 5*r n d();p r i n t f(Z/T h e o r i g i n a l d a t a :n);f o r(i=0;i N;i+)p r i n t f (i+l)%1 0=0?%4d n :%4d,a g ei);p r i n t f(n n);f u n (a g e,d);f o r(i
39、=0;i 1 0;i+)p r i n t f C%4d-%4d :%4d n,z,i*1 0,i*1 0+9,d i);p r i n t f (O v er 1 0 0 :%4d nz/,d 1 0);NO NO(d);)v o i d NO NO(i n t d M)/*请在此函数内打开文件,输入测试数据,调 用f u n函数,输出数据,关闭文件。*/FILE*w f ;i n t i ;w f =f o p en Co u t.d a t ,w );f o r d =0 ;i 1 0 ;i+)f p r i n t f(w f,%4d-一%4d :%4d n”,i*1 0,i*1 0+
40、9,d i);f p r i n t f (w f,O v er 1 0 0 :%4d n,d 1 0);f c l o se(w f);)参考答案:v o i d f u n(i n t *a,i n t *b)|i n t i,j ;f o r(i =0 ;i M ;i+)b i =0 ;f o r(i =0 ;i 1 0)b|M-l+;el seb j l+;)d o u b l e r n d()st a t i c l=2 9,c=2 1 7,m=1 0 2 4,r=0;i(r*t+c)%m;r el u m(d o u b l e)r/m);#阴#第 05套:一、填空题:给定程序中
41、己建立一个带有头结点的单向链表,链表中的各结点按结点数据域中的数据递增有序链接。函数fun的功能是:把形参x的值放入一个新结点并插入到链表中,插入后各结点数据域的值仍保持递增有序。请在程序的卜划线处填入正确的内容并把卜.划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹的BLANKLC中.不得增行或删行,也不得更改程序的结构!给定源程序:#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
42、*)malloc(sizeof(SLIST);/*t()und*/s-data=_1q=h;p=h-next;vvhile(p!=NULL&xp-data)/*Cu nd*/q=2.p=p-next;)s-next=p;/*found*/q-next=_3_;)SLIST*creatlist(int*a)(SLIST*h,*p,*q;int i;|1=p=(SLIST*)malloc(sizeof(SLIST);for(i=0;idata=ai;p-nexl=q;p=q;)p-next=O;return h;)void outlist(SLIST*h)SLIST*p;p=h-next;if(p
43、=NULL)printf(”nThe list is NULLM);elseprintf(nH eadn);do(printf(n-%d,p-data);p=p-next;)while(p!=NULL);printf(-Endn);)main()SLIST*head;intx;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,&x);fun(head,x);printf(nTh
44、e list after insertingAn1);outlist(head);解题答案:/*第一空*/s-daa=x;/*第二空*/q二 P;/*第三空*/q-next=s;二、改错题:给定程序M0DI1.C中函数fun的功能是:计算正整数num 的各位上的数字之积。例如,若输入:2 5 2,则输出应该是:20。若输入:2 0 2,则输出应该是:0请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:#include long fun(long num)(/*found*/long k;dok*=num%10;,*(num=
45、10;while(num);return(k);)main()longn;printf(nPlease enter a number:);scanf(n%ldn,&n);printf(n%ldnfun(n);)解题答案:/*found*/long k=l;/*f ounci*/num/=10;*东*三、程序题:请编写一个函数f u n,它的功能是:计算n门课程的平均分,计算结果作为函数值返回。例如:若有5门课程的成绩是:90,5,72,80,61.5,55则函数的值为:71.80。注意:部分源程序存在文件PROGI.C中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填
46、入你编写的若干语句。给定源程序:#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.2fnn,aver);NONO();void NONO()/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/FILE*fp,*wf;int i,j;float aver,score5;fp=fopen(in.dat7r);wf=fopcn(out.dat,w);for(i=
47、0;i 10;i+)for(j=0;j 5;j+)fscanf(fp/%f,&scorej);aver=fun(score,5);fprintf(wf,M%5.2fn,aver);fclosc(fp);fclose(wf);解题答案:int i;float ave=0.0;for(i=0;in;i+)ave=ave+ai;ave=ave/n;return ave;)#第 06套:一、给定程序中已建立一个带有头结点的单向链表,在 m ain函数中将多次调用fu n 函数,每调用一次fu n 函数,输出链表尾部结点中的数据,并释放该结点,使链表缩短。请在程序的卜划线处填入正确的内容并把卜.划线删除
48、,使程序得出正确的结果。注意:源程序存放在考生文件夹下BLANK 1.C中。不得增行或删行,也不得更改程序的结构!给定源程序:#include#include#defineN8typedef struct listint 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)printf(M%d,2_);s-next=NULL;/*found*:free(_ 3一);)SLIST*creatlist(int*a)SLIST*h,*p,
49、*q;int i;h=p=(SLIST*)malloc(sizeof(SLIST);for(i=0;idata=ai;p-next=q;p=q;)p-next=O;retuni h;)void outlist(SLIST*h)SLIST*p;p=h-next;if(p=NULL)printf(nThe list is NULL!n);elseprintf(nH ead,);do printf(-%dn,p-data);p=p-next;J while(p!=NULL);printf(-Endn,);)main()SLIST*head;int aN=11,12,15,18,19,22,25,29
50、);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);)解题答案:/*第 空*/t=t-next;/*第二空*/p rin tf(*%d ,t-data);/*第 三空*/fre e(t);*二、改错题:给定程序M0DI1.C中函数fun的功能是:将字符串中的字符按逆序输出,但不改变字符串中