改错voidfun(int*x,int*y)t=*x;*x=*y;*y=t;
选择:
BDCBDDCACDCDDBDCCBACBBADCBACAD
ABDACDBCAD
inti;floats=1.0,t=1.0;
for(i=2;i<=n;i++){t+=i;s+=1.0/t;}
returns;
填空1.0-1.0t
改错for(i=1;i<=3;i++)if(k>=0&&k<=6)
ADBBBCCCBACDDACBDCBDACDBA
BBACDAADBC
inti,j;doubles=1.0,p=1.0,t=1.0;
for(i=1;i<=n;i++){t=t*i;p=p*x;s+=p/t;}
returns;
填空ips[j]tp
改错doublefun(intn)returnsum;
DDBCCBBAACCDDBCDABDCDDACBD
BCBCCCBDCBDBCCC
s=(ln
(1)+ln
(2)+ln(3)+…+ln(m))0.5。
inti;doubles=0.0,log(doublex);
for(i=1;i<=m;i++)s+=log((double)i);
returnsqrt(s);
填空aab
改错c=c+32;c=c+5;
ACDDACBADDAABDECADDCBADCABACCCBDADC
BACDD
doubles=1.0;floatt=1,pi=0,n=1.0;
while((fabs(s))>=eps){pi+=s;t=n/(2*n+1);s*=t;n++;}
returnpi*2;
填空0.0n(t*t)
改错for(i=0;str[i];i++)
if(substr[k+1]=='\0')
CDBDBBCDAAADCBCDACDDBCABD
CBACBBCADC
doubles1=1.0,p=1.0,s=0.0,s0,t=1.0;intn=1;
do{s0=s1;s+=s0;t*=n;p*=(0.5-n+1)*x;s1=p/t;n++;}while(fabs(s1-s0)>=1e-6);
returns;
填空xnfabs(t)
改错for(i=1;i<=y;i++)t=t%1000;
ADACBBCADCDCBBCBBDCABBCBA
BCCCAABBCAABDDA
计算给定10个数的方差:
inti,j;doubles=0.0,s1=0.0;
for(i=0;i<10;i++)s1+=x[i];s1/=10;
for(j=0;j<10;j++)s+=(x[j]-s1)*(x[j]-s1);s/=10;
returnsqrt(s);
填空1.01i
改错k=i;c=k%10;
BBADAABCDDCAACCCBBACBBCADDCDBA
CCDACADDCB
计算给定整数n的所有因子之和。
ints=0,i;
for(i=2;i<=n-1;i++)
if(n%i==0)s+=i;
returns;
填空&&’A’ch
改错voidfun(int*a)a[j]=a[j-1];
ADCCADDADDBCDABBCCCDCBDAADDABBCADBA
BDAAA
求Fibonacci数列中大于t的最小的一个数。
inta=1,b=1,c=0,i;
for(i=4;i<=t;i++)
{if(celsebreak;}
returnc;
填空NN-10
改错s=s+(double)(n+1)/n;returnt;
CCBBABDCACDCBBABCDAACDADDBACDCCBDBB
BBBAD
将一个数字字符串转换为一个整数。
longs=0,t;inti=0,n=strlen(p),k,s1;
if(p[0]==’-’)i++;
for(j=i;j<=n-i;j++)
{t=p[j]-’0’;s1=10;
for(k=j;kif(p[0]==’-’)return–s;
elsereturns;
填空100x
改错if(n==0)result*=n--;
ABDACBDACDCBDCABDACDBDDADDBCADCDCDA
DACDD
w是一个大于10的无符号整数,若w是n(n≥2)位的整数,则函数求出w的后n-1位的数。
unsignedt=w,s=0,sl=1,p=0;
while(t>10){if(t/10)p=t%10;s+=p*sl;sl*=10;t/=10;}
returns;
填空tttt.score[i]std
改错m=i;if(a[k]>a[m])m=k;
DBBCBADCDCDCBDADBCDCDACBDACDBCADBDCCDCCC
对变量h中的值保留2位小数,并对第三位进行四舍五入。
intt;floatf;
t=(int)h;f=h-t;
if((int)(f*1000)%10>=5)f=((int)(f*100)%100+1)/100.0;
elsef=((int)(f*100))/100.0;
returnt+f;
填空’0’s++ctod(a)+ctod(b)
改错voidfun(char*s,int*a,int*b)
*a=*a+1;
*b=*b+1;
BADDABDACDADBCDCACCDADCBDCBDACCDDACBBDCC
求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中。
inti,j=0,k=0,*t=pp;
for(i=1;i<=x;i++)
if(i%2!
=0)t[j++]=i;
for(i=0;iif(x%t[i]==0)pp[k++]=t[i];
*n=k;填空t,ss[i]’\0’
改错if(i%k==0)if(k>=i)
ABDDDCADBCBDDCCACCBBADDBCBCDDABCDACBDACD
找出一维整型数组元素中最大的值和它所在的下标。
inti;
*max=a[0];
for(i=0;iif(a[i]>*max){*max=a[i];*d=i;}
填空12.0*i(-1)
改错k++;if(m==k)
BDDCCABDCDCCCACBDACDDAAABBACDCCDDAABBADC
求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。
inti,max=s[0];
for(i=0;iif(s[i]>max){max=s[i];*k=i;}
填空n++0s++
改错t+=s[k];*aver=ave;
BBDACDCCADCABBDACDCDCDADCBBEADACDBADDDCD
求出—个2×M整型二维数组中最大元素的值。
inti,j,max=a[0][0];
for(i=0;i<2;i++)
for(j=0;jif(a[i][j]>max)max=a[i][j];
returnmax;
填空3.0>(2*i+1)
改错doublefun(intn)s=s+(double)a/b;
ABDDCBADCDBBDADCADAABBCDDCCAAABACDABBACA
tt指向一个M行N列的二维数组,求出二维数组每列中最小元素,并依次放入pp所指一维数组中。
inti,j,min;
for(j=0;j{min=tt[0][j];
for(i=0;iif(tt[i][j]填空std[0]std[i].agemax.name
改错voidfun(int*a,int*b)t=*b;*b=*a;*a=t;
AACDABBDADBDAADDDCADABBDACDACCBACACCDDAC
计算并输出3到n之间所有素数的平方根之和。
intm,k,i;doubles=0.0;
for(m=3;m<=n;m++)
{k=sqrt(m);
for(i=2;i<=k;i++)
if(m%i==0)break;
if(i>=k+1)s+=sqrt(m);}
returns;
填空it++count
改错intfun(inta,intb,intc)
elsereturn1;
ABBCADBBCACAACBADBCABACDACDDCDBBDACDADDA
将大于形参m且紧靠m的k个素数存入xx所指的数组中。
intg=0,i,j,flag=1;
for(i=m+1;1;i++)
{for(j=2;j
{if(i%j!
=0)flag=1;
else{flag=0;break;}}
if(flag==1&&j>=i)
{if(k>=0){xx[g++]=i;k--;}
elsebreak;}}
填空s--return0
改错doublefun(intn)c=a;a+=b;b=c;
ABCDABBDCCDBCADCBDADDDCBABCDBCCDABCDBCAD
将所有大于1小于整数m的非素数存入xx所指数组中。
inti,j,t=0;
for(i=4;ifor(j=2;j
{if(i%j==0){xx[t++]=i;break;}}
*k=t;
填空M改错if(('a'<=tt[i])&&(tt[i]<='z'))
tt[i]-=32;
BBADCCCDABCBCDDAAACDBDDABCADBCBDCABDDDCD
利用简单迭代方法求方程cos(x)-x=0的一个实根。
Xn+1=cos(Xn)
floatx1=0.0,x0;
do{x0=x1;x1=cos(x0);}while(fabs(x0-x1)>=1e-6);
returnx1;
填空i++mm
改错while((high>=2)&&(n<10))yes=0;break;
CDDBADACBDBDACDCCDDBACCBDBDACDBDCADABDBD
求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中。
inti,j=0,k=0,*t=pp;
for(i=1;i<=x;i++)
if(i%2!
=0)t[j++]=i;
for(i=0;iif(x%t[i]==0)pp[k++]=t[i];
*n=k
填空t,ss[i]’\0’
改错if(i%k==0)if(k>=i)
BADBDADBBDADCCDCCCDADABDDBADBDBDABDBDABD
94.请编写函数fun,它的功能是:
将字符串中的前导*号全部删除,中间和尾部的*号不删除。
删除前导*号
char*p=a;
while(*p=='*')p++ ;
for(;*p!
='\0';p++,a++)*a=*p ;
*a='\0';
voidfun(int(*t)[N])
t[i][j]=t[i][j]+t[j][i];
t[j][i]=0;
#defineFU(m,n)((m)/(n))
return(value);
ABDBBBADCDDABCDCCCADADDCDBBADBCCADACDADD
56.请编写函数fun,它的功能是:
除了尾部的*号之外,将字符串中其他*号全部删除。
形参p已指向字符串中最后的一个字母。
57.除尾部*号其余*删除
char*t=a;
for(;t<=p;t++)if(*t!
='*')*(a++)=*t;
for(;*t!
='\0';t++)*(a++)=*t;
*a='\0';
voidfun(intt[N][N],intn)
for(i=0;it[i][n-1-i]=s;
intfun(inta[],intm)
elseif(m>a[mid])
BBDDCDBACCDBCDABBDCDBADACDACCACAACADABDA
73.请编写函数fun,它的功能是:
除了字符串前导和尾部的*号之外,将串中其他*号全部删除。
只删除中间*号
inti=0;char*q=a;
while(qwhile(q
='*'){a[i]=*q;i++;}q++;}
while(*q){a[i]=*q;i++;q++;}
a[i]='\0';
sum=0;
sum+=t[i][i];
sum+=t[i][n-i-1];
doubler;
while(fabs(n-m)>0.001)
CADDDBCDAAABCDABBACDBCABBACBCDABBCD
66.请编写函数fun,它的功能是:
删除字符串中所有的*号。
删除串中所有*号
inti,j=0;
for(i=0;a[i]!
='\0';i++)
if(a[i]!
='*')a[j++]=a[i];
a[j]='\0';
if(a[i]%2==1)
a[j]=a[i];j++;
returnj;
t=a;a=b;b=t;
return(b);
BADCDADCDABBACDCCADCBDADCBBCCCDADBABBACA
83.请编写函数fun,它的功能是:
将字符串尾部的*号全部删除,前面和中间的*号不删除。
删除串尾*号
while(*a!
='\0')a++;
a--;
while(*a=='*')a--;
*(a+1)='\0';
for(i=0;iif(strcmp(ss[i],t)==0)returni;
if(n==-1)printf("\nDon'tfound!
\n");
a2=k/10;
returni;
DDABCBCCCCDACDDBBADCDCADB
BADCDDABCDBBACD
45.请编写函数fun,它的功能是:
只删除字符串前导和尾部的*号,串中字母之间的*号都不删除。
删除前导和尾部*
inti,j=0;
for(i=h;ia[j++]=a[i];
a[j]=‘\0’;
strlen(ss[i])
substr
0
fun(intx,inty,intz)
returnj;
ABCDCDABDABBADCDAABCABCDADCCCCADDCDBBACC
88.请编写函数fun,它的功能是:
除了字符串前导的*号之外,将串中其他*号全部删除。
除前导*外删除其他*
inti=0;char*p=a;
while(*p&&*p=='*'){a[i]=*p;i++;p++;}
while(*p)
{if(*p!
=’*’){a[i]=*p;i++;}p++;}
a[i]='\0';
for(i=0;iif(len<=k)
strcpy(ss[j++],ss[i]);
intk=0;
while(*p||*q)
CCABDBBADCDACBACADDACCCADBDCDA
BACDDSCBBAD
95.请编写函数fun,它的功能是:
使字符串的前导*号不得多于n个
前导*不多于n个
inti=0,k=0;char*p,*t;p=t=a;
while(*t=='*'){k++;t++;}
if(k>n){while(*p)
{a[i]=*(p+k-n);i++;p++;}
a[i]='\0';}
voidfun(char(*ss)[M],intk)
while(iss[i][k]=0;i++;}
t=1;
return(2*s);
ABDCDBBADCBDDADBBDAACDADDBBDACBDCADBDADB
36.请编写函数fun,它的功能是:
将字符串中的前导*号全部移到字符串的尾部。
串前*移至串尾
inti=0,n=0;char*p;p=a;
while(*p=='*'){n++;p++;}
while(*p){a[i]=*p;i++;p++;}
while(n!
=0){a[i]='*';i++;n--;}
a[i]='\0';
voidfun(int(*t)[N]
t[i][j]=t[i][j]+t[j][i];
t[j][i]=0;
#defineFU(m,n)(m)/(n)
return(value);
BBCDDACBBDDACDDCCCDDDABBACBADDDDBADBBADD
43.编写一个函数,从传入的num个字符串中找出最长的一个字符串,并通过形参指针max传回该串地址
(用****作为结束输入的标志)。
char*p=a[0];inti;
for(i=1;iif(strlen(a[i])>strlen(p))
p=a[i];
*max=p;
voidfun(int(*a)[N])
for(j=i;ja[k][i]=a[k][N-i-1]=i+1;
aa[i]=m%k;
printf("%d",aa[i-1]);
BADDDADDCDBBACCCDDADCBBAB
BBCDCCBDACBCDAC
类型二:
套用公式计算型
8.编写函数fun,函数的功能是:
根据以下公式计算s,计算结果作为函数值返回;n通过形参传入。
s=1+1/(1+2)+1/(1+2+3)+.......+1/(1+2+3+4+......+n),
若n的值为11时,函数的值为1.833333。
inti,sum=1;floats=1;
for(i=2;i<=n;i++){sum=sum+i;s=s+1.0/sum;}
returns;
for(i=0;s[i]!
=0;i++)
n=0;
s[j+1]=c;
doublesum=0.0;
sum/=c;
CDDBABACCDADDCCCBBACBCACA
DDACA
92.请编写函数fun,它的功能是计算:
s=(ln
(1)+ln
(2)+1n(3)+…+ln(m))0.5s作为函数值返回。
若m的值为20,则fun函数值为6.506583。
doublei;doubler,s;doublelog(doublei);
for(i=1;i<=m;i++){r=r+log(i);}
return(sqrt(r));
t[0][N-j-1]=t[j][0];
for(j=N-1;j>=0;j--)
t[j][N-1]=r[j];
doublef(doublex)
returns;
BADBCCCBADBACDADDCBCBBDAC
BBACABCCADACCAABACCA
68.请编写函数fun,其功能是:
计算并输出下列多项式值:
Sn=1+1/1!
+1/2!
+1/3!
+1/4!
+…+1/n!
若主函数从键盘给n输入15,则输出为s=2.718282。
doublet,sn=1.0;inti,j;
for(i=1;i{t=1.0;for(j=1;j<=i;j++)t*=j;sn+=1.0/t;}
returnsn;
f=1.0;
t*=(-1)*x/n;
f+=t;
for(i=1;i<=3;i++)
if((k>=1&&k<=6)&&(i!
=0&&j!
=0)||k==0)
ABBACCDADDBBADCBBACDCDADD
CCADDCBBADBBADD
100.请编写函数fun,其功能是:
计算并输出
S=1+(1+2^0.5)+(1+2^0.5+3^0.5)+……+
(1+2^0.5+3^0.5+……+n^0.5)
输入20后,则输出为s=534.188884。
inti;doubles=0.0,s1=0.0;
for(i=1;i<=n;i++)
{s1=s1+pow(i,0.5);s=s+s1;}
returns;
t=(a>b)?
(b>c?
b:
(a>c?
c:
a)):
((a>c)?
a:
((b>c)?
c:
b));
c=c+32;
c=c+5;
ADDBCABCBABBDACBBCADACABB
AABACBBADBD
90.请编写函数fun,其功能是:
计算并输出下列多项式值:
Sn=(1-1/2)+(1/3-1/4)+...+(1/(2n-1)1/2n)
若输入8后,则输出为S=0.662872。
inti;doublesum=0.0;
if(n>1&&n<=100)
{for(i=1;i<=n;i++)
sum+=1.0/(2*i-1)-1.0/(2*i);
for(j=a[i]*2;j<=n;j+=a[i])
while(a[i]==0)
if(a[i]!
=0)
sum=0;j=0;
if(sum%4==2)
BDCBDDCACDCDDBDCCBACBBADCBACAD
ABDACDBCAD
70.编写函数fun,它的功能是:
计算并输出下列级数和:
S=1/1*2+1/2*3+...+1/n(n+1)
n=10时,函数值为0.9