其他

程序Cmody012.c中,函数fun(intn)的功能是:根据参数n,计算大于10的最小n个能被3整除的正整数的倒数之和。请改正错程序中的错误。例如:

题目
程序Cmody012.c中,函数fun(intn)的功能是:根据参数n,计算大于10的最小n个能被3整除的正整数的倒数之和。请改正错程序中的错误。例如:

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

第1题:

给定程序MODll.C中函数fun的功能是:计算小于形参k的最大的10个能被13或17整除的自然数之和。k的值由主函数传入,若k的值为500,则函数值为4622。

请改正程序中的错误,使程序能输出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!


正确答案:(1)if((k%13==0)I I(k%17==0)) (2) }
(1)if((k%13==0)I I(k%17==0)) (2) } 解析:该题中函数功能是求能被13或17整除的自然数之和。从已给定源程序的main主函数开始入手,“printf("%d\n",fun(500));”语句中的fun函数将500传给n,计算小于500的能被13或17整除的自然数之和。

第2题:

下列给定程序中,函数fun的功能是按以下递归公式求函数值。

例如:当给n输入5时,函数值为240;当给n输入3时,函数值为60。

请改正程序中的错误,使它能得到正确结果。

注意;不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

include <stdio.h>

/*************found****+*******/

fun(int n);

{

int c;

/*************found********+*****/

if(n=1)

c=15;

else

c=fun(n-1)*2;

return(c);

}

main()

{

int n;

printf("Enter n:");

scanf("%d",&n);

printf("The result:%d\n\n",fun(n));

}


正确答案:(1)错误:fun(int n); 正确:fun(int n) (2)错误:if(n=1) 正确:if(n==1)
(1)错误:fun(int n); 正确:fun(int n) (2)错误:if(n=1) 正确:if(n==1) 解析:错误1:该行是函数的首部,不是一条语句,因此不能以分号结束。错误2:if垢面应该紧跟一个条件判断表达式,若写成“if(n=1)”,则说明该表达式的值永远为真,也就是说这个条件永远成立,没有递归执行。

第3题:

给定程序MODll.C中函数fun的功能是:计算n!。

例如,给n输入5,则输出120.000000。

请改正程序中的错误,使程序能输出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!


正确答案:(1)if (n==0) (2)result *=n--;
(1)if (n==0) (2)result *=n--; 解析:本题中函数的功能是计算阶乘,其中,阶乘的计算公式分为参数n是1和大于1两种情况,例如,1的阶乘1!=1;5的阶乘5!=5×4×3×2×1。

第4题:

下列给定程序中函数fun()的功能是计算1/n!的值。

例如:给n输入5,则输出0.0083330

请改正程序中的错误,使它能得到正确结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

include <stdio.h>

include <conio.h>

/******+****found*************/

int fun(int n)

{double result=1.0;

if(n==0)

return 1.0;

while(n>1 && n<170)

/**********found************/

result *=n++;

result=1/result;

return result;

}

main()

{

int n;

printf("Input N:");

scanf("%d",&n);

printf("\n1/%d!=%If\n",n,fun(n));

}


正确答案:(1)错误:int fun(int n) 正确:double fun(int n) (2)错误:result*=n++; 正确:result*=n--;
(1)错误:int fun(int n) 正确:double fun(int n) (2)错误:result*=n++; 正确:result*=n--; 解析:错误1:函数的返回值为实型数据,所以函数的返回类型应为double。错误2:根据阶乘的概念,从n开始,每递减1的数相乘,直到1,因此此处n递减,而不是递增。

第5题:

编写函数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));

}


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

第6题:

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

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

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

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


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

第7题:

给定程序MODll.C中函数fun的功能是:根据整型形参n,计算如下公式的值。

例如,若n=10,则应输出:0.617977。

请改正程序中的语法错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!


正确答案:(1)float fun(int n)(2)for(i=2;i<=n;i++)
(1)float fun(int n)(2)for(i=2;i<=n;i++) 解析:本题中函数的功能是计算公式的值。其中,每一项的分母是前一项的值加1。

第8题:

下列给定程序中函数fun()的功能是:计算n!。例如,给 n输入5,则输出120.000000。

请改正程序中的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

试题程序:

include <stdio.h>

include <conio.h>

double fun (int n)

{ double result=l.0;

/*************found**************/

if n==0

return 1.0;

while (n>l&&n<170)

/*************found**************/

result *=n--

return result;

}

main ( )

{ int n;

printf ("Input N: ");

scanf ( "%d" &n);

printf ("\n\n%d!=%lf\n\n",n, fun(n));

}


正确答案:(1)错误:if n==0 正确:if(n==0) (2)错误:result*=n-- 正确:result*=n--;
(1)错误:if n==0 正确:if(n==0) (2)错误:result*=n-- 正确:result*=n--; 解析:在做这道题之前,我们首先应该明白一个数学上的概念,一般判卷人员先要执行程序,如果结果正确,得满分,否则错一个扣分,再错再扣,本题考查5! 即5!=5×4×3×2×1=120,要求输出double型结果。

第9题:

编写函数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求平方根。