最新计算机软件技术基础试题库

最新计算机软件技术基础试题库
最新计算机软件技术基础试题库

一、单项选择题

(1)一个算法应该是()。

A) 程序B) 问题求解步骤的描述

C) 要满足五个基本属性D) A和C

(2)算法指的是()。

A) 计算机程序B) 解决问题的计算方法

C) 排序算法D) 解决问题的有限运算序列。

(3)与数据元素本身的形式、内容、相对位置、个数无关的是数据的()。

A) 存储结构B) 逻辑结构C) 算法D)操作

(4)从逻辑上可以把数据结构分为()两大类。

A) 动态结构、静态结构B) 顺序结构、链式结构

C) 线性结构、非线性结构D) 初等结构、构造型结构

(5)下列叙述中正确的是( )。

A)一个逻辑数据结构只能有一种存储结构

B)数据的逻辑结构属于线性结构,存储结构属于非线性结构

C)一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率D)一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率

(6)数据的基本单位是()

A) 数据项B) 数据类型C) 数据元素D) 数据变量

(7)下列程序的时间复杂度为()

i=0;s=0;

while(s

{ i++;s=s+i;}

A) O(n)B) O(n2)C) O(n)D) O(n2)

(8)下列程序段的渐进时间复杂度为()。

for( int i=1;i<=n;i++)

for( int j=1;j<= m; j++)

A[i][j] = i*j ;

A)O(m2) B)O(n2) C)O(m*n) D)(m+n) (9)程序段如下:

sum=0;

for(i=1;i<=n;i++)

for(j=1;j<=n;j++)

sum++;

其中n为正整数,则最后一行的语句频度在最坏情况下是()。

A)O(n)B) O(nlogn) C) O(n3) D) O(n2) (10)在下面的程序段中,对x的赋值语句的频度为()。

for ( i=1; i>=n ; i++)

for ( j=1; j>=n ; j++)

x:=x+1;

A) O(2n) B)O(n) C) O(n2) D) O(log2n)

(11)程序段for ( i:=n-1; i<=1; i--)

for ( j:=1; j>=i ; j++)

if (a[j]>a[j+1] )

{ t=a[j]; a[j]= a[j+1]; a[j+1]= t; }

其中n为正整数,则最后一行的语句频度在最坏情况下是()。

A) O(n)B) O(nlogn) C) O(n3) D) O(n2)

(12)设有一个递归算法如下:

int fact(int n)

{ /* 大于等于0 */

if ( n<=0 ) return 1 ;

else return n*fact (n-1) ;

}

则计算fact(n)需要调用该函数的次数为()。

A) n B) n+1 C) n+2 D) n-1

(13)下述程序段中语句①的频度是()。

s=0;

for(i=1;i

for(j=0;j<=i;j++)

s+=j;

A)

21

1)

m

)(

m

(-

+

B)

21)

m

(m-

C)

21

2)

m

)(

m

(-

+

D)

21)

m

(m+

(14)若某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则最节

省运算时间的存储方式是()。

A)单链表B)仅有头指针的单循环链表

C)双链表D)仅有尾指针的单循环链表

(1)求循环链表中当前结点的后继和前驱的时间复杂度分别是()。

A) O(n)和O(1) B) O(1)和O(1) C) O(1)和O(n)D) O(n)和O(n)

(15)求单链表中当前结点的后继和前驱的时间复杂度分别是()。

A) O(n)和O(1)B) O(1)和O(1)

C) O(1)和O(n)D) O(n)和O(n)

(16)非空的单循环链表的头指针为head,尾指针为rear,则下列条件成立的是()。

A) rear->next= =head B) rear->next->next= =head

C) head->next= =rear D) head->next->next= =rear

(17)从一个长度为n的顺序表中删除第i个元素(1≤i≤n)时,需向前移动的元素的个数是

()。

A)n-i B)n-i+1 C)n-i-1 D)i

(18)已知一个有序表为(13,18,24,35,47,50,62,83,90,115,134),当二分检索值为

90的元素时,检索成功需比较的次数是()。

A)1 B)2 C)3 D)4

(19)假设以行优先顺序存储三维数组R[6][9][6],其中元素R[0][0][0]的地址为2100,且每个元

素占4个存储单元,则存储地址为2836的元素是()。

A) R[3][3][3] B) R[3][3][4] C) R[4][3][5] D) R[4][3][4]

(20)设有一个10阶的对称矩阵A,采用压缩存储方式以行序为主序存储,a00为第一个元素,

其存储地址为0,每个元素占有1个存储地址空间,则a45的地址为()。

A) 13 B) 35 C) 17 D) 36

(21)线性表采用链式存储时,节点的存储的地址()。

A) 必须是不连续的B) 连续与否均可

C) 必须是连续的D) 和头节点的存储地址相连续

(22)用链表表示线性表的优点是()。

A) 便于随机存取B) 花费的存储空间比顺序表少

C) 数据元素的物理顺序与逻辑顺序相同D) 便于插入与删除

(23)链表不具有的特点是()。

A) 插入、删除不需要移动元素B) 可随机访问任一元素

C) 不必事先估计存储空间D) 所需空间与线性长度成正比

(24)在长度为n的顺序表中删除第i个元素(1≤i≤n)时,元素移动的次数为( )。

A) n-i+1 B) i C) i+1 D) n-i

(25)采用顺序搜索方法查找长度为n的顺序表示,搜索成功的平均搜索长度为()。

A) n B) n/2C) (n-1)/2 D) (n+1)/2

(26)将长度为n的单链表链接在长度为m的单链表之后的算法的时间复杂度为()。

A) O(1) B) O(n) C) O(m) D) O(m+n)

(27)若不带头结点的单链表的头指针为head,则该链表为空的判定条件是( )。

A) head==NULL B) head->next==NULL C) head!=NULL D) head->next==head

(28)某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用

()存储方式最节省运算时间。

A) 单链表B) 仅有头指针的单循环链表

C) 双链表D) 仅有尾指针的单循环链表

(29)若允许表达式内多种括号混合嵌套,则为检查表达式中括号是否正确配对的算法,通常选用

的辅助结构是()。

A) 栈B) 线性表C) 队列D) 二叉排序树

(30)顺序栈S中top为栈顶指针,指向栈顶元素所在的位置,elem为存放栈的数组,则元素e

进栈操作的主要语句为()。

A) s.elem[top]=e;s.top=s.top+1;B) s.elem[top+1]=e;s.top=s.top+1;

C) s.top=s.top+1; s.elem[top+1]=e;D) s.top=s.top+1;s.elem[top]=e;

(31)循环队列sq中,用数组elem[0··25]存放数据元素,sq.front指示队头元素的前一个位置,

sq.rear指示队尾元素的当前位置,设当前sq.front为20,sq.rear为12,则当前队列中的元素个数为()。

A) 8 B) 16 C) 17 D) 18

(32)链式栈与顺序栈相比,一个比较明显的优点是()。

A) 插入操作更加方便B) 通常不会出现栈满的情况

C) 不会出现栈空的情况D) 删除操作更加方便

(33)一个递归的定义可以用递归过程求解,也可以用非递归过程求解,但单从运行时间来看,通

常递归过程比非递归过程()。

A) 较快B) 较慢C) 相同D) 不定

(34)若已知一个栈的入栈序列是1,2,3,4……n,其输出序列为p1,p2,p3,……pn,若p1= =n,则pi

为()。

A) i B) n= =i C) n-i+1 D) 不确定

(35)一个栈的入栈序列是a,b,c,d,e,则栈的不可能的输出序列是( ) 。

A) edcba B) decba C) dceab D) abcde

(36)若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则不可能出现的出栈序列

是( )。

A) 2,4,3,1,5,6B) 3,2,4,1,6,5

C) 4,3,2,1,5,6 D) 2,3,5,1,6,4

(37)对于栈操作数据的原则是()。

A) 先进先出B) 后进先出C) 后进后出D) 不分顺序

(38)栈和队列的共同点是()。

A) 都是先进先出B) 都是先进后出

C) 只允许在端点处插入和删除元素D) 没有共同点

(39)一个队列的入队序列是1,2,3,4,则队列的输出序列是()。

A) 4,3,2,1 B) 1,2,3,4 C)1,4,3,2 D) 3,2,4,1

(40)设数组data[m]作为循环队列SQ的存储空间,front为队头指针,rear为队尾指针,则执行

出对操作后其头指针front值为()。

A) front=front+1 B) front=(front+1)%(m-1)

C) front=(front-1)%m D) front=(front+1)%m

(41)引起循环队列队头位置发生变化的操作是( )。

A) 出队B) 入队C) 取队头元素D) 取队尾元素

(2)设以数组A[m]存放循环队列的元素,其头尾指针分别为front和rear,则当前队列中的元素

个数为()。

A)(rear-front+m)%m B)rear-front+1 C)(front-rear+m)%m D)(rear-front)%m (42)二维数组A[12][18]采用列优先的存储方法,若每个元素各占3个存储单元,且A[0][0]地址

为150,则元素A[9][7]的地址为( )。

A) 429B) 432C) 435 D) 438

(43)设有一个10阶的对称矩阵A[10][10],采用压缩方式按行将矩阵中下三角部分的元素存入一

维数组B[]中,A[0][0]存入B[0]中,则A[8][5]在B[]中()位置。

A) 32 B) 33C) 41 D) 65

(44)若对n阶对称矩阵A以行序为主序方式将其下三角形的元素(包括主对角线上所有元素)依次

存放于一维数组B[1..(n(n+1))/2]中,则在B中确定aij(i

A) i*(i-1)/2+j B) j*(j-1)/2+i C) i*(i+1)/2+j D) j*(j+1)/2+i

(45)对稀疏矩阵进行压缩存储目的是()。

