问答题
1. 编写函数proc(),它的功能是:求m以内(不包括m)同时能被5与11整除的所有自然数之和的平方根s,并将其作为函数值返回。
例如,m为100时,函数值应为s=7.416198。
注意:部分源程序如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<stdlib.h>
#include<conio.h>
#include<math.h>
#include<stdio.h>
double proc(int n)
{
}
void main()
{
system("CLS");
printf("s=%f\n",proc(100));
}
【正确答案】double proc(int n)
{ double s=0.0;
int i;
for(i=0;i<n;i++) //从0~n中找到既能被5整除同时又能被11整除的数,并将这些数求和
if(i%5==0&&i%11==0)
s=s+i;
s=sqrt(s); //对s求平方根
return s;
}
【答案解析】 按照题目的要求,求m以内(不包括m)同时能被5与11整除的所有自然数之和的平方根s,需要判断m以内的所有整数是否能同时被5与11整除。首先,求出同时能被5与11整除的所有自然数之和;然后,再求和的平方根;最后,返回给主函数。