工学

填空题已知f=lambda n:len(bin(n)[bin(n).rfind(’1’)+1:]),那么表达式f(7)的值为()。

题目
填空题
已知f=lambda n:len(bin(n)[bin(n).rfind(’1’)+1:]),那么表达式f(7)的值为()。
如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

已知递归函数f 的定义如下:

int f (int n)

{

If(n<=1)return 1;//递归结束情况

else return n*f(n-2);//递归}则函数调用语句f(5)的返回值是( )。


正确答案:

1  

第2题:

已知递归函数f的定义如下:

int f(int n){

if(n<= 1)return 1;//递归结束情况f5=5*f3=5*3*f1

else return n*f(n-2); //递归

}

则函数调用语句f(5)的返回值是______。


正确答案:15
15 解析:函数递归调用,f(5)=5*f(3)=5*(3*f(1))=15。

第3题:

( 12 )已知数列的递推公式如下:

f(n)=1 当 n=0,1 时

f(n)=f(n-1)+f(n-2) ? 当 n>1 时

则按照递推公式可以得到数列: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, …… 。现要求从键盘输入 n值,输出对应项的值。例如当输入 n 为 8 时,应该输出 34 。程序如下,请补充完整。

Private Sub runl1_Click( )

f0=1

f1=1

num=Val(InputBox(" 请输入一个大于 2 的整数 : "))

For n=2 To____ 【 12 】 _______

f2= ___ 【 13 】 ________

f0=f1

f1=f2

Next n

MsgBox f2

End Sub


正确答案:

第4题:

已知数列的递推公式如下:

f(n)=1 当n=0,1时

f(n)=f(n-1)+f(n-2) 当n>1时

则按照递推公式可以得到数列:1,1,2,3,5,8,13,21,34,55,……。现要求

从键盘输入n值,输出对应项的值。例如当输入n为8时,应该输出34。程序如下,

请补充完整。

Private Sub runll_Click()

f0=1

f1=1

num=Val(InputBox("请输入一个大于2的整数:"))

For n=2 To 【 】

f2=【 】

f0=f1

f1=f2

Next n

MsgBox f2

End Sub


正确答案:num f0+f1
num f0+f1 解析:程序首先需要接受用户输入的值,根据程序代码可以判断,使用变量num来存放用户输入的值,使用循环实现递推,根据题面“要求从键盘输入n值,输出对应项的值”,可知循环从2开始,到用户输入的值结束,也就是“Forn=2 To num”。根据题面给出的公式“当n>1时,f(n)=f(n-1)+f(n-2)”,可知第n项的值总等于它前两项(即第n-2项与第n-1项)之和,在程序For循环中,总用f2表示第n项,f0表示第n-2项,f1表示第n-1项,所以f2=f0+f1。

第5题:

已知f(1)=1,f(2)=2,当n≥3时,f(n)= f(n-1)+f(n-2),编程求f(100)的值,应选择的算法为( )

A.解析法

B.穷举法

C.递归法

D.冒泡排序法


正确答案:C

第6题:

( 8 )已知递归函数 f 的定义如下:

int f(int n)

{

if (n <= 1) return 1; // 递归结束情况

else return n * f(n-2); // 递归 }

则函数调用语句 f(5) 的返回值是 【 8 】 。


正确答案:

第7题:

假设n为整数,那么表达式n&1==n%2的值为_____________。


正确答案:True

第8题:

●已知递归函数f(n)的功能是打印n,n-1,…,1,且n>=1,应采用的代码段是 (42) 。

(42) A.if n>1 then f(n-1);printf("%d",n);

B.if n<1 then f(n+1);printf("%d",n);

C.printf("%d",n);if n>1 then f(n-1);

D.printf("%d",n);if n<1 then f(n+1);


正确答案:C
【解析】n等于1时,递归结束,当n>1时递归打印n-1。

第9题:

下列表达式中,正确的是()。

A.(F/P,i,n)(P/F,i,n)=-1

B.(F/P,i,n)(P/A,i,n)=(F/A,i,n)

C.(F/A,i,n)(A/F,i,n)=1

D.(A/P,i,n)(P/A,i,n)=0


正确答案:BC

第10题:

已知递归函数f(n)的功能是计算1+2+…+n,且n≥1,应采用的代码段是______。

A.if n>1 then return 1 else return n+f(n-1)

B.if n>1 then return 1 else return n+f(n+1)

C.if n<1 then return 0 else return n+f(n-1)

D.if n<1 then return 0 else return n+f(n+1)


正确答案:C
解析:递归函数的目的是执行一系列调用,一直到达某一点,序列终止。为了保证递归函数正常执行,应该遵守下面的规则:
  (1)每当一个递归函数被调用时,程序首先应该检查其基本的条件是否满足,例如,某个参数的值等于零,如果是这种情形,函数应停止递归。
  (2)每当函数被递归调用时,传递给函数一个或多个参数,应该以某种方式变得“更简单”。即这些参数应该逐渐靠近上述基本条件。例如,一个正整数在每次递归调用时会逐渐变小,以至最终其值能到达零。
  在本题中,f(n)的功能是解决1+2+…+n的累加问题,可用下面的递归公式表示f(n):
               f(n)=0      (n=0)
               f(n)=n+f(n-1)  (n1)
  因此可知,f(n)应采用的代码段为:
  if n1
  then return 0
  else return n+f(n-1)。

更多相关问题