试题四(共 15 分)
阅读以下说明和 C 函数代码,回答问题并将解答写在答题纸的对应栏内。
[说明]
著名的菲波那契数列定义式为
f1 = 1 f2 = 1 fn = fn-1 + fn-2 (n = 3,4,…)
因此,从第 1 项开始的该数列为 1,1,2,3,5,8,13,21,…。函数 fib1 和 fib2 分别用递归方式和迭代方式求解菲波那契数列的第 n 项(调用 fib1、fib2 时可确保参数 n 获得一个正整数) 。
[C函数代码]
[问题 1](6 分)
函数 fib1 和 fib2 存在错误,只需分别修改其中的一行代码即可改正错误。
(1)函数 fib1 不能通过编译,请写出 fib1 中错误所在行修改正确后的完整代码;
(2)函数 fib2 在n≤2 时不能获得正确结果,请写出 fib2 中错误所在行修改正确后的完整代码。
[问题 2](3 分)
将函数 fib1 和 fib2 改正后进行测试,发现前 46 项都正确,而第 47 项的值是一个负数,请说明原因。
[问题 3](6 分)
函数 fib1、fib2 求得菲波那契数列第 n 项(n>40)的速度并不相同,请指出速度慢的函数名,并简要说明原因。
函数fib1、fib2求得菲波那契数列第n项(n>40)的速度并不相同,清指出速度慢的函数名,并简要说明原因。
计算斐波那契数列第n项的函数定义如下: intfib(intn){ if(n==0)returnl; elseif(n==l)return2: elsereturnfib(n-1)+fib(n-2); } 若执行函数调用表达式fib(2),函数fib被调用的次数是()。
A.1
B.2
C.3
D.4
阅读以下说明和流程图,回答问题将解答填入对应栏内。
[说明]
已知递推数列:a(1)=1,a (2s)= a (s),a(2s+1)=a (s)+a (s+1)(s 为正整数)。试求该数列的第n项与前n项中哪些项最大?最大值为多少?
算法分析:该数列序号分为奇数或偶数两种情况做不同递推,所得数列呈大小有规律的摆动。设置a数组,赋初值a (1)=1。根据递推式,在循环中分项序号s (2~n)为奇数或偶数作不同递推:每得一项 a (s),即与最大值max 作比较,如果a (s)>max,则max=a(i)。最后,在所有项中搜索最大项(因最大项可能多于一项),并打印最大值max。
[问题]
将流程图中的(1)~(5)处补充完整。
注:流程图中(1)循环开始的说明按照“循环变量名:循环初值,循环终值,增量”格式描述。
[流程图]
A.提前于计划7%
B.落后于计划18%
C.落后于计划7%
D.落后于计划7.5%
利用范式证明下列公式为永真式(证明合取范式的每一个合取项中含有互补文字,或其主析取范式中含有2n个析取项,n是公式中变元的个数).
(26)
A.配置组管理
B.配置对象管理
C.配置审核
D.配置库管理
(27)
A.开发项目
B.配置管理项
C.子系统
D.软件产品
A.小组章程
B.项目管理计划
C.人员配备管理计划
D.组织方针和指导原则
从体系结构的观点对指令集进行分类。根据哪五种尺度?
(2)通常有哪三种指令集体系结构?请写出各自的优缺点?
(3)GRP机分为几类?它们的优缺点各是什么?