高中信息技术《算法与程序的设计》练习.docx
《高中信息技术《算法与程序的设计》练习.docx》由会员分享,可在线阅读,更多相关《高中信息技术《算法与程序的设计》练习.docx(17页珍藏版)》请在冰豆网上搜索。
高中信息技术《算法与程序的设计》练习
《算法与程序设计》练习
(满分:
100分)
说明:
本卷分为第一卷和第二卷两部分。
第一卷为客观题,含单选题和判断题,其中单选题30小题,共45分;判断题20小题,共20分。
第二卷为操作题,共3题,第1题15分,第2题10分,第3题10分,共35分。
一、单选题
1、(1.5分)下面是4位同学为解决问题编写的程序,完全正确的是()。
同学1:
某同学从17岁开始栽了1棵树,以后每年都比前一年多栽1棵,他要栽够100棵树,最小得多少岁?
程序如下:
PrivateSubCommand1_Click()
DimAgeAsInteger,TreeAsInteger
Do
Age=17
Age=Age+1
Tree=Tree+Age(Tree应该是树的累加数,这样合适吗?
)
LoopUntilTree=100
PrintAge&“岁”
EndSub
同学2:
计算S=1×2×3×4×5×6×7×8×9的值。
程序如下:
PrivateSubCommand1_Click()
DimSAsInteger
(S没有初始值,默认为0)
Fora=1To10(终值设置错误)
S=S*a
Nexta
Print“S=”&S
EndSub
同学3:
求解方程ax+b=0。
程序如下:
PrivateSubCommand1_Click()
DimAAsSingle,BAsSingle
InputBox("A=")(从键盘得到的数据赋给谁了?
)
InputBox("B=")
X=-B/A
PrintX
EndSub
同学4:
计算S=1+(1+2)+(1+2+3)+…+(1+2+3+…+100)的值。
程序如下:
PrivateSubCommand1_Click()
DimiAsInteger,TAsLong,SAsLong
S=0:
T=0
Fori=1to100
T=T+i(T的值为:
1+2+3+……n)
S=S+T
NextI
Print"S=";S
EndSub
A、同学1 B、同学2 C、同学3 D、同学4
2、(1.5分)
下面的4个VB程序段能使变量a、b、c的值全部相同的是()。
程序一:
a=1:
b=2:
c=3
a=b
b=c
c=a
程序二:
a=1:
b=2:
c=3
c=a
c=b
c=c
程序三:
a=1:
b=2:
c=3
c=a
b=c
程序四:
a=1:
b=2:
c=3
c=a=b
A、程序一 B、程序二 C、程序三 D、程序四
3、(1.5分)
如果要改变窗体的标题,则需要设置的属性是()
A、Caption B、名称 C、Font D、Visible
4、(1.5分)
已知数组D的1到N号元素已经赋入常数值,下面4个程序段都把这N个常数值输出,其中不能保证输出的数据是由小到大的程序段是哪个?
()。
程序一:
fori=1ton-1
Min=D(i):
M=i
forj=i+1ton
ifD(j)<MinthenMin=D(j):
M=j
Nextj
k=D(i):
D(i)=Min:
D(M)=k
NextI
fori=1toN
printD(i);
Nexti
程序二:
Fori=1Ton-1
Forj=nToi+1Step-1
Ifd(j)<d(j-1)ThenM=d(j):
d(j)=d(j-1):
d(j-1)=M
Nextj
Nexti
fori=1toN
printD(i);
Nexti
程序三:
fori=1ton-1
forj=i+1ton
ifD(j)<D(i)thenM=D(j):
D(j)=D(i):
D(i)=M
Nextj
Nexti
fori=1toN
printD(i);
Nexti
程序四:
Fori=1Ton-1
Forj=i+1Ton
Ifd(j)<d(j-1)ThenM=d(j):
d(j)=d(j-1):
d(j-1)=M
Nextj
Nexti
fori=1toN
printD(i);
Nexti
A、程序一 B、程序二 C、程序三 D、程序四
(调试程序时请将下列代码加在源代码的前面
Dimd(5)AsInteger
Fori=1To5
d(i)=InputBox("D("&i&")=")
Next
N=5)
5、(1.5分)
以下程序运行后输出的结果是()。
PrivateSubCommand1_Click()
a=71*72
P=10000\a+1(“\”为取整运算)
Fori=P*aTo11111Stepa
c=i\100Mod10
Ifc=2ThenPrintI;
Nexti
EndSub
A、10224 B、10224 56232 C、56232 D、15336
6、(1.5分)
下面的4个程序在运行时都会出错,其中不属于语法错误的是()。
程序一:
fori=-10to10
s*1=s(赋值语句中“=”的左面只能是变量)
nextI
prints
程序二:
fori=-10to10
s=s+1/i(除数不能为零)
nextI
prints
程序三:
fori=-10to10
s=s+i*(i+1)
nexts(循环变量不一致)
prints
程序四:
fori=-10to10step2
s=s+1
nexti
prints
A、程序一 B、程序二 C、程序三 D、程序四
7、(1.5分)
面向对象的基本概念包括对象、()、消息和继承。
A、方法 B、事件 C、类 D、属性
8、(1.5分)
以下程序段运行后S的值是()。
s=0
Fori=1To14
x=3*i
IfxMod3=0Thens=s+1
Nexti
A、0 B、4 C、5 D、14
9、(1.5分)
当a=5,b=7,c=-2,d=1时,下列结果为False的是()。
A、a+b>c+dAnda>=5OrNotc>0Ord<0
B、c+d>a+bAnda>=5OrNotc>0Andd>0
C、a+d<b+cAnda>=5OrNotc<0Andd<0
D、a+b>c+dAnda<5OrNotc>0Ord<0
(运算符的优先级:
算术运算(符合四则运算法则)>比较运算>逻辑运算(Not>And>or))
10、(1.5分)
运行如下程序段可输出由“*”组成的()。
ForX=1To4
PrintSpace(4)&"*****"
NextX
A、矩形
B、平行四边形
C、三角形
D、梯形
11、(1.5分)
用折半查找法(二分查找法)从数列3,6,7,10,12,16,25,30,75中找到数据25的最少查找次数是()。
A、2
B、3
C、4
D、7
12、(1.5分)
如果A=30,B=40,执行A=A+B:
B=A-B:
A=A-B语句后,A、B的值是()。
(交换两个变量数据的另一方法)
A、30、40
B、40、40
C、40、30
D、30、30
13、(1.5分)
用冒泡排序法对数据7,6,3,9,2从大到小排序,第2趟结果是()。
A、9,6,3,7,2
B、7,9,6,3,2
C、9,7,3,6,2
D、9,7,6,3,2
14、(1.5分)
以下程序段运行时语句k=k+1执行次数为()次。
k=-20
do
k=k+1
loopwhile(k=0)
A、20
B、无数次
C、1
D、0
15、(1.5分)
数列2,4,8,16,32,……的递推公式为()。
A、f(n)=n*2
B、f(n)=f(n-1)*2
C、f(n)=2^n
D、f(n)=f(n-1)+2
16、(1.5分)
下列程序段运行后X的值是()。
x=0
Fori=1To5
Forj=iTo5
x=x+1(循环次数计数器)
Nextj
Nexti
A、0
B、5
C、10
D、15
17、(1.5分)
若X=False,执行IfXThenX=0ElseX=1后X的结果为()。
A、False
B、编译错误
C、1
D、0
18、(1.5分)
模块化程序设计方法反映了结构化程序设计的()基本思想
A、自顶而下、逐步求精
B、面向对象
C、自定义函数、过程
D、可视化编程
19、(1.5分)
程序段如下:
c="1234"
Fori=1To4
Print_____,
Next
如果要让程序运行后得到如下结果:
1234123121
则在下划线处应填入的容为()。
(提示:
Right(x,n):
从字符串右面取n个字符,Left(x,n):
从字符串左边取n个字符)
A、Right(c,5-i)
B、Left(c,5-i)
C、Right(c,i-5)
D、Left(c,i-5)
20、(1.5分)
要从n个数据元素中顺序查找一个元素,最少查找次数是()。
(最多查找次数呢?
)
A、1
B、n
C、n/2
D、lgn
21、(1.5分)
在流程图中表示算法中变量的计算与赋值时使用()图形框。
A、菱形框
B、矩形框
C、圆形框
D、平行四边形框
22、(1.5分)
VB语言中,下列各种基本数据类型说明符中表示整型数的是()。
A、Integer
B、Boolean
C、Single
D、String
23、(1.5分)
以下哪个是合法的变量名()。
(变量的命名约定:
1、以字母或汉字开头,不能以数字或其他字符开头;2、只能由字母、汉字、数字俄下划线组成,不能含有小数点、空格等字符;3、字符个数不超过255个;4、不能使用VB中的保留字)
A、sqr
B、2pai
C、c+j
D、abc
24、(1.5分)
程序的基本结构有顺序结构、选择结构和()。
A、逻辑结构
B、模块结构
C、循环结构
D、层次结构
25、(1.5分)
VB函数Right()从字串右端开始取部分字串,那么Right("VisualBasic6.0",8)的值为()。
A、VisualB
B、Visual
C、VisualBa
D、asic6.0
26、(1.5分)
VB中保存窗体文件的文件扩展名为()。
A、vbp
B、frm
C、doc
D、pas
27、(1.5分)
人们利用计算机解决问题的基本过程一般有如下四个步骤(①~④),请按各步骤的先后顺序在下列选项中选择正确的答案()。
①调试程序②分析问题③设计算法④编写程序
A、①②③④
B、②③①④
C、③②④①
D、②③④①
28、(1.5分)
程序设计语言的发展历程中不包括()。
A、机器语言
B、自然语言
C、汇编语言
D、高级语言
29、(1.5分)
VB表达式2*8Mod12+4的值是()。
(Mod为取余运算)
A、8
B、22
C、20
D、0
30、(1.5分)
下面关于算法的说法错误的是()。
A、算法必须有输出
B、算法必须在计算机上用某种语言实现
C、算法不一定有输入
D、算法必须在有限步执行后能结束
二、判断题
31、(1分)
运行程序时,程序中的每一条语句至少运行一次。
(错误。
反例:
注释语句)
32、(1分)
VB表达式(A+B+C)的值一定是数值型数据。
(错误。
字符型变量也可以进行“+”、“-”运算)
33、(1分)
高级语言是能够被计算机直接接受和执行的计算机语言。
(错误。
只有机器语言才能被计算机直接接受和执行)
34、(1分)
机器语言是程序设计的核心,是程序设计的灵魂。
(错误。
算法+数据结构=程序)
35、(1分)
列举一切与命题相关的情况,然后根据问题设定的条件,逐个加以检查,找到满足条件的解答的方法称为递归算法。
(错误。
这是“穷举法”的基本思想)
36、(1分)
在程序循环结构中必须设定终止循环的条件,否则会出现死循环。
(错误。
终值条件一定要有,但不一定明确“设定”,如,For/Next循环)
37、(1分)
VB中的事件驱动就是当应用程序中某对象的特定事件发生时,通过执行一段程序代码,来完成该特定事件所对应的操作。
38、(1分)
对一个排好序的数组来说,要查找一个元素,可以用顺序查找法,也可以用二分查找法,其中二分查找一定比顺序查找快。
(错误。
不同的查找方法解决不同的问题,效率高低并不绝对)
39、(1分)
递归过程一般通过函数或子过程来实现。
40、(1分)
对于多种情况的选择问题,只能采用多重选择语句来处理,不能使用条件语句。
(错误。
可以采用If语句的嵌套)
41、(1分)
通过分析问题中各要素之间的关系,用最简练的语言或形式化的符号来表达它们的关系,得出解决问题所需的表达式,然后设计程序求解问题的方法称为解析法。
42、(1分)
在VB程序设计中,方法对应于对象部的一段程序代码,既可能是一个函数,也可能是一个过程。
43、(1分)
控件是应用程序的图形用户界面中显示可供用户操纵,并可控制应用程序的图形界面元素,是VB可视化编程的基本操作对象。
44、(1分)
多重循环的原则是:
外层循环与层循环不必层层相套,循环体之间可以交叉。
(错误。
外循环必须完全包含循环,也就是说外层Next语句的位置不能交叉)
45、(1分)
VB中所有对象的属性只能在属性窗口中设定。
(错误。
可以在程序中设定。
如:
修改command1的caption属性为“计算”可以用comand1.caption=“计算”实现)
46、(1分)
在程序设计中容易出现的错误主要有:
编辑时出现的错误、编译时出现的错误、运行时的错误和逻辑错误。
47、(1分)
已知三角形的两边分别为a、b,它们的夹角为60度,圆周率取3.14,在VB中可用公式(a*b*Sin(60*3.14/180)/2)求出该三角形的面积。
48、(1分)
在VB中,可将调试好的程序编译生成能够脱离VB集成环境在Windows平台上独立运行的可执行文件。
49、(1分)
在VB中,Int(100*Rnd+1)的取值围是1~100之间的所有实数(包括1和100)
(错误。
是“整数”而不是“实数”)
50、(1分)
算法是有限步骤求解问题所使用的一组定义明确的规则。
三、操作题
51、(15分)
有一数列A1、A2、A3、A4、A5、......,已知A1=0、A2=1、A3=1、A4=A1+2*A2+A3、A5=A2+2*A3+A4、......,依此类推编程输出第23项的值。
PrivateSubCommand1_Click()
Printf(23)
EndSub
PrivateFunctionf(nAsInteger)AsSingle
Ifn=1Then
f=0
Else
Ifn=2Orn=3Then
f=1
Else
f=f(n-3)+2*f(n-2)+f(n-1)
EndIf
EndIf
EndFunction
52、(10分)
编程求12709到45368之间有多少个其各位数字之和为5的倍数的正整数。
PrivateSubCommand1_Click()
s=0
Fori=12709To45368
a=Int(i/10000)
b=Int((i-a*10000)/1000)
c=Int((i-a*10000-b*1000)/100)
d=Int((i-a*10000-b*1000-c*100)/10)
e=i-a*10000-b*1000-c*100-d*10
If(a+b+c+d+e)Mod5=0Thens=s+1
Next
Prints
EndSub
53、(10分)
已知三角形的两边分别为13、17,它们的夹角为36度,圆周率取3.14,编程求该三角形的面积(精度:
四舍五入保留小数点后6位)。
PrivateSubCommand1_Click()
Print(13*17*Sin(36*3.14/180)/2)
EndSub
参考答案
一、单选题:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
D
C
A
D
A
B
C
D
C
A
A
C
C
C
C
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
D
C
A
B
A
B
C
D
C
D
B
D
B
A
B
二、判断题:
31
32
33
34
35
36
37
38
39
40
×
×
×
×
×
×
√
×
√
×
41
42
43
44
45
46
47
48
49
50
√
√
√
×
×
√
√
√
×
√
三、操作题
51、 答案:
5736961
PrivateSubCommand1_Click()
Printf(23)
EndSub
Functionf(nAsInteger)AsSingle
Ifn=1Then
f=0
Else
Ifn=2Orn=3Then
f=1
Else
f=f(n-3)+2*f(n-2)+f(n-1)
EndIf
EndIf
EndFunction
52、 答案:
6532
s=0
Fori=12709To45368
a=Int(i/10000)
b=Int((i-a*10000)/1000)
c=Int((i-a*10000-b*1000)/100)
d=Int((i-a*10000-b*1000-c*100)/10)
e=i-a*10000-b*1000-c*100-d*10
If(a+b+c+d+e)Mod5=0Thens=s+1
Next
Prints
53、答案:
64.921792
Print(13*17*Sin(36*3.14/180)/2)