题库 高中信息

题干

   (加试题)n个数从小到大选择排序需要经过n-1遍加工,每遍加工从未排序的数据元素中找出最小的元素与当前元素进行交换。小天同学学习了选择排序算法和函数的知识后,编写了一个VB程序,功能如下:运行程序时首先在列表框List1中显示10个不小于10且不大于99的随机自然数,单击“排序”按钮Command1后,在列表框List2中显示这些数据按从小到大排序后的结果,运行结果如图所示。


实现上述功能的VB代码如下,但划线处有错,请改正。
Dim a(1 To 10) As Integer '定义数组a
Private Sub Form_Load()
Randomize
For i = 1 To 10  '产生10个不小于10且不大于99的随机自然数,并依次存放在数组a中
a(i) = Int(Rnd * 100) '①
List1.AddItem Str(a(i))
Next i
End Sub
'Find_min函数寻找与当前元素a(x)需要交换的数组元素下标
Function Find_min(x As Integer)
Dim k As Integer, j As Integer
k = x
For j = x + 1 To 10
If a(j) < a(k) Then k = j
Next j
Find_min = k
End Function
Private Sub Command1_Click()
Dim i As Integer, k As Integer, t As Integer
For i = 1 To 9
k = Find_min(i+1)     '②
If k <> i Then
t = a(i): a(i) = a(k): a(k) = t
End If
Next i
For i = 1 To 10
List2.AddItem Str(a(i))
Next i
End Sub
(1)加框处①有错,应改为__________________________。
(2)加框处②有错,应改为__________________________。
上一题 下一题 0.99难度 填空题 更新时间:2019-05-06 08:18:23

答案(点此获取答案解析)

同类题2

小胡收集了2018届高三学生高考成绩及相关的选科情况,存入数据库中,部分界面截图如图所示:

程序功能如下:

在窗体加载时,从数据库中读取学生总数N;读取N名学生的信息存储在相关数组中。N名学生的学号依次存储在数组xh(1)~xh(n) 中;学号为i的学生的总成绩存储在数组 zf(i)中,课程选修信息存储在xk(i)中;

点击“统计”按钮后,程序筛选出所有技术考生的相关信息,并计算该学生在所有技术考生中的排名(总分相同的,排名也相同)。

实现上述功能的VB程序如下,请回答下列问题:
(1)请在划线处填入合适的代码。
Dim xh(1 To 1000) As Integer ’数据库中读取时第i为学生的学号存储在xh(i)
Dim zf(1 To 1000) As Integer ’学号为i的考生的总分存储在zf(i)
Dim xk(1 To 1000) As String ’学号为i的考生的选考课程信息存储在zf(i)
’ 数据格式 **-**-**  (如:物理-化学-生物)
Dim jspm(1 To 1000) As Integer   ’学号为i的技术选考生的总分在所有技术考生中的
’排名存储在数组jspm(i)
Private Sub Form_Load()
Dim conn   As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim  constr  as string , sql as string
Constr = "Provider=Microsoft.ace.OLEDB.12.0;"
Constr = constr &  "Data Source=" & App.Path + "\data\stu2018.accdb"
conn.ConnectionString = constr
conn.open( )
rs.Open  "select * from 2018cj  "  ,  conn
i=0
Do While Not rs.EOF
i=i+1
xh(i)=rs(“xuehao”)
zf(rs(“xuehao”)) = rs(“fenshu”)
xk(rs(“xuehao”))=rs(“xkinfo”)
【小题1】
Loop
N=i
End Sub
’判断选科信息info中是否包含科目km 
Function YouKM(ByVal km As String, ByVal Info As String) As Boolean
Dim km1 As String
YouKM = False
For i = 1 To 3
If 【小题2】 Then
YouKM = True
Exit For
End If
Next i
End Function
'为技术学科考试求名次
Private Sub Command1_Click()

Dim jsinfo(1 To 1000) As Integer    ’依次存储每个技术选考生的学号和成绩

Dim k as integer    ’存储找到的技术选考学生的数量

'将所有选考“技术”的考生学号、成绩依次存入数组jsinfo中

    k = 0
For i = 1 To n
If    【小题3】 Then
k = k + 1
jsinfo(2 * k - 1) = xh(i)
jsinfo(2 * k) = cj(xh(i))
End If
Next i
'学号为i的学生在技术选考生中的排名,存入jspm(i)中
For i = 1 To k
mc = 0
For j = 1 To k
If jsinfo (2 * j) > jsinfo (2 * i) Then mc = mc + 1
Next j
jspm(jsinfo(2*i-1))= 【小题4】

