数据结构算法设计题复习题

数据结构算法设计题复习题
数据结构算法设计题复习题

算法设计题

1. 设二叉树bt采用二叉链表结构存储。试设计一个算法输出二叉树中所有非叶子结点,并求出非叶子结点的个数。

【答案】

int count=0;

void algo2(BTNode *bt){

if (bt){

if(bt->lchild || bt->rchild){

printf(bt->data);

count++;

}

algo2(bt->lchild);

algo2(bt->rchild);

}

}

2. 阅读下列函数arrange()

int arrange(int a[],int 1,int h,int x)

{//1和h分别为数据区的下界和上界

int i,j,t;

i=1;j=h;

while(i

while(i=x)j--;

while(i=x)i++;

if(i

{ t=a[j];a[j]=a[i];a[i]=t;}

}

if(a[i]

else return i-1;

}

(1)写出该函数的功能;

(2)写一个调用上述函数实现下列功能的算法:对一整型数组b[n]中的元素进行重新排列,将所有负数均调整到数组的低下标端,将所有正数均调整到数组的高下标端,若有零值,则置于两者之间,并返回数组中零元素的个

数。

【答案】

(1)该函数的功能是:调整整数数组a[]中的元素并返回分界值i,使所有<x的元素均落在a[1..i]上,使所有≥x 的元素均落在a[i+1..h]上。

(2)int f(int b[],int n) 或int f(int b[],int n)

{ {

int p,q;int p,q;

p=arrange(b,0,n-1,0);p=arrange(b,0,n-1,1);

q= arrange(b,p+1,n-1,1);q= arrange(b,0,p,0);

return q-p;return p-q;

} }

3. 假设线性表以带表头结点的循环单链表表示。试设计一个算法,在线性表的第k个元素前插入新元素y。假如表长小于k,则插在表尾。

【答案】

void algo1(LNode *h,int k,ElemType y){

q=h; P=h->next; j=1;

while( p!=h && j

q=p; p=p->next; j++;

}

s=(LNode *)malloc(sizeof(Lnode));

s->data=y;

q->next=s;

s->next=q;

}

4. 二叉排序树的类型定义如下:

typedef struct BSTNode {∥二叉排序树的结点结构

int data; ∥数据域

struct BSTNode *lchild, *rchild; ∥左、右孩子指针

}BSTNode,*BSTree;

设计递归算法,统计一棵二叉排序树T中值小于a的结点个数。

【答案】

int f34(BSTree root)

{

int count;

BSTNode *p;

p=root;

if ( p && p->data

f34(p->lchild);

return count;

}

5. 设二叉树T采用二叉链表结构存储,试设计算法求出二叉树中离根最近的第一个叶子结点。(注:结点按从上往下,自左

至右次序编号)

【答案】

BTNode * Firstleaf(BTNode *bt)

{ InitQueue(Q); //初始化队列Q

if(bt){

EnQueue(Q,bt);;

while(!EmptyQueue(Q)){

DeQueue(Q,p);

if(!p->lchild && !p->rchild) return p;

if(p->lchild) EnQueue(Q,p->lchild);

if(p->rchild) EnQueue(Q,p->rchild);

}

}

}

6. 已知一棵具有n个结点的完全二叉树被顺序存储在一维数组中,结点为字符类型,编写算法打印出编号为k的结点的双亲和孩子结点。

【答案】

int algo2(char bt[],int n,int k){

if (k<1||k>n) return 0;

if( k==1) printf(“ %c is a root\n”, bt[1]);

else printf(“ %c’s parent is %c\n”, bt[k], bt[k/2]);

if(2*k<=n) printf(“ %c’s lchild is %c\n”, bt[k], bt[2*k]);

else printf(“ %c is not lchild\n”, bt[k]));

if(2*k+1<=n) printf(“ %c’s rchild is %c\n”, bt[k], bt[2*k+1]);

else printf(“ %c is not rchild\n”, bt[k]));

return 1;

}

7. 编写算法,将非空单链表hb插入到单链表ha的第i(0

【答案】

int algo1(LNode *ha, LNode *hb,int i){

for(p=hb;p->next; p=p->next);

for(j=1,q=ha;jnext;

p->next=q->next;

q->next=hb->next ;

free(hb);

}

8. 设二叉树T已按完全二叉树的形式存储在顺序表T中,试设计算法根据顺序表T建立该二叉树的二叉链表结构。顺序表T定义如下:

struct tree{

int no; /* 结点按完全二叉树的编号*/

ElEMTP data; /* 数据域 */

}T[N]; /* N为二叉树T的结点数*/

【答案】

BTNode *creat_tree(struct tree T[N])

{ BTNode *p[MAX];

t=NULL;

for(i=0;i

s=(BTNode *)malloc(sizeof(BTNode));

s->data=T[i].data;

s->lchild=s->rchild=NULL;

m=T[i].no; p[m]=s;

if(m==1) t=s;

else { j=m/2;

if(m%2==0) p[j]->lchild=s;

else p[j]->rchild=s;

}//slse

}//for

return t;

}// creat_tree

9. 编写算法判断带表头结点的单链表L是否是递增的。若递增返回1,否则返回0。

【答案】

int algo1 (LNode *L)

{

if(!L->next) return 1;

p=L->next;

while(p->next){

if(p->data < p->next->data) p=p->next;

else return 0;

}

return 1;

}

10. 假设一线性表由Fibonacci数列的前n(n≥3)项构成,试以带表头结点的单链表作该线性表的存储结构,设计算法建立该单链表,且将项数n存储在表头结点中。Fibonacci数列根据下式求得:

1 (n=1)

f(n)= 1 (n=2)

f(n-2)+f(n-1) (n≥3)

【答案】

LNode * Creatlist(LNode *h,int n){

h=(LNode *)malloc(sizeof(Lnode));

h->data=n;

h->next=p=(LNode *)malloc(sizeof(Lnode));

p->next=q=(LNode *)malloc(sizeof(Lnode));

p->data= q->data=1;

for(i=3;i<=n;i++){

q->next=s=(LNode *)malloc(sizeof(Lnode));

s->data=p->data+q->data; s->next=NULL;

p=q;q=s;

}

return h;

}

11. 设二叉树T采用二叉链表结构存储,数据元素为字符类型。设计算法将二叉链表中所有data域为小写字母的结点改为大写

字母。

【答案】

void algo2(BTNode *bt){

if (bt){

if(bt->data>=’a’&& bt->data<=’z’)

bt->data-=32;

algo2(bt->lchild);

algo2(bt->rchild);

}

}

12. 假设线性表以带表头结点的循环单链表表示。试设计一个算法,在线性表的第k个元素前插入新元素y。假如表长小于k,则插在表尾。

【答案】

void Insertlist(LNode *h,int k,ElemType y)

{

q=h; P=h->next; j=1;

while( p!=h && j

q=p; p=p->next; j++;

}

s=(LNode *)malloc(sizeof(Lnode));

s->data=y;

q->next=s;

s->next=q;

}

13. 有一带表头结点的单链表,其结点的元素值以非递减有序排列,编写一个算法在该链表中插入一个元素x,使得插入后的单链表仍有序。

【答案】

void algo1 (LNode *H, ElemTp x)

{

s=(LNode *) malloc (sizeof(LNode));

s->data=x;

q=H; p=H->next;

while ( p && p->data<=x )

{

q=p; p=p->next;

}

s->next=p; q->next=s;

}

14. 二叉排序树的类型定义如下:

typedef struct BSTNode {∥二叉排序树的结点结构

int data; ∥数据域

struct BSTNode *lchild, *rchild; ∥左、右孩子指针

}BSTNode,*BSTree;

设计递归算法,统计一棵二叉排序树T中值小于a的结点个数。

【答案】

int f34(BSTree root)

{

int count;

BSTNode *p;

p=root;

if ( p && p->data

f34(p->lchild);

return count;

}

15. 有一带表头结点的单链表,其结点的data域的类型为字符型,编写一个算法删除该链表中的数字字符。【答案】

void Del_digit (LNode *h){

for(p=h;p->next;){

q=p->next;

if(q->data>=’0’&& q->data <=’9’)

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

else p=q;

}

}

16. 利用栈的基本运算,编写一个算法,实现将整数转换成二进制数输出。

【答案】

void returnDtoO(int num)

{

initStack(s);

while(n)

{ k=n%2;

n=n/2;

push(s,k);

}

while(EmptyStack(s))

{ pop(s,k);

printf(“%d”,k);

}

}

17. 设二叉树T采用二叉链表结构存储,数据元素为int型,试设计一个算法,若结点左孩子的data域的值大于右孩子的data域的值,则交换其左、右子树。

【答案】

void algo2(bitreptr bt){

bitreptr x;

if (bt){

if ((bt->lchild && bt->rchild) && (bt->lchild ->data> bt->rchild->data) ) {

x= bt->lchild ;

bt->lchild= bt->rchild;

bt->rchild=x;

}

algo2(bt->lchild);

algo2(bt->rchild);

}

}

18. 设二叉树T采用二叉链表结构存储,试设计算法求出二叉树的深度。

【答案】

int Deep(BTNode *bt){

if (bt==NULL) return 0;

left=Deep(bt->lchild);

right=Deep(bt->rchild);

return (left>right?left:right)+1;

}

19. 设给定的哈希表存储空间为H(0~M-1),哈希函数的构造方法为“除留余数法”,处理冲突的方法为“线性探测法”,设计算法将元素e填入到哈希表中。

【答案】

void hash-insert(hashTable h[],int m,ElemType e){

j=e%p;

if(h[j]!=NULL) h[j]=e;

else{

do

{ j=(j+1) %m;

}while(h[j]!=NULL );

h[j]=e;

}

}

20. 对于给定的十进制正整数,打印出对应的八进制正整数。(利用栈)

【答案】

void DecToOct(int num)

{

initStack(s); //初始化栈

while(n)

{ k=n%8;

n=n/8;

push(s,k);

}

while(EmptyStack(s)) //判断栈是否为空

{ pop(s,k);

printf(“%d”,k);

}

}

21. 一个正读和反读都相同的字符序列称为“回文”。例如“abcba”和“1221”是回文,而“abcde”不是回文。试写

一个算法,要求利用栈的基本运算识别一个以@为结束符的字符序列是否是回文。

【答案】

int Pair(char *str ) {

InitStack(s);

p=str

for ( ; *p!=’@’; p++ )

Push(s,*p);

while(StackEmpty(s)) {

Pop(s,y);

if(y!=*str++ ) return 0;

}

return 1;

}

22. 有一带表头结点的单链表,其结点的元素值以非递减有序排列,编写一个算法删除该链表中多余的元素值相同的结点(值相同的结点只保留一个)。

【答案】

void Delsame (LNode *h){

if(h->next) {

for(p=h->next;p->next;){

q=p->next;

if(p->data==q->data){

p->next=q->next;

free(q);

}

else p=q;

}

}

23. 编写一个算法,判断带表头结点的单链表是否递增有序。

【答案】

int fun(LNode *h )

{ p=h->next;

while(p->next)

{ q=p->next ;

if(q->data>p->data) return 0;

p=q;

}

return 1;

}

24. 假设有两个带表头结点的单链表HA和HB,设计算法将单链表HB插入到单链表HA的第i(0

【答案】

void fun(LNode *ha, LNode *hb,int i)

{ for(p=hb;p->next; p=p->next);

for(j=1,q=ha;j

q=q->next; ;

p->next=q->next;

q->next= hb->next ;

free(hb);

}

25. 假设以带头结点的单链表表示有序表,单链表的类型定义如下:

typedef struct node{

DataType data;

struct node *next

}LinkNode, *LinkList;

编写算法,从有序表A中删除所有和有序表B中元素相同的结点。

【答案】

(空)

26. 设二叉树T采用二叉链表结构存储,数据元素为字符类型。设计算法分别求出二叉链表中data域为英文字母和数字字符的

结点个数。

【答案】

int letter=0,digit=0;/*全局变量*/

void algo2(BTNode *bt){

if (bt){

if(bt->data>=’A’&& bt->data<=’Z’|| bt->data>=’a’&& bt->data<=’z’) letter ++;

if(bt->data>=’0’&& bt->data<=’9’) digit ++;

algo2(bt->lchild);

algo2(bt->rchild);

}

}

27. 假设以单链表表示线性表,单链表的类型定义如下:

typedef struct node {

DataType data;

struct node *next;

} LinkNode, *LinkList;

编写算法,将一个头指针为head且不带头结点的单链表改造为一个含头结点且头指针仍为head的单向循环链表,并分析算法的时间复杂度。

【答案】

LinkList f34(LinkList head)

{

LinkList p,s;

p=head;

while (p->next) p=p->next;

s=(LinkList)malloc(sizeof(LinkNode));

s->next=head;

p->next=s;

head=s;

return head;

}

时间复杂度为:O(n)

28. 假设有向图以邻接表方式存储,编写一个算法判别顶点v i到顶点v j是否存在弧。

【答案】

int IsArcs(ALgraph G,int i,int j) {

/* 判断有向图G中顶点i到顶点j是否有弧,是则返回1,否则返回0*/

p=G[i].firstarc;

while (p!=NULL) {

if(p->adjvex ==j)

return 1;

p=p->nextarc;

}

return 0;

}

29. 设二叉树T采用二叉链表结构存储,数据元素为字符类型。设计算法求出二叉链表中data域为大写字母的结点个数。

【答案】

int count=0;/* count为全局变量*/

void algo2(BTNode *bt){

if (bt){

if(bt->data>=’A’&& bt->data<=’Z’)

count++;

algo2(bt->lchild);

algo2(bt->rchild);

}

}

30. 假设带表头结点的双向循环链表定义如下:

typedef struct dunode{

char data;

struct dunode *prior, *next;

}DuNode;

现用该链表存放字符串,编写一个算法,判断该字符串是否中心对称关系。例如字符串“xyzzyx”和“xyzyx”都是中心对称的。

【答案】

int fun(DuNode *h )

{ p=h->next;q=h->prior;

while(p!=q && p->prior!=q)

{

if(q->data==p->data)

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

else return 0;

}

return 1;

}

31. 假设以带头结点的单链表表示线性表,单链表的类型定义如下:

typedef int DataType;

typedef struct node {

DataType data;

struct node * next;

} LinkNode, * LinkList;

编写算法,删除线性表中最大元素(假设最大值唯一存在)。函数原型为:void f34(LinkList head) ;

【答案】

void f34(LinkList head)

{

int e;

LinkList p,q,s,spre; //s指向最大值的那个结点

spre=head; s=head->next;

q=s; p=s->next;

while (p)

{

if(s->datadata)

{ s=p; spre=q; }

q=p;

p=p->next;

}

e=s->data;

spre->next=s->next;

free(s);

}

高中信息技术《算法与程序设计》试题

高中信息技术《算法与程序设计》试题 一、单选题(每小题3分,20小题,共60分) 1、用计算机解决问题时,首先应该确定程序“做什么?”,然后再确定程序“如何做?”请问“如何做?”是属于用计算机解决问题的哪一个步骤?() A、分析问题 B、设计算法 C、编写程序 D、调试程序 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、在VB语言中,下列数据中合法的长整型常量是() A、08A B、2380836E C、88.12345 D、1.2345E6 8、求Mid(“ABCDEFG”,3,2)的结果是() A、“ABC” B、“CD” C、“ABCDEF” D、“BCD” 9、表达式 A+B+C=3 OR NOT C<0 OR D>0 当A=3,B=4,C=-5,D=6时的运算结果是() A、0 B、1 C、TRUE D、FALSE 10、在循环语句 For x=1 to 100 step 2 …… Next x 中,x能达到的最大值是() A、100 B、99 C、98 D、97 11、在下列选项中,不属于VB的对象的是() A、窗体的背景颜色 B、命令按钮 C、文本框 D、标签 12、在调试程序的时候,经常要设置断点,设置断点的快捷键是()

数据结构和算法习题及答案解析

第1章绪论 习题 1.简述下列概念:数据、数据元素、数据项、数据对象、数据结构、逻辑结构、存储结构、抽象数据类型。 2.试举一个数据结构的例子,叙述其逻辑结构和存储结构两方面的含义和相互关系。 3.简述逻辑结构的四种基本关系并画出它们的关系图。 4.存储结构由哪两种基本的存储方法实现 5.选择题 (1)在数据结构中,从逻辑上可以把数据结构分成()。 A.动态结构和静态结构 B.紧凑结构和非紧凑结构 C.线性结构和非线性结构 D.内部结构和外部结构 (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.栈 6.试分析下面各程序段的时间复杂度。 (1)x=90; y=100; while(y>0) if(x>100) {x=x-10;y--;} else x++; (2)for (i=0; i

算法与数据结构复习资料

算法与数据结构复习资料 一、单选题 在一个带有附加表头结点的单链表HL中,若要向表头插入一个由指针p指向的结点,则执行( B)。 A. HL=p;p->next=HL; B.p->next=HL->next;HL->next=p; C.p->next=HL;p=HL; D.p->next=HL;HL=p; 若顺序存储的循环队列的QueueMaxSize=n,则该队列最多可存储(B)个元素. A. n B.n-1 C.n+1 D.不确定 下述哪一条是顺序存储方式的优点?(A) A.存储密度大B.插入和删除运算方便 C. 获取符合某种条件的元素方便 D.查找运算速度快 设有一个二维数组A[m][n],假设A[0][0]存放位置在600 (10),A[3][3]存放位置在678 (10) , 每个元素占一个空间,问A[2][3] (10)存放在什么位置?(脚注 (10) 表示用10进制表示,m>3)C A.658 B.648 C.633 D.653 下列关于二叉树遍历的叙述中,正确的是( D) 。 A. 若一个树叶是某二叉树的中序遍历的最后一个结点,则它必是该二叉树的前序遍历最后一个结点 B.若一个点是某二叉树的前序遍历最后一个结点,则它必是该二叉树的中序遍历的最后一个结点 C.若一个结点是某二叉树的中序遍历的最后一个结点,则它必是该二叉树的前序最后一个结点 D.若一个树叶是某二叉树的前序最后一个结点,则它必是该二叉树的中序遍历最后一个结点 k层二叉树的结点总数最多为(A). A.2k-1 B.2K+1 C.2K-1 D. 2k-1 对线性表进行二分法查找,其前提条件是( C). A.线性表以链接方式存储,并且按关键码值排好序 B.线性表以顺序方式存储,并且按关键码值的检索频率排好序 C. 线性表以顺序方式存储,并且按关键码值排好序 D. 线性表以链接方式存储,并且按关键码值的检索频率排好序 对n个记录进行堆排序,所需要的辅助存储空间为(C) A. O(1og2n) B. O(n) C. O(1) D.O(n2) 对于线性表(7,34,77,25,64,49,20,14)进行散列存储时,若选用H(K)=K%7作为散列函数,则散列地址为0的元素有(D)个, A.1 B.2 C.3 D.4 下列关于数据结构的叙述中,正确的是( D). A. 数组是不同类型值的集合 B. 递归算法的程序结构比迭代算法的程序结构更为精炼 C. 树是一种线性结构 D. 用一维数组存储一棵完全二叉树是有效的存储方法 在决定选取何种存储结构时,一般不考虑( A )。 A.各结点的值如何B.结点个数的多少 C.对数据有哪些运算D.所用的编程语言实现这种结构是否方便 需要分配较大空间,插入和删除不需要移动元素的线性表,其存储结构是(B)。A.单链表B.静态链表C.线性链表D.顺序存储结构 设指针变量p指向单链表中结点A,若删除单链表中结点A,则需要修改指针的操作序列为(A)。 A.q=p->next;p->data=q->data;p->next=q->next;free(q); B.q=p->next;q->data=p->data;p->next=q->next;free(q); C.q=p->next;p->next=q->next;free(q);

算法与程序设计会考复习题

《算法与程序设计》模块会考复习题 一.单选题 1. java方法重载时参数不可能出现的情况是____D______。P67 A.参数的个数不同 B.参数的个数相同而参数的类型不同 C.参数不完全对应相同D.参数完全对应相同 2. 运行Java程序需要的工具软件所在的目录是___A_______。P16 A.JDK的bin目录B.JDK的demo目录 C.JDK的lib目录D.JDK的jre目录 3. J_HelloWorld.java 的文件内容如下: class J_HelloWorld { public static void Main(String args[]) M不应大写 { System.out.println(" Hello World "); } } 下面说法正确的是____B______。 A.J_HelloWorld.java无法通过编译,因为main方法的声明方式不对 B.J_HelloWorld.java可以通过编译,但程序运行时出现“程序中没main方法”的异常C.J_HelloWorld.java可以通过编译,但无法运行,因为该文件没有public类 D.J_HelloWorld.java可以通过编译并正常运行,结果输出字符串“Hello World” 4. 逻辑表达式!(3/2==1.5)&& 9<3|| 9>3的运算结果为_____A_______。 P9 A.true B.false C.表达式有错D.条件不足 5. 下列可以将变量x和y的值互换的语句是___B______。P35 A.x=y;y=x; B.z=x;x=y;y=z; C.x=z;z=y;y=x; D. x=(x+y)/2;y=(x-y)/2; 6. 执行完下面程序片段之后,下面结论正确的是___B_____。 P43 int a,b,c; a=1;b=2; c=(a+b)>3 ? a++:b++; A.a的值是2,b的值是3 B.a的值是1,b的值是3 C.a的值是1,b的值是2 D.c的值是false。 7. 下面程序片段输出的是___C_______。应使用关系运算符== int a=3,b=1; if(a=b)

《算法与程序设计》试题带答案

《算法与程序设计》试题 学校:_____________ 班级:____________ 学号:____________ 姓名:____________ 一、单选题(每小题3分,20小题,共60分) 1、用计算机解决问题时,首先应该确定程序“做什么?”,然后再确定程序“如何做?”请问“如何做?”是属于用计算机解决问题的哪一个步骤?() A、分析问题 B、设计算法 C、编写程序 D、调试程序 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、在VB语言中,下列数据中合法的长整型常量是() A、08A B、2380836E C、88.12345 D、1.2345E6 8、求Mid(“ABCDEFG”,3,2)的结果是() A、“ABC” B、“CD” C、“ABCDEF” D、“BCD” 9、表达式 A+B+C=3 OR NOT C<0 OR D>0 当A=3,B=4,C=-5,D=6时的运算结果是() A、0 B、1 C、TRUE D、FALSE

数据结构和C++程序设计_题库

《数据结构》 Part1 一.选择 1. 组成数据的基本单位是() A)数据项B)数据类型C)数据元素D)数据变量 2.算法分析的目的是() A)找出数据结构的合理性B)研究算法的输入/输出关系 C)分析算法的效率以求改进D)分析算法的易读性 3.在一个具有n个结点的有序单链表中插入一个新结点并仍然有序的时间复杂度是()A)O(1) B)0(n) C)O(n^2) D)O(nlog2n) 4.若线性表采用顺序存储结构,每个元素占用4个存储单元,第一个元素的存储地址为100,则第12个元素的存储地址是() A)112 B)144 C)148 D)412 5.下面关于线性表的叙述中,错误的是() A)顺序表使用一维数组实现的线性表B)顺序表必须占用一片连续的存储单元. C)顺序表的空间利用率高于链表D)在单链表中,每个结点只有一个链域. 6.在需要经常查找结点的前驱与后继的情况下,使用()比较合适 A)单链表B)双链表C)顺序表D)循环链表 7.队列通常采用的两种存储结构是() A)顺序存储结构和链式存储结构B)散列方式和索引方式 C)链表存储结构和线性存储结构D)线性存储结构和非线性存储结构 8.在一个单链表中,若删除p所指结点的后继结点,则执行() A)p->next=p->next->next;B)p=p->next;p->nex=p->next->next; C)p->next=p->next;D)p=p->next->next; 9.若某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用()存储方式最节省运算时间 A)单链表B)仅有头指针的单循环链表C)双链表D)仅有尾指针的单循环链表 10.按二叉树的定义,具有三个结点的二元树共有()种形态。 A)3 B)4 C)5 D)6 11.任何一棵二叉树的叶结点在先序、中序和后序遍历序列中的相对次序()A)发生改变B)不发生改变C)不能确定D)以上都不对12.深度为5的二叉树至多有()个结点 A)16 B)32 C)31 D)10 13.在一棵度为3的树中,度为3的结点数为2个,度为2的结点数为1个,度为1的结点数为2个,那么度为0的结点数为()个。 A)4 B)5 C)6 D)7 14.对于一个具有n个顶点的无向图,若采用邻接表表示,则存放表头结点的数组(顶点表)的大小为() A)n B)n+1 C)n-1 D)n/2 15.静态查找表和动态查找表二者的根本差别在于()

