__
(2)__
flag=True
EndIf
Nextj
If__(3)__Then
__(4)__
a(i)=a(p)
a(p)=t
EndIf
__(5)__
Fori=1To8
List2.AddItemStr(a(i))
Nexti
EndSub
(1)__________________________________________________________________
(2)__________________________________________________________________
(3)___________________________________________________________________
(4)__________________________________________________________________
(5)___________________________________________________________________
30.【加试题】对分查找首先将查找值与有序数组内处于中间位置的元素进行比较,如果中间位置上的元素内的数值与查找值不同,根据数组元素的有序性,就可确定应该在数组的前半部分还是后半部分继续进行查找;在新确定的范围内,继续按上述方法进行查找,直到获得最终结果。
下面的VB程序在数组内进行对分查找,如果查到则在文本框中先是查找元素的序号。
请您把程序补充完整
Dima(1To8)AsInteger
Fori=1To8′将list1中数字读入数组中
List2.ListIndex=i-1
a(i)=Val(List2.Text)
Nexti
Dimlow,mid,high,key,numAsInteger
DimflagAsBoolean
num=Val(Text1.Text)
low=1
high=8
DoWhile____
(1)____
mid=(low+high)/2
If(a(mid)=num)Then
flag=True
key=mid
ElseIf____
(2)____Then
low=mid
Else
____(3)____
EndIf
Loop
IfflagThen
Text2.Text=Str(key)
Else
Text2.Text=“您输入的数字没有查找到!
”
EndIf
(1)______________________________________________________________(4分)
(2)______________________________________________________________(3分)
(3)______________________________________________________________(3分)
《算法与程序设计》(B卷)综合检测试题
一、选择题(本大题共25小题,每小题2分,共50分。
每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)
1.下列VB表达式的值等于5的是( )
A.Sqr(9)B.“2”+“3”
C.Len(“5”)D.Len(“-3234”)
2.为使下面左右框内的VB程序段实现相同的功能,则左框内划线处填写的代码应该是( )
S=0:
t=1
DoWhilet<=6
s=s+t
________
Loop
A.t=2B.t=6
C.t=t+1D.t=t+2
3.如下VB程序段:
a=12:
b=6:
c=7
ifa<=banda<=cthen
y=a
elseifb<=cthen
y=b
else
y=c
endif
该程序运行之后,整数型变量y的值为( )
A.0B.12C.6D.7
4.下列属于VisalBasic工程文件的是( )
A.min.exeB.min.frm
C.min.vbpD.min.mdb
5.下列问题能用算法描述的是( )
A.所有偶数的和
B.所有素数的和
C.将10万个有理数按降序排列
D.用计算机算法证明哥德巴赫猜想
6.程序的三种基本结构是( )
A.选择结构、循环结构、树型结构
B.顺序结构、选择结构、循环结构
C.顺序结构、循环结构、树型结构
D.树型结构、顺序结构、选择结构
7.“如果a,b中任意一个为0,那么y=y+1”。
能实现该功能的VB语句是( )
A.Ifa=0Andb=0Theny=y+1
B.Ifa*b=0Theny=y+1
C.Ifa=0,b=0Theny=y+1
D.Ifa,b=0Theny=y+1
8.某算法的流程图如下图所示。
S的初始值是0,i的初始值是-5,问s=s+i的执行次数( )
A.6B.7C.8D.9
9.在VB程序设计的过程,ascii(“e”)-ascii(“c”)的运算结果是( )
A.0B.“1”
C.2D.3
10.下列逻辑表达式的值为“真”的是( )
A.2+4>8and5>1B.3+12>15or3<1
C.5>0And4<3D.10/5<3or6<8
11.输入两个变量a=2,b=6,按下面的程序代码执行,a,b的值变为多少( )
a=2
b=6
a=a+2
b=a-b
a=a-b
A.a=6,b=2B.a=6,b=4
C.a=6b=-2D.a=6,b=6
12.下面程序执行的结果是( )
privatesubform_click( )
A=“123”:
B=“456”
C=val(a)+val(b)
printC\100
endsub
A.123B.3C.5D.579
13.在VB语言中,下列合法的变量名是( )
A.PrintB.test@qw
C.6cost_1D.count2s
14.下列数据属于字符串函数的是( )
A.Abs( )B.Sqr( )
C.String( )D.Int( )
15.某VB的事件过程如下:
PrivateSubCommand1_Click( )
DimaAsInteger
a=Val(Text1.Text)
a=2*a+1
Text1.Text=Str(a)
EndSub
程序运行时,在文本框Text1中输入1,连续两次单击命令按钮Command1后,Text1中显示的内容是( )
A.7B.5C.3D.1
16.下列VisualBasic程序段运行后,变量Max的值为( )
a=3:
b=10:
max=0
ifa>0thenmax=3
ifb>0thenmax=10
A.0B.3
C.10D.无法确定
17.数组a中的数据存放情况如下表,以下关系表达式成立的是( )
a[1]
a[2]
a[3]
a[4]
a[5]
a[6]
a[7]
a[8]
1
3
4
12
8
6
5
7
A.a[a[3]]=4B.a[a[8]]=8
C.a[6]>a[5]-a[a[1]+1]D.a[a[2]+a[1]]<>a[4]
18.下列控件中可用于接受用户输入文本,又可用于显示文本的是( )
A.Label控件B.TextBox控件
C.Timer控件D.mandButton控件
19.“某商场的店庆促销活动之一:
店庆日购物满500元可在5折优惠后再减100元,否则只打5折”。
用算法描述这一问题,可采用的算法结构是( )
A.顺序结构B.选择结构
C.循环结构D.树型结构
20.在流程图中常用表示输入框( )
21.【加试题】S=1
Forj=10To-10Step-2
s=s*j
Nextj
MsgBox(s)
上述程序段中s=s*j的执行次数是( )
A.20B.10C.11D.21
22.【加试题】S=0
C=0
DoWhileC<100
C=C+1
S=S+C
Loop
MsgBox(Str(C)+Str(S))
该程序的运行结果是( )
A.994950B.1004950
C.1005050D.1015151
23.【加试题】小明编写了如下VB程序段:
PrivateSubcommand1_Click( )
DimxAsDouble
DimyAsDouble
x=Val(Text1.Text)
y=Abs(x)
x=int(y)
Text2.Text=Str(x)
EndSub
此应用程序执行后,出现了如上图所示的错误信息,请问产生此错误的原因是( )
A.语句y=Abs(x)有误B.缺少对象‘424’
C.语句x=int(y)有误D.缺少文本框Text1或文本框Text2
24.【加试题】5位评委依次给学生演讲的成绩打分依次为95,85,92,84,90,如下表所示:
原始数据
95
85
92
84
90
第一趟
84
95
85
92
90
第二趟
84
85
95
92
90
第三趟
若采用冒泡法对其进行从小到大的排序,则第三趟的排序结果是( )
A.8490859392B.8485959092
C.84,85,90,95,92D.8490928593
25.【加试题】对数组83,85,61,75,95,86进行排序操作,若用选择法进行排序,若完成第一遍时的结果为:
61,85,83,75,95,86.则第三遍时的结果是( )
A.61,85,83,75,86,95B.61,75,83,85,95,86
C.61,75,83,85,86,95D.61,85,83,75,95,86
二、非选择题(本大题共5小题,每题10分,共50分)
26.补充程序
完全数,又称完美数或完备数,是一些特殊的自然数。
它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。
例如6=1+2+3;下面程序找出1000以内的完全数,在列表框中显示出来,把程序补充完整.
Dima,sAsInteger
Fori=2To1000
a=1
(1)____
DoWhilea<=sqr(i)
If(iModa)=0Then____
(2)____
____(3)____
Loop
If(s=i)ThenList1.AddItemStr(i)
____(4)____
(1)______________________________________________________________(2分)
(2)___________________________________________________