A) 便于进行矩阵运算B) 便于输入和输出

C) 节省存储空间D) 降低运算的时间复杂度

(46)对广义表L=((a,b),(c,d),(e,f))执行操作tail(tail(L))的结果是( )。

A) (e,f) B) ((e,f))C) (f) D) ( )

(47)设广义表L=((a,b,c)),则L的长度和深度分别为()。

A) 1和1 B) 1和3 C) 1和2 D) 2和3

(48)树中所有结点的度之和等于所有结点数加()。

A) 0 B)1 C) -1 D) 2

(49)在一棵具有n个结点的二叉链表中,所有结点的空域个数等于()。

A) n B) n-1 C) n+1 D) 2*n

(50)某二叉树的先序序列和后序序列正好相反,则该二叉树一定是()的二叉树。

A) 空或只有一个结点B) 高度等于其节点数

C) 任一结点无左孩子D) 任一结点无右孩子

(51)含有10个结点的二叉树中,度为0的结点数为4,则度为2的结点数为()

A)3 B)4 C)5 D)6

(52)除第一层外,满二叉树中每一层结点个数是上一层结点个数的()

A)1/2倍B)1倍C) 2倍D) 3倍

(53)对一棵有100个结点的完全二叉树按层编号,则编号为49的结点,它的父结点的编号为

()

A)24 B)25 C)98 D)99

(54)可以惟一地转化成一棵一般树的二叉树的特点是()

A)根结点无左孩子B)根结点无右孩子C)根结点有两个孩子D)根结点没有孩子

(55)设高度为h的二叉树上只有度为0和度为2的结点,则此类二叉树中所包含的结点数至少为

()。

A) 2h B) 2h-1 C) 2h+1 D) h+1

(56)在一棵度为3的树中,度为3的节点个数为2,度为2的节点个数为1,则度为0的节点个

数为()。

A) 4 B) 5 C) 6 D) 7

(57)设森林F对应的二叉树为B,它有m个结点,B的根为p,p的右子树结点个数为n,森林F

中第一棵子树的结点个数是()。

A)m-n B)m-n-1 C) n+1 D) 条件不足,无法确定

(58)将一株有100个节点的完全二叉树从上到下,从左到右依次进行编号,根节点的编号为1,

则编号为49的节点的左孩子编号为()。

A) 98 B) 89 C) 50 D) 没有孩子

(59)下列图示的顺序存储结构表示的二叉树是(A )

(60)树最适合用来表示()。

A) 有序数据元素B) 无序数据元素

C) 元素之间具有分支层次关系的数据D) 元素之间无联系的数据

(61)在一个非空二叉树的中序遍历序列中,根结点的右边()。

A) 只有右子树上的所有结点B) 只有右子树上的部分结点

C) 只有左子树的上的部分结点D) 只有左子树上的所有结点

(62)任何一棵二叉树的叶结点在先序、中序和后序遍历序列中相对次序()。

A) 不发生改变B) 发生改变C) 不能确定D) 以上都不对

(63)深度优先遍历类似于二叉树的()。

A) 先序遍历B) 中序遍历C) 后序遍历D) 层次遍历

(64)广度优先遍历类似于二叉树的()。

A) 先序遍历B) 中序遍历C) 后序遍历D) 层次遍历

(65)任何一个无向连通图的最小生成树()。

A) 只有一棵B) 一棵或多棵C) 一定有多棵D) 可能不存在

(注,生成树不唯一,但最小生成树唯一,即边权之和或树权最小的情况唯一)(66)在分析折半查找的性能时常常加入失败节点,即外节点,从而形成扩充的二叉树。若设失败

节点i所在层次为Li,那么查找失败到达失败点时所做的数据比较次数是()。

A) Li+1 B) Li+2 C) Li-1 D) Li

(67)向一个有127个元素原顺序表中插入一个新元素并保存原来顺序不变,平均要移动()

个元素。

A) 8 B) 63.5 C) 63 D) 7

(68)由同一组关键字集合构造的各棵二叉排序树( )。

A) 其形态不一定相同,但平均查找长度相同

B) 其形态不一定相同,平均查找长度也不一定相同

C) 其形态均相同,但平均查找长度不一定相同

D) 其形态均相同,平均查找长度也都相同

(69)衡量查找算法效率的主要标准是()。

A) 元素的个数B) 所需的存储量C) 平均查找长度D) 算法难易程度

(70)适合对动态查找表进行高效率查找的组织结构是()。

A) 有序表B) 分块有序表C) 二叉排序树D) 快速排序

(3)能进行二分查找的线性表,必须以()。

A) 顺序方式存储,且元素按关键字有序

B) 链式方式存储,且元素按关键字有序

C) 顺序方式存储,且元素按关键字分块有序

D) 链式方式存储,且元素按关键字分块有序

(71)为使平均查找长度达到最小,当由关键字集合{05,11,21,25,37,40,41,62,84}构建二叉排序树时,

第一个插入的关键字应为()

A) 5 B)37 C) 41 D) 62

(72)对关键字序列(56,23,78,92,88,67,19,34)进行增量为3的一趟希尔排序的结果为( )。

A) (19,23,56,34,78,67,88,92) B) 23,56,78,66,88,92,19,34)

C) (19,23,34,56,67,78,88,92)D) (19,23,67,56,34,78,92,88)

(73)用某种排序方法对关键字序列{35,84,21,47,15,27,68,25,20}进行排序时,序列的变化情况如

下:

20,15,21,25,47,27,68,35,84

15,20,21,25,35,27,47,68,84

15,20,21,25,27,35,47,68,84

则采用的方法是()。

A) 直接选择排序B) 希尔排序C) 堆排序D) 快速排序

(74)一组记录的排序码为(46,79,56,38,40,84),则利用快速排序的方法,以第一个记录为基准得到

的第一次划分结果为()。

A) 38,40,46,56,79,84 B) 40,38,46,79,56,84 C) 40,38,46,56,79,84 D) 40,38,46,84,56,79

(75)快速排序在最坏情况下的时间复杂度是()

A) O(n2log2n) B) O(n2) C) O(nlog2n) D) O(log2n)

(76)下列排序算法中不稳定的是()。

A) 直接选择排序B) 折半插入排序C) 冒泡排序D) 快速排序

(77)对待排序的元素序列进行划分,将其分为左、右两个子序列,再对两个子序列进行同样的排

序操作,直到子序列为空或只剩下一个元素为止。这样的排序方法是()。

A) 直接选择排序B) 直接插入排序C) 快速排序D) 冒泡排序

(78)将5个不同的数据进行排序,至多需要比较()次。

A) 8 B) 9 C) 10 D) 25

(79)排序算法中,第一趟排序后,任一元素都不能确定其最终位置的算法是()。

A)选择排序B)快速排序C)冒泡排序D)插入排序

(80)排序算法中,不稳定的排序是()。

A)直接插入排序B)冒泡排序C)堆排序D)选择排序

(81)排序方法中,从未排序序列中依次取出元素与已排序序列(初始时为空)中的元素进行比较,

将其放入已排序序列的正确位置上的方法,称为().

A) 希尔排序B) 冒泡排序C) 插入排序D) 选择排序

(82)从未排序序列中挑选元素,并将其依次插入已排序序列(初始时为空)的一端的方法,称为

()。

A) 希尔排序B) 归并排序C) 插入排序D) 选择排序

(83)对n个不同的排序码进行冒泡排序,在下列哪种情况下比较的次数最多。()

A) 从小到大排列好的B) 从大到小排列好的

C) 元素无序D) 元素基本有序

(84)对n个不同的排序码进行冒泡排序,在元素无序的情况下比较的次数为()。

A) n+1 B) n C) n-1 D) n(n-1)/2

(85)快速排序在下列哪种情况下最易发挥其长处。()

A) 被排序的数据中含有多个相同排序码

B) 被排序的数据已基本有序

C) 被排序的数据完全无序

D) 被排序的数据中的最大值和最小值相差悬殊

(86)对有n个记录的表作快速排序,在最坏情况下,算法的时间复杂度是()。

A) O(n) B) O(n2) C) O(nlog2n) D) O(n3)

(87)若一组记录的排序码为(46, 79, 56, 38, 40, 84),则利用快速排序的方法,以第一个记录为基

准得到的一次划分结果为()。

A) 38, 40, 46, 56, 79, 84 B) 40, 38, 46 , 79, 56, 84

C) 40, 38,46, 56, 79, 84 D) 40, 38, 46, 84, 56, 79

(88)下列关键字序列中,()是堆。

A) 16, 72, 31, 23, 94, 53 B) 94, 23, 31, 72, 16, 53

C) 16, 53, 23, 94,31, 72 D) 16, 23, 53, 31, 94, 72

(89)堆是一种()排序。

A) 插入B) 选择C) 交换D) 归并

(90)堆的形状是一棵()。

A) 二叉排序树B) 满二叉树C) 完全二叉树D) 平衡二叉树

(91)若一组记录的排序码为(46, 79, 56, 38, 40, 84),则利用堆排序的方法建立的初始堆为()。

A) 79, 46, 56, 38, 40, 84 B) 84, 79, 56, 38, 40, 46

C) 84, 79, 56, 46, 40, 38 D) 84, 56, 79, 40, 46, 38

(92)下述几种排序方法中,要求内存最大的是()。

A) 插入排序B) 快速排序C) 归并排序D) 选择排序

(93)有一组数据(15,9,7,8,20,-1,7,4),用堆排序的筛选方法建立的初始堆为()。

A) -1,4,8,9,20,7,15,7 B) -1,7,15,7,4,8,20,9

C) -1,4,7,8,20,15,7,9 D) A,B,C 均不对。

(94)51.下列四个序列中,哪一个是堆()。