数据结构与算法复习题库含答案

数据结构复习题 第一章概论 一、选择题 1、研究数据结构就是研究( D )。 A. 数据的逻辑结构 B. 数据的存储结构 C. 数据的逻辑结构和存储结构 D. 数据的逻辑结构、存储结构及其基本操作 2、算法分析的两个主要方面是( A )。 A. 空间复杂度和时间复杂度 B. 正确性和简单性C. 可读性和文档性 D. 数据复杂性和程序复杂性 3、具有线性结构的数据结构是( D )。 A. 图 B. 树 C. 广义表 D. 栈 4、计算机中的算法指的是解决某一个问题的有限运算序列,它必须具备输入、输出、( B )等5个特性。 A. 可执行性、可移植性和可扩充性 B. 可执行性、有穷性和确定性 C. 确定性、有穷性和稳定性 D. 易读性、稳定性和确定性 5、下面程序段的时间复杂度是( C )。 fori0;im;i++ forj0;jn;j++ a[i][j]i*j; A. Om2 B. On2 C. Om*n D. Om+n 6、算法是( D )。

A. 计算机程序 B. 解决问题的计算方法 C. 排序算法 D. 解决问题的有限运算序列 7、某算法的语句执行频度为(3n+nlog2n+n2+8),其时间复杂度表示( C )。 A. On B. Onlog2n C. On2 D. Olog2n 8、下面程序段的时间复杂度为( C )。 i1; whilein ii*3; A. On B. O3n C. Olog3n D. On3 9、数据结构是一门研究非数值计算的程序设计问题中计算机的数据元素以及它们之间的( B )和运算等的学科。 A. 结构 B. 关系 C. 运算 D. 算法 10、下面程序段的时间复杂度是( A )。 is0; whilesn i++;s+i; A. On B. On2 C. Olog2n D. On3 11、抽象数据类型的三个组成部分分别为( A )。 A. 数据对象、数据关系和基本操作 B. 数据元素、逻辑结构和存储结构 C. 数据项、数据元素和数据类型 D. 数据元素、数据结构和数据类型 12、通常从正确性、易读性、健壮性、高效性等4个方面评价算法的质量,以下解释错误的是(D)。

