试题

试题 试卷

logo

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

浙江省A9协作体2023-2024学年高三上学期信息技术暑假返校联考试卷

张三是一名计算机专业的大学生,为了帮助同学们学习专业相关的英语词汇,编写一个简易字典程序。该程序中存放词汇数据库,在学习中输入英文单词,可以获得中文翻译结果。程序中的词汇数据库采用链表方式存储,首字母相同时按升序排序。查找单词时,首先根据首字母找到同首字母最小单词所在链表,再按照链表顺序查找该单词。
(1)、根据题意 ,部分的单词库数据逻辑结构如图所示 ,查找单词“byte” 的过程是 “binary ”→ “bit ”→“byte”,补充图中空白单元格的值为

(2)、wordlist(data,info)函数实现将词汇数据库 data 以链表的方式按字母序升序排列。info 表示词汇数据库中各字母开头的最小单词位置,如 info[0]表示字母 a 开头的最小单词在 词汇数据库 data 中的位置。实现该功能的程序如下,请在划线处填入合适的代码。

def wordlist(data,info) :

    n = len (data)

    for i in range(n):

        data[i].append(-1)    #data[i]追加一个元素-1

    for i in range(n):

        d = data[i][0]

       

        if info[k] == -1:

            info[k] = i

        else:

            head = info[k]

            q = head

            while  :

                p = q

                q = data[q][2]

            if q != head:

                data[p][2] = i

                data[i][2] = q

            else:

                data[i][2] = head

               

return data,info

(3)、searchword(data,info,key)函数实现单词的查找。程序如下,请在划线处填入合适的代码。

def searchword(data,info,key) :

    k = ord(key [0]) - ord("a")

    head = info[k]

    p = head

    while p != -1:

        if data[p][0] == key:

            return

            p = data[p][2]

return "没有找到该单词"

读取词汇数据库,存入列表 data 中,列表的每个元素包含 2 个数据项,分别为英文单词和中 文翻译,如 data = [[‘audio ’,‘音频 ’], [‘binary ’,‘二进制数 ’] …], 数据读取 存入的代码略。

'''

info = [-1] * 26

data,info = wordlist(data,info)

key = input("请输入查找单词:").lower ()    #转化为小写字母

res = searchword(data,info,key)

print(key, "查找结果是:", res)

举一反三
某仓库货物查询系统,数组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

回答下列问题:

返回首页

试题篮