A) 75,65,30,15,25,45,20,10 B) 75,65,45,10,30,25,20,15

C) 75,45,65,30,15,25,20,10 D) 75,45,65,10,25,30,20,15

(95)以下序列不是堆的是( )。

A) (100,85,98,77,80,60,82,40,20,10,66) B) (100,98,85,82,80,77,66,60,40,20,10)

C) (10,20,40,60,66,77,80,82,85,98,100) D) (100,85,40,77,80,60,66,98,82,10,20)

(96)快速排序方法在()情况下最不利于发挥其长处。

A) 要排序的数据量太大B) 要排序的数据中含有多个相同值

C) 要排序的数据个数为奇数D) 要排序的数据已基本有序

(97)对关键码序列28,16,32,12,60,2,5,72 快速排序,从小到大一次划分结果为()。

A) (2,5,12,16)26(60,32,72) B) (5,16,2,12)28(60,32,72)

C) (2,16,12,5)28(60,32,72) D) (5,16,2,12)28(32,60,72)

(98)对下列关键字序列用快速排序法进行排序时,速度最快的情形是()。

A) {21,25,5,17,9,23,30} B){25,23,30,17,21,5,9}

C) {21,9,17,30,25,23,5} D) {5,9,17,21,23,25,30}

二、填空题

(99)数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之

间的关系和运算等的学科。

(100)数据结构被形式地定义为(D, R),其中D是数据元素的有限集合,R是D上的关系有限集合。

(101)数据结构包括数据的逻辑结构、数据的存储结构和数据的运算这三个方面的内容。

(102)数据结构按逻辑结构可分为两大类,它们分别是线性结构和非线性结构。

(103)线性结构中元素之间存在一对一关系,树形结构中元素之间存在一对多关系,图形结构中元素之间存在多对多关系。

(104)在线性结构中,第一个结点没有前驱结点,其余每个结点有且只有1个前驱结点;最后一个结点没有后续结点,其余每个结点有且只有1个后续结点。

(105)在树形结构中,树根结点没有前驱结点,其余每个结点有且只有 1 个前驱结点;叶子结点没有后续结点,其余每个结点的后续结点数可以任意多个。

(106)在图形结构中,每个结点的前驱结点数和后续结点数可以任意多个。

(107)数据的存储结构可用四种基本的存储方法表示,它们分别是顺序、链式、索引和散列。

(108)数据的运算最常用的有5种,它们分别是插入、删除、修改、查找、排序。

(109)一个算法的效率可分为时间效率和空间效率。

(110)对于给定的n个元素,可以构造出的逻辑结构有集合,线性表,树,图四种。

(111)顺序映象的特点是借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系。非顺序映象的特点是借助是指示元素存储地址的指针表示数据元素之间的逻辑关系。任何一个算法的设计取决于选定逻辑结构,而算法的实现依赖于采用的

存储结构。

(112)数据类型是一组___________性质相同的值集合以及定义在这个值集合上的一组操作的总称。

(113)数据对象是___________性质相同的数据元素的集合,是数据的一个子集。

(114)如果操作不改变原逻辑结构的“值”,而只是从中提取某些信息作为运算结果,则称该类运算为型运算。引用

(115)算法的健壮特性是指做为一个好的算法,当输入的数据非法时,也能适当地做出正确反应或进行相应的处理,而不会产生一些莫名其妙的输出结果。

(116)算法分析不是针对实际执行时间的精确的算出算法执行具体时间的分析,而是针对算法中语句的执行次数做出估计,从中得到算法执行时间的信息。

(117)T(n)=O(f(n)),它表示随问题规模n的增大算法的执行时间的增长率和f(n)的增长率

相同,称作算法的渐进时间复杂度,简称时间复杂度。

(118)若算法执行时所需要的辅助空间相对于输入数据量而言是个常数,则称这个算法为

原地工作,辅助空间为O(1)。

(119)在带有头结点的单链表中L中,第一个元素结点的指针是。L->next (120)在一个带头节点的单循环链表中,p指向尾结点的直接前驱,则指向头结点的指针head 可用p表示为head= 。p->next->next

(121)设单链表的结点结构为(data,next),next为指针域,已知指针px指向单链表中data为x 的结点,指针py指向data为y的新结点, 若将结点y插入结点x之后,则需要执行以下语句: py->next=px->next; px->next=py。

(122)对于栈操作数据的原则是。后进先出

(123)设以数组A[m]存放循环队列的元素,其头尾指针分别为front和rear,则当前队列中的元素个数为。(rear-front+m)%m

(124)若已知一个栈的入栈序列是1,2,3,4……n,其输出序列为p1,p2,p3,……pn,若p1= =n,则pi为。n-i+1

(125)队列是被限定为只能在表的一端进行插入运算,在表的另一端进行删除运算的线性表。

(126)通常程序在调用另一个程序时,都需要使用一个栈来保存被调用程序内分配的局部变量。形式参数的存储空间以及返回地址。

(127)栈下溢是指在___栈空_____时进行出栈操作。

(128)用P表示入栈操作,D表示出栈操作,若元素入栈的顺序为1234,为了得到1342出栈顺序,相应的P和D的操作串为_______ 。PDPPDPDD

(129)在具有n个单元的循环队列中,队满共有n-1个元素。

(130)队列是被限定为只能在表的一端进行插入运算,在表的另一端进行删除运算的线性表。

(131)循环队列的引入,目的是为了克服_______假溢出。

