计算机二级改错及上级_第1页
计算机二级改错及上级_第2页
计算机二级改错及上级_第3页
计算机二级改错及上级_第4页
计算机二级改错及上级_第5页
已阅读5页,还剩94页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

91、给定程序中函数fun的功能是:读入一个字符串(长度<20),将该字符串

中的所有字符-

按ASCII码升序排序后输出。例如,若输入edcba,则应输出abcde。-

请改正函数fun中指定部位的错误,使它能得出正确的结果。-

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!・

试题程序:-

#include<conio.h>-

#include<stdio.h>-

voidfun(chart[])-

{charc;-

/***********found**********/

inti,j;for(i=strlen(t);i;i-)for(i=strlen(t);i;i-)应改为

for(i=strlen(t)-l;i;i一一)或for(i=strlen(t)-l;i>0;i―)

/***********£ound**********/

for(j=0;j<i;j++)

/***********founci**********/if(t[i]<t[j+l])if(t[j]<t[j+1])应改为

if(t[j]>t[j+1])

{c=t[j];

/***********fomid**********/

t[j]=t[j+1];t[j]=t[i];

t[j+l]=c;t[i]=c;

})

main()

{chars[81];

clrscr();

printf(H\nPleaseenteracharacterstring:");

gets(s);

printf(H\n\nBeforesorting:\n\%s\",s);

fun(s);

Printf(H\nAftersortingdecendingly:\n\%s\H,s);

)

92、给定程序中函数fun的功能是:求:S=aa......aa-.......-aaa-aa-a。a和n

在1一9之间,

比如当a=3,n=6时,8=333333-33333-3333-333-33-3=296298o

请修改函数fun中的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序结构!

试题程序:

#include<conio.h>

#include<stdio.h>

longfun(inta,intn)

{intj;

/**************£ound**************/

longs=0,t=1;longs=0,t=l;应改为longs=0,t=0;

for(j=0;j<n;j++)for(j=0;j<=n;j++)应改为

for(j=0;j<n;j++)-

t=t*10+a;-

s=t;-

for(j=1;j<n;j++){-

/**************found**************/-

t=t%10;t=t%10;应改为t=t/10;-

s=s-t;-

)-

return(s);-

main()-

{inta,n;-

clrscr();-

printf("\nPleaseenteraandn:");"

scanf(n%d%d",&a,&n);-

printf("Thevalueoffunctionis:%ld\nu,fun(a,n));-

)-

93、给定程序中函数fun的功能是:用下面的公式求的n近似值,直到最后

一项的绝对值・

小于指定的数(参数num)为止:・

n111

a1-++

4357-

例如,程序运行后,输入0.0001,则程序输出3.14140-

请改正程序中的4个错误,使它能得出正确的结果。-

注意:不要改动main函数,不得增行和删行,也不得更改程序的结构!

试题程序:-

#include<math.h>-

#include<stdio.h>-

floatfun(floatnum)-

{-

ints;-

floatn,t,pi;-

t=l;pi=0;n=l;s=l;-

/************{*ound************/-

while(t>=num)while(t>=num)应改为while(fabs(t)>=num)-

{-

pi=pi+t;-

n=n+2;"

/************found************/-

s=-s;-

t=s%n;t=s%n;应改为t=s/n;-

pi=pi*4;-

returnpi;-

)-

main()-

{-

floatnl,n2;-

clrscr();-

printf("Enterafloatnumber:H);-

scanf(n%f",&nl);-

n2=fun(nl);-

printf(H%6.4f\nH,n2);-

)-

94、在主函数中从键盘输入若干个数放入数组中,用0结束输入并放在最后一

个元素中。下-

列给定程序中,函数fun的功能是:计算数组元素中值为正数的平均值(不包

括0)。例如,-

数组中元素的值依次为39,-47,21,2,-8,15,0,则程序的运行结果为

19.250000。-

请改正程序中的4个错误,使它能得出正确的结果。-

注意:不要改动main函数,不得增行和删行,也不得更改程序的结构!-

试题程序:-

doublefun(intx[])

/************found************/-

intsum=O.0;intsum=0.0;应改为doublesum=0.0;-

intc=0,i=0;-

while(x[i]!=0)-

{if(x[i]>0)-

{sum+=x[i];C++;}-

i++;-

)-

/************found************/-

sum\=c;sum\=c;应改为sum/=c;-

returnsum;-

)-

main()-

{intx[1000];inti=0;-

clrscr();-

printf(n\nPleaseentersomedata(endwith0):n);

do-

(scanf(n%d",&x[i]);}-

while(x[i++]!=0);-

printf(H%f\n\fun(x));-

)-

95、给定程序中函数fun的功能是:计算并输出下列级数的前N项之和S,

直到S大于Q-

NN+l

为止。Q值通过形参传入。-

例如:若Q=50.0,则函数值为49.394948。-

请修改函数fun中的错误,使它能得出正确的结果。-

注意:不要改动main函数,不得增行或删行,也不得更改程序结构!

试题程序:・

#include<conio.h>-

#include<stdio.h>-

doublefun(doubleq)-

{intn;doubles;-

n=2;-

/s=2.0-

while(s<=q)-

{-

/************found************/-

s=s+(n+1)/n;s=s+(n+1)/n;应改为s=s+(double)(n+l)/n;-

n++;-

)-

printf(Hn=%d\n'1,n);-

/************found************/-

returns;改为returnt;-

main()-

{clrscr();-

printf(n%f\n\fun(50));-

}~

96、给定程序中函数f的功能是:求S的值当k的值为10,设

1A24A26A2(2k)A2-

S=-----x-------x-------x...x--------------------------

1?33?55?7(2k-l)?(2k+l)-

例如,当k为10时,函数值为1.533852。-

试题程序:・

#include<conio.h>-

#include<stdio.h>-

#include<math.h>-

/************found************/-

fun(intk)fun(intk)应改为doublefun(intk)-

{-

intn;floats,w,p,q;-

n=l;-

s=l.0;-

/************found************/-

while(n<=k)

w=2.0*n;-

p=w-l.0;-

q=w+l.0;-

s=s*w*w/p/q;-

n++;-

)-

returnsreturns应改为returns;-

)-

main()-

{clrscr();-

printf(H%f\nH,fun(10));-

)-

97、给定程序中函数f的功能是:计算S=f(-n)+f(-n+1)+……+f(0)+

f(1)+f(2)-

+......+f(n)的值。-

请修改函数fun中的错误,使它能得出正确的结果。-

注意:不要改动main函数,不得增行或删行,也不得更改程序结构!・

试题程序:-

#include<conio.h>-

#include<stdio.h>-

#include<math.h>-

/************found************/-

f(doublex)f(doublex)应改为doublef(doublex)-

{-

if(x0.0IIx2.0)-

return0.0;-

elseif(x<0.0)-

return(x-1)/(x-2);

else-

return(x+1)/(x-2);

doublefun(intn)-

{inti;doubles=0.0,y;-

for(i=-n;i<=n;i++)-

{y=f(1.0*i);s+=y;}-

y************found************/-

returnsreturns应改为returns;-

}-

main()-

{clrscr();-

printf("%f\n",fun(5));-

}-

98、给定程序中函数fun的功能是:计算函数

F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值,-

其中x和y的值不等,z和y的值不等。例如,当x的值为9、y的值为11、

z的值为15时,-

函数值为-3.50。-

请改正函数fun中指定部位的错误,使它能得出正确的结果。-

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

试题程序:-

#include<stdio.h>-

#include<math.h>-

/************found************/-

#defineFU(m,n)(m/n)#defineFU(m,n)(m/n)应改为#define

FU(m,n)(m)/(n)-

floatfun(floata,floatb,floatc)

floatvalue;-

value=FU(a+b,a-b)+FU(c+b,c-b);-

/************found************/-

Return(value);Return(value);应改为return(value);-

)-

main()-

{-

floatx,y,z,sum;-

printf("Inputxyz:");-

scanf&x,&y,&z);-

printf(nx=%f,y=%f,z=%f\n",x,y,z);-

if(xy||yz){printf("Dataerror!\nn);exit(0);}-

sun=fun(x,y,z);-

printf(HTheresultis:%5.2f\n",sum);-

)-

99、数列中,第一项值为3,后一项都比前一项的值增5。给定程序modi.c中

函数fun的功-

能是:计算前n(n<4<50)项的累加和;在累加过程中把那些被4除后余2的当

前累加值放入-

数组中,符合此条件的累加值的个数作为函数值返回主函数.例如,当n的值为

20时,该数・

列为3,8,13,18,23,28,……,93,98o符合此条件的累加值应为

42,126,366,570,1010o-

请改正函数fun中指定部位的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!・

试题程序:・

#include<stdio.h>-

#defineN20-

intfun(intn,int*a)-

/**************found**************/-

{inti,j,k,sum;inti,j,k,sum;应改为inti,j=0,k,sum;-

sum=0;-

for(k=3,i=0;i{sum=sum+k;-

/**************found**************/-

if(sum%4=2)if(sum%4=2)应改为if(sum%4==2)-

a[j++]=sum;

returnj;-

)-

main()-

{inta[N],d,n,i;-

printf(H\nEntern(4<n<=50):");scanf(n%d'\&n);

d=fun(n,a);-

printf(H\n\nTheresult:\nn);-

for(i=0;i<d;i++)-

printf(H%6dn,a[i]);-

printf(H\n\nn);-

100、给定程序中函数fun的功能是:统计一个无符号整数中各位数字值为零

的个数,通过-

形参传回主函数:并把该整数中各位上最大的数字值作为函数值返回。例如,

若输入无符号・

整数30800,则数字值为零的个数为3,各位上数字值最大的是8。-

请改正函数fun中指定部位的错误,使它能得出正确的结果。-

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

试题程序:・

#include<stdio.h>-

intfun(unsignedn,int*zero)-

{intcount=0,max=0,t;-

do-

{t=n%10;-

/**************found**************/-

if(t=0)if(t=0)应改为if(t==0)-

count++;-

if(maxn=n/10;-

}while(n);-

/**************found**************/-

zero=count;zero=count;应改为*zero=count;-

returnmax;-

)-

main()-

{unsignedn;intzero,max;"

printf(H\nlnputn(unsigned):");scanf&n);-

max=fun(n,ftzero);-

printf(H\nTheresult:max=%dzero=%d\n",max,zero);-

81、给定程序中函数fun的功能是:根据整型形参n,计算如下公式的值。

111

A[1]=1,A[2]=,A[3]=,•••,A[n]=

1+A[1]1+A[2]1+A[n-l]

例如,若n=10,则应输出:0.617977。

请改正程序中的语法错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#include<conio.h>

#include<stdio.h>

/************found************/

intfun(intn)fun(intn)应改为doublefun(intn)

{floatA=l;inti;

/************found************/

for(i=2;iA=1.0/(1+A);for(i=2;i<n;i++)应改为for(i=2;i<=n;i++)

returnA;

)

main()

{intn;

clrscr();

printf(H\nPleaseentern:");

scanf(n%dn,&n);

printf(nA%d=%f\nn,n,fun(n));

)

82、给定程序中函数fun的功能是:计算整数n的阶乘。

请改正程序中的错误或在横线处填上适当的内容并把横线删除,使它能计算出

正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#include"stdio.hn

doublefun(intn)

(

doubleresult=l.0;

while(n>l&&n<170)

/*********found*********/

result*=―n;result*=-n;应改为result*=n-;

/*********found*********/

return____;应填returnresult;

)

main()

(

intn;

clrscr();

printf(HEnteraninteger:");

scanf&n);

printf(H\n\n%d!=%lg\n\nH,n,fun(n));

NONO();

)

83、给定程序中函数fun的功能是:实现交换两个变量值的操作。例如:若变

量a中的值原

为8,b中的值为3;程序运行后a中的值为3,b中的值为8。

请改正程序中的错误,使它能计算出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#include<stdio.h>

/*********found**********/

intfun(intx,inty)intfun(intx,inty)应改为voidfun(int*x,int*y)

{intt;

/*********found**********/

t=x;x=y;y=t;t=x;x=y;y=t;应改为t=*x;*x=*y;*y=t;

)

main()

{inta,b;

a=8;b=3;

fun(&a,&b);

printf(n%d,%d\nn,a,b);

)

84、给定程序中函数fun的功能是:将十进制正整数m转换成k(2<k<9)

进制数,并按

位输出。例如,若输入8和2,则应输出1000(即十进制数8转换成二进

制表示是1000)。

请改正fun函数中的错误,使它能得出正确的结果。

注意:不要改动main函数。不得增行或删行,也不得更改程序的结构!

试题程序:

#include<conio.h>

#include<stdio.h>

/**********found**********/

voidfun(intm,intk);voidfun(intm,intk);应改为voidfun(intm,int

k)

intaa[20],i;

for(i=0;m;i++)

(

/**********found**********/

aa=m/k;aa=m/k;应改为aa=m%k;

m/=k;

)

for(;i;i—)

/**********found**********/

printf("%dn,aa);printfaa);应改为printfaa);

)

main0

(

intb,n;

clrscr();

printf(n\nPleaseenteranumberandabase:\nH);

scanf("%d%d",&n,&b);

fun(n,b);

printf(H\nH);

)

85、给定程序中,函数fun的功能是:从字符串s中删除所有小写字母飞二

请改正函数fun中的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#include<stdio.h>

/**********found**********/

include<stdio.h>;include<stdio.h>;改为#include<stdio.h>;

voidfun(char*s)

{inti,j;

for(i=j=0;s!=,\0z;i++)

if(s!='c')

/**********f*ound**********/

s[j]=s;s[j]=s;应改为s[j++]=s;

*********found**********/

s=/\0z;s=,\(V;应改为s[j]=,\0z;

)

main()

{chars[80];

printf(HEnterastring:H);gets(s);

printf(HTheoriginalstring:");puts(s);

fun(s);

printf(HThestringafterdeleted:H);puts(s);printf(H\n\nn);

)

86、给定程序中,函数fun的功能是:把主函数中输入的3个数,最大的放

在a中,最小的

放在c中。例如,输入的数为:551234,输出结果应当是:a=55.0,b=34.0,

c=12.0o

请改正函数fun中指定部位的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#include<stdio.h>

voidfun(float*p,float*q,float*s)

(

/**************fouf}(J**************/

float*k;float*k;应改为floatk;

if(*p<*q)

{k=*p;*p=*q;*q=k;}

/**************foyfj(^**************/

if(*s<*p)if(*s<*p)应改为if(*s>*p)

{k=*s;*s=*p;*p=k;}

if(*q<*s)

{k=*q;*q=*s;*s=k;}

)

main()

(

floata,b,c;

printf("Inputabc:");scanf",&a,&b,&c);

printf("a=%4.If,b=%4.If,c=%4.lf\n\n",a,b,c);

fun(&a,&b,&c);

printf("a=%4.If,b=%4.If,c=%4.lf\n\n",a,b,c);

)

87、给定程序中,函数fun的功能是:给一维数组a输入任意4个整数,并

按下例的规律输

出。例如输入1、2、3、4,程序运行后将输出以下方阵。

4123

3412

2341

1234

请改正函数fun中指定部位的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#include<stdio.h>

#defineM4

/**************£ound**************/

voidfun(inta)voidfun(inta)应改为voidfun(inta[m])或voidfun(int

a口)或voidfun(int*a)

{inti,j,k,m;

printf(nEnter4number:");

for(i=0;i<M;i++)scanf(H%dH,&a);

printf(n\n\nTheresult:\n\nn);

for(i=M;i>0;i―)

{k=a[m-1];

forj>0;j—)

/**************found**************/

a[j]=a[j+1];a[j]=a[j+1];应改为a[j]=a[j-l];

a[0]=k;

for(m=0;m

printf("\n");

)

)

main()

{inta[m];

fun(a);printf("\n\n");

)

88、给定程序中函数fun的功能是:从3个红球,5个白球,6个黑球中任

意取出8个作为

一组,进行输出。在每组中,可以没有黑球,但必须要有红球和白球。组合数

作为函数值返

回。正确的组合数应该是15。程序中i的值代表红球数,j的值代表白球数,

k的值代表黑

球数。

请改正函数fun中指定部位的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#include<stdio.h>

intfun()

{inti,j,k,sum=0;

printf("\nTheresult:\n\n");

/**************found**************/

for(i=0;i<=3;i++)for(i=0;i<=3;i++)应改为for(i=l;i<=3;i++)

{for(j=l;j<=5;j++)

{k=8-i-j;

/**************found**************/

if(k>=l&&k<=6)if(k>=l&&k<=6)应改为if(k>=0&&k<=6)

{sum=sum+l;

printf("red:%4dwhite:%4dblack:%4d\nH,i,j,k);

)

returnsum;

main()

{intsum;

sum=fun();

printf(Hsum=%4d\n\n",sum);

89、给定程序中函数fun的功能是:求整数x的y次方的低3位值。例如,

整数5的6次

方为12625,此值的低3位值为625。

请改正函数fun中指定部位的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#include<stdio.h>

longfun(intx,inty,long*p)

{inti;

longt=l;

I**************foyf|(^**************/

for(i=l;i<y;i++;)for(i=l;i<y;i++)应改为for(i=l;i<=y;i++)

*P=t;

/**************found**************/

t=t/lOOO;t=t/lOOO;应改为t=t%1000;

returnt;

)

main()

{longt,r;intx,y;

printf(H\nlnputxandy:");scanf(n%ld%ldn,&x,&y);

t=fun(x,y,&r);

printf(H\n\nx=%d,y=%d,r=%ld,last=%ld\n\nH,x,y,r,t);

)

90、给定程序中函数fun的功能是:计算n的5次方的值(规定n的值大于

2、小于8),通

过形参指针传回主函数。并计算该值的个位、十位、百位上数字之和作为函数

值返回。例如,

1的5次方是16807,其低3位数的和值是15。

请改正函数fun中指定部位的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#include<stdio.h>

#include<math.h>

intfun(intn,int*value)

{intd,s,i;

/**************£ound**************/

d=0;d=0;应改为d=l;

s=l;s=l;应改为s=0;

for(i=l;i<=5;i++)d=d*n;

*value=d;

for(i=l;i<=3;i++)

{s=s+d%10;

/**************found**************/

s=s/10;s=s/10;应改为d=d/10;

)

returns;

)

main()

{intn,sum,v;

do

{printf(H\nEntern(2while(n<=2||n>=8);

sum=fun(n,&v);

printf(H\n\nTheresult:\nvalue=%dsum=%d\n\nH,v,sum);

)

70、下列给定程序中,函数fun的功能是:从整数1到55之间,选出能被3整

除、且有一

位上的数是5的那些数,并把这些数放在b所指的数组中,这些数的个数作为

函数值返回。

规定:函数中al放个位数,a2放十位数。

请改正程序中的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

#include<stdio.h>

/***********found**********/

fun(int*b)intfun(int*b);应改为intfun(int*b)

{intk,al,a2,i=0;

/***********£ound**********/

for(k=10;k<=55;k++)for(k=10;k<=55;k++)应改为for(k=l;k<55;k++)

a2=k/10;

al=k-a2*10;

if((k%3==0&&a2==5)||(k%3==0&&al==5))

{b\k;i++;}

)

y***********f*ound**********/

returnk;returnk;应改为returni;

)

main()

{inta[100],k,m;

m=fun(a);

printf("Theresultis:\n");

for(k=0;k++)printf(“%4d”,a[k]);printf(“\n”);

71、下列程序中,函数fun的功能是:求k!(k<13),所求阶乘的值作为函数

值返回。例如:

若k=10,则应输出:3628800,

请改正程序中的错误,使它能计算出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#include<conio.h>

#include<stdio.h>

longfun(intk)

(

/************found************/

ifk>0ifk>0应改为if(k>0)

return(k*fun(k-1));

/************found************/

elseif(k=0)if(k=0)改为if(k==0)

returnIL;

)

main()

{intk=10;

clrscr();

printf("%d!=%ld\n",k,fun(k));

}

72、给定程序中函数fun的功能是:统计子字符串substr在字符串str中出

现的次数。例

如,若字符串为aaasIkaaas,子字符串为as,则应输出2。

请改正程序中的错误,使它能计算出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#include<stdio.h>

/************found************/

fun(char*str,char*substr)fun(char*str,*substr)应改为int

fun(char*str,char*substr)

{inti,j,k,num=O;

y************f*ound************/

for(i=0,str,i++)for(i=0,str,i++)应改为for(i=0;str;i++)

for(j=i,k=0;substr[k]

str[j];k++,j++)

If(substr[k+1]'\0z)

{num++;

break;

)

returnnum;

main()

(

charstr[80],substr[80];

printf(HInputastring:H);

gets(str);

printf("Inputasubstring:");

gets(substr);

printf(n%d\n",fun(str,substr));

73、给定程序中fun函数的功能是:传入一个整数%计算如下公式的值。

111

t

23m

例如,若输入5,则应输出-0.283333。

请改正函数fun中的错误或在横线处填上适当的内容并把横线删除,使它能

计算出正确的

结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#include<conio.h>

#include<stdio.h>

doublefun(intm)

(

doublet=1.0;

inti;

for(i=2;i<=m;i++)

/**********found**********/

t=1.0-1/i;t=l.0-1/i;应改为t-=l.0/i;

/**********found**********/

-----;应填returnt;

)

main0

intm;

clrscr();

printf(H\nPleaseenter1integernumbers:\nn);

scanf(n%dH,&m);

printf("\n\nTheresultis%lf\n",fun(m));

74、下列程序中,函数fun的功能是:利用插入排序法对字符串中的字符按从

小到大的顺序

进行排序。插入法的基本算法是:先对字符串中的头两个元素进行排序。然后

把第三个字符

插入到前两个字符中,插入后前三个字符依然有序;再把第四个字符插入到前

三个字符

中,……。待排序的字符串已在主函数已在主函数中赋予。

请改正程序中的错误,使它能得出正确结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#defineN80

#include"stdio.h"

#includeHstring.h"

voidinsert(char*aa)

{inti,j,n;charch;

n=strlen(aa);

for(i=l;i<n;i++)

y************found************/

{c=aa;c=aa;应改为ch=aa;

while((j>=0)&&(ch{aa[j+1]=aa[j];

j-;

)

aa[j+1]=ch;

main()

{chara[N]="QWERTYUIOPASDFGHJKLMNBVCXZH;

inti;

printf(HTheoriginalstring:%s\n,',a);

insert(a);

printf(HThestringaftersorting:%s\n\nH,a);

75、给定程序中函数fun的功能是:输出M行M列整数方阵,然后求两条对

角线上各元素之

和,返回此和数。

请改正程序中的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#include<conio.h>

#include<stdio.h>

#defineM5

/************found************/

intfun(intn,intxx[][])intfun(intm,intxx[]口)应改为intfun(int

m,intxx[][m])

{inti,j,sum=0;

printf("\nThe%dx%dmatrix:\n",M,M);

for(i=0;i<M;i++)

{for(j=0;j<M;j++)

/************「ound************/

printf("%4fn,xx[j]);printf(n%4fH,xx[j]);应改为

printf("%4d",xx[j]);

printf(n\nn);

)

for(i=0;i<n;i++)

sum+=xx+xx[n-i-1];

return(sum);

)

main()

{intaa[m][m]={{1,2,3,4,5},{4,3,2,1,0),

(6,7,8,9,0},{9,8,7,6,5),13,4,5,6,7));

clrscr();

printf(H\nThesumofallelementson2diagnalsis%d.",fun(M,aa));

)

76、给定程序中函数fun的功能是:将长整型数中每一位上为偶数的数依次取

出,构成一个

新数放在t中。高位仍在高位,低位仍在低位。

例如,当s中的数为:87653142时,t中的数为:8642。

请改正程序中的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#include<conio.h>

#include<stdio.h>

voidfun(longs,long*t)

(

/************found************/

intd;改为longd;

/************found************/

longsl=0;longsl=0;应改为longsl=l;

*t=0;

while(s>0)

{d=s%10;

/************found************/

if(d%2=0)if(d%2=0)改为if(d%2==0)

{*t=d*s1+*t;

si*=10;

)

/************£ound************/

s\=10;s\=10;应改为s/=10;

}

)

main()

{longs,t;

clrscr();

printf("\nPleaseenters:");scanf&s);

fun(s,&t);

printf("Theresultis:%ld\n",t);

77、给定程序中函数fun的功能是:将字符串中的内容按逆序输出,但不改变

字符串中的

内容。例如,若字符串为abed,则应输出:deba。

请改正程序中的错误,使它能计算出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#include<stdio.h>

/************found************/

fun(chara)fun(chara)应改为voidfun(char*a)

{if(*a)

{fun(a+1);

/************£ound************/

printf(n%c"*a);printf(H%cn*a);改为printf(H%cH,*a);

main()

{chars[10]=nabcdn;

printf("处理前字符串=%s\n处理后字符串=",s);

fun(s);printf(H\nn);

78、给定程序中函数fun的功能是判断一个整数m是否是素数,若是返回1,

否则返回0。

在main。函数中,若fun返回1输出YES并打印该素数,若fun返回0输

出NO!

请改正程序中的错误,使它能计算出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#include<conio.h>

#include<stdio.h>

intfun(intm)

{intk=2;

while(k<=m&&(m%k))

/************found************/

k++k++应改为k++;

/************「ound************/

if(m=k)if(m=k)应改为if(m==k)

return1;

elsereturn0;

)

main()

{intn;

clrscr();

printf("\nPleaseentern:H;scanf('^d",&n);

if(fun(n))printf(nYES\nH);

elseprintf("NO!\nH);

79、给定程序中函数fun的功能是:删除字符串中的所有空白字符。输入字符

串时,用,#'

结束输入。

注意:不改动main函数,不得增行或删行,也不得更改程序的结构。

请改正程序中的错误,使它能计算出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#include<conio.h>

#include<stdio.h>

#include<ctype.h>

fun(char*p)

(

inti,t;

charc[80];

for(i=0,t=0;p;i++)

/***********found**********/

if(!isspace(*(p+i)))

c[t++]=p;

c[t]=w\0w;c⑴="\0";应改为c⑴=,\0,;

strcpy(p,C);

)

main()

(

charc,s[80];

inti=0;

printf(winputastring:»);

c=getchar();

whi1e(c!='#')

{s=c;

i++;

c=getchar();

)

s='\0';

fun(s);

puts(s);

}

80、给定程序中函数fun的功能是:求出以下分数序列的前n项之和。和值

通过函数值返

回main函数。

23581321

1235813

例如,若n=5,则应输出:8.391667.

请改正程序中的错误,使它能计算出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#include<conio.h>

#include<stdio.h>

/************found************/

fun(intn)fun(intn)应改为doublefun(intn)

{inta,b,c,k;doubles;

s=0.0;a=2;b=1;

for(k=1;k<=n;k++){

/************found************/

s=s+(Double)a/b;s=s+(Double)a/b;应改为s=s+(double)a/b;

c=a;a=a+b;b=c;

returns;

main()

{intn=5;

clrscr();

printf("\nThevalueoffunctionis:%lf\n",fun(n));

61、给定程序MODH.C中函数fun的功能是:根据整型形参m,计算如下公式

的值。

1111

y=----------+---------------4----------------4-......+----------

100*100200*200300*300m*m

例如,若m=2000,则应输出:0.000160。

请改正程序中的语法错误,使它能计算出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#include<conio.h>

#include<stdio.h>

/************found************/

fun(intm)fun(intm)应改为doublefun(intm)

{doubley=0,d;

inti;

/************found************/

for(i=100,i<=m,i+=100)for(i=100,i<=m,i+=100)应改为

for(i=100;i<=m;i+=100)

{d=(double)i*(double)i;

y+=1.0/d;

)

return(y);

)

main()

{intn=2000;

clrscr();

printf("\nTheresultis%lf\nH,fun(n));

62、给定程序中函数fun的功能是:计算并输出high以内最大的10个素数

之和。high由

主函数传给fun函数。若high的值为100,则函数值为732。

请修改函数fun中的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序结构!

试题程序:

#include<conio.h>

#include<stdio.h>

#include<math.h>

intfun(inthigh)

{intsum=0,n=0,j,yes;

while((high>=2)&&(n<10)

{yes=1;

for(j=2;j<=high/2;j++)

/************found************/

if(high%j0)

{yes=0;

break}break应改为break;

if(yes){sum+=high;n++;}

high—;

)

returnsum;

main()

{clrscr();

printf(,,%d\n\fun(100));

)

63、将字符串a中的所有字符复制到字符串b中,要求每复制三个字符之后插

入一个空格,

例如:在调用fun函数之前给字符串a输入:ABCDEFGHIJK调用函数之后,

字符串b中

的内容则为:ABCDEFGHIJK

请改正程序中的错误,使它能计算出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#include<stdio.h>

voidfun(char*p,char*b)

{inti,k=0;

/***********£ound**********/

while(*p)

{i=l;i=l;应改为i=0;

/***********foyf|d**********/

while(i<31I*p)while(i<31I*p)应改为while(i<3&&*p)

y***********fomi(^**********/

{b[k]=*p;

k++;p++;i++;

)

if(*p)

(

b[k++]=/';b[k]=";应改为b[k++]=/';

}

)

b[k]=/\0/;

)

main()

{chara[80],b[80];

printf("Enterastring:");gets(a);

printf("Theoriginalstring:")pits(a);

fun(a,b);

printf("\nThestringafterinsertspace:");puts(b);printf("\n\n");

64、给定程序中函数fun的功能是:首先将大写字母转换为对应小写字母;若

小写字母为a~

u,则将其转换为其后的第5个字母;若小写字母为v~z,使其值减210转

换后的小写字母

作为函数值返回。例如,若形参是字母A,则转换为小写字母f;若形参是字母

W,则转换为

小写字母b。

请改正函数fun中指定部位的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#include<stdio.h>

#include<ctype.h>

charfun(charc)

{if(c>=,A,&&c<=,Z,)

/**************found**************/

c=c-32;c=c-32;应改为c=c+32;

if(c>=/a,&&c<=/uz)

/**************found**************/

c=c-5;c=c-5;应改为c=c+5;

elseif(c>='v'&&c<='z')

c=c-21;

returnc;

)

main()

{charcl,c2;

printf(H\nEnteraletter(A-Z):");cl=getchar();

if(isupper(cl))

{c2=fun(cl);

printf(H\n\nTheletter\'%c\'changeto\'%c\'\n",cl,c2);

)

elseprintf(n\nEnter(A-Z)!\nH);

65、给定程序中函数fun的功能是:从低位开始取出长整型变量s中奇数位

上的数,依次构

成一个新数放

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论