对于三个函数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)
第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);
}
第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));
}
第3题:
若有以下程序 #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将其类型定义为无值型
第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)
{
}
第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);
}
第7题:
利用评价函数f(n)=g(n)+h(n)来排列OPEN表节点顺序的图搜索算法称为()
第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)
第9题:
若有以下程序 #include
第10题:
记号Ω的定义正确的是()。
第11题:
第12题:
f(n)=Θ(g(n)),g(n)=Θ(h(n))→f(n)=Θ(h(n))
f(n)=O(g(n)),g(n)=O(h(n))→h(n)=O(f(n))
O(f(n))+O(g(n))=O(min{f(n),g(n)})
f(n)=O(g(n))→g(n)=O(f(n))
第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);
}
第14题:
若有以下程序: #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将其类型定义为无返回值型
第15题:
若有以下程序 #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将其类型定义为无值型
第16题:
有下列函数定义: fun(float h) { printf("%f,%f\n",h,h*h);) 该函数的类型是( )。
A.int类型
B.float类型
C.void类型
D.函数无类型说明,定义有错
第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));
}
第18题:
第19题:
设n为问题规模,函数f和g运行时间分别近似于表达式5n+10000, 40n+100,则()
第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)的阶。
第21题:
以下关于渐进记号的性质是正确的有:()
第22题:
不高于
不低于
等价于
逼近
第23题: