北航201303学期算法与数据结构答案作业2.doc
文本预览下载声明
作业2
单项选择题
第1题 数据结构中的数据和存贮介质(如磁盘)的关系是:()。
A、数据是存贮介质
B、存贮介质是数据的载体
C、存贮介质是传送数据的工具
D、数据是计算机处理对象,存贮介质是磁盘
答案:B
第2题 设front和rear分别是队头与队尾指针,实现循环队列的数组长度为n,那么队满、队空的判断条件分别是:()。
A、front == rear, front +1 == rear
B、(rear +1) % n == front, front == rear
C、rear == front, (rear + 1 )% n ==front
D、front == rear ,rear == front
答案:B
第3题 数据结构中的数据是指:()。
A、用于计算的数字
B、信息
C、磁盘
D、计算机的处理对象
答案:D
第4题 设n为正整数。试确定下列程序段中带标号@的语句的频度。 X=91; Y=100; While(y0) @If(x100){ X=x–10; Y=y–1; }else x=x+1; :()。
A、无穷多次
B、1100
C、9100
D、100
答案:B
多项选择题
第5题 假设以链表的方式实现堆栈,top为栈顶指针,指向类型为linkstack类型,下述程序实现将堆栈初始化为空栈的操作。判断哪一段程序是正确的():
A、void INITSTACK( linkstack *top ){ top = NULL; }
B、void INITSTACK(linkstack * top ){ top = -1; }
C、void INITSTACK(linkstack * top ){ top = 0; }
D、void INITSTACK(linkstack * top ){ top = 空; }
答案:A|C
第6题 假设以链表的方式实现堆栈,top为栈顶指针,类型为linkstack的结点分别以data和next表示数据域与链域,其中datatype为栈内元素的数据类型,。下述程序实现将元素x压入链顶的操作。判断哪一段程序是正确的():
A、void push( linkstack *top, datatype x ){ linkstack * p ; p = malloc(sizeof(linkstack)); p-data = x; p-next = top; top = p; }
B、void pushstack( linkstack *top, datatype x ){ linkstack * p ; p = malloc(sizeof(linkstack)); p-data = x; p-next = top; top = p; }
C、void push( linkstack *top, datatype x ){ p-data = x; p-next = top; top = p; }
D、void push( linkstack *top, datatype x ){ top-data = x; top-next = top; }
答案:A|B
第7题 假设有二维数组a[m][n],如果在内存中以行优先方式存贮。下述计算数据元素a[i][j]地址loc(a[i][j])的公式中哪些是正确的():
A、loc(a[i][j]) = l0 +(m * j + i )*k , 其中k为每个元素所占的存贮单元,l0为a[0][0]的地址,并且假定数组下标的起始值为0
B、loc(a[i][j]) = l0 +(i*n +j )*k , 其中k为每个元素所占的存贮单元,l0为a[0][0]的地址,并且假定数组下标的起始值为0
C、loc(a[i][j]) = l0 +((i-1)*n +j -1)*k , 其中k为每个元素所占的存贮单元,l0为a[0][0]的地址,并且假定数组下标的起始值为1
D、loc(a[i][j]) = l0 +((m-1) *j + i)*k , 其中k为每个元素所占的存贮单元,l0为a[0][0]的地址,并且假定数组下标的起始值为0
答案:B|C
第8题 假设以链表的方式实现堆栈,top为栈顶指针,类型为linkstack结点分别以data和next表示数据域与链域,datatype表示栈内元素的数据类型。下述程序实现出栈操作。判断哪一段程序是错误的():
A、datatype pop( linkstack *top ){ linkstack * p ; if ( top
显示全部