《考试大论坛:2011年计算机二级C语言99套上机操作题及答案.pdf》由会员分享,可在线阅读,更多相关《考试大论坛:2011年计算机二级C语言99套上机操作题及答案.pdf(98页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、.第1套注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。试题程序:#include long fun(int n)(if(一1一)return(n*fun(_ 2_);return _ 3_;main()(printf(n10!=%ldnn,fun(10);第1处填空:n l或ln第2处填空:n-1第3处填空:1或11或1L改错题下列给定程序的功能是:读入一个整数K(2=K(=10000),打印它的所有因子(即所有为素数的因子)。例如,若输入整数2310,则应输出:2、3、5、7、11。请改正程序中的错误,使程序能得出
2、正确的结果。注意:不要改动m ain函数,不得增行或删行,也不得更改程序的结构!试题程序:#include#include/*found*/IsPrime(int n);(int i,m;m=1;/*found*/for(i=2;in;i+)if!(n%i)(m=0;break;)return(m);main()(int j,k;printf(nnplease enter an integer numberbetween 2 and 10000:n);scanf(“告 d,&k);printf(n nnThe prime factor(s)of%d is(are):,k);for(j=2;jk
3、;j+)if(!(k%j)&(IsPrime(j)p r i n t f%4 d,”,j);printf(nn n);)第 1 处:Isprime(int n);应改为 Isprime(int n)第 2 处:if!(n%i)应该为 if(!(n%i)编程题M个人的成绩存放在score数组中,请编写函数fu n,它的功能是:返回低于平均分的认输,并将低于平均分的分数放在b elow所指的数组中。例如,当 score 数组中的数据为 10.20、30、4()、50、60、70、80、填空题请补充FUN函数,FUN函数的功能是求10的阶乘。9 0时,函数返回的认输应该是4,b elow中的数据应我
4、10、20、30、40o注意:部分源程序给出如下。请勿改动主:函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include#include#include int fun(int score,int m,int below)main()int i,n,below9;int score9=10,20,30,40,50,60,70,80,90;FILE*out;n=fun(score,9,below);printf(HnBelow the average score are:);out=fopen(nout.dat,n w);for(i=0;in;i
5、+)(printf(%d n,belowi);fprintf(out,“3dn,belowi);)fclose(out);)答案是:int fun(int score,int m,int b elow)(int I,k=0,aver=0;for(i=0;im;i+)aver+=scorei;aver/=m;for(i=0;im;i+)if(score|i|aver)(b elow(k=scorei;k+;)return k;)第2套填空题请在函数FU N的横线上填写若干表达式,使从键盘上输入一个整数N,输出斐波纳契数列。斐波纳契数列是一种整数数列,其中每数等于前面两数之和,如:0 1 1 2
6、3 5 8 13.请勿改动主函数m ain和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。试题程序:#include int fun(int n);main()int i,n=0;scanf(%dnz&n);for(i=0;in;i+)printf(H%d”,fun(i);)int fun(int n)if(一1一)return 0;else if(_ 2_)return 1;elsereturn _ 3_;)第1处填空:n=0或0=n或!n第2处填空:n=l或l=n第 3 处填 空:f u n(n-l)+f u n(n-2)或 f u n(n-2)+f u n(n
7、-1)改错题下列给定程序中,函数FUN的功能是:逐个比较a、b两个字符串对应位置中的字符,把A S C I I值大或相等的字符依次存放到c数组中,形成一个新的字符串。例如,若a中的字符串为aB C D e F g H.b中的字符串为:A B c d,则c中的字符串应为:aB cd e F g H。请改正程序中的错误,使程序能得出正确的结果。注意:不要改动m a i n函数,不得增行或删行,也不得更改程序的结构!试题程序:#include#include string.hvoid fun(char*p,char*q,char*c)(/*found*/int k=1;/*found*/while(
8、*p!=*q)(if(*p *q)ck=*q;elsec k=*p;if(*p)P+;if(*q)q+;k+;main()(char a 10 =aBCDeFgH”,b 10 =ABcd”,c 80=QO;fun(a,b,c);printf(nThe string a:“);puts(a);printf(The string b:H);puts(b);printf(nThe result:;put s(c);第1处:i n t k=l应改为i n t k=O;第 2 处:w h i l e(*p!二*q)应改为 w h i l c(*p l l*q)编程题清编写函数f u n,它的功能是:求出
9、1至IJ 1 0 0 0之内能被7或1 1整除、但不能同时被7或1 1整除的所有整数并将它们放在a所指的数组中,通过n返回这些数的个数。注意:部分源程序给出如下。请勿改动主函数m ai n和其他函数中的任何内容,仅在函数f u n的花括号中填入所编写的若干语句。试题程序:#include#include void fun(int*arint*n)(main()int a a 1000,n,k;FILE*out;fun(aa,&n);out=f open(out.dat11,nwH);for(k=0;kn;k+)i f(k+1)%10=0)(printf(n%5dnaak);fprintf(ou
10、t,%dnH,aa k);else(printf(n%5d,H,aak);fprintf(out,*%dz ,aa k);fclose(out);)答案是:v o i d f u n(i n t *a,i n t *n)i n t i,j=0;f o r(i=2;i 1 0 0 0;i+)i f(i%7=0 l l i%l l=0)&i%77!=0)a j+=i;*n=j;)第3套填空题请补充函数F U N(C H A R *S),该函数的功能是把字符串中的内容逆置.例如:字符串中原有的字符串为ab cd e,则调用该函数后,串中的内容为e d cb a.请勿改动主函数m a i n和其他函数
11、中的任何内容,仅在f u n函数的横线上填入所编写的若干表达式或语句。试题程序:#include#include#include#define N 81void fun(char*s)int i,n=strlen(s)-1;char t;for(i=0;in;i+,_ 1_)(t=s i;_ 2_;_ 3_;)main()(char a N;printf(HEnter a string:n);gets(a);printf(nThe original string is:);puts(a);fun(a);printf(1 1 n);printf(The string after modified
12、:);puts(a);)第1处填空:n-或-n或n-=1或门=!1-1第 2 处填空:s i =s n 或*(s+i)=*(s+n)第 3 处填空:s n =t 或*(s+n)=t1改错题下列给定的程序中,函数f u n的功能是:依次取出字符串中所以数字字符,形成新的字符串,并取代原字符串。请改正函数f u n中的错误,使程序能得出正确的结果。注意:不要改动m a i n函数,不得增行或删行,也不得更改程序的结构!试题程序:#i n cl u d e#i n cl u d e v o i d f u n(ch ar *s)(i n t i,j;/*f o u r i d*/f o r (i=0
13、,j=0;s i !=0 *;i +)i f (s j =0*&s i =9,)s j =s i ;/*f o u n d*/s j =0 n;m ai n ()(ch ar i t e m 8 0 ;p r i n t f(H n E n t e r a s t r i n g :g e t s(i t e m);p r i n t f(n n n T h e s t r i n g i s :%s n ,i t e m);f u n(i t e m);p r i n t f(M n n T h e s t r i n g o f ch an g i n g i s :%s nH,i t e
14、 m);)第 1 处:s =s i ;应改为 s j+=s i 第 2 处:应改为 s j =,o,;编程题请编写函数v o i d fu n(i n t x j n t p p ,i n t *n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在p p所指的数组中,这些除数的个数通过形参n返回.例如,若x中的值为3 0,则 有4个数符合耍求,它们 是1,3,5,1 5.注意:部分源程序给出如鼠请勿改动主函数m a i n和其他函数中的任何内容,仅在函数fu n的花括号中填入所编写的若干语句。试题程 序:#i n c l u d e#i n c l u d e v o i
15、d fu n(i n t x,i n t p p ,i n t *n)(m a i n ()(i n t x,a a 1 0 0 0 ,n,i;F I L E *o u t;p r i n t f(n n Pl ea s e en t er a n i n t eg er n u m b e r:nn);s c a n f(%d,&x);fu n(x,a a,&n);fo r(i=0;i n;i+)p r i n t f(n%d ”,a a i );p r i n t f(n nn);f u n(7 3 0,a a,&n);o u t =f o p e n(H o u t.d a tH,n w
16、 H;fo r (i =0;i n;i+)fp r i n t f(o u t,“彩d n”,a a i );fc l o s e(o u t);答案是:v o i d fu n(i n t x j n t p p ,i n t *n)i n t i=l,j=O,k=O,*t=p p;fb r(i=O;i =x;i+)i f(i%2!=0)j+;)fd r(i=O;i j;i+)i f(x%t i =O)(p p k =t i ;k+;)*n=k;)第4套填空题请补充函数FUN,它的功能是:计算并输出N(包括N)以内能被3或7整除的所有自然数的倒数之和。例如,在主函数中从键盘给N输入30后,输
17、出为:S=l.2 2 6 3 2 3。请勿改动主函数m a i n和其他函数中的任何内容,仅在f u n函数的横线上填入所编写的若干表达式或语句。试题程序:#i n c l u d e d o u b l e fu n i n t n)|i n t i;d o u b l e s u m =0.0;fo r (i=l;_ _ _ _ 1 _ _ _ _;i+)i f(i%3=0 _ _ _ _ 2 _ _ _ _ i%7=0)s u m +=_ _ _ _ 3 _ _ _ _/i;r et u r n s u m;)m a i n()i n t n;d o u b l e s;p r i n
18、t f(X n l n p u t n:);s c a n f(%dn,&n);s =fu n(n);p r i n t f(n n n s=%f nn,s);)第1处填空:i v=n或n =i第2处填空:II第3处填空:1.0或(d o u b l e)1改错题卜列给定程序中,f u n函数的功能是:分别统计字符串中大写字母和小写字母的个数。例如,给字符串s输入:A a a a B B b l 2 3 C C c c c c d,则应输出结果:u p p er=6,l o w er=8请改正程序中的错误,使程序能得出正确的结果。注意:不要改动m a i n函数,不得增行或删行,也不得更改程序
19、的结构!试题程序:#i n c l u d e#i n c l u d e/*fo u n d*/v o i d fu n(c h a r *s,i n t a,i n t b)w h i l e(*s)(/*fo u n d*/i f(*s =fA&*s =*a 1&*s =*z1)b+;s +;2)main()(char s 100;int upper=0,lower=0;printf(nnPlease a string:n);gets(s);fun(s,Supper,Slower);printf(*n upper=%d lower=%dnn,upper,lower);第 1 处:void
20、 fun(char*s,int a,int b)应改为 void fun(char*s,int*a,int*b)第 2 处:a+;应改为(*a)+;第 3 处:b+;应改为(*b)+;编程题清编写一个函数void fun(char*tt,int p p),统计在H字符串中“a”到“z”2 6 个字母各自出现的次数,并依次存放在p p 所指数组中。例如,当输入字符串ab cdefgab cdeab c后,程序的输出结果应该是:333221100000(X)0000(X)000(X)0注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语
21、句。试题程序:#include#include void fun(char*tt,int pp)main()(char aa1000;int bb26,k;FILE*out;printf(nnPlease enter a char string:n);scanf(%s,aa);fun(aa,bb);for(k=0;k26;k+)printf(n%d,f,bbk);printf(nn n);fun(a bosom friend afar brings a distant landnear1,bb);out=fopen(out.dat,n w n);for(k=0;k 26;k+)fprintf(
22、out,“告 dn”,bb(k);fclose(out);答案是:void fun(char*tt,int pp)fint I;for(i=0;i26;i+)Ppi=O;while(*tt)switch(*tt)(case a:ppO+;b reak;case b:ppl+;b reak;case c,:pp2+;b reak;case,d,:pp3+;b reak;case?e,:pp4+;b reak;case,f,:pp5+;b reak;case,g,:pp6+;b reak;case,h,:pp7+:b reak;case,i,:pp8+;b reak;case,j,:pp9+;b
23、reak;case k:pp10+;b reak;case T :ppll+;b reak;case Jii:pp12+;b rcak;case n:pp 13+;b reak;case,o,:pp14+;b reak;case p:pp 15+;b reak;case,q,:pp16+;b reak;case,r,:pp17+;b reak:case s:pp18+;b reak;case t:pp19+;b reak;case,upp20+;b reak;case,v,:pp21+;b reak;case,w,:pp22+;b reak;case,xpp23+;b reak;case,y,
24、:pp24+;b reak;case,z,:pp25+;b reak;)tt+;)第 5套填空题给定程序的功能是求二分之的圆面积,函数通过形参得到圆的半径,函数返叵I二分之一的圆面积(注:圆面积公式为:S=欣,在程序中定义的变量名要与公式的变量相同)。例如,输入圆的半径值:19.527,输出为:S=598.950017。请勿改动主函数m ain和其他函数中的任何内容,仅 在 fu n 函数的横线上填入所编写的若干表达式或语句。试题程序:include double fun(double r)return 3.14159*_1_/2.0;)main()double x;printf(,fEnte
25、r x:n);scanf_2_);printf(s=%lfn,fun(_3_);)第 1 处填空:r*r第 2 处填空:&x第 3 处填空:x改错题假定整数数列中的数不重复,并存放在数组中。下列给顶程序中,函数fun的功能是删除数列中值为x 的元素,同时将其他元素前移。N 中存放的是数列中元素的个数。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include#define N 20fun(int*a,int n,int x)int p=0,i;a n=x;while(x!=ap)P=p+1;if(p=n)3return
26、-1;)else(/*found*/for(i=p;in;i+)ai+1=a i;return n-1;main()(int wN=-3,0,1,5,7,99,10,15,30,90,x,n,i;n=10;printf(nThe original data:n);for(i=0;in;i+)printf(n%5dn,w i);printf(Mnlnput x(to delete):n);scanf(“告d”,&x);printf(nDelete:%dn,x);n=fun(w,n,x);if(n=-1)printf(n*Not be found!*nnn);else(printf(The dat
27、a after delete:n);for(i=0;in;i+)printf(告5d,w i);printf(n nnf,);)第 1 处:ai+l=ai;应改为 ai=ai+l编程题请编写一个函数void fun(int m,int k,int xx),该函数的功能是:将大于整数m且紧靠m的k个素数存入xx所指的数组中。例如,若输入:17,5,则应输出:19,23,29,31,37。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include#include void fun(int m,int k,int
28、xx)main()(int m,n,zz1000;FILE*out;printf(HnPlease enter two integers:);scanf(%d,宅d,&m,&n);fun(m,nz zz);for(m=0;mn;m+)printf(n%d”,zzm);printf(Mnn);fun(28,20,zz);out=fopen(out.dat,w);for(m=0;m 20;m+)fprintf(out,n%dnn,zzm);fclose(out);)答案是:void fun(int m,int k,int xx)(int g=O,I,j,flag=l;for(i=m+l;im*m;
29、i+)(for(j=2y=i)(if(k=0)xxg+=I;k-S)elseb reak;)第6套填空题给定程序的功能是计算并输出下列级数的前N项之和S y,直到SN大于Q为止,Q的值通过形参传入。例如,若Q的值为50.0,则函数值为50.416687.请勿改动主函数m ain和其他函数中的任何内容,仅在fu n函数的横线上填入所编写的若干表达式或语句。试题程序:#include double fun(double q)int n;double s;n=2;s=2.0;while(s _ 1_ q)(s=s+(double)(n+1)/n;_ 2_;)printf(nn=%dnn,n);_ 3
30、_;)main()printf(w%fnnz fun(50);)第1处填空:=第2处填空:n+或n+=l或n=n+l第 3 处填空:return s 或 return(s)改错题下列给定程序中,函数fi r n 的功能是:根据整型参m的值,计算如下公式的值。例如,若m中的值为5,则应输出:0.536389请改正程序中的错误,使程序能得出正确的结果。注意:不要改动m ain函数,不得增行或删行,也不得更改程4序的结构!试题程序:#include#include double fun(int m)(double y=1.0;int i;/*found*/for(i=2;im;i+)/*found*
31、/y-=1/(i*i);return(y);main()(int n=5;printf(1 1 nThe result is%lfnH,fun(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(chara,charb,intn),其功能是:删除一个字符串中指定下标的字符。其中,a指向原字符串,删除后的字符串存放在b所指的数组中,n中存放指定的下标。例如,输入一个字符串W orld,然后输入3,则调用该函数后的结果为Wordo注意:部分源程序给出如下。清勿改动
32、主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题不呈序:#include#include#define LEN 20void fun(char a,char b,int n)main()(char strlLEN,str2LEN;int n;FILE*out;printf(Enter the string:nH);gets(str1);printf(Enter the position of the stringdeleted:);scanf(n%dH,&n);fun(strl,str2,n);printf(*The new string is:%snn
33、z str2);fun(Hello World!,str2,9);out=f open(*out.dat ,*w *);fprintf(out,str2);fclose(out);答案是:void fun(char a,char b,int n)(int I,j=0;for(i=0;iLEN;i+)if(i!=n)(b U=ai;j+;)b UKO;)第7套填空题函数fun的功能是:统计长整数n的各个位上出现数字1,2,3的次数,并通过外部(全局)变量cl,c2,c3返回主函数。例如,当=123114350 时,结果应该为:cl=3,c2=l,c3=2.注意:部分源程序给出如下。清勿改动主函数
34、main和其他函数中的任何内容,仅在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(nnThe result:nn);printf(Hn=%ld cl=%d c2=%d c3s=%dn,n,cl,c2,c3);第1处填空:n%10第2处填空:b reak第3处填空:b
35、reak改错题卜.列给定程序中函数fun的功能是:用选择法对数组中的n个元素按从小到大的顺序进行排序。请改正程序中的错误,使程序能得出正确的结果。注意:不要改动m ain函数,不得增行或删行,也不得更改程序的结构!试题程序:#include#define N 20void fun(int a z int n)int i,j,t,p;for(j=0;jn-l;j+)(/*found*/P=jfor(i=j;in;i+)if(ai ap)(/*found*/P=i;t=a p;a p=a i;ai=t;5)例如,输入1 2 3 5 4 0时,最大的数为5。笫第main()int a N=9,6,8
36、,3,-1),i,m=5;printf(,AA)dQ0o n);for(i=0;im;i+)printf(n%d,n,ai);printf(nn n);fun(a,m);printf(,AABdodo);for(i=0;im;i+)printf(”d,ai);printf(*nn);1处:p =j应改为p=j;2处:p =i应改为p=j;编程题请编写一个函数i n t fu n(i n t*s,i n t t,i n t*k),用来求出数组的最大元素在数组中的卜.标并存放在k所指的存储单位中。例如,输入如下整数:87 6 6 7 5 89 6 1 0 1 3 0 1 4 0 1 9 80 4
37、3 1 4 5 1 7 7 7则输出结果为:6,9 8 0 o注意:部分源程序给出如下。请勿改动主函数m a i n和其他函数中的任何内容,仅在函数f u n的花括号中填入所编写的若干语句。试题程序:#include#include void fun(int*s,int t,int*k)main()(inta 10=876,675,896,101,301,401,980,431,451,777),k;FILE*out;fun(a,10,&k);printf(n%dz%dn,k,a k);out=fopen(nout.dat,w);fprintf(out,%dn%d,k,ak);fclose(o
38、ut);答案是:v o i d fu n (i n t *s.i n t t,i n t *k)fi n t I ,m ax;m ax=s 0 ;fo r(i=0;i m ax)(m ax=s i ;*k=I;)第8套填空题请补充m a i n函数,该函数的功能是:从键盘输入组整数,使用条件表达式找出最大的整数。当输入的整数为。时结束。请勿改动主函数m a i n和其他函数中的任何内容,仅在f u n函数的横线上填入所编写的若干表达式或语句。试题程序:#include#include#def ine N 100main()int numN;int i=-1;int max=0;printf(n
39、nlnput integer number:n*);do(i+;printf(nnum%d=n,i);scanf(dl _1_);max=_2_ numi :max;while(_3_);printf(nmax=%dnn,max);)第1处填空:&n u m i 或n u m+i第 2 处填空:m ax m ax?第 3 处填空:n u m i !=0 或 0!=n u m i 改错题下列给定程序中,函数f u n的功能是:在字符串s t r中找出A S C I I码值最大的字符,将其放在第一个位置I:;并将该字符前的原字符向后顺序移动。例如,调用fu n函数之前给字符串输入:ABCDe FG
40、H,调用后字符串中的内容为e ABCDFGH请改正程序中的错误,使程序能得出正确的结果。注意:不要改动m a in函数,不得增行或删行,也不得更改程序的结构!试题程序:#include/*found*/void 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(MnThe original string:H;puts(str);fun(str);printf(
41、nThe string after moving:n);puts(str);6p r i n t f(*n n );i f&*s =*a,&*s =z,)一2一;S +;编程题编写函数fu n,函数功能是:根据以下公式计算s,数值返回;n通过型参传入。计算结果作为函)m ai n ()(1 1 1ch ar s 1 0 0 ;1 +2 1 +2+3 1 +2+3+例 如:若n的值为1 1时,函数的值为1.83 3 3 3 3。注意:部分源程序给出如下。请勿改动主函数m ai n和其他函数中的任何内容,仅在函数fu n的花括号中填入所编写的若干语句。试题程序:#i n cl u de#i n c
42、l u de#i n cl u dei n t u p p er =0,l o w er =0;p r i n t f(H n P l eas e a s t r i n g :);g et s (s);fu n (s,&u p p er,S l o w er);p r i n t f(1 1 n u p p er =%d l o w er =%d nn,_)第 1 处填空:(*a)+或+(*a*a=*a+l 或*a+=l第 2 处填空:(*b)+或+(*b)或*b=*b+l 或*b+=l第 3 处填空:u p p er,l o w er_3 _);fl o at fu n (i n t n)
43、(m ai n ()(i n t n;fl o at s;F I L E *o u t;p r i n t f(H n P l eas e en t er N:*);s canf(n%dn,&n);s=fun(n);改错题下列给定程序中,函数fun的功能是:从n个学生的成绩中统计出低于平均分的学生人数,此人数由函数值返回,平均分存放在行参av er所指的存储单元中。例如,若输入8名学生的成绩:8 0.5 6 0 7 2 9 0.5 9 8 5 1.5 8 8 6 4则低于平均分的学生人数为4 (平均分为:7 5.5 6 2 5).清改正程序中的错误,使程序能统计出正确的结果。p r i nt
44、f(nThe r es ul t i s:%f nn,s);s =fun(2 8);out =f op en(*out.dat ,*w *);fp r i nt f(out,f”,s);fcl os e(out);)答案是:fl oat fun(i nt n)fi nt i;fl oat s=1.0,t=1.0;for(i=2;i =n;i+)(t=t+i;s=s+l/t;)r et ur n s;1注意:不要改动mai n函数,不得增行或删行,也不得更改程序的结构!试题程序:#i ncl ude#i ncl ude#defi ne N 2 0i nt fun(fl oat *s,i nt n
45、,fl oat *av er)fl oat av e,t =0.0;i nt count =0,k,i;/*found*/for (k=0;k n;k+)t =s k ;av e=t/n;for (i=0;i n;i+)i f(s i av e)count+;/*found*/*av er =Sav e;r et ur n count;第9套填空题给定程序的功能是分别统计字符串中大写字母和小写字母的个数。例如,给字符串SS输入:A aaaB B bl 2 3 C C ccccd,则输出结果应为:up p er=5,I ow er=9 请勿改动主函数mai n和其他函数中的任何内容,仅 在fun
46、函数的横线上填入所编写的若干表达式或语句。试题程序:#i ncl ude v oi d fun(char *s,i nt i nt *b)(w hi l e(*s)(mai n()fl oat s 3 0 ,av er;i nt m,i;p r i nt f(n nPl eas e ent er m:*);s canf(%dn,&m);p r i nt f(H nPl eas e ent er%d mar k :n”,for (i=0;i n。mlP=-!(,”一 )!例如:m=12,n=8时,运行结果为495.000000注意:部分源程序给出如屋请勿改动主函数main和其他函数中的任何内容,
47、仅在函数fun的花括号中填入所编写的若干语句。试题程序:/include#include float fun(int m,int n)main()(FILE*out;printf(HP=%fnn,fun(12,8);out=f open(H out.datn,n w n);fprintf(out,fun(12,6);fclose(out);答案是:float fun(int m,int n)(float p,1=1.0;int i;for(i=l;i=m;i+)t=t*i;P=t;for(t=l,0,i=l;i=n;i+)p=p/t;for(t=l.0,i=l;i=m-n;i+)t=t*i;p
48、=p/l;return p;)第 10套填空题请补充main函数,该函数的功能是:从键盘键盘输入3 个整数然后找出最大的数并输出。例如,输入:12 45 4 3,输出为45注意:部分源程序给出如下。仅在横线上填入所编写的若干表达式或语句,勿改动函数中的其他任何内容。试题程序:#include#include main()(int a,b,c,max;printf(*nlnput three numbers:nn);scanf(%d,%dz%dn,&a,&b,&c);printf(nThe three numbers are:%dnnz a,b,c);if(a b)一1一;else_ 2_;if
49、(max c)一3一;printf(”max=dn,max);)第 1 处填空:max=a第2 处填空:max=b第 3 处填空:max=c改错题下列给定程序中,函数fun的功能是:将 s 所指字符串出现的t l 所指子中全部替换成12所指子字符串,错形成的新串放在w 所指的数组中。在此处,要求t l 和 t2所指字符串的长度相同。例如,当s所指字符串的内容为ab cdab fab,tl所指子串中的内容为ab,t2所指子串中的内容为9 9 时,结果,在 w 所指的数组中的内容为99cd99f99。请改正程序中的错误,使程序能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不得更改
50、程序的结构!试题程序:#include#include#include string.h/*found*/void fun(char*sz*tlz*t2,*w)int i;char*p,*r,*a;strcpy(w,s);while(*w)(P=w;r=tl;/*found*/while(r)if(*r=*p)r+;p+;else(break;)if(*r=XO1)r=t2;while(*r)(*a=*r;a+;r+;)w+=strlen(t2);else(w+;)main()char s 100,tl 100,t2 100,w100;printf(nnPlease enter string