试题详情
操作题 较难0.4 引用1 组卷37
某班级学生为毕业晚会的一个男生节目设计一个仿“V”字队形,先筛选出班级里所有男生,然后将 参演的所有男生按照身高,摆出中间低两边高(先右后左)的队形,如图 1 所示。

图1
小孟同学用 VB 编写模拟“节目队形”程序,功能如下:从数据库中导入所有学生的编号、性别和 身高数据;单击“筛选并排序”Command1 按钮,筛选出所有男生的身高并按照从低到高的顺序进行排序, 结果显示在文本框 Text1 中;单击“设计队形”Command2 按钮,队形的编号结果显示在文本框 Text2 中。程序运行界面如图 2 所示。

图2
举例说明如下:
实现上述功能的 VB 程序如下,请回答下列问题:
(1)请在划线处填入合适的代码。
__________________
__________________
__________________
(2)程序代码中,加框处有错,请改正。
改正:___________________
Const n = 8
Dim h(1 To n) As Integer, num1(1 To n) As Integer, num2(1 To n) As Integer Dim sex(1 To n) As Boolean     ' 男生 sex = True,女生 sex = False
Dim i As Integer, j As Integer, m As Integer Private Sub Form_Load()
'n 名学生(包括男生和女生)的编号、性别和身高由数据库导出,分别存储在数组 num1、h 和 sex 中,代码略! End Sub
Private Sub Command1_Click() For i = 1 To n - 1
       For j = n To i + 1 Step -1
             If sex(j) = True Then
                    If   ①                 Then
                           t = h(j): h(j) = h(j - 1): h(j - 1) = t
                           t = sex(j): sex(j) = sex(j - 1): sex(j - 1) = t
                           t = num1(j): num1(j) = num1(j - 1): num1(j - 1) = t
                    End If
             End If
       Next j Next i
For i = 1 To n
       If sex(i) Then
             Text1.Text = Text1.Text + " " + Str(h(i))
       End If
       If Not sex(i) Then : Exit For          '改错
Next i
End Sub
Private Sub Command2_Click()
Dim L, R As Integer, mid As Integer
mid = Int((1 + m) / 2) L = 0: R = 0
     ②          For i = 2 To m Step 2
       R = R + 1
       num2(mid + R) = num1(i)             
       L = L + 1
       ③            Next i
For i = 1 To m
       Text2.Text = Text2.Text + " 男" + CStr(num2(i)) + "号 " Next i