(132)所谓稀疏矩阵指的是_______非零元很少(t<

(133)在稀疏矩阵表示所对应的三元组线性表中,每个三元组元素按行为主序,列号为辅序的次序排列。

(134)二位数组A m×n按行优先顺序存储在内存中,元素a00地址为loc(a00),每个元素在内存中占d个字节,元素a ij的地址计算公式为loc(a ij)= loc(a00)+(i*n+j)*d 。

(135)树内个结点的度最大值称为树的度。

(136)一个二叉树第5层节点最多有16个。

(137)已知完全二叉树T的第5层只有7个结点,则该树共有____11____个叶子结点。

(138)在一棵二叉树中,度为零的结点的个数为N0,度为2的结点的个数为N2,则有N0

=______N2+1。

(139)假设用于通信的电文由8个字母组成,其频率分别为7,19,2,6,32,3,27,10。设计哈夫曼编码,其中字母的编码长度最大是5位。

(140)一棵具有257个结点的完全二叉树,它的深度为。9

(141)散列法存储的基本思想是由关键字的值决定数据的存储地址。

(142)大多数排序算法都有两个基本的操作:。比较和移动(143)由于查找算法的基本运算是关键字之间的比较操作,所以可用平均查找长度来衡量查找算法的性能。

(144)查找有静态查找和动态查找,当查找不成功时动态查找会将查找关键字插入在表中。

(145)顺序查找法中设置监视哨,可以起到防止越界的作用。

(146)假设列表长度为n,那么查找第i个数据元素时需进行n-i+1次比较。

(147)假设查找每个数据元素的概率相等,即Pi=1/n,则顺序查找算法的平均查找长度为:

ASL=(n+1)/2。

(148)折半查找法又称为二分法查找法,这种方法要求待查找的列表必须是

按关键字大小有序排列的顺序表。

(149)假定将长度为n的表分成b块,且每块含s个元素,则b=n/s。又假定表中每个元素的

查找概率相等,

(150)在有序表(12,24,36,48,60,72,84)中二分查找关键字72时所需进行的关键字比较次数为2。

(151)折半查找有序表(4,6,12,20,28,38,50,70,88,100),若查找表中元素20,它将依次与表中元素28,6,12,20 比较大小。

(152)在各种查找方法中,平均查找长度与结点个数n无关的查找方法是散列查找。

(153)当关键字集合很大时,关键字值不同的元素可能会映象到哈希表的同一地址上,即k1≠k2 ,但H(k1)=H(k2),这种现象称为冲突.

(154)在散列函数H(key)=key MOD p 中,p应取素数。

(155)设哈希表长m=14, 哈希函数H(key)=key MOD11.表中已有4个结点;addr(15)=4,

addr(38)=5, addr(61)=6, addr(84)=7, 其余地址为空。如用二次探测再散列处理冲突,关键字为49的结点的地址是。9

(156)希尔排序是属于插入排序的改进方法。

(157)给出一组关键字T=(20,4,34,5,16,33,18,29,2,40,7),要求从下到大进行排序,试给出快速排序(选一个记录为枢纽)第一趟排序结果。7,4,2,85,16,18,20,,29,33,40,34 (158)大多数排序算法都有两个基本的操作:比较和移动。

(159)在对一组记录(54,38,96,23,15,72,60,45,83)进行直接插入排序时,当把第7个记录60插入到有序表时,为寻找插入位置至少需比较次。6。

(160)在插入和选择排序中,若初始数据基本正序,则选用插入;若初始数据基本反序,则选用选择。

(161)在堆排序和快速排序中,若初始记录接近正序或反序,则选用堆排序;若初始记录基本无序,则最好选用快速排序。

(162)对于n个记录的集合进行冒泡排序,在最坏的情况下所需要的时间是O(n2) 。若

对其进行快速排序,在最坏的情况下所需要的时间是O(n2)

(173)对于n个记录的集合进行归并排序,所需要的平均时间是O(nlog2n),所需要的附加空间是O(n) 。

7.对于n个记录的表进行2路归并排序,整个归并排序需进行┌log2n┐趟(遍)。

8. 设要将序列(Q, H, C, Y, P, A, M, S, R, D, F, X)中的关键码按字母序的升序重新排列,则:

冒泡排序一趟扫描的结果是H C Q P A M S R D F X Y ;

初始步长为4的希尔(shell)排序一趟的结果是P A C S Q H F X R D M Y ;

二路归并排序一趟扫描的结果是H Q C Y A P M S D R F X;

快速排序一趟扫描的结果是 F H C D P A M Q R S Y X ;

堆排序初始建堆的结果是A D C R F Q M S Y P H X 。

9. 在堆排序、快速排序和归并排序中,

若只从存储空间考虑,则应首先选取方法,其次选取快速排序方法,最后选取归并排序方法;若只从排序结果的稳定性考虑,则应选取归并排序方法;

若只从平均情况下最快考虑,则应选取堆排序、快速排序和归并排序方法;

若只从最坏情况下最快并且要节省内存考虑,则应选取堆排序方法。

三、程序填空题

(174)以下程序的功能是实现带附加头结点的单链表数据结点逆序连接,请填空完善之。

void reverse(pointer h)

/* h为附加头结点指针;*/

{ pointer p,q;

p=h->next; h->next=NULL;

while((1)________)

{q=p; p=p->next; q->next=h->next; h->next=(2)________; }

}

(1)p!=null ∥链表未到尾就一直作

(2)q ∥将当前结点作为头结点后的第一元素结点插入

(175)下列算法在顺序表L中依次存放着线性表中的元素,在表中查找与e相等的元素,若L.elem[i]=e,则找到该元素,并返回i+1,若找不到,则返回“-1”,请填空完善之。

int Locate(SeqList L,int e)

{ i=0 ; /*i为扫描计数器,初值为0,即从第一个元素开始比较*/ while ((i<=https://www.360docs.net/doc/7c12326384.html,st)&&(L.elem[i]!=e) ) i++;

/*顺序扫描表,直到找到值为key的元素,或扫描到表尾而没找到*/ if ( i<=https://www.360docs.net/doc/7c12326384.html,st ) return(i+1); /*若找到值为e的元素,则返回其序号*/

else return(-1); /*若没找到,则返回空序号*/ }

(176)下列算法在顺序表L中第i个数据元素之前插入一个元素e。插入前表长n=L->last+1,i的合法取值范围是1≤i≤L->last+2,请填空完善之。

void InsList(SeqList *L, int i, int e)

{ int k;

if((i<1) || (i>L->last+2)) printf(“插入位置i值不合法”);

if(L->last>=maxsize-1) printf(“表已满无法插入”);

for(k=L->last;k>=i-1;k--) /*为插入元素而移动位置*/

L->elem[k+1]=L->elem[k] ;

L->elem[i-1]=e ; /*在C语言数组中,第i个元素的下标为i-1*/

L->last++ ;

}

(177)下列算法是在顺序表L中删除第i个数据元素,并用指针参数e返回其值。i的合法取值为1≤i≤https://www.360docs.net/doc/7c12326384.html,st+1,请填空完善之。

int DelList(SeqList *L, int i, int *e)

{ int k;

if((i<1)||(i> L->last+1 )) printf(“删除位置不合法!”);

*e= L->elem[i-1] ; /* 将删除的元素存放到e 所指向的变量中*/

for(k=i;i<=L->last;k++)

L->elem[k-1]= L->elem[k] ; /*将后面的元素依次前移*/

L->last-- ;

}

四、解答题

(178)假设以数组seqn[m]存放循环队列的元素,设变量rear和quelen分别指示循环队列中队尾元素的位置和元素的个数。

(1) 写出队满的条件表达式;

(2) 写出队空的条件表达式;

(3) 设m=40,rear=13,quelen=19,求队头元素的位置;

(4) 写出一般情况下队头元素位置的表达式。

(179)已知一棵二叉树的中序序列为ABCDEFG,层序序列为BAFEGCD,请画出该二叉树。

(180)已知一棵二叉树的前序序列为ABCDEFGH,中序序列为CBEDFAGH,请画出该二叉树。

(181)已知一棵二叉树如图所示。请分别写出按前序、中序、后序和层次遍历是得到的顶

点序列。

(182)已知一棵二叉树的前序序列为:A,B,D,G,J,E,H,C,F,I,K,L中序序列:D,J,G,B,E,H,

A,C,K,I,L,F。

(1) 写出该二叉树的后序序列;

(2) 画出该二叉树;

(3) 求该二叉树的高度(假定空树的高度为-1)和度为2、度为1、及度为0的结点个数。

该二叉树的后序序列为:J,G,D,H,E,B,K,L,I,F,C,A。

该二叉树的形式如图所示:

(183)设有一组关键字{9,01,23,14,55,20,84,27},采用哈希函数:H(key)=key mod 7 ,表长为10,用Hi=(H(key)+di) mod 10(di=12,22,32,…,)解决冲突。对该关键字序列构造哈希表,(184)对于给定的一组记录的关键字{ 23,13,17,21,30,60,58,28,30,90},试分别写出冒泡排序、快速排序、堆排序、归并排序第一趟排序后的结果。

(185)采用哈希函数H(k)=2*k mod 13并用链地址法处理冲突,在数列地址空间[0..12]中对关键字序列22,41,53,46,30,13,1,67,51构造哈希表。

四、算法设计题(10分)

}

(186)阅读下面的程序,说明程序的具体功能。

typedef int elementype

typedef struct node

{ elemtype data;

strunct node *next;

}linklist;

void function( linklist *head, elemtype x )

{ linklist *q, *p;

q=head;

p=q-next;

while (p !=NULL) && (p->data != x )

{ q=p; p=p->next; }

if (q==NULL) printf (“there is no this node ::\n”);

else { q ->next =p ->next ; free (p); }

}

设哈希(Hash)表的地址范围为0~17,哈希函数为:H(K)=K MOD 16。K为关键字,用线性探测法再散列法处理冲突,输入关键字序列:

(10,24,32,17,31,30,46,47,40,63,49)

造出Hash表,试回答下列问题:

画出哈希表的示意图;

若查找关键字63,需要依次与哪些关键字进行比较?

若查找关键字60,需要依次与哪些关键字比较?

假定每个关键字的查找概率相等,求查找成功时的平均查找长度。

软件技术基础试题及答案

软件技术基础试题及答案

软件技术基础 系班级姓名成绩 得分评卷 人一、填空题(每空1分,共25分) 1.数据结构作为一门学科,主要研究数据 的、存储结构以及 三方面内容。 2.当对一个线性表经常进行插入或删除操作时,则 宜采用存储结构;而经常进行的是访问操作,而很少进行插入或删除操作时,则宜采用存储结构。 3.在线性结构中,首结点有个前驱结点, 其余每个结点有且只有个前驱结点。4.限定在表的一端进行插入,在表的另一端进行删 除的线性表称为;限定在表的一端进行插入和删除运算的线性表称为。 5.一个8阶的下三角矩阵B按行优先顺序压缩存储 第2页,共19页

6. 第3页,共19页

7. 8.操作系统通过记载、跟 踪、控制进程的执行,它是进程存在的唯一标志。 作业调度程序是从处于状态的作业中选取一个作业并把它装入主存。 12A.软件生命周期瀑布模型一般可分为问题分析、、、 和软件维护五个阶段。 , 得分评卷 人二、选择题(每小题1分,共10分)下列语句正确的是()。 A. int *p=&x; B. int *p=x; C. int p=&x; D. int *p=*x; 2. int a[ ]={1,2,3,4,5},b[5],*p; 则下列语句中不 正确的语句是()。 A. p=b+1; B.p=&a[3]; C. p=a; D.b=a; 3. 设有以下说明语句 struct node{ int a;float b;};struct node node1,node2,*pnode; 则下列语句中正确是()。 A. node1=node2; B. 第4页,共19页

西电《软件技术基础》上机大作业答案解析

说明 每个实验题目含有一个main函数和一些函数,与实验题目相关的基本运算的函数定义和main函数定义的代码在附录以及对应的文件夹中给出,供上机实验参考使用。对于每个题目,只需要根据题目要求设计算法,补充函数定义,然后对程序进行编译、调试。

实验一线性表 一、实验目的 1.熟悉线性表的顺序和链式存储结构 2.掌握线性表的基本运算 3.能够利用线性表的基本运算完成线性表应用的运算 二、实验内容 1.设有一个线性表E={e1, e2, … , e n-1, e n},设计一个算法,将线性表逆置,即使元素排列次序颠倒过来,成为逆线性表E’={ e n , e n-1 , … , e2 , e1 },要求逆线性表占用原线性表空间,并且用顺序表和单链表两种方法表示,分别用两个程序来完成。(文件夹:顺序表逆置、单链表逆置) 2.已知由不具有头结点的单链表表示的线性表中,含有三类字符的数据元素(字母、数字和其他字符),试编写算法构造三个以循环链表表示的线性表,使每个表中只含有同一类的字符,且利用原表中的结点空间,头结点可另辟空间。(文件夹:分解单链表) 实验二栈和队列 一、实验目的 1.熟悉栈和队列的顺序和链式存储结构 2.掌握栈和队列的基本运算 3.能够利用栈和队列的基本运算完成栈和队列应用的运算 二、实验内容 1.设单链表中存放有n个字符,试编写算法,判断该字符串是否有中心对称的关系,例如xyzzyx是中心对称的字符串。(提示:将单链表中的一半字符先依次进栈,然后依次出栈与单链表中的另一半字符进行比较。)(文件夹:判字符串中心对称) 2.假设以数组sequ[m]存放循环队列的元素,同时设变量rear和quelen 分别指示循环队列中队尾元素的位置和内含元素的个数。编写实现该循环队列的入队和出队操作的算法。 提示:队空的条件:sq->quelen==0;队满的条件:sq->quelen==m。(文件夹:循环队列)实验三串 一、实验目的 1.熟悉串的顺序存储结构 2.掌握串的基本运算及应用 二、实验内容 1.串采用顺序存储结构,编写朴素模式匹配算法,查找在串中是否存在给定的子串。(文件夹:模式匹配) 2.若S是一个采用顺序结构存储的串,利用C的库函数strlen和strcpy(或strncpy)编写

软件技术基础模拟题

《软件技术基础》模拟题 一、填空题 1. 软件工程的传统途径是_____________方法学。 2. 一般说来,软件生命周期由_____________、软件开发和软件维护三个时期组成。 3. _______________的目的就是用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否值得去开发。 4. 数据流图描述系统的_____________模型。 5. 数据字典的用途是作为_____________阶段的工具。 6. 在可行性研究以后,如果确认开发一个新的软件系统是必要的而且是可能的,那么就进入___________阶段。 7. ER模型中包含“实体”、“联系”和“_____________”三个基本成分。 8. 结构化分析方法是面向_____________进行需求分析的方法。 9. _____________是对一个软件结构内不同模块之间互联程度的度量。 10. _____________标志一个模块内各个元素彼此结合的紧密程度,它是信息隐蔽和局部化概念的自然扩展。 11. 面向数据流的设计方法把信息流映射成软件结构,信息流的类型决定了映射的方法。信息流有变换流和_____________两种类型。 12. 衡量模块独立性的两个定性的度量标准是内聚性和_________。 13. 在详细设计阶段,经常采用的工具有程序流程图、盒图、_________。 14. Jackson图不仅可表示程序结构,还可表示_________。 15. 20世纪70年代中期出现了“面向数据结构”的设计方法,其中有代表性的是Jackson方法和_________方法。 16. 面向对象有三个基本要素,它们是抽象、封装性和________。 17. 所谓对象模型就是表示静态的、________的系统的“数据”性质。 18. 维护的副作用有编码副作用、数据副作用和________副作用。 19. 软件测试是为了__________而执行程序的过程。 20. 白盒测试是结构测试,黑盒测试是________测试。 二选择 1. 研究开发资源的有效性是进行_______可行性研究的一方面。 A. 经济 B. 技术 C. 操作 D. 社会 2. 软件生命周期中时间最长的阶段是______阶段。 A. 需求分析 B. 详细设计 C. 测试 D. 维护 3. 瀑布模型是一种_________。

软件技术基础模拟试题及参考答案

软件技术基础模拟试题(第二十次省统考) 一、是非判断题(正确选填A,错误选填B)(每小题1分,共10分) 1、数据元素是数据的基本单位,数据项是数据的最小单位。() 2、栈是特殊的线性表,须用一组地址连续的存储单元来存储其元素。() 3、引入虚拟存储技术后,逻辑内存总容量是由地址总线的位置确定的。() 4、编译程序是一种常用应用软件。() 5、顺序文件和链接文件的长度都可以动态变化。() 6、在文件系统中采用目录管理文件。() 7、允许多用户在其终端上同时交互地使用计算机的操作系统称为实时系统。() 8、程序、数据、和进程控制块是构成一个进程的三要素。() 9、黑盒测试时,既要考虑程序的内部逻辑结构又要考虑其外部特性。() 10、软件的总体设计和详细设计都要用PAD图形工具。() (参考答案:1~10:ABABB ABABB) 二、单项选择题:(每小题1分,共5分) 1、允许用户把若干作业提交计算机系统集中处理的操作系统称为()。 A分时操作系统B实时操作系统C网络操作系统D批处理操作系统2、分配到必要资源并获得了处理机时的进程的状态称为()。 A就绪状态B执行状态C等待状态D阻塞状态 3、利用通道技术可以在()之间直接交换数据。 A内存与CPU B CPU与外设C内存与外设D内存、CPU和外设三者4、以下的准则中哪个不是软件设计的准则()。 A编程语言选择准则B信息屏蔽准则 C结构化和模块化准则D抽象准则 5、有一数列:97657613294958经过一趟排序后得到: 65971376294958请问使用的是何种排序方法?() A简单插入排序B冒泡排序C2路归并排序D快速排序 (参考答案:DBCAC) 软件技术基础模拟试题(第十九次省统考) 一、是非判断题(正确选填A,错误选填B)(每小题1分,共10分) 1、在目前,用于保证软件质量的主要手段是进行软件测试。() 2、使用DMA方式传送数据期间不需要CPU干预。() 3、线性顺序队列会产生“假溢出”,而线性循环队列则不会。() 4、对同一种算法,用高级语言编写的程序比用低级语言编写的程序运行速度快。() 5、在线性表中,数据的存储方式有顺序和链接两种。() 6、进程由程序块、文件控件块和数据块三部分组成。() 7、在面向对象的程序设计中,派生类只能从一个基类产生。() 8、操作系统是用户和硬件的接口。() 9、个人计算机中可配置的最大内存容量受地址总线位数的限制。() 10、软件维护中最困难的问题是软件配置不全。() (参考答案:1~10:A、A、A、B、A、B、A、A、A、B) 二、单项选择题:(每小题1分,共5分)

软件技术基础教学大纲资料

《软件技术基础》教学大纲 课程编号:23000840 适用专业:电子信息类(非计算机专业) 学时数:40 学分数: 2.5 开课学期:第4学期 先修课程:《C语言》 考核方式:笔试(闭卷) 执笔者:沈晓峰编写日期:2015年3月审核人(教学副院长): 一、课程性质和目标 授课对象:电子信息工程专业大学二年级本科生 课程类别:学科拓展课程 教学目标: 本课程是针对工科电子信息类本科生开设的一门学科拓展课程。着重培养学生在软件设计领域的基本素质,基本方法和设计理念。授课对象为大学二年级学生,课程任务是通过本课程的学习和相关实验的练习,使学生掌握数据结构、操作系统等软件技术的基本理论知识,具有一定的软件开发能力。 二、教学内容和要求 1、课堂理论教学要求和学时安排(32学时) 1)C程序设计(4学时) (1)C语言回顾,指针的基本概念、运算方法和使用(2学时)。 (2)结构体的基本概念和使用方法(2学时)。 2)数据结构(20学时) (1)数据结构的基本概念(2学时):理解数据结构的基本概念;理解线性和非线性结构的概念。 (2)线性数据结构(9学时):理解表、栈、队列等线性数据结构的概念,存储方式及基于不同存储方式的相关操作的实现方法。 a.理解表的概念及顺序表的存储特点,掌握其创建、插入、删除等实现方法(2 学时); b.掌握单链表、双链表、循环链表的创建、插入、删除方法(2学时); c.理解栈的概念及结构特点,掌握顺序栈及链栈的出栈、入栈操作的实现方法 (2学时);

d.理解队列的概念及特点,掌握顺序、循环队列的创建、出队、入队、判空、判满等操作。掌握链队列的创建及出队、入队(2学时); e.理解数组的概念及二维数组的存放方式,掌握对称矩阵及稀疏矩阵的压缩存储方法(1学时)。 (3)非线性数据结构(5学时):了解典型非线性数据结构的基本概念、存储和访问方式。 a.理解二叉树、满二叉树、完全二叉树的概念及基本性质(1学时); b.掌握二叉树的三种遍历算法、树和二叉树的转换方法(2学时); c.理解图的基本概念及性质,掌握图的邻接矩阵、邻接图存储方式(2学时)。 (4)结构查找和排序(4学时):理解查找和排序的基本概念,掌握三种查找(顺序、二分、分块)和三种排序(简单插入,简单选择和冒泡)方法和实现。 3)操作系统(8学时) (1)操作系统的基本概念(2学时):了解操作系统的基本概念,操作系统发展的历 程和现代操作系统的基本特征。 (2)处理机管理(4学时);理解进程、进程的状态、描述方式、进程控制的手段, 进程的同步和互斥,进程通信和死锁等基本概念,理解进程调度的相关方法。 (3)作业管理(2学时):理解作业、作业的状态、描述方式、作业控制的手段,等 基本概念,理解作业调度的相关方法。 通过这一章的学习同学们应该理解一个用户作业提交给计算机之后,操作系统控制计算机来执行该用户作业的基本流程。 2、实验安排(8学时) 共设置5组实验,分为上机实验和课外实验两部分:上机实验包括两个实验,课外实验包括3个实验,详细实验内容见实验教学大纲。 三、考核方式 课程最后成绩构成包括:期末考试卷面成绩(70%),平时成绩(10%),实验成绩(20%)。 实验部分的考核包含上机实验和课外实验,实验成绩采用实验出勤、实验考核、实验报告和实验程序验证相结合的方式给出。 四、教材和参考资料 1、教材 《软件技术基础》,黄迪明,电子科技大学出版社,1998年 2、参考资料

