二级c语言上机考试100套题库.pdf

上传人:文*** 文档编号:88036004 上传时间:2023-04-20 格式:PDF 页数:267 大小:28.16MB
返回 下载 相关 举报
二级c语言上机考试100套题库.pdf_第1页
第1页 / 共267页
二级c语言上机考试100套题库.pdf_第2页
第2页 / 共267页
点击查看更多>>
资源描述

《二级c语言上机考试100套题库.pdf》由会员分享,可在线阅读,更多相关《二级c语言上机考试100套题库.pdf(267页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、说明:本题库共有1 0 0 套题目(每套题目包含3 道题:道程序填空题、道程序修改题、一道程序设计题),真实考试的时候,考生输入准考证后计算机随机为你抽取一套考试,每个考生考试时只需考一套题目(包含三道题),但由于考试时是随机抽题,所以即使把原题库告诉大家,你也不能知道到时计算机会给你抽取哪套题,所以大家只有把全部题库都理解才能万无一失)考生可以将考题的关键字眼发给场外同学,场外同学可以利用编辑查找找到考题,然后用手机编辑答案发给考生,/*E 考通教育 f e ng c a i h a ng b a n 1 2 6.c o m*/二级C 语言上机试题汇编第0 1 套:给定程序中,函数f un的

2、功能是:将形参n所指变量中,各位上为偶数的数去除,剩余的数按原来从高位到低位的顺序组成个新的数,并通过形参指针n传回所指变量。例如,输入一个数:2 7 6 3 8 4 9 6,新的数:为7 3 9。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的B L A N K 1.C 中。不得增行或删行,也不得更改程序的结构!给定源程序:tti nc lud e vo i d f un(unsi g ne d lo ng *n)(unsi g ne d lo ng x=0,i;i nt t;i=l;wh i le(*n)/*f o und*/t=*n%

3、_ 1 _;对1 0 进行取模运算,得到个位数字/*f o und*/i f(t%2!=_ 2 _)判断个位是否为偶数 x=x+t*i;i=i*1 0;/提取还原*n=*n/1 0;将原数缩小1 0 整十倍/*f o und*/*n=_ 3 ;将值传递给n的地址ma i n()(unsi g ne d lo ng n=-l;wh i le(n 9 9 9 9 9 9 9 9|n 0)p ri ntf(P l e a s e i n p u t(0 n 10 0 0 0 0 0 0 0):);sc anf&n);f u n(&n);p ri n t f(n Th e re s u l t i s

4、:%l d n”,n);解题思路:第一处:t 是通过取模的方式来得到*n 的个位数字,所以应填:10。第二处:判断是否是奇数,所以应填:0.第三处:最后通形参n 来返回新数x,所以应填:X。给定程序M O D I 1.C 中函数f u n 的功能是:计算n!。例如,给n 输入5,则输出12 0.0 0 0 0 0 0。请改正程序中的错误,使程序能输出正确的结果。注意:不要改动m a i n 函数,不得增行或删行,也不得更改程序的结构!给定源程序:#i n cl u d e d o u b l e f u n (i n t n )d o u b l e re s u l t =1.0 ;/*f

5、o u n d*/i f n =0 括号漏掉re t u rn 1.0 ;w h i l e(n 1&n 17 0 )/*f o u n d*/re s u l t *=n 分号漏掉re t u rn re s u l t ;)m a i n ()i n t n ;p ri n t f (z zI n p u t N:);s ca n f(%d ,&n);p ri n t f(z z n n%d!二 l f n n ,n,f u n(n);)解题思路:第一处:条件语句书写格式错误,应改为:i f (n=0)o第二处:语句后缺少分号。请编写一个函数f u n,它的功能是:将一个数字字符串转换为一

6、个整数(不得调用C 语言提供的将字符串转换为整数的函数)。例如,若输入字符串-12 3 4 ,则函数把它转换为整数值-12 3 4 o 函数f u n 中给出的语句仅供参考。注意:部分源程序存在文件PR0 G 1.C 文件中。请勿改动主函数m a i n 和其它函数中的任何内容,仅在函数f u n 的花括号中填入你编写的若干语句。给定源程序:#i n cl u d e#i n cl u d e l o n g f u n (ch a r*p)(/*以下代码仅供参考*/i n t i,l e n,t;/*l e n 为串长,t 为正负标识*/l o n g x=0;l e n=s t rl e

7、n(p);i f (p 0 =,-)t=-l;l e n;p+;字符串长度减少位;P+指针位置后移位e l s e t=l;/*以下完成数字字符串转换为一个数字*/f o r(i=0;i.l e n;i+)x=x*l 0-4 8+p i ;re t u rn x*t;/w h i l e(*p)x =x*10-4 8+(*p+);4 8 米的诡异)m a i n()/*主函数*/ch a r s 6 ;l o n g n;p ri n t f (E n t e r a s t ri n g:nz/);g e t s(s);n =f u n(s);pr intfn);N O N O ();)N

8、O N O ()/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/F I L E *f p,*w f ;i n t i ;ch a r s 2 0 ;l o n g n ;f p 二 f o p e n(c:t e s t i n.d a t ,r);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 s ca n f (f p,%s”,s);n =f u n(s);f p ri n t f (w f,,/%l d n/z,n);)f cl o s e(f p);f cl o s e(w f);)解题

9、思路:本题是将一个数字字符串转换为一个整数。参考答案:#i n cl u d e i n cl u d e l o n g f u n (ch a r*p)(/*以下代码仅供参考*/i n t i,l e n,t;/*l e n 为串长,t 为正负标识*/l o n g x=0;l e n=s t rl e n(p);i f(p 0 =)t=-l;l e n-;p+;e l s e t=l;/*以下完成数字字符串转换为一个数字*/w h i l e(*p)x =x*10-4 8+(*p+);re t u rn x*t;m a i n()/*主函数*/ch a r s 6 ;l o n g n;

10、p ri n t f C E n t e r a s t ri n g:n/z);g e t s(s);n =f u n(s);p ri n t f (z z%l d n/z,n);N O N O ();)N O N O ()/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/F I L E *f p,*wf ;i n t i ;ch a r s 2 0 ;l o n g n ;f p =f o p e n(c:t e s t i n.d a t ,r);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+

11、)f s ca n f (f p,%s ,s);n =f u n(s);f p ri n t f(w f,n);)f cl o s e(f p);f cl o s e(w f);)注意:由于N O N O()这个函数是改卷人用的,与考生没有什么关系,故下面从第2 套试题开始均省略N O N O()第0 2 套:给定程序中,函数f u n 的功能是将形参给定的字符串、整数、浮点数写到文本文件中,再用字符方式从此文本文件中逐个读入并显示在终端屏幕上。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BL AN K 1.C中。不得增行或删行,也不得

12、更改程序的结构!给定源程序:ttin clude vo id fun (char *s,in t a,do uble f)(/*fo un d*/_ 1 fp;/F I L E *定义文件类型指针char ch;fp =fo p en(filei.tx t,w);/指向文件,参数w是写入fp r in tf(fp,%s%d s,a,f);fclo se(fp);fp =fo p en(/zfilel.tx tz,,r );p r in tf(/zn The r esult:n n );ch=fgetc(fp);调用读取函数fgetc,每次只读取,个字符/*fo un d*/while(!feo

13、 f(_2 _)fp 判断其是否已经结束!/*fo un d*/p utchar (一3);ch=fgetc(fp);/ch,输出字符p utchar C n );fclo se(fp);)main()char a1 0=H ello!”;in t b=1 2 3 4 5;do uble c=9 8.7 6;fun (a,b,c);)解题思路:本题是考察先把给定的数据写入到文本文件中,再从该文件读出并显示在屏幕上。第一处;定义文本文件类型变量,所以应填:F I L E *。第二处:判断文件是否结束,所以应填:fp。第三处:显示读出的字符,所以应填:Cho给定程序M OD .C中函数fun 的功