《算法与程序设计》复习题

算法与程序设计 一、选择题部分(100题) 一章一节:了解计算机解决问题的过程 1.用计算机解决问题时,首先应该确定程序“做什么?”,然后再确定程序“如何做?”请问“如何做?”是属于用计算机解决问题的哪一个步骤?() A、分析问题 B、设计算法 C、编写程序 D、调试程序答案:B 2.学校要举行运动会,请你设计一个能够对运动员分数自动排序的软件,如果要设计此软件,以下最好的方法和步骤是()。 A、分析问题,编写程序,设计算法,调试程序 B、设计算法,编写程序,提出问题,调试程序 C、提出问题,设计算法,编写程序,调试程序 D、设计算法,提出问题,编写程序,调试程序 答案:C 3.下列步骤不属于软件开发过程的是()。 A、任务分析与系统设计 B、软件的销售 C、代码编写与测试 D、软件测试与维护 答案:B 4.用计算机解决问题的步骤一般为()①编写程序②设计算法③分析问题④调试程序。 A.①②③④ B.③④①② C.②③①④ D.③②①④答案:D 5.以下描述中最适合用计算机编程来处理的是()。 A、确定放学回家的路线 B、计算某个同学期中考试各科成绩总分 C、计算100以内的奇数平方和 D、在因特网上查找自己喜欢的歌曲答案:C 6.以下问题中最适合用计算机编程处理的是()。 A、制定本学期的学习计划 B、计算正方形的周长 C、创作一首歌曲 D、求1000以内的所有素数 答案:D 7.由“上车—掏钱—投币”所描述的问题是()。 A、无人售票车投币过程 B、乘公交车过程 C、上车过程 D、下车过程答案:A 一章二节:算法和算法描述 8.下面说法正确的是()。 A、算法+数据结构=程序 B、算法就是程序 C、数据结构就是程序 D、算法包括数据结构 答案:A 9.算法描述可以有多种表达方法,下面哪些方法不可以描述“水仙花数问题”的算法()。 A.自然语言 B.流程图 C.伪代码 D.机器语言答案:D 10.下面关于算法的说法错误的是()。 A、算法必须有输出 B、算法就是程序 C、算法不一定有输入 D、算法必须在有限步执行后能结束 答案:B 11.算法的三种基本控制结构是顺序结构、分支结构和()。 A、模块结构 B、情况结构 C、流程结构 D、循环结构答案:D 12.算法的三种基本控制结构是分支结构、循环结构和() A、模块结构 B、情况结构 C、流程结构 D、顺序结构答案:D 13.算法的三种基本控制结构是顺序结构、分支结构和()。 A、模块结构 B、循环结构 C、流程结构 D、情况结构答案:B 14.下面关于算法的认识正确的是()。 A、算法就是求解“鸡兔同笼问题” B、算法一定没有输出 C、算法就是计算机程序 D、算法的步骤必须是有限的答案:D

