学进去-教育应平等而普惠
排序:
414道相关试题
有m个人结伴旅行(m≤9,每个人用整数1~m编号)。期间既有全员参与的集体活动,也有自主参与的小团队活动。每项活动的消费由参与人平均分摊,其中一人先行垫付并记录。记录内容包括该项活动的人均消费金额(整数,单位:元)参与人。每项活动的参与人用字符串表示,垫付人排在第1位。如“25134”表示2、5、1、3、4号参与该项活动,其中2号是垫付人。旅行结束后依据所有活动的消费记录进行结算:
1)计算每个人的应还款(应还款=应分摊的总金额-先行垫付的总金额);
2)根据所有人的应还款数据计算转账明细(应还款为正的人转给应还款为负的人)。根据上述要求编写VB程序,功能如下:运行程序,读取消费记录数据并在列表框List 1中显示。单击“结算”按钮Command 1,在列表框List 2中显示每个人的应还款,在列表框List 3中显示转账明细。程序运行界面如图所示。


(1)结合程序与界面可知,AddItem是List 2的_______(单选,填字母:A.方法名/B.事件名/C.属性名)。
(2)实现上述功能的部分VB程序如下,请在划线处填入合适的代码。
(3)程序中加框处代码有错,请改正。
Const n=9,m=15
Dim x(1 To n)As Integer            'x(i)存储第i项消费记录的人均消费金额
Dim a(1 To n)As String             'a(i)存储第i项消费记录的参与人
Private Sub Form_Load( )

′读取所有消费记录,存入数组x和a中,并显示在列表框List 1中

′代码略


End Sub
Private Sub Commandl_Click( )

Dim i As Integer,j As Integer,k As Integer,p As Integer

Dim c As Integer,w As Integer,v As Integer

Dim b(1 To n),As Integer             '保存应还款数据

For i= 1 To m

b(i)=0

Next i

For i=1 To n          '根据消费记录计算应还款ni

k=Len(a(i))

p=Val(Mid(a(i),1,1))

b(p)=b(p)-(k–1)*x(i)

For j=2 To k

p=Val(Mid(a(i),j,1))

____

Next j

Next i

c=0

For i=1 To m

List 2. AddItem Str(i)+“号”+Str(b(i))

If b(i)>0 Then c=c+1

Next i

i=1:j=10                         '根据应还款数据计算转账明细

Do While ___

Do While b(i)<=0

i=i+1

Loop

Do While b(j)>=0

j=j+1

Loop:

____

If w>0 Then|Else v =b(i)____

b(i)=b(i)-v:b(j)=b(j)+v

List 3. Addltem Str(i)+“号->”+Str(j)+“号     ”+Str(v)

If w<=0 Then c=c–1

Loop


End Sub
类型:操作题
难度系数:困难0.15
收藏
纠错
详情
某超市想通过对商品的关联分析来改进商品摆放位置,既方便消费者购物又促进销量。根据超市某个时期内的流水记录,统计商品的关联次数(两个不同商品如果同时出现在同一个单号中, 表示这对商品关联 1 次),统计出超市销售商品中关联次数最多的一对商品。
例如:超市某时间段销售流水记录如图 a 所示:

图a


在上表中关联次数最多的一对商品是“怡泉+C 柠檬味汽水330ml”和“统一ALKAQUA矿泉水570ml”,关联次数为2次。
编写 VB 程序,实现超市商品关联分析功能。运行程序,单击“读取销售数据”按钮 Cmd1, 从数据库文件中读取销售单号、商品编号、商品名称等信息,再单击“销售数据分析”按钮 Cmd2, 在文本框 Text1 中输出统计结果。程序运行界面如图b所示。

b


