题库 高中信息

题干

下列程序的功能是在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

纪念品分组问题。某教师节晚会的纪念品分组规则如下:按纪念品价值进行分组,每组总价值不超过限定值w且最多包含两件,要求分组数最少。编写VB程序解决该问题,程序运行时,在文本框Text1中依次输入每件纪念品的价格(不超过w),以逗号分隔,在文本框Text2中输人限定值w,单击“分组”按钮,在标签 Label2上输出最少的分组数。程序运行界面如图所示。

(1)要使程序启动后,窗体的标题栏显示“纪念品分组”文字,可在 Form Load事件过程中添加语句   (单选,填字母:
A.Form1="纪念品分组"/B.Form1.Name="纪念品分组"/C.Form1. Caption="纪念品分组"/D.Fom1.Text="纪念品分组")。
(2)实现上述功能的VB程序如下,请在划线处填入合适的代码;并且加框处代码有错,请改正。
Private Sub Command1 Click()

Dim a(l To 1000), n As Integer, w As Integer,cnt As Integer

Dim i As Integer, j As Integer, t As Integer

Dim s As String, ch As String

Dim p As Integer, q As Integer

S= Textl. Text: w =Val(text2. Text): n=0

For i=1 To Len(s)

ch=Mid(s, i, 1)

If ch="."Then

n=n+1:a(n)=t: t=0

Else

t=_________①___________

 End If

Next i
For i=n To 2 Step-1

For j=1 To '②

If a(j)< a(j+1)Then
t=a(j):a(j)=a(j+1):a(j+1)=t

End If

   Next j
Next i
cnt= 0
p=1: q=n
Do While p<q

cnt=cnt+1

If ________③_________ Then

p=p+1:q=q-1

Else

p=p+1

End If

Loop
If p=q Then cnt=cnt+1
Label2 Caption- Str(cnt)
End sub
(3)若在文本框Text1中输入“50,30,100,70,80,40,50,20”,文本框Text2中输人“110”,单击“分组”按钮,标签Labe2中显示的内容是____________。

同类题3

小明利用所学的知识帮助语文老师设计一个语文学考等级查询系统,要求如下:输入某个等级,就能查出该等级的所有学生学号和姓名,并统计出该等级学生的人数,以便语文老师方便了解学生的学考情况。语文学考成绩分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

用VB设计查询并统计某公司的销售数据。实现如下功能:
①将所有员工的姓名和销售量存储到数组xm和xse中;
②对销售量数组进行求和,并输出该地区平均销售量(保留整数);
③根据输入“销售排名前几位”筛选出排名前几位销售人员的数据。
程序运行界面如图所示。

(1)下列程序对员工的销售额进行排序的主要算法属于 (选填:解析算法/枚举算法/冒泡排序算法/选择排序算法)
(2)实现上述功能的VB程序如下。请在划线处填入合适的代码。
Dim xse(1 To 3000) As Long '存储销售员工的销售量,最大处理个数为3000
Dim xm(1 To 3000) As String '存储销售员工的姓名
Dim mc(1 To 3000) As Integer  '存储销售员工的名次
Dim num As Integer  '当前员工总数
Private Sub Form_Load()
'将销售量、姓名数据存入xse和xm数组
'计算员工总数num
'代码略
End Sub
Private Sub Command1_Click()
Dim sum As Long
Dim i As Integer, flag As Integer
pm = Val(Text2.Text)
dq = Text1.Text
sum = 0
For i =" 1" To num
sum =" sum" + xse(i)
Next i
For i =" 1" To pm '对员工销售量进行排序
For j =   ①  To  i + 1 Step -1
If xse(j - 1) < xse(j) Then
t =" xse(j" - 1): xse (j - 1) =" xse(j):" xse(j) = t
st =" xm(j" - 1): xm(j - 1) =" xm(j):" xm(j) = st
End If
Next j
Next i
mc(1) = 1
For i =" 2" To pm
If ②  Then
mc(i) =" mc(i" - 1)
Else
mc(i) = i
End If
Next i
List1.Clear
List1.AddItem "排名" + "姓名" + "销售量"
For i =" 1" To pm
List1.AddItem Str(mc(i)) + "  " + xm(i) + "   " + Str(xse(i))
Next i
List1.AddItem dq + "平均销售额约为:" + ③
End Sub