首页 > 软考
题目内容 (请给出正确答案)
[主观题]

设有一个递归算法如下 im fact(int n){ if(n<=0)return 1; else return n * fa

设有一个递归算法如下 im fact(int n){ if(n<=0)return 1; else return n * fact(n-1); } 下面正确的叙述是(35)。

A.计算fact(n)需要执行n次函数调用

B.计算fact(n)需要执行n+1次函数调用

C.计算fact(n)需要执行n+2次函数调用

D.计算fact(n)需要执行n-1次函数调用

查看答案
答案
收藏
如果结果不匹配,请 联系老师 获取答案
您可能会需要:
您的账号:,可能还需要:
您的账号:
发送账号密码至手机
发送
安装优题宝APP,拍照搜题省时又省心!
更多“设有一个递归算法如下 im fact(int n){ if(…”相关的问题
第1题
设有一个递归算法如下: int fact(int n){ if(n<=0)return 1; else return n*fact(n-1);

设有一个递归算法如下: int fact(int n){ if(n<=0)return 1; else return n*fact(n-1); } 下面正确的叙述是(35)。

A.计算fact(n)需要执行n次函数调用

B.计算fact(n)需要执行n+1次函数调用

C.计算fact(n)需要执行n+2次函数调用

D.计算fact(n)需要执行n-1次函数调用

点击查看答案
第2题
●在有n个无序无重复元素值的数组中查找第i小的数的算法描述如下:任意取一个 元素r,用划分操作确
定其在数组中的位置,假设元素r为第k小的数。若i等于k,则返回该元素值;若i小于k,则在划分的前半部分递归进行划分操作找第i小的数;否则在划分的后半部分递归进行划分操作找第k-i小的数。该算法是一种基于(63)策略的算法。

(63)

A.分治

B.动态规划

C.贪心

D.回溯

点击查看答案
第3题
阅读以下算法说明,根据要求回答问题1~问题3。 [说明] 快速排序是一种典型的分治算法。采用快速排序

阅读以下算法说明,根据要求回答问题1~问题3。

[说明]

快速排序是一种典型的分治算法。采用快速排序对数组A[p..r]排序的3个步骤如下。

1.分解:选择一个枢轴(pivot)元素划分数组。将数组A[p..r]划分为两个子数组(可能为空)A[p..q-1]和A[q+1..r],使得A[q]大于等于A[p..q-1]中的每个元素,小于A[q+1..r]中的每个元素。q的值在划分过程中计算。

2.递归求解:通过递归的调用快速排序,对子数组A[p..q-1]和A[q+1..r]分别排序。

3.合并:快速排序在原地排序,故无需合并操作。

下面是快速排序的伪代码,请将空缺处(1)~(3)的内容填写完整。伪代码中的主要变量说明如下。

A:待排序数组

p,r:数组元素下标,从p到r

q:划分的位置

x:枢轴元素

i:整型变量,用于描述数组下标。下标小于或等于i的元素的值,小于或等于枢轴元素的值

j:循环控制变量,表示数组元素下标

阅读以下算法说明,根据要求回答问题1~问题3。 [说明] 快速排序是一种典型的分治算法。采用快速排序

点击查看答案
第4题
已知Ackerman函数的定义如下:(1)写出递归算法;(2)写出非递归算法;(3)根据非递归算法, 画出求a

已知Ackerman函数的定义如下:

已知Ackerman函数的定义如下:(1)写出递归算法;(2)写出非递归算法;(3)根据非递归算法,

(1)写出递归算法;

(2)写出非递归算法;

(3)根据非递归算法, 画出求akm(2,1)时栈的变化过程。

点击查看答案
第5题
把递归算法转化为非递归算法有如下两种基本方法:

(1)直接用循环结构的算法替代递归算法。

(2)用()模拟系统的运行过程,通过分析只保存必须保存的信息,从而用非递归算法替代递归算法。

A.栈

B.队列

C.顺序表

D.链表

点击查看答案
第6题
法国数学家Edouard Lucas于1883提出的Hanoi塔问题,可形象地描述如下:有n个中心带孔的圆盘贯穿在直立于地面的一根柱子上,各圆盘的半径自底而上不断缩小;需要利用另一根柱子将它们转运至第三根柱子,但在整个转运的过程中,游离于这些柱子之外的圆盘不得超一个,且每根柱子上的圆盘半径都须保持上小下大。试将上述转运过程描述为递归形式,并进而实现一个递归算法。

点击查看答案
第7题
设有如下通用过程:Public Sub Fun(a()As Integer,x As Integer)For i=1 To 5x=x+a(i)NextEnd Sub

设有如下通用过程: Public Sub Fun(a()As Integer,x As Integer) For i=1 To 5 x=x+a(i) Next End Sub 在窗体上画一个名称为Text1的文本框和一个名称为Commandl的命令按钮。然后编写如下的事件过程: Private Sub Commandl_Click() Dim arr(5)As Integer,n As Integer For i=1 To 5 arr(i)=i+i Next Fun arr,n Text1.Text=Str(n) End Sub 程序运行后,单击命令按钮,则在文本框中显示的内容是______。

A. 30

B.25

C.20

D.15

点击查看答案
第8题
计算多项式Pn(x) –a0xn十a1xn-1+a2xn-2+…+an-1x十an⊕
计算多项式Pn(x) –a0xn十a1xn-1+a2xn-2+…+an-1x十an⊕

计算多项式Pn(x) –a0xn十a1xn-1+a2xn-2+…+an-1x十an的值, 通常使用的方法是一种嵌套的方法。它可以描述为如下迭代形式:bv=av,bi+1=x×bi+ai+1, i=0, 1,…,n-l。若设bn=Pn(x) , 则问题可以写为如下形式:Pn(x) =x×Pn-1(x)+an, 此处, Pn-i(x) =avxn-1+a1xn-2+…+an-2x+an-1, 这是问题的递归形式。试编写一个函数, 计算这样的多项式的值。

点击查看答案
第9题
计算N!的递归算法如下,求解该算法的时间复杂度时,只考虑相乘操作,则算法的计算时间T(n)的递推关

计算N!的递归算法如下,求解该算法的时间复杂度时,只考虑相乘操作,则算法的计算时间T(n)的递推关系式为(55);对应时间复杂度为(56)。

int Factorial (int n)

{//计算n!

if(n<=1)return 1;

else return n * Factorial(n-1);

}

(62)

A.T(n)=T(n-1)+1

B.T(n)=T(n-1)

C.T(n)=2T(n-1)+1

D.T(n)=2T(n-1)-1

点击查看答案
第10题
设有如下程序:Private Sub Command1_Click()DimSum As Double,xAsDoublesum=0n = 0For i= 1 To5x

设有如下程序: Private Sub Command1_Click() Dim Sum As Double, x As Double sum=0 n = 0 For i= 1 To 5 x = n / i n = n + 1 sum=sum+x Next End Sub 该程序通过For循环计算一个表达式的值,这个表达式是

A.1+1/2+2/3+3/4+4/5

B.1+1/2+2/3+3/4

C.1/2+2/3+3/4+4/5

D.1+1/2+1/3+1/4+1/5

点击查看答案
退出 登录/注册
发送账号至手机
密码将被重置
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改