学进去-教育应平等而普惠
排序:
限于篇幅仅展示1000道试题,请根据关键词精准搜索
根据申请人的QA和QB值,从m个申请人中挑选2人组队参加某挑战赛。条件一是2人的QA值都必须大于指定参数h;条件二是2人的QA值之差(较大值减较小值)小于h。在满足上述两个条件的所有2人组合中,挑选QB值之和最大的一个组合。(QA、QB和h的值均为正整数)
编写VB程序,实现上述挑选功能。运行程序,在文本框Text1中输入参数h后,单击“挑选”按钮Command1,在列表框List1中按QA值降序显示满足条件一的申请人信息,最后在标签Label1中显示组队结果。程序运行界面如图所示。

请回答下列问题:
(1)若要清空列表框List1,能实现该功能的语句是_________(单选,填字母:A. List1. Caption = "" / B. List1.Text = "" / C. List1. Clear)。
(2)实现上述功能的VB程序如下,请在划线处填入合适的代码。
(3)程序中加框处代码有错,请改正。
Const m = 20         ’m表示申请人个数
Dim id(m)As Integer,qa(m)As Integer,qb(m)As Integer
Private Sub Command1_Click()
Dim i As Integer j As Integer,k As Integer,t As Integer,max As Integer
Dim h As Integer,n As Integer   ’变量n存储满足条件一的申请人个数
Dim s As String
’读取全部申请人的编号、QA和QB值,分别存入数组id、qa和qb,代码略
h = Val(Text1. Text):n = m
For i = 1 To m — 1
k = i
For j = i + 1 To m
If qa(j)> qa(k)Then k = j
Next j
If  Then
If k <> i Then
t = qa(i):qa(i)= qa(k):qa(k)= t
t = qb(i):qb(i)= qb(k):qb(k)= t
t = id(i):id(i)= id(k):id(k)= t
End If
Else
n =    
Exit For      ’Exit For表示退出循环
End If
Next i
’满足条件一的申请人信息显示在列表框Listl中,代码略
max = 0:s = “没有满足条件的组合”
’在满足条件的组合中,寻找QB值之和最大的组合,若有并列,只保留第一个
For i = n To 2 Step — 1
j = i — 1
Do While   
If qb(i)+ qb(j)> max Then
s = "组队结果:" + Str(id(i)) + "号," + Str(id(j)) + "号"
___③
End If
j = j — 1
Loop
Next i
Label1. Caption = s
End Sub
类型:操作题
难度系数:较难0.4
收藏
纠错
详情
某高一班主任需要对刚入学的新生排座位,教室座位按 6 排 8 列进行摆放(班级学生数不超过48个),并且要求每列的学生按身高从低到高排列。编写 VB 程序,实现教室排座位功能:单击“读取数据”按钮 Command1,从数据库中读取该班所有同学的班内学号(两位数字)和身高数据(3 位数字),并在列表框 List1 中按 8 个一行显示;单击“排座位”按钮 Command2,对每列数据按身高从小到大排列,并显示在列表框 List2 中。程序运行界面如图所示,请回答下列问题:

