编写函数fun(),它的功能是求n以内(不包括n)同时能被5与11整除的所有自然数之和的平方根s,并作为

题目

编写函数fun(),它的功能是求n以内(不包括n)同时能被5与11整除的所有自然数之和的平方根s,并作为函数值返回。

例如:n为1000时,函数值应为s=96.979379。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:

include <conio.h>

include <math.h>

include

double fun(int n)

{

}

main()

{

clrscr();

printf("s=%f\n",fun(1000));

}

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

编写函数fun,它的功能是:求小于形参n同时能被3与7整除的所有自然数之和的平方根,并作为函数值返回。

例如,若n为1000时,程序输出应为:s=153.909064。

注意:部分源程序在文件PROGl.C中。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

试题程序:


正确答案:
【参考答案】【解题思路l本题考查算术运算的算法,首先利用一个for循环判断小于n且能同时被3和7整除的整数,并将满足条件的整数累加到sum,之后调用sqrt函数计算sum的平方根,并作为函数的返回值。

第2题:

请编写函数count Value(intn),它的功能是:求n以内(不包括n)同时能被3与7整除的所有自然数之和的平方根s, s作为函数返回值,最后结果S输出到文件out.dat中。 例如若n为1000时,函数值应为:s=153.909 064。


正确答案:
【审题关键句】同时被3和7整除的自然数和的平方根。
【解题思路】
①定义循环整型变量i和双精度型变量sum,并将sum值设置为0.0。
②采用for循环语句,循环变量i从7开始依次递增直到其值等于或大于n,在循环体中,如果i除以3和7的得的余数同时为0,则说明这个数能同时被3和7整除,这时把这个数的值乘以1.0转化成实型数据,累加到变量sum上。
③退出循环后,调用求平方根的函数sqrt(sum),求得这些数的和的平方根赋给变量sum,把sum的值返回。
【参考答案】

第3题:

请编写函数countValue(),它的功能是:求n以内(不包括n)同时能被3与7整除的所有自然数之和的平方根s,并作为函数值返回,最后结果s输出到文件OUT11.DAT中。

例如,若n为1000时,函数值应为s=153.909064。

注意:部分源程序已给出。

请勿改动主函数main()和输入输出函数progReadWrite()的内容。

试题程序:

include<conio.h>

include<math.h>

include<stdio.h>

double countValue(int n)

{

}

main ( )

{

clrscr();

printf ("自然数之和的平方根=%f\n", countValue(lO00)) ;

pregReadWrite();

}

pregReadWrite()

{

FILE *wf;

int i, n;

float s;

wf = fepen("OUT11.DAT", "w");

s = ceuntValue(1000);

fprintf(wf, "%f\n", s);

fclese(wf);

}


正确答案:double countValue(int n) { double xy=0.0; int i; for(i=1;in;i++) if(i%3==0 && i%7==0) xy+=i; /*求n以内(不包括n)同时能被3与7整除的所有自然数之和*/ xy=sqrt((double)xy); /*再对总和求平方根*/ return xy; }
double countValue(int n) { double xy=0.0; int i; for(i=1;in;i++) if(i%3==0 && i%7==0) xy+=i; /*求n以内(不包括n)同时能被3与7整除的所有自然数之和*/ xy=sqrt((double)xy); /*再对总和求平方根*/ return xy; } 解析:本题的解题思路是:利用一个for循环依次从n个自然数当中取数,对当前取出的数进行条件判断。判断条件为:既能被3整除同时也能被7整除,因此,用“&&”运算符来连接两个条件表达式,当某数满足判断条件时,就把该数累加到变量xy中(xy的初始值为0.0),当所有满足条件的数都被找完后,对累加求得的变量xy的值进行求平方根的计算,并把所求得的结果作为函数值返回。

第4题:

请编写函数fun,它的功能是:计算并输出n(包括n)以内能被5或9整除的所有自然数的倒数之和。

例如,在主函数中从键盘给n输入20后,输出为:s=0.583333。注意:要求n的值不大于100。

部分源程序在文件PROGl.C中。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。


正确答案:
解析:该程序功能是计算并输出n(包括n)以内能被5或9整除的所有自然数的倒数之和。解题过程首先求出能被5或9整除的所有自然数,然后在此基础上求得这些数的倒数之和。

第5题:

编写函数fun(),它的功能是求n以内(不包括n)同时能被3与7整除的所有自然数之和的平方根s,并做为函数值返回。例如:n为1000时,函数值应为s=153.909064。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:

include <conio.h>

include <math.h>

include <stdio.h>

double fun(int n)

{

}

main()

{

clrscr();

printf("s=%f\n", fun(1000));

}


正确答案:double fun(int n) {double s=0.0; int i; for(i=0; in;i++) /*从0~n中找到既能被3整除同时又能被7整除的数并将这些数求和*/ if (i%3==0&&i%7==0) s=s+i; s=sqrt (s); /*对s求平方根*/ return s; }
double fun(int n) {double s=0.0; int i; for(i=0; in;i++) /*从0~n中找到既能被3整除同时又能被7整除的数,并将这些数求和*/ if (i%3==0&&i%7==0) s=s+i; s=sqrt (s); /*对s求平方根*/ return s; } 解析:本题的解题思路是逐个取得从0~n之间的所有数,对每次取得的数进行条件判断,条件是既能被3整除同时又能被7整除,注意:这两个条件要求同时成立,因此用到了“&及,’运算符。满足条什,该数就被累加到s中去,所有符合条件的数找完后,用sqd()函数(包含于头文件math.h>中)对s求平方根。

