学进去-教育应平等而普惠
排序:
限于篇幅仅展示1000道试题,请根据关键词精准搜索
在一规模为n,包含有重复数据且非降序排列的整数数组a中查找某个重复出现的整数key,VB代码如下:
i=1:j=n
Do While i <=j
m=(i+j)\2
If a(m)<Key Then
i=m+1
EIse
j=m-1
End If
Loop
执行该程序段后,下列说法正确的是(  )
A.可以重复元素key最开始出现的位置,该位置信息由变量i得到
B.可以重复元素key最后出现的位置,该位置信息由变量i得到
C.可以重复元素key最开始出现的位置,该位置信息由变量j得到
D.可以重复元素key最后出现的位置,该位置信息由变量j得到
类型:选择题
难度系数:较难0.4
收藏
纠错
详情
有如下 VB 程序段:
For i = 1 To 8
t = a(i)
flag(t) = flag(t) + 1
Do While flag(t) <> 1
t = (t + 1) Mod 10
flag(t) = flag(t) + 1
Loop
b(i) = t
Next i
数组b 和flag 中各元素的初值均为0,数组元素a(1)至a(8)的初值分别为“8, 5,9, 4,9, 4, 6, 7” ,程序运行后,b(5)的值为()
A.0B.5C.8D.9
类型:选择题
难度系数:较难0.4
收藏
纠错
详情
在“抗击疫情,‘宅’出精彩”征文活动中,每位选手可以提交一篇作品。活动以互评的形式展开:每位选手对m篇作品进行打分(本人作品回避),方法如下:
① 用1-n数字代表n个作品,打乱顺序后分配给n个选手。分配方案保存在数组a中,如图a存储了两组分配方案(n=5)。在第一个分配方案中把4号作品分配给1号参赛者,1号作品分配给2号参赛者(选手编号与序号错开)……。
4
1
5
2
3
ça(1)~a(n)中存储第一个分配方案
2
3
4
5
1
ça(n+1)~a(2*n)中存储第二个分配方案
 
 
 
 
 
 
 
↑第i列中的作品拿给i号参赛者打分
图a
②分配方案的形成方法:将1~n之间的随机数字依次放到第1个位置、第2个位置……,随机数不能与位置号相同,并且要防止分配冲突,如前三个分配序号是“2 3 4”,那么在第4位上只能放“5”(如放“1”会导致第5个位置没有符合要求的数字,因此位置n-1需要判断数“n”是否已经分配,如果未分配,位置n-1放置数“n”),最终方案“2 3 4 5 1”。
③评m个作品需要m个分配方案。方案间要避免同一个人拿到重复的作品。如第16题图a第3行上的数据“5 1 2 3 4”不符合要求,因为会使第2号选手重复拿到1号作品。
小明依据上述方法设计了VB程序,功能如下:在文本框Text1和Text2分别输入参赛人数和每人打分的作品数量,单击“分配”按钮Command1,在列表框List1中输出结果。程序运行效果如图b所示。

请回答下列问题:
(1)n=5,m=3,a(1)~a(10)中的数据如图a所示,a(11)~a(15)的数据可能是           (单选,填字母:
A.5 4 3 1 2/B.5 4 1 3 2/C.3 4 5 1 2)
(2)请在划线处填入合适的代码。
Dim n As Integer   '总人数/总作品数
Dim m As Integer   '每人分配篇数
Dim a(1 To 500) As Integer  '数组a大小满足处理要求
Dim c(1 To 100) As Integer  '数组c大小满足处理要求
Private Sub Command1_Click()
Dim i As Integer, j As Integer, k As Integer
n = Val(Text1.Text): m = Val(Text2.Text)
Randomize
i = 1
Do While i <= m
For j = 1 To n
c(j) = 0    '本轮分配方案中还没有数字j, c(j)=0,否则c(j)=1
Next j
For j = 1 To n
If j = n - 1 And c(n) = 0 Then
           
