相关试卷
-
1、有如下ⅤB程序段:
For i=1 To 10
b(a(i) Mod 10)= b(a(i) Mod 10)+1
b(a(i)\10)=b(a(i)\10)+1
Next i
num=0
For i=0 To 9
If b(i)>num Then num b(i)
Next i
数组b各元素初始值为0,数组元素a(1)到a(10)的值依次为“68,17,24,30,36,40,55,58,61,66”,执行该程序段,num的值为( )
A、2 B、3 C、4 D、5 -
2、阅读程序,回答问题。(1)、将程序中的空白处补充完整。
Private Sub Form_Click()
Dim y, s, n As Integer
n = InputBox("输入n")
y = 0:
Do While n \ 10 <> 0
y = n Mod 10
s = s + y
n = n \ 10
Loop
Print s
End Sub
(2)、将流程图中的空白处补充完整。
①处应填写:;②处应填写:。
(3)、若输入n的值为62,程序执行完毕,s的值是 , 该程序采用类型的算法。(解析法/穷举法) -
3、对一段字符(仅包含大小写字母和数字)加密,加密规则为:①字母和数字都往后循环顺移3位,如“a”变为“d”,“y”变为“b”;“0”变为“3”,“7”变为“0”②加密后字母在前,数字在后③字母按逆序排列,数字按顺序排列,如输入明文“ab7Z8x3”,这密文为“aCed4016”。
小王利用VB程序实现这一加密功能,程序界面和代码如下所示:
Private Sub Com_ jm_ Click()
Dim x As String, ch As String, cl As String
Dim s1 As String, s2 As String, s As String
Dim i As Integer, n As Integer, y As Integer
x= Text1. Text
n=Len(x)
For i=1 To n
ch= Mid(x, i, 1)
If ch >= "0" And ch <= "9" Then
①
s2=s2 & y
Elself ch >="a" And ch<="z" Then
y=(Asc(ch)-Asc("a")+3) Mod 26
②
s1=c1+s1
Else
y=(Asc(ch)- Asc("A")+3) Mod 26
c2=Chr(Asc("A")+y)
s1=c2+s1
End If
Next i
③
Text2 Text=s
End sub
(1)、根据程序代码分析,“加密”按钮的名称是。(2)、根据加密规则,明文“9G78fbY5”,则密文为。(3)、请在画线处填入合适的代码:① ② ③
-
4、给定区间[a1,a2]和[b1,b2],若a2≥b1,则认为这两个区间是有重叠的,可进行合并。如区间[1,3]和[2,6]可合并为[1,6];区间[1,6],[2,5]可合并为[1,6];区间[1,4]和[4,5]可合并为[1,5]。
编写一个“合并重叠区间”的VB程序,功能如下:在文本框Text1中按各区间起始值升序依次输入各区间的起始值和终止值(数据都用逗号分隔并以逗号结尾),单击“确定”按钮后,在Text2中显示合并后的各个区间。例如,在文本框Text1中输入“1,2,3,5,4,6,9,12,10,11,”,表示区间[1,2],[3,5],[4,6],[9,12],[10,11],合并后的区间分别为[1,2],[3,6],[9,12]。程序运行界面如图所示,实现上述功能的VB代码如下:
Const n=100
Private Sub Cmd1_Click()
Dim i As Integer, k As Integer, L As Integer, R As Integer
Dim s As String, c As String, t As String, result As String
Dim a(1 To n) As Integer
s= ① : t=" ": k=0
For i=1 To Len(s)
c=Mid(s, i, 1)
If c<>"," Then
②
Else
k=k+1
a(k)=Val(t)
t=""
End If
Next i
L=a(1): R=a(2)
i=3
Do While i<=k
If a(i)>R Then
result = result+"("+Str(L)+","+Str(R)+"),"
L=a(i): R=a(i+1)
R=a(i+1)
End If
③
Loop
result=result+"("+Str(L)+","+Str(R)+"),"
Text2. Text=result
End Sub
(1)、码中①②③划线处代码补充完整。① ② ③
(2)、程序代码中的加框处代码有误,请改正。(3)、运行该程序,输入数据如图所示,程序执行完毕时,变量k为。 -
5、反转字符串,如输入字符串为“123ABCD”,则输出字符串为“DCBA321”。部分程序如下所示,划线处的正确语句是( )
s=Text1.Text:n=Len(s):i=1
‘按变量s中字符顺序从左到右依次存入字符串数组a中,代码略
Do While I < n
t=a(i)
For j= I+ 1 To n
①
Next j
a(j-1)=t
②
Loop
For i = 1 To lean(s)
Texts2.Text = Texts2.Text + a(i)
Next i
A、①a(j+1)=a(j) ②n=n-1 B、①a(j)=a(j+1) ②n=n+1 C、①a(j-1)=a(j) ②n=n-1 D、①a(j-1)=a(j) ②n=n+1 -
6、若在文本框Text1、Text2,Text3中分别输入2,5,6,下列程序段运行后,标签Labe12中显示的内容是( )
Private Sub Command1_Click( )
Dim a As Integer, b As Integer, c As Integer
A=Val(Text1.Text): b=Val(Text2.Text): c=Val(Text3.Text)
Label2.Caption=Str(fx(a, b, c))
End Sub
Function fx(x As Integer, y As Integer, z As Integer) As Integer
If x<y Then fx=z
If x>y Then fx=y Else fx=x
End Function
A、2 B、5 C、6 D、0 -
7、有如下VB程序段:
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
conn.ConnectionString="provider=Microsoft.ACE.OLEDB.12.0;data sourc="
+App.Path+"\socre.accdb"
Conn.Open
Set rs.ActiveConnection=conn
Rs. Open"Selec*from cj"
n=1
Do While Not rs.EOF
Score(n)=rs.fields("成绩"):Name(n)=rs.fields("姓名")
n=n+1:rs.MoveNext
Loop
下列说法中不正确的是( )
A、定义的ADO的Connection对象实例名称是“conn” B、连接的数据库文件名是“\socre.accdb” C、查询的数据表名是“cj” D、该程序段运行后,可知所查询的数据表共有n-1条记录 -
8、“不重复数”的特征是任何相邻两个数位上的数字都不相同。如1101是重复数,1201是不重复数。判断某数是不是重复数的VB程序段如下:
s = Text1.Text
⑴
i = 1: flag = True
Do While i <= n - 1 And flag
If ⑵ Then flag = False
i = i + 1
Loop
If ⑶ Then
Label1.Caption = "重复数"
Else
Label1.Caption = "不重复数"
End If
上述程序中方框处可选语句为:
①flag=False
②n=Len(s)
③Mid(s,i,1)=Mid(s,i+1,1)
则⑴、⑵、⑶处语句依次是( )
A、②、③、① B、①、③、② C、②、①、③ D、③、②、① -
9、有如下ⅤB程序段:
a(1)=68:a(2)=88:a(3)=76:a(4)=60:a(5)=98
a(6)=100:a(7)=64:a(8)=85:a(9)=99:a(10)=59
For i=1 to 9
b(i)=Abs(a(i +1)-a(i))
c(b(i)\10)=c(b(i)\10)+1
Next i
For i = 0 To 10
If c(i)> 0 Then Label1. Caption = Label1. Caption + " "+Str(c(i))
Next i
数组c各元素初值为0,执行该程序段,标签Label1上显示的内容是( )
A、2 3 2 1 1 B、1 3 2 2 1 C、2 3 2 2 1 D、1 3 2 1 2 -
10、在文本框Text1中输入待加密的n个字符(仅由ASCII码字符构成,最多支持960个字符),输入后单击加密按钮,在文本框Text2中产生密文。加密方式如下:
①定义一个数组a(1 to 961)。产生一个3到6之间的随机整数k,将十进制数960均分成k份,字符在字符串中的位置除以k的余数决定该字符存放在第几份数据中(余数为1保存在第一份数据中,余数为2保存在第二份数据中……,余数为0保存在第k份数据中);
②用十进制数127减去每个字符的ASCII码值,得到的差作为该字符的密文,并保存在数组a中,同一段内的密文依次存放;
③将随机产生的数k加64后保存在数组元素a(961)中,并一起参与加密;
④将数组a中所有有密文值的数组元素从后往前依次存放到数组b中;
⑤将数组b中的每个密文用3位数字保存,不足3位的前面用0补足,然后依次连接保存在变量sc中;
⑥在文本框Text2中输出sc。
例如:
①若现有待加密的字符串为“zp123”,产生的随机数k=3,则960分成3份,每份可存放320个值,分别为a(1)至a(320),a(321)至a(640),a(641)至a(960);
②由于Asc(“z”) =122,则127-122=5。字符“z”在待加密字符串中的位置是1,除以k的余数为1,因此数字“5”放在第一份数据的第一个位置,即a(1)=5;同理可得,第一份数据为a(1)=5,a(2)=77;第二份数据为a(321)=15,a(322)=76;第三份数据为a(641)=78;
③将随机产生的k与十进制数64的和保存到a数组的最后一个值中,即a(961)=64+3=67;
④将数组a中所有有密文值的数组元素从后往前依次存放到数组b中,得到b(1)=67,b(2)=78,b(3)=76,b(4)=15,b(5)=77,b(6)=5;
⑤将数组b中的每个元素用0补足3位后依次连接并保存在sc中,得到sc=“067078076015077005”;
⑥输出sc。
注:(asc(“0”)=48,asc(“A”)=65,asc(“a”)=97)
Private Sub command1_Click()
Dim a(1 To 961) As Integer
Dim sr, sc As String
Dim i, j, k, m, n, t As Integer
Dim b(1 To 961) As Integer
Randomize
k = Int(Rnd * 4 + 3)
sr = text1.Text
For i = 1 To 961
a(i) = -1
Next i
a(961) = k + 64
t = 960 / k
For i = 1 To Len(sr)
m = i Mod k - 1
n = i \ k + 1
If i Mod k = 0 then n = n - 1: m = m + k
① = 127 - Asc(Mid(sr, i, 1)) ‘将密文存储到数组a中
Next i
For i = 1 To Len(sr) + 1
j = j + 1
Do While a(j) = -1
j = j + 1
Loop
b(Len(sr) + 2 - i) = a(j) ‘将有密文值的a数组元素存储到数组b中
Next i
For i = 1 To Len(sr) + 1
sc = ② ‘连接密文并保存到sc中
Next i
text2.Text = sc
End Sub
Function space(x As Integer) As String
For i = 1 To ③
space = space & "0"
Next i
End Function
(1)、若加密后的密文为“068029041”,则随机数是;在Text1中输入的明文是。(2)、在填写空白处缺失的代码。① ② ③
-
11、对用户输入的字符串进行解密的VB程序段如下:
s= Text. Text
For i =1 To Len(s)
ch= Mid(s,i,1)
nk=Asc(ch)-i
If nk <0 Then nk nk+127
Text2. Text= Text2 Text Chr(nk)
Next i
已知大写字母A的ASCII码值为65,小写字母a的ASCII码值为97,在文本框Text1中输入内容“yhT5”,执行程序段后,文本框Text2显示的内容为( )。
A、YHt5 B、xgS4 C、zjw9 D、xfQ1 -
12、某仓库物品代码格式为“X-XXX-XXXXX-Y”,其中“X”和“Y”均为0到9之间的数字,“Y”为校验码。校验码由前面9个X计算得到,计算方法为:从左边开始,第1个数字乘以1加上第2个数字乘以2……依此类推,直到加上第9个数字乘以9,将该结果除以10,所得余数即为校验码。
小吴设计一个根据校验码校验物品代码的VB程序,功能如下:在文本框Text1中输入物品代码,单击“校验”按钮Command1,如果输入的校验码与计算所得的校验码一致,则输出“校验通过。”(如下左图所示),否则输出“校验不通过!”(如下右图所示)。
实现上述功能的VB程序如下,加框处代码有错,请改正。
Dim s As String '用于存储输入的物品代码
Dim t As String
Dim i As Integer, j As Integer
Dim sum As Integer '用于存储计算校验码的累加和
Dim check_old As Integer '用于存储输入物品代码中的校验码Y
Dim check_new As Integer '用于存储按照前面9个数字X计算所得的新校验码
Dim a(1 To 10)As Integer
Private Sub Command1_Click()
'从物品代码中取出9个数字X依次存储到a(1)到a(9)中,取出校验码Y存储到a(10)中
s=
Text ①j=0
For i=1 To 13
t=Mid(s, i, 1)
If(t>="0")And(t<="9") Then
j=j+1
a(j)=Val(t)
End If
Next i
'计算新的校验码并和输入的校验码进行比较
sum=0
For i=1 To 9
sum=sum+
②Next i
check_new=
③check_old=a(10)
If check_old=check_new Then
Label1.Caption="校验通过。"
Else
Label1.Caption="校验不通过! "
End If
End Sub
① ② ③
-
13、有求和式 ,编写程序计算并输出当n=20时,s的值。
-
14、数字反转,下面程序的功能是:输入一个非负整数,将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零。如输入120,反转后输出21,程序运行时,在文本框Text1中输入反转前的数字,单击“反转”按钮后,在文本框Text2中显示反转后的数字。程序运行效果如图所示。
为实现上述功能的程序如下,请在程序划线处填入合适的代码。
Private Sub Command1_Click()
Dim a As String
Dim n As Integer
a = Text1.Text
n = Len(a)
Do While ① and Mid(a, n, 1)="0"
n = n - 1
Loop
For i = n To 1 Step -1
Text2.Text = Text2.text + ②
Next i
End Sub
(1)、划线①处应填入的语句为:(2)、划线②处应填入的语句为: -
15、小李编写了一个程序,用以实现下列功能:在文本框Text1中一个十进制数,在文本框Text2中输入需转换数的进制(小于等于16),点击转换按钮,在文本框Text3中输出转换后的数字;点击“退出”按钮,关闭程序。程序运行界面如下图所示:
(1)、根据题目意思,应该在编辑界面将对象“command2”的属性改为“退出”。(2)、为实现上述功能,请在划线处填入合适的代码。Private Sub Command1_Click()
Dim x As Long
Dim y As Integer
x = Val(Text1.Text)
y =
Text3.Text =
End Sub
Function trans(n As Long, b As Integer) As String
Dim hex As String
hex = "0123456789ABCDEF"
Do while n<>0
r = n Mod b
n = n \ b
trans = + trans
Loop
End Function
Private Sub Command2_Click()
End Sub
-
16、对称字符串的特征是从左到右读和从右到左读是完全一样的。如“abba”是对称的,“abcba”也是对称的。判断字符串是否对称的VB程序段如下, 请完善以下两处代码
s=Text1.Text
n=Len(s) 's是待判断的字符串
k=0: j=n
For i=1 to n\2
c1=Mid(s, i, 1)
c2=Mid(s, j, 1)
If c1 <> c2 Then k = k+1: Exit For
j=
Next i
If Then Label1.Caption="对称" Else Label1.Caption="不对称"
-
17、利用格里高利公式 求π,直到最后一项的值小于0.0001为止,输出π的值。
Private Sub Command1_Click()
Dim Pi As Single, t As Single
Dim n As Integer, s As Integer
Pi = 0
t = 1: n = 1: s =1
Do While Abs(t) >= 0.0001
Pi = Pi + t
n =
s=
t = s / n
Loop
Text2.Text =
End Sub
-
18、一个大于1的自然数,除了1和它本身外,不能被其他自然数整除的数称为质数又称素数,下列程序用来判断文本框1中输入的数是否素数,请完善以下三处代码。
Dim i As Integer, m As Integer, flag as Boolean
m =
flag=
For i = 2 To int(sqr(m))
If Then
flag=false
Exit For
End if
Next i
If flag=true Then
Text2.Text = str(m) +"是素数"
Else
Text2.Text = str(m) +"不是素数"
End if
-
19、利用海伦公式求三角形面积的算法属于( )A、排序法 B、解析法 C、枚举法 D、查找法
-
20、法就是在分析具体问题的基础上,抽取出一个数学模型,这个数学模型能用若干个解析式表示出来,解决了这些表达式,问题也就得以解决。