ENDFOR b=[ ] c=[ ] s=0 IF j>m s=m ELSE s=j ENDIF
FOR i=1 TO n-s
IF (arr(i)>=[0] and arr(i)<=[9]) b=b+arr(i) ELSE
c=c+arr(i) ENDIF
ENDFOR mystr=c+b
ThisForm.lbb.Caption=mystr Return
5.设有数据库文件SHANGPIN.DBC,包含3个表,分别是goods、orderList、orderitem。其中goods的结构为:商品号(C,6)、商品名(C,20)、单价(N,6,2),orderlist的结构为:订单号(C,4)、客户名(C,8)、签订日期(D),orderitem的结构为:订单号(C,4)、商品号(C,6)、数量(N,2),其表中数据如下:
Goods.dbf
记录号 商品号 商品名 单价 1 a00001 数据库原理 23.80 2 a00002 计算机操作系统 31.00 3 a00003 汇编语言 33.50 4 a00004 C++程序设计 23.90 Orderlist.dbf
记录号 订单号 客户名 签订日期 1 0001 zhangby 02/29/00 2 0002 haom 03/14/00 3 0003 liuyj 03/18/00 4 0004 liubing 03/21/00 5 0005 lixing 03/25/00 6 0006 hailan 04/01/00 Orderitem.dbf
记录号 订单号 商品号 数量
运行上面的表单,在文本框中输入:d12&%##ef34*****,单击“确定“按钮,在Lbb标签中显示的是:
1 0001 a00001 2 2 0002 a00002 2 3 0003 a00003 3 4 0004 a00003 4 5 0005 a00004 3 6 0006 a00003 2
有如下程序:(代码中行末的分号为逻辑行连接符) DIME arr(1) SUM1=0
ALTER TABLE ORDERLIST ADD 总金额 N(7,2)
SELECT Orderitem.订单号,sum(goods.单价*orderitem.数量) as 总金额FROM;goods,orderitem WHERE Goods.商品号 = Orderitem.商品号 GROUP BY;
Orderitem.订单号 ORDER BY Orderitem.订单号 INTO TABLE temp.dbf CLOSE ALL SELECT 1 USE TEMP
INDEX ON 订单号 TO ddh1 SELE 2 USE ORDERLIST
INDEX ON 订单号 TO ddh2 SET RELATION TO 订单号 INTO A DO WHILE .NOT.EOF()
REPLACE 总金额 WITH temp.总金额 SKIP ENDDO DO WHIL .T.
ACCE \请输入商品名(输入0退出)\ IF SHANG ='0' EXIT ELSE
SELECT 商品号 FROM goods WHERE 商品名=SHANG INTO ARRAY arr SNO=arr(1)
SELECT 订单号 FROM orderitem WHERE 商品号=SNO INTO TABLE WJ USE WJ
DO WHILE NOT EOF() MM=订单号
SELECT 总金额 FROM ORDERLIST WHERE 订单号=MM INTO ARRAY arr SUM1=SUM1+arr(1) SKIP ENDDO
?SUM1 ENDIF ENDDO
运行上面的程序,输入“汇编语言”,显示的结果是:
七、程序改错(本大题共2小题,每题5分,共10分。每个程序有两处错误,请在答题纸上写出错误行代码和修改后的正确代码,改错不扣分,请将答案填写在答题纸上)
1.下面的程序是将一输入的字符串进行分类赋值,方法:从字符串的最左端开始截取一字符,然后进行判断,数字字符放入数组a中,将其它字符放入数组b中,然后继续处理下一个字符,直至全部处理完,最后分类打印,程序中有两处错误,请将错误行和正确的全行写在答题纸相应的横线上。( Visual Basic题)
Dim a(100) As Integer Dim b(100) As Integer Dim c As String Dim i As Integer Dim j As Integer Dim k As Integer Dim m As Integer Dim w As String
c = InputBox(\k = Len(c) For i = 1 To k w = Right(c, 1) c = Right(c, k - 1)
If w >= \a(j) = w: j = j + 1 Else
b(m) = Asc(w): m = m + 1 End If c=c-w Next i Print
For i = 0 To j - 1 Print a(i); Next i Print
For i = 0 To m - 1 Print Chr(b(i)); Next i Print
2.窗体中(如图所示)有一定时器控件(名称Timer1), 每2秒钟触发一次Timer事件,有两个标签
用于提示后面的控件名称,一文本框Text1,一滚动条(名称HS1)。窗体启动后(此图为窗体刚启动时的状态),滚动框根据计时器事件向右移动,但当单击滚动框左端后,滚动框开始向左移动,当单击滚动框右端后,滚动框开始向右移动,文本框中的文字大小随滚动条的值变化。窗体通用部分声明了两个变量,后面给出了三个事件过程。程序中共有两处错误分布在三个事件过程中(每个事件过程中最多有一处错误),请将错误行和正确行写在答题纸相应的横线上。( Visual Basic题)(提示:Form_Activate()表示窗体变为活动窗体后触发的事件)
窗体通用部分声明代码:
Dim A As Integer ‘变量A用于确定滚动框向左(为0)还是向右(为1)滚动 Dim W As Integer
Private Sub Form_Activate() W = HS1.Value A=0 End Sub
Private Sub HS1_Change() If W Private Sub Timer1_Timer() If Text1.FontSize < 10 Then Text1.FontSize = 11 If Text1.FontSize > 80 Then Text1.FontSize = 79 If A = 1 Then Text1.FontSize = Text1.FontSize + 1 Else Text1.FontSize = Text1.FontSize - 1 End If End Sub 八、程序填空(本大题共7个空,每空5分,共35分。按程序要求在答题纸上填入相应的内容,使程序完整正确,请将答案填写在答题纸上) 1.下面的程序前部分功能考生自己分析,后部分功能是输入一数据,然后在数组中找此数据,若找不到则程序结束,若找到将数组元素下标小于此数据下标的数据由大到小排列并输出,请在空白位置填写正确的命令(Visual Basic题)。 Dim a(9) As Integer Dim i As Integer Dim t As Integer a(0) = 20 + Int(Rnd * 91) For i = 1 To 9 t = 20 + Int(Rnd * 91) If t < a(i - 1) Then i = i - 1 Else a(i) = t End If Next i For i = 0 To 9 Print a(i); Next i Print t = InputBox(\For i = 0 To 9 If t = (1) Then Exit For End If Next i If i = 10 Then End i = i - 1 For k = 0 To i / (2) t = a(k) a(k) = a(i - k) a(i - k) = t Next k For i = 0 To 9 Print a(i); Next i 2.下面程序可以打印一个九九表完整九行或部分行,思路是在窗体中加入两个文本框,第一个文本框(text1)用于指定输出九九表的起始行,第二个文本框用于指定输出九九表的结束行,如在第一 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库2012年河北省计算机对口招生考试试题(带部分答案)(3)在线全文阅读。
相关推荐: