程序修改题100


1.程序修改题
给定程序中,函数fun的功能是:根据整型形参m,计算如下公式的值:
y=1+1/(2*2)+1/(3*3)+1/(4*4)+…+1/(m*m)
例如:若m中的值为5,则应输出1.463611。
请改正程序中的错误,使其能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include <stdio.h>
double fun(int m)
{
double y=1.0;
int I;
/**********found**********/
for(i=2;i<m;i++)
/**********found**********/
y+=1/(i*i);
return(y);
}
main()
{
int n=5;
printf("\nThe result is %lf\n", fun(n));
}
【答案】
(1)将for(i=2;i<m;i++) 改为:
for(i=2;i<=m;i++)
(2)将y+=1/(i*i); 改为:y +=1.0/(i*i);
2.程序修改题
给定程序中,函数fun的功能是:求出s所指字符串中最后一次出现的t所指子字符串的地址,通过函数值返回,在主函数中输出从此地址开始的字符串;若未找到,则函数值为NULL。
例如,当字符串中的内容为“abcdabfabcdx”、t中的内容为“ab”时,输出结果应是abcdx。当字符串中的内容为“abcdabfabcdx”、t中的内容为“abd”时,则程序输出未找到信息not be found!。
请改正程序中的错误,使其能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include <stdio.h>
#include <string.h>
char *fun(char *s,char *t)
{
char *p,*r,*a;
/**********found**********/
a=Null;
while(*s)
{
p=s;r=t;
while(*r)
/**********found**********/
if(r==p)
{r++;p++;}
else break;
if(*r=='\0') a=s;
s++;
}
return a ;
}
main()
{
char s[100],t[100],*p;
printf("\nPlease enter string S :");
scanf("%s",s);
printf("\nPlease enter substring t :");
scanf("%s",t);
p=fun(s,t);
if(p) printf("\nThe result is :%s\n",p);
else printf("\nNot found !\n");
}
【答案】
(1)将a=Null; 改为:a=NULL;
(2)将if(r==p) 改为:if(*r==*p)
3套
2.程序修改题
给定程序中,函数fun的功能是:计算正整数num的各位上的数字之积。
例如,若输入252,则输出应该是20;若输入202,则输出应该是0。
请改正程序中的错误,使其能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
#include <stdio.h>
long fun(long num)
{
/**********found**********/
long k;
do
{
k*=num%10 ;
/**********found**********/
num\=10;
}while(num);
return (k);
}
main()
{
long n;
printf("\Please enter a number:");
scanf("%ld",&n);
printf("\n%ld\n",fun(n));
}

【答案】
(1)将long k;改为:long k=1;或long k;k=1;
(2)将num\=10;改为:num/=10;
4
2.程序修改题
给定程序中,函数fun的功能是:依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。
请改正程序中

程序修改题100相关文档

最新文档

返回顶部