(1)要使窗体的标题栏文字显示为“排座位”,则应设置窗体的______属性(单选,填字母:A.Text / B.Name /C.Caption)。
(2)程序中加框处代码有错,请改正。
________
(3)实现上述功能的 VB 程序如下,请在划线处填入合适的代码。
Const m = 6
Const n = 8
Dim a(1 To m * n) As String      '存储学号
Dim b(1 To m * n) As Integer     '存储身高
Dim num As Integer            '班级总人数
Private Sub Command1_Click()
'从数据库中读取该班的学号和身高数据存入数组 a 和数组b,班级人数存入变量 num,代码略.
'以下代码为在列表框 List1 中输出数据
s = "" : List1.AddItem "         (讲台) "
For i = 1 To num
=s = s & Str(b(i)) & "[" & a(i) & "] "
If   i = m  Then
List1.AddItem s :s = ""
End If
Next i
If s <> "" Then List1.AddItem s
End Sub
Private Sub Command2_Click()
Dim i As Integer,  j As Integer,  imin As Integer
Dim t1 As String,  t2 As Integer,  s As String
List2.AddItem "              (讲台) "
For i = 1 To_______ 
s = ""
For j = (i - 1) * n + 1 To (i - 1) * n + n
If j <= num Then
__________ 
If imin <> j Then
t1 = a(imin):   a(imin) = a(j):   a(j) = t1
t2 = b(imin):   b(imin) = b(j):   b(j) = t2
End If
s = s & Str(b(j)) & "[" & a(j) & "] "
End If
Next j
List2.AddItem s
Next i End Sub
Function fPos(p As Integer) As Integer
Dim i As Integer,  j As Integer,  k As Integer
k = p
For i =_____________ 
If b(i) < b(k) Then k = i
Next i
fPos = k End Function
类型:操作题
难度系数:较难0.4
收藏
纠错
详情
为了提高群众的安全意识,需要从各个学校挑选志愿者做好防诈骗宣传。组委会从数据库中看到k(1<=k<=11)个不同的学校共上报了n(k<=n<=100)位志愿者。由于人数太多,为了快速决定志愿者人选,组委会决定从中选择一段连续的区间,这个区间内每个报名的学校至少包含1名志愿者,同时要求满足条件的区间长度最小,输出区间内的志愿者名单。
例如,有10条报名数据,来自5个不同的学校,学校编码依次是2,124335,5,3,5,则包含5个学校的最短区间是从第2个到第7个,并从List2中显示所选区间中的志愿者姓名,程序界面如图所示。
(1)要使窗体Forml标题显示“选取志愿者”,则需修改该窗体的_____(单选,填字母:A.Text,,B.Caption/,C.Name(名称))属性。
(2)实现上述功能的VB程序如下,请在划线处填入合适的代码。

Dim bm(1 To 100) As Integer, k As Integer
Dim xm(l To 100)As String, n As Integer
Private Sub Form_load()
‘本过程从数据库中读入指定数据到数组bm、xm中,并在List1中显示
‘获取k,表示不同学校数;n表示报名记录总数代码略
End Sub
Private Sub Command1_Click()
Dim m As Integer
i=k:j=n
Do While i<=j
m=_______
If judge(m)<>0 Then
j=m-1
ans=m:start=judge(m)
Else
i=m+1
End If
Loop
For i=1 To ans

Next i
Label1. Caption="共选出志愿者"+CStr(ans)+"人"
End Sub
Function judge(m As Integer) As Integer   ‘judge函数用于返回区间起始位置
Dim f(1 To 11)As Integer             ’f(i)表示i学校是否包含在区间
Dim t As Integer
judge=0
For i=1To n-m+1      ’枚举以i为起点的区间内是否包含各个学校
t=0
For j=i To i+m-1
If_____Then t=t+1
f(bm(j))=1
Next j
If t=k Then_____:Exit Function
For j=l To k
f(j)=0
Next j
Next i
End function
(3)程序中加框处代码有错,请改正_____。
类型:操作题
难度系数:较难0.4
收藏
纠错
详情
某字符串加密算法,规则如下:
(1)根据字符串长度构建一个最小的n*n矩阵,将字符串中每个字符从左到右,自上而下顺序填入矩阵,不足部分用字符“*”代替;
(2)将矩阵转置(行列对换),然后将奇数行字母内码加上1,偶数行字母内码减1,字符为a、z或A、Z时做循环处理。比如,字符a减1为z;字符Z加1为A。
(3)按从左到右,从上而下依次取出字符,形成新的字符串。如图a为字符串“Go to the zoo.”的加密过程。编写VB程序,在文本框Text1中输入字符串,点击“加密”按钮,在文本框Text2中输出加密后的字符串。程序运行结果如图b所示。

a

b

