内容正文:
第二节 解析算法的程序实现
一、选择题
1.输入一个字符存变量k,统计字符串s中以该字符为首字母的单词个数,小王编写的VB程序段如下:
s = "Python is a popular programming language!"
k = text1. Text:c = 0:n = 0
For i = 1 To Len(s)
ch = Mid(s,i,1)
If Then
c = c + 1
If c = 1 And ch = k then n = n + 1
Else
End If
Next i
为实现上述功能,程序段两个方框处的语句分别为( )
A.①ch >= "A" And ch <="Z" Or ch >="a" And ch <="z" ②c = 0
B.①ch >= "A" And ch <="Z" Or ch >="a" And ch <="z" ②c = 1
C.①(ch <"A" Or ch > "Z")And(ch < "a" Or ch > "Z") ②c=0
D.①(ch <"A" Or ch > "Z")And(ch < "a" Or ch > "Z") ②c=1
2.已知海伦公式:s=√p(p-a)(p-b)(p-c),p=(a+b+c)/2,a、b、c分别为三角形的边长,利用海伦公式求三角形面积的算法属于( )
A.解析法 B.查找法 C.排序法 D.穷举法
3.某对分查找算法的VB程序段如下:
i=1:j=6:n=0:f=False
key=Val(Text1.Text)
Do While i<=j and Not f
n=n+1
m=Fix((i+j)/2)
If key=a(m)then f=True
If key<a(m)then j=m-1 Else i=m+1
Loop
数组元素a(1)到a(6)的值依次为“12,19,27,31,46,55”,文本框Text 1中输入“31”后运行该程序,则以上程序段运行结束后,下列说法不正确的是( )
A.变量i的值为4
B.变量j的值为4
C.变量m的值为4
D.变量n的值为3
4.有如下VB程序段:
n = 0
For i = 1 To Len(Text1.Text)
c = Mid(Text1.Text, i, 1)
If c >= "0" And c <= "9" Then m = 1 Else m = 2
a(m) = a(m) + 1
If a(m) = 1 Then n = n + 1
Next i
数组a各元素的初始值都为0,文本框Textl的内容为“Happy2017”。执行程序后,变量n的值为( )
A.1 B.2 C.4 D.9
5.下面VB程序的功能为:在文本框Text1和Text2中输入两个整数,单击按钮对象Command1,在标签对象Label1中显示这两个数的差。
Function lsc(x,y) As Integer
If x>y Then
lsc=x-y
Else
lsc=y-x
End If
End Function
Private Sub Command1_Click( )
Dim a1 As Integer,a2 As Integer
a1=Val(Text1.Text)
a2=Val(Text2.Text)
Label1.Caption=________
End Sub
要实现上述功能,程序画线处应填入的语句为( )
A.lsc(x,y) B.lsc(Text1.Text,Text2.Text)
C.lsc D.lsc(a1,a2)
6.反转字符串,如输入字符串为“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
7.有VB程序段如下
a=0:b=0
n= Val(Text1. Text)
Do While n>0
r=n Mod 2
a=a+r
b=b+1-r
n=n\2
Loop
If a=b Then Print"相等"Else Print"不等"
该程序段运行后,在文本框Text1中分别输入下列值,其中运行结果不同的是( )
A.11 B.12 C.13 D.14
8.有下列 VB 程序段:
Dim strA As String, strB As String strA = "hongda":strB = ""
For i = 1 To Len(strA) * 2 If i / 2 = Int(i / 2) Then
strB = strB + Chr(Asc(Mid(strA, (i - 1) Mod Len(strA) + 1, 1)) + 2) End If
Next i
该程序段运行后,变量 strB 的值是( )
A."jpfqic " B."qicqic" C."phbqic" D."qicoga"
9.有如下Ⅴ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
Fori=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
10.某排序算法,VB代码如下:
i=1
Do While i<=5
If i = 0 or a(i – 1)<= a(i) Then
i=i+1
Else
t=a(i):a(i)=a(i-1):a(i-1)=t
i=i-1
End If
Loop
数组元素a(0)到a(5)依次为:“0,41,22,53,99,36”,经过该程序段处理后,数组元素a(3)的值为( )
A.36 B.53 C.41 D.22
11.有如下 VB程序段:
Dim i As Integer, x As Integer, s As String, flag As Boolean
Randomize
i = 1: s = " 1"
flag = True
Do While i <= 6
x = Int(Rnd * 9) + 1
If flag Or x Mod 2 = i Mod 2 Then
s = Str(x) + s
flag = Not flag
i = i + 1
End If
Loop
Labell.Caption = s
运行程序后,标签Label1中可能出现的是( )
A.8 7 8 9 6 1 B.6 2 4 3 7 2 1
C.1 9 4 7 6 5 2 D.2 9 2 1 8 6 1
12.有两个以字母结尾的字符串s 1和s 2,在忽略字符串中空格的前提下判断它们是否相同。实现该功能的VB程序段如下:
Else
End If
Loop
.“相同”.“不相同”方框中的代码由以下三部分组成:
①
②
③<>" " <>" " Then Exit Do 'Exit Do表示退出循环代码顺序正确的是( )
A.①②③ B.②①③ C.②③① D.③②①
13.以下只能用解析算法求解的是( )。
A.已知边长a、b、c,求三角形面积。
B.求用10元、20元和50元三种纸币组合支付360元的不同方案。
C.求2000以内的素数。
D.求所有的水仙花数的总和。
14.一元二次方程 ax^2 +bx + c=0 有两个不相等的实数解的条件是( )
A.a<>0 And b*b-4*a*c>0 B.b*b-4*a*c>0
C.a<>0 D.a<>0 Or b*b-4*a*c>0
15.求π的近似值公式:π/4 = 1-1/3 + 1/5-1/7 + ……直到最后一项的绝对值小于0.000001为止。计算π的近似值VB程序段如下:
pi = 1:n = 1
s = l:t = 1
Do While(Abs(s)> = 0.000001)
Loop
pi = pi*4
Textl.Text = Str(pi)
方框中的代码由以下四部分组成:
①pi = pi + s
②n = n + 2
③s = t/n
④t = -t
代码顺序正确的选项是( )
A.①②③④ B.②④③① C.①④③② D.④③②①
二、填空题
16.在窗体上有一个命令按钮(Command1)和两个文本框(Text1和Text2),然后编写了如下事件过程,要求:在文本框Text1中输入一个数值x,根据下面的分段函数计算y的结果,并将y值显示在文本框Text2中。
请将实线以上功能的程序补充完整(:
Private Sub Command1_Click( )
x=" Val" (Text1.text)
If x>0 Then
1
ElseIf 2 Then
y = 0
ElseIf x < 0 Then
y = Abs(x)
End If
3
End Sub
17.补全程序。
已知包含25项的数列:1,2/3,3/5,……,24/47,25/49
问题1:写出该数列的通项公式f(n)=
问题2:以下是计算s=1+2/3+3/5+……+24/47+25/49的程序,请补全代码。
Dim i As Integer
Dim s As Single
s = 0
For i = 1 To 25
s = s +
Next i
Print s
18.有如下VB程序段:
n = 0
For i = 1 To Len(Text1.Text)
c = Mid(Text1.Text, i, 1)
If c >= "0" And c <= "9" Then m = 1 Else m = 2
a(m) = a(m) + 1
If a(m) = 1 Then n = n + 1
Next i
数组a各元素的初始值都为0,文本框Textl的内容为“Luck2018”。执行程序后,变量n的值为
19.阅读以下程序,写出运行结果:
程序运行后,输入:青山绿水 运行输出结果是:
20.【加试题】某种字符加密方法描述如:
①将待加密的字符分成若干个字符串组,每组n个字符,剩余字符(个数小于n)自成一组。
②将每组字符按以下方法重新组合,得到新的字符串。
重新组合规则:取每组第1个字符依次连接生成第i个新的字符串,共n组。
③将底组后的n组字符串依次进行字符交换,得到加密字符(加密前后字符均为大写)。
字符变换规则:按字母顺序后移i个位置后输出。
④依次合并变换后的字符串,即为密文。
例如:明文=“ABCDEFGHIJK”,n=4的字符加密过程如下:
(1)已知n=3,则待加密数据“ABCDEFG”加密后的密文为 。
(2)小张根据上述加密算法,设计了一个对应的加密程序,其VB代码如下,请在划线处填入合适的代码。
下面进行重新组合:重组后数据保存到s1中
下面进行字符变换:字符变换后数据保存到ans中
划线处应填入的代码分别为:(1) (2) (3)
三、操作题
21.用户注册某APP时,密码有如下要求:至少为8个字符,并且必须含有数字和字母。小林编写了一个VB程序,对用户设定的密码进行合法性验证,如图所示。在文本框Text1中输入密码字符串s,单击“验证”按钮,在标签Label1中显示验证结果“符合要求”或“不符合要求”。
(1)实现上述功能的VB程序如下,请在划线处填入合适代码。
Private Sub Cmdjudge_Click()
Dim a1 As Integer, a2 As Integer, flag As Boolean
Dim s As String, c As String, i As Integer, n As Integer
a1=0:a2=0:flag=False
s = Text1.Text
i=1
Do While i<= n And Not flag
c = Mid(s, i, l)
If c >= "A" And c <= "Z" Or c >= "a" And c <= "z" Then
a1=1
ElseIf c >= "0" And c <= "9" Then
a2 = 1
End If
If Then flag = True
i = i+1
Loop
If flag=True And n>=8 Then
Label1. Caption=“符合要求”
Else
Label1. Caption=“不符合要求”
End Sub
(2)代码“Private Sub Cmdjudge_Click()”中的“Cmdjudge”是 .(单选,填字母:A.过程名 / B.属性名/ C.事件名/ D.对象名)
(3)运行该程序,在文本框Text1中输入“Wd6b$ksss”单击“统计”按钮后,语句c=Mid(s, i, 1)共执行了 次。
22.请根据第三段程序回答下题。
●判断题
(1)若输入的p为2时程序会出错。( )
(2)第26行的while改成if,程序的结果不变。( )
(3)若输入的p为质数第27行不会运行。( )
(4) (此题3分)若输入的p为质数,则输出的ans的值为p。( )
● 选择题
(5)(此题4分)若输入p的值为36,则输出的值为( )。
A.36 B.6 C. 4 D.9
(6)对于check( )函数,若tmp< x,则返回的res的结果为( )。
A.x B.tmp C. tmp*x D.ttmp
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.A
2.A
3.A
4.B
5.D
6.C
7.B
8.B
9.D
10.C
11.D
12.D
13.A
14.A
15.B
16.①y=x*x+2*x+1
②x=0
③text2.text="str(y)" 或text2.text= y
17. n/(2n-1) i/(2*i-1)
18.2
19.水绿山青
20. BFJCDGH j<=Len(s) i>Len(s) Mod n ASC(Mid(s1,k,1))-ASC(“A”)+j
21. n = len(s) a1+a2=2 或者 a1=1 And a2=1 D 3
22. 错误 错误 错误 正确 B C
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$