学进去-教育应平等而普惠
排序:
414道相关试题
夜间捕鱼

A、B、C、D、E五个人合伙夜间捕鱼,凌晨时都疲惫不堪,各自在河边的树丛中找地方睡着了,日上三竿,E第一个醒来,他将鱼数了数,平分成五分,把多余的一条扔进河中,拿走一份回家去了,D第二个醒来,他并不知道有人已经走了,照样将鱼平分成五分,又扔掉多余的一条,拿走自己的一份,接着C、B、A依次醒来,也都按同样的办法分鱼(平分成五份,扔掉多余的一条,拿走自己的一份),问五人至少合伙捕到多少条鱼。


也许你能用数学办法推出鱼的条数,但我们的要求你编出一个程序,让计算机帮你算出鱼的总数。
类型:操作题
难度系数:困难0.15
收藏
纠错
详情
班级教室里新建了一个图书角,班级的同学可从图书角中借书或者还书。班长用一个整数序列记录了借还书情况,他用负整数表示借书数量,正整数表示还书数量,比如有一个整数序列[-3,5,1,2],表示有4位同学分别进行借书3本,还书5本,1本和2本。
有一天班长想核对自己的记录和图书角的书本是否一致,但是他忘记了是从哪一位同学开始记录的借还书,他只记得开始记录时图书角的书已经全部借出,即图书角的书本数量为0.例如有如下整数序列[-3,5,1,2]表示4位同学的借还书情况,假设某个方案是从第3位同学开始记录,则这4位同学借还书情况分别是还书1本,还书2本,借书3本,还书5本。班长想知道在所有操作方案中有多少是可行的(有的方案会造成书本累计数量为负的情况,这样是不可行的)。班长希望有同学能设计一个程序来计算根据给定的整数序列有多少种可行的方案。
(1)小明解决该问题的方案如下:
a = #操作序列赋值给列表a,比如[-3,5,1,2]
s = 0
count = 0
for i in range (0, len(a)):
     s = 0
     for j in range (i, i+len(a)):
          s +=_________
          if s < 0:
               break
          else:
               count+=1
print (count)
(2)小红则认为既然是循环的操作,可以将该整数序列展开成[-3,5,1,2,-3,5,1],用数组s[i]存储a[0]到a[i]的和,s[j]-s[i-1]可以表示i~j所有数的和,在长度为n的序列中寻找从第一项开始累加总和最小的值,并判断是否可行,即是否大于等于0.
小红解决该问题的方案如下:
a = # 操作序列赋值给列表a,比如[-3,5,1,2]
n = len(a)
a = a + a[:-1]
s = [0]*(2*n-1)
s[0] = a[0]
for i in range (1,2*n-1):
     s[i]=_________
count = 0
q = [0]*100
left = right = 0
for i in range (2*n-1):
     while left < right and i-n+1 > q[left]:
_________
     while left < right and s[i] <= s[q[right-1]]:
          right-=1
     q[right]=i
     right+=1
     if i-n+1==0 and s[q[left]]>=0:
          count +=1
     if i-n+1 > 0 and _________
          count +=1
print (count)
(3)算法(1)和算法(2)的时间复杂度相比_________(选填字母:A.算法(1)时间复杂度更大;B.算法(2)时间复杂度更大;C.两种算法时间复杂度相等)
类型:操作题
难度系数:困难0.15
收藏
纠错
详情
要过滤ftp流量,在ACL语句中应该使用的操作符是( )
A.eq
B.gt
C.it
D.range
类型:选择题
难度系数:困难0.15
收藏
纠错
详情
有m(2≤m≤n)个音箱,直线放在n(n≥2)个位置上,第i个位置坐标在a(i)上。每两个音箱相互靠近就会产生干扰,为了解决这个问题,决定把每个音箱都放在离其他音箱尽可能远的位置。为了使任意两个音箱之间的最小距离尽可能大,设计了下面的程序。程序实现了任意两个音箱之间最大的最小距离。如有5个位置5个位置分别为1,2,8,4,9,有3个音箱,那么最大的最小距离就为3,可以将3个音箱分别放在1,4,8的位置上。

