试题24有以下程序#include <stdio.h>double f(double x);main(){ double a=0; int i;for(i=0;i<30;i+=10) a+=f((double)i);printf(“%5.0f\n”, a);}double f(double x){ return x*x+1;}程序运行后的输出结果是()A.503B.401C.500D.1404

题目

试题24

有以下程序

#include <stdio.h>

double f(double x);

main()

{ double a=0; int i;

for(i=0;i<30;i+=10) a+=f((double)i);

printf(“%5.0f\n”, a);

}

double f(double x)

{ return x*x+1;}

程序运行后的输出结果是()

A.503

B.401

C.500

D.1404


相似考题
更多“试题24有以下程序#include &lt;stdio.h&gt;double f(double x);main(){ double a=0; int i;for(i ”相关问题
  • 第1题:

    请补充函数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开平方,这里注意对数学库函数的调用。

  • 第2题:

    有以下程序include using namespacestd;class Complex{public:Complex (doubler=0, d

    有以下程序 #include <iostream> using namespace std; class Complex { public: Complex (double r=0, double i =0 :re(r) ,im (i) {} double real() const {return re;} double imag() const { return im;} Complex operator + (Complex c} const {return Complex(re+c.re, im+c.im);} privane: double re,im; }; int main { Complex a =Complex (1,1)+Complex(5); cout<<a.real()<<'+'<<a.imag() << 'i' <<endl return 0; } 程序执行后的输出结果是

    A.6+6i

    B.6+1i

    C.1+6i

    D.1+1i


    正确答案:B
    解析:本题考核类与对象、运算符重载。运算符“+”在类Complex中作为成员函数重载,实现两个对象的数据成员的相加。所以main函数中语句“Complexa=Complex(1,1)+Complex(5);”的作用相当于“Complexa(1+5,1);”即对象a的数据成员re的值为6,imag的值为1,所以输出为6+1i。

  • 第3题:

    下列给定程序中,函数fun()的功能是:根据整型参数m,计算如下公式的值。

    y=1/(100×100)+1/(200×200)+1/(300×300)+…+1/(m×m)

    例如,若m=2000,则应输出0.000160。

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

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

    试题程序:

    include <conio.h>

    include <stdio. h>

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

    fun (int m)

    { double y=0, d;

    int i;

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

    for (i=100, i<=m, i+=100)

    {d= (double) i* (double) i;

    y+=l. 0/d;

    }

    return (y);

    }

    main ( )

    { int n=2000;

    clrscr();

    printf("\nThe result is %lf\n",fun(n));


    正确答案:(1)错误:fun(int m) 正确:double fun(int m) (2)错误:for(i=100i=mi+=100) 正确:for(i=100;i=m;i+=100)
    (1)错误:fun(int m) 正确:double fun(int m) (2)错误:for(i=100,i=m,i+=100) 正确:for(i=100;i=m;i+=100) 解析:题目要求在函数fun()中求级数前m项和,可用循环语句,每次计算级数中的一项,然后累加。此题的难点就在定义fun(int m)中的m的定义,由后面函数的应用可以确定应该定义成double fun(int m)。for(i=100,i=m,i+=100)中是一个简单的基础错误。

  • 第4题:

    有下列程序: int funl(double a){return a*=a;} int fun2(double x,double y) {double a=0,b=0; a=funl(x);b=funl(y);return(int)(a+b); } main( ) {double w;w=fun2(1.1,2.0),……} 程序执行后变量w中的值是( )。 、

    A.5.21

    B.5

    C.5.0

    D.0.0


    正确答案:C
    子函数funl(doublea)的功能是返回a的平方值的整数部分。子函数fun2(doubleX,doubley)的功能是返回X的平方值的整数部分与Y的平方值的整数部分的和。又因为题中变量W的定义为double型,函数fun(2)的定义为int型,按照各类数值型数据间的混合运算,整型数据被转换为实型数据。所以双精度型变量w的值为5.0。

  • 第5题:

    下列程序的执行结果为【 】。include class Point{public:Point(double i, double j)

    下列程序的执行结果为【 】。

    include <iostream. h>

    class Point

    {

    public:

    Point(double i, double j) { x=i; y=j;}

    double Area() const { return 0.0;}

    private:

    double x, y;

    };

    class Rectangle: public Point

    {

    public:

    Rectangle(double i, double j, double k, double 1)

    double Area() const {return w * h;}

    private:

    double w, h;

    };

    Rectangle: :Rectangle(double i, double j, double k. double 1): Point(i,j).

    {

    w=k, h=1

    }

    void fun(Point &s)

    {

    cout<<s. Area()<<end1;

    }

    void main( )

    {

    Rectangle rec(3.0, 5.2, 15.0. 25.0);

    fun(rec)

    }


    正确答案:×
    0 解析:注意本题不同于基类的指针指向派生类对象。Fun函数的形参是Point基类的引用。在可以用基类对象的地方,均可以用派生类替代,完成基类的行为。反之,在使用派生类对象的地方却不能用基类对象代替,这是因为派生类中的某些行为在基类对象中是不存在的。本题调用的是Point类对象的面积函数,其值永远为0。

  • 第6题:

    以下函数的功能是:求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。

  • 第7题:

    有以下程序: include using namespace std; class Complex{public: Complex(double

    有以下程序: #include <iostream> using namespace std; class Complex { public: Complex(double r=0,double i=0):re(r),im(i){ double zeal() const {return re;} double imag() const {return im;} Complex operator+(Complex c) const { return Complex(re+c.re,im+c.im);} private: double re,im; }; int main() Complex a=Complex(1,1)+Complex(5); cout<<a.real()<<'+'<<a.imag()<<'i'<<end 1; return 0; }程序执行后的输出结果是______。

    A.6+6i

    B.6+1i

    C.1+6i

    D.1+1i


    正确答案:B
    解析:类对“+”重载后,对应的变量相加。

  • 第8题:

    下列给定程序中,函数fun()的功能是:计算

    S=f(-n)+f(-n+1)+…+f(0)+f(1)+f(2)+…f(n)的值。

    例如,当n为5时,函数值应为10.407143。f(x)函数定义如下:

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

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

    试题程序:

    include <conio. h>

    include <stdio. h>

    include <math. h>

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

    f (double x)

    {

    if (x==0.0 || x==2.0)

    return 0.0;

    else if (x<0.0)

    return (x-1) / (x-2);

    else

    return (x+1) / (x-2);

    }

    double fun(int n)

    {

    int i; double s=0.0,y;

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

    { y=f(1.0*i); s+=y;}

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

    return s

    }

    main()

    { clrscr();

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

    }


    正确答案:(1)错误;(1)f(double x) 正确:double f (double x) (2)错误;return s 正确:return s;
    (1)错误;(1)f(double x) 正确:double f (double x) (2)错误;return s 正确:return s; 解析:该程序的流程是,fun()程序对f (n)项循环累加,fun()程序采用条件选择语句计算函数f(x)的值。本题错误在于未定义函数f(double x)的返回值类型。C语言规定,在未显式声明的情况下,函数返回值默认为int 型。

  • 第9题:

    有以下程序:include include using namespace std;class point{private: doub

    有以下程序: #include <iostream> #include <math> using namespace std; class point { private: double x; double y; public: point(double a,double b) { x=a; y=b; } friend double distance(point a,point b) ; }; double distance(point a,point b) { return sqrt ((a.x-b.x)* (a.x-b.x)+(a.y-b.y)*(a.y-b.y)); } int main ( ) { point pl(1,2); point p2 (5, 2); cout<<distance (pl,p2) <<end1; return 0; } 程序运行后的输出结果是( )。

    A.1

    B.5

    C.4

    D.6


    正确答案:C
    解析:本题考核友元函数的应用。分析程序:①类point中定义了两个私有成员x和y,以及一个友元函数distance()。从而,函数distance可以访问类point中的任何成员。②在函数distance()中,返回值为sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y))。由此可知,函数distance()的功能是计算a、b两点之间的距离。③在主函数中,先定义两点:p1(1,2)和p2(5,2)。然后调用函数distance()计算两点之间的距离为4,所以程序最后输出为4。

  • 第10题:

    有以下程序; int f1(double A) { return a*a; } int f2(double x,double y) { double a, b; a=n(x); b=f1(y); return a+b; } main() { double w; w=f2(1.1,2.0); ┇ } 变量w中的值是( )

    A.5.21

    B.5

    C.5

    D.0


    正确答案:C

  • 第11题:

    如果已经定义了方法int f(bool b, int i),则以下方法中,哪一个不是合法的重载方法()。

    • A、double f(bool b, int i)
    • B、int f(double d, int i)
    • C、int f(bool b,int i, double d)
    • D、double f(bool d, int j)

    正确答案:D

  • 第12题:

    单选题
    有以下程序:#includefloat fun(double a){ double x; x=a-(int)a; return x;}main(){ double a=3.1415; printf(%f,fun(a));}程序的运行结果是(  )。
    A

    3.000000

    B

    3.141500

    C

    0.141500

    D

    0.000000


    正确答案: A
    解析:
    在fun函数中,x=a-(int)a表示x取值为a的小数部分,因此,输入a为3.1415,输出x=0.141500。答案选择C选项。

  • 第13题:

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

    例如,给定的10个数为15.0,19.0,16.0,15.0,18.0,12.0, 15.0,11.0,10.0,16.0,输出为s=2.758623。

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

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

    试题程序:

    include<stdio.h>

    include<math. h>

    double fun (double x[10])

    {

    int i;

    double avg=0.0;

    double sum=0.0;

    double abs=0.0;

    double sd;

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

    【 】;

    avg=sum/10;

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

    【 】;

    sd=【 】;

    return sd;

    }

    main()

    {

    double s,x[10]={15.0,19.0,16.0,15.0,

    18.0,12.0,15.0,11.0,10.0,16.0};

    int i;

    printf("\nThe original data is :\n");

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

    printf("%6.1f",x[i]);

    printf("\n\n");

    s=fun(x);

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

    }


    正确答案:sum+=x[i] abs+=(x[i]-avg)*(x[i]-avg) sqrt(abs/10)
    sum+=x[i] abs+=(x[i]-avg)*(x[i]-avg) sqrt(abs/10) 解析:第一空:根据求方差的公式可知,首先要求出10个数的平均值,此处是利用for循环对10个数求累加和。第二空:使用for循环求出每个数与平均值之差的平方和。第三空:通过开方,求出10个数的方差,此处需要注意对库函数sqrt()的调用。

  • 第14题:

    有以下程序include using namespace std;class Complex{public:Complex(double r=0,d

    有以下程序#include <iostream>using namespace std;class Complex{public: Complex(double r=0,double i=0):re(r),im(i){ double real() const {return re;} double imag() const { return im; } Complex operator+(Complex c) const {return Complex(re+c.re,im+c.im);}private: double re,im;};int main(){ Complex a =Complex(1,1)+ Complex(5); cout<<a.real()<<'+'<<a.imag()<<'i'<<end1; retura 0;}

    A.6+6i

    B.6+1i

    C.1+6i

    D.1+1i


    正确答案:B

  • 第15题:

    分析以下程序执行结果【】。 include int f (int x, int y){return x,y; } double f (d

    分析以下程序执行结果【 】。

    include<iostream.h>

    int f (int x, int y){

    return x,y;

    }

    double f (double x, double y) {

    return x,y;

    }

    void main() {

    int a=4, b=6;

    double c=2.6, d=7.4;

    cout<<f (a, b) <<","<<f (c, d) <<end1;

    }


    正确答案:24 19.24
    24, 19.24

  • 第16题:

    有以下程序,输出结果()。includeusing namespace std;class Complex{public:Complex(d

    有以下程序,输出结果( )。 #include<iostream> using namespace std; class Complex { public: Complex(double r=0,double i=0):re(r),im(i){} double real()const{return re;} double imagoconst{return im;} Complex operator+(Complex C) const {return Complex(re+c.re,im+c.im);} private: double re,im; }; int main() { Complex a=Complex(1,1)+Complex(5); cout<<a.real()<<'+'<<a.imag()<<'i'<<end1; return 0; }

    A.6+i

    B.2i+5

    C.6+1i

    D.1i+5


    正确答案:C
    解析:由主函数入手,调用“Complex a=Complex(1,1)+Complex(5);”,实际是“Complex a=Complex(1,1)+Complex(5,0);”,调用“return Complex(re+c.re,im+c.im);”结果为:6+1i。

  • 第17题:

    有以下程序:int fun1 (double a){ return a * =a;}int fun2 ( double x, double y ){ double a=0,b=0; a = fun1 (x) ;b = fun1 (y); return(int) (a + b);} main() { doublew;w=fun2(1.1,2.0);……} 程序执行后变量w中的值是( )。

    A.5.21

    B.5

    C.5

    D.0


    正确答案:C
    解析:程序调用函数fun2时,通过fun2调用函数fun1,第一次调用fun1返回的值为1,然后将1赋值给a,由于a为double型,系统自动将1转换为1.000000赋给变量a,以此类推可得b的值为4.000000;然后通过return(int)(a+b);将a+b的值强制转换为int型返给主函数,由于w为double型,所以返回的整型值5被转换为double型,故输出结果为5.0。

  • 第18题:

    写出下列程序的运行结果【】。 include void func(double x, int &part1, double

    写出下列程序的运行结果【 】。

    include<iostream. h>

    void func(double x, int &part1, double &part2){

    part1=int(x)+500:

    part2=(x+500-part1)*100;

    }

    void main( ){

    int n;

    double x, f;

    x=1001. 0103;

    func (x, n, f):

    cout<<"Part 1="<<n<<" , part2="<<f<<end1

    }


    正确答案:part1=1501 part2=1.03
    part1=1501, part2=1.03

  • 第19题:

    以下程序的输出结果是【】。 include int add(int x,int y) { retum X+y; } dOuble ad

    以下程序的输出结果是【 】。

    include<iostream.h>

    int add(int x,int y)

    {

    retum X+y;

    }

    dOuble add(dOUble x,double y)

    {

    return x+y;

    }

    void main()

    {

    int a=4,b=6;

    double c=2.6,d=7.4;

    cout<<add(a,b)<<",”<<add(C,d)<<endl;

    }


    正确答案:1010
    10,10

  • 第20题:

    有以下程序: #include<stdio.h> double f(double x); main( ) {double a=0; int i; for(i=0;i<30;i+=10)a+=f((double)i); printf("%5.of\n",a); } double f(double x) { return x*x+1; } 程序运行后的输出结果是( )。

    A.503

    B.401

    C.500

    D.1404


    正确答案:A
    此题是一个简单的函数调用,当i=0并且i<30,执行i+=10,并且调用函数f,所以当i=0时,结果为1,当i=10时,结果为101,当i=20时,结果为401,所以a=1+101+401=503。

  • 第21题:

    有以下程序 int fun1 (double a){return a*=a;} int fun2 (double x,double y) { double a=0,b=0; a=fun1(x);b=fun1(y); return(int)(a+b); } main() {double w;w=fun2(1.1,2.0);......} 程序执行后变量W中的值是______。

    A.5.21

    B.5

    C.5

    D.0


    正确答案:C
    解析:此题考核的是数值类型的定义与强制转换。本题在进行调用函数fun2()时,又对函数fun1()进行了调用,由于函数 fun1()定义为整型,所以第一次调用fun1()时返回的值为1,然后再将1赋值给a,此时由于a为double型,则系统自动类型转换,将1转换成了1.000000赋值给了变量a,以此类推,得b的值为4.000000,然后诵过“return(int)(a+b);”将a+b的值强制转换为int型5返回给主函数,此时又由w的类型为double,所以返回的整型值5又被转换为double型。故输出结果为5.0。

  • 第22题:

    有以下程序

    #include<stdio.h>

    double f(double x);

    main()

    { double a=0;int i;

    for(i=0;i<30;i+=10) a+=f((double)i);

    printf("%5.0f\n",a);

    }

    double f(double x)

    {return x*x*i;}

    程序运行后的输出结果是

    A.503

    B.401

    C.500

    D.1404


    正确答案:A
    解析:考察函数的基础知识,当i分别为0、10、20时a分别为1,102,503,所以结果为503,选项A正确。

  • 第23题:

    单选题
    有以下程序#includeint fun1(double a){ return (int)(a*= a);}int fun2(double x,double y){ double a = 0,b = 0; a = fun1(x); b = fun1(y); return (int)(a+b);}main(){ double w; w = fun2(1.1,2.0); printf(%4.2f,w);}程序执行后输出结果是(  )。
    A

    5

    B

    5.00

    C

    5.21

    D

    0.0


    正确答案: A
    解析:
    fun1(1.1)的值为1,fun1(2.0)的值为4,所以fun2(1.1,2.0)函数返5,%4.2f要求输出的实数宽度为4,其中小数点后有2位,按格式输出后为5.00。答案选择B选项。