算法与程序设计试题带答案

高一第二学期《算法与程序设计》学分认定试题 学校:_____________ 班级:____________ 学号:____________ 姓名:____________ 一、单选题(每小题3分,20小题,共60分) 1、用计算机解决问题时,首先应该确定程序“做什么”,然后再确定程序“如何做”请问“如何做”是属于用计算机解决问题的哪一个步骤() A、分析问题 B、设计算法 C、编写程序 D、调试程序 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、在VB语言中,下列数据中合法的长整型常量是() A、08A B、2380836E C、 D、 8、求Mid(“ABCDEFG”,3,2)的结果是() A、“ABC” B、“CD” C、“ABCDEF” D、“BCD” 9、表达式A+B+C=3 OR NOT C<0 OR D>0 当A=3,B=4,C=-5,D=6时的运算结果是() A、0 B、1 C、TRUE D、FALSE 10、在循环语句For x=1 to 100 step 2 …… Next x 中,x能达到的最大值是() A、100 B、99 C、98 D、97 11、在下列选项中,不属于VB的对象的是() A、窗体的背景颜色 B、命令按钮 C、文本框 D、标签 12、在调试程序的时候,经常要设置断点,设置断点的快捷键是()A、F1 B、F8 C、F9 D、F12 13、算法描述可以有多种表达方法,下面哪些方法不可以描述“闰年问题”的算法() A、自然语言 B、流程图 C、伪代码 D、机器语言 14、以下不属于非法用户自定义标识符(常量和变量命名)的是() A、8ad B、ad8 C、_a8d D、const 15、已知A,B,C,D是整型变量,且都已有互不相同的值,执行语句B=0;A=C;D=A;D=B;后,其值相等的变量是() A、A,D B、A,C C、C,B D、B,A 16、要交换变量A和B的值,应使用的语句组是( ) A、A=B;B=C;C=A B、C=A;A=B;B=C C、A=B;B=A D、C=A;B=A;B=C 17、VisualBasic中以单引号开头一行文字称为注释,它对程序的运行() A、起一定作用 B、有时候起作用 C、不起任何作用,但是必须的 D、不起任何作用,但能增加程序的可阅读性 18、要使一个命令按钮显示文字“确定”,正确的设置是把该命令按钮的()。 A、属性Font设置为“确定” B、属性.ForeColor设置为“确定” C、属性Caption设置为“确定” D、属性BorderStyle设置为“确定” 19、要从文本框TXTShowOut中输出"中国您好!",代码为( ) A ="中国您好!" B ="中国您好!" C ="中国您好!" D Val=“中国您好!” 20、下列Visual Basic程序段运行后,变量max的值为()。 a=11; b=15; max=a IF b>max Then max =b A、15 B、11 C、15或11都有可能 D、以上都不是 二、阅读程序写结果(第1~2小题每题5分,第3小题10分,共20分) 1、Private Sub Form_Load() N=InputBox(“请输入N的值:”,“输入”) S=1 For i=1 to N S=S*i Next i MsgBox “S=”+Str(s),0,”计算结果” End Sub 当N=5时,运行的结果是__________________。

