资源描述
上海市高等学校计算机等级考试模拟卷
上海市高等学校计算机等级考试模拟卷
二级 VB.NET程序设计 ( C 卷)
(本试卷考试时间 120 分钟)
一、单选题 ( 本大题 15 道小题 ,每小题 1 分,共 15 分),从下面题目给出的A、B、C、D四个可供选择的答案中选择一个正确答案。
1. 如果在实验课上进行程序调试,运行时遇到意外出错,最有效的做法是:看清系统错误原因提示信息,____________,以确定错误原因。 B
A. 单击“调试”按钮,然后查看当时变量值
B. 单击“结束”按钮,检查程序代码
C. 举手请老师帮忙
D. 上网查找原因
2. 要想从子过程调用后返回两个结果,下面子过程语句说明合法的是_______。 C
A. Sub f2(ByVal n%,ByVal m%)
B. Sub f1(ByRef n%, ByVal m%)
C. Sub f1(ByRef n%, ByRef m%)
D. Sub f1(ByVal n%, ByRef m%)
3. 为了使控件对象不响应用户的事件,需要____________。 A
A. 设置控件的Enabled属性为False
B. 设置控件的TabStop属性为False
C. 设置控件的TabStop属性为True
D. 设置控件的TabIndex属性为0
4. 在用通用对话框控件建立打开文件对话框时,在文件列表框中只允许显示txt和rtf类型的文件,则Filter属性的正确设置是_________。 D
A. 文本文件(.txt)||*.txt||rtf||*.rtf
B. 文本文件(.txt)(*.txt)(rtf)(*.rtf)
C. 文本文件*.txt|rtf*.rtf
D. 文本文件(.txt)|*.txt|rtf|*.rtf
5. 设变量x = 1,y = -1,a = 5,b = -5,则以下表示式的值为“真”的是____________。 B
A. x+a <= b+y
B. x > 0 And y < 0
C. a = b Or x<y
D. x+y > a+b And Not (y < b)
6. 下列可作为Visual Basic 变量名的是____________。 A
A. 3S
B. Print
C. Select My Name
D. Select_1
7. 要向C盘根目录下的名为my.txt的顺序文件中读出数据,应先使用_________语句打开文件。 B
A. FileOpen(1, "my.txt ", OpenMode.Input)
B. FileOpen(1, "c:\my.txt", OpenMode.Input)
C. FileOpen(1, " c:\my.txt", OpenMode.Output)
D. FileOpen(1, " c:\my.txt", OpenMode.Append)
8. 假定焦点已经位于文本框TextBox1中,则能够触发 KeyPress 事件的操作是____________。 D
A. 单击鼠标
B. 双击文本框
C. 鼠标滑过文本框
D. 按下键盘上的某个键
9. 在自定义函数中,能够经过____________返回值。 B
A. Sub
B. Function
C. 函数名
D. ByVal参数
10. 在程序运行期间能够用____________方法把图形装入窗体、图片框。 D
A. AutoSize
B. OpenFile
C. Picture
D. Image.FromFile
11. 单击滚动条控件的箭头按钮,滑块的移动幅度与__________属性设置有关。B
A. LargeChange
B. SmallChange
C. Max
D. Min
12. 以下能判断是否到达文件尾的函数是__________。 D
A. BOF
B. LOC
C. LOF
D. EOF
13. 列表框ListBox1中已有10个列表项,要显示列表框ListBox1最后一项,有两种表示法, __________是正确的。 A
A. ListBox1.Items(ListBox1.Items.Count - 1)
ListBox1.Items (9)
B. ListBox1.Items(ListBox1.Items.Count)
ListBox1.Items(9)
C. ListBox1.Items(ListBox1.Items.Count - 1)
ListBox1.Items(10)
D. ListBox1.Items(ListBox1.Items.Count)
ListBox1.Items(10)
14. 复选框对象如果被选中,它的Checked属性值为_________。 C
A. 1
B. 0
C. True
D. False
15. 已知最多有10个元素的数组a,用变量n表示它的上界,有两种赋值语句,_______是正确的。 B
A. n=UBound(a)
n=10
B. n=UBound(a)
n=9
C. n=UBound(a)+1
n=9
D. n=UBound(a)+1
n=10
二、程序填空题 ( 本大题 3 道小题 ,每空 2.5 分,共 30 分)。
1. 单击窗体读当前文件夹中的文本文件data.txt数据,找出其中年龄最大者的年龄、姓名和全部人数,输出并保存在当前文件夹的中result.txt。
data.txt的数据格式为:
王海涛,18
李林,20
……
Private Sub Form1_Click(…) Handles Me.Click
Dim Name$, Age%, maxName$, maxAge%, n%
n = 0
Name = ""
maxName = ""
maxAge = 0
FileOpen(1, "data.txt", OpenMode.Input)
Do While NOT EOF(1)
Input(1, Name)
Input(1, Age)
n = n + 1
If Age > maxAge Then
MaxAge=Age
maxName = Name
End If
Loop
FileClose(1)
Label1.text = "最大年龄:" & maxAge & vbCrLf & "最大年龄姓名:" & maxName & vbCrLf & "人数:" & n
FileOpen(2, "result.txt",_____(3)_______)
Print(2, maxName, maxAge, n)
FileClose(2)
End Sub
2. 单击按钮执行在输入样本串中查找字串,删除字串字符后输出至结果文本框。用复选框可选择查找方式是否区分大小写。
Private Sub Button1_Click(…) Handles Button1.Click
Dim ss$, s0$, len0%, ms$, i%
ss = TextBox1.Text
s0 = TextBox2.Text
If _____(1)_____Then
s0 = _____(2)______
End If
len0 = Len(s0)
For i = 1 To Len(ss) - len0 + 1
ms = _____(3)_____
If CheckBox1.Checked Then
ms = UCase(ms)
End If
If (ms = s0) Then
ss = Mid(ss, 1, i - 1) + Mid(ss, i + len0)
i = i - 1
End If
Next i
TextBox3.Text = _____(4)_____
End Sub
3. 单击窗体执行将所输入的整数插入排序后的原数组元素适当位置。
Function Insert(ByRef s%(), ByVal key As Integer) As Integer
Dim k%, i%, j%
k = _____(1)______
For i = 0 To UBound(s)
If key < s(i) Then
k = i
____(2)______
End If
Next i
ReDim Preserve s(UBound(s) + 1)
For j = UBound(s) - 1 To k Step -1
_____(3)______
Next j
s(k) = key
Insert = UBound(s)
End Function
Private Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Click
Dim i%, p%, m%
Dim a%() = {1, 3, 6, 8, 9, 13, 17, 20, 25}
Label1.Text = ""
For i = 0 To UBound(a)
______(4)______
Next i
Label1.Text &= vbCrLf
p = InputBox("请输入要插入的数:")
m = _____(5)______
For i = 0 To m
Label1.Text &= a(i) & " "
Next i
Label1.Text &= vbCrLf
End Sub
三、程序调试题(共20分,每错2.5分,第1题有2处错,第2题有3处错,第3题有3处错)
启动解决方案文件"C:\ks\改错.sln",请调试改正,并按原文件名和位置保存。正确结果见样例"c:\样张\改错样例.exe"。
改错方法:不能修改或重新定义变量,不允许增加或删除语句,但能够修改语句,所修改的语句必须在句尾加上注释标记 ' ***********。
调试改错题1:
输入18位身份证号码,经过第7~10位取出出生年,给出寄语。对1959(含)出生的人,寄语为"步入中老年,请您注意身体!";对1960年代和1990年代出生的人,寄语均为"60后和后要多沟通,避免代沟!"; 对于1970~1989年出生的人,寄语为"70、80后的青年,祝你工作顺利!";对于 后出生的人,寄语为"小朋友,祝你茁壮成长!"; 其余判断为输入错误,清空文本框并置焦点。
Private Sub Button1_Click(…) Handles Button1.Click
Dim bthyear%, lbltx$
bthyear = Val(Mid(TextBox1.Text, 7, 4))
Select Case bthyear
Case Is <= 1959
lbltx = "步入中老年,请您注意身体!"
Case (bthyear>=1960 and bthyear<=1969) or (bthyear>=1990 and bthyear<=1999)
lbltx = "60后和后要多沟通,避免代沟!"
Case "1980" to "1989"
lbltx = "70、80后的青年,祝你工作顺利!"
Case , , To , Is >
lbltx = "小朋友,祝你茁壮成长!"
Case Else
lbltx = "输入错了吧?!请重新输入"
TextBox1.Text = ""
TextBox1.Focus()
End Select
Label1.Text = lbltx
End Sub
调试改错题2: 产生隔行轮换显示字母和数字的菱形图案(规律如图)
Private Sub Button2_Click(…) Handles Button2.Click
Dim i%, j%, k%
Label2.Text = ""
For i = 0 To 14
If i <= 7 Then
k = i
Else
k = 14 - i
End If
Label2.Text &= Space(7 - k)
If k Mod 2 Then
For j = k To 3 * k
Label2.Text &= Chr(66 + k)
Next j
Else
For j = k To 2 * k
Label2.Text &= k
Next j
End If
Label2.Text &= vbCrLf
Next i
End Sub
调试改错题3:
随机产生1~20个大写字符串,并随机产生一个大写字母分别填入两个文本框中,统计这个大写字母在该串中出现的次数。
Private Sub Button3_Click(…) Handles Button3.Click
Dim str1$, str2$, i%, j%, sum%
TextBox2.Text = ""
i = Int(Rnd() * 20 + 1) '产生1~20之间的随机整数
For j = 1 To i
TextBox2.Text &= Chr(64 + Int(Rnd() * 26 + 1)) '随机产生大写字母字符串
Next
TextBox3.Text = Chr(Int(Rnd() * 26 + 1))
str1 = TextBox2.Text
str2 = TextBox3.Text
sum = 1
For j = 1 To i
If Left(str1, j, 1) = str2 Then
sum += 1
End If
Next
If sum <> 0 Then
Label3.Text = str2 & "在字符串中出现了" & sum & "次。"
Else
Label3.Text = str2 & "在字符串中没有出现过"
End If
End Sub
四、编程题(35分)
1.在C:\KS 目录下新建项目,解决方案文件为bct0.sln。
2.参见样例"c:\样张\编程题样例.exe",在Form1窗体上放置两个列表框。建立如下菜单:
菜单项
备注
应用
一级菜单
产生
二级菜单
筛选
二级菜单
----
分隔线
结束
二级菜单
绘图
一级菜单
3.单击菜单"产生"随机产生10个大写字母,填入ListBox1中。
单击菜单"筛选"将列表框1中"K"以后(含"K",ASCII码值为75)的字母选出,填入ListBox2中。
4.单击"绘图"菜单项时,显示窗体2;单击"结束"菜单项时,结束程序的运行。
5.在窗体2上单击"绘图"命令按钮,设置画布原点(x0,y0) 为 (200,100),按以下公式绘制,当Y>0为红色图形,Y<0为蓝色图形,其中40为Y轴的显示放大倍数、20为X轴的放大倍数,t= -3π~3π:
x = x0+ t * 20
y = y0+ Sin(t) * 40
(提示:函数图形经过计算Y的值,画垂直于X轴的直线显示)
单击"返回"命令按钮则关闭窗体2,返回窗体1。
展开阅读全文