(1)若在文本框Text1中输入3个字母“Far”,执行加密程序后,输出结果为___。
(2)实现上述功能的 VB 程序如下,请在划线处填入合适的代码
Dim a(1 To 100) As String, b(1 To 100) As String, n As Integer
Private Sub Command1_Click()
Dim s1 As String, s2 As String,i As Integer, j As Integer, m As Single
s1 = Text1.Text
m = Sqr(Len(s1))
If m > Int(m) Then n = Int(m) + 1 Else n = m
For i = 1 To n * n
If i <= Len(s1) Then  a(i) = Mid(s1, i, 1)   Else  a(i) = "*"
Next i
For i = 1 To n
For j = 1 To n
b((i - 1) * n + j) = ___________‘将矩阵转置
b((i - 1) * n + j) = jm(i,j)   ‘内码变换
Next j
Next i
s2 = ""
For i = 1 To n * n
s2 = s2 & b(i)
Next i
Text2.Text = s2
End Sub
Function jm(x As Integer, y As Integer) As String
Dim s As String
s = b((x - 1) * n + y)
If s <= "Z" And s >= "A" Or s <= "z" And s >= "a" Then
If x Mod 2 <> 0 Then
If s <> "Z" And s <> "z" Then
s = Chr(Asc(s) + 1)
Else
s = Chr(Asc(s) - 25)
End If
Else
If s <> "a" And s <> "A" Then
s = Chr(Asc(s) - 1)
Else
s = __________
End If
End If
End If
_________
End Function
类型:操作题
难度系数:较难0.4
收藏
纠错
详情
一张骨牌由上下两行共四个格子构成,每个格子有一个1到6之间的数字。现在一共有5张骨牌,从左到右排成一排,定义每张骨牌的差值为:骨牌第一行的数字和减去第二行的数字和;5张骨牌的差值为:每张骨牌的差值和的绝对值。
如图a中,5张骨牌的差值为:|(3+3-4-4)+(6+3-2-5)+(2+3-4-5)+(1+5-3-3)+(1+1-1-1)|=4。
每张骨牌都可以顺时针旋转90度,效果如图b所示。现在最多可以选择其中一张骨牌进行旋转,使得旋转后的骨牌差值变小。求一种旋转方案,并输出骨牌差值的最小值。

图a

图b
编写VB程序,实现上述功能。运行程序,在文本框Text1中依次输入5张骨牌上的数字,单击“计算”按钮Command1,在文本框Text2、Text3、Text4中输出结果。程序运行界面如图b所示。
(1)若图a中第1张骨牌的数字修改为,1、2、6、6,则骨牌差值的最小值为___________。
(2)实现上述功能的VB程序如下,请在划线处填入合适的代码。
Dim a(1 To 20) As Integer ‘依次存储5张骨牌上的数字
Dim d(1 To 5) As Integer’依次存储5张骨牌,上下两行的差值
Const n = 5
Private Sub Form_Load()
'从文本框Text1读取5张骨牌上的数字,依次存入数组a
'a(1)~a(4)依次存储第一张骨牌从左到右从上到下四个数字
'a(5)到a(20)依次类推
'代码略
End Sub
Private Sub Command1_Click()
Dim i As Integer, up As Integer, down As Integer, t As Integer, k As Integer
Dim id As Integer, times As Integer, x As Integer, ans As Integer
For i = 1 To n
up = a(4 * i - 3) + a(4 * i - 2)
down = a(4 * i - 1) + a(4 * i)
d(i) = up - down
t = t + d(i)
Next i
id = 0 : times = 0
ans =________
If ans <> 0 Then
k = 1
Do While k <= n
For x = 1 To 3
temp =_______
If temp < ans Then
ans = temp
id = k
______
End If
If temp = 0 Then Exit Do
Next x
k = k + 1
Loop
End If
Text2.Text = CStr(id)
Text3.Text = CStr(times)
Text4.Text = CStr(ans)
End Sub
Function turn(ByVal k As Integer, ByVal x As Integer) As Integer
‘求将第k张骨牌,顺时针旋转x次后,上下两行的差值,代码略
End Function
类型:操作题
难度系数:较难0.4
收藏
纠错
详情
从前有一只九尾狐叫小九,他拥有超高的智商,喜欢数学推理。最近他喜欢上了利用约瑟夫环玩推理纸牌的游戏。即给定n张环形排列的纸牌,选定最小的一张牌为起始位置。第一次取第1张牌(起始位置的纸牌),第二次间隔1张取第3张纸牌,第三次间隔2张取第6张纸牌,……直到取完为止(如果取的位置超过n,重新从1位置取)。如果有4张纸牌,那么取的纸牌编号依次为1,3,4,2。同样,可以知道每张纸牌的被取走的顺序如下表。
序号
1    2    3    4
1
轮次
   2    3    4
1     1    1    1
2
轮次
2       4
2     2     2
3
轮次
    2
3      3
4
轮次

4
纸牌被取走顺序也可以理解为纸牌存留的轮次。每次取走一张纸牌后,下一轮第一张纸牌编号为该纸牌的后一张。上述例子中3第二个被取,留存轮次2,下一轮的第一张纸牌为剩下的纸牌留存轮次增加。
现在,只要给小九纸牌的数量n,他能通过逆推法快速地计算出取的纸牌编号顺序,方如下(以 为例):

