13-字符串-浙江省2022届高中信息技术选考选择题专项训练
字符串
1.(2009A9)有一字符串,由数字、字母和 “-”组成,现以“-”为分组标记,作如下处理:数 字往前 移 3 位 ,如 5 →2,3 →0,8 →5 ; 字母 倒 序放 在各 组 前面; “- ” 不 作处 理 。如 字符 串 “25f-IT4-63t-”,经过处理后变为“f92-TI1-t30-”。下列 VB 程序段实现该算法,则填空处 的代码应该是
Const mw = "0123456789"
s = Text1.Text :s1 = "" : s2 = ""
For i = 1 To Len(s)
c = Mid(s, i, 1)
If c >= "0" And c <= "9" Then
_____(1)______
c = Mid(mw, t + 1, 1)
s1 = s1 + c
ElseIf c = "-" Then
_____(2)______
s1 = ""
Else
________(3)_________
End If
Next i
① s1 = c + s1 ② s2 = s2 + s1 + c ③ s2 = c +s2 + s1 ④ s1 = s1+ c ⑤ t = (7+Val(c)) Mod 10 ⑥ t = (Val(c)-3 ) Mod 10
A.⑤②① B.⑤③④ C.⑥①② D.⑥②①
【答案】A
2.(2009百校)有如下VB程序段:
s = "20zj20sx7": n = 0: st = ""
For i = 1 To Len(s)
c = Mid(s, i, 1) '依次取出字符串,赋值给变量 c
If c> = "a" And c <= "z" Then
st = Chr(Asc("a") * 2 + 25 - Asc(c)) + st
Else
n = n * 10 + Val(c)
End If
Next i
st = st + Str(n)
执行该程序段后,变量st的值是
A. chqa 20207 B. cgpz 47 C. zpgc 20207 D. zjsx 47
【答案】A
3.(2009百校)在字符串s中找连续最长不下降数字字符串长度max,如字符串”318714101223411624”中, 连续最长不下降数字字符串为“012234”,其长度max为6,实现该功能的VB程序段如下:
1
s = "318714101223411624"
c = Mid(s, 1, 1): i = 1: Max = 0
For j = 2 To Len(s)
(1)
(2)
If t > c Or j = Len(s) Then
(3)
(4)
End If
Next j
上述程序段中方框处可选语句如下:
①i = j ②t = c ③c = Mid(s, j, 1) ④If j - i>max Then max = j - i
则(1)(2)(3)(4)处语句依次为
A.③②④① B.②④③① C.②③④① D.③①④②
【答案】C
4.(2010浙江十校)下列VB程序段功能为:字符串s1、s2仅由字母组成,长度相同,在忽略大小写的情况下判断两者是否相同,结果显示在Label1中。
For i = 1 To Len(s1)
C1 = Mid(s1, i, 1): C2 = Mid(s2, i, 1)
If (1) Then
If (2) Then Exit For
If (3) Then Exit For
If (4) Then Exit For
End If
Next i
If i > Len(s1) Then Label1.Caption = "相等" Else Label1.Caption = "不相等"
上述程序段中方框处可选语句为:
①Abs(Asc(C1) - Asc(C2)) <> 32②C1 <> C2
③ C1 >= "a" And C2 >= "a" ④ C1 <= "Z" And C2 <= "Z"
则(1) (2) (3) (4)处语句依次可为
A.①②③④ B.①③④② C.②①④③ D.②④③①
【答案】CD
5.(2010浙江五校)有如下 VB 程序段:
s1 = "abcde"
j = 1
s2 = "a"
For i = 1 To Len(s1)
j = (j + 2) Mod Len(s1) + 1
s2 = s2 + Mid(s1, j, 1)
Next i
Text1.Text = s2
执行该程序段后,文本框 Text1 中输出的内容是
1
A .acebda B.acdeab C.adbeca D .adaceb
【答案】C
6.(2010浙江五校)对 文 本 框 输 入 的 字 符 串 进 行 去 重 , 并 保 持 原 顺 序 不 变 , 例 如 , 在 文 本 框 Text1 中 输 入 "aldajbnjndalldfjj",执行程序后文本框 Text2 中输出“aldjbnf”。实现该算法的 VB 程序如下:
s1 = Text1.Text : n = Len(s1)
For i = 1 To n
a(i) = Mid(s1, i, 1)
Next i
For i = 1 To n
j = i + 1
Do While j <= n
If a(i) = a(j) Then
For k = _________①___________
______________②___
Next k
n = n - 1: j = j – 1
End If
j = j +1
Loop
Next i
For i = 1 To n
s = s + a(i)
Next i
Text2.Text = s
上述程序中 2 处下划线应填入的程序代码是
A.① j + 1 To n ② a(k + 1) = a(k)
B.① j + 1 To n ② a(k) = a(k - 1)
C.① j To n - 1 ② a(k - 1) = a(k)
D.① j To n - 1 ② a(k) = a(k + 1)
【答案】D
7.(2010浙南名校)给定正整数 n(1≤n≤26),要得到中间以“A”开始,两边各递增 n-1 个字符的对称字符串 s,例如 n=5, 则 s=“EDCBABCDE”。实现该功能的 VB 程序段如下:
s = ""
For i = 2 * n - 1 To 1 Step -1
If i <= n Then
s =①
Else
s =②
End If
Next i
上述程序段①②处的语句分别为
1