重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
我很喜欢这种题目
为汉寿等地区用户提供了全套网页设计制作服务,及汉寿网站建设行业解决方案。主营业务为网站设计制作、做网站、汉寿网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
-------------------------------------------------------------------------
第7题,问题出在两方面
Public Function CalculateArea(ByVal SideBase As Double, ByVal Height As Double, _ Optional
ByVal AssignToArea As Boolean = False) As Double
Dim Area As Double = (SideBase * Height) / 2
中间的 _ 有问题,应该去掉
还有objShape = CType(objShape, clsTriangle) 有错误,不能转换
注释掉objShape = CType(objShape, clsTriangle)
删除_后,得到结果
true
false
-330
--------------------------------------------------------------------------
第8题,就是以acc_grp_cust_tbl表为基础,查找cust_tbl并输出
一般的话使用涉及两个表的话使用SHAPE语句(以SQL为基础的语句)
虽然两者使用时差不多,但是理论比较难懂,我这里也不讲了,我使用ADO+SQL方法
先说明一下程序中的一个细节,也是问题比较容易忽略的
1400 0 1 2
1500 3 4
1600 5
说明一个问题Cust_id1 Cust_id2 Cust_id3 Cust_id4 字段不是数值,而是类似字符的东西(因为可能是
备注)
定义rsgrp对应acc_grp_cust_tbl ,rscust对应cust_tbl
预先设置好rsgrp和rscust的连接(使用VB的方法,可以移植到VB.NET上)
do until rscust.eof
strline=rscust(0) " "
strSQL="SELECT * FROM CUST_TBL WHERE cust_id='" RSGRP(1) "' OR CUST_ID='" RSGRP(2) "' OR CUST_ID='" RSGRP(3) "' OR CUST_ID='" RSGRP(4) "'"
RSGRP.OPEN STRSQL
if rsgrp.recordcount0 then
rsgrp.movefirst
do until rsgrp.eof
strLine=strline rscust(3) " " rscust(2) "/"
rsgrp.movenext
loop
end if
rscust.close
strline=left(strline ,len(strline)-1)
'去除最后一个"/"
console.writeline(strline)
loop
一、选择题(每题2分,共计70分)
1.数据的存储结构是指____。
A、存储在外存中的数据
B、数据所占的存储空间
C、数据在计算机中的顺序存储方式
D、数据的逻辑结构在计算机中的表示
2.下列关于栈的描述中错误的是:____。
A、栈是先进后出的线性表
B、栈只能顺序存储
C、栈具有记忆作用
D、对栈的插入与删除操作中,不需要改变栈底指针
3.对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是____。
A、冒泡排序为n/2
B、冒泡排序为n
C、快速排序为n
D、快速排序为n(n-1)/2
4.对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为____。
A、log2n
B、n/2
C、n
D、n+1
5.下列对于线性链表的描述中正确的是____。
A、存储空间不一定是连续,且各元素的存储顺序是任意的
B、存储空间不一定是连续,且前件元素一定存储在后件元素的前面
C、存储空间必须连续,且前件元素一定存储在后件元素的前面
D、存储空间必须连续,且各元素的存储顺序是任意的
6.下列对于软件测试的描述中正确的是____。
A、软件测试的目的是证明程序是否正确
B、软件测试的目的是使程序运行结果正确
C、软件测试的目的是尽可能多地发现程序中的错误
D、软件测试的目的是使程序符合结构化原则
7.为了使模块尽可能独立,要求____。
A、模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强
B、模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱
C、模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱
D、模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强
8.下列描述中正确的是____。
A、程序就是软件
B、软件开发不受计算机系统的限制
C、软件既是逻辑实体,又是物理实体
D、软件是程序、数据与相关文档的集合
9.数据独立性是数据技术的重要特点之一。所谓数据独立性是指____。
A、数据与程序独立存放
B、不同的数据被存放在不同的文件中
C、不同的数据只能被对应的应用程序所使用
D、以上三种说法都不对
10.用树形结构表示实体之间联系的模型是____。
A、关系模型
B、网状模型
C、层次模型
D、以上三个都是
11.在窗体(名称为Form1)上画一个名称为Text1的文本框和一个名称为Command1的命令按钮,然后编写一个事件过程。程序运行后,如果在文本框中输入一个字符,则把命令按钮的标题设置为“计算机等级考试”。以下能实现上述操作的事件过程是
A、Private Sub Text1_Change()
Command1.Caption = "计算机等级考试"
End Sub
B、Private Sub Command1_Click()
Caption = "计算机等级考试"
End Sub
C、Private Sub Form_Click()
Text1.Caption = "计算机等级考试"
End Sub
D、Private Sub Command1_Click()
Text1.Text = "计算机等级考试"
End Sub
12.设a=5,b=4,c=3,d=2,下列表达式的值是
32*b Or a=c And bc Or cd
A、1
B、True
C、False
D、2
13.设a=”MicrosoftVisualBasic”,则以下使变量的b值为”VisualBasic”的语句是
A、b=Left(a,10)
B、b=Mid(a,10)
C、b=Right(a,10)
D、b=Mid(a,11,10)
14.假定有如下的窗体事件过程:
Private Sub Form_Click()
a$ = "Microsoft VisualBasic"
b$ = Right(a$, 5)
c$ = Mid(a$, 1, 9)
MsgBox a$, 34, b$, c$, 5
End Sub
程序运行后,单击窗体,则在弹出的信息框的标题栏中显示的信息是
A、Microsoft Visual
B、Microsoft
C、Basic
D、5
15.设a="a",b="b",c="c",d="d",执行语句x = IIf((a b) Or (c d), "A", "B")后,x的值为
A、"a"
B、"b"
C、"B"
D、"A"
16.为了使命令按钮(名称为Command1)右移200,应使用的语句是
A、Command1.Move -200
B、Command1.Move 200
C、Command1.Left = Command1.Left + 200
D、Command1.Left = Command1.Left - 200
17.在窗体上画一个文本框,然后编写如下事件过程:
Private Sub Form_Click()
x = InputBox("请输入一个整数")
Print x + Text1.Text
End Sub
程序运行时,在文本框中输入456,然后单击窗体,在输入对话框中输入123,单击“确定”按钮后,在窗体上显示的内容为
A、123
B、456
C、579
D、123456
18.在窗体上画一个文本框和一个计时器控件,名称分别为Text1和Timer1,在属性窗口中把计时器的Interval属性设置为1000,Enabled属性设置为False。程序运行后,如果单击命令按钮,则每隔一秒中在文本框中显示一次当前的时间。以下是实现上述操作的程序:
Private Sub Command1_Click()
Timer1._______
End Sub
Private Sub Timer1_Timer()
Text1.Text = Time
End Sub
在_____处应填入的内容是
A、Enabled = True
B、Enabled = False
C、Visible = True
D、Visible = False
19.假定在图片框Picture1中装入一个图形,为了清除该图形(不删除图片框),应采用的正确方法是
A、选择图片框,然后按Del键
B、执行语句 Picture1.Picture = LoadPicture("")
C、执行语句 Picture1.Picture = ""
D、选择图片框,在属性窗口中选择Picture属性条,然后按回车键
20.在窗体上画一个名称为List1的列表框,一个名称为Label1的标签,列表框中显示若干个项目,当单击列表框中某个项目时,在标签中显示被选中项目的名称。下列能正确实现上述操作的程序是
A、Private Sub List1_Click()
Label1.Caption = List1.ListIndex
End Sub
B、Private Sub List1_Click()
Label1.Name= List1.ListIndex
End Sub
C、Private Sub List1_Click()
Label1.Name = List1.Text
End Sub
D、Private Sub List1_Click()
Label1.Caption = List1.Text
End Sub
21.在窗体上画一个命令按钮,其名称为Command1,然后编写如下事件过程:
Private Sub Command1_Click()
Dim i As Integer, x As Integer
For i = 1 To 6
If i = 1 Then x = i
If i = 4 Then
x = x + 1
Else
x = x + 2
End If
Next i
Print x
End Sub
程序运行后,单击命令按钮,其输出结果为
A、9
B、6
C、12
D、15
22.在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程,
Private Sub Command1_Click()
c = "ABCD"
For n = 1 To 4
Print ____
Next
End Sub
程序运行后,单击命令按钮,要求在窗体上显示如下内容:
D
CD
BCD
ABCD
则在____处应填入的内容为
A、Left(c,n)
B、Right(c,n)
C、Mid(c,n,1)
D、Mid(c,n,n)
23.执行以下程序段
Dim x As Integer, i As Integer
x = 0
For i = 20 To 1 Step -2
x = x + i \ 5
Next i
后,x的值为
A、16
B、17
C、18
D、19
24.在Visual Basic工程中,可以作为“启动对象“的程序是
A、任何窗体或标准模块
B、任何窗体或过程
C、Sub Main过程或其他任何模块
D、Sub Main 过程或任何窗体
25.假定建立一个名称为Command1的命令按钮数组,则以下说法中错误的是
A、数组中每个命令按钮的名称(Name属性)均为Command1
B、数组中每个命令按钮的标题(Caption属性)都一样
C、数组中所有命令按钮可以使用同一个事件过程
D、用名称Command1(下标)可以访问数组中的每一个命令按钮
26.把窗体的KeyPreview属性设置程为True,然后编写如下事件过程
Private Sub Form_KeyPress(KeyAscii As Integer)
Dim ch As String
ch = Chr(KeyAscii)
KeyAscii = Asc(UCase(ch))
Print Chr(KeyAscii + 2)
End Sub
程序运行后,按键盘上的“A“键,则在窗体上显示的内容是
A、A
B、B
C、C
D、D
27.在窗体上画一个命令按钮和一个文本框,名称分别为Command1和Text1,然后编写如下程序:
Private Sub Command1_Click()
a = InputBox("请输入日期(1~31)")
t = "旅游景点:" _
IIf(a 0 And a = 10, "长城", "") _
IIf(a 10 And a = 20, "故宫", "") _
IIf(a 20 And a = 31, "颐和园", "")
Text1.Text = t
End Sub
程序运行后,如果从键盘上输入16,则在文本框中显示的内容是
A、旅游景点:长城故宫
B、旅游景点:长城颐和园
C、旅游景点:颐和园
D、旅游景点:故宫
28.在窗体上画一个名称为Label1的标签,然后编写如下事件过程:
Private Sub Form_Click()
Dim arr(10, 10) As Integer
Dim i As Integer, j As Integer
For i = 2 To 4
For j = 2 To 4
arr(i, j) = i * j
Next j
Next i
Label1.Caption = Str(arr(2, 2) + arr(3, 3))
End Sub
程序运行后,单击窗体,在标签中显示的内容是
A、12
B、13
C、14
D、15
29.在窗体上画一个名称为Command1的命令按钮,然后编写如下通用过程和命令按钮的事件过程:
Private Function fun(ByVal m As Integer)
If m Mod 2 = 0 Then
fun = 2
Else
fun = 1
End If
End Function
Private Sub Command1_Click()
Dim i As Integer, s As Integer
s = 0
For i = 1 To 5
s = s + fun(i)
Next i
Print s
End Sub
程序运行后,单击命令按钮,在窗体上显示的是
A、6
B、7
C、8
D、9
30.阅读程序:
Option Base 1
Dim arr() As Integer
Private Sub Form_Click()
Dim i As Integer, j As Integer
ReDim arr(3, 2)
For i = 1 To 3
For j = 1 To 2
arr(i, j) = i * 2 + j
Next j
Next i
ReDim Preserve arr(3, 4)
For j = 3 To 4
arr(3, j) = j + 9
Next j
Print arr(3, 2) + arr(3, 4)
End Sub
程序运行后,单击窗体,输出结果为
A、21
B、13
C、8
D、25
31.在窗体上画一个名称为 Command1 的命令按钮,然后编写如下程序:
Option Base 1
Private Sub Command1_Click()
Dim c As Integer,d As Integer
d=0
c=6
x=Array(2,4,6,8,10,12)
For i=1 To 6
If x(i)c Then
d=d+x(i)
Else
d=d-c
End If
Next i
Print d
End Sub
程序运行后,如果单击命令按钮,则在窗体上输出的内容为____。
A、10
B、16
C、12
D、20
32.设有如下程序
Private Sub Command1_Click()
Dim c As Integer,d As Integer
c=4
d=InputBox("请输入一个整数")
Do While d0
If dc Then
c=c+1
End If
d=InputBox("请输入一个整数")
Loop
Print c+d
End Sub
程序运行后,单击命令按钮,如果在输入对话框中依次输入1、2、3、4、5、6、7、8、9、0,则输出结果是____。
A、12
B、11
C、10
D、9
33.在窗体上画一个名称为 Command1 的命令按钮和一个名称为 Text1 的文本框,在文本框中输入以下字符串:
Microsoft Visual Basic Programming
然后编写如下事件过程:
Private Sub Command1_Click()
Open "d:\temp\outf.txt" For Output As #1
For i=1 To Len(Text1.Text)
c=Mid(Text1.text,i,1)
If c="A" And c="Z" Then
Print #1,LCase(c)
End If
Next i
Close
End Sub
程序运行后,单击命令按钮,文件outf.txt中的内容是____。
A、MVBP
B、mvbp
C、M
V
B
P
D、m
v
b
p
A B C D
34.在窗体上画一个名称为 Command1 的命令按钮,然后编写如下程序:
Dim SW As Boolean
Function func(X As Integer)As Integer
If X20 Then
Y=X
Else
Y=20+X
End If
func=Y
End Function
Private Sub Form_MouseDown(Button As Integer,_
Shift As Integer,X As Single,Y As Single)
SW=False
End Sub
Private Sub Form_MouseUp(Button As Integer,_
Shift As Integer,X As Single,Y As Single)
SW=True
End Sub
Private Sub Command1_Click()
Dim intNum As Integer
intNum=InputBox("")
If SW Then
Print func(intNum)
End If
End Sub
程序运行后,单击命令按钮,将显示一个输入对话框,如果在对话框中输入 25,则程序的执行结果为____。
A、输出 0
B、输出 25
C、输出 45
D、无任何输出
35.设有如下通用过程:
Public Sub Fun(a() As Integer,x As Integer)
For i=1 To 5
x=x+a(i)
Next
End Sub
窗体上画一个名称为 Text1 的文本框和一个名称为 Command1 的命令按钮。然后编写如下的事件过程:
Private Sub Command1_Click()
Dim arr(5) As Integer,n As Integer
For i=1 To 5
arr(i)=i+i
Next
Fun arr,n
Text1.Text=Str(n)
End Sub
程序运行后,单击命令按钮,则在文本框中显示的内容是____。
A、30
B、25
C、20
D、15
二、填空题(每空2分,共计30分)
1.某二叉树中度为2的结点有18个,则该二叉树中有____个叶子结点。
输入答案,中间不含空格:
2.在面向对象方法中,类的实例称为____。
输入答案,中间不含空格:
3.诊断和改正程序中错误的工作通常称为____。
输入答案,中间不含空格:
4.在关系数据库中,把数据表示成二维表,每一个二维表称为____。
输入答案,中间不含空格:
5.问题处理方案的正确而完整的描述称为____。
输入答案,中间不含空格:
6.以下语句的输出结果是____。
Print Int(12345.6789*100+0.5)/100
输入答案,中间不含空格:
7.在窗体上画一个文本框和一个图片框,然后编写如下两个事件过程:
Private Sub Form_Click()
Text1.text="VB程序设计"
End Sub
Private Sub Text1_Change()
Picture1.Print"VB Programming"
End Sub
程序运行后,单击窗体,则在文本框中显示的内容是____,而在图片框中显示的内容是____。
输入答案,中间不含空格:
8.上一题
输入答案,中间不含空格:
9.阅读下面的程序:
Private Sub Form_Click()
Dim Check As Boolean,Counter As Integer
Check=True
Counter=5
Do
Do While Counter 20
Counter =Counter+1
If Counter=10 Then
Check=False
Exit Do
End If
Loop
Loop Until Check =False
Print Counter
End Sub
程序运行后,单击窗体,输出结果为____。
输入答案,中间不含空格:
10.设有如下程序:
Private Sub Form_Click()
Dim a As Integer,s As Integer
n=8
s=0
Do
s=s+n
n=n-1
Loop While n0
Print s
End Sub
以上程序的功能是____。程序运行后,单击窗体,输出结果为____。
输入答案,中间不含空格:
11.上一题
输入答案,中间不含空格:
12.设有如下程序:
Option Base 1
Private Sub Command1_Click()
Dim arr1
Dim Min As Integer,i As Integer
arr1=Array(12,435,76,-24,78,54,866,43)
Min=____
For i=2 To 8
If arr1(i)Min Then ____
Next i
Print "最小值是:";Min
End Sub
以上程序的功能是:用 Array 函数建立一个含有8个元素的数组,
然后查找并输出该数组中各元素的最小值。请填空。
输入答案,中间不含空格:
13.上一题
输入答案,中间不含空格:
14.在名称为 Form1 的窗体上画一个文本框,其名称为 Text1,在属性窗口中把该文本框的 MultiLine 属性设置为 True,然后编写如下的事件过程:
Private Sub Form_Click()
Open"d:\test\smtext1.txt"For Input As #1
Do While Not ____
Line Input #1,aspect$
whole$=whole$+aspect$+Chr$(13)+Chr(10)
Loop
Text1.Text=whole$
Chose #1
Open "d:\test\smtext2.txt"For Output As #1
Print #1,____
Close #1
End Sub
上述程序的功能是,把磁盘文件 smtext1.txt 的内容读到内存并在文本框中显示出来,
然后把该文本框中的内容存入磁盘文件 smtext2.txt。请填空。
输入答案,中间不含空格:
15.上一题
输入答案,中间不含空格:
答案
1 D
2 B
3 D
4 C
5 A
6 C
7 B
8 D
9 D
10 C
11 A
12 B
13 B
14 C
15 D
16 C
17 D
18 A
19 B
20 D
21 A
22 B
23 C
24 D
25 B
26 C
27 D
28 B
29 B
30 A
31 C
32 D
33 D
34 D
35 A
36 19
37 对象
38 程序调试
39 关系
40 算法
41 12345.68
42 VB程序设计
43 VB Programming
44 10
45 计算1到8的累加 ( 意思相同的语句)
46 36
47 12
48 Min=arr1(i)
49 EOF(1)
50 Text1.text
如果需要讲详细一点,那就加我QQ531412815
第4题,潜在的错误,这里的错误不是常规错误,属于那种只有在运行是才知道的错误:
Catch ex As Exception
MsgBox(ex.StackTrace)
'永远不会查找下面的错误
Catch ex As ArgumentNullException
MsgBox("Input Test box cannot be null.")
Catch ex As OverflowException
MsgBox("Input Test box 2 cannot be zero!")
Catch ex As FormatException
MsgBox("Input Test box should be numeric format!")
结构化错误处理永远达不到下面这里,因为Catch ex As Exception 已经处理了所有错误.
第5题:
00123
1000 60.50
2000 60.00
3500 59.50
---- -----
6500 60.00
00124
3000 60.50
---- -----
3000 60.50
00125
2000 59.50
1000 58.00
---- -----
3000 58.75
就是按照Ref_ID 分类,有一种方法就是按照Ref_ID 分组,也就是使用SQL语言,不过这里需要该很多,
我就不用了,那么就稍微复杂一点,使用FIND方法,不过有一点必须注意REF_ID必须排序,因为数据库中
已经排好序了,我就不用排了。
Dim rst as ADODB.Recordset
dim refID as string
Rst = GetRecordset
Do While Not rst.EOF
refid=rst(0)
Console.writeline(rst.Fields("Ref_ID")
do
Console.writeline rst.Fields("Qty") vbcrlf rst.Fields("Price"))
rst.MoveNext()
loop while rst(0)=refid
Loop
第6题:就是从一个集合中取元素输出的问题
比较简单的办法就是使用递归
以下是使用VB的方法(可以移植到VB.NET上,因为我对VB.NET的数组到现在还不太会,所以就将就一下)
Dim bUse() As Boolean
Dim lStr() As String * 1
Dim nCount As Byte
-----------------------------------------------------------------------------------
Public Sub Combination(lstStr As String)
Dim i As Byte
Dim j As Byte
Dim StrLen As Byte
StrLen = Len(lstStr)
ReDim bUse(1 To StrLen) As Boolean
ReDim lStr(1 To StrLen) As String * 1
For i = 1 To StrLen
lStr(i) = Mid(lstStr, i, 1)
Next
For i = 1 To StrLen
nCount = i
GoWith StrLen, 1, 0, ""
Next
End Sub
------------------------------------------------------------------------------------
Public Sub GoWith(ECount As Byte, nStart As Byte, Deep As Byte, lastStr As String)
Dim i As Byte
If Deep = nCount Then
Debug.Print lastStr
Exit Sub
End If
For i = nStart To ECount
If Not bUse(i) Then
bUse(i) = True
GoWith ECount, i, Deep + 1, lastStr lStr(i)
bUse(i) = False
End If
Next
End Sub
--------------------------------------------------------------------------------------
Private Sub Form_Load()
Combination "wxyz"
End Sub
--------------------------------------------------------------------------------------
其中GOWITH是真正的递归函数,而Combination是用来预处理字符的
全局变量:
BUSE:用来确定是否使用过这个元素
lSTR:用来保存字符元素
NCOUNT:用来限制递归函数的深度,换句话说,就是输出元素组中的元素个数
实际测试成功,另外我对前三题很感兴趣,希望能够传给我