2020年全国计算机等级考试二级c语言上机题库(共50套).pdf

上传人:文*** 文档编号:88911651 上传时间:2023-05-04 格式:PDF 页数:187 大小:20.05MB
返回 下载 相关 举报
2020年全国计算机等级考试二级c语言上机题库(共50套).pdf_第1页
第1页 / 共187页
2020年全国计算机等级考试二级c语言上机题库(共50套).pdf_第2页
第2页 / 共187页
点击查看更多>>
资源描述

《2020年全国计算机等级考试二级c语言上机题库(共50套).pdf》由会员分享,可在线阅读,更多相关《2020年全国计算机等级考试二级c语言上机题库(共50套).pdf(187页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、2020年全国计算机等级考试二级c语言上机精选题库(共50套)第1套题一、填空题请补充m ain函数,该函数的功能是:计算每个学生科目的平均分,并把结果保存在数组b b 中。例 如,当scoreNM=78.5,84,83,65,63,88,91.5,89,93,95,72.5,65,56,75,77 时,三个学生的平均分为:74.7 91.3 69.1 o仅在横线上填入所编写的若干表达式或语句,勿改动函数中的其他任何内容。#include#define N 3#define M 5main()(int i,j;static float scoreNM=78.5,84,83,65,63,88,9

2、1.5,89,93,95,72.5,65,56,75,77));float b b N;for(i=0;iN;i+)1;for(i=0;iN;i+)for(j=0;jM;j+)2;b b i/=M;for(i=0;iN;i+)printf(nstudent%dtaverage=%5.If,i+1,b b ij);二、改错题下列给定程序中,函 数fun的功能是:根据整型行参,计算如下公式的值。111-+-+-100 x100 200 x 200 300 x 3001+-m x m例 如,若m=2若0,则应该输出:0.0001600请改正程序中的错误,使它能得出正确的结果。#include#inc

3、lude/*found*/fun(int m)(doub le y=0,d;int i;/*/for(i=100,i=m,i+=100)(d=(doub le)i*(doub le)i;y+=1.0/d;)return(y);)main()|int n=2000;printf(nThe result is%lfn,fun(n);)三、编程题请编写函数fu n,该函数的功能是:统计个年龄段的人数。N个年龄通过调用随机函数获得,并放在主函数的age数组中;要求函数把0 至 9 岁年龄段的人数放在d0中,把 10至 19岁年龄段的人数放在d川 中,把 20至 2 9 岁年龄段的人数放在d2中,其余依

4、此类推,把 100岁(含 1 0 0)以上年龄的人数都放在d10中。结果在主函数中输出。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。#include#define N 50#define M 11void fun(int*a,int*b)doub le rnd()(static t=29,c=217,m=1024,r=0;r=(r*t+c)%m;return(doub le)r/m);)main()int ageN,i,dM;FILE*out;for(i=0;iN;i+)agei=(int)(115*md();printf(The origina

5、l data:n);for(i=0;iN;i+)printf(i+l)%10=0?%4dn:%4d,agei);printf(nn);fun(age,d);out=fopen(out.dat,w);for(i=0;i10;i+)(printf(%4d%4d:%4dn,i*10,i*10+9,di);fprintf(out,%4d%4d:%4dn,i*10,i*l0+9,di);)printf(Over 100:%4dn,d10);fprintf(out,Over 100:%4dn,d10);fclose(out);)答案:一、1、b b i =O 或*(b b+i)=O2 、b b i +=s

6、 c o r e i j 或 b b i =b i +s c o r e i j 或b b i =s c o r e i f j+b b i 二、1、f u n(i n t m)应改为 d o u b l e f u n(i n t m)2、f o r(i=1 00,i =m,i+=1 00)应改为 f o r(i=1 00;i =m;i+=1 00)、v o i d f u n (i n t *a,i n t *b)|i n t i,j;f o r(j=0;j M;j+)b j=O;f o r(i=0;i =0&a i =1 0&a i =2 0&a i =3 0&a i =4 0&a i

7、=5 0&a i =6 0&a i =7 0&a i =8 0&a i =9 0&a i =9 9)b 9 +=l;e l s eb 1 0+=l;第2套:填空题请补充m a i n函数,该函数的功能是:从键盘输入一组字符串,以*结束输入,并显示出这个字符串。例如,输 入a b c d e f *,结果显示a b c d e f。仅在横线上添入所编写的若干表达式或语句,勿改动函数中的其他任何内容。t t i n c l u d e t t d e f i n e N 8 0m a i n ()(i n t i =-1,j=0;c h a r s t r N;p r i n t f (z,n I

8、 n p u t a s t r i n g n );d oi+;s c a n f(_ 1 _);w h i l e (_ 2 _);p r i n t f (,z n *d i s p l a y t h e s t r i n g *;w h i l e (j i)(p r i n t f(_ 3 _);j+;)答案:“%c”,&s t r i(2)s t r i !=,*(3)%c ,s t r j改错题:下列给定程序中,函数f u n 的功能是:计算并输出h i g h 以内最大的1 0个素数之和。H i g h 由主函数传给f u n 函数。若 h i g h 的值为1 00,则函

9、数的值为7 3 2。f t i n c l u d e f t i n c l u d e f t i n c l u d e i n t f u n(i n t h i g h)(i n t s u m =0,n =0,j,y e s;w h i l e (h i g h =2)&(n 1 0)y e s =1;f o r (j=2;j=h i g h/2;j+)/*f o u n d*/i f (h i g h%j=0)y e s =0;b r e a k)i f (y e s)(s u m +=h i g h;n+;h i g h;)r e t u r n s u m;)m a i n

10、()(p r i n t f(%d n”,f u n (1 00);答案:b r e a k改为b r e a k;程序设计:请编写函数f u n,该函数的功能是:统计一行字符串中单词的个数,作为函数值返回。一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间由若干个空格隔开,一行的开始和结束都没有空格。#i n c l u d e#i n c l u d e#d e f i n e N 8 0i n t f u n (c h a r *s)m a i n ()(c h a r l i n e N;i n t n u m=0;F I LE *o u t;c h a r *t e s

11、t =H e l l o W o r l d!“T h i s i s a t e s ts t r i n g.z,,a b ,c d e f g,s f 1 ;p r i n t f(E n t e r a s t r i n g :n );g e t s (l i n e);n u m=f u n(l i 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);o u t=f o p e n(o u t.d a t ,w );f o r(n u m=0;n u m 4;n u m+)p r i n t f

12、(o u t,%d n”,f u n (t e s t n u m );fclose(out);第3套第一题:已知学生的记录由学号和学习成绩构成,N 名学生的数据已存入a 结构体中,给定程序的功能是找出成绩最低的学生记录,通过形参返回函数。请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。#include#include#define N 10typedef struct ss(char num10;int s;STU;fun(STU a,STU*s)(stu h;int i;h=a0;for(i=l;iN;i+)if(ai.s h.s)h=ai

13、;*s=_h;main()(STU aN=(AOI,81,A02,89,A03,66,A04,87,A05,77,A06,90,A07,79,A08,61,A09,80,A10,71,m;int i;printf(*The original data*n);for(i=0;iN;i+)printf(No=%s Mark=%dn,ai.num,ai.s);fun(a,&m);printf(*THE RESULT*n)printf(The lowest:%s,%dn,m.num,m.s);)第二题:下列给定程序中,函数fun的功能是:将字符串p 中的所有字符复制到字符串b中,要求每复制三个字符之后

14、插入一个空格。例如,在调用fun函数之前给字符串a 输入ABCDEFGHIJK,调用函数之后,字符串之后,字符串b中的内容则为ABCDEFGHIJK。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include void fun(char*p,char*b)(int i,k=0;while(*p)(/*)und*/i=0;/*found*/while(i3&*p)|b k=*p;k+;P+;i+;)/*Qund*/if(*p)b fk+l=)b k=0;)main()(char a80,b 80;printf(Enter a st

15、ring:);gets(a);printf(The original string:);puts(a);fun(a,b);printf(nThe string after insert space:);puts(b);printf(nn);)第三题:请编写一个函数fun,它的功能是:计算并输出给定整数n 的所有因子(不包括1与自身)之和。规定n 的值不大于1000。例如,若主函数从键盘给n 输入的值为8 5 6,则输出为sum=763o请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。#include int fun(int n)main()(int

16、n,sum;FILE*out;printf(Input n:);scanf(%d,&n);sum=fun(n);printf(sum=%dn,sum);out=fopen(out.dat,w);fprintf(out,%dn,fun(123);fprintf(out,%dn,fun(456);fprintf(out,%dn,fun(789);fprintf(out,%dn,fun(147);fprintf(out,%d,fun(258);fclose(out);)int fun(int n)(int s=0,i;for(i=2;i=n-l;i+)if(n%i=0)s+=i;return s;第

17、 4 套填空题请补充main函数,该函数的功能是:把字符串strl中的非空格字符拷贝到字符串str2中.例如,若 strl=,nice to meet you!”,则 str2=,nicetomeetyou!仅在横线上填入所编写的若干表达式或语句,勿改动函数中的其他任何内容.#include#define N 80main()(static char strlN=nice to meet you!;char str2N;int i=0,j=0;p rin tf n*str*nputs(strl);while(strli)(if(1)str2j+=strli;2;)p r in tf(*str2

18、*nfor(i=0;ij;i+)printf(%c,str2i);)改错题下列给定程序中,函 数fun的功能是:将大写字母转换为对应小写字母之后的第五个字母;若小写字母为vz,使小写字母的值减21.转换后的小写字母作为函数值返回例如,若形参是字母A,则转换字母为小写字母f;若形参是字母W,则转换为小写字母b.请改正函数fun中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!#include#include char fun(char c)(/*found*/if(c=A&c=a&c=v&c=z)c=c-21;return c;)main()(ch

19、ar cl,c2;printf(nEnter a letter(A-Z):);cl=getchar();if(isupper(cl)(c2=fun(cl);printf(nnThe letter%c change to%cn,cl,c2);)else(printf(nEnter(A-Z)!n);)编程题请编写函数fu n,其功能是:将 s 所指字符串中ASCII值为奇数的字符删除,串中剩余字符形成一个新串放在t 所指的数组中。例如,若 s 所指字符串中的内容为ABCDEFG12345,其中字符A 的ASCII码值为奇数、.、字符1 的ASCII码值也为奇数、都应当删除,其他依次类推。最后 t

20、所指的叔祖中的内容应是BDF24o请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。#include#include#include void fun(char*s,char t)()main()char s100,t100,Msg=Please enter string S:;FILE*out;printf(Msg);scanf(%s,s);fun(s,t);printf(nThe result is:%sn,t);out=fopen(out.dat,w);fun(Msg,t);fprintf(out,%s,t);fclose(out);)答案:第一

21、题:第 1 处填空 strli!=或!=strli第 2 处填空i+或+i或 i+=l或 i=i+l第二题:第 1 处:c=c-32;应改为 c=c+32;第 2 处:c=c-5;应改为c=c+5;第三题:void fun(charts,char t)(int I,j=0,n;n=strlen(s);for(i=0;in;i+)if(si%2=0)(j+;)第5套填空题请补充main函数,该函数的功能是:输出一个N*N矩阵,要求非周边元素赋值0,周边元素赋值1。仅在横线上填入所编写的若干表达式或语句,勿改动函数中的其他内容。#include#define N 10main()(int b b

22、NJN;int i,j,n;printf(nlnput n:n);scanf(%d,&n);for(i=0;in;i+)for(j=0;jn;j+)(if(i=0|i=n-1|(j=OHj=n-1)else 2;)printf(n*the result*n);for(i=0;in;i+)(printf(nn);for(j=0;jn;j+)printf(%4d,b b ij);)改错题下列给定程序中函数fu n的功能是:从低位开始取出长整型变量s中奇数位上的数,依次构成一个新数放在t中,例如,当s中的数为7654321时,t中的数为7531。请改正程序中的错误,使它能得出正确的结果。注意:不要改

23、动m ain函数,不得增行或删行,也不得更改程序的结构!#include#include/*found*/void fun(long s,long t),long si=10;*t=s%10;while(s 0)(s=s/100;*t=s%10*sl+*t;/*found*/si=si*100;)main()(long s,t;printf(nPlease enter s:);scanf(%ld,&s);fun(s,&t);printf(The result is:%ldn,t);)编程题请编写函数f u n,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的

24、十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的十位和千位上。例 如,当a=45,b=1 2,调用该函数后,c=2415o请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。#include#include void fun(int a,int b,long*c)main()(int a,b;long c;FILE*out;printf(Input a,b;);scanf(%d%d,&a,&b);fun(a,b,&c);printf(The result is:%Idn,c);out=fopen(out.dat,w);for(a=

25、20;a 50;a+=3)fun(a,109-a,&c);fprintf(out,%ldn,c);)fclose(out);答案第一题(填空题)第 1 处填空:b b ij=l第 2 处填空:b b ij=O第二题(改错题)第 1 处:void fun(long s,long t)应改为 void fun(long s,long*t)第 2 处:sl=sl*100;应改为 sl=sl*10;第三题(编程题)void fun(int a,int b,long*c)(一*c=(b%10)1000+(a/10)*100+(b/10)*10+a%10;)第6套填空题给定程序的功能是计算并输出下列级数的

26、前N 项之和除,直到SN大于Q 为止,Q 的值通过形参传入。例如,若 Q 的值为50.0,则函数值为50.416687-请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。试题程序:#include doub le fun(doub le q)(in t n;doub le s;n=2;s=2.0;w hile(s 1 q)(s=s+(doub le)(n+1)/n;2;p r i n t f(n=%d n ,n);3 ;m a i n()p r i n t f(%f n ,f u n (5 0);)第1处填空:=第2处填空:n+或n+=l或n=n

27、+l第 3 处填空:return s 或 return(s)改错题下列给定程序中,函数fun的功能是:根据整型参m的值,计算如下公式的值。例如,若m中的值为5,则应输出:0.536389请改正程序中的错误,使程序能得出正确的结果。注意:不要改动m ain函数,不得增行或删行,也不得更改程序的结构!试题程序:#i n c l u d e#i n c l u d e d o u b l e f u n (i n t m)(d o u b l e y=1.0;i n t i;I*f o u n c i*/f o r (i=2;i m;i+)/*/y _=1/(i*i);r e t u r n(y);

28、)m a i n()i n t n =5;p r i n t f(n T h e r e su l t i s%l f n ,f u n (n);)第 1 处:for(i=2;im;i+)应改为 for(i=2;i=m;j+)第 2 处:y-=l/(i*i);应改为 y-=1.0/(i*i)编程题请编写一个函数void fun(char a,char b,int n),其功能是:删除一个字符串中指定下标的字符。其中,a 指向原字符串,删除后的字符串存放在b所指的数组中,n 中存放指定的下标。例如,输入一个字符串W orld,然后输入3,则调用该函数后的结果为Wordo注意:部分源程序给出如下。

29、请勿改动主函数main和其他函数中的任何内容,仅在函数fu n 的花括号中填入所编写的若干语句。试题程序:#include#include#define LEN 20void fun(char a,char b ,int n)main()char strlLEN,str2LEN;int n;FILE*out;printf(Enter the string:n);gets(strl);printf(Enter the position of the stringdeleted:);scanf(%d,&n);fun(strlA str2,n);printf(The new string is:%s

30、n,str2);fun(Hello World!,str2,9);out=fopen(out.daf,w);fprintf(out,%s,str2);fclose(out);)答案是:void fun(char a,char b,int n)(int I,j=0;for(i=0;iLEN;i+)if(i!=n)b j=ai;j+;bj=0;第 7 套填空题函数fun的功能是:统计长整数n 的各个位上出现数字1,2,3 的次数,并通过外部(全局)变量cl,c2,c3返回主函数。例如,当=123114350 时,结果应该为:cl=3,c2=l,c3=2.注意:部分源程序给出如下。请勿改动主函数ma

31、in和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。试题程序如下:#include int cl,c2,c3;void fun(long n)(cl=c2=c3=0;while(n)switch(1)(case 1:cl+;2;case 2:c2+;3;case 3:c3+;)n/=10;)main()long n=123114350L;fun(n);printf(nThe result:n);p r i n t f(n=%l d c l=%d c 2=%d c 3=%d n”,n,c l,c 2,c 3);)第1处填空:n%1 0第2处填空:b r e a k第3

32、处填空:break改错题下列给定程序中函数fun的功能是:用选择法对数组中的n个元素按从小到大的顺序进行排序。请改正程序中的错误,使程序能得出正确的结果。注意:不要改动m ai n函数,不得增行或删行,也不得更改程序的结构!试题程序:#i nclude#defi ne N 2 0voi d f u n(i nt a ,i nt n)i nt i,j,t,p;for(j=0;j n-l;j+)/丈 大 丈 夫 夫 *fc)und 夫 夫1p=jfor(i=j;i n;i +)i f(ai ap)(/*found*/P=i;t=a p;a p=a i;a i =t;)m a i n()(i nt

33、a N=9,6,8,3,-1 ,i,m =5;pri ntf(AAD oQ );for(i=0;i m;i+)pri ntf(n%d,a i);pri ntf(n);fun(a,m);pri ntf(nAAD do6 o);for(i=0;im;i+)printf(%d,a i);printf(n);)第 1处:p=j应改为p=j;第 2 处:p=i 应改为p=j;编程题请编写一个函数int fun(int*s,int t,int*k),用来求出数组的最大元素在数组中的下标并存放在k 所指的存储单位中。例如,输入如下整数:876 675 896 101 301 401 980 431 451

34、777则输出结果为:6,980o注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include#include void fun(int*s,int t,int*k)main()inta10=876,675,896,101,301,401,980,431,451,777,k;FILE*out;fun(a,10,&k);printf(%d,%dn,k,ak);out=fopen(out.dat,w);fprintf(out,%dn%ci,k,a k);fclose(out);)答案是:void fun(int*s,

35、int t,int*k)(int I,max;max=s0;for(i=0;imax)max=si;*k=I;)第8套填空题请补充m ain函数,该函数的功能是:从键盘输入一组整数,使用条件表达式找出最大的整数。当输入的整数为。时结束。例如,输入1 23 5 4 0时 一,最大的数为5。请勿改动主函数m ain和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。试题程序:#include#include#define N 100main()(int numN;int i=-1;int max=0;printf(nlnput integer number:n);do|i+

36、;printf(num%d=,i);scanf(%d,_ 1_);max=_ 2_ num i :max;while(3);printf(max=%dn,max);)第1处填空:&numi或num+i第 2 处填空:maxmax?第 3 处填空:numi!=0 或 0!=numi改错题下列给定程序中,函数fun的功能是:在字符串str中找出ASCII码值最大的字符,将其放在第一个位置上;并将该字符前的原字符向后顺序移动。例如,调用fun函数之前给字符串输入:ABCDeFGH,调用后字符串中的内容为eABCDFGH请改正程序中的错误,使程序能得出正确的结果。注意:不要改动main函数,不得增行或

37、删行,也不得更改程序的结构!试题程序:#include/*found*1void fun(char*p);(char max,*q;int i=0;max=p i;while(pi !=0)if(max p)(*q=*(q-1);q-;)p 0=max;main()char str80;printf(Enter a string:);gets(str);printf(nThe original string:);puts(str);fun(str);printf(nThe string after moving:);puts(str);printf(nn);第 1 处:void fun(cha

38、r*p);应改为 void fun(char*第2处:p=q+I;应改为q=p+i;编程题编写函数f u n,函数功能是:根据以下公式计算数值返回;n通过型参传入。11s,计算结果作为函s=1+;+.+-;-1 +2 1 +2+3 1 +2+3+.J2例如:若n的值为11时,函数的值为1.833333。注意:部分源程序给出如下。请勿改动主函数m ain和其他函数中的任何内容,仅在函数fu n的花括号中填入所编写的若干语句。试题程序:#include#include#includefloat fun(int n)main()int n;float s;FILE*out;printf(nPleas

39、e enter N:);scanf(%d,&n);s=fun(n);printf(The result is:%fn,s);s=fun(28);out=fopen(out.dat,w);fprintf(out,%f,s);fclose(out);)答案是:float fun(int n)int i;float s=l.O,t=l.O;for(i=2;i=n;i+)(t=t+i;s=s+l/t;)return s;第9套填空题给定程序的功能是分别统计字符串中大写字母和小写字母的个数。例如,给字符串S S 输入:AaaaBBb l23CCccccd,则输出结果应为:upper=5,lower=9。

40、请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。试题程序:#include void fun(char s,int*a,int*b)while(*s)if(*s=1A*&*s=*a*&*s=*z *)2;s+;)main()char s 100;int upper=0,lower=0;printf(nPlease a string:);gets(s);fun(s,Supper,slower);printf(n upper=%d lower=%dn,3);第 1 处填空:(*a)+或+(*a)或*a=*a+l 或*a+=l第 2 处填空:(*b)

41、+或+(*b)或*b=*b+l 或*b+=l第 3 处填空:upper,lower改错题下列给定程序中,函数fun的功能是:从n 个学生的成绩中统计出低于平均分的学生人数,此人数由函数值返回,平均分存放在行参aver所指的存储单元中。例如,若输入8 名学生的成绩:80.5 60 72 90.5 98 51.5 88 64则低于平均分的学生人数为4(平均分为:75.5625).请改正程序中的错误,使程序能统计出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include#include#define N 20int fun(float*s,int n,

42、float*aver)float ave,t=0.0;int count=0,k,i;/*found*/for(k=0;kn;k+)t=sk;ave=t/n;for(i=0;in;i+)if(si ave)count+;I*found*I*aver=&ave;return count;)main()float s 30,aver;int m,i;printf(nPlease enter m:);scanf(n%d,&m);printf(nPlease enter%d mark:n,m);for(i=0;in。P=_及!(加 一 )!例如:m=12,n=8时,运行结果为495.000000注意:

43、部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include#include float fun(int m,int n)main()(FILE*out;printf(P=%fn,fun(12,8);out=fopen(out.dat,w);fprintf(out,%f,fun(12,6);fclose(out);)答案是:float fun(int m,int n)(float p,t=1.0;int i;for(i=l;i=m;i+)t=t*i;p=t;for(t=1.0,i=l;i=n;i+)t=t*i;p=p

44、/t;for(t=1.0,i=1 ;i =m-n;i+)t=t*i;p=p/t;return p;)第10套填空题请补充m ai n函数,该函数的功能是:从键盘键盘输入3个整数然后找出最大的数并输出。例如,输入:1 2 4 5 4 3,输出为4 5注意:部分源程序给出如下。仅在横线上填入所编写的若干表达式或语句,勿改动函数中的其他任何内容。试题程序:#i nclude#i nclude m ai n()i nt a,b,c,m ax;pri ntf(nlnput th ree num bers:n);scanf(%dz%d,%d,&a,&b,&c);pri ntf(Th e th ree nu