数据结构算法设计题复习题

算法设计题 1. 设二叉树bt采用二叉链表结构存储。试设计一个算法输出二叉树中所有非叶子结点,并求出非叶子结点的个数。 【答案】 int count=0; void algo2(BTNode *bt){ if (bt){ if(bt->lchild || bt->rchild){ printf(bt->data); count++; } algo2(bt->lchild); algo2(bt->rchild); } } 2. 阅读下列函数arrange() int arrange(int a[],int 1,int h,int x) {//1和h分别为数据区的下界和上界 int i,j,t; i=1;j=h; while(i=x)j--; while(i=x)i++; if(i

数据结构与算法复习题10(C语言版)

习 9解答 判断题: 1.用向量和单链表表示的有序表均可使用折半查找方法来提高查找速度。 答:FALSE (错。链表表示的有序表不能用折半查找法。) 2.有n 个数据放在一维数组A[1..n]中,在进行顺序查找时,这n 个数的排列有序或无序其平均查找长度不同。 答:FALSE (错。因顺序查找既适合于有序表也适合于无序表;对这两种表,若对于每个元素的查找概率相等,则顺序查找的ASL 相同,并且都是(n+1)/2;对于查找概率不同的情况,则按查找概率由大到小排序的无序表其ASL 要比有序表的ASL 小。) 3.折半查找是先确定待查有序表记录的范围,然后逐步缩小范围,直到找到或找不到该记录为止。( ) 答:TRUE 4.哈希表的查找效率主要取决于哈希表哈希表造表时选取的哈希函数和处理冲突的方法。 答:TRUE 5.查找表是由同一类型的数据元素(或记录)构成的集合。 答:TRUE 单选题: 6.对于18个元素的有序表采用二分(折半)查找,则查找A[3]的比较序列的下标为( )。 A. 1、2、3 B. 9、5、2、3 C. 9、5、3 D.9、4、2、3 答:D (第一次??2/)181(+ = 9,第二次??2/)81(+ = 4,第三次??2/)31(+ = 2, (第四次??2/)33(+ = 3,故选D. 7. 顺序查找法适合于存储结构为____________的线性表。 A.散列存储 B.顺序存储或链式存储 C.压缩存储 D.索引存储 答:B 8.对线性表进行二分查找时,要求线性表必须( )。 A .以顺序方式存储 B. 以链接方式存储 C .以顺序方式存储,且结点按关键字有序排序 D. 以链接方式存储,且结点按关键字有序排序 答:C 9.设哈希表长m=14,哈希函数为H(k) = k MOD 11。表中已有4个记录(如下图

2014山东省信息技术学考算法与程序设计试题答案附后讲解

2014山东省信息技术学考算法与程序设计试题答案附后讲解

山东省学考算法与程序设计试题 选择题 1、下列VB表达式中: ⑴Sqr(x) ⑵Text1.text ⑶Command1.caption ⑷"45"+"34" ⑸45+34值为字符串类型的是() A⑴⑵⑶ B⑵⑶⑷ C ⑴⑶⑸ D⑵⑷⑸ 2、如果给出三条线段的长分别为a、b、c,且已知a≤b≤c,要问这三条线段能否构成三角形,仅需下列选项中的哪个判定条件即可?() A 其他选项都不对 B a+c>b C a+b>c D b+c>a 3、VB程序中“Dim n As Integer”这条语句的作用是() A 定义一个事件过程 B 定义一个数据输入方法 C 定义一个变量 D 定义一个数据处理方法 4、关于算法的描述,下列选项中正确的是() A 算法的每一步骤必须有确切的含义 B 算法必须有输入 C 算法的步骤可以是无穷的 D 算法本身就是一种程序设计语言 5、关于算法的描述,正确的是() A同一种算法只能用一种程序语言实现 B算法就是数值计算的方法 C描述算法的方法只有流程图 D算法是描述解决问题的方法和步骤 6、算法的描述方法有多种,下列选项中不适合描述算法的是() A机器语言 B自然语言 C流程图 D伪代码 7、长度分别为a、b、c的三条线段,能够组成三角形的条件是() A a+b>c Or a+c>b Or b+c>a B a+b>c or a+c>b And b+c>a C a+b>c Or a+c>b And b+c>a D a+b>c And a+c>b And b+c>a 8、已知海伦公式:()()() p p a p b p c ---p=1 2 (a+b+c),a、b、c分别为三角形的三条 边长。利用海伦公式求三角形面积的算法属于() A 排序法 B 解析法 C 穷举法 D 查找法 9、以下程序段中循环体执行的次数是() s=0 i=0 Do While s<10 i=i+1 s=s+i*i Loop A 1 B 3 C 2 D 4 10、下列VB表达式中,能正确表达不等式方程|x|>1的解的是() A x>-1 and x<1 B x>-1 or x<1 C x<-1 and x>1 D x<-1 or x>1 11、一元二次方程ax2+bx+c=0(a≠0)的两个实数根分别为: x 1 24 b b ac -+- 2 24 b b ac ---下列表达式正确的是() A x 2=-b-sqr(b^2-4*a*c)/(2*a) B x 1 =(-b+sqr(b^2-4ac))/(2*a)

数据结构和算法课程设计题目

北方民族大学课程设 计 课程名称: 数据结构与算法 院(部)名称:信息与计算科学学院 组长姓名学号 同组人员姓名 指导教师姓名:纪峰 设计时间:2010.6.7----2009.6.27 一、《数据结构与算法》课程设计参考题目

(一)参考题目一(每位同学选作一个,同组人员不得重复) 1、编写函数实现顺序表的建立、查找、插入、删除运算。 2、编写函数分别实现单链表的建立、查找、插入、删除、逆置算法。 3、编写函数实现双向链表的建立、插入、删除算法。 4、编写函数实现顺序栈的进栈、退栈、取栈顶的算法。 5、编写函数实现链栈的进栈、退栈、取栈顶的算法。 6、编写函数实现双向顺序栈的判空、进栈、出栈算法。 7、编写函数实现循环队列的判队空、取队头元素、入队、出队算法。 8、编写函数实现链环队列的判队空、取队头节点、入队、出队算法。 9、编写函数实现串的,求串长、连接、求字串、插入、删除等运算。 10、分别实现顺序串和链串的模式匹配运算。 11、实现二叉树的建立,前序递归遍历和非递归遍历算法。 12、实现二叉树的建立,中序递归遍历和非递归遍历算法。 13、实现二叉树的建立,后序递归遍历和非递归遍历算法。 14、实现二叉树的中序线索化,查找*p结点中序下的前驱和后继结点。 15、分别以临接表和邻接矩阵作为存储就够实现图的深度优先搜索和广度优先搜索算法。 16、利用线性探测处理冲突的方法实现散列表的查找和插入算法。 (二)参考题目二(每三人一组,任选三个题目完成) 1.运动会分数统计(限1 人完成) 任务:参加运动会有n个学校,学校编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m<=20,n<=20) 功能要求: 1)可以输入各个项目的前三名或前五名的成绩; 2)能统计各学校总分, 3)可以按学校编号或名称、学校总分、男女团体总分排序输出; 4)可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。 5)数据存入文件并能随时查询 6)规定:输入数据形式和范围:可以输入学校的名称,运动项目的名称 输出形式:有合理的提示,各学校分数为整形 界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。 存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。(数据文件的数据读写方法等相关内容在c语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构;

大数据结构考试精彩试题

数据结构辅导试题一 一、简答问题: 1.四类数据结构 2.线性结构与非线性结构有何差别? 3.简述算法的定义与特性。 4.设有1000个无序元素,仅要求找出前10个最小元素,在下列排序方法中(归并排序、基数排序、快速排序、堆排序、插入排序)哪一种方法最好,为什么? 二、判断正误:(每小题1分,共5分)正确在()内打√,否则打 。1.()二叉排序树或是一棵空树,或是具有下列性质的二叉树: 若它的左子树非空,则根结点的值大于其左孩子的值, 若它的右子树非空,则根结点的值大于其右孩子的值。 2.()索引顺序表的特点是块内可无序,块间要有序。 3.()子串是主串中任意个连续字符组成的序列。 4.()线性结构只能用顺序结构存放,非线性结构只能用链表存放。 5.()快速排序的枢轴元素可以任意选定。 三、单项选择题:(每小题1分,共4分) 1.栈S最多能容纳4个元素。现有6个元素按A、B、C、D、E、F的顺序进栈, 问下列哪一个序列是可能的出栈序列? A)E、D、C、B、A、F B)B、C、E、F、A、D C)C、B、E、D、A、F D)A、D、F、E、B、C 2.将一棵有100个结点的完全二叉树从根这一层开始,每一层从左到右依次对结点进行编号,根结点编号为1,则编号为49的结点的左孩子的编号为: A、98 B、99 C、50 D、48 3. 对下列关键字序列用快速排序法进行排序时,速度最快的情形是: A){21、25、5、17、9、23、30} B){25、23、30、17、21、5、9} B){21、9、17、30、25、23、5} D){5、9、17、21、23、25、30} 4. 设森林F中有三棵树,第一、第二和第三棵树的结点个数分别为M1、M2和M3。与森林F对应的二叉树根结点的右子树上的结点个数是: A)M1 B)M1+M2 C)M3 D)M2+M3 四、填空题:(每小题2分,共 20分) 1.设一哈希表表长M为100 ,用除留余数法构造哈希函数,即H(K)=K MOD P(P<=M), 为使函数具有较好性能,P应选 2.N个结点的二叉树采用二叉链表存放,共有空链域个数为 3.单链表与多重链表的区别是 4.在各种查找方法中,平均查找长度与结点个数无关的是 5.深度为6(根层次为1)的二叉树至多有个结点。 6.已知二维数组A[20][10]采用行序为主方式存储,每个元素占2个存储单元,并且A[10][5]的存储地址是1000,则A[18][9]的存储地址是 7.在一个单链表中p所指结点之后插入s所指结点时,应执行 s->next= 和p->next= 的操作. 8.广义表((a,b),c,d)的表头是 ,表尾是 9.循环单链表LA中,指针P所指结点为表尾结点的条件是 10.在一个待排序的序列中,只有很少量元素不在自己最终的正确位置上,但离他们的正确位置都不远,则使用排序方法最好。 五、构造题:(每小题5分,共25分) 1.已知一棵二叉树,其中序序列DBCAFGE,后序序列DCBGFEA,构造该二叉树。 2.设哈希表长度为11,哈希函数H(K)=(K的第一字母在字母表中的序号)MOD11,若输入顺序为(D,BA,TN,M,CI,I,K,X,TA),处理冲突方法为线性探测再散列或链