End Sub
20-21高二上·浙江·期中
知识点:VB程序的调试 答案解析 【答案】很抱歉,登录后才可免费查看答案和解析!
类题推荐
阅读以下材料,结合所学知识完成下列问题:
材料一:凯撒加密(Caesar cipher)是一种简单的消息编码方式:它根据字母表将信息字符串中的每个字母移动常量位 k(k是一个正整数)。
举例:如果k取值3,则在加密编码后的消息中,每个字母都会向后移动3位:a会被替换为d;b会被替换成e;依此类推。如果字母表到末尾了,将自动回卷到字母表开头,例如w会被替换为z,x会被替换为a。
材料二:已知部分小写英文字母的ASCII码的十进制数表示为下表:
字母abcdefghij
ASCII码097098099100101102103104105106
字母klmnopqrst
ASCII码107108109110111112113114115116
字母uvwxyz
ASCII码117118119120121122
根据以上文字材料,完成下列题目:
(1)以下属于保障数据安全的措施有(     )
①数据备份   ②数据加密   ③数据脱敏   ④访问控制   ⑤异地容灾
A.①②③④       B.①②③       C.②③④       D.②③
(2)字母a加密前的ASCII码在计算机中的存储方式(     )
A.097       B.97       C.1100001       D.01100001
(3)按照凯撒加密规则,将k设为5,并将单词“hello”进行加密编码。则加密后的字符应该是(     )
A. cello       B. mjqqt       C. lipps       D. ifmmp
(4)某安全系统截获一串数字:119117103116,经分析得知,这是一串用凯撒加密得来的加密后的“密文”的ASCII码(十进制表示),每三个数字代表一个字母,并且他们经过大量的对比,认为此段加密用的k值为2,请根据这段截获的数字以及上面材料进行分析,这段数字所代表的原始文本应该是(     )
A. user       B. ywiv       C. vtfs       D. zxjw
(5)一般来说,未加密的文本是有一定意义的(比如一个英语单词),而加密后的文本可能表面看起来没有意义。如果某系统截获到了一个用以上方法加密后的文本是“qke”,则加密者在对原始文本加密时,所使用的k值可能是(     )
A.4       B.5       C.6       D.7
(6)小复同学发现,采用材料中所描述的方式对一个信息进行加密处理后,因为所有字母变化的规则是一致的,只要“破解”了其中的一个,其它字母也很快能够全部破解。于是他设计了一种新的加密编码方式,相对而言,破解时难度要增加很多。在小复同学设计的新的编码规则中,k的取值不是固定的,而是根据一个字母在字符串中的位置取值,如果一个字母在字符串中是第一个出现的,k的值就取为1,第二个出现的,k的值就取为2,……依次类推。按照小复同学新设计的规则,字符串“fdfz”加密后的字符应该是(     )
A. fdfz       B. gfid       C. gega       D. fegb
(7)若要实现小复同学的新设计方案,用Python语言编程实现,以下程序代码正确的是(     )
A.
mingwen=input("请输入明文数据:")
k=1
miwen=""
for x in mingwen:
k=k+1
根据 mingwen 的 ASCII 码+k 值算出密文对应字符
print("密文数据为:",miwen)
B.
mingwen=input("请输入明文数据:")
k=1
miwen=""
for x in mingwen:
根据 mingwen 的 ASCII 码+k 值算出密文对应字符
k=k+1
print("密文数据为:",miwen)
C.
mingwen=input("请输入明文数据:")
k=0
miwen=""
for x in mingwen:
根据 mingwen 的 ASCII 码+k 值算出密文对应字符
k=k+1
print("密文数据为:",miwen)
D.。
mingwen=input("请输入明文数据:")
k=0
miwen=""
for x in mingwen:
k=k+1
根据mingwen 的 ASCII 码+k 值算出密文对应字符
print("密文数据为:",miwen)
一位茶叶商人从南方收购了n吨新茶,由于产地偏僻不通铁路,茶商准备先沿水路运到武汉,再发往全国各地销售。码头上只有10条规格不同的小货船,每条船舶都不足以装载全部茶叶。各船舶的最大载重量分别为W(i)吨,需f(i)费用(该艘船每吨的费用)(1≤i≤10)。当然,由于茶商是老主顾,而且货船舶还可以搭配载其他货物,因此船主比较客气,声称可以装一部分货物,按实际装多少货物计费(例如,只装了1/3吨,则费用为1/3*f(i))请问茶商应该选择哪些货船,使得费用最低。若有费用相同,输出用船数最少的。
解题思路:随机生成10条船的载重量[1,10]和费用[1,30],然后将它们按费用从小到大排序,若费用相同,则载重大的在前,运输时,先把费用低的船装满,再按费用向下将船装好,运输。

图a

(1)根据上图a所示,可以发现有_________(填数字)个对象没有caption属性。
(2)根据上述描述设计如下VB程序,请在划线处填入合适的代码。

Dim f(1 To 10)As Integer, w(1 To 10)As Integer, b(1 To 10)As Integer

Private Sub Command2_Click()

Dim n As Integer, count As Integer, yf As Integer

Dims As String, i as integer

n = Val(Text1.Text)

count = 0

yf = 0

cz = n

i = 1

Do While n > 0

If n >= w(b(i))Then

____

Else

yf = yf + n*f(b(i))

End If

count=count+1

s = s + Str(b(i))+ "号船"

i=i+1

____

Loop

Label2.Caption="总计费用为:"+ Str(yf)+ "元" + Str(count)+" 条船,分别为"+s

End Sub

Private Sub form_load()

Dim t As Integer, i as integer, j as integer

Listl. Clear

List1. AddItem "编号 载重 费用'"

For i=1 To 10

w(i)= Int(Rnd*10+1)

f(i)= Int(Rnd*30+1)

b(i)=i

Listl. Addltem Str(b(i))+ "     " + Str(w(i))+ "     " + Str(f(i))

Next i

For i=1 To 9

For j=10 To i+1 Step-1

If ____Then

t=b(j):b(j)=b(j-1):b(j-1)=t

End If

Next j

Next i

End Sub

有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

组卷网是一个信息分享及获取的平台,不能确保所有知识产权权属清晰,如您发现相关试题侵犯您的合法权益,请联系组卷网