单选题以下函数的功能是计算a的n次方作为函数值返回: double fun(double a,int n) {int i;double s=1.0;for(i=1;i<=n;i++)s=______;return s; } 为实现上述功能,函数中下画线处应填入的是(  )。A s*iB s*aC s+i*iD s+a*a

题目
单选题
以下函数的功能是计算a的n次方作为函数值返回: double fun(double a,int n) {  int i;  double s=1.0;  for(i=1;i<=n;i++)s=______;  return s; } 为实现上述功能,函数中下画线处应填入的是(  )。
A

s*i

B

s*a

C

s+i*i

D

s+a*a


相似考题
参考答案和解析
正确答案: C
解析:
for循环语句,i=1时,s=s*a;i=2时,s=s*a*a=s*a2;i=n时,s=s*an。最后返回s。答案选择B选项。
更多“以下函数的功能是计算a的n次方作为函数值返回: double fun(double a,int n) {  int i;”相关问题
  • 第1题:

    以下正确的函数原型语句是( )。

    A、double fun(int x,int y)

    B、double fun(int x;int y)

    C、double fun(int,int);

    D、double fun(int x,y);


    参考答案C

  • 第2题:

    以下正确的函数原型语句是(48)。

    A.double fun(int x,int y);

    B.double fun(int x;int y);

    C.double fun(int,int);

    D.double fun(int x,y);


    正确答案:C
    解析:函数原型不必包含参数的名字,而只要包含参数的类型。函数原型和函数定义在返回类型、函数名和参数表上必须完全一致。

  • 第3题:

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

    S=1+x+x2/2!3/3!+…/xn/n!

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

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

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

    试题程序:

    include<conio.h>

    include<stdio.h>

    include<math.h>

    double fun(double x, int n)

    {

    }

    main ()

    {

    clrscr ();

    printf ("%f ",fun(0,3,10));

    }


    正确答案:double fun(double xint n) { int i; double s=1.0.s1=1.0; for(i=1;i=n;i++) {s1=s1*i; /*各项中的阶乘*/ s=s+ pow(xi)/s1; /*按公式求出*/ } return s; }
    double fun(double x,int n) { int i; double s=1.0.s1=1.0; for(i=1;i=n;i++) {s1=s1*i; /*各项中的阶乘*/ s=s+ pow(x,i)/s1; /*按公式求出*/ } return s; } 解析:本程序中用s1来表示每项的分母(即各项中的阶乘),要注意本程序中s和s1的初值都为1。

  • 第4题:

    若有以下函数首部: int fun(double x[10],int *n) 则下面针对此函数的函数声明语句中正确的是( )。

    A.int fun(double x, int *n);

    B.int fun(double, int);

    C.int fun(double *x, int n);

    D.int fun(double*, int*);


    正确答案:D
    解析:本题中的fun函数有两个参数,一个类型是double型一维数组,另—个是int型指针。而在C语言中,一维数组用作函数参数和该数组元素的指针类型是等价的。所以本题的正确答案是选项D。

  • 第5题:

    若有以下函数首部 int fun(double x[lO],int *n) 则下面针对此函数的函数声明语句中正确的是______。

    A.int fun(double x, int *n);

    B.int fun(double, int);

    C.int fun(double *x, int n);

    D.iht fun(double*,int*);


    正确答案:D
    解析:函数声明可以照写已定义的函数的首部,再加一个号就成为了对函数的声明,在函数声明中也可以不写形参名,而只写形参的类型,但要保证与函数首部写法上的—致,即函数类型、函数名、参数个数、参数类型和参数顺序相同。字符数组可用指针来表示,所以选顶D正确。

  • 第6题:

    以下fun函数的功能是在N行M列的整型二维数组中,选出一个最大值作为函数值返回,请填空。(设M,N已定义)

    int fun(int a[N][M])

    {int i,j,row=0,col=0;

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

    for(j=0;j<M;j++)

    if(a[i][j]>a[row][col])(row=i;col=j;)

    return(_____);

    }


    正确答案:a[row][col]
    a[row][col] 解析:嵌套循环,依次遍历二维数组的所有元素,从a[0][0]开始,先按行,后按列,a[row][col]先取a[0][0],若后面的元素比他大,则将此i、j值存入row、col中,即记录元素中当前最大值。循环结束返回a[row][col],即数组最大值。

  • 第7题:

    以下sum函数的功能是计算下列级数之和:

    请给函数中的各变量正确赋初值。

    double sum(douLle x,int n)

    { int i;

    double a,b,s;

    【 】

    for(i=1;i<=n;i++) {a=a*x;b=b*i;s=s+a/b;}

    return s;

    }


    正确答案:a=1.0;b=1.0;s=1.0;
    a=1.0;b=1.0;s=1.0; 解析:各种数值型数据间进行混合运算时,不同类型的数据要先转换成同一类型,再进行运算。本题的结果为double型。

  • 第8题:

    请补充函数fun(),该函数的功能是:输出一个N×N矩阵,N由键盘输入,矩阵元素的值为随机数,并计算出该矩阵四周边元素的平均值,结果由函数返回。例如:当N=4时:

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

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

    试题程序;

    include<stdio.h>

    include<conio.h>

    include<stdlib.h>

    define N 20

    double fun(int a[ ][N],int n)

    {

    int i,j;

    int k;

    double s=0.0;

    double aver=0.0;

    printf("*****The array*****\n");

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

    {

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

    {

    a[i][j]=rand()%10;

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

    if(【 】)

    s+=a[i][j];

    }

    printf("\n");

    }

    k=【 】;

    aver=【 】;

    return aver;

    }

    main( )

    {

    int a[N][N];

    int n;

    double S;

    Clrscr( );

    printf("*****Input the dimension Of array N*****\n");

    scanf(“%d”,&n);

    S=fun(a,n);

    printf(“***** THE RESULT *****\n”);

    printf(“The average is %2,3f\n”,S);

    }


    正确答案:i==0||i==n-1||j==0||j==n—1 4*n-4 s/k
    i==0||i==n-1||j==0||j==n—1 4*n-4 s/k 解析:第一空:用二维数组表示n×n矩阵时,周边元素是行下标为0或n-1,列下标为0或n-1的元素,判断时四个条件中只要有一个条件满足,则该元素就是周边元素,所以用“厂运算符。第二空:变量k记录周边元素的个数,在四个顶角上的元素会重复加入,所以要减去4。第三空:变量s保存周边元素的累加和,平均值等于周边元素的累加和除以个数。

  • 第9题:

    以下函数的功能是:计算a的n次方作为函数值返回。 double fun(double a,int n) { int i;double s=1.0; for(i=1;i<=n;i++)s= ; return s; } 为实现上述功能,函数中下划线处应填入的是( )。

    A.s*i

    B.s*a

    C.s+i*i

    D.s+a*a


    答案:B
    解析:s为a的(i-1)次方的结果,所以令s=s*a即可得到a的i次方。

  • 第10题:

    若有函数定义:double fun(int a[10]){...},则在对该函数进行原型声明时,错误的声明语句是()

    • A、double fun(int[])
    • B、double fun(intb[10])
    • C、double fun(inta)
    • D、double fun(int*a)

    正确答案:C

  • 第11题:

    以下正确的函数定义形式是()。

    • A、double FUN(int x;int y)
    • B、double FUN(int x,int y)
    • C、double FUN(int x,int y);
    • D、double FUN(int x,y)

    正确答案:B

  • 第12题:

    单选题
    若已经声明了函数原型“void fun(int a,double b=0.0);”,则下列重载函数声明中正确的是(  )。
    A

    void fun(int a=90,double b=0.0);

    B

    int fun(int a,double B);

    C

    void fun(double a,int B);

    D

    bool fun(int a,double b=0.0);


    正确答案: B
    解析:
    函数重载的原则是至少要在参数个数或参数类型上有所不同。如果只是函数的返回值类型不同,而其他完全相同,则不能作为重载函数来使用。

  • 第13题:

    请补充函数fun(),该函数的功能是:计算N×N维矩阵元素的方差,结果由函数返回。维数N在主函数中输入。例如:

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

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

    试题程序:

    include <stdio.h>

    include <conio.h>

    include <stdlib.h>

    include <math.h>

    define N 20

    double fun(【 】,int n)

    {

    int i,j;

    int k;

    double s=0.0;

    double f=0.0;

    double aver=0.0;

    double sd=0.0;

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

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

    s+=a[i][j];

    aver=【 】;

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

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

    f+=(a[i][j]-aver)*(a[i][j]-aver);

    f/(n*n);

    sd=【 】;

    return sd;

    }

    main()

    {

    int a[N][N];

    int n;

    int i,j;

    double s;

    clrscr();

    printf("***+Input the dimension of

    array N*****\n");

    scanf("%d",&n);

    printf("***** The array *****\n");

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

    {

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

    {

    a[i][j]=rand()%50;

    while(a[i][j]=0)

    a[i][j]=rand()%60;

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

    }

    printf("\n\n");

    }

    s=fun(a,n);

    printf("******* THE RESULT *******\n");

    printf("%4.3f\n",s);

    }


    正确答案:int a[][N] s/(n*n) sqrt(f)
    int a[][N] s/(n*n) sqrt(f) 解析:第一空;由主函数main()中对函数fun()的调用格式,可以知道,函数fun()的第一个参数是N×N的二维整型数组。第二空:平均值等于所有元素的累加和除以个数。第三空;根据公式,方差sd等于对变量f开平方,这里注意对数学库函数的调用。

  • 第14题:

    以下fun函数的功能是:找出具有N个元素的一维数组中的最小值,并作为函数值返回,请填空。(设N己定义)

    int fun(int x[N])

    {int i,k=0

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

    if(x[i]<x[k])k=_____;

    return x[k];

    }


    正确答案:i
    i 解析:循环语句依次查找数组的元素,下标从0到N-1,当x[i]的值小于k时,记录i值即此元素的下标,然后再将其余元素与新的k元素比较,最终求得最小值。所以填i。

  • 第15题:

    有以下函数定义: void fun(int n, double x) {……} 若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是( )。

    A.fun(int y,double m);

    B.k=fun(10,12.5);

    C.fun(x,n);

    D.void fun(n,x);


    正确答案:C
    解析:本题考查函数调用。函数调用时,实参前不需加类型说明,选项A)错误;题目中的函数没有返回值,所以选项B)错误;函数调用前不需要加类型说明,选项D)错误。

  • 第16题:

    以下函数的功能是:求x的y次方,请填空。double fun(double x,int y){ int i; double z; for(i=1,z=x;i<y;i++) z=z*; return z;}


    正确答案:x
    本题中函数的功能是累积变量以求得变量的y次方,所以本题答案为x。

  • 第17题:

    请编写函数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型变量,用于循环的基数变量为整数,需要进行强制转换。最后在返回的时求平方。

  • 第18题:

    有以下函数定义:void fun(int n, double x) { …… }若以下选项中的变量都已正确定义并赋值,则对函数fun正确调用的语句是A.fun(int y,double m); B.k=fun(10,12.5); C.fun(x,n); D.void fun(n,x);


    正确答案:C
    选项A中,fun(int y,double m);中变量y和m前不需要类型说明;因为函数fun(10,12.5)没有返回值,所以选项B错误;调用函数fun时,不需要在函数前面加上void,所以选项D错误。故本题的正确答案是选项C。

  • 第19题:

    若有以下函数首部:

    int fun(double x[10],int*n)

    则下面针对此函数的函数声明语句中正确的是( )。

    A.int fun(double,int);

    B.int fun(double木,int*);

    C.int mn(double*x,int n);

    D.int fun(double x,intint*n)


    正确答案:B
    函数声明的一般形式为:“类型说明符被调函数名(类型形参,类型形参,……);”或“类型说明符被调函数名(类型,类型,……);”由于函数首部为intfun(doublex[10],int*n),因此B选项正确。

  • 第20题:

    有以下函数定义; void fun(int n,double x){......} 若以下选项中的变量都已正确定义并赋值,则对函数fun正确调用语句是______。

    A.fun(int y,double m);

    B.k=fun(10,12.5);

    C.fun(x,n);

    D.void fun(n,x);


    正确答案:C
    解析:函数调用的一般形式为;函数名(实参表列);,实参与形参的个数应相等,类型应一致,在调用函数时,不要指定其返回类型,对于返回类型为void的函数,不能作为赋值表达式的组成部分,所以选C。

  • 第21题:

    对于函数定义:  void FUN(int n, double x)  {  … }  若以下选项中的变量都已定义并赋值,则对函数FUN的正确调用的语句是()。 

    • A、k=FUN(x,n);
    • B、void FUN(n,x);
    • C、FUN(int y,double m);
    • D、FUN(10,12.5);

    正确答案:D

  • 第22题:

    已知一个函数的定义如下:double fun(int x,double y){⋯⋯}则该函数正确的函数原型声明为()

    • A、double fun(intx,doubley)
    • B、fun(int x,doubley)
    • C、double fun(int,double);
    • D、fun(x,y);

    正确答案:C

  • 第23题:

    单选题
    若有以下函数首部int fun(double x[10],int*n)则下面针对此函数的函数声明语句中正确的是(  )。
    A

    int fun(double*,int*);

    B

    int fun(double,int);

    C

    int fun(double *x,int n);

    D

    int fun(double x,int*n);


    正确答案: C
    解析:
    函数声明应该和函数调用的参数保持一致,声明时的参数(形参)名字可以省略,数组在参数传递过程中变成指针。答案选择A选项。

  • 第24题:

    单选题
    对于函数定义:  void FUN(int n, double x)  {  … }  若以下选项中的变量都已定义并赋值,则对函数FUN的正确调用的语句是()。
    A

    k=FUN(x,n);

    B

    void FUN(n,x);

    C

    FUN(int y,double m);

    D

    FUN(10,12.5);


    正确答案: D
    解析: 暂无解析