专项测试一 程序设计基础
一、选择题
1.下列问题不能用算法描述的是( )
A.求所有自然数之和
B.将四位十进制数转换为对应的二进制数
C.将100个实数按升序排列
D.求100个整数中的最大值和最小值
解析 本题主要考查的是算法特征。选项A违背了算法的有穷性特征,因为自然数是无穷的,因此不能求出所有自然数之和,故答案为A。
答案 A
2.下列可作为VB变量名的是( )
A.3D B.X_Y
C.X+Y D.And
解析 本题主要考查的是变量的命名。
答案 B
3.有10个数据23、15、51、36、78、47、39、9、88、96依次存放在数组a(1 to 10)中,使用如下程序段找出最大值:
max=a(1)
For i=2 to 10
Next i
当方框内的语句执行完6次后(此时循环变量i的值为7),变量max的值是( )
A.23 B.39
C.78 D.96
解析 本题考查的是循环结构。该程序的功能是“打擂台”法求最大值,方框内的程序刚好执行完6次,则表示在前7个数找出的最大值,即为78。
答案 C
4.有如下VB程序段:
a=12
b=54
a=a+b
b=a-b
a=a-b
该程序段执行后,变量a,b的值分别是( )
A.12,54 B.54,12
C.12,12 D.54,54
解析 本题主要考查的是赋值语句。本程序段的功能是交换变量a、b的值,因此答案为B。
答案 B
5.变量c中存储着一个字符,能够正确判断出该字符为数字字符“0”~“9”的VB表达式是( )
A.c>=“0” And c<=“9”
B.c>=“0” Or c<=“9”
C.Asc(c)>=0 And Asc(c)<=9
D.Asc(c)>=0 Or Asc(c)<=9
解析 本题主要考查的是VB表达式。
答案 A
6.字符串变量a、b的值分别为“12”、“34”,则表达式a+b的值是( )
A.“12+34” B.“1234”
C.46 D.“46”
解析 本题主要考查的是字符串运算。两个字符串的“+”运算,是指将两个字符串进行拼接,因此答案为B。
答案 B
7.字符串变量s的值为“ZheJiangHangZhou”,下列VB表达式的值是“Hang”的是( )
A.Mid(s,8,4) B.Mid(s,4,8)
C.Mid(s,9,4) D.Mid(s,4,9)
解析 本题主要考查的是Mid函数。函数Mid(s,i,j)的功能是取字符串s中从第i个字符开始的j个字符,因此答案为C。
答案 C
8.将数学表达式(x≠1,y≠1)写成VB表达式是( )
A.x-1/1/y-1 B. y-1/x-1
C.(y-1)/(x-1) D.1/(x-1)/(y-1)
解析 本题主要考查的是VB表达式。
答案 C
9.有如下VB程序段:
x = 0
For i = 0 To 20 Step 2
If i Mod 3 = 0 Then x = x + i
Next i
该程序段执行后,变量x的值是( )
A.12 B.18
C.36 D.60
解析 本题主要考查的是For循环。本题的功能是求20以内6的倍数之和,即x=6+12+18=36,因此答案为C。
答案 C
10.小明编写了一个统计随机数分布的VB程序,部分程序如下所示,在调试程序的时候出现如下图所示的错误信息:
n = 0
m = 0
For i = 1 To 100
If Rnd > 0.5 Then
n = n + 1
Else
m = m + 1
Next i
……
小明仔细分析该程序段后,发现其中缺少的语句是( )
A.For B.End If C.Next D.If
解析 本题主要考查的是块If结构。块If结构,以If命令开始,以End If命令结束,因此答案为B。
答案 B
11.有如下VB程序段:
Dim k As Integer,s As Integer
k = 0: s = 0
Do While k >= 10
k = k + 1
s = s + k
Loop
该程序段执行后,变量s的值是( )
A.0 B.1 C.10 D.11
解析 本题主要考查的是Do While循环。变量k的初值为0,不满足循环条件“k >= 10”,因此不执行循环体语句,因此变量s的值仍为0,故答案为A。
答案 A
12.小明在设计VB程序时所使用单选框对象的属性窗口如下图所示,他想编写该单选框单击事件的处理过程,则该事件处理过程名是( )
A.OptionButton_Click B.男_Click
C.Option1_Click D.单选框_Click
解析 本题主要考查的是VB对象。事件处理过程名的一般形式为:对象名_事件名,从属性窗口可知,该单选框的名称为Option1,鼠标单击事件名为Click,因此该事件处理过程名为Option1_Click,答案为C。
答案 C
13. 某算法的部分流程图如下图所示,执行这部分流程后,输出b,s的值分别是( )
A.72,138 B.72,210
C.87,210 D.87,297
解析 本题主要考查的是循环结构流程图。当b>72时,循环结束并输出,因此当b>87时,变量s的值为12+27+42+57+72=210,因此答案为C。
答案 C
14.有如下VB程序段:
y = 0
1s = Len(Text1.Text)
For i = 1 To 1s
c = Mid(Text1.Text, i, 1)
If c >= “0” And c <= “9” Then x =
Val(c): a(x) = a(x) + 1
Next i
For i = 0 To 9
If a(i) > 0 Then y = y + 1
Next i
Label1.Caption = Str(y)
End Sub
A数组各元素的初值为0,程序运行时,在文本框Text1中输入内容“pi=3.1415926535”,单击按钮Command1后,标签Label1中显示的内容是( )
A.6 B.7
C.8 D.9
解析 本题主要考查的是循环结构。本程序的功能是统计字符串包含的不同数字字符的个数,字符符“pi=3.1415926535”中共包含不同的数字字符有“1、2、3、4、5、6、9”,共7个,因此答案为B。
答案 B
二、非选择题
15.下列VB程序运行时,单击命令按钮Command1后,语句①被执行了________次,文本框Text1中显示的内容是__________。
Private Sub Command1_Click()
Dim a(1 To 5) As Integer.i As Integer
a(1)=1
a(2)=1
For i=3 To 5
a(i)=2*a(i-1)+a(i-2) ′语句①
Next i
Text1.Text=Str(a(5))
End Sub
解析 本题主要考查的是循环结构。当i=3、4、5时执行循环,所以共3次。
a(1)
a(2)
a(3)
a(4)
a(5)
1
1
3
7
17
因此文本框Text1中输出a(5)的值为17。
答案 3 17
16.下列VB程序运行时,单击命令按钮Command1后,文本框Text1中显示的内容是________,文本框Text2中显示的内容是________。
Private Sub Command1_Click()
Dim a(1 To 3) As Integer, k As Integer, t As Integer, s As Integer
a(1) = 12: a(2) = 41: a(3) = 2
s = 0
For k = 2 To 3
If a(k) > a(1) Then
t = a(1): a(1) = a(k): a(k) = t
s = s + 1
End If
Next k
Text1.Text = Str(a(1))
Text2.Text = Str(s)
End Sub
解析 本题考查的是循环结构及数组的应用。本程序的功能是求数组a的最大值,并将最大值存放在数组元素a(1)中;变量s表示统计a数组中比a(1)(当前最大值)大的元素的个数。
答案 41 1
17.编“求最大数最小数”程序,实现如下功能:在文本框Text1中输入一个正整数n,单击“分析”按钮Command1后,程序将生成n个随机整数,显示在列表框List1中;并计算这n个随机整数中的最大数、最小数及它们所在的位置,最后求出这n个数的平均值。程序运行界面如下图所示。
(1)要使程序运行时,清空文本框Text1中的内容,可在Form_Load事件过程添加语句__________(单选,填字母:A.Text1.Caption = “ ” / B.Text1.Text=“ ” / C. Text1.Font=“ ”)。
(2)实现上述功能的VB程序如下,请在划线处填入合适的代码。
Private Sub Command1_Click()
Dim n As Integer, i As Integer, x As Integer, sum As Integer, avg As Single
Dim max As Integer, min As Integer, maxi As Integer, mini As Integer
n = Val(Text1.Text)
x = Int(Rnd * 100) + 1
List1.AddItem Str(x)
max = x : min = x
maxi = 1: mini = 1
______①______
For i = 2 To n
x = Int(Rnd * 100) + 1
List1.AddItem Str(x)
If x > max Then max = x: maxi = i
If ______②______ Then min = x: mini = i
sum = sum + x
Next i
______③______
List2.AddItem “最大数为:” + Str(max) + “,所在位置为:” + Str(maxi)
List2.AddItem “最小数为:” + Str(min) + “,所在位置为:” + Str(mini)
List2.AddItem “平均值为:” + Str(avg)
End Sub
解析 本题主要考查的是VB的循环结构语句。本程序的功能是求n个随机整数的最大值、最小值和平均值。(1)要清空文本框Text1中的内容,可用语句Text1.Text=“ ”;(2)产生这个随机整数后,将它存放在sum中,因此①处语句为sum = x;②处条件表示求最小值时的情况,因此②处语句应为x答案 (1)B (2)①sum = x ②x < min
③avg = sum / n
18.现要求编写VB程序实现如下功能:在文本框Text1中输入正整数n,单击命令按钮Command1后,在文本框Text2中会显示一个有规律的数字串,形式为“1 2 3 … n-1 n n-1…3 2 1”。 例如n=6时,显示的数字串为“1 2 3 4 5 6 5 4 3 2 1”。按此要求编写的程序如下,但加框处代码有错,请改正。
Private Sub Command1_Click()
Dim n As Integer, i As Integer, s As String
n = Val(Text1.Text)
s = “ ”
For i = 1 To ′(1)
If i <= n Then s = s + Str(i) Else
′(2)
Next i
Text2.Text= s
End Sub
程序中加框(1)处应改正为_____________________________________________;
加框(2)处应改正为_________________________________________________。
解析 本题主要考查的是阅读程序的能力。变量i表示共输出的数字字符的个数,总数字字符个数为2*n-1,因此(1)处代码修改为2*n-1;当i<=n时,表示输出字符1~n,当i>n时,表示输出后半段的数字字符,后半段的数字字符分别为2*n-1~1,因此代码为2*n-i。
答案 (1)2*n-1 (2)s = s + Str(2 * n - i)
19.下列VB程序的功能是:程序运行时,在文本框Textin中输入正整数n.单击命令按钮Command1后,统计1至n 的整数中包含数字2的整数个数,并在文本框Textout中输出结果,若n=20,有2、12和20三个整数包含数字2,则文本框Textout中输出“3”。
实现上述功能的VB程序如下,请在划线处填入合适的代码。
Private Sub Command1_Click()
Dim i As Long, n As Long, t As Long
Dim s As Long ′s用于统计1到n之间包含数字2的整数个数
Dim k As Boolean
s = 0
n = Val(Textin.Text)
For i = 1 To n
k = False
t = i
Do While Not k And t > 0
________①______
t = t 10
Loop
If k Then ________②______
Next i
Textout.Text = Str(s)
End Sub
解析 本题的算法思想是:将正整数i进行数字分离,并对分离出的数字进行判断是否为2,如果包含数字2,则进行计数。①处代码表示取出整数t的个位,并判断是否为2,如果是2,则修改变量k的值为True,因此①处代码为If t Mod 10=2 Then k=True;条件If k表示当前的整数t包含数字2,因此进行计数,即②处代码为s=s+1。
答案 ①If t Mod 10=2 Then k=True
②s=s+1
20.小明设计了一个验证自由落体规律的实验:小球从高处静止状态垂直下落,用照相机每隔0.1秒拍照1次,测得实验数据如下:
拍照时刻(秒)
0.1
0.2
0.3
0.4
0.5
下落距离测量值(米)
0.049
0.195
0.44
0.785
1.225
现要求编写一个VB程序实现如下功能:单击命令按钮Command1后,由公式h=gt2(其中g=9.8米/秒2)计算出第一拍照时刻的下落距离理论值,若所有理论值与同一时刻测量值之间的相对误差都小于0.01,则认为小球在0.5秒内是作自由落体运动,此时在标签Label1中显示“验证通过”,否则显示“验证不通过”。
实现上述功能的VB程序如下,请在划线处填入合适代码。
Private Sub Command1_Click()
Dim h1(1 To 5) As Single ′h1用于存储下落距离测量值
Dim h As Single, i As Integer ′h用于存储下落距离理论值
Dim t As Single, g As Single, b As Boolean
h1(1) = 0.049: h1(2) = 0.195: h1(3) = 0.44: h1(4) = 0.785: h1(5) = 1.225
i = 1: b = True
①____
Do While i <= 5 And b
t = i / 10
h = g * t * t / 2
If ____②____Then b = False
i = i + 1
Loop
If b Then
Label1.Caption = “验证通过”
Else
Label1.Caption = “验证不通过”
End If
End Sub
解析 本题考查的是阅读程序的能力。划线①处表示给变量g赋值,根据题目可知,g=9.8,因此①处码为g=9.8;若所有理论值与同一时刻测量值之间的相对误差都小于0.01,则认为是作自由落体运动,理论值为h,测量值存储在数组元素h(i)中,根据题中公式可知,②处代码为Abs(h-h1(i))/h>=0.01。
答案 ①g=9.8 ②Abs(h - h1(i)) / h >= 0.01
专项测试一 程序设计基础
一、选择题
1.下列问题不能用算法描述的是( )
A.求所有自然数之和
B.将四位十进制数转换为对应的二进制数
C.将100个实数按升序排列
D.求100个整数中的最大值和最小值
2.下列可作为VB变量名的是( )
A.3D B.X_Y
C.X+Y D.And
3.有10个数据23、15、51、36、78、47、39、9、88、96依次存放在数组a(1 to 10)中,使用如下程序段找出最大值:
max=a(1)
For i=2 to 10
Next i
当方框内的语句执行完6次后(此时循环变量i的值为7),变量max的值是( )
A.23 B.39
C.78 D.96
4.有如下VB程序段:
a=12
b=54
a=a+b
b=a-b
a=a-b
该程序段执行后,变量a,b的值分别是( )
A.12,54 B.54,12
C.12,12 D.54,54
5.变量c中存储着一个字符,能够正确判断出该字符为数字字符“0”~“9”的VB表达式是( )
A.c>=“0” And c<=“9”
B.c>=“0” Or c<=“9”
C.Asc(c)>=0 And Asc(c)<=9
D.Asc(c)>=0 Or Asc(c)<=9
6.字符串变量a、b的值分别为“12”、“34”,则表达式a+b的值是( )
A.“12+34” B.“1234”
C.46 D.“46”
7.字符串变量s的值为“ZheJiangHangZhou”,下列VB表达式的值是“Hang”的是( )
A.Mid(s,8,4) B.Mid(s,4,8)
C.Mid(s,9,4) D.Mid(s,4,9)
8.将数学表达式(x≠1,y≠1)写成VB表达式是( )
A.x-1/1/y-1 B. y-1/x-1
C.(y-1)/(x-1) D.1/(x-1)/(y-1)
9.有如下VB程序段:
x = 0
For i = 0 To 20 Step 2
If i Mod 3 = 0 Then x = x + i
Next i
该程序段执行后,变量x的值是( )
A.12 B.18
C.36 D.60
10.小明编写了一个统计随机数分布的VB程序,部分程序如下所示,在调试程序的时候出现如下图所示的错误信息:
n = 0
m = 0
For i = 1 To 100
If Rnd > 0.5 Then
n = n + 1
Else
m = m + 1
Next i
……
小明仔细分析该程序段后,发现其中缺少的语句是( )
A.For B.End If C.Next D.If
11.有如下VB程序段:
Dim k As Integer,s As Integer
k = 0: s = 0
Do While k >= 10
k = k + 1
s = s + k
Loop
该程序段执行后,变量s的值是( )
A.0 B.1 C.10 D.11
12.小明在设计VB程序时所使用单选框对象的属性窗口如下图所示,他想编写该单选框单击事件的处理过程,则该事件处理过程名是( )
A.OptionButton_Click B.男_Click
C.Option1_Click D.单选框_Click
13. 某算法的部分流程图如下图所示,执行这部分流程后,输出b,s的值分别是( )
A.72,138 B.72,210
C.87,210 D.87,297
14.有如下VB程序段:
y = 0
1s = Len(Text1.Text)
For i = 1 To 1s
c = Mid(Text1.Text, i, 1)
If c >= “0” And c <= “9” Then x =
Val(c): a(x) = a(x) + 1
Next i
For i = 0 To 9
If a(i) > 0 Then y = y + 1
Next i
Label1.Caption = Str(y)
End Sub
A数组各元素的初值为0,程序运行时,在文本框Text1中输入内容“pi=3.1415926535”,单击按钮Command1后,标签Label1中显示的内容是( )
A.6 B.7
C.8 D.9
二、非选择题
15.下列VB程序运行时,单击命令按钮Command1后,语句①被执行了________次,文本框Text1中显示的内容是__________。
Private Sub Command1_Click()
Dim a(1 To 5) As Integer.i As Integer
a(1)=1
a(2)=1
For i=3 To 5
a(i)=2*a(i-1)+a(i-2) ′语句①
Next i
Text1.Text=Str(a(5))
End Sub
16.下列VB程序运行时,单击命令按钮Command1后,文本框Text1中显示的内容是________,文本框Text2中显示的内容是________。
Private Sub Command1_Click()
Dim a(1 To 3) As Integer, k As Integer, t As Integer, s As Integer
a(1) = 12: a(2) = 41: a(3) = 2
s = 0
For k = 2 To 3
If a(k) > a(1) Then
t = a(1): a(1) = a(k): a(k) = t
s = s + 1
End If
Next k
Text1.Text = Str(a(1))
Text2.Text = Str(s)
End Sub
17.编“求最大数最小数”程序,实现如下功能:在文本框Text1中输入一个正整数n,单击“分析”按钮Command1后,程序将生成n个随机整数,显示在列表框List1中;并计算这n个随机整数中的最大数、最小数及它们所在的位置,最后求出这n个数的平均值。程序运行界面如下图所示。
(1)要使程序运行时,清空文本框Text1中的内容,可在Form_Load事件过程添加语句__________(单选,填字母:A.Text1.Caption = “ ” / B.Text1.Text=“ ” / C. Text1.Font=“ ”)。
(2)实现上述功能的VB程序如下,请在划线处填入合适的代码。
Private Sub Command1_Click()
Dim n As Integer, i As Integer, x As Integer, sum As Integer, avg As Single
Dim max As Integer, min As Integer, maxi As Integer, mini As Integer
n = Val(Text1.Text)
x = Int(Rnd * 100) + 1
List1.AddItem Str(x)
max = x : min = x
maxi = 1: mini = 1
______①______
For i = 2 To n
x = Int(Rnd * 100) + 1
List1.AddItem Str(x)
If x > max Then max = x: maxi = i
If ______②______ Then min = x: mini = i
sum = sum + x
Next i
______③______
List2.AddItem “最大数为:” + Str(max) + “,所在位置为:” + Str(maxi)
List2.AddItem “最小数为:” + Str(min) + “,所在位置为:” + Str(mini)
List2.AddItem “平均值为:” + Str(avg)
End Sub
18.现要求编写VB程序实现如下功能:在文本框Text1中输入正整数n,单击命令按钮Command1后,在文本框Text2中会显示一个有规律的数字串,形式为“1 2 3 … n-1 n n-1…3 2 1”。 例如n=6时,显示的数字串为“1 2 3 4 5 6 5 4 3 2 1”。按此要求编写的程序如下,但加框处代码有错,请改正。
Private Sub Command1_Click()
Dim n As Integer, i As Integer, s As String
n = Val(Text1.Text)
s = “ ”
For i = 1 To ′(1)
If i <= n Then s = s + Str(i) Else
′(2)
Next i
Text2.Text= s
End Sub
程序中加框(1)处应改正为_____________________________________________;
加框(2)处应改正为_________________________________________________。
19.下列VB程序的功能是:程序运行时,在文本框Textin中输入正整数n.单击命令按钮Command1后,统计1至n 的整数中包含数字2的整数个数,并在文本框Textout中输出结果,若n=20,有2、12和20三个整数包含数字2,则文本框Textout中输出“3”。
实现上述功能的VB程序如下,请在划线处填入合适的代码。
Private Sub Command1_Click()
Dim i As Long, n As Long, t As Long
Dim s As Long ′s用于统计1到n之间包含数字2的整数个数
Dim k As Boolean
s = 0
n = Val(Textin.Text)
For i = 1 To n
k = False
t = i
Do While Not k And t > 0
________①______
t = t 10
Loop
If k Then ________②______
Next i
Textout.Text = Str(s)
End Sub
20.小明设计了一个验证自由落体规律的实验:小球从高处静止状态垂直下落,用照相机每隔0.1秒拍照1次,测得实验数据如下:
拍照时刻(秒)
0.1
0.2
0.3
0.4
0.5
下落距离测量值(米)
0.049
0.195
0.44
0.785
1.225
现要求编写一个VB程序实现如下功能:单击命令按钮Command1后,由公式h=gt2(其中g=9.8米/秒2)计算出第一拍照时刻的下落距离理论值,若所有理论值与同一时刻测量值之间的相对误差都小于0.01,则认为小球在0.5秒内是作自由落体运动,此时在标签Label1中显示“验证通过”,否则显示“验证不通过”。
实现上述功能的VB程序如下,请在划线处填入合适代码。
Private Sub Command1_Click()
Dim h1(1 To 5) As Single ′h1用于存储下落距离测量值
Dim h As Single, i As Integer ′h用于存储下落距离理论值
Dim t As Single, g As Single, b As Boolean
h1(1) = 0.049: h1(2) = 0.195: h1(3) = 0.44: h1(4) = 0.785: h1(5) = 1.225
i = 1: b = True
①____
Do While i <= 5 And b
t = i / 10
h = g * t * t / 2
If ____②____Then b = False
i = i + 1
Loop
If b Then
Label1.Caption = “验证通过”
Else
Label1.Caption = “验证不通过”
End If
End Sub