2020年度全国计算机等级考试C语言上机考试题库4160套.pdf

上传人:无*** 文档编号:89628208 上传时间:2023-05-06 格式:PDF 页数:143 大小:17.63MB
返回 下载 相关 举报
2020年度全国计算机等级考试C语言上机考试题库4160套.pdf_第1页
第1页 / 共143页
2020年度全国计算机等级考试C语言上机考试题库4160套.pdf_第2页
第2页 / 共143页
点击查看更多>>
资源描述

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

1、全国计算机等级考试C语言上机考试题库4160 套资料仅供参考全国计算机等级考试C语言上机考试题库学生练习用第41套至第60套第四十一套1、程序填空下列给定程序中,函数f u n的功能是:将 形 参s所指字符串中的所有字母字符顺序前移,其它字符顺序后移,处理后将新字符串的首地址作为函数值返回。例如,若s所指字符串为:a s d l 2 3 f g h 5 4 3 d f”,处理后新字符串为:a s d f g h d f 1 2 3 5 4 3”。请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。注意:部分源程序在文件B L A N K 1.C中。不得增行或删行,也不得更改程

2、序的结构!t t i n c l u d et t i n c l u d e#i n c l u d ec h a r *f u n(c h a r *s)i n t i,j,k,n;c h a r *p,*t;n=s t r l e n(s)+l;t=(c h a r*)m a l l o c(n*s i ze o f(c h a r);p=(c h a r*)m a l l o c(n*s i ze o f(c h a r);j=0;k=0;f o r(i=0;i=a)&(si=A)&(si=Z)/*found*/j+;else pk=si;k+;)/*found*/for(i=0;i_

3、 2;i+)tj+i=pi;/*found*/tj+k=_ 3 _;return t;main()char s 80;printf(Please input:);scanf(%s,s);printf(nThe result is:%s n”,fun(s);资料仅供参考【参考答案】s i (2)k (3)0 或 0【考点分析】本题考查:数组元素赋值操作;f o r 循环语句中循环变量的取值范围;字符串结束标识 0 。【解题思路】填空1:将字符串s中所有字母元素赋给数组t o填空2:字符串中所有非字母元素放到字母元素后面,因此取值范围是。k。填空3:最后给字符串加入结束标识 0 。2、程序修改下列

4、给定程序中函数f u n 的功能是:将 s 所指字符串中最后一次出现的与t l 所指字符串相同的子串替换成t 2 所指字符串,所形成的新串放在w 所指的数组中。要求t l 和 t 2 所指字符串的长度相同。例如,当 s 所指字符串中的内容为:a b c d a b f a b c”,t l 所指串中的内容为 a b”,t 2 所指子串中的内容为 9 9 时,结果在w 所指的数组中的内容应为 a b c d a b f 9 9 c”。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件M 0 D I 1.C 中,不得增行或删行,也不得更改的程序的结构!#i n c l u d e#i

5、 n c l u d e v o i d f u n (c h a r *s,c h a r *t l,c h a r *t 2 ,c h a r *w)(c h a r *p ,*r,*a;s t r c p y(w,s );/*f o i i n d*/资料仅供参考wh i l e (w)p =w;r =t l;wh i l e (*r )/*f o u r i d*/I F (*r =*p )r+;p+;e l s e b r e a k;i f (*r =0 )a =w;w+;)r =t 2;wh i l e (*r )*a =*r;a+;r+;m a i n()(c h a r s

6、1 0 0,t l 1 0 0,t 2 1 0 0,w1 0 0;p r i n t f(n P l e a s e e n t e r s t r i n g S:);s c a n f(%s”,s);p r i n t f(n P l e a s e e n t e r s u b s t r i n g t l:);s c a n f (,z%s,z,t l);资料仅供参考p r i n t f(Xn P l e a s e e n t e r s u b s t r i n gs c a n f (%s”,t 2);i f (s t r l e n(t l)=s t r l e n(t

7、 2)f u n(s,t l,t 2,w);p r i n t f (n Th e r e s u l t i s :%s n”,w);)e l s e p r i n t f(n E r r o r :s t r l e n(t l)!=s t r l e n (t 2)n,z);【参考答案】(l)wh i l e(*w)(2)i f(*r=*p)【考点分析】本题考查:wh i l e 循环语句,C 语言中的关键字。【解题思路】(1)这藕判断的是值的真假,而不是地址,因此改为wh i l e (*w)o(2)C 语言中关键字区分大小写,只需运行程序,就能够根据错误提示找到。3、程序设计编写函

8、数f u n,其功能是:将 s 所指字符串中AS CH值为奇数的字符删除,剩余字符形成的新串放在t 所指数组中。例如,若 s 所指字符串中的内容为:ABCDEFG1 2 3 4 5”,其中字符A 的AS CII码值为奇数,字符1 的AS CII码值也为奇数,都应当删除,其它依此类推。最后t所指的数组中的内容应是:BDF2 4 。注意:部分源程序在文件P R 0 G1.C中。请勿改动主函数m ain 和其它函数中的任何内容,仅在函数f u n 的花括号中填入你编写的若干语句。资料仅供参考ttinclude ttinclude void fun(char*s,char t )()main()(ch

9、ar s100,t100;void NONO();printf(XnPlease enter string S:);scanf s);fun(s,t);printf(nThe result is:%s n”,t);NONO();资料仅供参考void NONO()/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/char s100,t 100;FILE*rf,*wf;int i;rf=fopen(in.dat,r);wf=fopen(outdat,w);for(i=0;i 10;i+)fscanf(rf,%s,s);fun(s,t);fprintf(wf,%s n,t);)fc

10、lose(rf);fclose(wf);)include ttinclude void fun(char*s,char t )资料仅供参考m ain()(c har s 1 0 0 ,t 1 0 0 ;v o id N O N O ();p r in t f(X n P l e as e e n t e r s t r in g S:);s c an f(%s ,s);f u n(s,t);p r in t f(n T he r e s u l t is:%s n,t);N O N O ();v o id N O N O ()/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/

11、c har s 1 0 0 ,t 1 0 0 ;FIL E*r f,*w f ;in t i;资料仅供参考rf=fopen(in.dat,r);wf=fopen(outdat,w);for(i=0;i 10;i+)fscanf(rf,%s,s);fun(s,t);fprintf(wf,%s n,t);)fclose(rf);fclose(wf);)【参考答案】v o id f u n (c har *s,c har t )(in t i,j=0,n;n=s t r l e n(s);f o r(i=0;i n;i+)/*找出AS CII码值为偶数的字符依次存入数组中*/if(s i%2=0)(

12、t j=s i;j+;资料仅供参考t j=0*;)【考点分析】本题考查:A S C H码值为奇数或偶数的判定方法,同时掌握删除字符的思想,即重新保留非删除字符。【解题思路】要删除AS CH码值为奇数的字符,也就是要保留AS CII码值为偶数的字符,由于最终是要求出剩余字符形成的新串,因此本题的算法是对原字符串从头到尾扫描,并找出AS CH码值为偶数的字符依次存入数组中。第四十二套1、程序填空给定程序中,函 数f u n的功能是将参数给定的字符串、整数、浮点数写到文本文件中,再用字符串方式从此文本文件中逐个读入,并调用库函数at o i和at o f将字符串转换成相应的整数、浮点数,然后将其显示

13、在屏幕上。请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。注意:部分源程序在文件BL AN KL C中。请勿改动m ain函数和其它函数中的任何内容,仅 在m ain函数的横线上填入所编写的若干表示式或语句。t t in c l u d e in c l u d e v o id f u n (c har *s,in t a,d o u bl e f)/*f o u n d*/1 f p;c har s t r 1 0 0 ,s t r l 1 0 0 ,s t r 2 1 0 0 ;in t al;d o u bl e f l;资料仅供参考fp=fopen(filel.

14、txt,w);fprintf(fp,%s%d%f nz,,s,a,f);/*found*/2;fp=fopen(filel,txt,r);/*found*/fscanf(_3,,%s%s%s,z,str,strl,str2);fclose(fp);al=atoi(strl);fl=atof(str2);printf(z,nThe result:n n%s%d%f nz,,str,al,fl);main()char a10=Hello!”;int b=12345;double c=98.76;fun(a,b,c);)【参考答案】(1)FIL E*(2)f c l o s e(f p)(3)f p

15、【解题思路】填空1:从使用f p=f o p e n(f il e l.t xt,w )可知f p 应该是文件类型指针,因资料仅供参考此本空因该填写FIL E*0填空2:当对f p 作打开操作的时候,并进行不同的操作前,应该对其关闭,因为在第一次打开时是对f p 进行写操作,而在第二次打开后进行的是读操作,因此应该先对f p 进行关闭,本空填f c l o s e (f p)o填空3:f s c an f()是把文本文件输出,因此本空只能填写f p。2、程序修改下列给定程序中,函数f u n 的功能是:对 N名学生的学习成绩,按从高到低的顺序找出前m(m W 1 0)名学生来,并将这些学生的数

16、据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件M O D I L C 中,不得增行或删行,也不得更改程序的结构。i n c l u d et t i n c l u d et t i n c l u d e#i n c l u d et t i n c l u d et t d e f i n e N1 0t y p e d e f s t r u c t s s 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

17、,*t;资料仅供参考i n t i,j,k;/*f o u n d*/*t=c a l l o c(m,s i z e o f(S T U);f o r(i=0;i N;i+)b i =a i ;f o r (k=0;k b j .s)j=i;/*f o u n d*/t k .n u m=b j .n u m;t k .s=b j .s;b j .s=0;r e t u r n t;o u t r e s u l t(S T U a ,F I L E*p f)i n t i;f o r(i=0;i 10)printf(nG ive the number of thestudents who

18、have better score:);scanf&m);)pOrder=fun(a,m);printf(*THE RESULT*n);printf(The top:n);for(i=0;im;i+)资料仅供参考p r i n t f(%sp O r d e r i ,s);f r e e(p O r d e r);)%d n”,p O r d e r i .n u m,【参考答案】(l)t=c a l l o c(m,s i z e o f(S T U);t k =b j ;【解题思路】(1)c l l o c应用于分配内存空间。调用形式为(类型说明符*)c a l l o c(n,s i

19、z e),功能:在内存动态存储区中分配n块长度为s i z e 字节的连续区域,函数的返回值为该区域的首地址,(类型说明符*)用于强制类型转换。c a l l o c函数与m a l l o c函数的区别在于c a l l o c函数一次能够分配n块区域。例如,p s=(s t r u c t s t u*)c a l l o c(2,s i z e o f (s t r u c t s t u);,其中的s i z e o f (s t r u c t s t u)是 求s t u的结构长度。该语句的意思是:按s t u的长度分配两块连续区域,强制转换为s t u类型,并把其首地址赋予指针变

20、量p s。在本题中不用考虑那么复杂,根据定义类型S T U 就能够看出*t=c a l l o c (m,s i z e o f (S T U)中的错误。(2)t k .n u m=b j .n u m的错误旨在考查对结构体概念的掌握和灵活应用程度。3、程序设计请编写函数f u n,该函数的功能是:删除一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。例如,若一维数组中的数据是:2 2 2 3 4 4 5 666677899 1 0 1 0 1 0删除后,数组中的内容应该是:2 3 4 5 6789 1 0注意:部分源程序在文件P R 0

21、G 1.C中。请勿改动m a i n函数和其它函数中的任何内容,仅在函数f u n的花括号中填入所编写的若干语句。资料仅供参考ttinclude ttdefine N 80int fun(int a,int n)void main()FILE*wf;intaN =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(n nThe data after deleted:n);for(i=0;in;i+

22、)printf(%3d”,ai);printf(n n);/wf=fopen(/zout.dat,w);资料仅供参考f o r(i=0;i n;i+)f p r i n t f (w f,,z%3 d,z,a i );f c l o s e(w f);/【参考答案】int fun(int a,int n)int i,j=l;for(i=l;in;i+)if(aj-l!=ai)/*若该数与前一个数不相同,则要保留*/aj+=ai;return j;/*返回不相同数的个数*/)【解题思路】该程序的流程是:定义变量i 和 j,其中j 用于控制删除后剩下的数在数组中的下标,i 用于搜索原数组中的元素。

23、j 始终是新数组中最后一个元素的下一个元素的下标,因此i f 语句中的条件是aj-l!=ai,其中aj-L就是新数组中的最后一个元素,若条件成立,则表示出现了不同的值,因此a i要保留到新数组中。注意本题中i 和 j 的初值都要从1 开始,该算法只能用于数组已排序的题目中。第四十三套1、程序填空下列给定程序中,函数fun的功能是:计算NXN矩阵的主对角线元素和反向对角线元素之和,并作为函数值返回。要求先累加主对角线元素中的值,再累加资料仅供参考反向对角线元素中的值。例如,若 N=3,有下列矩阵:1 2 34 5 67 8 9首先累加1、5、9,然后累加3、5、7,函数返回值为30。请在程序的下

24、画线处填入正确的内容并将下画线删除,使程序得出正确的结果。注意:部分源程序在文件BLANK1.C中。不得增行或删行,也不得更改程序的结构!ttinc lud e ttd efine N 4fun(int t N ,int n)int i,sum;/*found*/1 ;for(i=0;i n;i+)/*found*/s u m+=2 _ _ _ ;for(i=0;i n;i+)/*found*/sum+=t i n-i-3;return sum;ma in()资料仅供参考 intt N =2 1,2,1 3,2 4,2 5,1 6,4 7,3 8,2 9,1 1,3 2,54,4 2,2 1,

25、3,1 0,i,j;printf(,z nT he origina l d a ta:X n);for(i=0;i N;i+)for(j=0;j N;j+)printf(%4 d”,t i j);printf(n);)printf(T he result is:%d”,fun(t,N);)【参考答案】(1)sum=0 (2)(3)1【考点分析】本题考查:变量初始化;N X N 矩阵对角线下标如何表示;累加操作。【解题思路】填空1:变量sum用来储存和 结果,因此将其初始化为0。填空2:从题目中我们能够了解到,主对角线元素的行和列下标是相同的,因此应填入填空3:对于反向对角线元素的行和列的下标,

26、它们的关系是相加和为nL因此应填入1 2、程序修改下列给定程序中函数fun和 funx的功能是:用二分法求方程2/-4 x2+3 x-6=0 的一个根,并要求绝对误差不超过0.0 0 1 o例如,若给m 输入-1 0 0,n 输入9 0,则函数求得的一个根为2.0 0 0。资料仅供参考请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件M0DI1.C中,不得增行或删行,也不得更改程序的结构。ttinc lud e#inc lud e d oub le funx(d oub le x)return(2*x*x*x-4*x*x+3*x-6);d oub le fun(d oub le

27、m,d oub le n)/*f ourid*/int r;r=(m+n)/2;/*f ourid*/while(fa b s(n-m)0.0 0 1)if(funx(r)*funx(n)0.0 0 1)【考点分析】本题考查:变量数据类型;while循环语句。【解题思路】(1)程序中我们会发现r=(m+n)/2,而 m 和 n 都是d oub le型的,而且根据题意可知,变量r 需要定义为d oub le型。(2)绝对误差不超过0.0 0 1,因此循环条件应为fa b s(n-m)0.0 0 1 o3、程序设计规定输入的字符串中只包含字母和*号。编写函数fun,其功能是:除了字符串前导和尾部的