45、m bers are:%d,%d,%dn,a,b,c);i f(a b)1;else 2;i f(m ax c)3;pri ntf(m ax=%dn,m ax);)第 1 处填空:m ax=a第 2处填空:m ax=b第 3 处填空:m ax=c改错题下列给定程序中,函数fun的功能是:将 s所指字符串出现的tl所指子串全部替换成t2 所指子字符串,错形成的新串放在w所指的数组中。在此处,要求t l和 t 2 所指字符串的长度相同。例如,当 s 所指字符串的内容为ab c d ab fab,t l所指子串中的内容为ab,t 2 所指子串中的内容为9 9 时;结果,在 w所指的数组中的内容为9

46、9 c d 9 9 f9 9。请改正程序中的错误,使程序能得出正确的结果。注意:不要改动mai n 函数,不得增行或删行,也不得更改程序的结构!试题程序:#i n c lu d e#i n c lu d e#i n c lu d e /*fo u n d*/v o i d fu n(c har s,*t 1,*t 2,*w)i n t i;c har *p,r f*a;s t r c p y(w,s);w hi le (*w)|p =w;r =t l;/丈 大 丈 夫 夫 *fc)u n d 夫 夫 文 /w hi le (r)i f(*r =*p)(r+;p+;)e ls e(b r e a

