浙江省金华市江南中学2020届高三信息技术网课2月22日第二周测试卷

资源下载
  1. 二一教育资源

浙江省金华市江南中学2020届高三信息技术网课2月22日第二周测试卷

资源简介

(
…………○…………外…………○…………装…………○…………订…………○…………线…………○…………
)
(
※※请※※不※※要※※在※※装※※订※※线※※内※※答※※题※※
)
(
…………○…………内…………○…………装…………○…………订…………○…………线…………○…………
)
登陆二一教育在线组卷平台
助您教考全无忧
浙江省金华市江南中学2020届高三信息技术网课2月22日第二周测试卷
一、选择题(25
2=50分)(共25题;共50分)
1.下列表达式的运算结果与其他选项不同的是(?

A.?Len("123")
+
2
^
2??????????????????????????????B.?Abs(Int(-6.8))
C.?Asc(Mid("789",
1,
1))???????????????????????????D.?Val("9")
-
Sqr(4)
【答案】
C
【考点】运算符、基本运算与表达式
【解析】【解答】选项A:
Len("123")
+
2
^
2
=3+4=7。选项B:
Abs(Int(-6.8))
=Abs(-7)=7。选项C:Asc(Mid("789",
1,
1))=Asc(“7”)=55。选项D:
Val("9")
-
Sqr(4)
=9-2=7。故答案选C。
【分析】本题考查的是len()、abs()、int()、mid()、asc()、val()和sqr()函数的功能。len函数是求字符串的长度,abs函数是求参数的绝对值,int是求不大于参数的整数,mid中按指定位置指定长度从字符串中取出一个子串,asc是求某个字符的ASCII码,val是将参数转为数值型,sqr是求参数的算术平方根。
2.下列VB表达式中,随机产生10到100之间奇数的是(?

A.?Int(Rnd
45)
2+
10?????????????????????????????B.?Int(Rnd
45)
2+11
C.?Int(Rnd
90+10)???????????????????????????????????D.?Int(Rnd
90+11)
【答案】
B
【考点】运算符、基本运算与表达式
【解析】【解答】随机产生奇数的形式是类似于“2
n+奇数”的VB表达式,该数的区间范围是10到100的奇数,即11到99的奇数,故答案是B。
【分析】本题考查的是随机产生奇数的VB表达式。
3.有如下VB程序段:
For
i
=
1
To
9
Step
2
??b(a(i)
Mod
10)
=
b(a(i)
Mod
10)
+
1
Next
i
s
=
0
For
i
=
0
To
9
Step
3
??s
=s
+
b(i)
Next
i
数组b各元素初始值为0,
数组元素a(1)到a(9)的值依次为“29,74,12,38,16,45,21,57,33”,则执行该程序段后,s的值为(?

A.?5??????????????????????????????????B.?4??????????????????????????????????C.?3??????????????????????????????????D.?2
【答案】
C
【考点】常见数据类型、数组,常量、变量及变量的赋值
【解析】【解答】数组元素的个位数按照桶排序进行计数,步长为2,故统计a(1)
Mod
10,a(3)
Mod
10,a(5)
Mod
10,a(7)
Mod
10,a(9)
Mod
10的结果,因此1、2、3、6、9的值数组加1,而累加时的步长是3,b(3)、b(6)和b(9)的值被累加,故答案是3。故答案选C。
【分析】本题考查的是数组和统计。
4.有如下VB程序段:
a(1)
=
1
?For
i
=
2
To
6
?Randomize
?a(i)
=
a(i
-
1)
+
Int(Rnd
5
+
1)
?If
a(i)
Mod
2
=
1
Then
??
a(i)
=
a(i)
\
2
+
1
?Else
??
a(i)
=
a(i)
/
2
?End
If
?Next
i
执行程序后,a数组各元素可能是(?

A.?1
3
4
6
7
9??????????????B.?1
2
0
3
5
6??????????????C.?1
2
3
4
5
4??????????????D.?1
3
4
5
1
1
【答案】
C
【考点】常见数据类型、数组,运算符、基本运算与表达式
【解析】【解答】题中a(2)的范围是1~3,a(3)~a(5)的范围都是1~5,排除A、B,选项D中a(4)=5,可推知a(5)为3~
5,不可能是1,只有C都符合。故答案选C。
【分析】本题考查的是数组的运用以及对常用函数的理解。
5.有如下VB程序段:
s
=
"123456789"
g
=
""
For
i
=
1
To
3
?
n
=
Len(s)
?
x
=
Int(Rnd
n)
+
1
?
g
=
g
+
Mid(s,
x,
1)
?
s
=
Mid(s,
1,
x
-
1)
+
Mid(s,
x
+
1,
n
-
x)
Next
i
在程序执行时,若变量x的值依次为3,3,6,则最终变量g的值为(?

A.?"336"???????????????????????????B.?"346"???????????????????????????C.?"348"???????????????????????????D.?15
【答案】
C
【考点】运算符、基本运算与表达式,常量、变量及变量的赋值
【解析】【解答】变量值的变化如下:
i
1
2
3
x
3
3
6
g
"3"
"34"
"348"
s
"12456789"
"1256789"
"125679"
故答案选C。
【分析】本题考查的是对基本函数功能以及程序语句的理解。Mid
(
)函数是从文本字符串中指定的开始位置起返回指定长度的字符。Rnd(
)函数是产生随机数。
6.有如下VB程序段:
For
i=
1
To
3
For
j=
1
To
5-i
???
?If
a(j)
>a(j+1)
Then
???
?????t=a(j):a(j)=a(j+1):a(j+1)=t
???
?End?
If
???
?Next
j
???
?Text
1.Text=Text
1.Text+str(a(i)
)
Next
i
数组元素a(1)到a(5)的值依次为“3,9,6,8,4”。该程序段执行后,文本框Text
1显示的内容是(?

A.?346?????????????????????????????B.?689?????????????????????????????C.?364?????????????????????????????D.?366
【答案】
D
【考点】常量、变量及变量的赋值,排序算法及程序实现
【解析】【解答】对这5个数据,冒泡排序将数值大的数据往后交换。进行前3轮的升序排序,然后分别输出第一轮的第一项,第二轮的第二项,第三轮的第三项。第一轮排序后结果:3,6,8,4,9,输出第一项3;第二轮排序后结果:3,6,4,8,9,输出第二项6;第三轮排序后结果:3,4,6,8,9,输出第三项6,故答案选D。
【分析】本题主要考查冒泡排序算法。
7.某对分查找算法的VB程序段如下:
i
=
1:
j
=
8:
s
=
""
key
=Text1.Text
Do
While
i
<=
j
?
m
=(i
+
j)
\
2
?
If
key
=
a(m)
Then
??
s
=
s
+
"M"
??
Exit
Do
?
ElseIf
key
>
a(m)
Then
??
j
=
m
-
1:
s
=
s
+
"L"
?
Else
??
i
=
m
+
1:
s
=
s
+
"R"
?
End
If
Loop
Text1.Text
=
s
数组元素a(1)到a(8)的值依次为“4,22,27,32,35,44,56,59”,该程序段执行后,文本框Text1中显示的内容不可能是(?

A.?M???????????????????????????????B.?LR???????????????????????????????C.?RM???????????????????????????????D.?LM
【答案】
B
【考点】常量、变量及变量的赋值,查找算法及程序实现
【解析】【解答】若key值能在a(1)到a(8)中找到,s中最后一个字符一定为“M”。若key值不能在a(1)到a(8)中找到,则需查找4次才能结束,s的字符串长度应为4。故答案选B。
【分析】本题考查的是对分查找算法。对分查找的基本思路:在有序的数据序列中(一般放在数组中),首先把查找的数据与数组中间位置的元素进行比较,若相等,则查找成功并退出查找;否则,根据数组元素的有序性,确定数据应在数组的前半部分还是在后半部分查找;在确定了新的查找范围后,重复进行以上比较,直到找到或未找到为止。
8.某VB程序段如下:
?s
=
"Hello
World"
?s1
=
""
?n
=
Len(s)
?For
i
=
1
To
n
\
2
??
If
Mid(s,
i,
1)
>
Mid(s,
n
-
i
+
1,
1)
Then
????
s1
=
s1
+
Mid(s,
i,
1)
??
Else
????
s1
=
Mid(s,
n
-
i
+
1,
1)
+
s1
??
End
If
?Next
i
?Text1.Text
=
s1
执行该程序段后,在文本框Text1中显示的是(?

A.?WlleH????????????????????????B.?oorld????????????????????????C.?dlroo????????????????????????D.?orldo
【答案】
D
【考点】运算符、基本运算与表达式,常量、变量及变量的赋值
【解析】【解答】程序实现第一个字符和最后一个字符进行比较,若大于则取前面的字符,连接后按顺序赋值给变量s1,反之则取后面的字符,但是要倒序连接并赋值给变量s1,第二个字符和倒数第二个字符进行比较,……,以此类推,故答案选D。
【分析】本题考查的是VB字符串的处理以及对Mid(
)函数的理解。
9.有如下VB程序段:
For
i=
1
To
8
???
a(i)
=Int(Rnd
2)
Next
i
sum=
0
For
i=1
To
8
Step
3
???
For
j=i
To
8
???????
a(j)=1-a(j)
???
Next
j
???
sum=sum+a(i)
Next
i
Text
1.Text=Str(sum)
执行该程序段后,文本框Text
1中显示的内容不可能是(?

A.?0??????????????????????????????????B.?2??????????????????????????????????C.?3??????????????????????????????????D.?4
【答案】
D
【考点】算法的控制结构,常量、变量及变量的赋值
【解析】【解答】本题中a(i)的取值是0或1,循环只有3次(i=1、4、7)

sum的值最多也只有3,只有D不可能。故答案选D。
【分析】本题主要考查的是对循环语句的理解。
10.有VB程序段如下:
s
=
"2019appreciate":
sum
=
0
For
i
=
1
To
Len(s)
?
ch
=
Mid(s,
i,
1)
?
If
ch
>=
"a"
And
ch
<=
"z"
Then
???
m
=
Asc(ch)
-
Asc("a")
+
1
???
a(m)
=
a(m)
+
1
?
End
If
?Next
i
?For
i
=
1
To
10
?
If
a(i)
>
0
Then
sum
=
sum
+
1
?Next
i
数组a各元素的初始值都为0,执行该程序段后,变量sum的值为(?

A.?10??????????????????????????????????B.?7??????????????????????????????????C.?4??????????????????????????????????D.?3
【答案】
C
【考点】常量、变量及变量的赋值
【解析】【解答】代码的作用是统计小写英文字母中前10个字符(a~
j)出现的次数并记录到相应的数组元素a(1)、a(2)、…、a(10)中,并最终统计共有几个字母出现过,根据题意可知,有4个数组元素的值大于0,因此答案是4。故答案选C。
【分析】本题考查的是VB的字符串处理。
11.有VB序段如下:
Randomize
For
i=
1
To
6?
?
a(i)
=Int(Rnd
20)
+
1
?
If
a(i)
Mod
2=i
Mod
2
Then
???
a(i)=a(i)-1
?
Else
???
a(i)=a(i)+2
?
End
If
Next
i
执行该程序段后,a(1)~a(6)各元素可能的是(?

A.?13,2,7,12,5,18?????????????????????????B.?22,7,0,15,4,19
C.?20,9,18,23,4,7?????????????????????????D.?6,0,4,21,18,17
【答案】
B
【考点】常量、变量及变量的赋值
【解析】【解答】代码中“If
a(i)
Mod
2=i
Mod
2
Then
a(i)
=a(i)-1”是核心,表示如果奇数位置是奇数,或者偶数位置是偶数,则该a(i)的值减去1,而a(i)范围为[1,20],这样操作后a(i)的奇偶性发生了互换,也就是奇数位置是偶数,偶数位置是奇数,另外的情况是a(i)的值加2,故范围是[0,22],因此排除选项C,然后考虑位置和奇偶性,只有选项B符合。
【分析】本题考查的是对程序代码的理解。
12.某排序算法的VB程序段如下:
For
i
=
1
To
2
For
j
=
1
To
6
-
2
i
If?
a(j)
<
a(j
+
2)
Then
t
=
a(j):
a(j)
=
a(j
+
2):
a(j
+
2)
=
t
End
If
Next
j
Next
i
数组元素a(1)~a(6)的初始值依次为“15,13,44,38,26,7”,执行该程序段后,数组a元素的值分别为(
??)
A.?44,38,26,13,15,7?????????????????????B.?44,7,26,13,15,38
C.?15,38,26,13,44,7?????????????????????D.?44,38,26,15,13,7
【答案】
A
【考点】常见数据类型、数组
【解析】【解答】分析程序段运行过程:
i=1,j=1时,a(1)i=1,j=2时,a(2)i=1,j=3时,a(3)i=1,j=4时,a(4)i=2,j=1时,a(1)i=2,j=2时,a(2)循环结束。此时数组a元素的值分别为44,38,26,13,15,7。故答案选A。
【分析】本题考查学生对嵌套循环语句的理解,做题过程中,应时刻注意程序段中每个变量的变化情况。
13.有VB程序段如下:
Dima(
1
To
5)
As
Integer
Dimi
As
Integer,
j
As
Integer,
s
As
String
s=“”
???
For
i=
2
To
5
??
?????For
j=i
To
5
??
?????????If
j
Mod
i=0
Then
a(j)
=a(j)+1
??
?????Next
j
???
Next
i
???
For
i=
1
To
5
??
?????If
a(i)
<>1Then
s=Str(i)
+s
???
Next
i
???
Text
1.Text=S
若数组a的初始值都为0,则运行该程序段后,Text
1中显示的内容为(?

A.?14??????????????????????????????B.?235??????????????????????????????C.?532??????????????????????????????D.?41
【答案】
D
【考点】算法的控制结构,常见数据类型、数组,常量、变量及变量的赋值
【解析】【解答】计算完成后,a(1)=0,a(2)=1,a(3)=1,a(4)=2,a(5)=1,最后统计数组中值不为1的元素下标,只有1和4,且输出时左边更新,所以答案是41(数字4和1之间有空格)。故答案选D。
【分析】本题主要考查双重循环中数组的运算。
14.有如下VB程序段:
For
i=
1
To
5
a(i)=
Int(Rnd
20)
+
1
Next
i
For
i=
2
To
5
If
i
Mod
2
=
1
And
a(i-1)
<
a(i)Then
?t=a(i):a(i)=a(i-1):a(i-1)=t
Else
a(i)=a(i)-1
End
If
Next
i
执行该程序段后,a(1)~
a(5)各元素不可能的值是(?

A.?7
3
0
19
0?????????????B.?18
16
1
9
2?????????????C.?20
17
8
19
15?????????????D.?19
0
7
8
4
【答案】
D
【考点】常量、变量及变量的赋值
【解析】【解答】由语句a(i)=
Int(Rnd
20)
+
1可知,数组a元素的初始值范围是[1,21)。
For循环的循环变量i初始值为2,且i=2时,不满足i
Mod
2
=
1
And
a(i-1)
<
a(i),因此执行语句a(i)=a(i)-1。所以执行第一次循环后,a(1)范围是[1,21),a(2)范围是[0,20)。
当i=3时,i
Mod
2
=
1,若a(2)
<
a(3),则交换两个元素的位置,否则执行a(i)=a(i)-1。所以第二次循环结束后,a(2)应该大于a(3)或者a(2)+1>=a(3)。
当i=4时,不满足i
Mod
2
=
1
And
a(i-1)
<
a(i),因此执行语句a(i)=a(i)-1。所以执行第三次循环后,a(4)范围是[0,20)。
当i=5时,i
Mod
2
=
1,若a(4)
<
a(5),则交换两个元素的位置,否则执行a(i)=a(i)-1。所以第四次循环结束后,a(4)应该大于a(5)或者a(4)+1>=a(5)。
根据以上分析,a(1)~
a(5)各元素不可能的值是19,0,7,8,4。因为该数组元素a(2)故答案选D。
【分析】本题考查学生对循环语句的理解,要求考生能读懂程序代码,了解各个变量在程序执行过程中的变化。
15.有如下VB程序段:
For
i=
1
To
10
???
b(i)=0
Next
i
For
i=
1
To
5
???
For
j=
1
To
10
???????
If
b(i)
Then
?????????
b(i)=a(j)
?????????
t=j
???????
End
If
???
Next
j
???
a(t)=0
???
List
1.Additem
Str(b(i)
)
Next
i
其中数组元素a(1)到a(10)的值依次为“25,42,53,66,77,83,98,14,38,99”,执行程序后,在列表框List
1中依次输出的数据是(?

A.?25
42
53
66
77?????????????????????????????????????B.?14
25
38
42
53
C.?99
98
83
77
66?????????????????????????????????????D.?83
98
14
38
99
【答案】
C
【考点】算法的控制结构,常见数据类型、数组,常量、变量及变量的赋值
【解析】【解答】b数组初值均为0,外层For循环5次,外层每循环一次,则内层For循环10遍,将a数组中最大值分别赋给b(1)到b(5),在List
1中输出,并将当次a数组的最大值赋值为0。最终降序输出数组a中5个元素,为99
98
83
77
66。故答案选C。
【分析】本题主要考查循环与数组的综合使用。
16.下列程序段执行后,文本框Text
1中显示的内容是(?

s=“QUOTES:keep
on
going
never
give
up!”
flag=False:m=0
For
i=1
To
Len(s)
???????
ch=Mid(s,i,1)
???????
If
ch>=“a”
And
ch<=“z”
Then
?????????
If
Not
flag
Then
???????????
m=m+1
???????????
flag=True
???????
End
If
???
Else
???????
flag=False
???
End
If
Next
i
Text
1.Text=Str(m)
A.?5??????????????????????????????????B.?6??????????????????????????????????C.?7??????????????????????????????????D.?21
【答案】
B
【考点】常量、变量及变量的赋值
【解析】【解答】当选择结构比较出第一个小写字母时,m值增加1,flag值变为True,接下来连续出现的小写字母都不能使m值改变,直到比较出非小写字母,flag值变为False,然后继续比较出第一个小写字母,m值增加1,如此反复,最终m值为6。故答案选B。
【分析】本题考查的是对程序代码的理解。
17.下面程序的功能是:产生20个[1,100]范围内的随机整数,并统计这20个随机数中的整数的个数(重复出现算1个),结果显示在标签Label
1中。例如:5个随机数[10,20,20,31,32]中不重复数字个数为3。程序部分代码如下:
count=0
For
i=1
To
20
???
a(i)
=Int(Rnd
100)
+
1
Next
i
For
i=
1
To
20
???

Next
i
For
i=
1
To
100
???
If
b(i)
<>
0
Then
count
=count+1
Next
i
Label
1.caption=“不重复数字个数”+Str(count)
为实现上述功能,则程序①处应填入的语句为(?

A.?b(i)=1?????????B.?b(a(i))=a(b(i))+1?????????C.?b(i)=b(i)+1?????????D.?b(a(i))=b(a(i))+1
【答案】
D
【考点】常见数据类型、数组,常量、变量及变量的赋值
【解析】【解答】本题将产生的随机数存储到数组a中,数组b的位置表示a数组中的某个数,该位置的值表示这个数出现了几次,例如a(1)=10,那么就执行b(10)加1,得到b(10)=1,表示10这个数出现了1次,a(2)=20,得到b(20)=1,表示20这个数出现了1次,a(3)=20,那么b(20)的值再加1,得到b(20)=2,表示20这个数出现了2次,以此类推,出现一个a(i),只要将b(a(i))的值加1,即可统计出a数组中的数出现了几次,程序的第二个循环就是统计a数组中的数值出现的次数,并存储在b数组,最终只要统计b数组中值不为0的位置的个数,就可以知道a数组中的不重复数字的个数了。故答案选D。
【分析】本题主要考查的是数组的应用。
18.有如下VB程序段:
Dim
i
As
Integer,
sum
As
Integer
Dim
a(1
To
6)
As
Integer,
b(1
To
6)
As
Integer
sum
=
0
a(6)
=
18:
a(5)
=
7:
b(6)
=
14:
b(5)
=
16
For
i
=
4
To
1
Step
-1
?a(i)
=
a(i
+
2)
-
a(i
+
1)
?b(i)
=
b(i
+
2)
-
a(i)
?If
b(i)
Mod
3
=
0
Then
sum
=
sum
+
b(i)
Next
i
Text1.Text
=
Str(sum)
该程序段运行后,文本框Text1中显示的内容是(?

A.?39????????????????????????????????B.?30????????????????????????????????C.?-9????????????????????????????????D.?12
【答案】
B
【考点】常量、变量及变量的赋值,递归算法
【解析】【解答】i=4时,a(4)=11,b(4)=3,sum=3;i=3时,a(3)=-4,b(3)
=20;i=2时,a(2)=15,b(2)=-12,sum=-9;i=1时,a(1)=-19,b(1)=39,sum=30。故答案选B。
【分析】本题考查的是对递归算法的理解。
19.某VB程序段如下:
Dim
a
(1
To
6)
As
Integer
Randomize
a(1)
=
Int
(Rnd
2)
+
1
For
i
=
2
To
6
?
a(j)
=
Int
(Rnd
i)
2
+
1
?
If
a(i)
<
a(i-1)
Then
???
a(i)
=
a(i)
+
a(i-1)
?
End
If
Next
i
执行该程序段后,数组元素a(1)到a(6)的值可能是(?

A.?2,4,6,8,10,12???????????????????????????B.?1,1,3,7,12,23
C.?2,5,9,11,10,15?????????????????????????D.?1,3,15,16,20,23
【答案】
B
【考点】运算符、基本运算与表达式,常量、变量及变量的赋值
【解析】【解答】最初时,a(1)的范围是1~2,a(2)的范围是1~3,a(3)的范围是1~5,a(4)的范围是1~7,a(5)的范围是1~9,a(6)的范围是1~11。再根据if语句进行调整,当前元素小于前面一个元素时,将这两个值相加后再赋值给当前的元素a(i)。当a(1)=2时,a(2)不可能超过3,因此可以排除AC。另外,当a(2)=3时,a(3)的值绝对不可能是15(最大值只能是5),从而排除选项D。故答案选B。
【分析】本题考查VB随机数及逻辑判断。
20.如果数组a(下标1到n)满足a(1)≤a(2)≤…≤a(i-1)≤a(i)≥a(i+1)≥…≥a(n),则称数组a是单峰的,并称a(i)是数组a的“峰顶”。下列程序段用于查找数组a中的“峰顶”,并返回该“峰顶”值。
Dim
a(
1
To
10)
As
Integer
Function
Search(L
As
Integer,
R
As
Integer)
As
Integer
???
?M=(L+R)\2
???
?If
a(M)
And
a(M)
>a(M+1)
Then
???
?①
???
?ElseIf
a(M)
>a(M-1)
And
a(M)
>a(M+1)
Then
???
?②
???
?ElseIf
a(M)
>a(M-1)
And
a(M)
Then
???
?③
???
?End
If
End
Function
Private
Sub
Command
1
click()
???
?Label
1.caption=““峰顶”值是:”
+Str(Search
(1,10))
End
Sub
上述程序中划线处可选语句为:
①Search=Search(M+1,R)
②Search=Search(L,M-1)
③Search=a(M)
则①②③处的语句依次是(?

A.?①②③???????????????????????B.?①③②???????????????????????C.?③①②???????????????????????D.?②③①
【答案】
D
【考点】常量、变量及变量的赋值,查找算法及程序实现,递归算法
【解析】【解答】如果a(M)>a(M-1)And
a(M)>a(M+1),则此时的M即为“峰顶”,因此(2)处填Search=a(M)
;当a(M)a(M)>a(M+1)时,说明“峰顶”在左半区,因此L不变,R=M-1,(1)处应填Search=Search(L,M-1)。故答案选D。
【分析】本题考查的是VB的递归算法及对分查找算法。
21.有如下VB程序段,已知a数组各元素值为“7,5,6,3,1,8”,b数组各元素的初始值为“0”。则经过以下程序段处理后,b数组各元素分别为(?

For
i
=
1
To
5
?k
=
i
?For
j
=
i
+
1
To
6
?
If
a(k)
>
a(j)
Then
k
=
j
?Next
j
?t
=
a(k):
a(k)
=
a(i):
a(i)
=
t
?b((i
+
2)
Mod
6
+
1)
=
a(i)
Next
i
A.?1
3
5
6
7
8??????????????B.?7
0
1
3
5
6??????????????C.?6
7
8
1
3
5??????????????D.?6
7
0
1
3
5
【答案】
D
【考点】常量、变量及变量的赋值,排序算法及程序实现
【解析】【解答】这段程序首先基本实现了数组的升序排序,但新的位置把排序后的位置循环往右移动了3个位置,如元素“1”本来在第1个位置,但移动到了第4个位置,“6”本来在第4个位置,往右移3个位置,超出后到最左侧,变成在第1个位置,最后数字“8”原位置被占,但新位置没有被赋值,所以第3个位置为“0”。故答案选D。
【分析】本题考查的是对排序算法的理解。
22.数组a中有n个正整数,对该数组进行排序,生成左右交替上升数据序列。实现该功能的VB程序段如下:
For
i=1To
n\2???
???
k=i
???
?
???????
If
a(j)
Then
k=j
???
Next
j
???
If
i<>k
Then
???????
t=a(i):a(i)=a(k):a(k)=t
???
End
If
???
?
???
If
?Then
???????
t=a(j):a(j)=a(j+1):a(j+1)=t
?????
End
If
???
Next
j
Next
i
上述程序中方框处可选语句或表达式有:
①For
j=i+1
To
n-i+
1
???②For
j=i+1
To
n-i
③a(j)④a(j)>a(j+1)
则(1)、(2)、(3)处语句依次是(?

A.?①、②、③??????????????B.?①、②、④??????????????C.?②、①、③??????????????D.?②、①、④
【答案】
A
【考点】常量、变量及变量的赋值,排序算法及程序实现
【解析】【解答】第1趟的排序结果是第1个和第n个数据有序,第2趟的排序结果是第2个和第n-1个数据有序,因此第2趟和第3趟的排序区间分别为[2,n-1]和[3,n-2],可以得到结论:第i趟排序,左边排序区间的开始和结束位置分别是i和n-i+1,第i个数有序;右边排序区间的开始和结束位置分别是i+1和n-i+1。左边排序时,最值(所在位置k)和第i+1位置上的数开始比较,一直比较到位置n-i+1。右边排序时,由于排序对象是第j个位置上的数和第j+1位置上的数比较,因此j+1先达到终点n-i+1,此时j的值为n-i。由于右边是降序排序,因此把前面的数要换到后面去,故a(j)【分析】本题主要考查冒泡排序和选择排序的算法思想。从比较对象a(j)23.某二分查找算法的VB程序段如下:
key=Va
1(Text
1.Text)
i=1
j=9
Text
2.Text=""
Do
While
i<=j
??
?
?If
key=a(m)
Then
Exit
Do
?
?If
keyThen
i=m+1
Else
j=m-1
?
?Text
2.Text=Text
2.Text+“”+Str(a(m)
)
Loop
数组元素a(1)到a(9)的值依次为88,75,70,68,61,58,55,50,43,文本框Text
1中输入的值是58,执行该程序段,文本框Text
2中显示的是61,50,55,则方框处的代码应为(?

A.?m=(i+j+1)\2????????B.?m=(i+j)\2+1????????C.?m=(i+j)\2????????D.?m=(i+j-1)\2
【答案】
A
【考点】常量、变量及变量的赋值,查找算法及程序实现
【解析】【解答】Text
2中显示的是每次查找的中值m,根据中值的顺序,可得中值m的表达式为(i+j+1)\2。故答案选A。
【分析】本题考查的是二分查找算法的VB程序。对分查找的基本思路:在有序的数据序列中(一般放在数组中),首先把查找的数据与数组中间位置的元素进行比较,若相等,则查找成功并退出查找;否则,根据数组元素的有序性,确定数据应在数组的前半部分还是在后半部分查找;在确定了新的查找范围后,重复进行以上比较,直到找到或未找到为止。
24.有如下VB程序段:
y=0
n=Len(Text
1.Text)
For
i=1To
n
???
c=Mid(Text
1.Text,i,1)
???
If
c>=“0”And
c<=“9”Then
???????
x=Val(c)
:a(x)
=a(x)
+
1
???
End
If
Next
i
For
i=
0
To
9
???
If
a(i)
>0Then
y=y+
1
Next
i
Label
1.Caption=Str(y)
a数组各元素的初值为0,程序运行时,在文本框Text
1中输入内容“pi=3.1415926535”,单击按钮Command
1后,标签Label
1中显示的内容是(?

A.?6??????????????????????????????????B.?7??????????????????????????????????C.?8??????????????????????????????????D.?9
【答案】
B
【考点】常量、变量及变量的赋值
【解析】【解答】第一个For循环的作用是统计每个数字出现的次数,存入相对应的数组元素里,第二个For循环的目的是统计出现过的数字个数。3.1415926535中0,7,8共3个数字没有出现过,所以出现过的数字有10-3=7个。故答案选B。
【分析】本题考查对VB程序代码的理解。
25.有如下VB程序段:
s=Text
1.Text:n=0:f=False
For
i=1
To
Len(s)
?
ch=Mid(s,i,1)?
?
If
ch>="0"
And
ch<="9"
Then
???
If
Not
f
Then
?????
f=True:n=n+1
???
End
If
?
Else
???
f=False
?
End
If
Next
i
运行该程序段后,在文本框Text
1中输入“13+(123-23)
2”则变量n的值为(?

A.?1??????????????????????????????????B.?4??????????????????????????????????C.?8??????????????????????????????????D.?13
【答案】
B
【考点】常量、变量及变量的赋值
【解析】【解答】分析该程序可得出其功能是:统计文本框Text
1中输入的字符串中包含的整数个数,“13+(123-23)
2”包含整数13,123,23,2,共4个。故答案选B。
【分析】本题主要考查的是VB程序设计。
1
/
1(
…………○…………外…………○…………装…………○…………订…………○…………线…………○…………
)
(
※※请※※不※※要※※在※※装※※订※※线※※内※※答※※题※※
)
(
…………○…………内…………○…………装…………○…………订…………○…………线…………○…………
)
登陆二一教育在线组卷平台
助您教考全无忧
浙江省金华市江南中学2020届高三信息技术网课2月22日第二周测试卷
一、选择题(25
2=50分)(共25题;共50分)
1.下列表达式的运算结果与其他选项不同的是(?

A.?Len("123")
+
2
^
2??????????????????????????????B.?Abs(Int(-6.8))
C.?Asc(Mid("789",
1,
1))???????????????????????????D.?Val("9")
-
Sqr(4)
2.下列VB表达式中,随机产生10到100之间奇数的是(?

A.?Int(Rnd
45)
2+
10?????????????????????????????B.?Int(Rnd
45)
2+11
C.?Int(Rnd
90+10)???????????????????????????????????D.?Int(Rnd
90+11)
3.有如下VB程序段:
For
i
=
1
To
9
Step
2
??b(a(i)
Mod
10)
=
b(a(i)
Mod
10)
+
1
Next
i
s
=
0
For
i
=
0
To
9
Step
3
??s
=s
+
b(i)
Next
i
数组b各元素初始值为0,
数组元素a(1)到a(9)的值依次为“29,74,12,38,16,45,21,57,33”,则执行该程序段后,s的值为(?

A.?5??????????????????????????????????B.?4??????????????????????????????????C.?3??????????????????????????????????D.?2
4.有如下VB程序段:
a(1)
=
1
?For
i
=
2
To
6
?Randomize
?a(i)
=
a(i
-
1)
+
Int(Rnd
5
+
1)
?If
a(i)
Mod
2
=
1
Then
??
a(i)
=
a(i)
\
2
+
1
?Else
??
a(i)
=
a(i)
/
2
?End
If
?Next
i
执行程序后,a数组各元素可能是(?

A.?1
3
4
6
7
9??????????????B.?1
2
0
3
5
6??????????????C.?1
2
3
4
5
4??????????????D.?1
3
4
5
1
1
5.有如下VB程序段:
s
=
"123456789"
g
=
""
For
i
=
1
To
3
?
n
=
Len(s)
?
x
=
Int(Rnd
n)
+
1
?
g
=
g
+
Mid(s,
x,
1)
?
s
=
Mid(s,
1,
x
-
1)
+
Mid(s,
x
+
1,
n
-
x)
Next
i
在程序执行时,若变量x的值依次为3,3,6,则最终变量g的值为(?

A.?"336"???????????????????????????B.?"346"???????????????????????????C.?"348"???????????????????????????D.?15
6.有如下VB程序段:
For
i=
1
To
3
For
j=
1
To
5-i
???
?If
a(j)
>a(j+1)
Then
???
?????t=a(j):a(j)=a(j+1):a(j+1)=t
???
?End?
If
???
?Next
j
???
?Text
1.Text=Text
1.Text+str(a(i)
)
Next
i
数组元素a(1)到a(5)的值依次为“3,9,6,8,4”。该程序段执行后,文本框Text
1显示的内容是(?

A.?346?????????????????????????????B.?689?????????????????????????????C.?364?????????????????????????????D.?366
7.某对分查找算法的VB程序段如下:
i
=
1:
j
=
8:
s
=
""
key
=Text1.Text
Do
While
i
<=
j
?
m
=(i
+
j)
\
2
?
If
key
=
a(m)
Then
??
s
=
s
+
"M"
??
Exit
Do
?
ElseIf
key
>
a(m)
Then
??
j
=
m
-
1:
s
=
s
+
"L"
?
Else
??
i
=
m
+
1:
s
=
s
+
"R"
?
End
If
Loop
Text1.Text
=
s
数组元素a(1)到a(8)的值依次为“4,22,27,32,35,44,56,59”,该程序段执行后,文本框Text1中显示的内容不可能是(?

A.?M???????????????????????????????B.?LR???????????????????????????????C.?RM???????????????????????????????D.?LM
8.某VB程序段如下:
?s
=
"Hello
World"
?s1
=
""
?n
=
Len(s)
?For
i
=
1
To
n
\
2
??
If
Mid(s,
i,
1)
>
Mid(s,
n
-
i
+
1,
1)
Then
????
s1
=
s1
+
Mid(s,
i,
1)
??
Else
????
s1
=
Mid(s,
n
-
i
+
1,
1)
+
s1
??
End
If
?Next
i
?Text1.Text
=
s1
执行该程序段后,在文本框Text1中显示的是(?

A.?WlleH????????????????????????B.?oorld????????????????????????C.?dlroo????????????????????????D.?orldo
9.有如下VB程序段:
For
i=
1
To
8
???
a(i)
=Int(Rnd
2)
Next
i
sum=
0
For
i=1
To
8
Step
3
???
For
j=i
To
8
???????
a(j)=1-a(j)
???
Next
j
???
sum=sum+a(i)
Next
i
Text
1.Text=Str(sum)
执行该程序段后,文本框Text
1中显示的内容不可能是(?

A.?0??????????????????????????????????B.?2??????????????????????????????????C.?3??????????????????????????????????D.?4
10.有VB程序段如下:
s
=
"2019appreciate":
sum
=
0
For
i
=
1
To
Len(s)
?
ch
=
Mid(s,
i,
1)
?
If
ch
>=
"a"
And
ch
<=
"z"
Then
???
m
=
Asc(ch)
-
Asc("a")
+
1
???
a(m)
=
a(m)
+
1
?
End
If
?Next
i
?For
i
=
1
To
10
?
If
a(i)
>
0
Then
sum
=
sum
+
1
?Next
i
数组a各元素的初始值都为0,执行该程序段后,变量sum的值为(?

A.?10??????????????????????????????????B.?7??????????????????????????????????C.?4??????????????????????????????????D.?3
11.有VB序段如下:
Randomize
For
i=
1
To
6?
?
a(i)
=Int(Rnd
20)
+
1
?
If
a(i)
Mod
2=i
Mod
2
Then
???
a(i)=a(i)-1
?
Else
???
a(i)=a(i)+2
?
End
If
Next
i
执行该程序段后,a(1)~a(6)各元素可能的是(?

A.?13,2,7,12,5,18?????????????????????????B.?22,7,0,15,4,19
C.?20,9,18,23,4,7?????????????????????????D.?6,0,4,21,18,17
12.某排序算法的VB程序段如下:
For
i
=
1
To
2
For
j
=
1
To
6
-
2
i
If?
a(j)
<
a(j
+
2)
Then
t
=
a(j):
a(j)
=
a(j
+
2):
a(j
+
2)
=
t
End
If
Next
j
Next
i
数组元素a(1)~a(6)的初始值依次为“15,13,44,38,26,7”,执行该程序段后,数组a元素的值分别为(
??)
A.?44,38,26,13,15,7?????????????????????B.?44,7,26,13,15,38
C.?15,38,26,13,44,7?????????????????????D.?44,38,26,15,13,7
13.有VB程序段如下:
Dima(
1
To
5)
As
Integer
Dimi
As
Integer,
j
As
Integer,
s
As
String
s=“”
???
For
i=
2
To
5
??
?????For
j=i
To
5
??
?????????If
j
Mod
i=0
Then
a(j)
=a(j)+1
??
?????Next
j
???
Next
i
???
For
i=
1
To
5
??
?????If
a(i)
<>1Then
s=Str(i)
+s
???
Next
i
???
Text
1.Text=S
若数组a的初始值都为0,则运行该程序段后,Text
1中显示的内容为(?

A.?14??????????????????????????????B.?235??????????????????????????????C.?532??????????????????????????????D.?41
14.有如下VB程序段:
For
i=
1
To
5
a(i)=
Int(Rnd
20)
+
1
Next
i
For
i=
2
To
5
If
i
Mod
2
=
1
And
a(i-1)
<
a(i)Then
?t=a(i):a(i)=a(i-1):a(i-1)=t
Else
a(i)=a(i)-1
End
If
Next
i
执行该程序段后,a(1)~
a(5)各元素不可能的值是(?

A.?7
3
0
19
0?????????????B.?18
16
1
9
2?????????????C.?20
17
8
19
15?????????????D.?19
0
7
8
4
15.有如下VB程序段:
For
i=
1
To
10
???
b(i)=0
Next
i
For
i=
1
To
5
???
For
j=
1
To
10
???????
If
b(i)
Then
?????????
b(i)=a(j)
?????????
t=j
???????
End
If
???
Next
j
???
a(t)=0
???
List
1.Additem
Str(b(i)
)
Next
i
其中数组元素a(1)到a(10)的值依次为“25,42,53,66,77,83,98,14,38,99”,执行程序后,在列表框List
1中依次输出的数据是(?

A.?25
42
53
66
77?????????????????????????????????????B.?14
25
38
42
53
C.?99
98
83
77
66?????????????????????????????????????D.?83
98
14
38
99
16.下列程序段执行后,文本框Text
1中显示的内容是(?

s=“QUOTES:keep
on
going
never
give
up!”
flag=False:m=0
For
i=1
To
Len(s)
???????
ch=Mid(s,i,1)
???????
If
ch>=“a”
And
ch<=“z”
Then
?????????
If
Not
flag
Then
???????????
m=m+1
???????????
flag=True
???????
End
If
???
Else
???????
flag=False
???
End
If
Next
i
Text
1.Text=Str(m)
A.?5??????????????????????????????????B.?6??????????????????????????????????C.?7??????????????????????????????????D.?21
17.下面程序的功能是:产生20个[1,100]范围内的随机整数,并统计这20个随机数中的整数的个数(重复出现算1个),结果显示在标签Label
1中。例如:5个随机数[10,20,20,31,32]中不重复数字个数为3。程序部分代码如下:
count=0
For
i=1
To
20
???
a(i)
=Int(Rnd
100)
+
1
Next
i
For
i=
1
To
20
???

Next
i
For
i=
1
To
100
???
If
b(i)
<>
0
Then
count
=count+1
Next
i
Label
1.caption=“不重复数字个数”+Str(count)
为实现上述功能,则程序①处应填入的语句为(?

A.?b(i)=1?????????B.?b(a(i))=a(b(i))+1?????????C.?b(i)=b(i)+1?????????D.?b(a(i))=b(a(i))+1
18.有如下VB程序段:
Dim
i
As
Integer,
sum
As
Integer
Dim
a(1
To
6)
As
Integer,
b(1
To
6)
As
Integer
sum
=
0
a(6)
=
18:
a(5)
=
7:
b(6)
=
14:
b(5)
=
16
For
i
=
4
To
1
Step
-1
?a(i)
=
a(i
+
2)
-
a(i
+
1)
?b(i)
=
b(i
+
2)
-
a(i)
?If
b(i)
Mod
3
=
0
Then
sum
=
sum
+
b(i)
Next
i
Text1.Text
=
Str(sum)
该程序段运行后,文本框Text1中显示的内容是(?

A.?39????????????????????????????????B.?30????????????????????????????????C.?-9????????????????????????????????D.?12
19.某VB程序段如下:
Dim
a
(1
To
6)
As
Integer
Randomize
a(1)
=
Int
(Rnd
2)
+
1
For
i
=
2
To
6
?
a(j)
=
Int
(Rnd
i)
2
+
1
?
If
a(i)
<
a(i-1)
Then
???
a(i)
=
a(i)
+
a(i-1)
?
End
If
Next
i
执行该程序段后,数组元素a(1)到a(6)的值可能是(?

A.?2,4,6,8,10,12???????????????????????????B.?1,1,3,7,12,23
C.?2,5,9,11,10,15?????????????????????????D.?1,3,15,16,20,23
20.如果数组a(下标1到n)满足a(1)≤a(2)≤…≤a(i-1)≤a(i)≥a(i+1)≥…≥a(n),则称数组a是单峰的,并称a(i)是数组a的“峰顶”。下列程序段用于查找数组a中的“峰顶”,并返回该“峰顶”值。
Dim
a(
1
To
10)
As
Integer
Function
Search(L
As
Integer,
R
As
Integer)
As
Integer
???
?M=(L+R)\2
???
?If
a(M)
And
a(M)
>a(M+1)
Then
???
?①
???
?ElseIf
a(M)
>a(M-1)
And
a(M)
>a(M+1)
Then
???
?②
???
?ElseIf
a(M)
>a(M-1)
And
a(M)
Then
???
?③
???
?End
If
End
Function
Private
Sub
Command
1
click()
???
?Label
1.caption=““峰顶”值是:”
+Str(Search
(1,10))
End
Sub
上述程序中划线处可选语句为:
①Search=Search(M+1,R)
②Search=Search(L,M-1)
③Search=a(M)
则①②③处的语句依次是(?

A.?①②③???????????????????????B.?①③②???????????????????????C.?③①②???????????????????????D.?②③①
21.有如下VB程序段,已知a数组各元素值为“7,5,6,3,1,8”,b数组各元素的初始值为“0”。则经过以下程序段处理后,b数组各元素分别为(?

For
i
=
1
To
5
?k
=
i
?For
j
=
i
+
1
To
6
?
If
a(k)
>
a(j)
Then
k
=
j
?Next
j
?t
=
a(k):
a(k)
=
a(i):
a(i)
=
t
?b((i
+
2)
Mod
6
+
1)
=
a(i)
Next
i
A.?1
3
5
6
7
8??????????????B.?7
0
1
3
5
6??????????????C.?6
7
8
1
3
5??????????????D.?6
7
0
1
3
5
22.数组a中有n个正整数,对该数组进行排序,生成左右交替上升数据序列。实现该功能的VB程序段如下:
For
i=1To
n\2???
???
k=i
???
?
???????
If
a(j)
Then
k=j
???
Next
j
???
If
i<>k
Then
???????
t=a(i):a(i)=a(k):a(k)=t
???
End
If
???
?
???
If
?Then
???????
t=a(j):a(j)=a(j+1):a(j+1)=t
?????
End
If
???
Next
j
Next
i
上述程序中方框处可选语句或表达式有:
①For
j=i+1
To
n-i+
1
???②For
j=i+1
To
n-i
③a(j)④a(j)>a(j+1)
则(1)、(2)、(3)处语句依次是(?

A.?①、②、③??????????????B.?①、②、④??????????????C.?②、①、③??????????????D.?②、①、④
23.某二分查找算法的VB程序段如下:
key=Va
1(Text
1.Text)
i=1
j=9
Text
2.Text=""
Do
While
i<=j
??
?
?If
key=a(m)
Then
Exit
Do
?
?If
keyThen
i=m+1
Else
j=m-1
?
?Text
2.Text=Text
2.Text+“”+Str(a(m)
)
Loop
数组元素a(1)到a(9)的值依次为88,75,70,68,61,58,55,50,43,文本框Text
1中输入的值是58,执行该程序段,文本框Text
2中显示的是61,50,55,则方框处的代码应为(?

A.?m=(i+j+1)\2????????B.?m=(i+j)\2+1????????C.?m=(i+j)\2????????D.?m=(i+j-1)\2
24.有如下VB程序段:
y=0
n=Len(Text
1.Text)
For
i=1To
n
???
c=Mid(Text
1.Text,i,1)
???
If
c>=“0”And
c<=“9”Then
???????
x=Val(c)
:a(x)
=a(x)
+
1
???
End
If
Next
i
For
i=
0
To
9
???
If
a(i)
>0Then
y=y+
1
Next
i
Label
1.Caption=Str(y)
a数组各元素的初值为0,程序运行时,在文本框Text
1中输入内容“pi=3.1415926535”,单击按钮Command
1后,标签Label
1中显示的内容是(?

A.?6??????????????????????????????????B.?7??????????????????????????????????C.?8??????????????????????????????????D.?9
25.有如下VB程序段:
s=Text
1.Text:n=0:f=False
For
i=1
To
Len(s)
?
ch=Mid(s,i,1)?
?
If
ch>="0"
And
ch<="9"
Then
???
If
Not
f
Then
?????
f=True:n=n+1
???
End
If
?
Else
???
f=False
?
End
If
Next
i
运行该程序段后,在文本框Text
1中输入“13+(123-23)
2”则变量n的值为(?

A.?1??????????????????????????????????B.?4??????????????????????????????????C.?8??????????????????????????????????D.?13
答案解析部分
一、选择题(25
2=50分)
1.【答案】
C
【考点】运算符、基本运算与表达式
【解析】【解答】选项A:
Len("123")
+
2
^
2
=3+4=7。选项B:
Abs(Int(-6.8))
=Abs(-7)=7。选项C:Asc(Mid("789",
1,
1))=Asc(“7”)=55。选项D:
Val("9")
-
Sqr(4)
=9-2=7。故答案选C。
【分析】本题考查的是len()、abs()、int()、mid()、asc()、val()和sqr()函数的功能。len函数是求字符串的长度,abs函数是求参数的绝对值,int是求不大于参数的整数,mid中按指定位置指定长度从字符串中取出一个子串,asc是求某个字符的ASCII码,val是将参数转为数值型,sqr是求参数的算术平方根。
2.【答案】
B
【考点】运算符、基本运算与表达式
【解析】【解答】随机产生奇数的形式是类似于“2
n+奇数”的VB表达式,该数的区间范围是10到100的奇数,即11到99的奇数,故答案是B。
【分析】本题考查的是随机产生奇数的VB表达式。
3.【答案】
C
【考点】常见数据类型、数组,常量、变量及变量的赋值
【解析】【解答】数组元素的个位数按照桶排序进行计数,步长为2,故统计a(1)
Mod
10,a(3)
Mod
10,a(5)
Mod
10,a(7)
Mod
10,a(9)
Mod
10的结果,因此1、2、3、6、9的值数组加1,而累加时的步长是3,b(3)、b(6)和b(9)的值被累加,故答案是3。故答案选C。
【分析】本题考查的是数组和统计。
4.【答案】
C
【考点】常见数据类型、数组,运算符、基本运算与表达式
【解析】【解答】题中a(2)的范围是1~3,a(3)~a(5)的范围都是1~5,排除A、B,选项D中a(4)=5,可推知a(5)为3~
5,不可能是1,只有C都符合。故答案选C。
【分析】本题考查的是数组的运用以及对常用函数的理解。
5.【答案】
C
【考点】运算符、基本运算与表达式,常量、变量及变量的赋值
【解析】【解答】变量值的变化如下:
i
1
2
3
x
3
3
6
g
"3"
"34"
"348"
s
"12456789"
"1256789"
"125679"
故答案选C。
【分析】本题考查的是对基本函数功能以及程序语句的理解。Mid
(
)函数是从文本字符串中指定的开始位置起返回指定长度的字符。Rnd(
)函数是产生随机数。
6.【答案】
D
【考点】常量、变量及变量的赋值,排序算法及程序实现
【解析】【解答】对这5个数据,冒泡排序将数值大的数据往后交换。进行前3轮的升序排序,然后分别输出第一轮的第一项,第二轮的第二项,第三轮的第三项。第一轮排序后结果:3,6,8,4,9,输出第一项3;第二轮排序后结果:3,6,4,8,9,输出第二项6;第三轮排序后结果:3,4,6,8,9,输出第三项6,故答案选D。
【分析】本题主要考查冒泡排序算法。
7.【答案】
B
【考点】常量、变量及变量的赋值,查找算法及程序实现
【解析】【解答】若key值能在a(1)到a(8)中找到,s中最后一个字符一定为“M”。若key值不能在a(1)到a(8)中找到,则需查找4次才能结束,s的字符串长度应为4。故答案选B。
【分析】本题考查的是对分查找算法。对分查找的基本思路:在有序的数据序列中(一般放在数组中),首先把查找的数据与数组中间位置的元素进行比较,若相等,则查找成功并退出查找;否则,根据数组元素的有序性,确定数据应在数组的前半部分还是在后半部分查找;在确定了新的查找范围后,重复进行以上比较,直到找到或未找到为止。
8.【答案】
D
【考点】运算符、基本运算与表达式,常量、变量及变量的赋值
【解析】【解答】程序实现第一个字符和最后一个字符进行比较,若大于则取前面的字符,连接后按顺序赋值给变量s1,反之则取后面的字符,但是要倒序连接并赋值给变量s1,第二个字符和倒数第二个字符进行比较,……,以此类推,故答案选D。
【分析】本题考查的是VB字符串的处理以及对Mid(
)函数的理解。
9.【答案】
D
【考点】算法的控制结构,常量、变量及变量的赋值
【解析】【解答】本题中a(i)的取值是0或1,循环只有3次(i=1、4、7)

sum的值最多也只有3,只有D不可能。故答案选D。
【分析】本题主要考查的是对循环语句的理解。
10.【答案】
C
【考点】常量、变量及变量的赋值
【解析】【解答】代码的作用是统计小写英文字母中前10个字符(a~
j)出现的次数并记录到相应的数组元素a(1)、a(2)、…、a(10)中,并最终统计共有几个字母出现过,根据题意可知,有4个数组元素的值大于0,因此答案是4。故答案选C。
【分析】本题考查的是VB的字符串处理。
11.【答案】
B
【考点】常量、变量及变量的赋值
【解析】【解答】代码中“If
a(i)
Mod
2=i
Mod
2
Then
a(i)
=a(i)-1”是核心,表示如果奇数位置是奇数,或者偶数位置是偶数,则该a(i)的值减去1,而a(i)范围为[1,20],这样操作后a(i)的奇偶性发生了互换,也就是奇数位置是偶数,偶数位置是奇数,另外的情况是a(i)的值加2,故范围是[0,22],因此排除选项C,然后考虑位置和奇偶性,只有选项B符合。
【分析】本题考查的是对程序代码的理解。
12.【答案】
A
【考点】常见数据类型、数组
【解析】【解答】分析程序段运行过程:
i=1,j=1时,a(1)i=1,j=2时,a(2)i=1,j=3时,a(3)i=1,j=4时,a(4)i=2,j=1时,a(1)i=2,j=2时,a(2)循环结束。此时数组a元素的值分别为44,38,26,13,15,7。故答案选A。
【分析】本题考查学生对嵌套循环语句的理解,做题过程中,应时刻注意程序段中每个变量的变化情况。
13.【答案】
D
【考点】算法的控制结构,常见数据类型、数组,常量、变量及变量的赋值
【解析】【解答】计算完成后,a(1)=0,a(2)=1,a(3)=1,a(4)=2,a(5)=1,最后统计数组中值不为1的元素下标,只有1和4,且输出时左边更新,所以答案是41(数字4和1之间有空格)。故答案选D。
【分析】本题主要考查双重循环中数组的运算。
14.【答案】
D
【考点】常量、变量及变量的赋值
【解析】【解答】由语句a(i)=
Int(Rnd
20)
+
1可知,数组a元素的初始值范围是[1,21)。
For循环的循环变量i初始值为2,且i=2时,不满足i
Mod
2
=
1
And
a(i-1)
<
a(i),因此执行语句a(i)=a(i)-1。所以执行第一次循环后,a(1)范围是[1,21),a(2)范围是[0,20)。
当i=3时,i
Mod
2
=
1,若a(2)
<
a(3),则交换两个元素的位置,否则执行a(i)=a(i)-1。所以第二次循环结束后,a(2)应该大于a(3)或者a(2)+1>=a(3)。
当i=4时,不满足i
Mod
2
=
1
And
a(i-1)
<
a(i),因此执行语句a(i)=a(i)-1。所以执行第三次循环后,a(4)范围是[0,20)。
当i=5时,i
Mod
2
=
1,若a(4)
<
a(5),则交换两个元素的位置,否则执行a(i)=a(i)-1。所以第四次循环结束后,a(4)应该大于a(5)或者a(4)+1>=a(5)。
根据以上分析,a(1)~
a(5)各元素不可能的值是19,0,7,8,4。因为该数组元素a(2)故答案选D。
【分析】本题考查学生对循环语句的理解,要求考生能读懂程序代码,了解各个变量在程序执行过程中的变化。
15.【答案】
C
【考点】算法的控制结构,常见数据类型、数组,常量、变量及变量的赋值
【解析】【解答】b数组初值均为0,外层For循环5次,外层每循环一次,则内层For循环10遍,将a数组中最大值分别赋给b(1)到b(5),在List
1中输出,并将当次a数组的最大值赋值为0。最终降序输出数组a中5个元素,为99
98
83
77
66。故答案选C。
【分析】本题主要考查循环与数组的综合使用。
16.【答案】
B
【考点】常量、变量及变量的赋值
【解析】【解答】当选择结构比较出第一个小写字母时,m值增加1,flag值变为True,接下来连续出现的小写字母都不能使m值改变,直到比较出非小写字母,flag值变为False,然后继续比较出第一个小写字母,m值增加1,如此反复,最终m值为6。故答案选B。
【分析】本题考查的是对程序代码的理解。
17.【答案】
D
【考点】常见数据类型、数组,常量、变量及变量的赋值
【解析】【解答】本题将产生的随机数存储到数组a中,数组b的位置表示a数组中的某个数,该位置的值表示这个数出现了几次,例如a(1)=10,那么就执行b(10)加1,得到b(10)=1,表示10这个数出现了1次,a(2)=20,得到b(20)=1,表示20这个数出现了1次,a(3)=20,那么b(20)的值再加1,得到b(20)=2,表示20这个数出现了2次,以此类推,出现一个a(i),只要将b(a(i))的值加1,即可统计出a数组中的数出现了几次,程序的第二个循环就是统计a数组中的数值出现的次数,并存储在b数组,最终只要统计b数组中值不为0的位置的个数,就可以知道a数组中的不重复数字的个数了。故答案选D。
【分析】本题主要考查的是数组的应用。
18.【答案】
B
【考点】常量、变量及变量的赋值,递归算法
【解析】【解答】i=4时,a(4)=11,b(4)=3,sum=3;i=3时,a(3)=-4,b(3)
=20;i=2时,a(2)=15,b(2)=-12,sum=-9;i=1时,a(1)=-19,b(1)=39,sum=30。故答案选B。
【分析】本题考查的是对递归算法的理解。
19.【答案】
B
【考点】运算符、基本运算与表达式,常量、变量及变量的赋值
【解析】【解答】最初时,a(1)的范围是1~2,a(2)的范围是1~3,a(3)的范围是1~5,a(4)的范围是1~7,a(5)的范围是1~9,a(6)的范围是1~11。再根据if语句进行调整,当前元素小于前面一个元素时,将这两个值相加后再赋值给当前的元素a(i)。当a(1)=2时,a(2)不可能超过3,因此可以排除AC。另外,当a(2)=3时,a(3)的值绝对不可能是15(最大值只能是5),从而排除选项D。故答案选B。
【分析】本题考查VB随机数及逻辑判断。
20.【答案】
D
【考点】常量、变量及变量的赋值,查找算法及程序实现,递归算法
【解析】【解答】如果a(M)>a(M-1)And
a(M)>a(M+1),则此时的M即为“峰顶”,因此(2)处填Search=a(M)
;当a(M)a(M)>a(M+1)时,说明“峰顶”在左半区,因此L不变,R=M-1,(1)处应填Search=Search(L,M-1)。故答案选D。
【分析】本题考查的是VB的递归算法及对分查找算法。
21.【答案】
D
【考点】常量、变量及变量的赋值,排序算法及程序实现
【解析】【解答】这段程序首先基本实现了数组的升序排序,但新的位置把排序后的位置循环往右移动了3个位置,如元素“1”本来在第1个位置,但移动到了第4个位置,“6”本来在第4个位置,往右移3个位置,超出后到最左侧,变成在第1个位置,最后数字“8”原位置被占,但新位置没有被赋值,所以第3个位置为“0”。故答案选D。
【分析】本题考查的是对排序算法的理解。
22.【答案】
A
【考点】常量、变量及变量的赋值,排序算法及程序实现
【解析】【解答】第1趟的排序结果是第1个和第n个数据有序,第2趟的排序结果是第2个和第n-1个数据有序,因此第2趟和第3趟的排序区间分别为[2,n-1]和[3,n-2],可以得到结论:第i趟排序,左边排序区间的开始和结束位置分别是i和n-i+1,第i个数有序;右边排序区间的开始和结束位置分别是i+1和n-i+1。左边排序时,最值(所在位置k)和第i+1位置上的数开始比较,一直比较到位置n-i+1。右边排序时,由于排序对象是第j个位置上的数和第j+1位置上的数比较,因此j+1先达到终点n-i+1,此时j的值为n-i。由于右边是降序排序,因此把前面的数要换到后面去,故a(j)【分析】本题主要考查冒泡排序和选择排序的算法思想。从比较对象a(j)23.【答案】
A
【考点】常量、变量及变量的赋值,查找算法及程序实现
【解析】【解答】Text
2中显示的是每次查找的中值m,根据中值的顺序,可得中值m的表达式为(i+j+1)\2。故答案选A。
【分析】本题考查的是二分查找算法的VB程序。对分查找的基本思路:在有序的数据序列中(一般放在数组中),首先把查找的数据与数组中间位置的元素进行比较,若相等,则查找成功并退出查找;否则,根据数组元素的有序性,确定数据应在数组的前半部分还是在后半部分查找;在确定了新的查找范围后,重复进行以上比较,直到找到或未找到为止。
24.【答案】
B
【考点】常量、变量及变量的赋值
【解析】【解答】第一个For循环的作用是统计每个数字出现的次数,存入相对应的数组元素里,第二个For循环的目的是统计出现过的数字个数。3.1415926535中0,7,8共3个数字没有出现过,所以出现过的数字有10-3=7个。故答案选B。
【分析】本题考查对VB程序代码的理解。
25.【答案】
B
【考点】常量、变量及变量的赋值
【解析】【解答】分析该程序可得出其功能是:统计文本框Text
1中输入的字符串中包含的整数个数,“13+(123-23)
2”包含整数13,123,23,2,共4个。故答案选B。
【分析】本题主要考查的是VB程序设计。
1
/
1

展开更多......

收起↑

资源列表