【 加试题】王老师在使用 VB 程序要实现 n! 的功能。
Private Sub Command1_Click()
Dim p As Integer
Dim sum As Long
p = Val(Text1.Text)
sum = fx(p)
Text2.Text = CStr(sum)
End Sub
Function fx(x As Integer) As Long
If x = 1 Then
fx = 1
Else
fx =____________________
End If
End Function
要该程序实现此功能,横线处的代码为( )
Private Sub Command1_Click()
Dim p As Integer
Dim sum As Long
p = Val(Text1.Text)
sum = fx(p)
Text2.Text = CStr(sum)
End Sub
Function fx(x As Integer) As Long
If x = 1 Then
fx = 1
Else
fx =____________________
End If
End Function
要该程序实现此功能,横线处的代码为( )
A.x(x)*(x-1) | B.fx(x)*x | C.fx(x-1)*x | D.fx(x-1)*(x-1) |
更新时间:2020-02-24 23:50:42
|
相似题推荐
选择题
|
较易
(0.85)
名校
【推荐1】在VB集成开发环境中,要进入运行模式,可以执行“运行”菜单中的“启动”命令,也可以单击工具栏上的
A. | B. | C. | D. |
您最近一年使用:0次
选择题
|
较易
(0.85)
名校
【推荐2】有如下VB程序段:
Const n = 5
Dim b(n)As Integer
For i = 1 To 5
b(i)= i
Next i
For i = 1 To 2
For j = n – 1 To I Step -1
If a(b(j))> a(b(j + 1))Then
t = b(j):b(j)=b(j + 1):b(j + 1)= t
End If
Next j
Next i
数组元素a(1)~a(5)的值依次为“35,24,45,16,77”,运行上述程序段后,数组元素b(1)到b(5)的值依次为( )
Const n = 5
Dim b(n)As Integer
For i = 1 To 5
b(i)= i
Next i
For i = 1 To 2
For j = n – 1 To I Step -1
If a(b(j))> a(b(j + 1))Then
t = b(j):b(j)=b(j + 1):b(j + 1)= t
End If
Next j
Next i
数组元素a(1)~a(5)的值依次为“35,24,45,16,77”,运行上述程序段后,数组元素b(1)到b(5)的值依次为( )
A.1,3,5,2,4 | B.5,3,1,2,4 | C.2,4,1,3,5 | D.4,2,1,3,5 |
您最近一年使用:0次
选择题
|
较易
(0.85)
【推荐1】下面代码的输出结果是( )。
def fact(n):
for i in range(4):
def fact(n):
s=1
for i in range(l,n+l):
s*=i
return s
sum=0for i in range(4):
sum+=fact(i)
print(sum)A.10 | B.6 | C.9 | D.3 |
您最近一年使用:0次
选择题
|
较易
(0.85)
【推荐2】列表nums有n(n>1)个非零整型元素,现要查找列表nums中乘积最大的连续序列,例如若nums的值为[-2,3,-1,2,-4],则其乘积最大的连续序列应为3、-1、2、-4,乘积为24。实现该功能的程序段如下,输出最大乘积mx,方框中应填入的正确代码为( )
k=0 #变量k存储负数的个数
st=ed=-1
mx=1
m1=m2=1
for i in range(0,len(nums)):
if k % 2 !=0:
k=0 #变量k存储负数的个数
st=ed=-1
mx=1
m1=m2=1
for i in range(0,len(nums)):
mx*=nums[i]
for t in nums[0:ed]:
m1 *=t
for t in nums[st+1:len(nums)]:
m2 *=t
mx=max(ml,m2)
print(mx)A | B | C | D |
if nums[i]<0: k+=1 if st==-1: st=i ed=i | if nums[i]<0: k+=1 if ed==-1: ed=i st=i | if nums[i]<0: k+=1 if st==-1: st=i else: ed=i | if nums[i]<0: k+=1 if ed==-1: ed=i else: st=i |
A.A | B.B | C.C | D.D |
您最近一年使用:0次
选择题
|
较易
(0.85)
【推荐3】现有18枚硬币,18枚硬币中有一个是伪造的,并且那个伪造的硬币比真的硬币要轻。有一台用来比较两组硬币重量的仪器,使用递归及分治法设计一个算法,找出那枚伪造的硬币。阅读下列程序代码。
def check3(a,right,left):
b=(left-right+1)//3
if right==left:
index=right+1
return index
elif right+1==left:
if a[right] < a[left]:
index=right+1
return index
else:
index=left+1
return index
else:
if sum(a[right:right+b]) == sum(a[right+b:right+2*b]):
return check3(a,right+2*b,left)
elif sum(a[right:right+b]) > sum(a[right+b:right+2*b]):
return check3(a,right+b,right+2*b-1)
else:
return check3(a,right,right+b-1)
a = [1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1]
index1=0
right0 = 0
index1= check3(a,right0,len(a))
print("你要找的假币在第",index1,"个位置")
input("运行完毕,请按回车键退出...")
假设列表a中,0表示伪造的硬币,下列说法正确的是( )
def check3(a,right,left):
b=(left-right+1)//3
if right==left:
index=right+1
return index
elif right+1==left:
if a[right] < a[left]:
index=right+1
return index
else:
index=left+1
return index
else:
if sum(a[right:right+b]) == sum(a[right+b:right+2*b]):
return check3(a,right+2*b,left)
elif sum(a[right:right+b]) > sum(a[right+b:right+2*b]):
return check3(a,right+b,right+2*b-1)
else:
return check3(a,right,right+b-1)
a = [1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1]
index1=0
right0 = 0
index1= check3(a,right0,len(a))
print("你要找的假币在第",index1,"个位置")
input("运行完毕,请按回车键退出...")
假设列表a中,0表示伪造的硬币,下列说法正确的是( )
A.此程序递归部分为三分法递归查找伪造的硬币 |
B.sum(a[right:right+b])==sum(a[right+b:right+2*b])表示第二组的重量与第三组重量相同 |
C.此程序递归部分为二分法递归查找伪造的硬币 |
D.以上都不对 |
您最近一年使用:0次