请回答下列问题:
(1)如果同一单号中有5件不同商品,那么总共产生______种不同的商品关联。
(2)实现上述功能的VB程序如下,请在划线处填入合适的代码。
Const num = 100000'所有销售数据不超过 10 万条
Dim numk As Long'销售流水数据总条数 numk
Dim spmc(1 To 1000) As String'商品名称,不超过 1000 种
Dim dh(1 To num) As String ,bh(1 To num) As String'销售单号 dh,商品编号 bh
Dim n As Integer '商品种数n(n<1000)
Dim spgl(1 To num * 2) As Long'商品关联情况 spgl
Private Sub Cmd1_Click()
'从数据库文件中读入销售单号、商品编号、商品名称等信息,按销售单号升序分别保存在数组dh、bh、spmc 中,并统计出总销售数据数量 numk、商品种数 n,代码略
End Sub
Private Sub Cmd2_Click()
Dim i As Long, j As Long, k As Long, t As Long, p As Long, q As Long
Dim x As Integer, y As Integer, maxc As Integer, maxg As String, numc As Long
numc = 1001 : p = 1
numk = numk + 1 : dh(numk) = "00000"'结尾增加一单虚拟单号作为结束标记
For i = 2 To numk

If______Then'前同一销售单号内的商品关联情况

q = i

If q - p > 1 Then

For j = p To q - 2

For k = j + 1 To q - 1

If bh(j) < bh(k) Then

x = Val(bh(j)) : y = Val(bh(k))

Else


y = Val(bh(j)) : x = Val(bh(k))

End If

If spgl(x) = 0 Then'该商品首次出现关联s

spgl(x) = numc

spgl(numc) = y: spgl(numc + 1) = 1: spgl(numc + 2) = 0

numc = numc + 3

Else

t = spgl(x)'查找该商品关联是否出现过

Do While______

t = spgl(t + 2)

Loop

If spgl(t) = y Then

spgl(t + 1) = spgl(t + 1) + 1

Else

spgl(t + 2) = numc

spgl(numc) = y: spgl(numc + 1) = 1: spgl(numc + 2) = 0

numc = numc + 3

End If

End If

Next k

Next j

End If

p = q

End If


Next i
'查找并输出首次出现关联次数最多的一对商品及次数
maxc = 0
For i = 1 To n

t = spgl(i)

Do While t <> 0

If spgl(t + 1) > maxc Then

maxc = spgl(t + 1)

maxg = spmc(i) + "<-->" + spmc(spgl(t))

End If

_________

Loop


Next i
Text1.Text = maxg + ",关联" + Str(maxc) + "次" End Sub
类型:操作题
难度系数:困难0.15
收藏
纠错
详情
在平面坐标系中,有n个节点。某机器人从原点出发,按x坐标从小到大依次寻迹,若x坐标相同,则按y坐标从小到大寻迹,两点间按直线移动。机器人按此规则访问其中的n-1个节点,求机器人寻迹n-1个节点的最短距离(移动轨迹的折线段长度)。
编写一个计算“最短寻迹距离”的程序,功能如下:单击“确定”按钮Command1,读取n个点的坐标,在列表框List1中按x坐标升序显示,若x坐标相同,则按y坐标升序显示。在标签Label1中显示最短的寻迹距离,在标签Label2上显示未访问到的节点的坐标。若有多个节点可以选择,则显示x和y坐标较大的节点。程序运行界面如下图所示。

请回答下列问题:
(1)下列类产生的对象没有Captin属性的是_______(单选,填字母:A.Form / B.TextBox / C. Label   D.CommandButton)。
(2)实现上述功能的VB程序如下,请在划线处填入合适的代码。
Const n = 5
Dim a(-1 To 2 * n) As Single
Function getdis(i As Integer, j As Integer) As Single
   '计算第i和第j个点的直线距离,代码略
End Function
'读取n个点坐标存a(1)~a(2*n)中,a(1)、a(2)存储第1个点的坐标,
'a(3)、a(4)存储第2个点的坐标,依次类推。a(-1)、 a(0)存储原点坐标(0,0)。代码略
Private Sub Command1_Click()
Dim i As Integer, j As Integer, k As Integer , t As Integer
Dim dis As Single, sum As Single, dis1 As Single, dis2 As Single, dis3 As Single
Dim maxdis As Single, ans As Integer
For i = n To 2 Step -1
   _________
   For j = 2 To i
       If a(2 * j - 1) > a(2 * k - 1) Or a(2 * j - 1) = a(2 * k - 1) And a(2 * j) > a(2 * k) Then k = j
   Next j
   If i <> k Then
       t = a(2 * i - 1): a(2 * i - 1) = a(2 * k - 1): a(2 * k - 1) = t
       t = a(2 * i): a(2 * i) = a(2 * k): a(2 * k) = t
   End If
Next i
List1.AddItem "n个点的坐标"
For i = 1 To 2 * n Step 2
   List1.AddItem "(" + Str(a(i)) + "," + Str(a(i + 1)) + ")"
Next i
sum = 0
For i = 1 To n
   _______
Next i
maxdis = 0
For i = 1 To n - 1
   dis1 = getdis(i - 1, i)
   dis2 = getdis(i, i + 1)
   dis3 = getdis(i - 1, i + 1)
   If Then maxdis = dis1 + dis2 - dis3: ans = i
Next i
dis = getdis(n - 1, n)
If dis >= maxdis Then

maxdis = dis

_________

End If


Label1.Caption = "最短寻迹距离为:" + Str(sum - maxdis)
Label2.Caption = "未访问点的坐标:" + "(" + Str(a(2 * ans - 1)) + "," + Str(a(2 * ans)) + ")"
End Sub
(3)程序加框处的代码有错,请改正_______
类型:操作题
难度系数:困难0.15
收藏
纠错
详情
对“842715”中的数字进行选择排序中的两遍加工,即为某密码锁的密码,该密码可能是(       )。
A.124785B.142785C.842715D.875412
类型:选择题
难度系数:困难0.15
收藏
纠错
详情
有n个从小到大排列的正整数依次存储在数组a中,另有m(m<n)个正整数存储在数组b中。现要求只保留上述n+m个数据中从小到大排列的前n个数据,并依次存人数组a中,其余数据被剔除。
小李为了解决该问题,首先结合数组a的有序性,找出a,b两个数组中要剔除的m个数据,再将数组b中保留的数据插入到数组a中。示例如下:
n=10,数组a:2,4,6,8,10,12,14,16,1820
m=5,数组b:41,11,17,29,9
处理后的数组a:2,4,6,8,9,10,11,12,14,16

(1)若n=8,m=4,数组a的元素依次为“3,4,6,10,13,14,21,25”,数组b的元素依次为“3,18,7,15”,按上述要求剔除m个数据后,数组b中保留的数据个数为______
(2)实现上述功能的部分VB程序如下,请在划线处填入合适的代码。
Const n=1000,m=50
Dim a(1 To n)As Integer,b(1 To m)As Integer
Function getImax(k As Integer)As Integer

'在数组元素b(1)~b(k)中找出值最大的元素,返回其下标,代码略


End Function
Private Sub Commandl_Click( )

Dim i As Integer,j As Integer,k As Integer

Dim na As Integer,nb As Integer,imax As Integer,mean As Integerd

'读取数据分别存人数组a、b,代码略

na=n:nb=m

imax=getImax(nb)

For i=1 To m

If a(na)<= ___ Then

b(imax)=b(nb)

nb=nb-1

If nb>0 Then imax=getImax(nb)

Else

na=na-1

End If

Next i

Do While nb>0

i=1:j=na

imax= agetImax(nb)

Do While i<=j

mean =(i+j)\2

If a(mean)<b(imax) Then i= mean +1 Else j=mean-1

Loop

For k=na To iStep-1

___

Next k

a(i+nb-1)=b(imax)

b(imax)=b(nb)

____

nb=nb-1

Loop

'输出数组a,代码略


End Sub
类型:操作题
难度系数:困难0.15
收藏
纠错
详情
无序数组元素a(1)到a(n)中存在一个出现次数过半的值,如数组a的值依次为3,1,2,2,2,其中出现次数过半的元素为2。查找该值的VB程序段如下:
c= a(1): cnt= 0
For i= 1 To
If Then c= a(i)

If Then cnt=cnt+1 Else cnt= cnt-1