算法与程序设计习题

《算法与程序设计》模块练习题 一、单选题 1、模块化程序设计方法主要通过()来实现。 A.递归算法和递归程序 B.过程和函数的定义和调用 C.程序的循环结构 D.对象答案:B 2、text1.text的含义正确的是()。 A.text1是控件名称,text是控件属性 B.text1是窗体名称,text 是控件 C.text1是控件名称,text是方法 D.text1是控件属性,text是控 件答案:A 3、以下程序段运行后S的值是()。 s = 0 For i = 1 To 14 x = 2 * i - 1 If x Mod 3 = 0 Then s = s + 1 Next i A.0 B.4 C.5 D.14 答案:C 4、数列1,4,7,10,13,……的递推公式为()。 A.f(1)=1;f(n)=n+3 B.f(1)=1;f(n)=n*2-1 C.f(1)=1;f(n)=n*2+1

D.f(1)=1;f(n)=f(n-1)+3 答案:D 5、对于对象及其特征的错误理解是()。 A.对象都具有一个标识自己以区别其他对象的名字。 B.对象都具有自身的属性及其属性值。 C.对象一般只用数据表示属性,但不用代码表示行为。 D.对象都具有自身的行为(操作)。 答案:C 6、VB函数Left ()从字串左端取部分字串,那么Left("Visual Basic 6.0", 8)的值为()。 A.Visual B B.Visual C.Visual Ba D.asic 6.0 答案:A 7、程序段如下: c ="1234" For i = 1 To 4 Print _____, Next 如果要让程序运行后得到如下结果: 1 1 2 12 3 1234 则在下划线处应填入的内容为()。 A.Right(c,i) B.Left(c,i) C.Mid(c,i,1) D.Mid(c,i,i) 答案:B 8、若X = True,执行If X Then X = 0 Else X = 1后X的结果为()。

