请编写一个函数fun(int x,int n),该函数返回x的n次幂的值,其中x和n都是非负整数。x的n次幂的计算方法是1与x相乘n次,如x的20次幂的计算为1与x相乘20次,注意:部分源程序已存在文件test30_2.cpp中。请勿修改主函数main和其他函数中的任何内容,仅在函数fun的花括号中填写若干语句。如输入3和4,输出结果如下:3 481文件test30_2.cpp清单如下:include<iostream.h>double fun(int x, int n){}void main ( ){i

题目

请编写一个函数fun(int x,int n),该函数返回x的n次幂的值,其中x和n都是非负整数。x的n次幂的计算方法是1与x相乘n次,如x的20次幂的计算为1与x相乘20次,

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

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

如输入3和4,输出结果如下:

3 4

81

文件test30_2.cpp清单如下:

include<iostream.h>

double fun(int x, int n)

{

}

void main ( )

{

int x,n;

cin>>x>>n;

cout<<fun(x,n)<<end1;

}


相似考题
更多“请编写一个函数fun(int x,int n),该函数返回x的n次幂的值,其中x和n都是非负整数。x的n次幂的计算 ”相关问题
  • 第1题:

    请编写函数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来实现。

  • 第2题:

    请编写一个函数fun(),它的功能是:找出一维数组元素中最大的值和它所在的下标,最大值和它所在的下标通过形参传回。数组元素中的值已在主函数中赋予。

    主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标。

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

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

    试题程序:

    include<stdlib.h>

    include<stdio.h>

    void fun(int a[],int n, int *max,int *d)

    {

    }

    main()

    {

    int i, x[20], max, index, n=10;

    randomize();

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

    {

    x[i]=rand()%50;

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

    /*输出一个随机数组*/

    }

    printf("\n");

    fun(x,n,&max,&index);

    printf("Max=%5d,Index=%4d\n",max,index);

    }


    正确答案:void fun(int a[]int nint *maxint *d) { int i; *max=a[0]; *d=0; for(i=0;in;i++) /*将最大的元素放入指针max所指的单元最大元素的下标放入指针d所指的单元*/ if(*maxa[i]) {*max=a[i];*d=i;} }
    void fun(int a[],int n,int *max,int *d) { int i; *max=a[0]; *d=0; for(i=0;in;i++) /*将最大的元素放入指针max所指的单元,最大元素的下标放入指针d所指的单元*/ if(*maxa[i]) {*max=a[i];*d=i;} } 解析:该程序直接使用形参max和d,由于它们都是指针变量,所以要引用它所指向的变量时要对它进行指针运算,也即*号运算。

  • 第3题:

    6、下列系统(其中y(n)为输出序列,x(n)为输入序列)中哪个属于线性系统?()

    A.y(n)=g(n)x(n)

    B.y(n)=2x(n)+3

    C.y(n)=x(n)的平方

    D.y(n)=e的x(n)次幂


    y[n]= 2x[n];y[n]=x[n]+x[n+1]

  • 第4题:

    请编写一个函数unsigned fun (unsigned w),w 是一个大于 10的无符号整数,若w是n(n≥2)位的整数,则函数求出w的后 n-1位的数作为函数值返回。

    例如:w值为5923,则函数返回923;若w值为923,则函数返回23。

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

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

    试题程序:

    include<conio. h>

    include<stdio. h>

    unsigned fun(unsigned w)

    {

    }

    main()

    {

    unsigned x;

    clrscr ();

    printf("Enter a unsigned integer

    number: ");

    scanf ("%u",&x);

    printf("The original data is:%u\n",x);

    if (x<10)

    printf ("Data error! ");

    else

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

    }


    正确答案:unsigned fun (unsigned w) { if(w>=10000) return w%10000; /*求出n位整数w的后n-1位的数*/ if(w>=1000) return w%1000; if(w>=100) return w%100; if(w>=10) return w%10; }
    unsigned fun (unsigned w) { if(w>=10000) return w%10000; /*求出n位整数w的后n-1位的数*/ if(w>=1000) return w%1000; if(w>=100) return w%100; if(w>=10) return w%10; } 解析:我们首先应该明白无符号整数的定义形式,若它大于10000(5位)时,将10000对它求余则结果为后4位;当它大于1000(4位)时,将1000对它求余则结果为后3位,花此类推。特别注意这里所有if()的顺序不能颠倒。

  • 第5题:

    下列系统(其中y(n)为输出序列,x(n)为输入序列)中哪个属于线性系统?()

    A.y(n)=g(n)x(n)

    B.y(n)=2x(n)+3

    C.y(n)=x(n)的平方

    D.y(n)=e的x(n)次幂


    y(n)=x(n)-x(n-1)