(1)如果这5个位置分别为5,19,2,18,9,那么个音箱可以放置的最大的最小距离为_________
(2)在划线处补上代码。
(3)有一句带框框的代码有误,请修改为正确代码,让程序可以符合题意。
Dim(1 To 5)As Integer
Dim n, k As Integer
Private Sub Form_Load()
       n Val(Text1. Text): k=Val(Text2. Text)
’随机生成n(n>=2)个不重复的0及以上的数字赋值给数组a,代码略
End Sub
Private Sub Command1_ Click()
Dim m, 1,r As Integer
For i=1To n
   For j=1 To n-i
          Ifa(j)>a(j+1) Then
                 t = a(j): a(j) = a(j+ 1):a(j+1)=t
       End If
   Next j
Next i
l = 1:r= a(n)-a(1)
Do While l <=r
       m=(1+r)\2

If _____________Then


             l=m+1
     Else
       r=m-1
End If
Loop
Labell. Caption = Str(r)
End Sub
Function check (ByVal d As Integer) As Boolean
     Dim cow,rgt As Integer
     cow=1
     rgt=a(1)+d

Fori=2Ton

     If a(i) >= rgt Then .

            cow=cow+1


                    ____________
            End   If
Next i
If_______________Then
     check = True
Else
        check = False
End If
End Function
类型:操作题
难度系数:困难0.15
收藏
纠错
详情
某对分查找算法的VB程序段如下:
Dim a(1 To 10) As Integer
Key= Int(Rnd*32) *3+3
s=0:i=1:j=10
DoWhilei<=j
m=(i+j)\2
If Key = a(m) Then Exit Do .
If Key > a(m) Then
i=m+1:s=3*s+2
Else
       j=m-1:s=3*s
