编写函数fun,它的功能是:求小于形参n同时能被3与7整除的所有自然数之和的平方根,并作为函数值返回。例如,若n为1000时,程序输出应为:s=153.909064。注意:部分源程序在文件PROGl.C中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:

题目

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

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

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

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

试题程序:


相似考题
更多“ 编写函数fun,它的功能是:求小于形参n同时能被3与7整除的所有自然数之和的平方根,并作为函数值返回。例如,若n为1000时,程序输出应为:s=153.909064。注意:部分源程序在文件PROGl.C中。请勿改”相关问题
  • 第1题:

    请编写函数fun(),其功能是:计算并输出下列多项式的值。

    S=1+4/(1+2)+1/(1+2+3)+…+1/(1+2+3+…+n)

    例如,着主函数从键盘给n输入50后,则输出为 S=1.960784。

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

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

    试题程序:

    include <stdio.h>

    double fun(int n)

    {

    }

    main ()

    {

    int n;

    double s;

    printf ("\nInput n: ");

    scanf ("%d", &n);

    s=fun (n);

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

    }


    正确答案:double fun (int n) { int i; double s=0.0s1=0.0; for(i=1;i=n;i++) {s1=s1+i; /*求每—项的分母*/ s=s+1.0/s1; /*求S=1+1/(1+2)+1/(1+2+3)+…+1/(1+2+3+…+n)*/ } return s; }
    double fun (int n) { int i; double s=0.0,s1=0.0; for(i=1;i=n;i++) {s1=s1+i; /*求每—项的分母*/ s=s+1.0/s1; /*求S=1+1/(1+2)+1/(1+2+3)+…+1/(1+2+3+…+n)*/ } return s; } 解析:该程序的数学思路是:在程序中输入n后,以前n项的和作为分母递加,由于s1是浮点类数据所以s=s+1.0/s1; for 循环的作用是每一次循环给总结果s加上一项1.0/s1。

  • 第2题:

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

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

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

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


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

  • 第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与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求平方根。

  • 第5题:

    编写函数fun,它的功能是计算下列级数和,和值由函数值返回。

    例如,当n=10,x=0.3时,函数值为1.349859。

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

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


    正确答案:
    解析:该程序功能是计算并输出多项式值。根据题干中给出的数列,首先推出每一项的表达式,然后再对多项式进行累加求和。

  • 第6题:

    请编写函数fun,其功能是:计算并输出给定10个数的方差:

    例如,给定的10个数为95.0、89.0、76.0、65.0、88.0、72.0、85.0、81.0、90.0、56.0,输出为s=11.730729。

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

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


    正确答案:
    解析:该程序功能是计算并输出给定10个数的方差。解题思路是,根据题干中给出的方差公式首先计算出x’的值,然后计算根号里面的值,最后求其平方根。

  • 第7题:

    编写函数fun,其功能是:求ss所指字符串中指定字符的个数,并返回此值。例如,若输入字符串123412132,输入字符为1,则输出3。

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

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


    正确答案:
    intfun(char*ss,charc)inti=0;for(;*ss!=’\0‘;ss++)if(}ss==ci++/*求出*所指字符串中指定字符的个数*/returni;【考点分析】本题考查:for循环语句遍历字符串,并通过if条件语句,判断字符串是否结束。【解题思路】从字符串中查找指定字符,需要使用循环判断结构,循环语句用来遍历字符串,循环条件为字符串没有结束,即当前字符不是‘\0’,判断语句用来判断当前字符是否为指定字符。最后返回指定字符的个数。

  • 第8题:

    请编写函数fun(),该函数的功能是:计算并输出

    S=1+(1+20.5)+(1+20.5+30.5)+…+(1+20.5+30.5+…+n0.5)

    例如,若主函数从键盘给n输入20后,则输出为

    s=534.188884。

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

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

    试题程序:

    include <math. h>

    include <stdio. h>

    double fun(int n)

    {

    }

    main()

    {

    int n;

    double s;

    printf("\n\nInput n: ");

    scanf ("%d", &n);

    s=fun (n)

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

    }


    正确答案:double fun(int n) { int i; double s=0.0s1=0.0; for(i=1;i=n; i++) {s1=s1+pow(i0.5); /*求每—项*/ s=s+s1; /*按公式求出s*/ } return s; }
    double fun(int n) { int i; double s=0.0,s1=0.0; for(i=1;i=n; i++) {s1=s1+pow(i,0.5); /*求每—项*/ s=s+s1; /*按公式求出s*/ } return s; } 解析:我们先用数学的思路读懂该程序,并用1个字符表示“()”内的值。在本程序中用s1来表示题中每个小括号内的值,第1项相当于有1个10.5次方(它还是1),第2项相当于第1项的值加上200.5次方,第3项相当于第2项的值加上30.5次方,…,依次类推。函数pow (x,y)的功能是求出x的y次方,该函数已在库函数math. h>中定义(即可直接使用)。要程序中用s来表示总的结果,每1次循环加1次s1即加1项。

  • 第9题:

    请编写一个函数fun,它的功能是:根据以下公式求π的值(要求满足精度0.0005,即某项小于0.0005时停止迭代):

    程序运行后,如果输入精度0.0005,则程序输出为3.140578。

    注意:部分源程序存在文件PROGl.C文件中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。


    正确答案:
    解析:进入fun函数,根据前面的分析: (1)根据题意,需要把每一项累加起来;若每一累加项的值放在t中,后一项等于前一项累加项的值乘以n/(2*n+1)来求得。
    (2)根据公式将求到的π/2的值放到变量pi中,每累加一次,n的值就增加1,以便求下一个累加项,不断重复,直到满足题目中的精度要求。

  • 第10题:

    程序定义了NxN的二维数组,并在主函数中赋值。请编写函数fun,函数的功能是:求出数组周边元素的平均值并作为函数值返给主函数中的s。

    例如:a数组中的值为:

    则返回主程序后s的值应为:3.375。

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

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


    正确答案:
    解析:该程序功能是求出数组周边元素的平均值。其中周边元素是指第一行的元素的行下标为0,或者第n行的元素行下标为n-1,或者第一列元素的元素列下标为0,或者第n列的元素的列下标为n-1。

  • 第11题:

    编写函数fun(),其功能是计算:

    s作为函数值返回。

    在C语言中可调用log(n)函数求1n(n)。log函数的引

    用说明为:double log(double x)。

    例如,若m的值为20,则fun()函数值为6.506583。

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

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

    试题程序:


    正确答案:


    【解析】题目要求写出程序实现数学表达式的功能,需要用for循环计算累加的结果,调用sqrt函数实现求平方根。循环变量的范围是1~m,每次循环都进行一次累加求和。需要特别注意的是,log函数的形式参数为double型变量,用于循环的计数变量为整数,所以必须强制转换。最后返回所求出的平方根。

  • 第12题:

    问答题
    请编写函数fun(),该函数的功能是:计算并输出给定整数n的所有因子(不包括1和自身)之和。规定n的值不大于1000。例如,在主函数中从键盘给n输入的值为856,则输出为:sum=763。  注意:部分源程序给出如下。  请勿改动主函数main()和其他函数中的任何内容,仅在fun()函数的花括号中填入所编写的若干语句。  试题程序如下:/**********code.c**********/#include int fun(int n){}void main(){ int n,sum; printf(Input n: ); scanf(%d,&n); sum=fun(n); printf(sum=%d,sum);}

    正确答案:

    int fun(int n)
    {
    int s=0,i;
    for(i=2;i<=n-1;i++)
    if(n%i==0)
    s+=i;
    return s;
    }
    解析:

      本题的设计思路是:①遍历从2到n-1的所有整数;②用条件语句找出能被n整除的整数i,并累加求和;③用return语句返回因子的和。

  • 第13题:

    编写函数fun(),函数的功能是:根据以下公式计算s,计算结果作为函数值返回;n通过形参传入。

    S=1+1/(1+2)+1/(1+2+3)+…+1/(1+2+3+…+n)

    例如:若n的值为11时,函数的值为1.833333。

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

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

    试题程序:

    include <conio.h>

    include <stdio.h>

    include <string.h>

    float fun(int n)

    {

    }

    main()

    {

    int n;

    float s;

    clrscr();

    printf("\nPlease enter N: ");

    scanf("%d",&n);

    s=fun(n);

    printf("The result is:%f\n " , s);

    }


    正确答案:float fun(int n) { int is1=0; float s=0.0; for(i=1;i<=n;i++) {s1=s1+i; /*求每一项的分母*/ s=s+1.0/s1; /*求多项式的值*/ } return s; }
    float fun(int n) { int i,s1=0; float s=0.0; for(i=1;i<=n;i++) {s1=s1+i; /*求每一项的分母*/ s=s+1.0/s1; /*求多项式的值*/ } return s; } 解析:本题中用s1来表示式中每一项的分母,而每一项的分母都是其前一项分母加项数。注意由于s1定义成一个整型,所以在s=s+1.0/s1中不能把1.0写成1。

  • 第14题:

    请编写函数fun(),它的功能是求Fibonacci数列中小于t的最大的一个数,结果由函数返回。其中Fibonacci数列F(n)的定义为

    F(0)=0,F(1)=1

    F(n)=F(n-1)+F(n-2)

    例如:t=1000时,函数值为987。

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

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

    试题程序:

    include <conio.h>

    include <math.h>

    include <stdio.h>

    int fun(int t)

    {

    }

    main()

    {

    int n;

    clrscr();

    n=1000;

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

    }


    正确答案:int fun(int t) { int a=1b=1c=0i; /*a代表第n-2项b代表第n-1项c代表第n项*/ /*如果求得的数。比指定比较的数小则计算下一个Fibonacci数对ab得新置数*/ do { c=a+b; a=b; b=c; } while(ct); /*如果求得的数c比指定比较的数大时退出循环*/ c=a; /*此时数c的前一个Fibonacci数为小于指定比较的数的最大的数*/ return c; }
    int fun(int t) { int a=1,b=1,c=0,i; /*a代表第n-2项,b代表第n-1项,c代表第n项*/ /*如果求得的数。比指定比较的数小,则计算下一个Fibonacci数,对a,b得新置数*/ do { c=a+b; a=b; b=c; } while(ct); /*如果求得的数c比指定比较的数大时,退出循环*/ c=a; /*此时数c的前一个Fibonacci数为小于指定比较的数的最大的数*/ return c; } 解析:根据所给数列定义不难发现,该数列最终的结果是由两个数列之和组成,所以可以在循环内部始终把c看成是前两项之和(即第n项),而a始终代表第n-2项,b始终代表第n-1项(通过不断地重新赋值来实现)。应注意,退出循环时得到的数c是大于指定比较的数的最小的数,而它的前一个数就是小于指定比较的数的最大的数。

  • 第15题:

    请编写函数fun(),它的功能是计算下列级数和,和值由函数值返回。

    S=1-x+x2(上标)/2!-x3(上标)/3!+…+ (-1*x) n(上标)/n!

    例如,当n=15,x=0.5时,函数值为0.606531。

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

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

    试题程序:

    include<conio.h>

    include<stdio.h>

    include<math.h>

    double fun(double x, int n)

    {

    }

    main()

    {

    clrscr();

    printf("%f ",fun (0.5,15));

    }


    正确答案:double fun(double x int n) { int ij=1; double s=1.0s1=1.0; for(i=1;i=n;i++) { j=-1*j; s1=s1*i /*各项中的阶乘*/ s=s+j*pow(xi)/s1; /*按公式求出*/ } return s; }
    double fun(double x, int n) { int i,j=1; double s=1.0,s1=1.0; for(i=1;i=n;i++) { j=-1*j; s1=s1*i /*各项中的阶乘*/ s=s+j*pow(x,i)/s1; /*按公式求出*/ } return s; } 解析:本程序中用s1来表示每项的分母(即各项中的阶乘),要注意本程序中s和s1的初值都为1。注意到本题的公式中是加减相间的,这里要学会使用语句j=-1*j来实现。

  • 第16题:

    请编写函数fun(),它的功能是计算:s=(1-In(1)-In(2)-In(3)-…-1n(m))2

    s作为函数值返回。

    在C语言中可调用log(n)函数求In(n)。log函数的引用说明是double log(double x)。

    例如,若m的值为15,则fun()函数值为723.570801。

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

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

    试题程序:

    include <conio.h>

    include <stdio.h>

    include <math.h>

    double fun(int m)

    {

    }

    main()

    {

    clrscr();

    printf("%f\n",fun(15));

    }


    正确答案:double fun(int m) {   int i; double s=1.0; for(i=1;i=m;i++) s=s-log(i); /*计算s=l-In(1)-In(2)-In(3)-…-In(m)*/ return (s*s); /*对s求平方并返回*/ }
    double fun(int m) {   int i; double s=1.0; for(i=1;i=m;i++) s=s-log(i); /*计算s=l-In(1)-In(2)-In(3)-…-In(m)*/ return (s*s); /*对s求平方并返回*/ } 解析:首先,题目要求计算1依次减去1到M的对数,可用从1到M的循环,每次循环都减一个数的对数。该题需要注意,log()函数的形式参数应浩如烟海double型变量,用于循环的基数变量为整数,需要进行强制转换。最后在返回的时求平方。

  • 第17题:

    请编写函数fun,其功能是:计算并输出下列多项式的值:

    例如,在主函数中从键盘给n输入50后,输出为:s=1.718282。

    注意:要求n的值大于1但不大于100。部分源程序在文件PROGl.C中。

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


    正确答案:
    解析:该程序功能是计算并输出多项式值。根据题干中给出的数列,首先推出每一项的表达式,然后再对多项式进行累加求和。

  • 第18题:

    编写函数fun,其功能是:将所有大于1小于整数m的非素数存人XX所指数组中,非素数的个数通过k返回。

    例如,若输入17,则应输出:4 6 8 9 10 12 14 15 16。注意:部分源程序在文件PROGl.C中。

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


    正确答案:
    【考点分析】本题考查:如何判断非素数;循环判断结构;数组的引用。【解题思路】题目要求将l—m之问的非素数存人数组中,应使用循环判断结构。循环语句用来遍历1一m之间的每个数,判断语句用来判断该数是否为素数,若不是素数,则将其存人数组中。这道题目是考查—个数是否为素数的简单延伸,只要掌握了判断素数的方法,问题便能顺利解决。【解题宝典】判定一个数是否为素数,即该数除了能被l和它本身外,不能被任何数整除。代码实现为:for(j=2;j<i;j++)if(i%j==0)/*如余数为0,证明i不是素数·/此语句需要熟记,很多判断素数的题目也可通过此法解决。

  • 第19题:

    …请编写函数。fun能是:判断形参n中的正整数是几位数(输入数据的位数不超过4位),并将结果通过函数值返回。例如:若输入的数据为l23,则输出结果为:输入的数字是3位。

    注意:部分源程序存在PROGl.C中,请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所缩写的若干语句。

    试题程序:


    正确答案:
    【考点分析】主要考察考生对循环跳出的条件的理解,以及理解取数字位数的方法。【解题思路】通过对指定的多位数每次除以10,去掉最后一位,直到为0结束,使用临时变量来统计一个多位数的位数。

  • 第20题:

    请编写函数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的值返回。
    【参考答案】

  • 第21题:

    请编写函数fun,其功能是:计算并输出

    例如,在主函数中从键盘给n输入20后,输出为:s=534.188884。

    注意:要求n的值大于1但不大于100。

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

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


    正确答案:
    解析:该程序功能是对题干中给出的多项式的求解。根据题干中给出的数列,首先推出每一项的表达式,然后再对多项式进行累加求和。

  • 第22题:

    请编写函数proc(),它的功能是计算: s=(1n(1)4-1n(2)+In(3)4-…+1n(m))0.5 在C语言中可调用log(n)函数求1n(n)。 例如,若n1的值为30,则proc()函数值为8.640500。 注意:部分源程序给出如下。 请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。 试题程序:


    正确答案:

    【解析】由题目中所给表达式可知,表达式的值为m项表达式的和然后开平方。可以首先通过m次循环求得m项表达式的和,然后将其和开平方并返回到主函数当中。

  • 第23题:

    请编写一个函数fun,它的功能是:将ss所指字符串中所有下标为奇数位置的字母转换为大写(若该位置上不是字母,则不转换)。

    例如,若输入“aboaEf9”,则应输出“aBe4EF9”。

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

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

    试题程序:


    正确答案:
    【参考答案】【解题思路】该题要求将给定字符串中奇数位置的字母转换为大写,需要先判断奇数位置以及此位置的字符是否是小写字母,如果是再通过其转换方法进行转换。从c语言的学习中知道,只要将小写字母减去32即转成大写字母,将大写字母加上32即转成小写字母。本程序用if语句实现转换功能。