(满分:100分)
说明:本卷分为第一卷和第二卷两部分。第一卷为客观题,含单选题和判断题,其中单选题30小题,共45分;判断题20小题,共20分。第二卷为操作题,共3题,第1题15分,第2题10分,第3题10分,共35分。
一、单选题
1、(1.5分)下面是4位同学为解决问题编写的程序,完全正确的是( )。
同学1:某同学从17岁开始栽了1棵树,以后每年都比前一年多栽1棵,他要栽够100棵树,最小得多少岁?程序如下:
Private Sub Command1_Click( )
Dim Age As Integer,Tree As Integer
Do
Age=17
Age=Age+1
Tree=Tree+Age(Tree应该是树的累加数,这样合适吗?)
Loop Until Tree=100
Print Age & “岁”
End Sub
同学2:计算S=1×2×3×4×5×6×7×8×9的值。程序如下:
Private Sub Command1_Click( )
Dim S As Integer
(S没有初始值,默认为0)
For a = 1 To 10(终值设置错误)
S = S * a
Next a
Print “S=” & S
End Sub
同学3:求解方程ax+b=0。程序如下:
Private Sub Command1_Click( )
Dim A As Single,B As Single
InputBox("A=")(从键盘得到的数据赋给谁了?)
InputBox("B=")
X=-B/A
Print X
End Sub
同学4:计算S=1+(1+2)+(1+2+3)+…+(1+2+3+…+100)的值。程序如下:
Private Sub Command1_Click()
Dim i As Integer,T As Long,S As Long
S=0:T=0
For i=1 to 100
T=T+i(T的值为:1+2+3+……n)
S=S+T
Next I
Print "S="; S
End Sub
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个常数值输出,其中不能保证输出的数据是由小到大的程序段是哪个?( )。
程序一:
for i=1 to n-1
Min=D(i):M=i
for j=i+1 to n
if D(j)<Min then Min=D(j):M=j
Next j
k=D(i):D(i)=Min:D(M)=k
Next I
for i=1 to N
print D(i);
Next i
程序二:
For i = 1 To n - 1
For j = n To i + 1 Step -1
If d(j) < d(j - 1) Then M = d(j): d(j) = d(j - 1): d(j - 1) = M
Next j
Next i
for i=1 to N
print D(i);
Next i
程序三:
for i=1 to n-1
for j=i+1 to n
if D(j)<D(i) then M=D(j):D(j)=D(i):D(i)=M
Next j
Next i
for i=1 to N
print D(i);
Next i
程序四:
For i = 1 To n - 1
For j = i+1 To n
If d(j) < d(j - 1) Then M = d(j): d(j) = d(j - 1): d(j - 1) = M
Next j
Next i
for i=1 to N
print D(i);
Next i
A、程序一 B、程序二 C、程序三 D、程序四
(调试程序时请将下列代码加在源代码的前面
Dim d(5) As Integer
For i = 1 To 5
d(i) = InputBox("D(" & i & ")=")
Next
N = 5)
5、(1.5分)
以下程序运行后输出的结果是( )。
Private Sub Command1_Click( )
a = 71 * 72
P = 10000 \\ a + 1(“\”为取整运算)
For i = P * a To 11111 Step a
c = i \\ 100 Mod 10
If c = 2 Then Print I;
Next i
End Sub
A、10224 B、10224 56232 C、56232 D、15336
6、(1.5分)
下面的4个程序在运行时都会出错,其中不属于语法错误的是( )。
程序一:
for i=-10 to 10
s*1=s(赋值语句中“=”的左面只能是变量)
next I
print s
程序二:
for i=-10 to 10
s=s+1/i(除数不能为零)
next I
print s
程序三:
for i=-10 to 10
s=s+i*(i+1)
next s(循环变量不一致)
print s
程序四:
for i=-10 to 10 step 2
s=s+1
next i
print s
A、程序一 B、程序二 C、程序三 D、程序四
7、(1.5分)
面向对象的基本概念包括对象、( )、消息和继承。
A、方法 B、事件 C、类 D、属性
8、(1.5分)
以下程序段运行后S的值是( )。
s = 0
For i = 1 To 14
x = 3 * i
If x Mod 3 = 0 Then s = s + 1
Next i
A、0 B、4 C、5 D、14
9、(1.5分)
当a=5,b=7,c=-2,d=1时,下列结果为False的是( )。
A、a + b > c + d And a >= 5 Or Not c > 0 Or d < 0
B、c + d > a + b And a >= 5 Or Not c > 0 And d > 0
C、a + d < b + c And a >= 5 Or Not c < 0 And d < 0
D、a + b > c + d And a < 5 Or Not c > 0 Or d < 0
(运算符的优先级:算术运算(符合四则运算法则)>比较运算>逻辑运算(Not>And>or))
10、(1.5分)
运行如下程序段可输出由“*”组成的( )。
For X = 1 To 4
Print Space(4) & "*****"
Next X
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
loop while (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
For i = 1 To 5
For j = i To 5
x = x + 1(循环次数计数器)
Next j
Next i
A、0
B、5
C、10
D、15
17、(1.5分)
若X = False,执行If X Then X = 0 Else X = 1 后X的结果为( )。
A、False
B、编译错误
C、1
D、0
18、(1.5分)
模块化程序设计方法反映了结构化程序设计的( )基本思想
A、自顶而下、逐步求精
B、面向对象
C、自定义函数、过程
D、可视化编程
19、(1.5分)
程序段如下:
c ="1234"
For i = 1 To 4
Print _____,
Next
如果要让程序运行后得到如下结果:
1234 123 12 1
则在下划线处应填入的内容为( )。
(提示: 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("Visual Basic 6.0", 8)的值为( )。
A、Visual B
B、Visual
C、Visual Ba
D、asic 6.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 * 8 Mod 12 + 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项的值。
Private Sub Command1_Click()
Print f(23)
End Sub
Private Function f(n As Integer) As Single
If n = 1 Then
f = 0
Else
If n = 2 Or n = 3 Then
f = 1
Else
f = f(n - 3) + 2 * f(n - 2) + f(n - 1)
End If
End If
End Function
52、(10分)
编程求12709到45368之间有多少个其各位数字之和为5的倍数的正整数。
Private Sub Command1_Click()
s = 0
For i = 12709 To 45368
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) Mod 5 = 0 Then s = s + 1
Next
Print s
End Sub
53、(10分)
已知三角形的两边分别为13、17,它们的夹角为36度,圆周率取3.14,编程求该三角形的面积(精度:四舍五入保留小数点后6位)。
Private Sub Command1_Click()
Print (13 * 17 * Sin(36 * 3.14 / 180) / 2)
End Sub
参
一、单选题:
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
Private Sub Command1_Click()
Print f(23)
End Sub
Function f(n As Integer) As Single
If n = 1 Then
f = 0
Else
If n = 2 Or n = 3 Then
f = 1
Else
f = f(n - 3) + 2 * f(n - 2) + f(n - 1)
End If
End If
End Function
52、 答案: 6532
s = 0
For i = 12709 To 45368
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) Mod 5 = 0 Then s = s + 1
Next
Print s
53、答案: .921792
Print (13 * 17 * Sin(36 * 3.14 / 180) / 2)