5 2002 黄小兵 男 EE电子公司 4. 有如下Visual FoxPro程序: OPEN DATABASE BGGL USE KEHU
ACCEPT \请输入客户姓名:\ INDEX ON 姓名 TAG XMH OF XM SEEK XM
KEHUH=客户号 SELECT 1 USE RUZHU GO TOP
DO WHILE NOT EOF() IF 客户号=KEHUH KEFANGH=客房号
NM=退房日期-入住日期+1 SELECT 2 USE KEFANG
DO WHILE NOT EOF() IF 客房号=KEFANGH S=价格*NM
EXIT ENDIF SKIP ENDDO EXIT ENDIF SKIP ENDDO ?S
运行上面的程序,输入“姚晓敏”,显示的结果是: 18000 。
5. 有如下Visual FoxPro程序:(代码中行末的分号为逻辑行连接符) OPEN DATABASE BGGL
ACCEPT \请输入客房类型名:\
SELECT 客房号 FROM KEFANG WHERE 类型=KFLX INTO DBF KF ALTER TABLE KF ADD XX C(8) ALTER TABLE KF ADD TH N(3,0)
SELECT RUZHU.客房号 AS 客房号,KEHU.姓名 AS 姓名,(RUZHU.退房日期; -RUZHU.入住日期+1) AS 天数 FROM RUZHU,KEHU WHERE RUZHU.客户号=;
KEHU.客户号 INTO DBF KH
USE KH
DO WHILE NOT EOF() KFH=客房号 XM=姓名 TSH=天数
UPDATE KF SET XX=XM,TH=TSH WHERE 客房号=KFH SKIP ENDDO
SELECT KEFANG.类型,KEFANG.客房号,KF.XX,TH*KEFANG.价格 AS TJ; FROM KEFANG,KF WHERE KEFANG.客房号=KF.客房号 INTO DBF JG USE JG
DO WHILE NOT EOF() ?客房号,XX,TJ SKIP ENDDO
运行上面的程序,输入“普通客房”,显示的结果是: 1101 王林 840 1301 黄小兵 2520
七、Visual Basic程序改错(本大题共有两个小题,每题5分,共10分,每个程序有两个错误行,请在答题纸上写出错误行和对应的正确行,改对一处得一处分,改错不扣分)
1.下面的程序是利用随机函数产生10个10到100之间的随机整数,并按由小到大的顺序放入数组a中。(提示:题目中的语句Goto x是转移到标号x位置执行)
程序中有两处错误,请将错误行和相应的正确行写在答题纸横线上。 Dim a(10) As Integer Dim num As Integer Dim i As Integer Dim j As Integer Dim k As Integer For i = 1 To 10 k = i
num = 10 + Int(Rnd * 91) For j = 1 To i-1 If num < a(j) Then GoTo 20 Next j
a(i) = num
10:
Next i GoTo 30 20:
For m = k To j M=K TO J-1 STEP -1 a(m + 1) = a(m) A(M)=A(M-1) Next m
a(j) = num GoTo 10 30:
For i = 1 To 10
Print a(i); Next i Print
2.窗体中(如图所示)有一个定时器控件(名称Timer1),有三个标签(Caption属性分别是滚动条、组合框、列表框),一个滚动条(名称HS1,Min和Max的属性初值分别为0和5,Value初值为0),一个组合框(名称Combo1),一个列表框(名称List1),组合框和列表框初始为空,一个框架,框架中有两个复选框(名称分别为Check1和Check2,Caption属性如图所示)。 程序的功能是:窗体启动后,定时器开始工作,工作时每隔3秒钟触发一次事件,Timer事件中完成4项工作:(1)滚动条的值加1;(2)往组合框中添加滚动条的Value值;(3)调用Combo1_Change过程;(4)当滚动条的值为5时定时器停止工作。在
A
Combo1_Change过程中,要将滚动条当前值加上复选框中当时所有选中项的标题添加到列表框中,Combo1_Change过程中只给出了部分程序,省略的程序都是正确的。
程序中有两处错误, 请将错误行和相应的正确行写在答题纸横线上。 Private Sub Combo1_Change() List1.AddItem HS1.Value
If Check1.Value = True Then 1
List1.List(HS1.Value - 1) = List1.List(HS1.Value - 1) + Check1.Caption
End If
End Sub
Private Sub Timer1_Timer() HS1.Value = HS1.Value + 1 Combo1.AddItem HS1.Value Combo1_Change
If HS1.Value = 5 Then Timer1.Visible = False ENABLE End Sub
八、程序填空(本大题共7个空,每空5分,共35分,按程序要求在答题纸上填入相应的内容,使程序完整正确)
1.下面程序运行时输入长度少于20个字符的字符串,以“#”结束,然后对字符串从左端进行处理。处理方式:把数字和非数字内容分别放入两个数组,数组a存放数字,数组b存放非数字,存放时把相邻的数字或非数字内容作为一个整体进行存放,如输入的字符串为“12abc3d456ef#”,则12、3、456分别存放到数组a的前三个元素中,”abc”中,”abc”、”d”、”ef”分别存放到数组b的前三个元素中。请填空。(Visual Basic题) Dim a(20) As Integer Dim b(20) As String Dim c As String Dim i As Integer
Dim j As Integer Dim w1 As String Dim w2 As String Dim m As Integer Dim n As Integer
c = InputBox(\请输入c$=\输入数据\ c = Trim(c)
w1 = Left(c, 1) c = Mid(c, 2)
Do While w1 <> \
If w1 >= \ w2 = Left(c, 1) c = Mid(c, 2)
Do While w2 >= \ w1 = w1 * 10 + w2 w2 = Mid(c, 1, 1) c = Mid(c, 2) Loop
相关推荐: