编程题:
63.请编写一个函数fun,它的功能是:计算并输出给定整数n的所有因子(不包括1与自身)之和。规定n的值不大于1000。备注:整数n的因子-n可以整除的数。
例如,若主函数从键盘给n输入的值为856,则输出为sum=763。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include
int fun(int n)
{
}
main()
{
int n,sum;
printf(“Input n: “);
scanf(“%d”,&n);
sum=fun(n);
printf(“sum=%d\n”,sum);
}
64.请编写函数fun,其功能是:将s所指字符串中ASCII值为奇数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。
例如,若s所指字符串中的内容为ABCDEFGl2345,其中字符A的ASCII码值为奇数、…、字符1的ASCII码值也为奇数、…都应当删除,其他依次类推。最后t所指的数组中的内容应是BDF24。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
#include
#include
#include
void fun( char *s, char t[])
{
}
main()
{
char s[100], t[100];
clrscr();
printf(“\nPlease enter string S:”);
scanf(“%s”, s);
fun(s, t);
printf(“\nThe result is :%s\n”, t);
}
改错题:
94.在主函数中从键盘输入若干个数放入数组中,用0结束输入并放在最后一个元素中。下列给定程序中,函数fun的功能是:计算数组元素中值为正数的平均值(不包括0)。例如:数组中元素中的值依次为39,-47,21,2,-8,15,0,则程序的运行结果为l9.250000。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include
#include
double fun(int x[])
{
/********found********/
int sum=0.0;
int c=0,i=0;
while (x[i]!=0)
{
if(x[i]>0)
{
sum+=x[i];
c++;
}
i++;
}
/********found********/
sum \=c;
return sum;
}
main( )
{
int x[1000];
int i=0;
clrscr();
printf(“\nPlease enter some data(end with 0):”);
do
{
scanf(“%d”,&x[i]);
}
while(x[i++]!=0) ;
printf(“%lf\n”,fun(x));
}
95.下列给定程序中,函数fun的功能是:计算并输出下列级数的前N项之和SN。,直到
SN+1大于q为止,q的值通过形参传入。
2 3 4 N+1
SN=- + - + -+…+-
1 2 3 N
例如,若q的值为50.0,则函数值为49.394948。
请改正程序中的错误,使程序能输出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include
#include
double fun(double q)
{
int n; double s,t;
n=2;
s=2.0;
while(s<=q)
{
t=s;
/********found********/
s=s+(n+1)/n;
n++;
}
printf(“n=%d\n”,n);
/********found********/
return s;
}
main( )
{ clrscr( );
printf(“%f\n”,fun(50));
}