[试题]

试题一

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

(说明)

为了减少直接插入排序关键字的比较次数,本算法使用了二分(折半)插入法对一个无序数组R[1..n]进行排序。排序思想是对一个待插入元素,先通过二分法(折半)找到插入位置,后移元素后将该元素插入到恰当位置(假设R[]中的元素互不相同)。

(算法)

1.变量声明

X:DataType

i,j,low,high,mid,R0..n

2.每循环一次插入一个R[i]

循环:i以1为步长,从2到n,反复执行

①准备

X<-R[i]; (1) ;high<-i-1;

②找插入位置

循环:当 (2) 时,反复执行(3)

若X.key<R[mid].key

则high<-mid-1

否则 (4)

③后移

循环:j以-1为步长,从 (5) ,反复执行

R[j+1]<-R[j]

④插入

R[low]<-X

3.算法结束

参考答案与解析:

相关试题

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

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

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

    [试题]试题一阅读下列算法说明和算法,将应填入(n)处的字句写在答卷的对应栏内。(算法说明)某英汉词典文件包含N个记录(N>1),每个记录有两个字段:一个是英文单词,另一个是相应的汉语解释。各个记录按英文单词的词典顺序排列,各英文单词并不重复。本算法用于维护、更新该英汉词典文件。维护、更新的方法是:首先输入一个英文单词及其汉语解释,然后在该词典中查找输入的英文单词,若找到,则用输入的汉语解释更新原有的解释;若找不到,则需要将输入的英文单词及其汉语解释插入到该词典的适当位置,使各记录仍按英文单词的词典

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

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

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

    [试题]试题三阅读下列说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。(说明)本题给出四个函数,它们的功能分别是:1.int push(PNODE *top,int e)是进栈函数,形参top是栈顶指针的指针,形参e是入栈元素。2.int pop(PNODE *top,int *e)是出栈函数,形参top是栈顶指针的指针,形参e作为返回出栈元素使用。3.int enQueue(PNODE *tail,int e)是入队函数,形参tail是队尾指针的指针,形参e是入队元素。4.int deQueu

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

    [主观题]()阅读下列说明和C语言程序,将应填入 (n)处的语句写在答题纸的对应栏内。[说明]有一个一维数组cj,内放20个学生成绩,求平均成绩。函数ave用来求20个学生的平均成绩。[C语言函数]float ave(float a[20]){ int i;float aver,sum= (1) ;for(i=1;i<20;i++) sum= (2) ;aver= (3) ;return( (4) );}main(){ float cj[20],aver;int i;printf(“input 20

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

    [试题]()阅读下列说明和C语言程序,将应填入 (n)处的语句写在答题纸的对应栏内。[说明]下面程序是一个带参数的主函数,其功能是显示在命令行中输入的文本文件内容。[C语言函数]#include"stdio.h"main(argc,argv) int argc; char *argv[]; { (1) ; if((fp=fopen(argv[1],”r’’))== (2) ) { printf(”file not open!\n”);exit(0);} while( (3) ) putchar( (4

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

    [试题]()阅读下列说明和C语言程序,将应填入 (n)处的语句写在答题纸的对应栏内。[说明]设有定义 #define ITEM struct item #define SIZE sizeof(ITEM) ITEM { int num; ITEM *next; }; ITEM *head=NULL; 下述函数定义实现按插表尾形式(即每一新表元素插入至当前所生成链表的表尾之后)生成一个正向线性链表。最后指向所生成链表表头的指针作为函数值返回。为生成一个线性链表,要求输入一批整型数据,并以-1作为结束标志。请填

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

    [试题]试题五阅读下列程序说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。(程序5说明)著名的四色定理指出任何平面区域图均可用四种颜色着色,使相邻区域着不同的颜色。本程序对给定的区域图找出所有可能的不超过四种颜色的着色方案。程序中用1~4表示四种颜色。要着色的N个区域用0~N-1编号,区域相邻关系用adj[][]矩阵表示,矩阵的i行j列的元素为1,表示区域i与区域j相邻;矩阵的i行j列的元素为0,表示区域i与区域j不相邻。数组color[]用来存储着色结果,color[i]的值为区域i所着颜色。

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

    [试题]试题三阅读下列程序说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。(说明)下面的程序功能的功能是以行为单位对字符串按下面的条件进行排序。排序条件为:从字符串中间一分为二,右边部分按字符的ASCⅡ值降序排序,排序后左边部分与右边部分进行交换。如果原字符串长度为奇数,则最中间的字符不参加排序,字符仍放在原位置上例如:位置:0 1 2 3 4 5 6 7源字符串:h g f e a b c d则处理后字符串:d c b a h g f e函数ReadDat()实现从文件in.dat中读取数据(

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

    [试题]试题四阅读下列程序说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。(说明)本程序从若干个原始文件合并成的合并文件中恢复出其中一个或全部原始文件。所有文件均作为二进制文件进行处理。合并文件中先顺序存储各原始文件,然后顺序存储各原始文件的控制信息,即文件名、文件长度和在合并文件中的位置(偏移量 )。其结构为:typedef struct{char fname [256]/*原始文件名*/long length;/*原始文件长度(字节数)*/long offset;/*原始文件在合并文件中的位

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