Else
k = r(n, j)
End If
a((i - 1) * n + j) = k    '分配数字k到当前方案的第j个位置上
c(k) = 1
Next j
If               Then i = i + 1   
Loop
s = ""
For i = 1 To n
s = "参赛者" & i & ":"
For j = 1 To m
s = s + Str(a((j - 1) * n + i))+ ","
Next j
List1.AddItem s
s = ""
Next i
End Sub
Function r(x As Integer, y As Integer) As Integer 
'生成一个取值在[1,x]之间,可以放在y位置上的随机数,满足条件r<>y andc(r)=0
End Function
Function check(c As Integer) As Boolean  
'本轮方案和前面几次的分配方案比较,如果有人分到了重复作品,返回FALSE
Dim p As Integer,f As Boolean
f = True
p = 1
For i = 1 To c * n
If                 Then
f = False: Exit For
End If
p = p mod n +1
Next i
check = f
End Function
类型:简答题
难度系数:较难0.4
收藏
纠错
详情
随机产生n个三位数,并对这些数进行索引排序。从文本框Text1中输入n的值,在列表List1中输出原始数据,列表框List2中输出升序排序结果。例如,原始数据140,472,876,811,436,965,884,150数据关系如下表所示:
原始数组a(i)
140
472
876
811
436
965
884
150
初始化索引数组index(i)
1
2
3
4
5
6
7
8
排序后的索引数组index(i)
1
4
6
5
3
8
7
2
排序后结果
140
150
436
472
811
876
884
965
 
(1)实现上述功能的VB程序如下,运行结果如图所示,请在划线处填入合适的代码。

Private Sub Command1_Click()
Dim i As Integer, j As Integer, n As Integer
Dim a(1 To 100), index(1 To 100) As Integer, b(1 To 100) As Integer
n = Val(Text1.Text)
List1.Clear: List2.Clear
For i = 1 To n
__________
List1.AddItem Str(a(i))
Next i
'索引排序
For i = 1 To n
index(i) = i
For j = 1 To i - 1
If a(i) < a(j) Then index(i) = index(i) - 1:_____
Next j
Next i
For i = 1 To n
_____
Next i
For i = 1 To n
List2.AddItem Str(b(i))
Next i
End Sub
(2)加框处代码改为
index(i)=1
For j=1 to n
If a(i)>a(j) then index(i)=index(i)+1
Next j
能否实现排序?_______(填:能/不能)
类型:操作题
难度系数:较难0.4
收藏
纠错
详情
某解密程序:对输入的字符串进行解密处理,输出解密后的字符串。已知数据加密方法为对原始字符串中的每个字符进行如下处理:
①将该字符的ASCII码转换为8位二进制数;
②将后4位二进制数逐位取反(1变0,0变1)
③将操作②生成的4位二进制数均右移一-位,原第4位变成新的第1位;
④将原来的前4位二进制数连接新的后4位二进制数成为最终加密后字符的内码。
例如字符“A”经过上述加密运算,可得到字符“M”。
ASCII码
转二进制数
后4位取反
后4位右移
拼合
转十进制
转字符
65D
0100 0001B
1110
0111
0100 0111B
71D
G
 
程序运行界面如图所示,在文本框Text1中输入加密字符串。点击“解密”按钮后,在文本框Text2中输出原始字符串。

(1)若加密后的字符为F,则原字符为_        
(2)请在划线处填入合适代码。
(3)加框处代码出错,请改正。
Private Sub Command1_ Click()
Dim s As String, s1 As String, s2 As String, n As Integer
Dim x As Integer, i As Integer, j As Integer, C As Integer
Dim a(15) As String
a(0) = "000": a(1) = "0001": a(2) = "0010": a(3) =“011": a(4) = "0100":
a(5) = "0101": a(6) ="0110": a(7) = "111": a(8) = "1000" a(9) ="1001":
a(10) = "1010": a(11) ="1011": a(12) = "1100":a(13) = "1101": a(14)= "1110":
a(15) ="1111"
s2 = "": s = Text1. Text
For i=1 To Len(s)
n = Asc(Mid(s, i, 1))
c=n Mod 16
sl =          
x = Va1(Mid(s1, 1,1))
For j=2 To  4
x=x+               
Next j
x=(n/16)*16
s2 = s2 + Chr(x)
Next i
Text2. Text = s2
End Sub
类型:操作题
难度系数:较难0.4
收藏
纠错
详情
小明使用Flash软件创作主题为“颁奖仪式”的多媒体作品,其制作脚本如下:
场景名: main
类别序号: 1
进入方式:来自“片头”场景,通过“进入”按钮进入
呈现方式:
①“季军”文字变为“亚军”文字,“亚军”文字变为“冠军”文字,时长4秒。
②季军从舞台外从右到左移动,移动效果2秒。
③亚军从舞台外从左到右移动,移动效果2秒。
④冠军从舞台外从左到右移动,移动效果2秒。
⑤“播放”按钮位于舞台右侧,单击该按钮可使停止的动画继续播放。
呈现顺序:
①开始出现背景,文字,按钮,声音响起。
②一开始出现季军动画
③2秒后出现亚军动画
④4秒后出现冠军动画
⑤动画播放到约2秒、约4秒处停止播放。
 
作品的main场景如下图所示,请回答以下问题。

(1)下列说法正确的是_______________ (多选,填字母)。
A.在设计制作脚本之前应先设计好文字脚本
B.制作脚本完成后再进行应用需求分析
C.根据制作脚本可知main场景至少有2个按钮
D.由图可知有2个关键帧上添加了动作脚本
(2)由图可知,“文字”图层第40帧到第60帧中的动画类型为______ (单选,填字母A.逐帧动画/B.形状补间/C.动画补间)。
(3)测试场景,发现某图层动画效果与制作脚本不符,应做的调整为______。
(4)根据制作脚本,“播放”按钮上的动作脚本为_______________。
(5)若该作品发布后,要具有交互性,应该保存为________格式(多选,填字母)。
A.Windows放映文件(*.exe)         B.GIF动画(*.gif)
C.Windows AVI (*.avi)             D.Flash影片(*.swf)
类型:操作题
难度系数:较难0.4
收藏
纠错
详情
某校跳高比赛计分规则如下:每个高度每位选手最多试跳三次,成功记为1,失败或轮空记为0.如选手第一次试跳成功记为100,第二次试跳成功记为010,第三试跳成功记为001,三次失败则终止比赛。编写VB程序统计选手积分,在文本框Textl中输入姓名和成绩,在列表框Listl中输出结果,其算法如下: 1.将每个选手的跳高记录三位一组转换成十进制数存储到数组a(该数组元素的值都不相同)。2.先比较数组a中各数组元素的长度,长度长的排名在前:若长度相同的情况下从后往前依次比较字符大小,当前数值大的排名在前。程序运行界面如图所示:

请在划线处填入合适的代码。
Dima(1 To 9) As String   '存储跳高成绩
Dim b(1 To 9)As String   '存储学生姓名
Dimc(1 To 9) As Integer
Private Sub Commandl_ Click()
Dim ch As String, tmp As Integer,t As Integer
Dim p As Integer,k As Integer,i As Integerj As Integer
Dim s As String
s= Textl.Text:t=0.
For i= 1 To_______
If Mid(s,i, 1)<> "/" Then
ch= ch + Mid(s, i, 1)
Else
t=t+ 1
If t Mod2= 0 Then
a(t\2)= zh(ch)
Else
_________
End If
ch= ""
End If
Next i
For i= 1 To t\2.
c(i)=i
Next i
For i= 1 To t\2- 1
p= i
For j=i+ 1 To t\2
If Len(a(p)) < Len(a(cCj)) Then
p=j
Elself Len(a(C(j))) = Len(a(c(p))) Then
k= Len(a()): flag = True
Do While k>= 1 And flag
If Val(Mid(cCj)),k,1))> Val(Mid(a(c(p)),k,1))Then
p=j
flag=false
Elself val(Mid(c(j)), k, 1)) = val(Mid(a(c(p)), k, 1)) Then
k=k- 1
Else
flag = False
End If
Loop
End If
Nextj
If p< i Then
tmp = c():c(i) = c(p): c(p)= tmp
End If
Next i
For i= 1 To t\2 .
___________
Next i
End Sub
Function zh(cm As String) As String
Dim temp As String
Dim i As Integerj As Integer
For i= 1 To_______
For j= 1 To3
temp =temp * 2 + Val(Mid(cm,(i-1)*3+j,1))
Nextj
zh= zh + CStr(temp)   'CStr函数可把表达式转换为字符串类型
temp = 0
Next i
End Function
类型:操作题
难度系数:较难0.4
收藏
纠错
详情
均分红包。当前有n堆红包,编号为1,2, 3,。。 n,每堆有若干个红包,红包总数sum是n的倍数。可以在任一堆上取若干个红包,然后移动,最终使每堆上的红包个数相同。
移红包规则:
①编号为1的堆上的红包,只能移到编号为2的堆上;
②编号为n的堆上的红包,只能移到编号为n-1的堆上;
③其它堆上的红包,可以移到相邻左边或右边的堆上。
现要求找出最少的移动次数使每堆的红包数-样多。如图所示,在文本框Text1中输入红包堆数n,在文本框Text2中依次输入每堆红包的红包个数(以“,”为分隔符和结束符),单击“移红包次数统计”按钮Command1后,在标签Labe13中显示最少的移动次数。