软件技术基础自测一答案

《软件技术基础》课程自测题一 一、单项选择题(每题2分,共40分) ●采用二元描述法可描述任意数据结构为(K,R),其中K和R分别代表(C)的集合 A 算法和操作 B 逻辑结构和存储结构 C 数据元素和关系 D 结构和算法 ●计算机算法指的是(C) A 计算方法 B 程序 C 解决问题的方法和步骤 D 调度方法 ●一个栈的元素进栈顺序是1、2、3、4、5,则出栈顺序不可能是(C) A 1、2、3、4、5 B 2、3、1、5、4 C 4、3、5、1、2 D 4、5、3、2、1 ●一个队列的入队序列是1、2、3、4,则队列的输出顺序为(B) A 4、3、2、1 B 1、2、3、4 C 1、2、4、3 D 2、1、3、4 ●在链接式队列中删除结点时,执行的操作为(B) A rear = front->next B front = front->next C front = rear->next D rear = rear->next ● ●具有4个结点的二叉树的形状有(A)种。 A 16 B 5 C 80 D 20 ●一个有n个顶点的无向图最多有(D)条边 A n-1 B n+1 C n(n+1)/2 D n(n-1)/2 ●线性表必须先(C)后,才能对线性表进行折半检索。 A 元素连续存放 B 元素链接式存放 C 元素按关键值大小排列 D 元素按存放地址高低排 列 ●从未排序子表中依次取出元素放入到已排序子表的正确位置上的方法是(D) A 简单选择排序B快速排序C 冒泡排序D 简单插入排序 ●一个计算机系统由(D)组成 A CPU、存储器 B CPU和外设 C 操作系统和用户程序 D 硬件和软件 ●在SPOOLing技术中,系统实际上将(B)分配给用户进程 A 设备的信号量 B 磁盘上的一块区域,即虚拟设备 C 设备的一段使用时间 D 设备的缓 冲区 ●分页式存储管理是基于(D)实现的。 A 固定分区 B 动态分区 C 静态重定位 D 动态重定位 ●进程的状态转换不可以是(A) A 从阻塞态到执行态 B 从执行态到阻塞态 C 从阻塞态到结束态 D 从阻塞态到就绪态 ●原语是一段程序,它和普通程序本质不同在于(B) A 原语提供系统服务 B 原语具有不可中断性 C 原语程序很短 D 原语执行不同的指令集 ●假设有5个进程J1~J5同时到达系统,它们的运行时间为10,6,2,4和8分钟,它 们的优先级分别为3,5,2,1和4(5为最低优先级),若采用优先级调度算法,假设进程是依次执行完毕的,则平均周转时间为(C) A 20分钟 B 6分钟 C 16分钟 D 10分钟 ●虚拟设备技术是一种(D)

