相关试卷
-
1、有如下VB程序段:
i=6:flag=True
Do While i>=4 And flag=True
flag=False
For j=1 To i-1
If a(j)<a(i)Then
t=a(j):a(j)=a(i):a(i)=t
flag=True
End If
Next j
i=i-1
Loop
数组元素a((1)到a(6)的值依次为“24,7,37,45,11,52”,执行该程序段后,数组元素a(1)到a(6)的值依次为( )
A、7,11,24,37,45,52 B、52,45,37,24,11,7 C、7,11,37,45,24,52 D、52,24,37,45,11,7 -
2、有如下VB程序段:
For i=6 To 4 Step-1
k=i
For j=i-1 To 1 Step-1
If a(j)<a(k)Then k=j
Next j
If i<>k Then
t=a(i):a(i)=a(k):a(k)=t
End If
Next i
若数组元素a(1)到a(5)的值依次为“41,66,70,83,31”,则经过该程序段“加工”后,数组元素的值依次为( )
A、31,41,66,83,70 B、83,70,66,41,31 C、31,41,66,70,83 D、83,66,70,41,31 -
3、将6个数据21,12,18,97,46,27依次存放在数组a(1)到a(6)中,按照下列VB程序进行排序:
Text3.Text=" "
For i=1 To 2
For j=6 To i+1 Step-1
If a(i)<a(j)Then
t=a(i):a(i)=a(j):a(j)=t
End If
Next j
Next i
Text3.Text =Str(a(i)+a(i+1))
程序运行后,文本框Text1中显示的内容是( )
A、33 B、45 C、48 D、113 -
4、有如下VB程序段:
Dim a(1 To 10)As String
Dim key As String
Text1.Text=""
For i=1 To 3
For j=i+1 To 10
If a(j)>a(i)Then
t=a(j):a(j)=a(i):a(i)=t
End If
Next j
Text1.Text=a(i)+Textl.Text
Next i
已知数组元素a(1)到a(10)的原始数据为“12”,“10”,“103”,“26”,“242”,“25”,“35”,“358”,“33”,“6”,则在文本框Text1中显示的内容是( )
A、6 35 358 B、358 242 103 C、35 358 6 D、6 10 12 -
5、某排序算法的VB程序段如下:
For i=1 To 3
k=i
For j=i+1 To 6
If a(j)>a(k)Then k=j
Next j
t=a(i):a(i)=a(k):a(k)=t
Next i
若数组元素a(1)到a(6)的值依次为“8,2,9,3,5,1”,则经过该程序段“加工”后,数组元素a(1)到a(5)的值依次为( )
A、8,2,9,3,5,1 B、9,2,8,3,5,1 C、9,8,5,2,3,1 D、9,8,5,3,2,1 -
6、实现某排序算法的部分VB程序如下:
For i=1 To 6
k=i
For j=i+1 To 7
If a(j)<a(k)Then k=j
Next j
If i<>k Then
t=a(i):a(i)=a(k):a(k)=t
End If
Next i
在排序过程中,若经过某一遍排序“加工”后,数组元素a(1)到a(7)的数据依次为“10,41,75,12,63,11,85”,则下一遍排序“加工”后,数组元素a(1)到a(7)的数据依次是( )
A、10,11,41,75,12,63,85 B、10,11,75,12,63,41,85 C、10,11,12,75,63,41,85 D、10,11,12,41,63,75,85 -
7、采用如下选择排序算法对数组a中的5个数据“23,86,98,65,2”按从小到大的顺序进行排序。
For i=1 To 4
k=i
For j=i+1 To 5
If a(j)<a(k)Then k=j
Next j
If k<>i Then
t=a(i):a(i)=a(k):a(k)=t
End If
Next i
整个排序过程中,数组中的数据的比较次数和交换次数分别是( )
A、10次和3次 B、10次和4次 C、15次和3次 D、15次和10次 -
8、有如下VB程序段:
k=1
For i=2 To 5
If a(i)<a(k)Then k=i
Next i
if k<>1 then
t=a(1):a(1)=a(k):a(k)=t
End If 若程序段运行后,数组元素a(1)~a(5)的值依次为“165,168,178,175,171”,则下列选项中可能是a(1)~a(5)的原始数据序列的是( )
A、175,178,168,165,171 B、178,168,175,165,171 C、165,178,168,175,171 D、165,168,178,175,171 -
9、一组同学的英语成绩分别为24,27,16,15,24,18,按从大到小进行排序的过程如下,则采用的排序算法及第二遍的排序结果分别为( )
第一通
27
24
16
15
24
18
第二遍
第三遍
27
24
24
15
16
18
A、冒泡排序,27 24 16 15 24 18 B、冒泡排序,27 24 18 16 15 24 C、选择排序,27 24 16 15 24 18 D、选择排序,27 24 18 16 15 24 -
10、使用选择排序算法对数据7,1,5,8,4从小到大排序,需要进行数据交换的次数是( )A、5 B、2 C、3 D、4
-
11、某数据压缩方法描述如下:
①原始数据中,某数据不为0且相邻无重复,压缩数据用该数据表示;
②原始数据中,某数据为0且相邻无重复,压缩数据用两个数表示,第1个为0,第2个为0;
③原始数据中,某数据相邻且有重复,压缩数据用3个数表示:第1个为0,第2个为重复数的个数,第3个为该数本身。
小明编写了一个压缩的VB程序,功能如下:窗体加载时,自动读取原始数据,依次存储在数组元素a(1),a(2),a(3)….中,原始数据的个数存储在变量n中,原始数据显示在文本框Text1中。单击“压缩”按钮Command1,程序对原始数据依次进行压缩处理,压缩数据显示在文本框Text2中。程序运行界面如图所示。
(1)、数据“8 8 8 8 8 0 0 11 24”压缩后的结果为。(2)、实现上述功能的VB程序如下,请在画线处填入合适的代码。Private Sub Command1_Click( )
Dim s,result As String
Dim i,num As Integer
i= 1:result=""
Do While i<=n
s=a(i)
num=1
Do While s=a(i+1)
i=i+1
①
Loop
If num >1 Then
result= ②
i=i+1
End If
s= a(i)
num=1
Do While s <> a(i+1)
If s ="0"Then s ="00"
result=result +s
i=i+1
③
Loop
Loop
Text2.Text=result
End Sub
以上程序段运行时,为了实现上述功能,画线处应填入的代码分别为:①;②;③。
-
12、展开字符串,如果在输入的字符串中,含有类似于"c-g"或者“3-7"的字符串,就把它当作一种简写,字符串展开输出时有如下规则:
①如果“一”号右边的字符按照ASCII码的顺序大于左边字符,输出时,用连续递增的字母或数字串替代其中的“一”号,例如"c-g"输出为"cdefg","3-7"输出为"34567"
②如果“一”号右边的字符按照ASCII码的顺序小于或等于左边字符,输出时,保留中间的“一”号,例如"a-a"输出时为"a-a","4-1"输出为"4-1"
③如果“一”号右边的字符恰好是左边字符的后续字符,则删除中间的“一”号,例如:"d-e"就输出为"de","3-4"应输出为“3-4"。
某同学按照上述算法,编写了VB程序,功能如下:在文本框Text1中输入简写字符串,单击“展开”按钮Command1后,程序进行字符串展开处理并显示在文本框Text2中。程序运行界面如图所示。
(1)、如果输入的简写字符串为"abs—w—Y1234—5S—4Z",则展开后的字符串为。(2)、实现上述功能的VB程序如下,请在画线处填入合适的代码。Private Sub Command1_Click( )
Dim st1,st2 As String,i,n As Integer
St1=Text1.Text
n=Len(s1)
st2=""
For i=1 To n
If pos(st1, i)<> "—" Then
st2=st2+ pos(st1, i)
Else
If pos(st1, i) <pos(st1, 1) Then
For j=Asc(pos(st1, i-1))+1To Asc(pos(st1, i+ 1))-1
①
Next j
Else
st2 = st2+"—"
End If
End If
Next i
Text2. Text = s2
End Sub
Function pos(s As String, x As Integer) As String
②
End Function
以上程序段运行时,为了实现上述功能,画线处应填入的代码分别为:①;②。
-
13、RLE压缩方法是Windows系统中使用的一种图像文件压缩方法,用两个数据表示,第一个记录指定像素重复的次数,第二个记录具体的像素值。例如,有一表示颜色像素值的字符串RRRRGGBB,用RLE压缩方法压缩后可用4R2G3B表示。小芳设计了一个VB程序实现RLE算法功能。在Text1中输入原始数据,点击“压缩”按钮Command1后,在Text2中显示经过压缩后的数据,程序运行界面如图所示。
(1)、这里采用的压缩技术属于(选填:有损压缩/无损压缩)。(2)、若想修改文本框Text2中的字体大小,需对它的属性值进行修改(选填:BackColor/Font/Text).(3)、实现上述功能的VB程序如下,请在画线处填入合适的代码。Private Sub Commandl_Click( )
Dim s1 As String,s2 As String
Dim c As Integer,p As Integer
sl=Text1.Text:s2= ""
c=1:p=2
Do While p<Len(sl)
If Mid(s1,p,1)=Mid(s1,p-1,1)Ther
c=c+1
Else
s2 = s2+Str(c)+ Mid(s1,р-1,1)
①
End If
p=р+1
Loop
Text2.Text = ②
End Sub
以上程序段运行时,为了实现上述功能,画线处应填入的代码分别为:①;②。
-
14、在数据加密过程中,为了防止加密方法外泄,往往使用密钥,只有掌握了密钥才能正确加密、解密。某信息加密VB程序,对输入的明文(由英文字母或数字组成的字符串)进行加密,输出加密后得到的密文。该程序使用的密钥是一个2位十进制数。数据加密方法对明文中的每个字符进行如下处理:
①将该字符的ASCII码加密钥后,转换成对应的8位二进制;
②将对应的8位二进制数进行按位取反(1变0,0变1);
③将最后产生的8位二进制数转换成对应的十六进制数;
④将得到的十六进制数码交换顺序后连接,即为该明文的密文。
例如,明文大写字母“A",输入的密钥数值为25,得到的密文为5A,信息加密过程如图所示。

小李编写了加密算法的VB程序,在文本框Text1中输入明文,单击“加密”按钮Command1。程序对明文数据依次进行加密处理,加密后生成的密文将显示在文本框Text2中。程序运行界面如图所示。
(1)、如果输入的明文为大写字母“F",密钥为16,则生成的密文是。(2)、实现上述功能的VB程序如下,请在画线处填入合适的代码。Function btoh(m As String)As String ‘将4位二进制数转换成对应的十六进制数
Dim s As Integer, i As Integer
Dim st As String
st="0123456789ABCDEF"
s=0
For i=1 To 4
s=s*2 +Val(Mid(m,i,1))
Next i
①
End Function
Private Sub Command1_Click( )
Dim ans,ch,s,ret,s1,s2 As String
Dim a,b,c As Integer
s= Text1.Text
c= Val(Text2.Text)
For i = 1 To Len(s)
ch=Mid(s,i,1) ‘取出第i个字符存入变量ch
a=Asc(ch)
b=a+c
ret = " "
For m=1 To 8 ‘完成加密步骤①和步骤②
n=(b+1)Mod 2
ret =str(n)+ ret
②
Next m
s1 = btoh(Mid(ret,1,4)) ‘完成加密步骤③和步骤④
s2 = btoh(Mid(ret,5,4))
ans=ans +s2+s1
Next i
Text3.Text=ans
End Sub
以上程序段运行时,为了实现上述功能,画线处应填入的代码分别为:①;②。
-
15、某日期加密授权码的生成方法如下:
①授权码由9位字符组成,前8位为日期的密文,最后1位为验证码;
②取日期各位的字符,若该字符第一次出现,则直接取其对应的加密字符,否则取下一个不重复的加密字符;
③求出所有日期字符数值的和,将和除16取余加1得到一位验证码字符,取得的验证码重复时,处理规则与②相同。
加密字符对应表如下:
值(十进制)
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
加密字符
K
n
G
j
L
t
W
b
O
a
P
H
Z
Q
Y
C
小李设计了一个生成8位日期(YYYYMMDD格式)授权码的VB程序,程序功能如下:在文本框Text1中输入一个8位有效日期,单击“生成”按钮Command1后,在标签Label2中显示该日期的授权码。运行界面如图所示。实现上述功能的VB程序如下。
(1)、若输入的日期为"19970601",则其授权码是。(2)、请在画线处填入合适的代码。Dim f(0 To 15)As Integer
Const code ="KnGjLtWbOaPHZQYC"
Private Sub Command1_Click( )
Dim rq As String,sq As String
Dim c As Integer,i As Integer,d As Integer
rq = Textl.Text:sq=""
For i= 1 To 8
c=Val(Mid(rq,i,1))
d=d+c
sq= ①
Next i
yz =GetChar(d Mod 16+1)
Text2.Text = sq + yz
End Sub
Function GetChar(x As Integer) As String
Dim flag As Boolean
flag = False
Do While flag = False
f(x) =f(x) +1
If f(x) =1 Then
②
f(x) =f(x) +1
flag=True
Else
x=(x+1) Mod 16
End If
Loop
End Function
以上程序段运行时,为了实现上述功能,画线处应填入的代码分别为:①;②。
-
16、李雷收到了朋友发给他的一封奇怪的邮件,里面有段内容是由一些数字和符号组成的,信上说了这段内容是加密后的内容,并给出了具体的加密方法(假定原文的英文字母都是大写的),具体方法如下:
①“A”变为一个1到100内的随机数*27+1,“B”变成一个1到100以内的随机数*27+2,…,“Z”变为一个1到100以内的随机数*27+26;
②每个字母变为数字后会加一个“一”用来分割数字;
③其他空格和标点字符都按原来的表示。
李雷用VB编写了一个解密程序,功能如下:将邮件中密文的内容复制到文本框Text1中,点击“解密”按钮Command1后,程序会解密密文并将解密后的内容显示在文本框Text2中,程序运行界面如图所示。
(1)、根据描述,若密文为“1905-1442-”,则表示的是。(2)、实现上述功能的VB程序如下,请在画线处填入合适的代码。Private Sub Command1_Click( )
Dims As String, yw As String, t As String
Dim Value As Integer
s=Text1.Text
Value=0
yw=""
For i=1 To Len(s)
t= ①
If t>="0" And t<="9" Then
Value=Value *10+Val(t)
Else If t="-" Then
yw=yw+Chr(Asc("A")+Value Mod 27-1)
②
Else
yw=yw+t
End If
Next i
Text2. Text=yw
End Sub
以上程序段运行时,为了实现上述功能,画线处应填入的代码分别为:①;②。
-
17、以下程序中,单击按钮“Command1”后,在Text1中随机生成了由数字0~9组成的20位随机数字。
同时,在Text2中对该数字进行“加密”,加密规则为:对于每一位数字,加上5,结果保留个位。程序运行界面如图所示。
(1)、若要将按钮上的文本修改为“转换”,则应修改Command1对象上的属性。(2)、实现以上功能的VB程序如下,请在画线处填入合适的代码。Private Sub Command1_Click( )
Dim s1 As String, s2 As String, c As String
Dimi As Integer, s As Integer
For i=1 To 20
s1=s1+ ①
Next i
Text1. Text=s1
For i=1 To 20
c=Mid(s1, i, 1)
s= ②
s2=s2 & s
Next i
Text2. Text=s2
End Sub
以上程序段运行时,为了实现上述功能,画线处应填入的代码分别为:①;②。
(3)、若此程序仅生成4位数字7894,其他规则不变,则输出的结果为。 -
18、小王编写了一个实现文字查找及替换功能的VB程序,运行界面如图所示。文本框Text1中显示原文内容,在Text2中输入查找内容,Text3中输入替换内容,单击“全部替换”按钮Commiand1后,Text4中显示替换的结果,Text5中显示替换次数,Text6中显示“查找内容”在原文中的起始位置。
实现上述功能的VB程序如下,但加框处代码有误,请改正。
Private Sub Command1_Click( )
Dim s As String,result As String,pos As String
Dim count As Integer,i As Integer
i=1:count=0
result="":pos=""
Do While i<=Len(Text1.Text)
s=Mid(Text1.Text,i,Len(Text2.Text))
If s=Text2.Text Then
result=result+Text3.Text
count=count+1
pos=
‘①i=i+Len(Text2.Text)
Else
‘②i=i+1
End If
Loop
Text4.Text=result
Text5.Text=Str(count)
Text6.Text=pos
End Sub
以上程序段运行时,为了实现上述功能,加框处代码应改正为:①;②。
-
19、在平面直角坐标系中,给定一组有序的点。从原点出发,依次用线段连接这些点,构成一条折线。要求编写一个“计算折线长度”的程序,功能如下:在文本框Text1中依次输入这些点的坐标值(数据都用逗号分隔并以逗号结尾),单击“计算”按钮Cmd后,程序计算这条折线的长度,结果显示在Label1中。例如,三个点的坐标(5,10)、(8,12)、(6,17)输入格式如图所示。
(1)、Cmd对象属于类(单选,填字母:A .Form/B .Label/C .TextBox/D .CommandButton)。(2)、实现上述功能的VB程序如下,请在画线处填入合适的代码。Private Sub Cmd_Click( )
Dim i As Integer, j As Integer, k As Integer
Dim x1 As Single, y1 As Single, x2 As Single, y2 As Single
Dim d As Single, Totald As Single, v As Single, s As String
s= ①
x1=0:y1=0 ‘出发点为坐标原点
k=1:i=1:Totald=0
For i=1 To Len(s)
If Mid(s,i,1)=","Then
v=Val(Mid(s,j,i-j)) ‘提取坐标值,保存在变量v中
j=i+1
If ② Then
x2=v
Else
y2=v
d=Sqr((x2-x1)-2+(y2-y1)-2)
Totald=Totald +d
x1=x2:y1=y2
End If
k=k+1
End If
Next i
Label1.Caption=Str(Totald)
End Sub
①②(3)、运行该程序,输入数据如图所示,程序执行到循环结束时,变量k的值为。 -
20、下列VB程序段的功能为;根据文本框Text1中各字符的大小关系,计算各字符按升序排列的序号,并将序号保存在数组y中。如文本框内容为“2011”,程序运行后y(1)~y(4)各元素的值分别为“4,1,2,3”。
s=Text1.Text
n=Len(s)
For i=1 To n
y(i)=1
Next i
For i=1 To
For j=
To nIf
Then y(j)=y(j)+1
Else
y(i)=y(i)+1
End If
Next j
Next i
上述程序段3个方框处的表达式分别为( )
A、⑴n ⑵1 ⑶Mid(s,j,1)>=Mid(s,i,1) B、⑴n ⑵1 ⑶Mid(s,j,1)>Mid(s,i,1) C、⑴n-1 ⑵i+1 ⑶Mid(s,j,1)>=Mid(s,i,1) D、⑴n-1 ⑵i+1 ⑶Mid(s,j,1)>Mid(s,i,1)