(1)代码“Private Sub Command1_ Click()”中的Click是______(单选,填字母:
A.对象名B.事件名C.事件处理过程名D.方法名)
(2)实现上述功能的VB程序如下,请在划线处填入合适的代码。
Const Sum = 40    '红包总个数
Private Sub Command1_ Click ()
Dim n As Integer       '红包的堆数
Dim s As String, k As Integer
Dim avg As Integer    '最终每堆的红包个数
Dim ml As Integer, m2 As Integer
Dim tmp As Integer, count As Integer, ans As Integer
n= __________
s = Text2. Text
avg=Sum/n
tmp=0:count=0:ans=0
For k=1 To Len(s)
c = Mid(s, k, 1)
If c <>","Then
tmp =_ _________
Else
count = count + 1
If count = 1 Then
ml =tmp
Else
m2 = tmp
If ml <> avg Then
m2=m2-(avg-m1)
ans=ans+1
End If
________
End If
tmp=0
End If
Next k
Labe13. Caption = Str (ans)
End Sub
类型:操作题
难度系数:较难0.4
收藏
纠错
详情
某考试的多选题有“A、B、C、D、E”5个答案选项。阅卷的评分标准为:“全部选对的得2分,选对但不全的得1分,不选或有选错的得0分”。阅卷算法描述如下:

例如,标准答案为“ABE”,则对应得分表如下所示。
学生答案
ABE
AB
AE
BE
A
B
E
AC
......
字符串
11001
11000
10001
01001
10000
01000
00001
10100
......
十进制数(x)
25
24
17
9
16
8
1
20
......
ans(x)
2
1
1
1
1
1
1
0
0
 
小温依据上述描述设计了“多选题阅卷”的VB程序,实现如下功能:在文本框Text1中输入标准答案(大写字母),先单击“初始化”按钮   Command1,在数组ans中生成所有答案组合对应   的分值,然后单击“阅卷”按钮Command2,从数   据库中读取学生的答案并进行阅卷,在列表框List1中显示得分结果。程序运行界面如图所示。

(1)若标准答案为“ACD”,则数组元素ans (18)的值为         
(2)请在划线处填入合适的代码。

Dim ans(0 To 31) As Integer

Private Sub Command1_Click()

Dim b(0 To 4) As Integer

Dim s As String, c As String, sum As Integer, k As Integer

