试题

试题 试卷

logo

题型:综合题 题类:模拟题 难易度:困难

浙江省杭州市2016年信息技术高考模拟卷九

某仓库货物查询系统,数组id保存货物编号(货物编号已经按照从小到大的顺序保存),数组n保存货物名称,数组c保存货物数量。数组中的数据信息一一对应。该系统提供3种查询方式,查询优先级最高的是按编号查询,其次是按名称查询,最低的是按数量查询(在输入多个查询条件的情况下,只按照优先级高的条件进行查询,其中按数量查询可以查询到所有货物数量小于输入值的结果)并将查询结果在list1中显示。程序界面如图2-1所示。

部分程序代码如下:

Public number As String  '货物编号

Public na As String  '货物名称

Public co As String  '货物数量

Private Sub Command1Click()

Dim flag As Integer  '查询结果标志

number = Text1.Text

na = Text2.Text

co = Text3.Text

If (number = "" And na = "" And co = "") Then MsgBox ("你还没有输入查询条件") ’第一种情况

If number <> ""Then ’第二种情况

flag = searchnum(1, n)  'n 表示总的货物种类数量

List1.AddItem id(flag) + n(flag) + c(flag)

  If flag = -1 Then MsgBox ("查询无结果,检查是否输入有误")

End If

If na <> "" Then  ‘第三种情况

flag = searchna(1, n)  'n 表示总的货物种类数量

List1.AddItem id(flag) + n(flag) + c(flag)

  If flag = -1 Then MsgBox ("查询无结果,检查是否输入有误")

End If

If co <> "" Then ‘第四种情况

flag = searchco(1, n)

If flag = 0 Then MsgBox ("查询无结果,检查是否输入有误")

End If

End Sub

Function searchnum(i, j) As Integer  '按编号查询函数

Dim m As Integer

Do While i <= j

m = Fix((i + j) / 2)

If id(m) = number Then

searchnum = m: Exit Function  '查询到结果返回值并结束该函数

End If

If id(m) > number Then         Else i = m + 1

Loop

searchnum = -1

End Function

Function searchna(i, j) As Integer  '按名称查询函数

For i = 1 To j Step 1

If n(i) = na Then searchna = i: Exit Function

Next i

searchna = -1

End Function

Function searchco(i, j) As Integer  '按货物数量函数

Dim f As Integer

f = 0

For i = 1 To j Step 1

If        Then

List1.AddItem id(i) + n(i) + c(i)

f = 1

End If

Next i

searchco (f)

End Function

回答下列问题:

(1)、程序中划线处应填入的代码是:①
(2)、Sub Command1 Click()事件处理过程中,使用了4个IF语句区分四种情况分别进行查询。按照题目所给的程序代码能否实现只按照优先级高的条件进行查询?(填是/否)
举一反三
字符串删除与插入:给定一个长度不超过100位的字符串S,现有以下两种操作指令:

指令1(删除):给出一个字符串S1,在字符串S中找到最左边的一个字符串S1,将其删除,若在S中不存在字符串S1,则字符串S不变。

例如:S=“China is a big family,it is big”   S1=“big”

      则执行指令1后,S=“China is a family,it is big”

      若S1=“small”,则S不变。

指令2(插入):给出一个字符串S2,和一个整数w,将S2插入到S中以w开始的位置。

例如:S=“a big family”   S2=“very ”   w=3

     则执行指令2后,S=“a very big family”

     注意S中“a”后有一个空格,S2中“y”后有一个空格

实现上述功能的VB程序如下。请在划线处填入合适代码。

Dim S As String

Private Sub Command1_Click()   ’单击Command1实现删除指令

Dim S1 As String

S = Text1.Text

S1 = Text2. Text

S = del(S1)

Text5.Text = S

End Sub

Private Sub Command2_Click()   ’单击Command2实现插入指令

Dim S2 As String, W As Integer

S = Text1.Text

S2 = Text2.Text

W = Val(Text4.Text)

S = {#blank#}1{#/blank#}      ’调用函数,实现插入指令

Text5.Text = S

End Sub

Function del(S1 As String) As String   ’在字符串S中查找并删除S1

Dim S3 As String

For i = 1 To Len(S) - Len(S1) + 1

  S3 = ""                    ’S3表示从位置i开始,取出长度和S1相同的字符串

  For j = i To i + Len(S1) - 1

    S3 = S3 + Mid(S, j, 1)

  Next j

  If {#blank#}2{#/blank#} Then     ’如果找到S1,则将S1删除

S = Mid(S, 1, i - 1) + Mid(S, i + Len(S1), Len(S) - Len(S1) - i+ 2)

del = S

    Exit Function     ’删除左边的第一个S1后,退出函数,以保证只删除一次

  End If

Next i

End Function

Function add(S2 As String, W As Integer) As String

  S =  Mid(S, 1, W - 1) + S2 + {#blank#}3{#/blank#}   ’将S2插入W开始的位置

  add = S

End Function

返回首页

试题篮