14、能是:依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。请改正函数fun 中指定部位的错误,使它能得出正确的结果。注意:不要改动main 函数,不得增行或删行,也不得更改程序的结构!给定源程序:ttin clude vo id fun(char *s)in t i,j;fo r(i=0,j=0;si!=0 ;i+)if(si=0&si=9 )/判断是否为数字/*fo un d*/sj=si;/sj+=si 重新进行改写字符串/*fo un d*/sj=O;单引号给字符串加入终止符main()char i tem8 0;p r in tf(,zn E n ter a str in g

15、:z,);gets(item);p r in tf(/zn n The str in g is:%s n ,item);fun (item);p r in tf(,zn n The str in g o f chan gin g is:*sn ,item);)解题思路:第一处:要求是取出原字符串中所有数字字符组成一个新的字符串,程序中是使用变量j来控制新字符串的位置,所以应改为:sj+=si;。第二处:置新字符串的结束符,所以应改为:sj=O;.请编写函数fun,函数的功能是:将M 行N 列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。例如,.维数组中的数据为:W W W WS S

16、S SH H H H则字符串中的内容应是:WSH WSH WSH o注意:部分源程序在文件PROG 1.C中。请勿改动主函数main 和其它函数中的任何内容,仅在函数fun 的花括号中填入你编写的若干语句。给定源程序:#in clude ttdefin e M 3#defin e N 4vo id fun (char s N,char *b)(in t i,j,n=0;fo r(i=0;i N;i+)/*请填写相应语句完成其功能*/(fo r(j=0;j M;j+)bn+=aj i;连续赋值)bn=0 ;加入终止符)main()char a1 0 0,wj M N =W W W W,S S H

17、HHH ;in t i,j;p r in tf(The matr ix:n,z);fo r(i=0;iM;i+)fo r(j=0;j N;j+)p r in tf(%3 c,p r in tf(n );)fun (w,a);p r in tf C The A str in g:nw);p uts(a);p r in tf C W);N ON O O;解题思路:本题是把二维数组中的字符数据按列存放到一个字符串中。1 .计算存放到一维数组中的位置。2 .取出二维数组中的字符存放到一维数组(已计算出的位置)中。参考答案:vo id fun (char s N,char *b)(in t i,j,n=

18、0;fo r(i=0;i N;i+)/*请填写相应语句完成其功能*/(fo r(j =0 ;j M ;j+)bn =sj i;n=i*M+j+l;)bn=0 ;)第0 3套:程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数f u n的功能是重写形参f i le na me所指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其它学生的数据不变。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BL AN K L C中。不得增行或删行,也不得更改程序的结构!给定源程序:

19、t t i nc lu d e#d e f i ne N 5t y pe d e f s t r u c t s t u d e nt long s no;c h a r na me 1 0 ;f loa t s c or e 3 ;S T U;v oi d f u n(c h a r *f i le na me,S T U n)F I L E *f p;/*f ou nd*/f p=f ope n(_1,r b+);/f i le na me/*f ou nd*/f s e e k(_ 2 _,-lL*s i ze of (S T U),S E E K _ E N D);/f p/*f ou

20、 nd*/f w r i t e (&n,s i ze of (S T U),1,_ 3 _);/f pf c los e(f p);)ma i nO S T U t N =1 0 0 0 1,M a C h a o,9 1,9 2,7 7,1 0 0 0 2,C a oK a i ,7 5,60,8 8),1 0 0 0 3,“L i S i,8 5,7 0,7 8,1 0 0 0 4,F a ng F a ng ,9 0,8 2,8 7),1 0 0 0 5,Z h a ng S a n,9 5,8 0,8 8;S T U n=1 0 0 0 6,Z h a oS i ,55,7 0,68

