中小学教育资源及组卷应用平台
期末综合练习-教科版(2019)高中信息技术必修一练习
学校:___________姓名:___________班级:___________考号:___________
一、选择题
1.已知字符“i”的ASCII码的二进制值是1101001,如果某字符的ASCII码的十进制值是109,那么这个字符是(
)
A.f
B.m
C.h
D.e
2.在计算机内部,采用二进制编码存储字符和汉字。关于信息的编码,以下表述错误的是(
)
A.将字符的ASCII编码从大到小排列,依次为:小写英文字母>大写英文字母>阿拉伯数字
B.汉字在输入计算机后,必须使用统一的汉字内码,并以二进制形式存储和处理
C.若用8位二进制代码表示一个字符,则可表示256个不同字符
D.一个字节由8位二进制数组成,每个汉字的内码只能占用2个字节
3.二进制111100(2)/二进制数11(2)的计算结果为十进制数(
)
A.30
B.29
C.31
D.20
4.世界上第一台计算机是在___诞生的___(
)
A.英国
ENIAC
B.美国
ENIAC
C.美国
ENIAK
D.英国
ENIAK
5.某男同学的体重80KG,身高170cm,请问,以下能用来判断该同学偏肥或偏瘦最有效的数据分析方法是(
)。
A.聚类分析
B.关联分析
C.数据分类
D.以上都不行
6.关于伪代码,以下说法正确的是(
)
A.伪代码是通过图形符号描述算法的。
B.伪代码抽象,书写不方便。
C.伪代码易于转化为计算机程序设计语言。
D.伪代码格式紧凑,但不易于理解。
7.智能交通系统(intelligent
traffic
system,ITS)是人工智能的应用领域之一。以下哪项不属于人工智能在智能交通方面的应用。(
)
A.通过交通信息采集系统采集道路中的车辆流量、行车速度等信息
B.车里广播在报道的进过信息分析处理系统处理后形成的实时路况
C.决策系统根据实时路况挑战道路红绿灯时长或潮汐车道的通行方向
D.通过收集产品运行数据,发现产品异常,主动提供服务,降低故障率
8.某商场想捆绑销售商品,那么你对商场的建议是(
)
A.采用聚类分析方法,从销售数据中找出最合适的商品进行捆绑销售
B.采用关联分析方法,从销售数据中找出最合适的商品进行捆绑销售
C.采用分类分析方法,从销售数据中找出最合适的商品进行捆绑销售
D.采用分类模型方法,从销售数据中找出最合适的商品进行捆绑销售
9.下列说法正确的是
(
)
A.“/”表示求余
B.“%”表示除
C.“//”
表示整除
D.“
”
表示乘
10.关于自然语言、流程图和伪代码这三种算法描述方法的比较,错误的是(
)
A.自然语言描述算法更容易掌握,但对分支和循环结构的描述能力较弱。
B.流程图描述算法清晰、简洁。
C.伪代码比其他方法更适合描述算法的抽象结构。
D.伪代码描述算法书写方便,格式紧凑,易于理解,便于向计算机程序设计语言过渡。
11.关于编写计算机程序解决问题,以下说法错误的是(
)
A.编写计算机程序解决问题,程序必须有输出。
B.编写计算机程序解决问题,程序必须有输入。
C.编写计算机程序解决问题需要经过分析问题、设计算法、编写程序、调试运行程序等若干个步骤。
D.设计算法是编写计算机程序解决问题的关键
12.有如下VB程序段:
s
=
Text1.Text
For
i=1
To
Len(s)
ch
=
Mid(s,i,1)
If
ch>="A"
And
ch<="Z"
Then
t=t+ch
If
ch>="a"
And
ch<="z"
Then
ch
=
Chr(Asc(ch)-32)
t=t+ch
ElseIf
ch
>=
"0"And
ch
<=
"9"
Then
t=ch+t
End
If
Next
i
Text2.Text
=
t
已知'A'的ASCI码为65,'a'的ASCI码为97.程序运行后,在文本框Textl中输人“Text2.text=”Abc1234“”(外括号不包括),则在Text2中显示的内容是(
A.TEXT2.TEXTABC1234
B.43212TexttextABC
C.43212TEXTTEXTABC
D.TEXTTEXTABC43212
13.下列选项中,体现了人工智能技术的有(
)
①手机根据环境光线强弱自动调节屏幕亮度
②使用微信插件将文本信息转换成语音
③使用“屏下指纹解锁”功能打开手机
④在Word中输人“爱屋及鸟”自动替换为“爱屋及乌”
⑤物流配送机器人完成快递配送
A.①③⑤
B.②③⑤
C.②④⑤
D.①②③
14.有如下Visual
Basic程序段:
Private
Sub
Command1_Click
()
Dim
x
As
Integer,r
As
Integer,
s
As
String
x
=
Val(Text1.
Text):
s
=""
Do
While
x<>0
r=(x+1)
Mod
2
s=Str(r)+s
x=x\2
Loop
Text2.
Text
=
s
End
Sub
该程序段运行后后,在文本框Text1中输入25,则文本框Text2显示的内容是(
)
A.0
0
1
0
1
B.1
1
0
1
0
C.0
0
1
1
0
D.1
1
0
0
1
15.下列说法中都体现人工智能技术应用的是(
)
①使用人体测温筛检仪,实现人脸识别无感通关,迅速发现体温异常者
②楼道LED声控感应灯,在光线不足且有人走动时,自动感应亮灯
③使用控制软件在家里对公司里的电脑进行远程控制,完成文件下载等操作
④车辆进出停车场时,通过车牌识别技术自动完成车辆停车计费工作
A.①②
B.②③
C.①④
D.②④
16.有如下VB程序段:
s
=
Text1.Text:
n
=
Len(s):
Count
=
0
For
i=1
To
n\2
If
Mid(s,
i,1)
<>
Mid(s,
n-i+1,1)
Then
Count
=
Count
+
1
End
If
Next
i
若在文本框Text1中输入字符串“
200good2”,则Count的值为( )
A.3
B.1
C.6
D.7
17.某计算机运行一程序到特定阶段就会出现异常画面,为解决该问题与网友交流,必须将此时该程序的画面截取下来。下列方案中最简洁的是(
)。
A.使用数码照相机拍摄
B.使用“PrintScreen”键
C.使用扫描仪
D.使用专用计算机屏幕截取软件
18.(
)人工智能科学技术奖,是为了奖励我国人工智能领域有成就和创新的个人或项目而设立的,共设有科学技术成就奖、科学技术创新奖和科学技术进步奖,
从
2012
年开始,每年评奖一次。
A.华罗庚
B.吴文俊
C.苏步青
D.陈
景
19.下列说法正确的是(
)
A.计算机存储数据的基本单位是
bit
B.计算机的硬盘容量越大则其运行速度越快
C.杀毒软件滞后于计算机病毒,因此对计算机病毒以预防为主
D.信息的常用表达技术有文字?语言?图形?图像?声音和形体动作等
20.第一颗原子弹爆炸后,很多人预测公元2000年会成为核子时代;登月成功后,很多人认为移民到其他星球不会太遥远。但这些预测都没有成真,反而是当时谁都没有想过的互联网能发展成现在这个样子。近些年,人工智能的迅速发展使得人们产生很多担心,比如,担心机器人有可能反过来征服人类,担心穿戴设备和植入设备(植入人体内部的智能设备)的发展可能产生超人。以下这些看法正确的是
①面对科技的迅猛发展,需要充分发挥想象力,思考应对各种可能的情况
②历史一再让我们看到,许多以为必然会发生的事,常常因为不可预见的阻碍而无法成真,而某些难以想象的情景,最后却成为事实
③如果穿戴设备和植入设备能提高个人的体能和智能,则可能造成人与人之间新的差异
④人工智能的进一步发展将会带来什么,一时很难说准,一切有待实践的检验
A.①②
B.③④
C.①②③
D.①②③④
二、判断题
21.人工智能将引发机器人控制人类、毁灭人类的问题,所以我们不能再使用人工智能,要消灭人工智能。(_____)
22.一个算法必须要有1个以上的数据输入。(___)
23.数据也会过时,过时了的数据没有任何价值。(____)
24.用自然语言来描述算法,比用流程图来描述算法更清晰、简洁。(_______)
三、操作题
25.如图所示,是一个“大”字的8
8信息编码点阵图,假设空方块用“0”表示,黑方块用“1”表示,试分析并回答下列问题。
(1)点阵图第七行用“0”和“1”从左向右排列的信息编码是____________
(2)表示该字型的方法是点阵方式还是矢方式?
___________
(3)只修改-
-行编码就可以将原图的“大”字改成“人”字,应修改第________
行,修改后的编码是_______
26.过桥问题:有一家人,晚上要过一个独木桥。但是他们只有一盏灯,而这盏灯只能使用30秒了。要在灯熄灭前过这座桥,他们一家五口人每个人过桥的速度不同。瘦人1秒,小胖3秒,姑娘6秒,大胖8秒,瘸子12秒。每次只能过两个人。过去后,对岸要有一个人再把灯送回来。
问题1:他们能否在灯熄灭前过河?
问题2:他们在最短时间内全部过河的的顺序应该怎样安排,用自然语言将方法表示出来。
27.某校进行模拟考,现有25名学生的语数英三门课的成绩(按百分制)存储在数据库student.accdb中的数据表cj中,现取出各学生成绩存储在cj()数组中,成绩存放如下:
运行程序,点击“数据导入”按钮后,在列表框list1中显示所有数据。点击“排序”按钮,按总分从高到低计算名次(成绩相同的名次相同),并按排名先后在列表框list2中显示,数据要求对齐。程序运行界面如图1所示:
图1
(1)观察程序及界面,可知“排序”按钮的对象名为________________。
(2)实现上述程序功能的VB程序段如下,请在划线出填入合适的代码。
Dim
cj(1
To
100)
As
Integer
Dim
b(1
To
301)
As
Integer
'分数为i的人数存入b(i)
Private
Sub
Cmdl_
Click()
Dim
conn
As
New
ADODB.Connection
Dim
rs
As
New
ADODB.Recordset
conn.ConnectionString
=
"Provider
=Microsoft.ACE.OLEDB.12.0;Data
Source=
"
&App.Path&
"\studentaccdb"
conn.Open
Set
rs.ActiveConnection
=
conn
rs.Open
"SELECT
FROM
cj"
n
=1
Do
While
Not
rs.EOF
cj(n)=
rs.Fields(
"语文"):cj(n+1)
=
rs.Fields("数学")
cj(n+2)
=
rs.Fields("英语"):cj(n+3)
=
cj(n)+cj(n+1)+cj(n+3)
__________
Rs.MoveNext
Loop
rs.Close
:conn.Close
'此处代码略,用来实现将数据在list1中输出
End
Sub
Private
Sub
paixu_
Click()
Dim
mc
As
Integer
'预处理求b数组的值
For
j=4
To
100
Step
4
_______________
Next
j
'以下程序用于计算名次并按要求对齐输出
mc=1:b(301)=0
List2.AddItem"语文"+"数学"+"英语"+"总分"+"名次"
List2.AddItem
"------------------------------------------------"
For
i=300
To
1
Step
-1
______________
If
b(i)
<>
0
Then
For
C=4
To
100
Step
4
If
cj(c)
=
i
Then
List2.AddItem______________
End
If
Next
c
End
If
Next
i
End
Sub
'以下函数输出时数据s时,不足7位末尾补空格
Function
gs(s
As
Integer)
As
String
Dim
cd
As
String
ed
=
CStr(s)
For
i=1
To
7
-Len(cd)
cd=
cd+"
"
Next
i
gs
=
cd
End
Function
28.编写一个VB程序,实现如下功能:输入s位数字构成的数字字符串(第1位数字不为0),移除k
(0
算法分析:要使得到的5位数字最小,首先需保证能取到5个数字,且首位应尽量小,那么取首位数的范围应保证余下有4个数字,即在前4位中选最小非0的数字。
程序运行时,在文本框Text1中输入一个数字字符串,在文本框Text2中输入要移除的数字个数,单击“运行”按钮CmdRun后,在标签Labell显示得到的最小新数,程序运行界面如图b所示。
(1)程序运行时,若要在名为Form1的窗体标题上显示“删数”,可以在Form
Load事件处理过程中添加语句为_________(单选,填字母:A.
Form1.
Text
="删数"\B.
Form1.
Caption
="删数"\C.
Form1.
AddItem"删数")
(2)实现上述功能的VB程序代码如下,请在划线处填入合适的代码。
Private
Sub
CmdRun_
Click()
Dim
Num
As
String,New_num
As
String
'
Num为输入的数字字符串
Dim
i
As
Integer,
j
As
Integer,
m
As
Integer,
Dim
As
Integer,
s
As
Integer,
k
As
Integer
Dim
a(30)
As
String,
b(30)
As
Integer
Num
=
Text1.
Text:
s
=
Len(Num)
k
=
Val
(Text2.
Text)
'k为删除数字个数
For
i=1
To
s
a(i)
=
Mid(Num,i,1)
Nexti
j
=1
m=1
n=①_________
For
i=m+l
To
n
'取第一个非零最小数字
If
Then
m=I
'加框处程序代码有误,请改正
Next
i
b(j)=
m
Do
While②________
'取其他最小数字
m=m+1
n=n+1
For
i=m+1
To
n
If
a(i)
<
a(m)
Then
m=
i
Next
i
j
=j+1:b(j)=m
Loop
For
i=
m+1
To
s
'最后直接取的数字
j
=j+1:b(j)=i
Next
i
For
j=1
To
s-
k
'输出最小数
New_
num
=③________
Next
j
Labell.
Caption
=
New_num
End
Sub
(3)加框处程序代码有误,请改正。
____________________________
29.均分红包。当前有n堆红包,编号为1,2,
3,
。。
n,每堆有若干个红包,红包总数sum是n的倍数。可以在任一堆上取若干个红包,然后移动,最终使每堆上的红包个数相同。
移红包规则:
①编号为1的堆上的红包,只能移到编号为2的堆上;
②编号为n的堆上的红包,只能移到编号为n-1的堆上;
③其它堆上的红包,可以移到相邻左边或右边的堆上。
现要求找出最少的移动次数使每堆的红包数-样多。如图所示,在文本框Text1中输入红包堆数n,在文本框Text2中依次输入每堆红包的红包个数(以“,”为分隔符和结束符),单击“移红包次数统计”按钮Command1后,在标签Labe13中显示最少的移动次数。
(1)代码“Private
Sub
Command1_
Click()”中的Click是______(单选,填字母:
A.对象名B.事件名C.事件处理过程名D.方法名)
(2)实现上述功能的VB程序如下,请在划线处填入合适的代码。
Const
Sum
=
40
'红包总个数
Private
Sub
Command1_
Click
()
Dim
n
As
Integer
'红包的堆数
Dim
s
As
String,
k
As
Integer
Dim
avg
As
Integer
'最终每堆的红包个数
Dim
ml
As
Integer,
m2
As
Integer
Dim
tmp
As
Integer,
count
As
Integer,
ans
As
Integer
n=
__________
s
=
Text2.
Text
avg=Sum/n
tmp=0:count=0:ans=0
For
k=1
To
Len(s)
c
=
Mid(s,
k,
1)
If
c
<>","Then
tmp
=_
_________
Else
count
=
count
+
1
If
count
=
1
Then
ml
=tmp
Else
m2
=
tmp
If
ml
<>
avg
Then
m2=m2-(avg-m1)
ans=ans+1
End
If
________
End
If
tmp=0
End
If
Next
k
Labe13.
Caption
=
Str
(ans)
End
Sub
30.小王利用循环排序思想编写了一个VB程序,用于计算下一轮比赛的出场顺序。从数据库中读取本轮比赛的人员姓名存在数组xm中,成绩存在数组cj中(成绩均不重复)。编程实现将这些成绩进行循环升序排列。要求最低成绩的位置不变,然后依次进行升序排序,即从最小值开始向下尾首相连形成升序数列。程序运行界面如图所示。点击“排序”按钮,完成循环升序排序。
(1)“排序”按钮的对象名为_
(2)请在划线处填入合适代码。
(3)加框处代码出错,请改正。
Dim
xm(1
to
100)As
String
,cj(1
to
100)As
Integer
Dim
flag(1
to
100)As
Boolean
Private
Sub
Form_
Load(
)
'从数据库中读取数据,存储到相应数组中,并输出在列表框Listl。第i个人,姓名为xm(i),成绩为cj(i)。人员数量存储到变量n中()。代码略
End
Sub
Private
Sub
Cmd__Click()
Dim
min
As
Integer,
pmin
As
Integer
min
=
cj(1):
pmin
=
1
For
i=2
To
n
If
cj(i)
<
min
Then
min
=
cj(i):__①__
Next
i
flag(pmin)
=
True
pmin=
pmin
+
1
If
pmin=n+1
Then
pmin=1
For
i=1
To
n-2
k
=
pmin
For
j=1
To
n
If
②
Then
k=
j
Next
j
If
k
<>
pmin
Then
t
=
cj(k):
cj(k)
=
cj(pmin):
cj(pmin)
=
t
C
=
xm(k):
xm(k)
=
xm(pmin):
xm(pmin)
=
c
End
If
flag(pmin)
=
True
pmin=pmin+1
Next
i
'将排序后的人员姓名和成绩输出到列表框List2中,代码略。
End
Sub
31.给定一个序列
a,这个序列由
n
个数组成(n
个数依次保存
在数组
a(1)
~a(n)中),现在给定一个整数
p,要求将序列
a的前
p
个数与后
n-p
个数对调,且不改变这
p
个数(和
n-p个数)之间的相对位置?
例如长度为
5
的序列
1,2,3,4,5,当
p=2
时重排的结果为
3,4,5,1,2?
我们可以用两种不同的方法来实现这一目的:
方法一:逐个地将数组
a
的后
n-p
个数依次移动到前面去?
数组
a:
1
2
3
4
5
3
1
2
4
5
3
4
1
2
5
3
4
5
1
2
方法二:将前
p
个数看作一个区间,后
n-p
个数看作另一个区间,依次将数交换,同时缩小区间的大小;若某一个区间达到末尾,则调整区间的范围,直到两个区间刚好同时达到末尾,即调整结束?
数组
a:
互换并调整区间:第一个区间结束且第二个区间还有元素,调整区间
1
和区间
2
的范围,如图将区间
1
调整为[3,4],区间
2
调整为[5:5]?
互换并调整区间:第二个区间结束且第一个区间还有元素,仅调整第
1
个区间的起始位置?
互换并结束:两个区间同时到达末尾?
3
4
5
1
2
小明依据上面的方法设计了
VB
程序如下:
Dim
a(1
To
100),
i
As
Integer,
j
As
Integer,
tmp
As
Integer,
p
As
Integer
Dim
start1
As
Integer,
end1
As
Integer,
start2
As
Integer,
end2
As
Integer
'将序列保存到数组
a中,序列长度保存到
n
中,移动数字的个数保存在
p
中
Private
Sub
Command2_Click()
'用方法一实现
For
i
=
p
+
1
To
n
tmp
=
a(i)
For
j
=
i
To
①
Step
-1
a(j)
=
a(j
-
1)
Next
j
②
=
tmp
Next
i
End
Sub
Private
Sub
Command3_Click()
'用方法二实现
start1
=
1:
end1
=
p
'第
1
个区间的起始状态
start2
=
p
+
1:
end2
=
n
'第
2
个区间的起始状态
i
=
start1:
j
=
start2
Do
While
③
i
=
start1:
j
=
start2
Do
While
i
<=
end1
And
j
<=
end2
tmp
=
a(i):
a(i)
=
a(j):
a(j)
=
tmp
i
=
i
+
1:j
=
j
+
1
Loop
If
i
<=
end1
Then
'第
2
个区间结束且第
1
个
区间还有元素
start1
=
i
ElseIf
j
<=
end2
Then
'第
1
个区间结束且第
2
个区间还有元素
start1
=
i:
④
start2
=
j
End
If
Loop
End
Sub
请回答下列问题:
(1)若序列为:9,8,13,22,7,6,5,37,6,p=4
时,使用方法一,则
a(3)的值依次是
13,_________________(用逗号隔开,顺序填写曾存储过的值)?
(2)请在划线处填入合适的代码?
①_______________________
②_______________________
③_______________________
④_______________________
21世纪教育网
www.21cnjy.com
精品试卷·第
2
页
(共
2
页)
21世纪教育网(www.21cnjy.com)中小学教育资源及组卷应用平台
期末综合练习-教科版(2019)高中信息技术必修一练习
学校:___________姓名:___________班级:___________考号:___________
一、选择题
1.已知字符“i”的ASCII码的二进制值是1101001,如果某字符的ASCII码的十进制值是109,那么这个字符是(
)
A.f
B.m
C.h
D.e
答案:B
详解:本题考查的是编码相关知识。二进制数:1101001转换为十进制数为:105。109-105=4,在字符“i”后4位的字符为:m。故选项B正确。
2.在计算机内部,采用二进制编码存储字符和汉字。关于信息的编码,以下表述错误的是(
)
A.将字符的ASCII编码从大到小排列,依次为:小写英文字母>大写英文字母>阿拉伯数字
B.汉字在输入计算机后,必须使用统一的汉字内码,并以二进制形式存储和处理
C.若用8位二进制代码表示一个字符,则可表示256个不同字符
D.一个字节由8位二进制数组成,每个汉字的内码只能占用2个字节
答案:D
详解:本题考查的是计算机编码。一个字节由8位二进制数组成,汉字编码一般占两个字节,并不是只能占两字节。故应选D。
3.二进制111100(2)/二进制数11(2)的计算结果为十进制数(
)
A.30
B.29
C.31
D.20
答案:D
详解:本题考查进制转换相关知识。二进制转换为十进制采用位权展开相加,二进制111100(2)=1
2^5+1
2^4+1
2^3+1
2^2=60(10),二进制数11(2)=3(10),故二进制111100(2)/二进制数11(2)的计算结果为十进制数20,本题选D。
4.世界上第一台计算机是在___诞生的___(
)
A.英国
ENIAC
B.美国
ENIAC
C.美国
ENIAK
D.英国
ENIAK
答案:B
详解:本题考查计算机发展历史。世界上第一台通用计算机发明时间,1946年2月14日,名字ENIAC,诞生地,美国宾夕法尼亚大学诞生。故本题选B。
5.某男同学的体重80KG,身高170cm,请问,以下能用来判断该同学偏肥或偏瘦最有效的数据分析方法是(
)。
A.聚类分析
B.关联分析
C.数据分类
D.以上都不行
答案:C
【解析】
【分析】
【详解】
本题考查数据分析方法的相关知识点
数据分类是按不同的标准进行分类,可以通过数据分类判断该同学偏肥或偏瘦。故本题选C选项
6.关于伪代码,以下说法正确的是(
)
A.伪代码是通过图形符号描述算法的。
B.伪代码抽象,书写不方便。
C.伪代码易于转化为计算机程序设计语言。
D.伪代码格式紧凑,但不易于理解。
答案:C
【解析】
【分析】
【详解】
本题考查伪代码相关知识点
流程图是通过
图形符号描述算法的。故选项A说法错误
伪代码具体,书写方便。故选项B说法错误
伪代码易于转化为计算机程序设计语言。故本题选C选项
伪代码易于理解。故选项D说法错误
7.智能交通系统(intelligent
traffic
system,ITS)是人工智能的应用领域之一。以下哪项不属于人工智能在智能交通方面的应用。(
)
A.通过交通信息采集系统采集道路中的车辆流量、行车速度等信息
B.车里广播在报道的进过信息分析处理系统处理后形成的实时路况
C.决策系统根据实时路况挑战道路红绿灯时长或潮汐车道的通行方向
D.通过收集产品运行数据,发现产品异常,主动提供服务,降低故障率
答案:D
【解析】
【分析】
【详解】
本题主要考查人工智能的应用。人工智能应用主要包含语音识别、人脸识别、数据分析、机器学习、专家系统、服务器开发等领域。A选项是人工智能中识别与数据分析的应用;B选项是人工智能中数据分析的应用;C选项是人工智能中专家系统的应用;D选项不是人工智能的应用。
8.某商场想捆绑销售商品,那么你对商场的建议是(
)
A.采用聚类分析方法,从销售数据中找出最合适的商品进行捆绑销售
B.采用关联分析方法,从销售数据中找出最合适的商品进行捆绑销售
C.采用分类分析方法,从销售数据中找出最合适的商品进行捆绑销售
D.采用分类模型方法,从销售数据中找出最合适的商品进行捆绑销售
答案:B
【解析】
【分析】
【详解】
本题考查常用数据分析方法的相关知识点
捆绑销售商品,采用关联分析方法,从销售数据中找出最合适的商品进行捆绑销售。故本题选B选项
9.下列说法正确的是
(
)
A.“/”表示求余
B.“%”表示除
C.“//”
表示整除
D.“
”
表示乘
答案:C
【解析】
【分析】
【详解】
本题主要考查基本运算符。“/”表示除,因此A选项错误;“%”表示取余,因此B选项错误;“//”
表示整除,因此C选项正确;“
”
不属于常用运算符,因此D选项错误。
10.关于自然语言、流程图和伪代码这三种算法描述方法的比较,错误的是(
)
A.自然语言描述算法更容易掌握,但对分支和循环结构的描述能力较弱。
B.流程图描述算法清晰、简洁。
C.伪代码比其他方法更适合描述算法的抽象结构。
D.伪代码描述算法书写方便,格式紧凑,易于理解,便于向计算机程序设计语言过渡。
答案:C
【解析】
【分析】
【详解】
本题考查算法的相关知识点
自然语言描述算法更容易掌握,但对分支和循环结构的描述能力较弱。选项A说法正确
流程图描述算法清晰、简洁。选项B说法正确
流程图适合描述算法的抽象结果。故本题选C选项
伪代码描述算法书写方便,格式紧凑,易于理解,便于向计算机程序设计语言过渡。选项D说法正确
11.关于编写计算机程序解决问题,以下说法错误的是(
)
A.编写计算机程序解决问题,程序必须有输出。
B.编写计算机程序解决问题,程序必须有输入。
C.编写计算机程序解决问题需要经过分析问题、设计算法、编写程序、调试运行程序等若干个步骤。
D.设计算法是编写计算机程序解决问题的关键
答案:B
【解析】
【分析】
【详解】
本题主要考查算法设计的有关知识。计算机程序可以没有输出,但必须有1个或多个输出,因此A选项正确、B选项错误;编写计算机程序解决问题需要经过分析问题、设计算法、编写程序、调试运行程序等若干个步骤。因此C选项正确;算法是在有限步骤内求解某一问题所使用的一组定义明确的规则。通俗点说,就是计算机解题的过程,是编写计算机程序解决问题的关键,因此D选项正确。
12.有如下VB程序段:
s
=
Text1.Text
For
i=1
To
Len(s)
ch
=
Mid(s,i,1)
If
ch>="A"
And
ch<="Z"
Then
t=t+ch
If
ch>="a"
And
ch<="z"
Then
ch
=
Chr(Asc(ch)-32)
t=t+ch
ElseIf
ch
>=
"0"And
ch
<=
"9"
Then
t=ch+t
End
If
Next
i
Text2.Text
=
t
已知'A'的ASCI码为65,'a'的ASCI码为97.程序运行后,在文本框Textl中输人“Text2.text=”Abc1234“”(外括号不包括),则在Text2中显示的内容是(
A.TEXT2.TEXTABC1234
B.43212TexttextABC
C.43212TEXTTEXTABC
D.TEXTTEXTABC43212
答案:C
详解:本题考查VB程序段。根据判断条件If
ch>=“A”
And
ch<=“Z”
Then
t=t+ch,大写字母直接顺序叠加,又If
ch>=“a”
And
ch<=“z”
Then
ch=Chr(Asc(ch)-32)t=t+ch,可知,小写字母转换为大写字母后叠加。再看If
ch>=
“0”And
ch<=
“9”Then
t=ch+t,可知数字采取倒序叠加,故最后结果数字在前,全都是大写字母,故选C。
13.下列选项中,体现了人工智能技术的有(
)
①手机根据环境光线强弱自动调节屏幕亮度
②使用微信插件将文本信息转换成语音
③使用“屏下指纹解锁”功能打开手机
④在Word中输人“爱屋及鸟”自动替换为“爱屋及乌”
⑤物流配送机器人完成快递配送
A.①③⑤
B.②③⑤
C.②④⑤
D.①②③
答案:B
详解:本题考查人工智能相关知识。人工智能包括识别和理解,识别有指纹识别,人脸识别,语音识别,理解有机器翻译和人机对话。使用微信插件将文本信息转换成语音,使用“屏下指纹解锁”功能打开手机,物流配送机器人完成快递配送都体现了人工智能技术。手机根据环境光线强弱自动调节屏幕亮度是传感器技术。故本题选B。
14.有如下Visual
Basic程序段:
Private
Sub
Command1_Click
()
Dim
x
As
Integer,r
As
Integer,
s
As
String
x
=
Val(Text1.
Text):
s
=""
Do
While
x<>0
r=(x+1)
Mod
2
s=Str(r)+s
x=x\2
Loop
Text2.
Text
=
s
End
Sub
该程序段运行后后,在文本框Text1中输入25,则文本框Text2显示的内容是(
)
A.0
0
1
0
1
B.1
1
0
1
0
C.0
0
1
1
0
D.1
1
0
0
1
答案:C
详解:本题考查VB程序段。根据do
while循环结构,以及r=(x+1)
Mod
2,s=Str(r)+s,x=x\2三条语句可知,该循环的作用将十进制转换为二进制后的0转换为1,1转换为0。25二进制是11001,故转换后为00110,本题选C。
15.下列说法中都体现人工智能技术应用的是(
)
①使用人体测温筛检仪,实现人脸识别无感通关,迅速发现体温异常者
②楼道LED声控感应灯,在光线不足且有人走动时,自动感应亮灯
③使用控制软件在家里对公司里的电脑进行远程控制,完成文件下载等操作
④车辆进出停车场时,通过车牌识别技术自动完成车辆停车计费工作
A.①②
B.②③
C.①④
D.②④
答案:C
详解:本题考查人工智能相关知识。人工智能包括识别和理解,识别有指纹识别,人脸识别,语音识别,理解有机器翻译和人机对话。使用人体测温筛检仪,实现人脸识别无感通关,迅速发现体温异常者,车辆进出停车场时,通过车牌识别技术自动完成车辆停车计费工作属于人工智能。楼道LED声控感应灯,在光线不足且有人走动时,自动感应亮灯是一种传感器技术。故本题选C。
16.有如下VB程序段:
s
=
Text1.Text:
n
=
Len(s):
Count
=
0
For
i=1
To
n\2
If
Mid(s,
i,1)
<>
Mid(s,
n-i+1,1)
Then
Count
=
Count
+
1
End
If
Next
i
若在文本框Text1中输入字符串“
200good2”,则Count的值为( )
A.3
B.1
C.6
D.7
答案:A
详解:本题考查VB程序段。若在文本框Text1中输入字符串“200good2”,根据If
Mid(s,
i,1)<>Mid(s,
n-i+1,1)Then
Count=Count+1,可知统计字符串前后对应位置不相等字符个数,故本题选A。
17.某计算机运行一程序到特定阶段就会出现异常画面,为解决该问题与网友交流,必须将此时该程序的画面截取下来。下列方案中最简洁的是(
)。
A.使用数码照相机拍摄
B.使用“PrintScreen”键
C.使用扫描仪
D.使用专用计算机屏幕截取软件
答案:B
详解:本题考查计算机操作。某计算机运行一程序到特定阶段就会出现异常画面,为解决该问题与网友交流,必须将此时该程序的画面截取下来。最简洁的是使用“PrintScreen”键,该键可以直接将屏幕内容保存下来。故本题选B。
18.(
)人工智能科学技术奖,是为了奖励我国人工智能领域有成就和创新的个人或项目而设立的,共设有科学技术成就奖、科学技术创新奖和科学技术进步奖,
从
2012
年开始,每年评奖一次。
A.华罗庚
B.吴文俊
C.苏步青
D.陈
景
答案:B
详解:本题考查人工智能相关知识。吴文俊人工智能科学技术奖,由中兴通讯公司牵头捐资,中国人工智能学会发起主办,共设有科学技术成就奖、科学技术创新奖和科学技术进步奖,每年评奖一次。其中,成就奖和创新奖主要奖励个人,进步奖主要奖励项目。故本题选B。
19.下列说法正确的是(
)
A.计算机存储数据的基本单位是
bit
B.计算机的硬盘容量越大则其运行速度越快
C.杀毒软件滞后于计算机病毒,因此对计算机病毒以预防为主
D.信息的常用表达技术有文字?语言?图形?图像?声音和形体动作等
答案:C
【解析】
【分析】
【详解】
本题考查计算机基础知识。大部分杀毒软件是滞后于计算机病毒的,因此对计算机病毒以预防为主,选项C正确。计算机存储数据的基本单位是B(字节),选项A错误。硬盘容量与计算机的速度没有关系,选项B错误。信息的常用表达方式有文字?语言?图形?图像?声音和形体动作等,选项D错误。
20.第一颗原子弹爆炸后,很多人预测公元2000年会成为核子时代;登月成功后,很多人认为移民到其他星球不会太遥远。但这些预测都没有成真,反而是当时谁都没有想过的互联网能发展成现在这个样子。近些年,人工智能的迅速发展使得人们产生很多担心,比如,担心机器人有可能反过来征服人类,担心穿戴设备和植入设备(植入人体内部的智能设备)的发展可能产生超人。以下这些看法正确的是
①面对科技的迅猛发展,需要充分发挥想象力,思考应对各种可能的情况
②历史一再让我们看到,许多以为必然会发生的事,常常因为不可预见的阻碍而无法成真,而某些难以想象的情景,最后却成为事实
③如果穿戴设备和植入设备能提高个人的体能和智能,则可能造成人与人之间新的差异
④人工智能的进一步发展将会带来什么,一时很难说准,一切有待实践的检验
A.①②
B.③④
C.①②③
D.①②③④
答案:D
【解析】
【分析】
【详解】
本题主要考查人工智能相关知识点。①面对科技的迅猛发展,需要充分发挥想象力,思考应对各种可能的情况②历史一再让我们看到,许多以为必然会发生的事,常常因为不可预见的阻碍而无法成真,而某些难以想象的情景,最后却成为事实③如果穿戴设备和植入设备能提高个人的体能和智能,则可能造成人与人之间新的差异④人工智能的进一步发展将会带来什么,一时很难说准,一切有待实践的检验,故本题选D选项。
二、判断题
21.人工智能将引发机器人控制人类、毁灭人类的问题,所以我们不能再使用人工智能,要消灭人工智能。(_____)
答案:×
【解析】
【分析】
【详解】
本题主要考查人工智能的应用。人工智能有一定弊端,但不可全盘否定,可合理运用,因此本题错误。
22.一个算法必须要有1个以上的数据输入。(___)
答案:×
【解析】
【分析】
【详解】
本题考查算法输入的相关知识点
一个算法也可以没有输入,但至少有一个输出。故表述错误
23.数据也会过时,过时了的数据没有任何价值。(____)
答案:×
【解析】
【分析】
【详解】
本题考查数据的相关知识点
数据不会过时,只有什么时候使用而已,一直有价值。故表述有误
24.用自然语言来描述算法,比用流程图来描述算法更清晰、简洁。(_______)
答案:错
详解:本题考查的是算法描述。流程图是一种传统的算法表示法,它用一些图框来代表各种不同性质的操作,用流程线来指示算法的执行方向。由于它直观形象,易于理解,所以应用广泛,特别是在语言发展的早期阶段,只有通过流程图才能简明地表述算法。故题干中的说法是错误的。
三、操作题
25.如图所示,是一个“大”字的8
8信息编码点阵图,假设空方块用“0”表示,黑方块用“1”表示,试分析并回答下列问题。
(1)点阵图第七行用“0”和“1”从左向右排列的信息编码是____________
(2)表示该字型的方法是点阵方式还是矢方式?
___________
(3)只修改-
-行编码就可以将原图的“大”字改成“人”字,应修改第________
行,修改后的编码是_______
答案:01000100
点阵方式
四或4
00010000
详解:本题考查编码相关知识。(1)根据题干空方块用“0”表示,黑方块用“1”表示,则点阵图第七行用“0”和“1”从左向右排列的信息编码是0100010。(2)表示该字型的方法是点阵方式。(3)应修改第四行,将黑方块改为白方块就可以将原图的“大”字改成“人”字,修改后的编码是00010000。
26.过桥问题:有一家人,晚上要过一个独木桥。但是他们只有一盏灯,而这盏灯只能使用30秒了。要在灯熄灭前过这座桥,他们一家五口人每个人过桥的速度不同。瘦人1秒,小胖3秒,姑娘6秒,大胖8秒,瘸子12秒。每次只能过两个人。过去后,对岸要有一个人再把灯送回来。
问题1:他们能否在灯熄灭前过河?
问题2:他们在最短时间内全部过河的的顺序应该怎样安排,用自然语言将方法表示出来。
答案:问题1答案:可以在灯熄灭前过河,用时29秒。
问题2答案:过河的顺序如下:
1.瘦人、小胖先过
3秒
2.瘦人回来
1秒
3.大胖、瘸子过桥
12秒
4.小胖回来
3秒
5.姑娘、瘦人过桥
6秒
6.瘦人回来
1秒
7.瘦人小胖过桥
3秒
总计
29秒
【解析】
【分析】
【详解】
本题考查程序相关知识点
大胖和瘸子花的时间比较多,可以一起过河,小胖和瘦子花的时间比较少,可以回来送灯。具体过河顺序如下:
1.瘦人、小胖先过
3秒
2.瘦人回来
1秒
3.大胖、瘸子过桥
12秒
4.小胖回来
3秒
5.姑娘、瘦人过桥
6秒
6.瘦人回来
1秒
7.瘦人小胖过桥
3秒
27.某校进行模拟考,现有25名学生的语数英三门课的成绩(按百分制)存储在数据库student.accdb中的数据表cj中,现取出各学生成绩存储在cj()数组中,成绩存放如下:
运行程序,点击“数据导入”按钮后,在列表框list1中显示所有数据。点击“排序”按钮,按总分从高到低计算名次(成绩相同的名次相同),并按排名先后在列表框list2中显示,数据要求对齐。程序运行界面如图1所示:
图1
(1)观察程序及界面,可知“排序”按钮的对象名为________________。
(2)实现上述程序功能的VB程序段如下,请在划线出填入合适的代码。
Dim
cj(1
To
100)
As
Integer
Dim
b(1
To
301)
As
Integer
'分数为i的人数存入b(i)
Private
Sub
Cmdl_
Click()
Dim
conn
As
New
ADODB.Connection
Dim
rs
As
New
ADODB.Recordset
conn.ConnectionString
=
"Provider
=Microsoft.ACE.OLEDB.12.0;Data
Source=
"
&App.Path&
"\studentaccdb"
conn.Open
Set
rs.ActiveConnection
=
conn
rs.Open
"SELECT
FROM
cj"
n
=1
Do
While
Not
rs.EOF
cj(n)=
rs.Fields(
"语文"):cj(n+1)
=
rs.Fields("数学")
cj(n+2)
=
rs.Fields("英语"):cj(n+3)
=
cj(n)+cj(n+1)+cj(n+3)
__________
Rs.MoveNext
Loop
rs.Close
:conn.Close
'此处代码略,用来实现将数据在list1中输出
End
Sub
Private
Sub
paixu_
Click()
Dim
mc
As
Integer
'预处理求b数组的值
For
j=4
To
100
Step
4
_______________
Next
j
'以下程序用于计算名次并按要求对齐输出
mc=1:b(301)=0
List2.AddItem"语文"+"数学"+"英语"+"总分"+"名次"
List2.AddItem
"------------------------------------------------"
For
i=300
To
1
Step
-1
______________
If
b(i)
<>
0
Then
For
C=4
To
100
Step
4
If
cj(c)
=
i
Then
List2.AddItem______________
End
If
Next
c
End
If
Next
i
End
Sub
'以下函数输出时数据s时,不足7位末尾补空格
Function
gs(s
As
Integer)
As
String
Dim
cd
As
String
ed
=
CStr(s)
For
i=1
To
7
-Len(cd)
cd=
cd+"
"
Next
i
gs
=
cd
End
Function
答案:paixu
①n=n+4
②
b(cj(j)
=
b(cj(j))
+
1
③
mc=mc+b(i+1)
④gs(cj(c-3))
+
gs(cj(c-
2))
+
gs(cj(c-
1))
+
gs(cij(c))
+
gs(mc)
详解:本题考查VB综合能力。(1)根据Private
Sub
paixu_
Click(),可知,按钮名称为paixu。(2)变量n每次递增,故填入n=n+4。(3)统计分数为cj(j)的人数,古田如
b(cj(j))
=
b(cj(j))+1。(4)当前名次为上一个分数的人数加上当前名次初始值,故填入mc=mc+b(i+1)。(5)将相应结果显示在List表中,故填入gs(cj(c-3))+gs(cj(c-
2))+gs(cj(c-
1))+gs(cij(c))+gs(mc)
28.编写一个VB程序,实现如下功能:输入s位数字构成的数字字符串(第1位数字不为0),移除k
(0算法分析:要使得到的5位数字最小,首先需保证能取到5个数字,且首位应尽量小,那么取首位数的范围应保证余下有4个数字,即在前4位中选最小非0的数字。
程序运行时,在文本框Text1中输入一个数字字符串,在文本框Text2中输入要移除的数字个数,单击“运行”按钮CmdRun后,在标签Labell显示得到的最小新数,程序运行界面如图b所示。
(1)程序运行时,若要在名为Form1的窗体标题上显示“删数”,可以在Form
Load事件处理过程中添加语句为_________(单选,填字母:A.
Form1.
Text
="删数"\B.
Form1.
Caption
="删数"\C.
Form1.
AddItem"删数")
(2)实现上述功能的VB程序代码如下,请在划线处填入合适的代码。
Private
Sub
CmdRun_
Click()
Dim
Num
As
String,New_num
As
String
'
Num为输入的数字字符串
Dim
i
As
Integer,
j
As
Integer,
m
As
Integer,
Dim
As
Integer,
s
As
Integer,
k
As
Integer
Dim
a(30)
As
String,
b(30)
As
Integer
Num
=
Text1.
Text:
s
=
Len(Num)
k
=
Val
(Text2.
Text)
'k为删除数字个数
For
i=1
To
s
a(i)
=
Mid(Num,i,1)
Nexti
j
=1
m=1
n=①_________
For
i=m+l
To
n
'取第一个非零最小数字
If
Then
m=I
'加框处程序代码有误,请改正
Next
i
b(j)=
m
Do
While②________
'取其他最小数字
m=m+1
n=n+1
For
i=m+1
To
n
If
a(i)
<
a(m)
Then
m=
i
Next
i
j
=j+1:b(j)=m
Loop
For
i=
m+1
To
s
'最后直接取的数字
j
=j+1:b(j)=i
Next
i
For
j=1
To
s-
k
'输出最小数
New_
num
=③________
Next
j
Labell.
Caption
=
New_num
End
Sub
(3)加框处程序代码有误,请改正。
____________________________
答案:B
①
k
+
1或其他可行答案
②
j
<
k
或
j
<>
k
或
m
<
n
或
m
<>
n
或其他可行答案
③
New_num
+
a(b(j))或其他可行答案
a(i)
<
a(m)
And
a(i)
<>
"0"或其他可行答案
详解:本题考查VB综合能力。(1)程序运行时,若要在名为Form1的窗体标题上显示“删数”,可以在Form
Load事件处理过程中添加语句为Form1.
Caption
=“删数”。(2)n为最多能从前多少位取出第一个数字,故n=k+1。(2)剩余的数字数量要满足取出的数量,故填入m
<>
n。(3)将结果显示,是一个结果变量叠加过程,故填入New_num+a(b(j))。(5)找最小的并且不能为零,故填入a(i)And
a(i)<>“0”。
29.均分红包。当前有n堆红包,编号为1,2,
3,
。。
n,每堆有若干个红包,红包总数sum是n的倍数。可以在任一堆上取若干个红包,然后移动,最终使每堆上的红包个数相同。
移红包规则:
①编号为1的堆上的红包,只能移到编号为2的堆上;
②编号为n的堆上的红包,只能移到编号为n-1的堆上;
③其它堆上的红包,可以移到相邻左边或右边的堆上。
现要求找出最少的移动次数使每堆的红包数-样多。如图所示,在文本框Text1中输入红包堆数n,在文本框Text2中依次输入每堆红包的红包个数(以“,”为分隔符和结束符),单击“移红包次数统计”按钮Command1后,在标签Labe13中显示最少的移动次数。
(1)代码“Private
Sub
Command1_
Click()”中的Click是______(单选,填字母:
A.对象名B.事件名C.事件处理过程名D.方法名)
(2)实现上述功能的VB程序如下,请在划线处填入合适的代码。
Const
Sum
=
40
'红包总个数
Private
Sub
Command1_
Click
()
Dim
n
As
Integer
'红包的堆数
Dim
s
As
String,
k
As
Integer
Dim
avg
As
Integer
'最终每堆的红包个数
Dim
ml
As
Integer,
m2
As
Integer
Dim
tmp
As
Integer,
count
As
Integer,
ans
As
Integer
n=
__________
s
=
Text2.
Text
avg=Sum/n
tmp=0:count=0:ans=0
For
k=1
To
Len(s)
c
=
Mid(s,
k,
1)
If
c
<>","Then
tmp
=_
_________
Else
count
=
count
+
1
If
count
=
1
Then
ml
=tmp
Else
m2
=
tmp
If
ml
<>
avg
Then
m2=m2-(avg-m1)
ans=ans+1
End
If
________
End
If
tmp=0
End
If
Next
k
Labe13.
Caption
=
Str
(ans)
End
Sub
答案:B
①Val
(Textl.
text)
②tmp
10+Val(c)
③m1=m2
详解:本题考查VB综合能力。(1)Click是事件名。(2)从text1中得到堆数,填入Val
(Textl.text)。(3)If
c
<>“,”,如果c不是逗号,则累加,将整个数字取出放入tmp,注意数据类型,填入tmp
10+Val(c)。(4)继续运算,m1重新赋值,故填入m1=m2。
30.小王利用循环排序思想编写了一个VB程序,用于计算下一轮比赛的出场顺序。从数据库中读取本轮比赛的人员姓名存在数组xm中,成绩存在数组cj中(成绩均不重复)。编程实现将这些成绩进行循环升序排列。要求最低成绩的位置不变,然后依次进行升序排序,即从最小值开始向下尾首相连形成升序数列。程序运行界面如图所示。点击“排序”按钮,完成循环升序排序。
(1)“排序”按钮的对象名为_
(2)请在划线处填入合适代码。
(3)加框处代码出错,请改正。
Dim
xm(1
to
100)As
String
,cj(1
to
100)As
Integer
Dim
flag(1
to
100)As
Boolean
Private
Sub
Form_
Load(
)
'从数据库中读取数据,存储到相应数组中,并输出在列表框Listl。第i个人,姓名为xm(i),成绩为cj(i)。人员数量存储到变量n中()。代码略
End
Sub
Private
Sub
Cmd__Click()
Dim
min
As
Integer,
pmin
As
Integer
min
=
cj(1):
pmin
=
1
For
i=2
To
n
If
cj(i)
<
min
Then
min
=
cj(i):__①__
Next
i
flag(pmin)
=
True
pmin=
pmin
+
1
If
pmin=n+1
Then
pmin=1
For
i=1
To
n-2
k
=
pmin
For
j=1
To
n
If
②
Then
k=
j
Next
j
If
k
<>
pmin
Then
t
=
cj(k):
cj(k)
=
cj(pmin):
cj(pmin)
=
t
C
=
xm(k):
xm(k)
=
xm(pmin):
xm(pmin)
=
c
End
If
flag(pmin)
=
True
pmin=pmin+1
Next
i
'将排序后的人员姓名和成绩输出到列表框List2中,代码略。
End
Sub
答案:(1)
Cmd
(2)①pmin=i
②cj(j)
<
cj(k)
And
flag(j)
=
False
(3)pmin
=
pmin
Mod
n+
1
详解:本题考查VB排序算法。(1)根据代码,排序按钮的对象名为Cmd。(2)将最小值的位置记录在pmin,故填入pmin=i。(3)寻找最小值,并且要保证该值之前没有挑选过,所以填入cj(j)And
flag(j)=False。(4)根据题干是循环排序,所以位置也要构成循环,根据约瑟夫环状类似结构,填入pmin=pmin
Mod
n+1
31.给定一个序列
a,这个序列由
n
个数组成(n
个数依次保存
在数组
a(1)
~a(n)中),现在给定一个整数
p,要求将序列
a的前
p
个数与后
n-p
个数对调,且不改变这
p
个数(和
n-p个数)之间的相对位置?
例如长度为
5
的序列
1,2,3,4,5,当
p=2
时重排的结果为
3,4,5,1,2?
我们可以用两种不同的方法来实现这一目的:
方法一:逐个地将数组
a
的后
n-p
个数依次移动到前面去?
数组
a:
1
2
3
4
5
3
1
2
4
5
3
4
1
2
5
3
4
5
1
2
方法二:将前
p
个数看作一个区间,后
n-p
个数看作另一个区间,依次将数交换,同时缩小区间的大小;若某一个区间达到末尾,则调整区间的范围,直到两个区间刚好同时达到末尾,即调整结束?
数组
a:
互换并调整区间:第一个区间结束且第二个区间还有元素,调整区间
1
和区间
2
的范围,如图将区间
1
调整为[3,4],区间
2
调整为[5:5]?
互换并调整区间:第二个区间结束且第一个区间还有元素,仅调整第
1
个区间的起始位置?
互换并结束:两个区间同时到达末尾?
3
4
5
1
2
小明依据上面的方法设计了
VB
程序如下:
Dim
a(1
To
100),
i
As
Integer,
j
As
Integer,
tmp
As
Integer,
p
As
Integer
Dim
start1
As
Integer,
end1
As
Integer,
start2
As
Integer,
end2
As
Integer
'将序列保存到数组
a中,序列长度保存到
n
中,移动数字的个数保存在
p
中
Private
Sub
Command2_Click()
'用方法一实现
For
i
=
p
+
1
To
n
tmp
=
a(i)
For
j
=
i
To
①
Step
-1
a(j)
=
a(j
-
1)
Next
j
②
=
tmp
Next
i
End
Sub
Private
Sub
Command3_Click()
'用方法二实现
start1
=
1:
end1
=
p
'第
1
个区间的起始状态
start2
=
p
+
1:
end2
=
n
'第
2
个区间的起始状态
i
=
start1:
j
=
start2
Do
While
③
i
=
start1:
j
=
start2
Do
While
i
<=
end1
And
j
<=
end2
tmp
=
a(i):
a(i)
=
a(j):
a(j)
=
tmp
i
=
i
+
1:j
=
j
+
1
Loop
If
i
<=
end1
Then
'第
2
个区间结束且第
1
个
区间还有元素
start1
=
i
ElseIf
j
<=
end2
Then
'第
1
个区间结束且第
2
个区间还有元素
start1
=
i:
④
start2
=
j
End
If
Loop
End
Sub
请回答下列问题:
(1)若序列为:9,8,13,22,7,6,5,37,6,p=4
时,使用方法一,则
a(3)的值依次是
13,_________________(用逗号隔开,顺序填写曾存储过的值)?
(2)请在划线处填入合适的代码?
①_______________________
②_______________________
③_______________________
④_______________________
答案:8,9,5
i
-
p
+
1
a(j)或a(i-p)
i
<=
n
end1=
i
+
p
-
1
【解析】
【分析】
【详解】
本题考查VB程序的基本结构。(1)使用方法一,逐个地将数组
a
的后
n-p
个数依次移动到前面去,所以a(3)
曾存储过的值依次是
13,8,9,5。(2)①循环变量j的范围从i到i-p+1是随着i的变化而变化的。②a(p+1)中的值是要放到a(1)中的,a(p+2)中的值是要放到a(2)中,……,所以a(j)=tmp。③当第一区间的开始值和序列长度n重合时,即i=n时数据才能完成最后的交换,所以Do
While循环的循环条件是i<=n。④因第1个区间结束且第2个区间还有元素,所以第一区间的长度没有变,start1
=
i,则end1=
i
+
p
–
1。
21世纪教育网
www.21cnjy.com
精品试卷·第
2
页
(共
2
页)
21世纪教育网(www.21cnjy.com)