[试题]

试题一

阅读下列算法说明和算法,将应填入(n)处的字句写在答卷的对应栏内。

(算法说明)

某英汉词典文件包含N个记录(N>1),每个记录有两个字段:一个是英文单词,另一个是相应的汉语解释。各个记录按英文单词的词典顺序排列,各英文单词并不重复。

本算法用于维护、更新该英汉词典文件。维护、更新的方法是:首先输入一个英文单词及其汉语解释,然后在该词典中查找输入的英文单词,若找到,则用输入的汉语解释更新原有的解释;若找不到,则需要将输入的英文单词及其汉语解释插入到该词典的适当位置,使各记录仍按英文单词的词典顺序排列。

(算法)

第一步读入英汉词典文件,并将读入的N个英文单词依次存放在字符串数组ENG中,将相应的汉语解释依次存放在字符串数组CN中。数组元素CN(i)给出了数组元素ENG(i)的解释。

第二步输入英文单词及其汉语解释,将它们分别存放在字符串变量E和C中。若E为空串或都是空格,则转向第四步。

第三步根据变量E的值,用二分法在数组ENG中查找。具体步骤如下:

1.1→L,N→H

2.INT((L+H)/2)→K

3.若E=ENG(K),则C→CN(K),转向第二步

若E<ENG(K),则K-1→ (1) ;若E>ENG(K),则K+1→ (2)

4.若H<L则

对I=N,L,-1(始值,终值,增量)循环执行:

E.NG(I)→ENG(I+1)

C.N(I)→CN(I+1)

然后,将E和C分别存入 (3) 和 (4) ,N+1→N最后转向第二步

否则,转向 (5)

第四步将数组ENG和CN输出,形成新的英汉词典文件,算法结束。

参考答案与解析:

相关试题

试题一 阅读下列算法说明和算法,将应填入(n)处的字句写在答题纸的对应栏内。