28、*号外,将串中其它的*号全部删除。形参h 已指向字符串中第一个字母,形参p 指向字符串的中最后一个字母。在编写函数时,不得使用C 语言提供的字符串函数。例如,若字符串中的内容为*A*B C*DE F*G*,删除后,字符串中的内容应当是:*A B CDE F G*。在编写函数时,不得使用C 语言提供的字符串函数。注意:部分源程序在文件PR0G L C中。请勿改动主函数mai n和其它函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。fti nclude 资料仅供参考v oi d fun(char*a,char*h,char*p)mai n()char s 8 1,*t,*f;v o

29、i d NONO();pri ntf(E nter a stri ng:n);gets(s);t=f=s;whi le(*t)t+;t;whi le(*t=,*)t一;whi le(*f=,*,)f+;fun(s,f,t);pri ntf(The stri ng afterdeleted:nz/);puts(s);NONO();v oi d NONO()资料仅供参考/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/F I L E *i n,*out;i nt i ;char s 8 1,*t,*f;i n=fopen(i n.dat,r);out=fopen(out,dat,

30、w);for(i =0;i 10;i+)fscanf(i n,%s,s);t=f=s;whi le(*t)t+;t;whi le(*t=,*)t一;whi le(*f=,*)f+;fun(s,f,t);fpri ntf(out,s);)fclose(i n);fclose(out);)【参考答案】v oi d fun(char*a,char*h,char*p)资料仅供参考i nt i=0;char*q=a;whi le(qh)(a i =*q;q+;i+;)whi le(q 24 9、25 8、26 7、27 6、28 5、294、339、34 8、35 7、36 6、37 5、38 4、39

31、3、4 29、4 38、4 4 7、4 5 6、4 6 5、4 7 4、4 8 3、4 92。共有 26 个。请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。注意:部分源程序在文件B L A NK L C中。不得增行或删行,也不得更改程序的结构!#i nclude i nt fun(i nt x)i nt n,si,s2,s3,t;/*found*/n=_ 1_t=100;/*found*/whi le(t 999|x0)pri ntf(Please i nput(0 x=999):);scanf&x);pri ntf(nThe result i s:%d n”,fun(

32、x);【参考答案】(1)O(2)x(3)t+【考点分析】本题考查:变量赋初值;whi le循环语句。【解题思路】填空1:变量n 用于存放符合条件的整数的个数,应赋初值为0。填空2:根据题目要求,确定循环变量t 的取值范围仅=x。填空3:循环变量t 自增1 操作。2、程序修改下列给定程序中函数fun的功能是:先将s 所指字符串中的字符按逆序存放到t所指字符串中,然后把s所指串中的字符按正序连接到t 所指串之后。例如:当 s 所指的字符串为ABCDE”时,t 所指的字符串应为EDCBAABCDE”。请改正程序中的错误,使它能得出正确的结果。注意:部分源程序在文件M 0 DI 1.C中,不得增行或删