最新高中信息技术《算法与程序设计》试题精品版

2020年高中信息技术《算法与程序设计》 试题精品版

新课标高中信息技术《算法与程序设计》试题一、单选题(每小题3分,20小题,共60分) 1、用计算机解决问题时,首先应该确定程序“做什么?”,然后再确定程序“如何做?”请问“如何做?”是属于用计算机解决问题的哪一个步骤?() A、分析问题 B、设计算法 C、编写程序 D、调试程序 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、在VB语言中,下列数据中合法的长整型常量是() A、08A B、2380836E C、88.12345 D、1.2345E6 8、求Mid(“ABCDEFG”,3,2)的结果是() A、“ABC” B、“CD” C、“ABCDEF” D、“BCD” 9、表达式 A+B+C=3 OR NOT C<0 OR D>0 当A=3,B=4,C=-5,D=6时的运算结果是() A、0 B、1 C、TRUE D、FALSE 10、在循环语句 For x=1 to 100 step 2 ……

数据结构与算法复习题及参考答案

复习题集─参考答案 一判断题 (√)1. 在决定选取何种存储结构时,一般不考虑各结点的值如何。 (√)2. 抽象数据类型与计算机部表示和实现无关。 (×)3. 线性表采用链式存储结构时,结点和结点部的存储空间可以是不连续的。 (×)4. 链表的每个结点中都恰好包含一个指针。 (×)5.链表的删除算法很简单,因为当删除链中某个结点后,计算机会自动地将后续的各个单元向前移动。(×)6. 线性表的每个结点只能是一个简单类型,而链表的每个结点可以是一个复杂类型。 (×)7. 顺序表结构适宜于进行顺序存取,而链表适宜于进行随机存取。 (×)8. 线性表在物理存储空间中也一定是连续的。 (×)9. 顺序存储方式只能用于存储线性结构。 (√)10.栈是一种对所有插入、删除操作限于在表的一端进行的线性表,是一种后进先出型结构。 (√)11.对于不同的使用者,一个表结构既可以是栈,也可以是队列,也可以是线性表。 (√)12.栈是一种对所有插入、删除操作限于在表的一端进行的线性表,是一种后进先出型结构。 (√)13.两个栈共享一片连续存空间时,为提高存利用率,减少溢出机会,应把两个栈的栈底分别设在这片存空间的两端。 (×)14.二叉树的度为2。 (√)15.若二叉树用二叉链表作存贮结构,则在n个结点的二叉树链表中只有n—1个非空指针域。 (×)16.二叉树中每个结点的两棵子树的高度差等于1。 (√)17.用二叉链表法存储包含n个结点的二叉树,结点的2n个指针区域中有n+1个为空指针。 (√)18.具有12个结点的完全二叉树有5个度为2的结点。 (√)19.二叉树的前序遍历序列中,任意一个结点均处在其孩子结点的前面。 (×)20.在冒泡法排序中,关键值较小的元素总是向前移动,关键值较大的元素总是向后移动。 (×)21.计算机处理的对象可以分为数据和非数据两大类。[计算机处理的对象都是数据] (×)22.数据的逻辑结构与各数据元素在计算机中如何存储有关。 (×)23.算法必须用程序语言来书写。 (×)24.判断某个算法是否容易阅读是算法分析的任务之一。 (×)25.顺序表是一种有序的线性表。[任何数据结构才用顺序存储都叫顺序表] (√)26.分配给顺序表的存单元地址必须是连续的。 (√)27.栈和队列具有相同的逻辑特性。[它们的逻辑结构都是线性表] (√)28.树形结构中每个结点至多有一个前驱。 (×)29.在树形结构中,处于同一层上的各结点之间都存在兄弟关系。 (×)30.如果表示图的邻接矩阵是对称矩阵,则该图一定是无向图。 (×)31.如果表示图的邻接矩阵是对称矩阵,则该图一定是有向图。 (×)32.顺序查找方法只能在顺序存储结构上进行。 (×)33.折半查找可以在有序的双向链表上进行。