Next i

   '输出所有技术考试的学号、成绩、技术排名信息 代码略
End Sub

同类题3

波波同学一直梦想买彩票中500万大奖,他收集了最近100期“双色球”开奖信息,存储于data. accdb文件中,并使用VB软件编写了“双色球投注建议”程序,程序根据最近100期开奖信息,统计出现概率最低的6个红色球号码和1个蓝色球号码,给出投注建议。如果蓝色球有多个概率最低的号码,则输出多个,红色球不考虑并列概率量低情况。
注:福彩“双色球”玩法;在1-33个红色球影申随机生成6个号码,在1~16个蓝色球号码中随机生成个号码,共计6+1个号码开奖。
程序运行界面如图所示。

(1)实现上述功能的VB程序如下,请完善画线处的代码。
Dim red(l To 600) As Integer '用于存储100*6红色球信息
Dim blue(1 To 100) As Integer '用于存储100*1蓝色球信息
Private Sub Form_Load()
'本过程用于从数据库data. accdb中读取最近100期双色球开奖信息
'将100*6个红色球开奖信息依次存储在数组red()中
'将100*1个蓝色球开奖信息依次存储在数组blue()中
'将最近100期开奖信息格式化后显示在列表框List1中
'本过程代码略
End Sub
Private Sub Command1_Click()
Dim min As Integer
Dim s As string
Dim f(1 To 33)As Integer
'——以下开始处理蓝色球部分——
For b= 1 To 100
f(blue(b))= f(blue(b))+1
Next b
min= 100
For i= 1 To 16

If f(i)< min Then min f(i)

Next i
For i=1 To 16

If f(i)= min then s= _______

f(i)=0
Next i
List2. Additem"蓝色球重点买人:"十s
'——以下开始处理红色球部分——
For r=1 To 600
_________
Next r
_________

(2)在某次红球部分处理时,若数组f中的,f(1)至f(33)的值依次为:
f(1)-f(11):
6
8
20
25
16
21
14
20
24
28
26
f(12)-f(22):
1
30
8
1
10
10
33
28
32
20
6
f(23)-f(33):
4
34
29
18
25
30
4
13
30
20
6
 
结合加虚线框处代码的算法,输出的内容是:
红色球重点买入:________________________.(按输出顺序写出6个红球号码)。

同类题4

(加试题)某字符串(字节数为 2 的倍数)编码规则如下:
(1)将该字符串内码分成 2 个字节一组,每个字节前补上一个 0,构成 9 位二进制,顺次链接后得到 18 位二进制;
(2)将得到的 18 位二进制数字分成 3 组,每组 6 位;
(3)在每组数字前补上两个 0,得到 3 个字节的二进制数;
(4)将(3)中得到的三个字节的二进制数分别转换为十进制数;
(5)将每个十进制数转换为 1 个加密字符,对应的“ 密码表 ”按数值由小到大依次为 012345678ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+/” 小明按照上述方法,设计了一个字符串(仅包含 ASCII 字符)加密的 VB 程序,功能如下:单击“加密”按钮 Command1,程序依次将文本框 Text1 中每 2 个字符的 ASCII 码值按编码规则转换为三个加密字符,连接这些加密字符,最后在文本框 Text2 中输出加密结果。程序效果如下图所示。

实现上述功能的 VB 程序如下:
(1)在 Text1 中输入明文“AB”,用上述加密算法得到的密文为_____。
(2)实现上述功能的 VB 程序如下。请在划线处填入合适的代码。
Function cc(n As Integer) As String
Dim s As String
s = "012345678ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+/"
_____
End Function
Private Sub Command1_Click()
Dim n As Integer, s As String, i As Integer, ss As String
Dim a1 As Integer, a2 As Integer
Dim b1 As Integer, b2 As Integer, b3 As Integer
s = Text1.Text
n = Len(s)
ss = ""
For i = 1 To n    Step 2
a1 = Asc(Mid(s, i, 1))
_____
b1 = a1 \ 8
b2 = _____
b3 = a2 Mod 64
ss = ss + cc(b1) + cc(b2) + cc(b3) Next i
Text2.Text = ss
End Sub