《二级C语言上机题库2.pdf》由会员分享,可在线阅读,更多相关《二级C语言上机题库2.pdf(128页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、科益题库*说明:本题库是根据教育部考试中心制定修改计划进行修改后的计算机等级考试二级C语言机试题库。对于题库的解答来自考试中心的答题系统。第0 1套:给定程序中,函数f u n的功能是:将形参n所指变量中,个位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成一个新的数,并通过形参指针n传回所指变量。例如,输入一个数:2 7 6 3 8 4 9 6,新的数:为7 3 9。请在程序的下划线处填入正确的内容并把下划线删除,便程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANKLC中。不得增行或删行,也不得更改程序的结构!给定源程序:#include void fun(unsigned
2、 long*n)unsigned long x=0,i;int t;i=I;while(*n)/*found*/t=*n%_ 1 _;/*found*/if(t%2!=_2 _)x=x+t*i;i=i*10;*n=*n 710;)/*found*/*n=_ 3 _;)请编写一个函数f u n,它的功能是:将一个数字字符串转换为一个整数(不 得 调 用C语言提供的将字符串转换为整数的函数)。例如,若输入字符串-12 3 4,则 函数把它转换为整数值-12 3 4。函数f u n中给出的语句仅供参考。注意:部分源程序存在文件P R O G 1.C文件中。请勿改动主函数m a i n和其它函数中的任
3、何内容,仅在函数fu n的花括号中填入你编写的若干语句。给定源程序:#i n cl u de#i n cl u de l o n g fu n (ch ar *p)/*以下代码仅供参考*/i n t i,l en,t;/*l en为串长,t为正负标识/l o n g x=0;l en=s t r l en(p);i f(p O =-*)t=-l;l en-;p+;el s e t=1;/*以下完成数字字符串转换为一个数字*/r et u r n x*t;)m ai n()/*主函数*/ch ar s 6 ;l o n g n;p r i n t f(E n t er a s t r i n g
4、:n);get s(s);n =fi i n(s);p r i n t f(%Id n,n);main()unsigned long n=-l;while(n9 9 9 9 9 9 9 9 lln0)printfCTIease input(0n100000000):);scanf(”kr,&n);fun(&n);printf(MnThe result is:%ldn*,n);NONO();)NONO()/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/F IL E *w f;i n t i ;)解题思路:第一处:t是通过取模的方式来得到*n的个位数字,所以应填:ch ar s
5、 2 0:l o n g n :fp =fo p en(c:t es t i n.dat,r);10。第二处:判断是否是奇数,所以应填:0o第三处:最后通形参n来返回新数X,所以应填:X。*w f=fo p en C ci W t es t W o u t.dat/w);fo r(i =0;i 10;i+)fs can f(i p.%s,s);n =fu n(s);fp r i n t f(w f,%l d n n);给定程序MODI LC中 函 数f u n的功能 是:计算n!0例 如,给n输入5,则输出12 0.000000。请改正程序中的错误,使程序能输出正确的结果。注意:不要改动m a
6、 i n函数,不得增行或删行,也不得更改程序的结构!给定源程序:#include f c l o s e(f p);f c l o s e(w f);解题思路:本题是将一个数字字符串转换为一个整数。double fun(int n)double result=1.0;/*found*率*/if n=0return 1.0;while(n 1&n 170)/*4:*found*/result*=n-return result;)main()int n;printfCInput N:);scanf(H%dn,&n);第0 2套:给定程序中,函 数f u n的功能是将形参给定的字符串、整数、浮点数写
7、到文本文件中,再用字符方式从此文本文件中逐个读入并显示在终端屏幕上。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK LC中。不得增行或删行,也不得更改程序的结构!给定源程序:/i n c l u d e printf(,nn%d!=%lfnn*,n,fun(n);iv o i d f u n(c h a r *s,i n t a,d o u b l e f)i/解题思路:i/*f o u n(j */第一处:条件语句招写格式错误,应改为:i f(n=O)。第二处:语句后缺少分号。_l_fp;c h a r c h:f p =f
8、o p e n(f i l e l.t xt,w1);c h =f g e t c(f p);f p r i n t f(f p,%s%d%f n ,s,a,f);f c l o s e(f p);f p =f o p e n(,f i l e l.t xt ,r );p r i n t f CA n T h e r e s u l t :n i i );v o i d f u n(c h a r s N ,c h a r *b)(i n t i,j.n=O;f o r(i=0;i N;i+)Z*请填写相应语句完成其功能*/p r i n t f(n n T h e s t r i n g o
9、 f c h a n g i n g i s :%s n ,i t e m );/*f o u n d*/w h i l e (!f e o f(_ 2 _)/*f o u n d*/p u t c h a r(_ 3 );c h =f g e t c(i p);p u t c h a r CX n*);f c l o s e(f p):)b n =V);m a i n()c h a r a 1 00tw M N =W,W,;W,W),CS V S,S/S M H;H;H V H);i n t i,j;p r i n t f(T h e m a t r i x:n );m a i n()c h
10、 a r a 1 0=H e l l o!;i n t b=1 2 3 4 5;d o u b l e c=9 8.7 6;f o r(i=0;i M;i+)f o r(j=0;j N;j+)p r i n t f(%3 c ,w i j );p r i n t f(n );f u n(a,b,c);f u n(w,a);*解题思路:本题是考察先把给定的数据写入到文本文件中,再从该文件读出并显示在屏幕上。第一处:定义文本文件类型变量,所以应填:F I L E *o第二处:判断文件是否结束,所以应填:f pe第三处:显示读出的字符,所以应填:c h。*给定程序MOD I 1.C中函数f u n的
11、功能是:依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。请改正函数f t i n中指定部位的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:p r i n t f(T h e A s t r i n g:n ):p u t s(a);p r i n t f Cn i T);N O N O():)N O N O()/*请在此函数内打开文件,输入测试数据,调 用fun函数,输出数据,关闭文件。*/F I L E *r f,*wf;i n t i j,k :c h a r a(1 001,w(M N ,b;r f =f o p
12、e n(c:t e s t i n.d a t ,r);w f =f o p e n(c:t e s(o u t.d a t ,w );f o r(k =0 ;k 1 0:k-H-)f o r(i =0 ;i M;i+)f o r(j =0;jN:j+)f s c a n f(r f.%c ,&w i j );f s c a n f(r f,%c .&b);)#i n c l u d e v o i d f u n(c h a r *s)皿 i,j;f o r(i=0,j=0;s i !=0;i+)i f(s i =0,&s i =9)f u n(w,a);f p r i n t f(w f,
13、%s n ,a);)f c l o s e(r f);f c l o s e(w f);/*f o u n d*/s j =s i ;/*f o u n d*/s j =W;解题思路:本题是把二维数组中的字符数据按列存放到一个字符串中。1.计算存放到维数组中的位置。2,取出二维数组中的字符存放到一维数组(已计算出的位置)中。参考答案:m a i n()c h a r i t e m 8 0;p r i n t f(n E n t e r a s t r i n g :);g e t s(i t e m);#i n c l u d e#d e f i n e M 3#d e f i n e N
14、4p r i n t f(n n T h e s t r i n g i s :V%s n ,i t e m);f u n(i t e m);v o i d f u n(c h a r c h a r *b)(解题思路:i n t i,j,n=O;第一处:要求是取出原字符串中所有数字字符组成一个新的字符串,程序中是使用变量j来控制新字符串的位置,所以应改为:s|j+=s i L第二处:置新字符串的结束符,所以应改为:s j =O;*f o r(i=0;i v N:i+)/*请填写相应语句完成其功能*/f o r(j =0 ;j M;j+)b n =s O i ;n =i *M+j +1;请编写
15、函数f u n,函数的功能是:将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。例如,二维数组中的数据为:W W W WSSSSH H H H则字符串中的内容应是:WSHWSHWSHo注意:部分源程序在文件PR O G 1 .C中。请勿改动主函数m a i n和其它函数中的任何内容,仅在函数f un的花括号中填入你编写的若干语句。给定源程序:#i n c l ud e#d e f i n e M 3#d e f i n e N 4)bn l=0 ;m ai n()c h ara1 0 0 tw M N =,W,W;W,W 4 SVS,S,S h,H,H.H;,H,);i n t
16、 i,j;p ri n tf(Th e m atri x:n );f o r(i=0;i vM;i+)f o r(j=0;j N;j+)p ri n tf(,%3c ,wi j);p ri n tf(n );)f un(w,a);p ri n tf(Th e A stri n g:n );p uts(a);p ri n tf CVVn。;N O N O();N O N O O/*请在此函数内打开文件,输入测试数据,调 用f u n函数,输出数据,关闭文件。*/FILE*rf,*wf;i n ti j,k;c h ar a 1 0 0,wMNJ,b;rf =f o p e n(c:te sti
17、n.d at,r,r);wf =f o p e n(c:te sto ut.d at,w);f o r(k =0 ;k 1 0 :k+)f o r(i =0 ;i M ;i+)f o r(j =0 ;j N ;j+)f sc an f(rf,%c ,&wi j);f sc an f(rf,r%c ,&b);f un(w,a);f p ri n tf(wf,%sn ,a);)f c l o se(rf):f c l o se(wf);)第03套:程序通过定义学生结构体变量,存储了学生的学号、姓 名 和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数f un的功能是重写形参f i l e
18、 n am e所指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其它学生的数据不变。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的B L A N K 1.C中。不得增行或删行,也不得更改程序的结构!给定源程序:#i n c l ud e#d e f i n e N 5(y p e d c f struc t stud e n t l o n g sn o;c h ar n am e 1 0;f l o at sc o re 3;STU;vo i d f un(c h ar f i l e n am e,S T U n)F
19、ILE*f p;/*f o un d*/f p =f o p e n(_1 ,rb+);/*f o un d*/f se e k(_2-l L*si z e o f(STU),SEEK_END);/*f o un d */f wri te(&n,si z e o f(STU),1,_ 3_);f c l o se(f p);m ai n()S T U tN=1 0 0 0 1,MaCh ao ,91,92,77,1 0 0 0 2;Cao Kai,75,60,88),1 0 0 0 3,Li Si ,85,70,78,1 0 0 0 4,Fan g Fan g ,90,82.87),1 0 0
20、 0 5JZh an g San”,95,80,88);S T U n=1 0 0 0 6,Zh ao Si ,55,70.68),ssN;i n t i j;FILE*f p;f p =f o p e n C si ud e n t.d at,wb);f wri(e(t,si z e o f(STU),N,f p);f c l o se(f p);f p =f o p e n(stud e n t.d at,rb);f re ad(ss,si z e o f(STU),N,f p);f c l o se(f p);p ri n tf CAn Th e o ri g i n al d ata:
21、n n );f o r(j=0;j N;j+)p ri n tf(n No:%l d Nam e:%-8s Sc o re s:,ssj.sn o,ssf j j.n an i e);f o r(i=0;i 3;i+)p ri n tf(%6.2 f ,ssj.sc o re i);p ri n tf CAn );)f un(stud e n t.d at,n):p ri n tf(,rn Th e d ata af te r m o d i f i n g :n n );f p =f o p e n(stud e n(.d at,rb):f re ad(ss,si z e o f(STU),
22、N,i p);f c l o se(f p);f o r(j=0;j N;j+)p ri n tf(n No:%l d Nam e:%-8s Sc o re s:,ssj.sn o,ssj.n am e);f o r(i=0;i 3;i+)p ri n tf(%6.2 f ,ssj.sc o re i j);p ri n tf(n );解题思路:本题是考察如何从文件中读出数据,再把结构中的数据写入文件中。第一处:从指定的文件中读出数据,所以应填:f i l e n am e。第二处:读取文件f p的最后一条记录,所以应填:f p。第三处:再把读出的记录,写入文件f p指定的位置上,所以应填:f
23、 p。*给定程序M O D .C中的函数Cre ai l i n k的功能是创建带头结点的单向链表,并为各结点数据域赋0到m-1的值。请改正函数Cre atl i n k中指定部位的错误,使它能得出正确的结果。注意:不要改动m a i n函数,不得增行或删行,也不得更改程序的结构!给定源程序:#i n c l ud e#i n c l ud e ty p e d e f struc t aa i n t d ata;struc t aa*n e x t;N O D E;N O D E *Cre atl i n k(i n t n.i n t m)N O D E *h=NU LL,*p,*s;i
24、 n t i;/*f o un d*/p=(N O D E )m al l o c(si z e o f(NODE);h=p;p-n e x t=NU LL;f d r(i=l;i d ata=ran d()%m:s-n e x(=p-n e x t;p-n e x t=s;p=p-n e x t;/*f o un d*/re turn p;o utl i n k(NODE*h)N O D E *p;p=h-n e x t;p ri n tf(n n THE LIST:n n H E A D );wh i l e(p)p ri n tf(-%d ,p-d ata);p=p-n e x t;)p
25、 ri n tf CAn );)m ai n()N O D E *h e ad;h c ad=Cre atl i n k(8,2 2);o utl i n k(h e ad);)解题思路:第 一 处:指 向 刚 分 配 的 结 构 指 针,所 以 应 改 为:p=(N O D E*)m al l o c(si z e o f(NODE);第二处:在动态分配内存的下一行语句是,使用临时结构指针变量h保存p指针的初始位置,最后返回不能使用p,是因为p的位置已经发生了变化,所以应改为返回h.*请编写函数fu n,函数的功能是:统计一行字符串中单词的个数,作为函数值返回。一行字符串在主函数中输入,规定
26、所有单词由小写字母组成,单词之间由若干个空格隔开,行的开始没有空格。注意:部分源程序在文件PROG 1.C中。请勿改动主函数m a i n和其它函数中的任何内容,仅在函数fu n的花括号中填入你编写的若干语句。给定源程序:#i n clu de#i n clu de#defi n e N 8 0i n t fu n(ch a r *s)(m a i n()ch a r li n e N;i n t n u i n=0;p r i n t f(E n t er a s t r i n g:n );get s(li n e);n u m=fu n(li n e);p r i n t f(T h e
27、 n u m b e r o f w o r d i s :%d n n ,n u m);N O N O();N O N O()/*请在此函数内打开文件,输入测试数据,调 用f un函数,输出数据,关闭文件。*/F I L E *r f,*wf;i n t i,n u m ;ch a r li n e N,*p ;r f=fo p en C ci W t es t W i n.da t Vr );w f =fo p en(c:t es t o u t.da t ,w );fo r(i =0;i 1 0;i+)fget s(li n e,N,r f);p =s t r ch r(li n e,A
28、 n);i f(p !=N ULL)*p =0 ;n u m =fu n(li n e);fp r i n t f(w f,%d n,num);fclo s e(r f);fclo s e(w f);)解题思路:本题是统计字符串中的单词数。1.利 用w h i le循环语句和指针变量,当字符为空格时,则单词数k加1。2.循环结束返回k参考答案:#i n clu de#i n clu de#defi n e N 8 0i n t fu n(ch a r *s)(i n t k=1 ;v h i le(*s)i f(*s =)k+;s+;)r et u r n k:)m a i n()ch a r
29、 li n elNJ;i n t n u m=0;p r i n t f(E n t er a s t r i n g:n );get s(li n e);n u m=fu n(li n e);p r i n t f(T h e n u m b e r o f w o r d i s :%d n n .n u m);N ON OO;)N ON OO/*请在此函数内打开文件,输入测试数据,调 用f un函数,输出数据,关闭文件。*/F I L E *r f,*wf;i n t i,n u m ;ch a r li n e N.*p ;r f=fo p en (c:t es t i n .da t
30、 ,r );w f =fo p en(c:t es t o u t.da t ,w);fo r(i =0;i 1 0:i+)fget s(li n e,N,r f);p =s t r ch r(I i n e,n);i f(p !=N ULL)*p =0 ;n u m =fu n(li n e):fp r i n t f(w f,%d n ,num);fclo s e(r f);fclo s e(w f):)第0 4套:程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以.进制方式输出到文件中。函 数f un的功能是从形参fi len a m e 所指的文件中读入
31、学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到fi len a m e所指的文件中,覆盖原来的文件内容。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLAN K 1,C中。不得增行或删行,也不得更改程序的结构!给定源程序:#i n clu de#defi n e N 5t y p edef s t r u ct s t u den t lo n g s n o;ch a r n a m e(1 0;flo a t s co r e 3 ;S T U:v o i d f un(c h a r *f i l e
32、n a m e)F I L E *f p;i n t i,j;STU s N j;/*f o un(j */f p =f b p e n(f i l e n a m e,_1 _);f r e a d(s,s i z e 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+h j N;j+)/*:e:*f o un d*/i f (s i .s n o _ 2 _ s j .s n o)t =s i ;s i =s l j ;s j =t;f p =f o p e n(f i l e n a m e,w b);/*
33、f o un d*/_ 3 _(s,s i z e o f(S T U),N,f p);/*二进制输出*/f c l o s e(f p);)m a i n()STU t N =1 0005,2h a n g S a n”,9 5,8 0,8 8 ,1 0003,L i S i,8 5,7 0,7 8 ,l 0002,Ca o K a i.7 5.6 0,8 8 ,1 0004,Fa n g Fa n g,9 0,8 2.8 7 .1 0001,M a Ch a o,9 1,9 2,7 7 ,s s N ;i n t i,j;F I L E *f p;f p =f o p e n Cs t u
34、d e n t.d a t,w b);f w r i(e(t,s i z e 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(n N o:%l d N a m e:%-8 s S c o r e s:0,t j .s n o,t j .n a m e);f o r (i=0;i 3;i+)p r i m f(%6.2f,t j .s c o r e i );p r i n t f CAn1);)f un(s t
35、 ud 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 Cs t ud e n t.d a t,r b);f r e a d(s s,s i z e 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 n t f(n N o:%l d N a 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
36、(%6.2f,s s j .s c o r e i );p r i n l f(n,);解题思路:本题是考察把结构中的数据写入文件。第 处:建立文件的类型,考虑到是把结构中的数据(结构中的数据包含不打印的字符)从文件中读出,所以应填:“r b,第二处:判断当前学号是否大于刚读出的学号进行相比,如果大于,则进行交换,所以应填:第三处:把已排序的结构数据,乖新写入文件,所以应填:f w r i t e。*给定程序MOD I 1.C中函数f u n的功能是:在字符串的最前端加入n个*号,形成新串,并且覆盖原串。注意:字符串的长度最长允许为7 9。请改正函数f t i n中指定部位的错误,使它能得出正
37、确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!给定源程序:#i n c l ud e#i n c l ud e v o i d f un (c h a r s ,i n(n )Ic h a r a 8 0,*p;i n t i;/*f o un d */s=p;f o r(i=0;i n;i+)a i =*;d o a i =*p;i+;)/*f o un d*/w h i l e(*p+)a(i =0;s t r c p y(s,a);m a i n()i n t n;c h a r s 8 0;p r i n t f(n En(e r a s t r i n
38、g:);g e t s(s);p r i n t f(An T h e s t r i n g%s W,s);p r i n t f(n En t e r n (n u m b e r o f *):);s c a n f(%d.&n);f un(s,n);p r i n t f(,r n T h e s t r i n g a f t e r i n s e r t:%s n ,s);解题思路:第一处:指针p应指向s,所以应改为:p=s;。第二处:死循环,当d。w h i l e循环执行一次,临时变量p应该指 向 字 符 串 的 下 位 置,所以应 改 为:w h i l e(*p+);0*
39、请编写函数f un,函数的功能是:统计各年龄段的人数。N个年龄通过调用随机函数获得,并放在主函数的a g e数组中;要求函数把0至9岁年龄段的人数放在d 0中,把1 0至1 9岁年龄段的人数放在d l 中,把2 0至2 9岁年龄段的人数放在d 2中,其余依此类推,把1 0 0岁(含1 00)以上年龄的人数都放在d IO 中。结果在主函数中输出。注意:部分源程序在文件PROG I .C中。请勿改动主函数main和其它函数中的任何内容,仅在函数f un的花括号中填入你编写的若干语句。给定源程序:#i n c l u d e#d e f i n c N 50#d e f i n e M 11v o
40、i d f u n(i n t *a,i n t *b)d o u b l e m d()s t a t i c t=29.c=217,m=1024,r=0;r=(r*t+c)%m;r e t u r n(d o u b l e)r/m);)m a i n()i n t a g e N ,i,d M ;f o r(i=0;i N;i+)a g e i =(i n t)(l 15*m d();p r i n t f(Tl i e o r i g i n a l d a t a :n);f b r(i=O:i N;i+)p r i n t f(i+l)%10=0?%4d n:o%4d,a g e
41、i );p r i n t f(n n);f u n(a g e,d);f o r(i=0;i 10;i+)p r i n t f(%4d%4 d:%4d n,i*10,i*10+9,d i );p r i n t f(O v e r 100:%4 d n,d(10);N O N O(d);)N O N O(i n t d M )/*请在此函数内打开文件,输入测试数据,调 用fun函数,输出数据,关闭文件。*/F I L E *w f;i n t i;w f =f o p e n(c:t e s t o u t.d a t,w);f o r(i =0;i 10;i+)f p r i n t f
42、(w f,%4 d%4 d:%4d n;i*10,i*10+9,d i );f p r i n t f(w f,O v e r 100:%4d n;d 10);f c l o s e(w f);解题思路:本题是统计各年龄段的人数。1.初始化各年龄段人数为0。2.使 用f o r循环以及求出各年龄的十位数字作为存放人数的地址,如果大于值大于1 0,则存入d 10中(大 于1 1 0岁的人中参考答案:/i n c l u d e#d e f i n e N 50#d e f i n e M 11v o i d f u n(i n t *a,i n t *b)i n t i,j;f o r(i =0
43、 ;i M;i+)b i =0;f o r(i =0 ;i 10)b M -I +:e l s e bj+;d o u b l e m d()s t a t i c t=29,c=217,m=1024,r=0;r=(r*t+c)%m;r e t u m(d o u b l e)r/m);)m a i n()i n t a g e N ,i,d M ;f o r(i=0;i N;i+)a g e i =(i n t)(115*r n d();p r i n t f(Th e o r i g i n a l d a t a :n);f o r(i=0;i v N;i+)p r i n t f(i+
44、l)%I O=O?%4d i i:r%4d,a g e i );p r i n t f(n n);f u n(a g e,d);f o r(i=0;i 10;i+)p r i n t f(d%4 d:%4d n,i*10,i*10+9,d i );p r i n t f(O v e r 100:%4 d nw,d 10);N O N O(d);)N O N O(i n t d M )/*请在此函数内打开文件,输入测试数据,调 用fun函数,输出数据,关闭文件。*/F I L E *wf;i n t i :w f =f o p e n C c i W t e s t W o u t.d a t,
45、);f o r(i =0;i 10;i+)f p r i n t f(w f,-%4 d%4 d:%4d n.i*10,i*10+9,d i j);f p r i n t f(w f,O v e r 100:%4d n.d 10);f c l o s e(w f);第0 5套:给定程序中,函数f t m的功能是将参数给定的字符串、整数、浮点数写到文本文件中.再用字符串方式从此文本文件中逐个读入,并调用库函数a t o i和a t o f将字符串转换成相应的整数、浮点数,然后将其显示在屏幕上。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的B
46、LANK1.C中。不得增行或删行,也不得更改程序的结构!给定源程序:#i 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 a,d o u b l e f)I/*f o u n d*/_ 1 f p;c h a r s t r 100,s t r l 100,s t r 2 l 00:i n t a l;d o u b l e f l;f p =f o p e n(f i l e l.i x i,w);f p r i n t f(f p.%s%d%f n,s,a,f);/*f o u n d*/_ 2_;f p =f o p e
47、n C f i l e l.t x t,V);/*f o u n d*/f s c a n f(_ 3_,%s%s%s,s t r,s t r I,s t r 2);f c l o s e(f p);a l =a t o i(s t r l);f l =a t o f(s t r 2);p r i n t f C A n Th e r e s u l t :n n%s%d%f n,s t r,a l,f l):)m a i n()c h a r a 10J=H e l l o!;i n t b=12345:d o u b l e c=98.76;f u n(a,b,c);)解题思路:本题是考察
48、先把给定的数据写入到文本文件中,再从该文件读出并转换成相应的整数、浮点数显示在屏幕上。第一处:定义文本文件类型变量,所以应填:F I L E *o第二处:关闭刚写入的文件,所以应填:f c l o s e(f p)o第三处:从文件中读出数据,所以应填:f p o*给定程序MODH.C中函数f u n的功能是:对N名学生的学习成绩,按从高到低的顺序找出前m(mW1 0)名学生来,并将这些学生数据存放在个动态分配的连续存储区中,此存储区的首地址作为函数值返回o请改正函数f u n中指定部位的错说 使它能得出正确的结果。注意:不要改动m a i n函数,不得增行或删行,也不得更改程序的结构!给定源程
49、序:#inclu de#inclu de#inclu de#define N 10t y p edef s t r u ct s s char nu mflOl;int s;S T U;S T U *fu n(STU a,int m)S T U b(N,*t;int i,j,k;/:$:*fo u nd*/t=(STU*)callo c(s iz eo f(STU),m)fo r(i=0;iN;i+)bi=a(ij;fo r(k=0;k m;k+)fo r(i=j=O;ib|j.s)j=i;/*fo u nd*/t(k)=b(j);b(j.s=O;)r et u r n t;)o u t r
50、es u lt(STU a,FI L E *p f)int i;fo r(i=0;i 1 0)p r int f(nGiv e t he nu mber o f t he s t u dent s w h o hav e bet t er s co r e:);s canf(%d,&m);p Or der=fu n(a,m);p r int f(*T H E R E S U L T *nH);p r int f(The t o p :n);fo r(i=0;im;i+)p r int f(%s%dn,p Or der i.nu m,p Or der i.s);fr ee(p Or der);)