软件技术基础模拟试题

软件技术基础模拟试题(第二十四次省统考) 一、是非判断题(正确选填A,错误选填B)(每小题1分,共10分) 1. 顺序表和线性链表的物理存贮形式都是顺序存贮。( 1 ) 2. 数据类型是某种程序设计语言中已实现的数据结构。( 2 ) 3. 如果通过软件测试没有发现错误,则说明软件是完全正确的。( 3 ) 4. 快速原型模型可以有效地适应用户需求的动态变化。( 4 ) 5. 不同进程之间的动作在时间上不能重叠。( 5 ) 6. 分区式存储管理能够进行存储空间共享。( 6 ) 7. 链接文件和索引文件都可以非连续存放。( 7 ) 8. 中断处理一般分为中断响应和中断处理两个步骤。前者由软件实施,后者主要由硬件实施。( 8 ) 9. 在C++语言中,“重载”表达了最简单的多态性。( 9 ) 10.进程调度根据一定的调度算法,从等待队列中挑选出合适的进程。( 10 ) (参考答案:1~10:ABBAB BABAB ) 二、单项选择题:(每小题1分,共5分) 1. 在数据结构中,一个存储结点存放一个(11 )。 11 (A) 数据项(B) 数据元素(C) 数据结构(D) 数据类型 2. 把逻辑地址转变为存储的物理地址的过程称作(12 )。 12 (A) 编译(B) 连接(C) 运行(D) 重定位 3. SPOOLing技术可以实现设备的(13 )分配。 13 (A) 虚拟(B) 共享(C) 独占(D) 物理 4. 允许用户把若干作业提交计算机系统集中处理的操作系统称为(14 )。 14 (A) 分时操作系统(B) 实时操作系统 (C) 网络操作系统(D) 批处理操作系统 5. 进程从运行状态进入就绪状态的原因可能是(15 )。 15 (A) 被选中占有处理机(B) 时间片用完 (C) 等待的事件已发生(D) 等待某一事件 (参考答案:BBADB) 软件技术基础模拟试题(第二十三次省统考) 一、是非判断题(正确选填A,错误选填B)(每小题1分,共10分) 1. 数据在计算机内在中的表示是指数据的存储结构。( 1 ) 2. 能影响中断响应次序的技术是中断优先级和中断屏蔽。( 2 ) 3. 链表可以随机访问任意一个结点,而顺序表则不能。( 3 ) 4. 作业与进程的主要区别是前者是由用户提交,后者是由系统自动生成。( 4 ) 5. Windows、OS/2、Linux微机操作系统都是多用户多任务操作系统。( 5 ) 6. 数据的逻辑结构是从逻辑关系上描述数据,它与数据的存储结构无关,是独立于计算机的。 ( 6 ) 7. 流式文件和记录式文件都以字符为基本单位进行存取。( 7 ) 8. 不定长文件是指字段的长度不固定。( 8 ) 9. 软件工程的三要素包括方法、工具和环境。( 9 ) 10.软件结构是以指令为基础而组成的一种控制层次结构。( 10 ) (参考答案:1~10:AABAB ABBBB) 二、单项选择题:(每小题1分,共5分) 1. 若进栈序列为1,2,3,4,且进栈过程中可以出栈,则不可能出栈的序列是 ( 11 ). 11 (A) 1,4,3,2 (B) 2,3,4,1 (C) 3,1,4,2 (D) 3,4,2,1

软件技术基础习题答案

操作系统 1.如何理解虚拟机的概念? 答:虚拟机就是在裸机上扩展一层软件,将硬件实现细节隐藏起来,使用户能够更方便、更灵活使用的计算机。 2.什么是多道程序设计,它的主要优点是什么? 答:多道程序设计就是允许多个程序同时进入内存并运行。主要优点:提高资源利用率,从而提高了系统的吞吐量。 3.试述分时系统与实时系统,并比较它们的区别。 答:分时系统是指能够允许多个用户同时使用一台计算机的系统。实时系统是指能够及时响应随机发生的外部事件,并在严格的时间范围内完成对该事件处理的系统。实时系统对系统响应速度要求更高,可靠性要求更高。(或者说明分时系统与实时系统各自特点) 4.一般从哪几方面对操作系统的性能进行评价? 1)可靠性 2)方便性 3)效率 4)可维护性 5)可移植性 5.试说出几种你所熟悉的操作系统名称,并说明其特征。 答:Linux特征:支持多用户、多任务,具有良好的用户界面,设备独立性,系统安全性能高,良好的可移植性。 Windows特征:支持多用户、多任务,具有友好的图形用户界面,强大的内存管理功能,可靠性高,操作简单。 6.根据你试用计算机系统的经验,说明操作系统的作用。 答:控制和管理计算机系统内各种硬件和软件资源、合理有效地组织计算机系统的工作,为用户提供一个使用方便可扩展的工作环境,从而起到连接计算机和用户的接口作用。 7.如何理解网络操作系统的主要功能? 答:用于管理网络通信和共享资源,协调各主机上任务的运行,并向用户提供统一的、有效的网络接口,包括网络管理、通信、资源共享、系统安全和多种网络应用服务。 8.如何理解进程的概念?进程与程序的区别是什么?进程与作业的联系和区别是什么?答:进程是一个可以并发执行的程序或程序段在一个数据集合上的执行过程,他是系统分配资源的基本单位。 区别:1)经常是一个动态的概念,是执行程序的动态过程,它因创建而产生,因调度而执行,因撤销而消亡。而程序是一个静态的概念,是进程运行的静态文本。 2)进程能真实地描述并发执行,且具有并发性,而程序没有。 3)一个进程可以执行一个或多个程序。 4)程序可以作为一种软件资源长期保持着,而进程则是程序的一次执行过程,是暂时的,是动态地产生和终止的,它不具有存储性。 作业和进程的联系两者静态描述的结构相似,作业是由程序,数据和JCB组成,进程是由程序或程序段,数据,PCB组成。区别:作业是用户向计算机提交任务实体,而进程是完成用户任务的执行实体;一个作业可由多个进程组成,且必须至少有一个进程。作业一般用于批处理系统中,而进程用在所有多道系统中。 9.理解进程的三种基本状态和发生状态转换的原因。 答:进程的三种基本状态分别执行状态,就绪状态和等待状态。简单来说是由于CPU以及

软件技术基础教学大纲资料

软件技术基础》教学大纲 课程编号: 23000840 适用专业:电子信息类(非计算机专业) 学时数: 40学分数: 2.5 开课学期:第4 学期 先修课程: 《C 语言》 考核方式:笔试(闭卷) 执笔者:沈晓峰编写日期:2015 年3月审核人(教学副院长): 一、课程性质和目标授课对象:电子信息工程专业大学二年级本科生课程类别:学科拓展课程教学目标: 本课程是针对工科电子信息类本科生开设的一门学科拓展课程。着重培养学生在软件设计领域的基本素质,基本方法和设计理念。授课对象为大学二年级学生,课程任务是通过本课程的学习和相关实验的练习,使学生掌握数据结构、操作系统等软件技术的基本理论知识,具有一定的软件开发能力。 二、教学内容和要求 1、课堂理论教学要求和学时安排(32 学时) 1) C 程序设计(4 学时) (1)C 语言回顾,指针的基本概念、运算方法和使用( 2 学时)。 (2)结构体的基本概念和使用方法(2 学时)。 2)数据结构(20 学时) (1)数据结构的基本概念(2 学时):理解数据结构的基本概念;理解线性和非线性结构的概念。 (2)线性数据结构(9 学时):理解表、栈、队列等线性数据结构的概念,存储方式及基于不同存储方式的相关操作的实现方法。 a. 理解表的概念及顺序表的存储特点,掌握其创建、插入、删除等实现方法(2 学时); b. 掌握单链表、双链表、循环链表的创建、插入、删除方法( 2 学时); c. 理解栈的概念及结构特点,掌握顺序栈及链栈的出栈、入栈操作的实现方法 (2 学时); d. 理解队列的概念及特点,掌握顺序、循环队列的创建、出队、入队、判空、判满等操作。掌握链 队列的创建及出队、入队(2 学时); e. 理解数组的概念及二维数组的存放方式,掌握对称矩阵及稀疏矩阵的压缩存储方法 (1 学时)。