算法与程序设计试题

算法与程序设计试题 一、选择题(每题两分,共14分每题2分) 1、要进行元旦晚会比赛,学校请你设计一个能够对元旦晚会节目分数自动排序的软件,你接到任务后,准备开始设计此软件,比较好的方法和步骤是() A、设计算法,编写程序,提出问题,调试程序 B、分析问题,编写程序,设计算法,调试程序 C、分析问题,设计算法,编写程序,调试程序 D、设计算法,提出问题,编写程序,调试程序 2、数值型数据包括两种。 A、整型和长整型 B、整型和浮点型 C、单精度型和双精度型 D、整型、实型和货币型 3、具有输出数据功能的控件是:() A、窗体控件和标签控件 B、复选框控件和文本框控件 C、标签控件和文本框控件 D、选项框按钮控件和复选框控件 4、要使循环体至少执行一次,应使用循环。 5、下列程序段是计算公式的: s=0;t=1 for I =1 to 10 t:=t*I s:=s+t Next I A、s=1+2+3+......10B、s=1*2*3* (10) C、s=1!+2!+3! ......10! D、s=1+2*3+3*4+4*5+......9*10 6、在窗体(Name属性为Formal)上画两个文本框(其Name属性分别为Text1和Text2)和一个命令按钮(Name属性为Command1),然后编写如下两个事件过程: Private Sub Command1_Click() A = Text1Text + Text2.Text Print a End Sub Private Sub Formal_Load() Text1.Text = " " Text2.Text = " " End Sub 程序运行后,在第一个文本框(Text1)和第二个文本框(Text2)中分别输入123和321,然后单击命令按钮,则输出结果为()。 A、444 B、321123 C、123321 D、132231 7、使用函数与过程是为了。 A、使程序模块化B、使程序易于阅读

相关文档
最新文档