Next i
Text1.Text="出现次数过半的值是: "&c
上述程序段3个方框处的代码分别为(   
A.①n   ②cnt=i   ③c = a(cnt)B.①n\2+1        ②cnt=0        ③c =a(i)
C.①n   ②cnt=0   ③c=a(i)D.①(n+1)\2       ②cnt=i          ③c = a(cnt)
类型:选择题
难度系数:困难0.15
收藏
纠错
详情
五子棋游戏规则:1.对局双方各执一色棋子(黑和白);2.每局黑方先下;3.双方交替下子,每次只能下一子;4.当一方棋子先连成五子即获胜(即横、竖或斜任意一个方向均可)。

编写一个VB程序,单击“读取”按钮Command1读取五子棋某个状态的棋盘数据,单击“判断”按钮Command2,显示判断结果。运行界面如图所示:

若双方已经分出胜负,则显示胜方及连成五子的第一颗棋子的位置(行号及列号)。

若双方未分出胜负,则显示当前状态下将下棋的一方。


(1)若棋盘上的黑白棋子数量不相等时,则将下子的一方是______(填:黑方/白方)
(2)编写如下VB程序,请在划线处填入合适的代码。
Const n = 10
Dim s(1 To 400) As String
Private Sub Command1_Click()
‘读取棋盘数据存储在数组s中,●表示黑子,○表示白子,□表示空位,代码略
End Sub
Private Sub Command2_Click()
   Dim i As Integer, j As Integer, flag As Boolean
   flag = False : i = 1
   Do While i <= n And flag = False
       For j = 1 To n
          If ___ Then flag = True: Exit For
       Next j
       i = i + 1
   Loop
   i = i - 1
   If flag Then
       If s((i - 1) * n + j) = "○" Then
          Label1.Caption = "白方胜" + Str(i) + Str(j)
       Else
          Label1.Caption = "黑方胜" + Str(i) + Str(j)
       End If
   Else
       If counts() Then   Label1.Caption = "黑方下"   Else   Label1.Caption = "白方下"
   End If
End Sub
Function judge(x As Integer, y As Integer) As Boolean
   Dim dx(1 To 4) As Integer, dy(1 To 4) As Integer
   Dim flag As Boolean, j As Integer, i As Integer, ux As Integer, uy As Integer
   dx(1) = 1: dx(2) = 1: dx(3) = 1: dx(4) = 0
   dy(1) = 1: dy(2) = 0: dy(3) = -1: dy(4) = 1
   flag = False: i = 1
   If s((x - 1) * n + y) <> "□" Then
       Do While i <= 4 And flag = False
          flag = True
          For j = 1 To 4
             ux = dx(i) * j + x
             uy = dy(i) * j + y
             If Not (ux >= 1 And ux <= n And uy >= 1 And uy <= n) Then flag = False: Exit For
             If ______       Then flag = False: Exit For
          Next j
          i = i + 1
       Loop
   End If
   judge = flag
End Function
Function counts() As Boolean
   Dim i As Integer, j As Integer, white As Integer, black As Integer
   counts = False:white = 0: black = 0
   For i = 1 To n
       For j = 1 To n
        If s((i - 1) * n + j) = "○" Then white = white + 1
        If s((i - 1) * n + j) = "●" Then black = black + 1
       Next j
   Next i
   If ____ Then counts = True
End Function
类型:操作题
难度系数:困难0.15
收藏
纠错
详情
有n个小组(编号1至n),每个小组有m个成员,每个成员都有一个大于0的得分。现要从小组总分超过640分的组别中找出个人分数最高的num名选手(如果有多名成员并列第num名,则全部显示)。按上述要求,编写VB程序,功能如下:在列表框List1中按组别升序显示各小组每个成员的姓名和得分,单击“统计”按钮Command1后,在列表框List2中显示小组总分超过640的小组编号和总分,在列表框List3中显示符合条件的成员名单,程序运行界面如图所示。

请回答下列问题:
(1)能实现清空列表框List2内容的语句是_____________(单选,填字母:A.List2.Caption=""/
B.List2.Clear/ C.List2.Text="")。
(2)请在划线处填入合适的代码。
(3)程序中加框处代码有错,请改正。
Const n = 10, m = 8, num = 5
Dim df(n * m) As Integer, xm(n * m) As String, b(n * m) As Integer
Private Sub Form_Load()
'读取n个小组每个成员的姓名和得分,按组别从小到大依次存入数组xm和数组df,
'xm(1)到xm(m)和df(1)到df(m)分别存储第1小组m个成员的姓名和得分,
'xm(m+1)到xm(2*m)和df(m+1)到df(2*m)分别存储第2小组m个成员的姓名和得分,
'以此类推,并按顺序显示在List1中,代码略
End Sub
Private Sub Command1_Click()
Dim i As Integer, j As Integer,p As Integer, c(n) As Integer
List2.AddItem "组别 总分"
For i = 1 To n

For j = 1 To m

________       

Next j


If c(i) > 640 Then List2.AddItem Str(i) & " " & Str(c(i))
Next i
p = 0
For i = 1 To n

If____      Then

For j = (i - 1) * m + 1 To i * m

p = insert(p, j)

Next j

End If


Next i
List3.AddItem "组别 姓名 得分"
For i = 1 To p

List3.AddItem Str((b(i) - 1) \ m + 1) + " " + xm(b(i)) + " " + Str(df(b(i)))


Next i
End Sub
Function insert(p As Integer, k As Integer) As Integer
Dim j As Integer, t As Integer, last As Integer
j = p + 1: b(j) = k
Do While _____

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

j = j - 1


Loop
last = ____
If last > num Then

If df(b(last)) <> df(b(last - 1)) Then last = last - 1

If df(b(num)) <> df(b(num + 1)) Then last = num


End If
insert = last
End Function
类型:操作题
难度系数:困难0.15
收藏
纠错
详情
2022届毕业生开始,浙江省的赋分规则将由原赋分办法的21个等级变为20个赋分区间,赋分分差由3分细化为1分。在新等级赋分中,第1区间为100-97,第2区间为96-94……以此类推。

原等级赋分

100

97

94

91

88

85

82

79

76

73

70

比例(%

1

2

3

4

5

6

7

8

7

7

7

新等级赋分

100-97

96-94

93-91

90-88

87-85

84-82

81-79

78-76

75-73

72-70

原等级赋分

67

64

61

58

55

52

49

46

43

40

 

比例(%

7

7

7

6

5

4

3

2

1

1

 

新等级赋分

69-67

66-64

63-61

60-58

57-55

54-52

51-49

48-46

45-43

42-40

 


具体步骤为:
第一步,将卷面得分按人数比例划分为20个赋分区间,得出每个区间卷面得分的上限、下限。
第二步,对每个区间的卷面得分进行等比例转换,公式为:
其中,s2、s1为卷面得分区间的上限和下限,s为待转换卷面得分;t2、t1为赋分区间的上限和下限,t为卷面得分等比例转换后的赋分。
第三步,将转换结果四舍五入取整后即为等级赋分。
举例说明:赋分区间为87-85,如对应的卷面得分区间为84-81,某考生的卷面得分为83,通过等比例转换:,可以得出t=86.3,四舍五入取整后的等级赋分为86分。
现有某次考试的新等级赋分对应卷面得分区间的上限、下限对应表及该次考试同学卷面分和原等级赋分情况表,请编程实现计算该次考试新等级赋分情况。

新等级赋分

卷面得分区间的上限s2

卷面得分区间的下限s1

物理

化学

生物

政治

历史

地理

技术

物理

化学

生物

政治

历史

地理

技术

100-97

86

89

93

95

91

87

95

78

83

84

86

79

75

77

96-94

78

82

83

85

78

75

77

76

80

80

84

75

73

73

……

……

……

新等级赋分对应卷面得分区间上限、下限对应表

班级

姓名

卷面得分

原等级赋分

物理

化学

生物

政治

历史

地理

技术

物理

化学

生物

政治

历史

地理

技术

301

陈洲琦

0

0

0

56

51

0

37

0

0

0

61

70

0

61

302

周嘉

0

38

58

0

45

0

0

0

58

73

0

64

0

0

……

……

……

卷面分和原等级赋分情况表


请回答下列问题:
(1)若小李同学技术学科处于赋分区间为96-94,如对应的卷面得分区间为77-73,他的卷面得分为75,可以得出他新等级赋分为__________
(2)实现上述功能的VB程序如下,请在划线处填入合适的代码。
Dim a(1 To 380) As Integer             ‘卷面得分上下限
Dim b(1 To 700) As Integer             ‘卷面分和原等级赋分
Dim dj(1 To 20) As String             ‘新等级赋分
Dim m(1 To 100) As String             ‘班级姓名数据
Dim n As Integer                           ‘需要赋分人数
通过数据库获取各变量值(代码略):
数组a依次存储第一个新等级赋分的物化生政史地技卷面得分区间的上限、卷面得分区间的下限,再存储第二个新等级赋分的卷面得分区间……。数组b依次存储第一位同学的物化生政史地技卷面得分、原等级赋分,再存储第二位……。数组dj依次存储20个新等级赋分分数段。数组m依次存储第一位同学的班级、姓名,再存储第二位……。
Private Sub Command1_Click()
Dim s As Integer,djf As Integer,km As Integer
For i = 1 To n
       ______
       xm = m(i * 2)
       st = bj + xm
       For j = 1 To 7
             k = (i - 1) * 14 + j
             If b(k) <> 0 Then
                    s = b(k)
                    djf = b(k + 7)
                    km = j
                    ____________
             Else
                    ff = 0
             End If
             st = st + Str(ff)
       Next j
       List1.AddItem st
Next i
End Sub
Function Assign(s As Integer, ydjf As Integer, km As Integer) As Integer
Dim flag As Boolean
Dim t1 As Integer
Dim t2 As Integer
For i = 1 To 20
       flag = True
       t2 = 0
       t1 = 0
       For j = 1 To Len(dj(i))
             c = Mid(dj(i), j, 1)
             If c = "-" Then
                    flag = False
             ElseIf flag Then
                    t2 = t2 * 10 + Val(c)
             Else
                    t1 = t1 * 10 + Val(c)
             End If
       Next j
       If ydjf >= t1 And ydjf <= t2 Then
             s2 = a((i - 1) * 14 + km)
             s1 = a((i - 1) * 14 + 7 + km)
             Exit For
       End If
Next i
_________________
End Function
类型:操作题
难度系数:困难0.15
收藏
纠错
详情
给定n个单词,将它们分组,使得每组中任意两个单词不含共同字母(不区分大小写)。
按照以下算法可以得到最少的分组:
(1)将第1个单词分到第1组;
(2)尝试将第2个至第n个单词分到已有的分组中:若能分到已有的分组中,则分到第一个符合条件的组;若不能分到已有的组,则分到新生成的组中。

按上述要求,编写VB程序(运行界面如图所示),功能如下:从文本框Text1中读取单词,单击“分组”按钮Command1,在列表框List1中输出具体分组情况,在标签Label1中显示最少分组的数目。


(1)按照上述算法,若有lion、tiger、wolf、cat、deer、bear等6个单词,分组后第一组分到的单词数是________(填具体数值)。
(2)请在划线处填入合适的代码。
Const n=6
Dim a(1 To n)As String
Dim b(n*(n+1))As Integer’数组b分为n段,每一段的第一个元素存储该组分到的单词个数,后n个元素存储该组分到的单词位置
Private Sub Command1_Click()
   Dim i As Integer,j As Integer,cnt As Integer
   ’读取文本框Text1中的n个单词,并存储在数组a中,代码略
   ’为数组b中所有元素赋初值为0,代码略
   b(0)=1:b(1)=1:cnt=1
   For i=2 To n
       cnt=___
   Next i
   ’输出具体分组情况,代码略
   Label1.Caption="最少可分:"+Str(cnt)+"组
   Function   group(x As Integer,m As Integer)As Integer’分组
     Dim i As integer,j As Integer,t As Integer
     Dim flag As Boolean
     flag=False:group=0
     For i=1 To m
       t=(i-1)*(n+1)
       For j=1 To b(t)
        If mutex(a(x),a(b(t+j))=False Then Exit For
Next j
If j>b(t)Then
b(t)=b(t)+1
        b(t+b(t))=x’分到己有的组
        flag=True:Exit For
End If
     Next i
     If flag=False Then
        t=m*(n+1)
        b(t)=b(t)+1
        ___
          group=1
     End If
     End Function
     Function mutex(m As String,n As String)As Boolean
Dim ch_m(25)As Integer,ch_n(25)As Integer’0~25依次对应26个字母
mutex=True
     ’对数组ch_m、ch_n中各元素赋初值0,代码略
     For i=1 To Len(m)
        c=Mid(m,i,1)
        ch_m(( ) )=1’不区分大小写
        Next i
     ’对单词n做与m同样的处理,处理结果保存在数组ch_n中,代码略
     For i=0 to 25
        If ch_m(i)*ch_n(i)=1 Then
            mutex=False:Exit For
        End If
     Next i
   End Function
类型:操作题
难度系数:困难0.15
收藏
纠错
详情
首页
上一页
下一页
尾页