33、行,也不得更改程序的结构!资料仅供参考tti nc l ud e tti nc l ud e voi d fun(c h a r*s,c h a r*t)/*f oi i nd*/i nt i;si =strl e n(s);for(i=0;i sl;i+)/*f oi i nd*/ti =ssl-i;for(i=0;i =sl;i+)tsl+i =si;t 2*sl =0 ;ma i n()c h a r s1 0 0,t 1 0 0;pri ntf(X nP l e a se e nte r stri ng s:);sc a nf(%s”,s);fun(s,t);pri ntf(T h e

34、 re sul t i s:%sn”,t);资料仅供参考)【参考答案】(1)i nt i,si;(2)ti=ssl-i-l;【考点分析】本题考查:变量定义;字符串操作。【解题思路】(1)变量si 没有定义。(2)该循环实现将s 串中的字符逆序存入t 串中,ti 对应s 串中的so3、程序设计函数fun的功能是:将 a、b的两个两位正整数合并成一个新的整数放在c中。合并的方式是:将 a中的十位和个位数依次放在变量c的百位和个位上,b中的十位和个位数依次放在变量c的千位和十位上。例如,当a=4 5,b=1 2,调用该函数后c =1 4 2 5。注意:部分源程序在文件P R O G L C中。数据文

35、件I N.DAT 中的数据不得修改。请勿改动主函数ma i n和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。#i nc l ud e i nc l ud e fl oa t fun(fl oa t num)i nt s;fl oa t n,t,pi ;资料仅供参考t=l;p i=O;n=l;s=1 ;/*found*/wh i l e(t =num)pi =pi +t;n=n+2 ;s-s;/*found*/t=s%n;)pi =pi *4 ;re turn pi ;ma i n()fl oa t nl,n2 ;pri ntf(Ente r a fl oa t numb

36、 e r:);sc a nf(%f”,&n l);n2 =fun(nl);pri ntf(%6.4 fn”,n 2);资料仅供参考【参考答案】voi d fun(i nt a,i nt b,l ong*c)*c=a%1 0+(b%1 0)*1 0+(a/1 0)*1 0 0+(b/1 0)*1 0 0 0;)【考点分析】本题考查:如何取出数值n的各个位;知道数值n的各个位,又如何表示该数值;指针型变量的使用。解题思路本题的工要问题是如何取出a和b的个位数和十位数,取出后如何表示成c中相应的位数。由于a和b都是只有两位的整数,因此分别对它们除1 0可得到它们的十位数,分 别 用1 0对它们求余可