VB软件技术基础模拟题及参考答案

软件技术基础模拟试题(第二十次省统考) 1、是非判断题(正确选填A,错误选填B)(每小题1分,共10 分) 1、数据元素是数据的基本单位,数据项是数据的最小单位。( ) 2、栈是特殊的线性表,须用一组地址连续的存储单元来存储其元素。( ) 3、引入虚拟存储技术后,逻辑内存总容量是由地址总线的位置确定的。( ) 4、编译程序是一种常用应用软件。( ) 5、顺序文件和链接文件的长度都可以动态变化。( ) 6、在文件系统中采用目录管理文件。( ) 7、允许多用户在其终端上同时交互地使用计算机的操作系统称为实时系统。( ) 8、程序、数据、和进程控制块是构成一个进程的三要素。( ) 9、黑盒测试时,既要考虑程序的内部逻辑结构又要考虑其外部特性。( ) 10、软件的总体设计和详细设计都要用PAD图形工具。( ) (参考答案:1~10:ABABB ABABB) 2、单项选择题:(每小题1分,共5分) 1、允许用户把若干作业提交计算机系统集中处理的操作系统称为 ( )。  A 分时操作系统 B 实时操作系统 C 网络操作系统 D 批处理操作系统 2、分配到必要资源并获得了处理机时的进程的状态称为( )。  A 就绪状态 B 执行状态 C 等待状态 D 阻塞状态3、利用通道技术可以在( )之间直接交换数据。  A 内存与CPU B CPU与外设 C 内存与外设 D 内存、CPU和外设三者 4、以下的准则中哪个不是软件设计的准则( )。  A 编程语言选择准则 B 信息屏蔽准则  C 结构化和模块化准则 D 抽象准则 5、有一数列:97 65 76 13 29 49 58 经过一趟排序后得到: 65 97 13 76 29 49 58 请问使用的是何种排序方法?( )  A 简单插入排序 B 冒泡排序 C 2路归并排序 D 快速排序 (参考答案:DBCAC )

软件技术基础试题(含答案)

《操作系统》 选择题: (bs30)1. 分页式存储管理的主要特点是(B)。 (A) 要求作业全部同时装入内存(B) 不要求作业装入到内存的连续区域 (C) 要求扩充外存容量(D) 不要求处理缺页中断 (bs30)2. 进程从运行状态进入就绪状态的原因可能是(D)。 (A) 被选中占有处理机(B) 等待某一事件(C) 等待的事件已发生(D) 时间片用完 (bs30)3. 多道程序设计是指(D)。 (A) 在实时系统中并发运行多个程序(B) 在分布系统工程中同一时刻运行多个程序 (C) 在一台处理机上同一时刻运行多个程序(D) 在一台处理机上并发运行多个程序 (bs29)2. 进程从运行状态进入就绪状态的原因可能是( A )。 (A) 时间片用完(B) 等待某一事件(C) 等待的事件已发生(D) 被选中占有处理机(bs29)4. 以下(D)不是实时操作系统的特点。 (A) 高可靠性(B) 及时响应(C) 高效性(D) 通用性 (bs28)3. 任何两个并发进程之间( A )。 (A) 可能存在同步或互斥关系(B) 一定存在同步关系 (C) 一定彼此独立无关(D) 一定存在互斥关系 (bs28)4. 以下的哪个特征不是分时操作系统的主要特征(B)。 (A) 分时性(B) 独占性(C) 交互性(D) 多路性 (bs27)2. 以下(D)不是实时操作系统的特点。 (A) 高可靠性(B) 及时响应(C) 中断管理(D) 独立性 (bs27)3. 若当前进程因时间片用完而让出处理机时,该进程应转变为(B)状态。 (A) 运行(B) 就绪(C) 等待(D) 完成 (bs26)3. 在多道程序设计系统中,处于后备状态的作业要经过(D)调度后才能真正执行。 (A) 作业调度(B) 作业调度和设备调度(C) 进程调度(D) 作业调度和进程调度 (bs25)1. 把高级语言的源程序翻译成二进制代码的过程称为:(A)。 (A) 编译(B) 连接(C) 运行(D) 重定位 (bs25)2. 把逻辑地址转变为内存的物理地址的过程称作(D)。 (A) 地址分配(B) 地址连接(C) 地址调用(D) 地址变换 (bs25)4. 在操作系统中,进程最基本的特征是(A)。 (A) 动态性和并发性(B) 顺序性和可再现性 (C) 与程序的对应性(D) 执行过程的封闭性 (bs24)2. 把逻辑地址转变为存储的物理地址的过程称作(D)。 (A) 编译(B) 连接(C) 运行(D) 重定位 (bs24)3. SPOOLing技术可以实现设备的(B)分配。 (A) 虚拟(B) 共享(C) 独占(D) 物理 (bs24)4. 允许用户把若干作业提交计算机系统集中处理的操作系统称为(D)。 (A) 分时操作系统(B) 实时操作系统 (C) 网络操作系统(D) 批处理操作系统 (bs24)5. 进程从运行状态进入就绪状态的原因可能是(B)。 (A) 被选中占有处理机(B) 时间片用完 (C) 等待的事件已发生(D) 等待某一事件 (bs23)2. 任何两个并发进程之间( D) (A) 一定存在互斥关系(B) 一定存在同步关系 (C) 一定彼此独立无关(D) 可能存在同步或互斥关系

软件测试技术基础课后习题答案

第1章软件测试概述 1.简述软件测试的意义。 解:随着计算机技术的迅速发展和广泛深入的应用,软件质量问题已成为开发和使用软件人员关注的焦点。而由于软件本身的特性,软件中的错误是不开避免的。不断改进的开发技术和工具只能减少错误的发生,但是却不可能完全避免错误。因此为了保证软件质量,必须对软件进行测试。软件测试是软件开发中必不可少的环节,是最有效的排除和防治软件缺陷的手段,是保证软件质量、提高软件可靠性的最重要手段。 2.什么是软件缺陷?它的表现形式有哪些? 解:从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题;从外部看,软件缺陷是系统所需实现的某种功能的失效或违背。 它的表现形式主要有以下几种:(1)软件未达到产品说明书中已经标明的功能;(2)软件出现了产品说明书中指明不会出现的错误;(3)软件未达到产品说明书中虽未指出但应当达到的目标;(4)软件功能超出了产品说明书中指出的范围;(5)软件测试人员认为软件难以理解、不易使用,或者最终用户认为该软件使用效果不良。 3.简单分析软件缺陷产生的原因,其中那个阶段引入的缺陷最多,修复成本又最低? 解:软件缺陷产生的主要原因有:需求规格说明错误;设计错误;程序代码有误;其他。其中在需求分析阶段引入的缺陷最多,修复的成本又最低。 4.当用户登录某网站购物完毕并退出后,忽然想查查购物时付账的总金额,于是按了浏览器左上角的“退回”按钮, 就又回到了退出前的网页,你认为该购物软件有缺陷吗?如果有,属于哪一类? 解:有缺陷。其所属类别与软件产品说明书的要求有关。 5.什么是软件测试?简述其目的与原则。 解:软件测试是为了尽快尽早地发现在软件产品中所存在的各种软件缺陷而展开的贯穿整个软件开发生命周期,对软件产品(包括阶段性产品)进行验证和确认的活动过程。 测试目的:(1)证明:获取系统在可接受风险范围内可用的信心;尝试在非正常情况和条件下的功能和特性;保证一个工作产品是完整的并且可用或可被集成。(2)检测:发现缺陷、错误和系统不足;定义系统的能力和局限性;提供组件、工作产品和系统的质量信息。(3)预防:澄清系统的规格和性能;提供预防或减少可能制造错误的信息;在过程中尽早检测错误;确认问题和风险,并且提前确认解决这些问题和风险的途径。 测试过程中应注意和遵循的原则:(1)测试不是为了证明程序的正确性,而是为了证明程序不能工作。(2)测试应当有重点。(3)事先定义好产品的质量标准。(4)软件项目一启动,软件测试也就开始,而不是等到程序写完才开始进行测试。(5)穷举测试是不可能的。(6)第三方进行测试会更客观,更有效。(7)软件测试计划是做好软件测试工作的前提。(8)测试用例是设计出来的,不是写出来的。(9)对发现错误较多的程序段,应进行更深入的测试。(10)重视文档,妥善保存一切测试过程文档。 6.件测试阶段是如何划分的? 解:软件测试的阶段划分为:规格说明书审查;系统和程序设计审查;单元测试;集成测试;确认测试;系统测试;验

软件技术基础试题及答案

软件技术基础 系班级姓名成绩得分评卷人 一、填空题(每空1分,共25分) 1.数据结构作为一门学科,主要研究数据的、存储结构以及 三方面内容。 2.当对一个线性表经常进行插入或删除操作时,则宜采用存储结构;而经常进 行的是访问操作,而很少进行插入或删除操作时,则宜采用存储结构。 3.在线性结构中,首结点有个前驱结点,其余每个结点有且只有个前驱结点。 4.限定在表的一端进行插入,在表的另一端进行删除的线性表称为;限定在表 的一端进行插入和删除运算的线性表称为。 5.一个8阶的下三角矩阵B按行优先顺序压缩存储在一维数组中,则数组的大小应设 为。 6.按照二叉树的定义,具有3个结点的二叉树形态有种;具有65个结点的完全二叉 树其深度为; 深度为10的完全二叉树最多有个结点 7.在长度为n的顺序表的第i个位置上插入一个元素,元素的移动次数为;删除 第i个元素时,需要从前向后依次前移个元素。(1≤i≤n+1) 8. 顺序存储结构的循环队列中,设front 和rear分别为队头和队尾指示器,该队列中能存放的 最大元素的个数为M AX-1,则判断队列为满的条件为,而判断队列为空的条件是。 9. 设D={A,B,C,D,E},R={},结构(D,R)描述 的数据结构是。 10.系统出现死锁一定是同时保持了,,和 环路条件这四个必要条件。 11.操作系统通过记载、跟踪、控制进程的执行,它是进程存在的唯一 标志。作业调度程序是从处于状态的作业中选取一个作业并把它装入主存。12A.软件生命周期瀑布模型一般可分为问题分析、、、