'初始化数组ans和数组b,各元素的初始值均为0。代码略
s = Text1.Text:k = Len(s)
For i = 1 To k
c = Mid(s, i, 1)
b(Asc(c) - 65) = 2 ^ (69 - Asc(c))
Next i
For i = 0 To 4
If b(i) <> 0 Then
ans(b(i)) = 1
sum =     ①   
End If
Next i
ans(sum) = 2
'当标准答案含3个及以上选项时,学生答案选其中2个选项可得1分
i = 0
Do While k >= 3 And i <= 4
For j = i + 1 To 4
If b(i) * b(j) <> 0 Then ans(b(i) + b(j)) = 1
Next j
i = i + 1
Loop
'当标准答案含4个及以上选项时,学生答案选其中3个选项可得1分
i = 0
Do While k >= 4 And i <= 4
For j = i + 1 To 4
If b(i) * b(j) = 0 Or k = 5 Then          

           Next j

               i = i + 1

          Loop

          '当标准答案含5个选项时,学生答案选其中4个选项可得1分。代码略

    End Sub

   Private Sub Command2_Click()

           Dim xh(1 To 1000) As String, answer(1 To 1000) As String

         '从数据库中读取学生学号和答案的数据分别存储在数组xh和answer中

'记录总数存储在变量n中,代码略

     List1.Clear

       For i = 1 To n

           List1.AddItem xh(i) + "       " + answer(i) + "       " + Str(ans(f(answer(i))))

       Next i

End Sub

Function f(s As String) As Integer

       Dim i As Integer, x As Integer

      x = 0

       For i = 1 To Len(s)

             x =     ③     

       Next i

       f = x

End Function

类型:操作题
难度系数:较难0.4
收藏
纠错
详情
小明编写了一个有关整数闭区间合并操作的VB程序:从数据库读取闭区间数据(左端点和右端点),存储在数组a中,按区间数据左端点升序排序,然后进行合并操作,操作结果存储在数组b中.例如,读取的数据为2、3、15、25、10、14、1、5、30、60、15、25,过程是:
(1)设置区间信息为[2,3],[15,25],[10,14],[1,5],[30,60],[15,25];
(2)按区间左端点升序排序,得到区间信息为[1,5],[2,3],[10,14],[15,25],[15,25],[30,60],[15,25];
(3)合并区间,得到[1,5],[10,25],[30,60].
说明:区间[1,5]和[2,3]合并为[1,5],区间[10,14]和[15,25]合并为[10,25],区间[10,25]和[15,25]合并为[10,25],因此合并后的结果为[1,5],[10,25],[30,60]三个区间。
程序功能如下:单击“读数据库”按钮Command1,程序从数据库读取数据,输出在文本框Text1中;单击“开始处理”按钮Command2,程序进行区间排序,并进行区间合并操作,操作后的结果输出在文本框Text2中。程序运行结果如图所示。

实现上述功能的VB程序如下,请回答下列问题:
(1)从数据库中读入的区间为[1,10],[15,20],[6,18],[25,30],[31,200],则合并操作后的区间为________________。
(2)请在划线处填入合适的代码。
Dim a(1 To 100) As Integer    '数组a存储合并前的区间
Dim b(1 To 100) As Integer    '数组b存储合并后的区间
Dim n As Integer       'n表示区间个数
Private Sub Command1_Click()
'读取数据库中的数据,存储到数组a中,并将区间个数存储在变量n中
'将区间信息输出在文本框Text1中,代码略
End Sub
Private Sub Command2_Click()
Dim s As String, i As Integer, j As Integer, k As Integer, t As Integer
For i = 1 To n - 1
For j = 1 To 2 * n - 2 * i Step 2
If ____________  Then
t = a(j): a(j) = a(j + 2): a(j + 2) = t
t = a(j + 1): a(j + 1) = a(j + 3): a(j + 3) = t
End If
Next j
Next i
b(1) = a(1): b(2) = a(2)
k = 2: i = 2: j = 3
Do While j <= 2 * n
If b(i) >= a(j) Then
If b(i) <= a(j + 1) Then __________
ElseIf b(i) + 1 = a(j) Then
b(k) = a(j + 1)
Else
k = k + 1: _____________
k = k + 1: b(k) = a(j + 1)
i = i + 2
End If
j = j + 2
Loop   
s = ""
For i = 1 To k - 2 Step 2
s = s & "[" & b(i) & "," & b(i + 1) & "]" & ","
Next i
s = s & "[" & b(i) & "," & b(i + 1) & "]"
Text2.Text = s
End Sub
类型:操作题
难度系数:较难0.4
收藏
纠错
详情
首页
上一页
下一页
尾页