[试题]试题一阅读下列算法说明和算法,将应填入(n)处的字句写在答题纸的对应栏内。(算法说明)为便于描述屏幕上每个像素的位置,在屏幕上建立平面直角坐标系。屏幕左上角的像素设为原点,水平向右方向设为X轴,垂直向下方向设为Y轴。设某种显示器的像素为128×128,即在每条水平线和每条垂直线上都有128个像素。这样,屏幕上的每个像素可用坐标(x,y)来描述其位置,其中x和y都是整数,0≤x≤127,0≤y≤127。现用一维数组MAP来存储整个一屏显示的位图信息。数组的每个元素有16位二进位,其中每位对应一个像素

  • 查看答案
  • 阅读下列算法说明和算法流程,将应填入(n)处的字句写在对应栏内。 (算法说明)

    [主观题]阅读下列算法说明和算法流程,将应填入(n)处的字句写在对应栏内。(算法说明)程序实现了常见的猜数字游戏。游戏开始时由程序自动产生一个1到100的随机数,接收用户输入,并给出提示信息,直至用户猜对。用户猜对后,显示猜测次数,并提供“重新开始”和“退出”功能。算法采用两层循环实现。外层循环采用do-while循环,由循环条件控制是否重新开始。内层采用for循环,用于判断用户的每次输入。m是随机产生的整数,键盘输入是字符串类型变量,n是整型变量。(问题1)内循环还需要一个变量,其作用为(1)。(问题2

  • 查看答案
  • 阅读下列算法说明和流程图,将应填入(n)处的字句写在对应栏内。 (算法说明) 本

    [主观题]阅读下列算法说明和流程图,将应填入(n)处的字句写在对应栏内。(算法说明)本算法按照算符优先关系,实现对算术四则混合运算表达式(可含小括号)的求值。处理对象是以字符串形式给出的、语法正确且不含变量的整数表达式。算符优先关系见表5.1(§1,§2为按顺序出现的两个运算符)说明:“”是假设的表达式开始符和结束符,不可用。为实现算法,使用了两个堆栈分别寄存运算符和运算数(中间结果值)。算法基本思路如下:首先置操作数栈S1为空,表达式起始符“”设为运算符栈S2的栈底元素;依次读入表达式的各符号,若是数字

  • 查看答案
  • 试题一 阅读下列算法说明和算法,将应填入(n)处的语句写在答题纸的对应栏内。

    [试题]试题一阅读下列算法说明和算法,将应填入(n)处的语句写在答题纸的对应栏内。(说明)为了减少直接插入排序关键字的比较次数,本算法使用了二分(折半)插入法对一个无序数组R[1..n]进行排序。排序思想是对一个待插入元素,先通过二分法(折半)找到插入位置,后移元素后将该元素插入到恰当位置(假设R[]中的元素互不相同)。(算法)1.变量声明X:DataTypei,j,low,high,mid,R0..n2.每循环一次插入一个R[i]循环:i以1为步长,从2到n,反复执行①准备X<-R[i]; (1)

  • 查看答案
  • 试题五 阅读下列程序说明和C代码,将应填入(n)处的字句写在答卷的对应栏内。

    [试题]试题五阅读下列程序说明和C代码,将应填入(n)处的字句写在答卷的对应栏内。(程序5说明)下列文法可用来描述化学分子式的书写规则(例如,Al2(CO3)3、Cu(OH)2):λ→β/βλβ→δ/δnδ→ξ/ξθ\(λ)其中:λ是一个分子式;δ或是一个元素,或是一个带括号的(子)分子式,元素或是一个大写字母(记为ξ),或是一个大写字母和一个小写字母(记为ξθ);β或是一个δ,或是在δ之后接上一个整数n,δn表示β有n个δ的元素或(子)分子式。一个完整的分子式由若干个β组成。当然一个正确的分子式除符合

  • 查看答案
  • 试题五 阅读下列程序说明,将应填入(n)处的字句写在答卷纸的对应栏内。 (程序

    [试题]试题五阅读下列程序说明,将应填入(n)处的字句写在答卷纸的对应栏内。(程序说明)对于一个公司的雇员来说,无非有3种:普通雇员、管理人员和主管。这些雇员有共同的数据:名字、每小时的工资,也有一些共同的操作:数据成员初始化、读雇员的数据成员及计算雇员的工资。但是,他们也有不同。例如,管理人员除有这些共同的特征外,有可能付固定薪水,主管除有管理人员的共同特征外,还有其他物质奖励等。3种雇员中,管理人员可以看作普通雇员的一种,而主管又可以看作管理人员的一种。我们很容易想到使用类继承来实现这个问题:普通雇员

  • 查看答案
  • 试题四 阅读下列程序说明和C程序,将应填入(n)处的字句写在答卷纸的对应栏内。

    [试题]试题四阅读下列程序说明和C程序,将应填入(n)处的字句写在答卷纸的对应栏内。(程序说明)该程序定义了两个子函数strsort和strmerge。它们分别实现了将一个字符串按字母顺序排序和将两个字符串合并排序,并删去相同字符。在主函数里,先输入两个字符串s1和s2,然后调用strsort函数对它们分别排序,然后调用strmerge函数将s1和s2合并,将合并后的字符串赋给字符串s3,最后输出字符串s3。(程序)#include<stdio.h>void strmerge(char*a,c

  • 查看答案
  • 试题四 阅读下列函数说明,将应填入(n)处的字句写在答卷纸的对应栏内。 (函数

    [试题]试题四阅读下列函数说明,将应填入(n)处的字句写在答卷纸的对应栏内。(函数1说明)函数compare(SqList A,SqList B)的功能是:设A=(al,…,am)和B=(bl,…,bn)均为顺序表,"比较",两个顺序表A和B的大小。设A'和B'分别为A和B中除去最大共同前缀后的子表(例如,A=(y,x,x,z,x,z),B=(y,x,x,z,y,x,x,z),则两者中最大的共同前缀为(y,x,x,z),在两表中除去最大共同前缀后的子表分别为A′=(x,z)和B′=(y,x,x,z

  • 查看答案
  • 试题一 阅读下列函数说明和C代码,把应填入其中n处的字句写在答卷的对应栏内。

    [试题]试题一阅读下列函数说明和C代码,把应填入其中n处的字句写在答卷的对应栏内。(函数1.1说明)函数strcpy(char*to,char*from)将字符串from复制到字符串to。(函数1.1)void strcpy(char*to,char*from){while( ( 1 ) );}(函数1.2说明)函数merge(int a[ ],int n,int b[ ],int m,int *c)是将两个从小到大有序数组a和b复制合并出一个有序整数序列c,其中形参n和m分别是数组a和b的元素个数。(函

  • 查看答案
  • 试题六 阅读下列程序说明和C£«£«代码,将应填入(n)处的字句写在答卷的对应

    [试题]试题六阅读下列程序说明和C++代码,将应填入(n)处的字句写在答卷的对应栏内。(程序6说明)本程序实现两个多项式的乘积运算。多项式的每一项由类Item描述,而多项式由类List描述。类List的成员函数有:createList():创建按指数降序链接的多项式链表,以表示多项式。reverseList():将多项式链表的表元链接顺序颠倒。multiplyList(List L1,List L2):计算多项式L1和多项式L2的乘积多项式。(程序6)#include<iostream.h>c

  • 查看答案
  • 试题一 阅读下列算法说明和算法,将应填入(n)处的字句写在答卷的对应栏内。 (