和软件维护五个阶段。 , 得分评卷人 二、选择题(每小题1分,共10分) 1. 已知:int x; 下列语句正确的是()。 A. int *p=&x; B. int *p=x; C. int p=&x; D. int *p=*x; 2. int a[ ]={1,2,3,4,5},b[5],*p; 则下列语句中不正确的语句是()。 A. p=b+1; B.p=&a[3]; C. p=a; D.b=a; 3. 设有以下说明语句 struct node{ int a;float b;}; struct node node1,node2,*pnode; 则下列语句中正确是()。 A. node1=node2; B. pnode.a=10; C. return (node1+node2); D. scanf(“%d %f”,node1); 4. 线性链表不具有的特点是()。 A. 可随机访问任一个结点B.不必事先估计所需存储空间大小 C. 插入与删除时不必移动元素D.所需空间与线性表长度成正比 5. 若让元素1,2,3依次进栈,则出栈次序不可能出现()种情况。 A.3,2,1 B.2,1,3 C.3,1,2 D.1,3,2 6. 有向图的邻接表中,顶点Vi的出度是()。 A. 依附于Vi的弧数 B.Vi链表中的邻接结点个数 C. Vi在表结点中出现的次数 D. Vi度的一半 7. 某二叉树的先序序列和后序序列正好相反,则该二叉树一定是()的二叉树。 A.空或只有一个结点B.深度等于其结点数 C.任一分支结点均无左子树D.任一分支结点均无右子树

最新计算机软件技术基础(第三版)习题答案

第一章 1.1什么是信息?信息与数据的区别和联系在何处? 信息定义之一:信息是现实世界中存在的客观实体、现象、关系进行描述的数据。 信息定义之二:信息是经过加工后并对实体的行为产生影响的数据。 与数据的区别和联系: 数据定义:数据是现实世界客观存在的实体或事物的属性值,即指人们听到的事实和看到的景象。 我们把这些数据收集起来,经过处理后,即得到人们需要的信息。 信息和数据的关系可以归结为: 1.信息是有一定含义的数据。 2.信息是经过加工(处理)后的数据。 3.信息是对决策有价值的数据。 1.2信息有哪些基本属性? z信息的基本属性有: 1.事实性。 2.等级性。 3.可压缩性。 4.可扩散性。 5.可传输性。 6.共享性。 7.增值性和再生性。 8.转换性。 1.3计算机的主要特点是什么? 计算机最主要的特点是: 1.高速自动的操作功能。 2.具有记忆的能力。 3.可以进行各种逻辑判断。 4.精确高速的计算能力。 1.5完整的计算机系统应该包括哪几部分? 目前最完整的计算机系统学说认为由五部分组成: 1.人员 2.数据 3.设备 4.程序 5.规程 1.6什么是计算机硬件?什么是计算机软件? 硬件:泛指实际存在的物理设备,包括计算机本身及其外围设备。 微型计算机的硬件系统:主机、外存储器、输入设备、输出设备、微机的系统总线。 软件:是指计算机程序、方法、规则的文档以及在计算机上运行它时所必须的数据。 计算机软件一般分为系统软件和应用软件。 1.8 软件技术发展的几个阶段各有什么特点?它与硬件的关系如何? 第一阶段:高级语言阶段 特点:这一时期,编译技术代表了整个软件技术,软件工作者追求的主要目的是设计和实现在控制结构和数据结构方面表现能力强的高级语言。但在这一时期内,编译系统主要是靠手工编制,自动化程度很低。 硬件关系:此时期计算机的硬件要求仅能用机器指令来编制可运行的程序。

2020年春季考试《计算机软件技术基础(1)》在线考核试题_13.doc

1.有一函数Function F(ByVal a As Integer, ByVal b As Integer) As Integer,()在调用时将发生错误。 A.Call F(1, 2) B.Y = F(F(2, 3), 4) C.Z = F(2.3, 5) D.X = F(3) 【参考答案】: D 2.表达式1.5 + 3 \ 2 > 2 Or 7 Mod 3 < 4 的运算结果是()。 A.True B.0 C.1 D.False 【参考答案】: A 3.结构化程序设计所规定的三种基本控制结构是(?)。 A.输入、处理、输出 B.树形、网形、环形 C.顺序、选择、循环 D. 主程序、子程序、函数 【参考答案】: C 4.int(198.555*100+0.5)/100的值()。 A.是198 B.是199.6 C.是198.56 D.是200 【参考答案】: C 5.加载窗体时触发的事件是( )。 A.Click B.Load C.Gotfocus D.DoubleClick 【参考答案】: B 6.下面叙述不正确的是()。 A.一个控件只能有一个事件处理过程 B.用户与应用交互可以触发事 件 C.Visual https://www.360docs.net/doc/7c12326384.html, 是集成了事件驱动的编程模型 D.即使用户与应用程序不进行交互,有些事件也可能发生 【参考答案】: A

7.设X=lO,y=7,表达式x\6+y*3的值为()。 A.24 B.22 C.25 D.0 【参考答案】: B 8.鼠标的移动触发()事件。 A.Click B.Mousedown C.MouseUp D.MouseMove 【参考答案】: D 9.在https://www.360docs.net/doc/7c12326384.html,窗体第一次显示之前,下列()窗体事件发生。 A.Activated B.GotFocus C.Click D.Load 【参考答案】: D 10.文本框的( )属性用于设置或返回文本框中的文本内容。 A.Text B.(名称) C.Caption https://www.360docs.net/doc/7c12326384.html, 【参考答案】: A 11.已知A$="12345678",则表达式Val(Mid(A, 1, 4) + Mid(A, 4, 2))的值为 ()。 A.123456 B.123445 C.8 D.6 【参考答案】: B 12.DrawArc方法绘制的图形是()。 A.圆 B.椭圆 C.弧 D.扇形 【参考答案】: C

软件技术基础--上机实验三

姓名:吴振国学号:2011019190006 上机实验三 题目一: 一、程序流程说明 (1)创建一个链栈,(2)编写输出,进栈出站函数,(3)编写主函数 二、程序代码 #include #include #define LEN sizeof(node_type) typedef struct node { int data; struct node *next; }node_type; typedef struct { node_type *top; int length; }lstack_type; lstack_type *create_list(void) { lstack_type *p;

p=(lstack_type *)malloc(sizeof(lstack_type)); p->top=NULL; p->length=0; return(p); } void print(node_type *head) { node_type *p; printf("Now ,those records are:\n"); p=head; if(head!=NULL) { do{ printf("%4d",p->data); p=p->next; } while(p!=NULL); } } int push(lstack_type *lp, int x) { node_type *p; p=(node_type *)malloc(LEN);

if(p!=NULL) { p->data = x; p->next = lp->top; lp-> top = p; lp->length++; return(1); } else return(0); } int pop(lstack_type *lp) { node_type *p; int x; if(lp->top==NULL){ printf("stack is underflow"); return(0); } else{ x = lp->top->data; p = lp->top; lp->top = lp->top->next; lp->length--;

《计算机软件技术基础》试题答案

《计算机软件技术基础》试题 1.线性表的链式存储结构与顺序存储结构相比优点是 CD 。 A. 所有的操作算法实现简单 B. 便于随机存取 C. 便于插入和删除 D. 便于利用零散的存储器空间 2.线性表是具有n 个 C 的有限序列。 A. 表元素 B. 字符 C. 数据元素 D. 数据项 E. 信息项 3.若长度为n 的线性表采用顺序存储结构,在其第I 个位置插入一个新元素的算法的时间复杂度为 C 。(1≤I ≤n+1) A. O(0) B. O(1) C. O(n) D. O(n 2 ) 4.设A 是一个线性表(a 1,a 2,…,a n ),采用顺序存储结构,则在等概率的前提下,平均每插入一个元素需要移动的元素个数为 B ,平均每删除一个元素需要移动的元素个数为 A ;若元素插在a i 与a i+1之间(0≤I ≤n-1)的概率为 ) 1() (2+-n n i n ,则平均每插入一个 元素所要移动的元素个数为 C ; A. 21 -n B. 2n C. 3 12+n D. 4 13+n 5.下列函数中,按它们在∞→n 时的无穷大阶数,最大的是 D 。 A. log n B. nlog n C. 2n/2 D. n!

6.将下图所示的s所指结点加到p所指的结点之后,其语句应为: D 。 A. s->next=p+1; p->next=s; B. (*p).next=s; (*s).next=(*p).next; C. s->next=p->next; p->next=s->next; D. s->next=p->next; p->next=s; 7.将两个各有n个元素的有序表归并为一个有序表时,其最少的比较次数是 A 。 A. n B. 2n-1 C. n-1 D. 2n 8.下面的程序段是合并两个无头结点链表(ha和 hb)为一个无头结点链表ha的过程,作为参数的两个链表都是按结点的data域由大到小链接的。合并后新链表的结点仍按此方式链接。请填写下述空框,使程序能正确运行。 1. #define NULL 0 typedef struct node{ int data; struct node *next; }node, linklisttype; void combine(linklisttype *ha, linklisttype *hb){ linklisttype *h, *p; h = (linklisttype *)malloc(sizeof(linklisttype)); h->next = NULL; p = h;

相关文档
最新文档