21、,s s N ;i nt i,j;F I L E *f p;f p=f ope n(s t u d e nt.d a t,w b );f w r i t e(t,s i ze of (S T U),N,f p);f c los e(f p);f p 二 f ope n(s t u d e nt.d a t,r b );f r e a d(s s,s i ze of (S T U),N,f p);f c los e(f p);pr i nt f (,z nT h e or i g i na l d a t a :n n);f or (j=0;j N;j+)pr i nt f(nN o:%ld N

22、 a me:%-8 s S c or e s:,s s j .s no,s s j .na me);f or (i=0;i 3;i+)pr i nt f (z/%6.2 f ”,s s j .s c or e i );pr i nt f(n);)f u n(s t u d e nt.d a t,n);pr i nt f (zz nT h e d a t a a f t e r mod i f i ng :n n);f p 二 f ope n(s t u d e nt.d a t,“r b);f r e a d(s s,s i ze of (S T U),N,f p);f c los e(f p

23、);f or (j=0;j N;j+)pr i nt f (,z nN o:%ld N a me:%-8 s S c or e s:,z,s s j .s no,s s j .na me);f or (i=0;i 3;i+)pr i nt f (/z%6.2 f ”,s s j .s c or e i );pr i nt f C n/Z);)解题思路:本题是考察如何从文件中读出数据,再把结构中的数据写入文件中。第一处:从指定的文件中读出数据,所以应填:f i le na me。第二处:读取文件f p的最后一条记录,所以应填:fPo第三处:再把读出的记录,写入文件f p指定的位置上,所以应填:f

24、 po给定程序M 0 D I L C中的函数C r e a t li nk的功能是创建带头结点的单向链表,并为各结点数据域赋0到m-1的值。请改正函数C r e a t li nk中指定部位的错误,使它能得出正确的结果。注意:不要改动ma i n函数,不得增行或删行,也不得更改程序的结构!给定源程序:i nc lu d e i nc lu d e t y pe d e f s t r u c t a a i nt d a t a;s t r u c t a a *ne x t;N O D E;N O D E *C r e a t li nk(i nt n,i nt m)N O D E *h=N

25、 U L L,*p,*s;i nt i;/*f ou nd*/p=(N O D E )ma lloc(s i ze of(N O D E);h=p;p-ne x t=N U L L;f or(i=l;i d a t a=r a nd()%m;s-ne x t=p-ne x t;p-ne x t=s;p=p-ne x t;/*f ot i nd*/r e t u r n p;)ou t 1 i nk(N O D E *h)N O D E *p;p=h-ne x t;Pr i nt f(*n nT H E L I S T :n n H E AD );w h i le(p)pr i nt f(*-%

26、d ,p-d a t a);p=p-ne x t;)pr i nt f C nz/);ma i n()(N O D E *h e a d;h e a d=C r e a t li nk(8,2 2);ou t li nk(h e a d);)解题思路:第一处:指向刚分配的结构指针,所以应改为:p=(N O D E *)ma lloc(s i ze of (N O D E);第二处:在动态分配内存的下一行语句是,使用临时结构指针变量h 保存p指针的初始位置,最后返回不能使用P,是因为p的位置已经发生了变化,所以应改为返回h。请编写函数f u n,函数的功能是:统计一行字符串中单词的个数,作为函数

27、值返回。一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间由若干个空格隔开,一行的开始没有空格。注意:部分源程序在文件P R O G 1.C中。请勿改动主函数mai n和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。给定源程序:include ttinclude ttdefine N 80int fun(char*s)(int i,n,ans=l;n=strlen(s);for(i=0;i n;i+)if(si)if(si+l!=&si+l!=0 )双重if排除掉连续空格和末尾空格ans+;return ans;)mainO char lineN;int nu

28、m=0;printf(,zE nter a string:n);gets(line);num=fun(line):printf(T he number of w ord is:%dnn,num);N O N O();解题思路:本题是统计字符串中的单词数。1 .利用w hile循环语句和指针变量,当字符为空格时,则单词数k加1。2 .循环结束返回k。参考答案:int fun(char*s)(int k=1 ;w hile(*s)if(*s=)k+;答案有小问题,单词间是若干个空格S+;)return k;)第0 4套:程序戒过定义学生结构体变量,存储了学生的学号、姓名和3 门课的成绩。所有学生数

29、据均以.进制方式输出到文件中。函数fun的功能是从形参filename所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指的文件中,覆盖原来的文件内容。请在程序的卜划线处填入正确的内容并把卜.划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLAN K LC中。不得增行或删行,也不得更改程序的结构!给定源程序:include define N 5ty pedef struct student long sno;char name1 0;float score3;S T U;void fun(char*fi1 ename)

30、F I LE *fp;int i,j;S T U sN,t;/*found*/fp=fopen(filename,_ 1 _ );fread(s,siz eof(S T U),N,fp);fclose(fp);for(i=0;i N-l;i+)for(j=i+l;j t=si;si=sj;sj=t;交换顺序fp 二 fopen(filename,w b);/*found*/_3 _(s,siz eof(S T U),N,fp);/*二进制输出 fw rite*/fclose(fp);)mainO S T U tN =1 0 0 0 5,ZhangS an,95,80,88,1 0 0 0 3,

31、LiS i,85,70,78),10 0 0 2,Ca o K a i,75,60,88,10 0 0 4,/zF a n g F a n g,;90,82,87,10 0 0 1,M a Ch a o,91,92,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,“w b);f w r i t 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 (/z n n T h e o r i g i n a l d a t a :n n);f o

32、 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:,z,t j .s n o,t j .n a m e);f o r (i=0;i 3;i+)p r i n t f (,z%6.2f ”,t j .s c o r e f i );p r i n t f C n/Z);)f u n (s t u d e n t.d a t);p r i n t f (/z 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

33、 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 (,z n N o:%l d N a m e:%-8s S c o r e s:,z,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 (z,%6.2f ”,s s j .s c o r e i );p r i n t f C n/Z);)解题思路:本题是考察把结构中的数据写入文件。第一处:建立文件的类型,考虑到是把结构中的数据(结构中

34、的数据包含不打印的字符)从文件中读出,所以应填:r b。第二处:判断当前学号是否大于刚读出的学号进行相比,如果大于,则进行交换,所以应填:第三处:把已排序的结构数据,重新写入文件,所以应填:f w r i t e o给定程序M O D I 1.C中函数f u n的功能是:在字符串的最前端加入n个*号,形成新串,并且覆盖原串。注意:字符串的长度最长允许为79。请改正函数f u n中指定部位的错误,使它能得出正确的结果。注意:不要改动m a i n函数,不得增行或删行,也不得更改程序的结构!给定源程序:#i n c l u d e i n c l u d e v o i d f u n (c h

35、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 ;/p=S ;赋值,将数组首地址赋值给指针pf 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 i =0;这里应该为a i 二、(T,终止符s t r c p y (s,a);用新数组覆盖就数组)m a i n()i n t n;c h a r s 80 ;p r i n t f (An E n t e r a s t r i n g :);g e t s(s)