47、k;)i f(*r 10 1)(a=w;r =t 2;w hi le (*r)(*a=*r;a+;r+;)w +=s t r le n(t 2);elsew+;)main()(char s 100z tl 100,t2 100,w100;printf(nPlease enter string s:);scanf(%s,s);printf(nPlease enter substring tl:);scanf(%s,tl);printf(nPlease enter substring t2:);scanf(%sn,t2);if(strlen(tl)=strlen(t2)fun(s,tl,t2,w)

48、;printf(nThe result is:%sn,w);)elseprintf(Error:strlen(tl)!=strlen(t2)n);)第 1 处:v o i d fu n(c har *s,*t l,*t 2,*w)应改为 v o i d fu n(c har *s,c har*t l,c har *t 2,c har *w)第 2 处:w hi le(r)应改为 w hi le(*r)编程题编写函数f u n,它的功能是:利用以下所示的简单迭代方法求方程式c o s(x)-x=0的一个实根。X“M=c o s(X“)迭代步骤如下:(1)取X 1初值为0.0;(2)x O=x l

49、,把xl的值赋给x 0;(3)x l=c o s(x 0),求出一个新的 x l;(4)若x O-x l,的绝对值小于0.0 0 0 0 0 1,则执行步骤(5),否则执行步 骤(2);(5)所 求x l就是方程c o s(x)-x=0的一个实根,作为函数值返回。程序将输出结果Root=0.739085o注意:部分源程序给出如下。请勿改动主函数m ain和其他函数中的任何内容,仅在函数fu n 的花括号中填入所编写的若干语句。试题程序:#include#include#include float fun()main()FILE*out;float f=fun();printf(Root=%fn

50、,f);out=fopen(out.dat,w);fprintf(out,%f ,f);fclose(out);)答案是:float fun()(float xl=0.0,x0;do(xO=xl;xl=cos(xO);)while(fab s(xO-x 1)=le-6);return xl;)第 11套填空题给定程序中,涵 数 fun的功能是:把形参s 所指字符串中下标为奇数的字符右移到下一个奇数位置,最右边被移出字符串的字符串的字符绕回放到第一个奇数位置,下标为偶数的字符不动(注:字符串的长度大于等于2)例如,形参s所指的字符串为:ab cdefgh,执行结果为:ahcb edgf.注意:部

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

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

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com