End If
Loop
数组a(1)到a(10)的值依次为“4,7,9,15,24,32,37,54,75,90”,执行该程序段后,s的值不可能为(     
A.20B.80C.62D.18
类型:选择题
难度系数:困难0.15
收藏
纠错
详情
数组a中存储了无序的数组元素,为了使a数组中的元素存储为左右交替上升,小赵依据选择排序思想设计了如下VB程序算法,为了实现上述功能,划线处应填入的代码为(     
L= 1:R=n
Do While L<R
       imin_l = L:imin_2=R
       For i=L +1 To R
        If a(i)< a (imin_1)Then
        imin_ 2 = imin_ 1
        imin_1=i
ElseIf a(i) < a(imin. _2) Then
imin_ 2= i
End If
Next i
If imin _1 <> L Then t = a(imin_ 1): a(imin_ 1) = a(L): a(L) = t
________________________
If imin_ 2 <> R Then t = a(imin_ 2): a(imin_ 2) = a(R): a(R) = t
L=L+1:R=R-1
Loop
A.If imin_1=L Then imin_1=imin_2
B.If imin_1=L Then imin._2=imin_1
C.If imin_2=L Then imin_1=imin_2
D.If imin_2=L Then imin_2=imin_1
类型:选择题
难度系数:困难0.15
收藏
纠错
详情
现有一个大小为n*n的平面矩阵(从上到下从左到右编号为1~n*n),矩阵中有诸多障碍物。有两个机器人分别为1号和2号,其中1号位于左上角且面朝右侧,2号位于右下角且面朝左侧。现在机器人需要按照规则进行K轮运动,规则如下:
①1号和2号机器人需要交替运动,即第一轮由1号进行运动,第二轮则由2号进行运动,第三轮由1号进行运动……以此类推直至第K轮。
②每轮运动时,机器人将先判断前方是否可以前进,若无法前进,则不断顺时针旋转90°至可以前进为止,随后前进直至停止,由另一个机器人开始下一轮运动。
③机器人在前进过程中遇到边界、障碍物或者另一个机器人时都将停止。
如图a所示,机器人1号和2号分别位于左上角和右下角,且分别朝向右侧和左侧,黑块表示障碍物,当进行了4轮运动后,状态如图b所示。
编写程序,启动后随机生成矩阵并在List1中输出,其中"#"表示障碍物,"_"表示可以行走的空格子,机器人用数字1和2表示。在文本框Text1中输入轮数K,点击按钮Command1,在列表框List1中输出K轮后的矩阵。程序界面如图c所示。

图a



        图b

图c
(1)若在图a的基础上进行6轮运动后,1号机器人所在的位置是______(填行列或格子编号均可)。
(2)实现上述功能的部分VB程序如下,请在划线处填入合适的代码。
Const n = 10
Dim a(100) As String, steps(3) As Integer, pos(2) As Integer
Dim towards(2) As Integer, cur As Integer, nex As Integer, K As Integer
Private Sub Form_Load()
'生成矩阵存储在数组a中并输出,代码略
End Sub
Private Sub Command1_Click()
steps(0) = -n: steps(1) = 1: steps(2) = n: steps(3) = -1
pos(1) = 1: towards(1) = 1: pos(2) = n * n: towards(2) = 3
i = 1 : K = Val(Text1.Text)
Do While i <= K
       cur = (i - 1) Mod 2 + 1
       nex = GetNext(pos(cur), towards(cur))
       Do While Check(nex)
          pos(cur) = nex
          nex = GetNext(pos(cur), towards(cur))
       Loop
       nex = GetNext(pos(cur), towards(cur))
       Do While Not Check(nex)
          towards(cur) = __________
          nex = GetNext(pos(cur), towards(cur))
       Loop
       i = i + 1
Loop
'输出矩阵,代码略
End Sub
Function Check(x As Integer) As Boolean
Check = x <> 0 And a(x) <> "#" And __________
End Function
Function GetNext(x, t) As Integer
GetNext = x + steps(t)
If x >= 1 And x <= n And t = 0 Then GetNext = 0
If x > (n - 1) * n And x <= n * n And t = 2 Then GetNext = 0
If _________ Then GetNext = 0
If x Mod n = 0 And t = 1 Then GetNext = 0

End Function

类型:操作题
难度系数:困难0.15
收藏
纠错
详情
在课堂上,老师组织学生们玩解密游戏,游戏规则是将26个字母编码成二进制数字,通过手电筒光线的闪烁来传递信号,为了使游戏顺利进行,老师最少需要(       )二进制来对字母进行编码。
A.3位B.4位C.5位D.6位
类型:选择题
难度系数:困难0.15
收藏
纠错
详情
用 VB 编写的英文单词字频统计程序如图所示,在文本框 Text1 中输入文章,单击“统计” 按钮 Command1, 在列表框 List1 输出单词与频次,在标签 Label2 中输出频次最高的单词, 如频次最高的单词有多个,则输出时用逗号分隔。算法如下:
(1)将文本框 Text1 中的文章保存到字符串变量 s 中。
(2)从左往右扫描字符串 s,用字符串 word 存储文章中依次出现的单词,将新出现的单词自动 加入单词队列 dic(i)中,单词出现的频次记录到对应的 num(i)中。
如下方法扫描:

①从左往右扫描,当扫描到第 i 个字符时,如果是字母,继续扫描,否则,跳转到②,直 至扫描结束;

②将 b 到 i-1 组成一个单词 word,查询单词字典 dic 判断是否存在,如果不存在,将新 单词插入单词字字典尾部 dic(k),并且记录单词频次 num(k)为 1,如果 dic 字典中存在单词 word,那么该单词对应频次增加 1,再跳转到①。


(2)在列表框 List1 中依次输出单词与频次,在标签 Label2 中输出频次最高的单词。 实现上述功能的 VB 程序如下,请在划线处填入合适的代码。

Private Sub Command1_Click()


Dim dic(1 To 10000) As String       '存储自建单词字典
Dim num(1 To 10000) As Integer       '存储单词出现的频率
Dim word As String, c As String, s As String, slen As Integer
Dim i As Integer, j As Integer, di As Integer, k As Integer
Dim nummax As Integer '记录最高的单词频率
Dim result As String '存储出现频率最高的单词串
s = Text1.Text: slen = Len(s)
j = 0       '存储每个单词的长度
k = 1       'k-1 为当前单词字典长度
nummax = 0
For i = 1 To 10000       '初始化单词字典频次
num(i) = 0
Next i i = 1
Do While i <= slen
_________
If c >= "a" And c <= "z" Or c >= "A" And c <= "Z" Then j = j + 1
Else

If j <> 0 Then


word = LCase(Mid(s, i - j, j))       'LCase()函数功能:单词统一为小写
di = 1
Do While word <> dic(di) And di < k di = di + 1
Loop
If di = k Then       '单词字典插入新单词
dic(k) = word num(k) = 1

__________ Else


__________ End If



'单词在单词字典中已存在,对应频次加 1
If num(di) > nummax Then nummax = num(di)
j = 0
End If

End If


i = i + 1
Loop
result = ""
For j = 1 To k - 1
List1.AddItem dic(j) + "" + Str(num(j))
If __________

Then
If result = "" Then

result = result + dic(j) Else

result = result + "," + dic(j)       '如出现频率最高的单词有多个,则用逗号分隔 End If


End If
Next j
Label2.Caption = "出现频率最高的单词是:" + result
End Sub
(2)根据本题算法如图所示,若在 Text1 中将文章最后一行“so you must know how to use it.” 改为“so you must know how to use it3.”,单词统计结果_____(选填:会/不会)产生变化。
类型:操作题
难度系数:困难0.15
收藏
纠错
详情
有n册图书已按图书编号升序排列(编号互不重复,用7位长度的字符串表示)。经过多次借阅归还之后,部分图书顺序被打乱,现要找出这部分图书进行调整,以使整体升序。算法思想:先找到首尾两个图书编号升序区间,再处理得到待调整区间,最后对该区间中的图书编号排序。
编写VB程序,实现上述功能。运行程序,在列表框List1中显示全部图书编号。单击“整理”按钮Command1,在标签Label1中显示待调整区间图书的册数,在文本框Text1中显示待调整区间图书的起止编号,并在列表框List2中显示排序后的图书编号。程序运行界面如图所示,其中①和②两处分别指向待调整区间图书的起始和截止编号。

(1)如图所示,若采用选择排序算法,仅将待调整区间图书进行升序排序,排序过程结束后,数组元素之间的比较次数为______( 填数字)。
(2)实现上述功能的部分VB程序如下,请在划线处填入合适的代码。
'n是常量,代码略
Dim a(0 To n) As String
Private Sub Form_ Load()

a(0)='' ''

'将n册图书的编号存入数组元素a(1)-a(n),在List1中显示,代码略


End Sub
Private Sub Command1_ Click()

Dim i As Integer, k As Integer, left As Integer, right As Integer

Dim min As String, max As String

min= "": max= "": left= I: right= ()

For i=1To n- 1

If a(i)> a(i+1) Then

max=a(i)

left= i: Exit For

End If

Next i

For i= n To 2 Step-l

If______Then

min = a(i)

right=i: Exit For

End If

Next i

i=left

Do While i<= right

If a(i)> max Then

max=a(i)

ElseIf a(i)< min Then

min= a(i)

End If

i=i+1

Loop

k=0

If left < right Then

left=getPos(l, left, min)

________

k= right-left+ 1

Text1.Text= "待调整区间图书起始编号:" + a(left)+"-->截止编号:"+


a(right)

End If

Labell. Caption = "待调整区间图书共有:"+ Str(k)+“册”

'对待调整区间的图书编号进行排序,在List2中输出整理结果,代码略


End Sub
Function getPos(head As Integer, tail As Integer, value As String)As Integer

Dim i As Integer

i=tail

Do While_______

i=i-1

Loop

getPos=i+1


End Function
类型:操作题
难度系数:困难0.15
收藏
纠错
详情
首页
上一页
下一页
尾页