第6题:

请编写函数fun(),它的功能是:求出1到1000之内能被7或11整除、但不能同时被7和11整除的所有整数并将它们放在 a所指的数组中,通过n返回这些数的个数。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:

include <conio.h>

include <stdio.h>

void fun (int *a,int *n)

{

}

main()

{

int aa[1000], n, k;

clrscr();

fun(aa,&n);

for(k=0;k if((k+1)%10==0)

{printf("%5d",aa[k]);

printf("\n");} /*一行写9个数*/

else

printf("%5d ",aa[k]);

}


正确答案:void fun(int *a int *n) { int ij=0; for(i=1;i=1000;i++) /*求1到1000之内能被7或11整除、但不能同时被7和11整除的所有整数并放入数组a中*/ if((i%7==0||i%11==0)&&i%77!=0) a[j++]=i; *n=j; /*传回满足条件的数的个数*/ }
void fun(int *a, int *n) { int i,j=0; for(i=1;i=1000;i++) /*求1到1000之内能被7或11整除、但不能同时被7和11整除的所有整数,并放入数组a中*/ if((i%7==0||i%11==0)&&i%77!=0) a[j++]=i; *n=j; /*传回满足条件的数的个数*/ } 解析:注意本题题目应是找出能被7或11整除但不能同时被7和11整除的所有整数。能同时被7和11整除的整数一定能被77整除,且不能被77整除的数不一定就是能被7或11整除的数。所以可得出程序中的if()。按运算优先级可知 (i%7==0||i%11==0),注意,两边必须要有小括号。

第7题:

请编写一个函数int fun(int n),其中n为自然数。函数fun()的功能是求出自然数n(包括n)以内所有素数的和,并返回其值。

注意;部分源程序已存在文件PROC11.cpp中。

请勿修改主函数和其他函数中的任何内容,仅在函数fun()的花括号中填写若干语句。

文件PROC11.cpp的内容如下:

//PROC11.cpp

include<iostream>

using namespace std;

int fun(int n);

int main()

{

int number;

cout<<"Enter the number which you want to caculate: \n";

cin>>number;

cout<<"The result is:"<<fun(number)<<end1;

return 0;

}

int fun(int n)

{

//* * * * * * * * *

}


正确答案:

第8题:

编写函数fun(),它的功能是:求出1~1000之内能被7或11整除,但不能同时被7和11整除的所有整数,并将它们放在a所指的数组中,通过n返回这些数的个数。

[注意] 部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

[试题源程序]

include <conio.h>

include <stdio.h>

void fun(int *a, int *n)

{

}

main()

{

int aa[1000], n, k;

clrscr();

fun(aa,&n);

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

if(k+1)%10==0)

{

printf("%5d", aa[k]);

printf("\n");

}

else

printf("%5d", aa[i]);

}


正确答案:void fun(int *a int *n) { int i j=0; for(i=1; i=1000; i++) if((i%7=0 ||i%11==0)&&i%77!=0) a[j++]=i; *n=j; }
void fun(int *a, int *n) { int i, j=0; for(i=1; i=1000; i++) if((i%7=0 ||i%11==0)&&i%77!=0) a[j++]=i; *n=j; } 解析:本题的关键是if条件语句及参数传递。本题的设计思路是:(1)利用循环遍历1到1000之内的整数;(2)利用if语句判断,把查找到的整数保存到形参数组a中;(3)把数组a中数组元素的个数赋值到形参指针n所指的内存。注意程序中if语句的判断条件,本题是找出能被7或11整除但不能同时被7和11整除的所有整数。能同时被7和11整除的数一定能被77整除,且不能被7整除的数不一定就是能被7或11整除的数。所以,可得出程序中的if语句。

第9题:

请补充函数fun(),该函数的功能是:求100(不包括100)以内能被2或5整除,但不能同时被2和5整除的自然数。结果保存在数组bb中,函数fun()返回数组比元素的个数。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。

试题程序:

include <stdio.h>

define N 100

int fun (int bb [] )

{

int i, j;

for(【 】;i<100; i++)

if ((i%1!=0&&i%5==0)|| (i%2==0&&i%5 !=0)

【 】;

【 】;

}

main()

{

int i, n;

int bb [N];

clrscr ();

n=fun (bb);

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

{

if (i%10==0)

printf ("\n");

printf ("% 4d", bb [i]);

}

}


正确答案:i=l j=0 bb[j++]=I return j
i=l, j=0 bb[j++]=I return j 解析:第一空:题目要求找100以内的自然数,而自然数是从1开始的,所以i的初始值为1。变量j声明时没有初始化,所以在这里初始化为0,用来记录满足条件的自然数的个数。第二空:将满足条件的白然数存于数组bb中,下标加1是为了下一次存储做准备。第三空:题目要求fun()函数返回数组bb元素的个数,所以函数返回j。