题库 高中信息

题干

下列程序的功能是在text1中输入的自然数,分解为3个互不相同的质数(三个质数的和等于输入的自然数),并把分解产生的质数按升序顺序显示在左边的列表框中。例如,输入20,那么在列表框中会显示如右图所示结果。其中,上述界面中“开始处理”按钮的名称是“Command1”,程序中函数f(x)的功能是判断x是否为质数,如果是质数则返回值为true,否则返回false。

请在下列程序代码的基础上按照要求设计该程序,完善程序中的划线部分。
Dim n As Integer, a1 As Integer, a2 As Integer, a3 As Integer
Function f(x) As Boolean
f = True
For i =" 2" To Sqr(x)
If x Mod i =" 0" Then ___________
Next i
End Function
Private Sub Command1_Click()
n = ________________
For a1 =" 2" To n
For a2 =" a1" To n
For a3 =" a2" To n
If _________________ And f(a1) And f(a2) And f(a3) Then
List1.AddItem (Str(a1) + " " + Str(a2) + " " + Str(a3))
End If
Next a3
Next a2
Next a1
End Sub
上一题 下一题 0.99难度 填空题 更新时间:2015-08-19 02:36:24

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

同类题1

小明利用所学的知识帮助语文老师设计一个语文学考等级查询系统,要求如下:输入某个等级,就能查出该等级的所有学生学号和姓名,并统计出该等级学生的人数,以便语文老师方便了解学生的学考情况。语文学考成绩分A、B、C、D、E五个等级,学生信息存储在数据库文件“stugrade.accdb”的数据表“Chinese”中,数据表“Chinese”的结构如图1所示。

VB程序运行界面如图2所示,在文本框Text1中输入查询的等级,单击“查询”按钮Command1,在列表框List1中显示所有该等级的学生学号和姓名,并按照学号从小到大排序,并在标签Label2处显示学生的人数,如果人数为0,则在列表框中显示“没有该等级的学生”。按此要求编写程序如下,但加框处代码有错误,请改正。

Private Sub Command1_Click()
Dim stuna(1 To 100) As String '存放学生姓名的数组定义为stuna
Dim stunum(1 To 100) As String '存放学生学号的数组定义为stunum
Dim i As Integer, j As Integer, n As Integer
Dim t As String
'连接数据库
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim strSQL As String
cn.ConnectionString = "Provider="Microsoft.ACE.OLEDB.12.0;Data" Source=" + App.Path + "\stugrade.accdb"
cn.Open
strSQL = "select * from Chinese where 语文等级='" + Text1.Text + "'"
Set rs.ActiveConnection = cn
rs.Open strSQL
n = 0
Do While Not rs.EOF
n =" n" + 1
stuna(n) = rs.Fields("姓名").Value
stunum(n) = rs.Fields("学号").Value
rs.NextMove '①
Loop
rs.Close
cn.Close
Set rs = Nothing
Set cn = Nothing
List1.Clear '清除列表框
If n =" 0" Then
List1.AddItem "没有该等级的学生"
Else
For i =" 1" To n - 1 '按姓名排序
For j =" n" To i + 1 Step -1
If stuna(j) < stuna(j - 1) Then '②
t =" stunum(j):" stunum(j) =" stunum(j" - 1): stunum(j - 1) = t
t =" stuna(j):" stuna(j) =" stuna(j" - 1): stuna(j - 1) = t
End If
Next j
Next i
For i =" 1" To n
List1.AddItem stunum(i) + "  " + stuna(i)
Next i
Label2.Caption = "该等级的学生共有" + Str(n) + "名"
End If
End Sub
(1)加框处①有错,应改为____________________________。(3分)
(2)加框处②有错,应改为____________________________。(3分)

同类题5

某校学生会选举需要从学校数据库中随机抽取若干名学生作为监票人。该数据库文件名为school.mdb,其中数据表student存储有关学生学号(xuehao)、姓名(xingming)相关信息,括号内的内容为对应字段名。该程序编辑界面如图所示,相关对象名可参考标识图。

当主持人点击按钮“生成抽号”后,下方的标签会显示可抽取的学号姓名,一定时间后显示被抽取作为监票人的学号姓名。
'xxxss:学校学生数,kcq:可抽取
'xhxm:学号姓名,kcq:可抽取
Dim xxxss As Integer
Dim xhxm(3000) As String
Dim kcq(3000) As Boolean
'cq_Click:启用两个定时器
Private Sub cq_Click()
cqxhxm.Enabled = True
xskcqxhxm.Enabled = True
End Sub
Private Sub cz_Click()  '初始化数组kcq,使每个元素数据都处于可显示状态
For i =" 0" To xxxss - 1
kcq(i) = True '①
Next i
End Sub
Private Sub xskcqxhxm_Timer() '若数组kcq第x个元素处于可抽取状态,则显示数组xhxm第x个元素
x =" Int(Rnd" * xxxss)
If kcq(x) Then xhxmbq.text = kcq(x)   '②
End Sub
Private Sub Form_Load() '从数据库中提取需要的学号姓名相关数据并初始化数组kcq
Randomize
xxxss = 0
Dim conn As New ADODB.Connection,rs As New ADODB.Recordset
Dim str_conn as String,str_sql As String
str_conn = "driver="Microsoft" access driver(*.mdb);DBQ="&app.path&"\school.mdb";
conn.open str_conn
str_sql = "select * from students"
rs.open str_sql
Do While Not rs.eof
xxxss =" xxxss" + 1
xhxm(xxxss) = rs.fields("xuehao")&rs.fields("xingming")
rs.movenext
Loop
For i =" 0" To xxxss - 1
kcq(i) = True
Next i
End Sub
Private Sub cqxhxm_Timer()  '决定抽取的学号姓名作为监票人
xskcqxhxm.Enabled = False
For i =" 0" To xxxss - 1
If xhxmbq.Caption =" xhxm(i)" Then kcq(i) = False
Next i
cqxhxm.Enabled = False
End Sub