内容正文:
第4节 调试程序
一、选择题
1..某程序代码如下:( ) Dim count As Integer
Dim a(1 To 13) As String
s = "where are you":count= 0
For i = 1 To Len(s)
a(i) = Mid(s, i, 1)
Next i
For i = 1 To Len(s) - 1
k = i
For j = i + 1 To Len(s)
If a(k) < a(j) Then k = j
Next j
If i <> k Then
t = a(i): a(i) = a(k): a(k) = t
End If
Next i
For i = 1 To Len(s) - 1
If a(i) = a(i + 1) Then count = count + 1
Next i
程序运行结束后,变量 count 的值是( )
A.13 B.2 C.3 D.4
2.下列 VB 程序段功能为:通过冒泡排序,最终数组元素 a(x)到 a(y)内的数实现升序排列,
x = Val(Text1.Text)
y = Val(Text2.Text)
For i = (1)
For j = (2)
If a(j) > a(j + 1) Then
a(j) = a(j) + a(j + 1):a(j + 1) = a(j) - a(j + 1):a(j) = a(j) - a(j + 1)
End If
Next j
Next i
上述程序段中横线处可选语句为:
则(1)(2)处依次填入的语句组合正确的有( )
A.①②③④ B.①③ C.②③④ D.①④
3.有如下VB程序段:
a(1) = 100:a(2) = 97:a(3) = 94:a(4) = 91
b(1) = 10:b(2) = 20:b(3) = 30:b(4) = 40
n=1
For i = 1 To 4
c(a(i)) = n
n = n + b(i)
Next i
已知数组c的各元素初始值均为0,执行该程序段后,数组元素c (94)的值为( )
A.31 B.33 C.43 D.61
4.Rnd函数不可能为下列_______值。
A.0.6 B.1 C.0.1234 D.0.0005
5.有如下VB程序段
s = Text1.Text
t = Mid(s, 1, 1): max = 0
For i = 2 To Len(s)
If Mid(s, i, 1) > Mid(s, i - 1, 1) Then
t = t + Mid(s, i, 1)
If Len(t) > max Then max = Len(t): ans = t
Else
t = Mid(s, i, 1)
End If
Next i
Text2.Text = ans
在文本框Text1中输入“11341358901”,执行该程序段后,文本框Text2中显示的是( )
A.135890 B.01 C.3589 D.13589
6.有以下VB程序段:
a(1)=2
For i= 2 To 3
a(i)=a(i-1)-Int(Rnd( )* 2)
If i Mod 2=1 Then
a(i)=a(i)+1
Else
a(i)=a(i)-1
End If
Next i
执行程序后,a(2)和a(3)的值不可能的是( )
A.1,1 B.1,0 C.0,1 D.0,0
7.在VB中,某两个对象的属性窗口如图所示:
由图可知,这两个对象的( )
A.对象名称相同 B.所属类相同 C.字面内容相同 D.背景颜色相同
8.某VB程序如下:
Private Sub Command1_Click()
Dim s As Integer
Dim i As Integer
s = 1: i = 1
Do While i <= 10
s = s * i
i = i + 1
Loop
Label1.Caption = Str(s)
End Sub
运行该程序,单击按钮Command1后,出现如上图所示的出错信息。此时正在执行的语句是
A.Dim s As Integer B.s = s * i
C.i = i + 1 D.Label1.Caption = Str(s)
9.如图所示的VB程序中,输入以下程序代码,运行后单击命令按钮Command1,出现错误的提示图是:( )
Private Sub Command1_Click()
Dim a(1 To 4) As Integer
Dim i As Integer
a(1) = 1
For i =" 2" To 4
a(i) =" 2" * a(i - 1) + 1
Next i
List1.AddItem Str(a(i))
End Sub
A.
B.
C.
D.
10.有如下程序段
For i = 1 To 5
a(i) = Int(Rnd * 90) + 10
Next i
For j = 5 To 2 Step -1
If a(j) Mod 2 = 1 And a(j) < a(j - 1) Then
t = a(j): a(j) = a(j - 1): a(j - 1) = t
Else
a(j) = a(j) / 2
End If
Next j
执行该程序段后,a(1)到 a(5)各元素不可能的是( )
A.17,58,73,62,37 B.37,63,59,40,19
C.31,65,98,7,6 D.84,57,65,7,6
11.有如下VB程序段:
s= Text1.Text
s1=" "
For i=1 To Len(s)
c= Mid(s,i,1)
If c>="A" And c<="Z" Then
t=(Asc©-asc("A")+25)Mod 26
c=Chr(t+ Asc("A"))
End If
sl=sl+c
Next i
Text2.Text=sl
1=s1+c在文本框Text1中输入“ABcd2XY”,执行上述程序段后,文本框Text2中输出( )
A.ZAWX B.ZAcd12WX C.XWAZ D.XW21dcAZ
12.有如下VB程序段:
Dim a(1 To 5) As Integer
Dim i As Integer
Dim j As Integer
Dim 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) <> 1 Then s = Str(i) + s
Next i
Text1.Text = s
若数组a的初始值都为0,则运行该程序段后,Text1中显示的内容为( )
A.14 B.235 C.532 D.41
13.以下函数运算中结果不是5的是( )
A.Int(-5.0) B.Abs(-5) C.Sqr(25) D.Len(“20201”)
14.某VB程序段如下:
For i=1 To 6
j=7
Do While i>i
If a(j)>a(j-1) Then
a(j)= a(j)+a(-1):a(j-1)=a(j)-a(j-1):a(j)=a(j)-a(j-1)
End If
j=j-1
Loop
Next i
For i=3 To 6
s=s+a(i)
Next i
Labell. Caption=Str(s)
已知数组元素a(1)到a(7)的值依次为“8,2,3,7,10,6,5”,则执行该程序段后,标签 Label1中显示的是( )
A.21 B.26 C.41 D.18
15.小华设计了一个简单的求和程序。他在窗体上用工具画出三个文本框,将其Name(名称)属性分别改为A、B、C;又画出一个按钮,将其Caption属性改为:“计算”,在窗体上双击该按钮,输入代码( ),运行程序后,在A、B文本框中分别输入22、33,再单击“计算”按钮,C文框显示是55。
A.C=A+B
B.55=22+33
C.C.Text=str(val(A.Text)+VAL(B.Text))
D.C.Text=A.Text+B.Text
二、填空题
16. VB工程在调试中出现如图所示的错误提示,产生此错误的语句是( )
17.有如下的程序段:若分别输入5、6,则该程序的运行结果是 。
Private Sub Command1_Click()
Dim a As String, b As String, c As String
a = InputBox("请输入a的值")
b = InputBox("请输入b的值")
c = a + b
Print c
End Sub
18.分析并完善程序
以下是计算s=12+22+32+…+1002的程序代码,请补全程序。
Dim s As Long
Dim i As Integer
s=0
For i=1 To 100
s=s+①
②
Print s
19.以下VB代码存在一个语法错误:
行号 语句
dim price as double
②price=inputbox("请输入价格")
③ if price>=500
④ price=price*0.95
⑤ end if
⑥ print price
错误语句在 行。
正确语句为 。
20.对X四舍五入保留4位有效数字
三、操作题
21.下面VB程序的功能是判断一个整数是否为素数。在文本框Text1中输入一个整数x,如果x是素数,则在标签Label1中显示“Y”,否则显示“N”。程序中有两处错误,请改正。
Private Sub Command1_Click( )
Dim i As Integer,x As Integer,pd As Boolean
Val(Text1.Text)=x
pd=True
i=1
Do While i<x And pd=True
If x Mod i=0 Then
pd=False
Else
i=i+1
End If
Loop
If pd=True Then
Label1.Caption=“Y”
Else
Label1.Caption=“N”
End If
End Sub
错误语句1:________改为:________;
错误语句2:________改为:________。
22.某电信部门规定:拨打市内电话时,如果通话时间不超过3分钟(含3分钟),则收取通话费0.2元,如果通话时间超过3分钟,则超过部分以每分钟0.1元收取通话费(通话时间为整数)。下面是计算通话费用的程序界面和程序,请认真分析并回答问题。
(1)在设计程序界面时,为添加“确定”按钮,应使用如上右图所示“控件工具箱”中的________(填相应编号)添加标签控件。要让Command1显示为“确定”,需要在属性面板中修改_________的值为“确定”。
(2)Command1_Clik事件过程如下,并请填写程序空白处。
Private Sub Command1_Click()
Dim x as ① '定义 x 为整型
x = Val(Text1.Text)
② Then '条件语句
Text2.Text= ③
Else
Text2.Text = Str(0.2 + 0.1 * (x - 3))
End If
End Sub
(3)这段程序属于 结构程序设计。(填:顺序、选择或循环)
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.D
2.D
3.A
4.B
5.D
6.B
7.D
8.B
9.B
10.D
11.B
12.D
13.A
14.A
15.C
16.D
17.56
18. i*i Next i
19. 第3 if price>=500 then
20.INT(X*10^4+0.5)/10^4
21.Val(Text1.Text)=x 改为 x=Val(Text1.Text) ,i=1 改为 i=2
22.(1)① (1分) Caption (1分)
(2)①Integer(1分) ②If x <=3 (1分) ③0.2或str(0.2) (1分)
(3)选择(1分)
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$