36、;p r i n t f (/z n T h e s t r i n g%s n ,s);p r i n t f (z z n E n t e r n (n u m b e r o f *):);s c a n f (%d ,&n);f u n(s,n);p r i n t f (z/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;o第二处:死循环,当d o w h i l e 循环执行一次,临时变量P 应该指向字符串的下一位置,所以应改为:w h i l e(*p+);o请编写函数

37、f u n,函数的功能是:统计各年龄段的人数。N 个年龄通过调用随机函数获得,并放在主函数的a g e 数组中;要求函数把0 至9岁年龄段的人数放在d 0 中,把10 至19岁年龄段的人数放在d l 中,把20 至29岁年龄段的人数放在d 2 中,其余依此类推,把10 0 岁(含 10 0)以上年龄的人数都放在d 10 中。结果在主函数中输出。注意:部分源程序在文件P R O G1.C中。请勿改动主函数mai n 和其它函数中的任何内容,仅在函数f un 的花括号中填入你编写的若干语句。给定源程序:#i n c l ud e ttd e f i n e N 50d e f i n e M 11

38、vo i d f un(i n t*a,i n t*b)(i n t i,j;f o r(i=0;i M;i+)bi=0;给数组指针b赋初值f o r(i=0;i=10)bMT+;e l sebj+;)d o ubl e rn d()stati c t=29,c=217,m=10 24,r=0;r=(r*t+c)%m;re turn(d o ub 1 e)r/m);/随机函数,实际就为连续代换)mai n O(i n t ag e N,i,d M;f o r(i=0;i N;i+)ag e i =(i n t)(115*rn d();调用随机函数p ri n tf (z,T h e o ri

39、g i n al d ata:n );f o r(i=0;i N;i+)p ri n tf (i+l)%10=0?z%4d n/,:%4d”,ag e i);p ri n tf(n n );f un (ag e,d);f o r(i=0;i 10;i+)p ri n tf (*%4d%4d :%4d n”,i*10,i*10+9,d i);p ri n tf O ve r 10 0 :%4d n”,d 10);NO NO(d);)解题思路:本题是统计各年龄段的人数。1.初始化各年龄段人数为0。2.使 用 f o r循环以及求出各年龄的十位数字作为存放人数的地址,如果大于值大于10,则存入d l

40、。中(大于110 岁的人)。参考答案:vo i d f un(i n t*a,i n t*b)(i n t i,j ;f o r(i =0 ;i M;i+)bi =0 ;/*E考通教育 f e n g c ai h an g ban 126.c o m*/f o r(i =0 ;i 10)bM-1+;e l se bj+;)d o ubl e rn d ()stati c t=29,c=217,m=10 24,r=0;r=(r*t+c)%m;re turn (d o ubl e)r/m);)第0 5套:给定程序中,函数f un 的功能是将参数给定的字符串、整数、浮点数写到文本文件中,再用字符串

41、方式从此文本文件中逐个读入,并调用库函数ato i 和ato f l 名字符串转换成相应的整数、浮点数,然后将其显示在屏幕上。请在程序的下划线处填入正确的内容并把卜.划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!给定源程序:#i n c l ud e#i n c l ud e vo i d f un (c h ar*s,i n t a,d o ubl e f)(/*f o un d*/_ 1 _ f p;/FILE*c h ar str10 0,str110 0,str210 0;i n t al;d o ubl e

42、f l;f p =f o p e n(/zf i 1 e l.txt,z,w);/*E考通教育 f e n g c ai h an g ban 126.c o m*/f p ri n tf (f p,%s%d s,a,f);/*f o un d*/_ 2 ;/f c l o se(f p)f p =fopent x t ,r);/*f o un d*/f sc an f (3,str,strl,str2);/f pf c l o se(f p);al =ato i(strl);f l =ato f(str2);p ri n tf (z/n T h e re sul t:n n%s%d str,

43、al,f l);)mai n()c h ar a10 二 He l l o!”;i n t b=12345;d o ubl e c=98.76;f un (a,b,c);)解题思路:本题是考察先把给定的数据写入到文本文件中,再从该文件读出并转换成相应的整数、浮点数显示在屏幕上。第一处:定义文木文件类型变量,所以应填:FILE第二处:关闭刚写入的文件,所以应填:f c l o se(f p)o第三处:从文件中读出数据,所以应填:f p o给定程序M O D I 1.C中函数f u n 的功能是:对N 名学生的学习成绩,按从高到低的顺序找出前m(m W 1 0)名学生来,并将这些学生数据存放在一个

