当前位置:首页计算机类软件水平考试初级程序员->阅读以下说明和C函数代码,回答问题并将解答写在答题纸的对应栏

阅读以下说明和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)的速度并不相同,请指出速度慢的函数名,并简要说明原因。

查看答案 纠错
答案:
本题解析:

【问题1】 (1)return fibl (n-1)+fibl (n-2); 或return (fib1(n-1)+fib1(n-2));

(2)long f=1; 或long f=(long)1; 或long f=1 L;

【问题2】

运算结果超出范围,或运算结果超出long型数据的最大值,或溢出

【问题3】

函数名:fib1

原因:递归调用时间消耗(或开销)更大,本递归函数包含大量重复计算

本题考查C程序设计基础知识。

【问题1】

函数fib1不能通过编译,原因在于语句“fib1(n)=fibl(n-1)+fibl(n-2)”出错,该语句中fibl(n)、fibl(n-1)、fibl(n-2)都是函数调用,由于fib1是返回长整型数据的函数,所以不能为函数调用fib1(n)赋值。该语句处应将fib1(n-1)+fib1(n-2)的值作为返回值,形式为“return fibl (n-1)+fibl (n-2)”。

在函数fib2中,for语句从i等于3开始循环,用于计算菲波那契数列第3项及以后各项的值。对于n等于1或2,for语句的循环体并不执行,因此对于第1、2项数列值,最后返回的f值是不确定的,为f赋初值1即可纠正该错误。

【问题2】

C语言提供的基本数据类型long所表示的整数数据范围为[-231,231-1],即-2147483648~2147483647,而菲波那契数列是单调递增的数列,因此函数fib1和fib2改正后运行时,只要项数n超过某个值,计算结果一定会溢出,此后的计算结果也不再正确了。溢出情况发生时,原本是正数的计算结果表现为负数,或者原本是负数的计算结果表现为正数。

【问题3】

完成同一任务的递归计算与迭代计算过程的时空效率并不相同,一般来说,递归计算过程所占用的空间更多、计算时间更长。这是由于递归函数执行过程中引起一系列的函数调用和返回,所以需要较多的时间开销(控制转移和存储空间管理操作所需的时间)及空间开销(每一次调用时为函数中的形式参数和自动局部变量分配存储空间等),因此与实现相同功能的非递归函数相比,运行效率较低。

更新时间:2021-11-17 13:05

你可能感兴趣的试题

填空题

思科路由器的内存体系由多种存储设备组成,其中用来存放IOS引导程序的是(  ),运行时活动配置文件存放在(  )中。
问题1选项
A.FLASH
B.ROM
C.NVRAM
D.DRAM
问题2选项
A.FLASH
B.ROM
C.NVRAM
D.DRAM

查看答案
填空题

电信运营商提供的ISDN服务有两种不同的接口,其中供小型企业和家庭使用的基本速率接口(BRI)可提供的最大数据速率为(  )。供大型企业使用的主速率接口(PRI)可提供的最大数据速率为(  )。
问题1选项
A.128Kb/s
B.144Kb/s
C.1024Kb/s
D.2048Kb/s
问题2选项
A.128Kb/s
B.144Kb/s
C.1024Kb/s
D.2048Kb/s

查看答案
填空题

PGP (Pretty Good Privacy)是一种电子邮件加密软件包,它提供数据加密和数字签名两种服务,采用(  )进行身份认证,使用(  )(128位密钥)进行数据加密,使用(  )进行数据完整性验证。
问题1选项
A.RSA公钥证书
B.RSA私钥证书
C.Kerboros证书
D.DES私钥证书
问题2选项
A.IDEA
B.RSA
C.DES
D.Diffie-Hellman
问题3选项
A.HASH
B.MD5
C.三重DES
D.SHA-1

查看答案
填空题

边界网关协议BGP4被成为路径矢量协议,它传送的路由信息是由一个地址前缀后跟(  )组成,这种协议的优点是(  )。
问题1选项
A.一串IP地址
B.一串自治系统编号
C.一串路由器编号
D.一串子网地址
问题2选项
A.防止域间路由循环
B.可以及时更新路由
C.便于发现最短通路
D.考虑了多种路由度量因素

查看答案
填空题

某公司域名为pq.com,其POP服务器的域名为pop.pq.com,SMTP服务器的域名为smtp.pq.com,配置Foxmail邮件客户端时,在发送邮件服务器栏应该填写(  ),在接收邮件服务器栏应该填写(  )。
问题1选项
A.pop.pq.com
B.smtp.pq.com
C.pq.com
D.pop3.pq.com
问题2选项
A.pop.pq.com
B.smtp.pq.com
C.pq.com
D.pop3.pq.com

查看答案
填空题

CDMA for cellular systems can be described as follows. As with FDMA, each cell is Allocated a frequency (  ),which is split into two parts; half for reverse (mobile unit to base station) and half for(  )(base station to mobile unit). For full-duplex(  ), a mobile unit uses both reverse and forward channels. Transmission is in the form of direct-sequence spread(  )which uses a chipping code to increase the data rate of the transmission, resulting in an increased signal bandwidth.Multiple access is provided by assigning(  )chipping codes to multiple users, so that the receiver can recover the transmission of an individual unit from multiple transmissions.
问题1选项
A.wave
B.signal
C.bandwidth
D.domain
问题2选项
A.forward
B.reverse
C.backward
D.ahead
问题3选项
A.connection
B.transmission
C.compromise
D.communication
问题4选项
A.structure
B.spectrum
C.stream
D.strategy
问题5选项
A.concurrent
B.orthogonal
C.higher
D.lower

查看答案
填空题

结构化布线系统分为六个子系统,其中水平子系统的作用是(  ),园区子系统的作用是(  )。
问题1选项
A.连接各个建筑物中的通信系统
B.连接干线子系统和用户工作区
C.实现中央主配线架与各种不同设备之间的连接
D.实现各楼层设备间子系统之间的互连
问题2选项
A.连接各个建筑物中的通信系统
B.连接干线子系统和用户工作区
C.实现中央主配线架与各种不同设备之间的连接
D.实现各楼层设备间子系统之间的互连

查看答案
填空题

IPv6的可聚合全球单播地址前缀为(  ),任意播地址的组成是(  )。
问题1选项
A.010
B.011
C.001
D.100
问题2选项
A.子网前缀+全0
B.子网前缀+全1
C.链路本地地址前缀+全0
D.链路本地地址前缀+全1

查看答案
填空题

DNS服务器中的资源记录分成不同类型,其中指明区域主服务器和管理员邮件地址的是(  ),指明区域邮件服务器地址是(  )。
问题1选项
A.SOA记录
B.PTR记录
C.MX记录
D.NS记录
问题2选项
A.SOA记录
B.PTR记录
C.MX记录
D.NS记录

查看答案
填空题

采用抓包工具截获的结果如下图所示,图中第1行记录显示的是(  ),该报文由(  )发出。
中级网络工程师,历年真题,2014年下半年(上午)《网络工程师》真题
问题1选项
A.TCP错误连接响应报文
B.TCP连接建立请求报文
C.TCP连接建立响应报文
D.Urgent紧急报文
问题2选项
A.Web客户端
B.Web服务器
C.DNS服务器
D.DNS客户端

查看答案