逆推得到的纸牌顺序

1

4

2

3

最终得到的纸牌编号

1

2

3

4

即在第i轮,上一轮纸牌轮次加1,并在后面增加一张轮次为1的纸牌。然后将轮次为1放在最前的位置,最后整体循环向右移动次。直到n轮后,可知每张纸牌被取走的顺序,根据此顺序,得到每次取走纸牌的编号。

轮次

数组

1    2    3    4

1

a(1)=1

1

2

④前一轮所有值加1
②第二位增加数值1
③将轮次为1的数放在最前
④整体右移动2位
2
2    1
1    2
1    2

3

①前一轮所有值加1
②第三位增加数值1
③将轮次为1的数放在最前
④整体右移动1位
2    3
2    3    1
1    2    3
3    1    2

4

①前一轮所有值加1
②第四位增加数值1
③将轮次为1的数放在最前
④整体右移动0位
4    2    3
4    2    3    1
1    4    2    3
1    4    2    3
根据以上算法小九编写了如下VB程序,请回答下列问题。
(1)由题意可知,当n的值为6时,1~6张纸牌被取走顺序为________。
(2)请在划线处填入合适的代码。
Dim n As Integer
Dim a(1 To 100) As Integer
Private Sub Commandl_Click ()
Dim i As Integer, j As Integer, k As Integer
Dim ans As String, x As Integer
n= Val (Text1.Text)
a(1)=1
For i =2 To n
For j= 1 To i-1

_________

Next j
j=i
Do While j>1

a(j)=a(j-1)

j=j-1

Loop
a(1)=1
For j=1 To n-i

k=a(1)

___________

a (x)=k

Next j
Next i
ans  = " "
For i = 1 To n

ans = ans + Str(a(i))

Next i
Labell.Caption ="序列为: "+ ans
End Sub
Function yd(i As Integer) As Integer
Dim j As Integer, tmp As Integer
For j = i To 2 Step -1
tmp = j + 1
If tmp > i Then ________
a(tmp)= a(j)
Next j
yd = j+ 1
End Function
类型:操作题
难度系数:较难0.4
收藏
纠错
详情
暑假小明的弟弟问了他一道小学一年的数学题,题目是:“小红去超市买东西,里面有:巧克力一盒28元、火腿肠一包24元、皮球一个16元、毛巾一条4元、N95口罩一包15元、笔记本一本8元、铅笔盒一个7元、水晶泥一盒12元、水彩笔一盒24元、牛奶一瓶5元等很多商品。小红带的钱刚好购买其中的两样东西。请问她可以买哪两样东西,有几种组合?”为解决这个问题,小明专门编写了一个VB程序。在文本框中text1输入商品和价格,在文本框text2中输入带的钱,单击“挑选”按钮,在列表框list1中输出查询结果。程序运行界面如下图:

请回答下面问题:
(1)下列对象中,有Caption属性的是________________(单选,填字母:A.Command1/B.Text1/C.Lis1)。
(2)实现挑选两样商品功能的VB程序如下,请在划线处填入合适的代码。
(3)程序中加框处代码有错,请改正。
Private Sub Command1_Click()
Dim n,i,j,k,x,L,R,c As Integer
Dim goods(1 To 20)As String    'goods(i)存储商品的名称
Dim price(1To 20)As Integer     'price(i)存储商品的价格
Dim s,ch As String
s=Text1.Text:x=Val(Text2. Text)
j=1:k=0
For i=1 To Len(s)
ch=Mid(s,i,1)
If ch="," Then
k=k+1
If k Mod 2=1 Then
____________________
Else
price(k\2)=Val(Mid(s,j,i-j))
End If
j=i+1
End If
Next i
n=k\2
For i=1 To n-1
For j=1 To n-i
If price(j)>price(j+1)Then
k=price(j):price(j)=price(j+1):price(j+1)=k
 ______________________________      
End If
Next j
Next i
For i=2 To n
_____________
L=i:R=n
Do While L<=R
m=(L+R)\2
If price(m)+price(k)=x Then
c=c+1
List1. Addltem goods(k)& Str(price(k))&"元和" & goods(m)& Str(price(m))& "元"
j=m
Do While price(j)=price(j-1)
j=j-1
c=c+1
Listl. Addltem goods(k)& Str(price(k))& "元和" & goods(j)& Str(price(j))& "元"
Loop
Do While_____________________________________
m=m+1
c=c+1
Listl. Addltem goods(k)& Str(price(k))& "元和" & goods(m)& Str(price(m))& "元"
Loop
Exit Do’Exit Do 表示退出Do循环
Elself price(m)+price(k)〉x Then
R=m-1
Else
L=m+1
End If
Loop
Next i
List1. Addltem"共有:" & Str(c)& "种组合"
End Sub
类型:操作题
难度系数:较难0.4
收藏
纠错
详情
1947年德国学者阿尔弗德·莫斯纳发表了《一个神奇的幻方》,给出的一个如图1所示的4阶幻方(后被称为:莫斯纳幻方)。但国内有许多专业人都认为“莫斯纳幻方”源自如图2所示的“杨辉4阶幻方”。对“莫斯纳幻方”稍加分析后发现,它其实就是“杨辉4阶幻方”的一个变形:
A.改变列的位置:将图2第3列变为图1第1列,第1列变为第2列,第4列变为第3列,第2列变为第4列。
B.交换行的位置:经过(1)处理后幻方的第1行和第4行,第2行和第3行互换。

图1                            图2                          图3
小李编写了一个将杨辉4阶幻方转换为莫斯纳幻方的VB程序,运行结果整齐地显示在列表框中,程序运行界面如图3所示。

Dim msy(1 To 16) As Integer Dim msm(1 To 16) As Integer

Function adj(c As Integer) As String‘变量前添加适当的空格

Dim tmp1 As String, n As Integer
tmp1 = CStr(c): n = 5‘CStr(x)函数是将数值变量x转换成字符串类型,并把前导空格删除。
For i = 1 To n - Len(tmp1)
tmp1 = " " + tmp1
Next i
adj = tmp1

End Function

Private Sub Form_Load()

‘生成杨辉4阶幻方显示在List1中,并将数据按行依次放入msy(1)至msy(16)中,如msy(1)=4,msy(2)=9

‘上述操作代码略

End Sub

Private Sub Command1_Click()

Dim pb As Integer, tmp As Integer, i As Integer
Dim line As String
For i = 1 To 16    ‘变化列
If i Mod 4 = 1 Then
_______
ElseIf i Mod 4 = 3 Then
pb = i – 2
Else
 _________
End If
___________
Next i
For i = 1 To 8   ‘交换行
If _________ Then
tmp = msm(i): msm(i) = msm(i + 12): msm(i + 12) = tmp
Else
tmp = msm(i): msm(i) = msm(i + 4): msm(i + 4) = tmp
End If
Next i
line= ""
List2.Clear
For i = 1 To 16
If i Mod 4 = 1 Then
List2.AddItem line line = adj(msm(i))
Else
Line=line+adj(msm(i))
End If
Next i
List2.AddItem line

End Sub

(1)补全题中的代码。
(2)加框的代码有误请改正。
类型:操作题
难度系数:较难0.4
收藏
纠错
详情
孪生素数是指间隔为2的相邻素数,它们之间的距离已经近得不能再近了,就像孪生兄弟一样,也称为双生素数。例如,素数11和13,其间隔为2,就是一组孪生素数。请编写程序,输入自然数n(n<1000),判断n和n+2是否为率生素数。(补充说明:素数是指在一个大于1的自然数中,除了1和此数自身外,无法被其他自然数整除的数)

算法描述如右图所示,请将程序补充完整。
Private Sub Form_Click()
Dim n As Integer, i As Integer
Dim x As Integer ‘判断是否为季生素数的变量
_______ = Val(InputBox("输入自然数 n"))
x=l
If n<=l Then  x = 0
End If
For i = 2 To Sqr(n+2)
If n Mod i = 0 Or_______Then
x = 0
End If 
Next i
If x=l Then
Print n,n+2 ;"是孪生素数”
Else
Print ____;"不是孪生素数”
End If
End Sub
类型:操作题
难度系数:较难0.4
收藏
纠错
详情
某校将设立图书漂流站,该校共有24个班级,若用12位二进制对各班捐献的图书进行编号,编号由班级号加书序号,则每班最多可捐献图书的数量为(        )本。
A.32B.64C.100D.128
类型:选择题
难度系数:较难0.4
收藏
纠错
详情
首页
上一页
下一页
尾页