试题

试题 试卷

logo

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

浙江省绍兴市会稽联盟2023-2024学年高二下学期信息技术期中考试试卷

 某英文逐词翻译软件,不区分大小写。为了加快翻译速度,在翻译的过程中,软件会将最近出现过的一些单词存入内存。若内存中有该单词则直接翻译,否则查外存词典并将该单词存入内存。内存中每个单元存储一个单词,存满时会清空最早进入内存的单词,腾出单元存放新单词。编程模拟软件的翻译过程,输入一个仅含英文、逗号或空格字符的英语句子,以句号结束,计算翻译软件需要去外存查找多少次词典,在翻译开始前,内存中没有任何单词。运行界面如图所示。

(1)、若上图中的内存容量改为 7,则需要去外存查找次词典。
(2)、实现上述功能的 Python 程序如下,请在划线处填入合适的代码。

m = int(input("请输入内存容量:"))

s = input("请输入英语句子:")

dic = {}

head = tail = 0

word = ""

for ch in s:

 if ch == " " or ch == "," or ch == ".":

 if word not in dic or dic[word] < head:

 if tail - head == m:

                

 dic[word] = tail

 tail + = 1

 word = ""

 else:

 if :

 ch = chr(ord(ch) + 32)

 word += ch

print("需要去外存查找",,"次词典")

举一反三
当计算机程序中无法用普通数据类型表示位数较多的乘数和计算结果时,就需要采用高精度乘法。如,当两个各有20位数字的整数相乘时,就无法用长整型(Long)数据类型来表示。高精度乘法运算就是运用数组,用程序模拟列竖式计算的过程。两个正整数进行高精度乘法计算的一般算法如下:

⑴将第一个整数各位上的数字按照从低位到高位的顺序依次存入数组a(1)、a(2)、…、a(La)中,将另一个整数各位上的数字按照从低位到高位的顺序依次存入数组b(1)、b(2)、…、b(Lb)中。其中,La表示第一个整数的位数,Lb表示第二个整数的位数;

⑵按照从低位到高位的顺序,将两个整数各位数值进行逐位乘法计算(第一轮先让b(1)依次乘a(1)、a(2)…a(La),第二轮再让b(2)依次乘a(1)、a(2)、…、a(La),依次进行),每位的乘法结果也按照低位到高位的顺序依次存入数组ans(1)、ans(2)、ans(3)中;

⑶对数组ans中的计算结果进行从低位到高位的进位处理;

⑷统计数组ans中实际计算结果的有效数值位数,并将位数值存入变量length;

⑸按照高位到低位的顺序输出数组ans中的计算结果。

小明按照上述方法设计了一个两数进行高精度乘法计算的VB程序,功能如下:在文本框Text1和Text2中依次输入两个整数,单击“计算”按钮Command1,程序进行高精度乘法计算,并在标签Label4中输出计算结果。

实现上述功能的VB程序如下:

返回首页

试题篮