37、得到它们的个位数。得到后对应乘以1 0 0 0、1 0 0、1 0、1就可得到c的千位数、百位数、十位数和个位数。注意:使 用c时要进行指针运算。第四十五套1、程序填空下列给定程序中,函数fun的功能是:在 形参ss所指字符串数组中,将所有串长超过k的字符串中后面的字符删除,只保留前面的k个字符。ss所指字符串数组中共有N个字符串,且串长小于M。请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。注意:部分源程序在文件B L A NK 1.C中。不得增行或删行,也不得更改程序的结构!ttin cludettin cludedefin eN 5#defin eM 1 0资料仅供

38、参考/*found*/void fun(char(*ss)_ 1 _,int k)int i=0;/*found*/while(i _ 2 _)/*found*/ssi k=3;i+;)main()charxN M =C reate,Modify,Sort,skip,“D elete;int i;printf(nThe original string n n);for(i=0;iN;i+)puts(xi);printf(n);fun(x,4);printf(nThe string afterdeleted:n n);for(i=0;iN;i+)puts(xi);printf(n);资料仅供参考

39、【参考答案】M(2)N 0【考点分析】本题考查:函数定义;while循环语句;字符串结束标识 0 。【解题思路】填空1:根据m ain 函数中函数调用语句,确定函数定义时的形式参数,因此填入 M。填空2:while循环语句需要对所有字符串进行操作,因此循环条件是十比填空3:字符串结尾加入字符串结束标识 0 。2、程序修改下列给定程序中函数fun 的功能是:根据以下公式求“值,并作为函数值返回。例如,当给指定精度的变量ep s输入0.0 0 0 5 时,应输出Pi=3.1 4 0 5 7 8。IT,I 1 2 1 2 3 I 2 v 3 42 3 3 5 3 5 7 3 5 7 9请改正程序中的

40、错误,使它能得出正确的结果。注意:部分源程序在文件M0 D I 1.C 中,不得增行或删行,也不得更改的程序的结构!in clude ttin clude do uble fun(do uble ep s)do uble s,t;s=0.0;in t n=l;/*f o iin d*/t=0;资料仅供参考while(t ep s)s+=t;t=t*n/(2*n+l);n+;/*f o iin d*/r etur n (s);)m ain ()do uble x;p r in tf(,zn Please en ter a p r ecisio n:);scan f(%lf,&x);p r in

41、tf(,n ep s=%lf,Pi=%lfn nz,,x,fun (x);【参考答案】(l)t=l.o;(2)r etur n(s*2);【考点分析】本题考查:根据给定公式求值,因此需要确定变量定义的数据类型以及如何对其进行初始化;函数返回值。【解题思路】该题中,我们首先检查变量数据类型前后是否一致,因为变量t 定义为do uble型,因此赋值时要赋以实型数值。r etur n(s)是一个数学错误,应该返回r etur n(s*2)。资料仅供参考3、程序设计规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:使字符串的前导*号不得多于n 个,若多于n 个,则删除多余的*号;若少于或

42、等n 个,则不做处理,字符串中间和尾部的*号不删除。例如,字符串中的内容为:*A*B C*D E F*G*,若 n的值为4,删除后,字符串中的内容应当是:*A*B C*D E F*G*;若 n的值为8,则字符串中的内容仍为:*A*B C*D E F*G*。n的值在主函数中输入。在编写函数时,不得使用C 语言提供的字符串函数。请勿改动主函数m ain 和其它函数中的任何内容,仅在函数fun 的花括号中填入你编写的若干语句。#in clude vo id fun(char *a,in t n )m ain()char s 8 1;in t n;vo id NONO();p r in tf(E n

43、ter a str in g:n );gets(s);p r in tf(E n ter n :);s c a nf&n);fun(s,n );资料仅供参考p r in tf(zzT he str in g afterdeleted:n);p uts(s);NONO();)vo id NONO()/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*/F I L E *in,*o ut;in t i,n ;char s 8 1;m=fo p en(in.dat,r );o ut=fo p en(o ut,dat,w);fo r(i=0 ;i n)/*如果k 大于n,则使p的前部保留

44、n 个星号,其后的字符依次存入数组a 中*/while(*p)a i=*(p+k-n);i+;P+;)a i=0 ;/*在字符串最后加上结束标识位*/)【考点分析】本题考查:循环判断语句;字符串的操作。【解题思路】字符串中前导*号不能多于n 个,多余的删除。首先需要经过while循环统计字符串前导*号的个数,然后经过if条件语句完成前导*号的个数和n的比较,如果前导*号多于n 个,需要把n 个*号和其余字符重新保留。第四十六套资料仅供参考1、程序填空下列给定程序中,函数fun的功能是:将自然数11 0及其平方根写到名为m yfile3.tx t的文本文件中,然后再顺序读出显示在屏幕上。请在程序

45、下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。注意:部分源程序在文件B L A NK L C中。不得增行或删行,也不得更改程序的结构!#in clude ttin clude in t fun(char *fn am e)F I L E *fp;in t i,n;flo atif(fp=fo p en(fn am e,w)=NU L L)r etur n 0;fo r (i=l;i=1 0;i+)/*fo un d*/fp r in tf(1,%d%fn,z,i,sq r t(do uble)i);p r in tf(X n S ucceed!n );/*fo un d*/资料仅

46、供参考printf(nThe data in file:n);/*found*/if(fp=fopen(3,r)=NULL)return 0;fscanf(fp,&n,&x);while(!feof(fp)printf(%d%f n,z,n,x);fscanf(f p,&n,&x);fclose(fp);return 1;)main()char fname=,zmyfile3.txt7,;fun(fname);【参考答案】(l)fp (2)fclo se(fp)(3)fn am e【考点分析】本题考查:文件的相关操作,fp r in tf函数与前p r in tf功能相似,区别在于fp r i

47、n tf函数的对象不是键盘和显示器,而是磁盘文件;文件打开和关闭函数fo p en 和 fclo se的使用。【解题思路】填空1:fp r in tf函数的形式是:fp r in tf(文件指针,格式字符串,输出表列)一因此填入文件指针fp.填空2:文件一旦使用完毕,应使用关闭函数fclo se。将文件关闭,以避免发资料仅供参考生文件数据丢失等错误。填空3:fo p en 函数用来打开一个文件,其一般形式为:文件指针名=fo p en(文件名,使用文件方式);因此应填入文件名fn am e。2、程序修改下列给定程序中fun 函数功能是:将 n 个无序整数从小到大排序。请改正程序中的错误,使它能

48、得出正确的结果。注意:部分源程序在文件M0 D I 1.C中,不得增行或删行,也不得更改程序的结构!ttin clude ftin clude fun (in t n,in t*a)in t i,j,p,t;fo r (j=0;j n-l;j+)P=J;/*f o ur id*/fo r (i=j+l;i a i)/*f o ur id*/t=i;if(p!=j)t=a j;a j=a p;a p =t;)资料仅供参考)putarr(int n,int*z)int i;for(i=1;i=n;i+,z+)printf(%4d”,*z);if(!(i%10)printf(n);printf(n)

49、;)main()int aa20 =9,3,0,4,1,2,5,6,8,10,7,n=ll;printf(n nBefore sorting%dnumbers:n,n);putarr(n,aa);fun(n,aa);printf(nAfter sorting%d numbers:n”,n);putarr(n,aa);)【参考答案】(1)fo r(i=j+l;i n;i+)P=i;【考点分析】资料仅供参考本题考查:fo r 循环语句;需明确各个变量含义。解题思路该程序对 n 个无序数实现从小到大的排序,先找出整数序列的最小项,置于指针第1 个元素的位置;再找出次小项,置于第2 个元素的位置;之后

50、顺次处理后续元素。(1)数组的长度为n,因此最后一个元素的下标值为n l,i 的取值范围应该包括此下标值。(2)p 是中间变量,存放值较小的元素下标。3、程序设计编写函数fu n,其功能是:将两个两位数的正整数a、b 合并成一个整数放在c中。合并的方式是:将 a 数的十位和个位数依次在c 数的个位和百位上,b 数的十位和个位数依次放在c 数的十位和千位上。例如,当a=4 5,b=1 2 时,调用该函数后c=2 5 1 4。注意:部分源程序在文件P R 0 G L C中。数据文件I N.DA T 中的数据不得修改。请勿动改主函数的m a i n 和其它函数中的任何内容,仅在函数fu n 的花括号

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

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

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

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