niusouti.com

对于三个函数f(n)=2008n3+8n2+96000,g(n)=8n3+8n+2008和h(n)=8888nlogn+3n2,下列陈述中不成立的是 ( )A.f(n)是O(g(n))B.g(n)是O(f(n))C.h(n)是O(nlogn)D.h(n)是O(n2)

题目

对于三个函数f(n)=2008n3+8n2+96000,g(n)=8n3+8n+2008和h(n)=8888nlogn+3n2,下列陈述中不成立的是 ( )

A.f(n)是O(g(n))

B.g(n)是O(f(n))

C.h(n)是O(nlogn)

D.h(n)是O(n2)


相似考题
更多“对于三个函数f(n)=2008n3+8n2+96000,g(n)=8n3+8n+2008和h(n)=8888nlogn+3n2,下列陈述中不成立的 ”相关问题
  • 第1题:

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

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

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

    最后调用函数writeDat(),把结果输出到文件OUT10.DAT中。

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

    注意:部分源程序已给出。

    请勿改动主函数main()和写函数WriteDat()的内容。

    试题程序:

    include<stdio.h>

    int jsValue(int t)

    {

    }

    main()

    {

    int n;

    n=1000;

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

    writeDat();

    }

    writeDat()

    {

    FILE *in, *out;

    int n,s;

    ut = fopen("OUT10.DAT", "w");

    s = jsValue(1000); printf("%d",s);

    fprintf(out, "%d\n", s);

    fclose(out);

    }


    正确答案:int jsValue(int t) { int f1=0f2=1fn; fn=f1+f2; while(fn=t) {f1=f2;f2=fn;fn=f1+f2;} /*如果当前的Fibonacci数不大于t则计算下一个 Fibonacci数*/ return fn; /*返回Fibonacci数列中大于t的最小的一个数*/ }
    int jsValue(int t) { int f1=0,f2=1,fn; fn=f1+f2; while(fn=t) {f1=f2;f2=fn;fn=f1+f2;} /*如果当前的Fibonacci数不大于t,则计算下一个 Fibonacci数*/ return fn; /*返回Fibonacci数列中大于t的最小的一个数*/ } 解析:解答本题的关键是要充分理解题意,只有理解了题意本身的数学过程,才能把数学过程转化为程序逻辑。根据已知数列,我们不难发现:Fibonacci数列中,从第三项开始,每一项都可以拆分为前两项之和。本题要求找到该数列中“大于t的最小的一个数”。这里可以借助一个while循环来依次取数列中的数,直到出现某一项的值大于t,那么这一项就是“大于t的最小的一个数”。注意:在循环体内部,我们用变量f1始终来表示第n项的前面第二项,用变量f2来始终表示第n项的前面第一项。这就实现了变量的活用与巧用。

  • 第2题:

    请编写函数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是大于指定比较的数的最小的数,而它的前一个数就是小于指定比较的数的最大的数。

  • 第3题:

    若有以下程序includevoidf(intn);main() (voidf(intn); f(5); }void f(intn) {printf(

    若有以下程序 #include <stdio.h> void f(int n); main() ( void f(int n); f(5); } void f(int n) { printf("%d\n",n); } 则以下叙述中不正确的是

    A.若只在主函数中对函数f进行说明,则只能在土函数中正确调用函数f

    B.若在主函数前对函数f进行说明,则在主函数和其后的其他函数中都可以正碗调用函数f

    C.对于以上程序,编译时系统会提示出错信息:提示对f函数重复况明

    D.函数f无返回值,所以可用void将其类型定义为无值型


    正确答案:C
    解析:本题考核的知识点是函数说明的方法。若一个函数定义在主调函数之后,其返回值不是int或char型,则必须对之进行函数说明。可在函数外说明也可以在函数内说明,在函数外说明,在其后的所有函数均可调用该函数,若在函数内说明,则只能在本函数内调用该函数。函数只能定义一次,但函数说明可以出现多次,因此选项C是错误的。所以,4个选项中C为所选。

  • 第4题:

    请编写一个函数long Fibo(int n), 该函数返回n的Fibonacci数。规则如下:n等于1或者2时,Fibonacci数为1,之后每个Fibonacci数均为止前两个数之和, 即:F(n)=F(n-1)+F(n-2)

    注意:清使用递归算法实现该函数。

    部分源程序已存在文件test1_2.cpp中。

    请勿修改主函数main和其他函数中的任何内容,仅在函数Fibo的花括号中填写若干语句。如n=8时,结果是21。

    文件test1_2.cpp清单如下:

    include<iostream.h>

    corlsh int N=8;

    long Fibo(int n);

    void main()

    {

    long f=Fibo(N);

    couk<<f<<endl;

    }

    long Fibo(int n)

    {

    }


    正确答案:long Fibo(int n) { if(n==1)return 1L; else if(n==2) return 1L; else return Fibo(n-1)+Fibo(n-2); }
    long Fibo(int n) { if(n==1)return 1L; else if(n==2) return 1L; else return Fibo(n-1)+Fibo(n-2); } 解析:本题考查的是考生对于递归函数的熟练掌握。递归是指在调用函数的过程中出现调用该函数自身,这里递归的结束条件是n等于1或2,即已知数列前两项为1。其调用过程如下:如果函数的参数为l或者2就把返回值1返回调用函数;否则,就使用递推公式Fibo(n)=Fibo(n-1)+Fibo(n-2),把n-1和n-2作为参数调用原函数,即这是一个递归求值的过程(递推的过程)。

  • 第5题:

    F(n)=1 n>8 n<12

    F(n)=2 n<2

    F(n)=3 n=6

    F(n)=4 n=other

    使用+ - * /和 sign(n)函数组合出 F(n)函数

    sign(n)=0 n=0

    sign(n)=-1 n<0

    sign(n)=1 n>0


    正确答案:
     

  • 第6题:

    请编写函数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项。

  • 第7题:

    利用评价函数f(n)=g(n)+h(n)来排列OPEN表节点顺序的图搜索算法称为()

    • A、深度优先算法
    • B、宽度优先算法
    • C、盲搜索算法
    • D、A算法

    正确答案:D

  • 第8题:

    设有以下三个函数:f(n)=2In4+n2+1000,g(n)=15n4+500n3,h(n)=500n3.5+nlogn请判断以下断言正确与否: (1)f(n)是O(g(n)) (2)h(n)是O(f(n)) (3)g(n)是O(h(n)) (4)h(n)是O(n3.5) (5)h(n)是O(nlogn)


    正确答案: (1)对
    (2)错
    (3)错
    (4)对
    (5)错

  • 第9题:

    若有以下程序 #include void f(int n) main() { void f(int n); f(5); } void f(int n); { printf("%d/n",n); } 则以下叙述不正确的是()

    • A、若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f
    • B、若在主函数前对函数f进行说明,则在主函数和其它函数中都可以正确调用函数f
    • C、对于以上程序,编译时系统会出提示出错信息:提示对f函数重复说明
    • D、函数f无返回值,所以可用void将其类型定义为无值型

    正确答案:C

  • 第10题:

    记号Ω的定义正确的是()。

    • A、O(g(n))={f(n)∣存在正常数c和n0使得对所有n≧n0有:0≦f(n)≦cg(n)}
    • B、O(g(n))={f(n)∣存在正常数c和n0使得对所有n≧0有:0≦g(n)≦(n)}
    • C、O(g(n))={f(n)∣对于任何正常数c>0,存在正数和n0>0使得对所有n≧n0有:0≦f(n)<cg(n)}
    • D、O(g(n))={f(n)∣对于任何正常数c>0,存在正数和n0>0使得对所有n≧n0有:0≦cg(n)<f(n)}

    正确答案:B

  • 第11题:

    问答题
    对下列各组函数f(n)和g(n),确定f(n)=O(g(n))或f(n)=Ω(g(n))或f(n)=θ(g(n)),并简要说明理由。 (1)f(n)=2n;g(n)=n! (2)f(n)=√n;g(n)=logn2 (3)f(n)=100;g(n)=log100 (4)f(n)=n3;g(n)=3n (5)f(n)=3n;g(n)=2n

    正确答案: (1)f(n)=O(g(n)),因为g(n)的阶比f(n)的阶高。
    (2)f(n)=Ω(g(n)),因为g(n)的阶比f(n)的阶低。
    (3)f(n)=θ(g(n)),因为g(n)与f(n)同阶。
    (4)f(n)=O(g(n)),因为g(n)的阶比f(n)的阶高。
    (5)f(n)=Ω(g(n)),因为g(n)的阶比f(n)的阶低。
    解析: 暂无解析

  • 第12题:

    单选题
    以下关于渐进记号的性质是正确的有:()
    A

    f(n)=Θ(g(n)),g(n)=Θ(h(n))→f(n)=Θ(h(n))

    B

    f(n)=O(g(n)),g(n)=O(h(n))→h(n)=O(f(n))

    C

    O(f(n))+O(g(n))=O(min{f(n),g(n)})

    D

    f(n)=O(g(n))→g(n)=O(f(n))


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

  • 第13题:

    学生的记录由学号和成绩组成,N名学生的数据已存放在主函数的结构体数组s中,请编写函数fun,它的功能是:把低于平均分的学生数据放在b所指的数组中,低于平均分的学生人数通过形参n传回,平均分通过函数值返回。

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

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

    [试题源程序]

    include<stdio.h>

    define N 8

    typedef struct

    {

    char num[10];

    double s;

    }STREC;

    double fun(STREC *a, STREC *b, int *n)

    {

    }

    void main()

    {

    STREC s[N]={{"GA05", 85},

    {"GA03", 76}, {"GA02", 69}, {"GA04", 85},

    {"GA01", 91}, {"GA07", 72}, {"GA08", 64},

    {"GA06", 87}};

    STREC h[N], t; FILE *out;

    int i, j, n;

    double ave;

    ave=fun(s, h, &n);

    printf("The %d student data which is lower than %7.3 f:\n", n, ave);

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

    printf("%s %4.1f\n", h[i]. num, h[i].s);

    printf("\n");

    ut=fopen("out.dat", "W");

    fprintf(out, "%d\n%7.3f\n", n, ave);

    for(i=0; 2<n-1; i++)

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

    if(h[i]. s>h[j].s)

    {

    t=h[i];

    h[i]=h[j];

    h[j]=t;

    }

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

    fprintf(out, "%4.1f\n", h[i].s);

    fclose(out);

    }


    正确答案:int fun(STREC *a STREC *b int *n) { double ave=0.0; int i j=0; *n=0; for(i=0; iN; i++) ave+=a[i].s; ave/=N; for(i=0; iN; i++) if(a[i]. save) { b[j]=a[i]; (*n)++; j++; } return ave; }
    int fun(STREC *a, STREC *b, int *n) { double ave=0.0; int i, j=0; *n=0; for(i=0; iN; i++) ave+=a[i].s; ave/=N; for(i=0; iN; i++) if(a[i]. save) { b[j]=a[i]; (*n)++; j++; } return ave; } 解析:本题的设计思路是:(1)定义两个变量,分别用于保存总分和平均值,定义循环变量并赋初值:(2)利用循环语句遍历所有学生的分数,累加求和并计算初值;(3)再次遍历结构体数组,找出低于平均分的分数,把该学生的记录保存在形参数组b中,并记录其个数;(4)用return语句返回平均值。

  • 第14题:

    若有以下程序:includevoid f(int n);main(){void f(int n); f(5);}void f(int n){prin

    若有以下程序: #include<stdio.h> void f(int n); main() { void f(int n); f(5); } void f(int n) { printf("%d\n",n);}则以下叙述中不正确的是( )。

    A.若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f

    B.若在主函数前对函数f进行说明,则在主函数和其后的其他函数中都可以正确调用函数f

    C.对于以上程序,编译时系统会提示出错信息:对f函数重复说明

    D.函数f无返回值,所以可用void将其类型定义为无返回值型


    正确答案:C
    解析:f函数没有重复说明,在main函数中是对f函数声明,在main函数外则是对f函数的定义。

  • 第15题:

    若有以下程序includevoid f(int n);main(){ void f(int n);f(5);}void f(int n){print

    若有以下程序 #include<stdio.h> void f(int n); main() { void f(int n); f(5); } void f(int n) {printf(“%d\n”,n);} 则以下叙述中不正确的是

    A.若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f

    B.若在主函数前对函数f进行说明,则在主函数和其后的其他的其他函数中都可以正确调用函数f

    C.对于以上程序,编译时系统会提示出错信息;提示对f函数重复说明

    D.函数f无返回值,所以可用void将其类型定义为无值型


    正确答案:C
    解析:若一个函数定义在主调函数之后,其返回值不是int或char型,则必须对之进行函数说明。可在函数外说明也可以在函数内说明,在函数外说明,在其后的所有函数均可调用该函数,若在函数内说明,则只能在本函数内调用该函数。函数只能定义一次,但函数说明可以出现多次。

  • 第16题:

    有下列函数定义: fun(float h) { printf("%f,%f\n",h,h*h);) 该函数的类型是( )。A.int类型SX

    有下列函数定义: fun(float h) { printf("%f,%f\n",h,h*h);) 该函数的类型是( )。

    A.int类型

    B.float类型

    C.void类型

    D.函数无类型说明,定义有错


    正确答案:A
    本题考查函数值的类型,在函数定义时,由于函数没有说明其类型,系统默认一律自动按整型(int)处理。

  • 第17题:

    下列给定程序中,函数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 型。

  • 第18题:

    电阻接在电源上,如图9—9所示.要测量电阻上的电压和通过的电流,下列哪种接法对(  )

    A.E接N,F接M;H接N,G接P
    B.G接M,H接N;E接N,F接P
    C.E接M,F接N;G接N,H接P
    D.G接P,H接M;E接M,F接N

    答案:C
    解析:

  • 第19题:

    设n为问题规模,函数f和g运行时间分别近似于表达式5n+10000, 40n+100,则()

    • A、f快
    • B、g快
    • C、两函数一样快
    • D、与n有关

    正确答案:D

  • 第20题:

    设f(N),g(N)是定义在正数集上的正函数,如果存在正的常数C和自然数N0,使得当N≥N0时有f(N)≤Cg(N),则称函数f(N)当N充分大时有下界g(N),记作f(N)∈○(g(N)),即f(N)的阶()g(N)的阶。

    • A、不高于
    • B、不低于
    • C、等价于
    • D、逼近

    正确答案:A

  • 第21题:

    以下关于渐进记号的性质是正确的有:()

    • A、f(n)=Θ(g(n)),g(n)=Θ(h(n))→f(n)=Θ(h(n))
    • B、f(n)=O(g(n)),g(n)=O(h(n))→h(n)=O(f(n))
    • C、O(f(n))+O(g(n))=O(min{f(n),g(n)})
    • D、f(n)=O(g(n))→g(n)=O(f(n))

    正确答案:A

  • 第22题:

    单选题
    设f(N),g(N)是定义在正数集上的正函数,如果存在正的常数C和自然数N0,使得当N≥N0时有f(N)≤Cg(N),则称函数f(N)当N充分大时有下界g(N),记作f(N)∈○(g(N)),即f(N)的阶()g(N)的阶。
    A

    不高于

    B

    不低于

    C

    等价于

    D

    逼近


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

  • 第23题:

    问答题
    设有以下三个函数:f(n)=2In4+n2+1000,g(n)=15n4+500n3,h(n)=500n3.5+nlogn请判断以下断言正确与否: (1)f(n)是O(g(n)) (2)h(n)是O(f(n)) (3)g(n)是O(h(n)) (4)h(n)是O(n3.5) (5)h(n)是O(nlogn)

    正确答案: (1)对
    (2)错
    (3)错
    (4)对
    (5)错
    解析: 暂无解析