44、动态分配的连续存储区中,此存储区的首地址作为函数值返回。请改正函数f u n 中指定部位的错误,使它能得出正确的结果。注意:不要改动m a i n 函数,不得增行或删行,也不得更改程序的结构!给定源程序:i n c l u d e#i n c l u d e i t i n c l u d e d e f i n e N 1 0t y p e d e f st ru c t ss c h a r n u m 1 0 ;i n t s;S T U;S T U *f u n(S T U a ,i n t m)S T U b N ,*t;i n t i,j,k;/*f o u n d*/t=(S T

45、 U *)c a l l o c(si z e o f (S T U),m)少分号f o r(i=0;i N;i+)b i =a i ;f o r(k=0;k m;k+)f o r(i=j=0;i b j .s)j=i;/*f o u n d*/t(k)=b(j);数组应用方括号b j .s=0;re t u rn t;)o u t re su l t (S T U a ,F I L E *p f)i n t i;f o r(i=0;i 1 0 )p ri n t f (z,n G i v e t h e n u m b e r o f t h e st u d e n t s w h o h

46、 a v e b e t t e r sc o re:);sc a n f&m);p O rd e r=f u n(a,m);p ri n t f(*T H E R E S U L T *n );p ri n t f (,zT h e t o p :n);f o r(i=0;i m;i+)p ri n t f C%s%d n/z,p O rd e r i .n u m ,p O rd e r i .s);f re e(p O rd e r);解题思路:第一处:语句最后缺少分号。第二处:应该使用方括号,而不是圆括号。像此类,使用编译,即可发现。请编写函数fu n,函数的功能是:删去维数组中所有相

47、同的数,使 之 只 剩 个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。例如,一维数组中的数据是:2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10。删除后,数组中的内容应该是:2 3 4 5 6 7 8 9 10。注意:部分源程序在文件PR0G1.C中。请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。给定源程序:ttinclude ttdefine N 80int fun(int a,int n)(int i,t,j=l;t=aO;给参数t初值for(i=0;in;i+)if(t!=ai)判断aj

48、+=ai,将不同的值赋给alt=ai;更新参数t的值aj=O;return j;返回数组中数据的个数main()int aN=2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10,10,i,n=20;printf(The original data:n);for(i=0;in;i+)printf(%3d,ai);n=fun(a,n);printf(nnThe data after deleted:n);for(i=0;in;i+)printf(%3d”,ai);printf(nn);NONO();)解题思路:本题是删除已排序过数组中的相同数。1.取出数组中的第1个数

49、存放在临时变量k中,再利用for循环来依次判断所有的数。2.如果取出的数和k相比,如果不相同,则仍存放在原数组中,其中存放的位置由j来控制,接着把这个数重新存入k。如果相同,则取下一数。参考答案:int fun(int a,int n)(int i,j=1,k=a0;for(i=1 ;i n;i+)if(k!=ai)aj+=ai;k=a i;)aj=0;return j;)第0 6 套:给定程序中,函数fu n 的功能是根据形参i的值返回某个函数的值。当调用正确时,程序输出:xl=5.0 0 0 0 0 0,x2=3.0 0 0 0 0 0,xl*xl+xl*x2=40.0 0 0 0 0 0

50、请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的B LA NK1.C 中。不得增行或删行,也不得更改程序的结构!给定源程序:#in c lu d e d o u b le fl(d o u b le x)r e t u r n x*x;d o u b le f2(d o u b le x,d o u b le y)r e t u r n x*y;/*fo u n d*/1 fu n(in t i,d o u b le x,d o u b le y)/d o u b le if(i=l)/*fo u n d*/r e t u r n _2(x

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

当前位置:首页 > 教育专区 > 教案示例

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

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