文档库 最新最全的文档下载
当前位置:文档库 › 数据结构题目选择和填空

数据结构题目选择和填空

数据结构题目选择和填空
数据结构题目选择和填空

习题1

一;选择题

1;在C/C++程序中,main函数的位置()

A 必须在最开始B必须在预处理指令的后面

C 可以任意D必须在最后

2;在C/C++程序中,下列说法中正确的是()

A 不区分大小写字母

B 一行只能写一条语句

C 一条语句可分成几行书写

D 每行必须有行号

3;C程序文件名的后缀为(),C++程序文件名的后缀为()A;.c B;.cpp C;.obj D;.exe

4;C/C++程序经过编译后生成可执行文件,其文件名的后缀为()A;.c B;.cpp C;.obj D;.exe

5;C/C++程序经过连接后生成可执行文件,其文件名的后缀为()A;.c B;.cpp C;.obj D;.exe

6;编译程序的主要工作是()

A检查程序的语法错误B检查程序的逻辑错误

C检查程序的完整性D生成目标文件

7;计算机硬件能唯一识别的语言是()

A机器语言B低级语言

C汇编语言D翻译程序

8;下列说法正确的是()

A;在C/C++源程序中,每条语句以逗号结束

B;在c/c++源程序中,每行只能写一条语句

C;无论注释内容是什么,在对程序进行编译时都被忽略

D写注释时,“/”和“*”之间可以有空格

习题2

一;选择题

1;在计算机内一切信息的存取;传输和处理都是以()形式进行的。

A;ASCII码B;二进制C;十进制 D 十六进制2;十进制数35转换成二进制数是()

A;100011 B;0100011 C;100110 D;100101

3;用8位二进制表示有符号整数,可表示的最大整数是()。A;127 B;128 C;256 D;255

4;-23的8位二进制补码是()

A;00010111 B;11101001

C;11101000 D;10010111

5;计算机工作时,内存储器用来存储()

A;程序和指令B;数据和信号

C;程序和数据D;ASCII码和数据

6;内存中,存储单元是()

A;最小存储单位 B ;可管理的最小存储单位

C;以字节为单位C;存储程序

7;下面()不是C/C++语言的基本数据类型。

A;unsigned int B;double C;char D;string

8;在C/C++语言中,字符型数据进行()运算没有实际意义。A;+ B;—C;> D;<

习题3

一;选择题

1;下面4个选项中,均是合法整型常量的选项是()A;160 -0xffff 011 B;-0xcdf 01a 0xe C;-01 986,012 0668 D;-0x48a 2e5 0x 2;下面4个选项中,均是不合法转义字符的选项是()A;'\'" '\\' '\xf' B;'\1011' '\' '\ab'

C;'\011' '\f' '\}' D;'\abc' '\101' 'xlf' 3;下面4个选项中,均是合法char型常量的选项是()A;'a' '! ' 'this' B;''' '\'' '\ab'

C;'1' 'a' '*' D;'\78' '\76' '\72' 4;若有变量定义语句:char ch='\72'; 则变量ch( )

A;包含1个字符B;包含2个字符

C;包含3个字符D;变量定义不合法

5;假设变量已正确定义并初始化,下面合法的赋值语句是()A;a:=b+1; B;a=b=c+2; C;18.5=a+b; D;a+1=c 6;假设变量已正确定义并初始化,下面合法的赋值语句是()

A;a==1; B;i++; C;a+i=5; D;5-i=a

7;下面正确的常量定义是()

A;#define base=2.13 B;#define base 1/3

C;#define int integer D;#define count 999

8;下面正确的变量定义是()

A;int a;b;c; B;double xl,x2;

C;char 'A', 'B'; D;int a,double x;

习题4

一;选择题

1;对于变量定义int a=7;float x=2.5,y=4.7;表达式x+a%3+(int)(x+y)%2/4的值是()

A;2.5 B;2.75 C;3.5 D;0

2;设变量a是整型,f是单精度型,d是双精度型,则表达式a*f+(d-a)的运算结果的数据类型为()

A;int B;float C;double D;不确定

3;假设变量x和y为double型,且x已赋值为2,则表达式y=x+3/2的值是()

A;3.5 B;3 C;2.0 D;3.0

4;下列运算符中优先级最高的是()

A;<B;+ C;&& D;!=

5;判断char型变量ch是否为小写字母的正确表达式是()

A;'a'<=ch<='z' B;(ch>=a)&&(ch<=z)

C;('a'>=ch)║('z'<=ch)D;(ch>='a')&&(ch<='z')

6;语句printf("I\bandy\\\bou\n");的输出结果是()

A;I\bandy\\\bou\n B;I\bandy\\\bou

C;Iandy\ou D;andyou

7;若有变量定义int a;float b;则以下输入语句正确的是()A;scanf("%f%f",&a,&b); B;scanf("%1f%1f",&a,&b)

C;scanf("%d %f",&a,&b); D;scanf("%d %6.2f",&a,&b) 8;执行下面程序段,给变量x和y赋值时,不能作为数据分隔符的是()

int x, y;

scanf("%d %d",&x,&y);

A;空格B;Tab键C;回车D;逗号

9;执行下面程序段,假设用户输入为1□□2□3(□表示空格),则变量ch1,ch2t ch3的值是()

char ch1,ch2,ch3;

scanf("%c%c%c",&ch1,&ch2,&ch3);

A;'1','2','3' B;'1','□','2' C;'1','□','□'D;'1','□','3'

习题5

一;选择题

1;if-else语句嵌套使用时,else与()相配对。

A;缩排位置相同的if B;其上最近的if

C;其下最近的if D;其上最的未配对的if 2;以下错误的if语句是()。

A;if(x >y)z=x; B;if(x==y)z=0;

C;if(x!=y)z=x else z=y; D;if(x

void main()

{

int a = 20,b = 30;c = 40,

if (a > b) a =b;

b = c;

c = a ;

printf(“a =%d, b=%d, c=%d??/n;a,b,c,);

}

A;a=20,b=30,c=20 B;a=20,b=40,c=20

C;a=30,b=40,c=20 D;a=30,b=40,c=30

4;对于如下程序,正确的判断是()。

void main()

{

int a,b;

scanf(“%d,%d,”&a,&b);

if(a> b) a=b;b=a;

else a++;b++;

printf(“%d, %d ,a,b,);

}

A;有语法错误不能通过编译B;若输入4,5则输出5,6 C;若输入5,4则输出4,5 D;若输入5,4则输出5,5 5;以下程序输出结果是()。

void main()

{

Int x=1,a = 0,b = 0;

switch(x)

}

case 0: b++;

case 1: a++;

case 2;a++;b++;

}

printf(“a = % d, b = %d\n”, a, b);

}

A;a=2,b=1 B;a=1,b=1 C;a=1,b=0 D;a=2,b=2 6;以下循环语句的执行次数是()。

for(int i = 2; i != 0; i--) printf (“%d??,i);

A;无限次B;0次C;1 次D;2次

7;语句while(!E)中的表达式!E等价于()

A;E==0 B;E!=1 C;E!=0 D;E==1

8;可将for(表达式1;;表达式3)理解为()

A;for(表达式1;0表达式3) B;for(表达式1;1;表达式3) C;for(表达式1;表达式1;表达式3) D;for(表达式1;表达式3;表达式3)9;以下程序段()

x=-1;

do{

x=x * x;

} while(!x);

A;是死循环B;有语法错误

C;循环体执行1次D;循环体执行2次

10;以下程序段中,while循环的循环次数是()

int i=0;

while (i<10)

{

if (i<5) continue;

if (i ==5) break;

i++;

}

A;1 B;10 C;死循环D;有语法错误

习题6

一;选择题

1;下列说法中正确的是()。

A;实参必须是常量B;形参可以是常量;变量或表达式C;实参可以是任何类型D;实参与其对应形参的数据类型一致2;在C/C++语言中,函数的隐含存储类型是()

A;auto B;static C;extern D;无储存类别

3;在函数中未指定存储类别的局部变量,其隐含的存储类别为()A;auto B;static C;extern D;register

4;C/C++语言规定,函数返回值的类型是由()

A;return语句中的表达式类型所决定

B;调用该函数时的主调函数类型所决定

C;调用该函数时系统临时决定

D;在定义该函数时所指定的函数类型所决定

5;下列说法不正确的是()

A;在不同的函数中可以使用相同名字的变量

B;函数中的形参是局部变量

C;在一个函数内定义的变量只在本函数范围内有效

D;在一个函数内的复合语句中定义的变量在本函数范围内有效6;以下程序的输出结果是()

#include<stdio.h>

void Fun(int x,int y, int z)

{

z=x+y

}

int main( )

{

int c;

Fun(2,3,c);

printf("%d/n ",c);

return 0;

}

A;0 B;5 C;6 D;无法确定

习题7

一;选择题

1;若有变量定义int a,b,*p=&b;能够正确从键盘读入2个整数并分别赋给变量a和b的语句是()

A;scanf(“%d%d”, &a, &p); B;scanf(“%d%d”, &a, p); C;scanf(“%d%d”,a,p); D;scanf(“%d%d”,a,*p); 2;若有变量定义int a=512,*p=&a;则*p的值为()

A;无确定值B;0 C;变量a的地址D;512;

3;下面()能实现交换指针p和q所知内存单元的值。

A;temp=*p;*p=*q;*q=temp B;remp=p;p=q;q=temp;

D;temp=p;*p=*q;q=temp D;temp=﹠p;*p=*q;q=*temp;

4;两个基类型相同的指针变量之间不能进行()运算。

A;< B;> C;+ D;—

5;若有变量定义int a=5,*p=&a;*q=&a;则下面不能正确执行的赋值语句是()。

A;a=p-q; B;p=a;

C;p=q; D;a=(*p)*(*q);

6;若有定量定义int a=5,*p=&a,*p=&x;则能完成x=y赋值功能的语句是()

A;x=*p; B;*p=y;

C;x=&y; D;*p=&y

7;若有变量定义int m=5,n,*p;则以下正确的程序段是()。A;p=&n;scanp(“%d”, &p); B;p=&n;scanp(“%d”, *p); C;scanf(“%d, &n);*p=n D;p=&n;*p=m;

习题8

一;选择题

1;在C/C++语言中引用数组元素时,其数组下标允许是()。A;整型常量B;整形表达式

C;整型常量和整形表达式D;任何类型的表达式

2;若二维数组a有m列,则a[i][j]前的元素个数为()

A;j*m+I B;i*m+j C;i*m+j-1 D;j*m+i-1

3;若有变量定义int a[ ] [ 3]={1,2,3,4,5,6,7};则数组a第一维的大小是()

A;2 B;3 C;4 D;无确定值

4;一下不正确的变量定义是()

A;double x[5]={2.0,4.0,6.0,8.0,10.0};

B;int y[5]={0,1,3,5,7,9};

C;char c1[ ]={…1?,‘2’,‘3’,‘4’,‘5’};

D;char c2[ ={…x10?,‘\xa?,‘\8};

5;以下不能对二维数组a进行正确初始化的语句是()。

A;int a[2][3]={0}; B;int a[ ][3]={1,2},{0}};

C;int a[2][3]= {1,2},{3,4},{5,6}}; D;int a[ ][3]={1,2,3,4,5,6}; 6;若使用一维数组名作函数实参,则以下正确的说法是()

A;必须在主调函数中说明此数组的大小

B;实参数组类型与形参数组类型可以不匹配

C;在被调用函数中,不需要考虑形参数组的大小

D;实参数组名与形参数组名必须一致

7;若用数组名作为函数的实参,传递给形参的是()

A;数组的首地址B;数组第一个元素的值

C;数组中全部元素的值D;数组元素的个数

8;若有以下数组定义和函数调用语句,则函数Fun的形参定义为()int a[3[4]={1};

Fun(a);

A;Fun(int b[ ][6]) B;Fun(int b[ 3][ ])

C;Fun(int b[ ][4]) D;Fun(int b[2][5])

习题9

一;选择题

1;以下不能进行字符串初始化的语句是()。

A.char str[5]=“good!”;

B.char str[ ]=“good!”;

C.char str[8]=“good!”;

D.char str[ 5 ]={`g`,`o`,`o`,`d`};

2;若有如下变量定义,则正确的叙述为()。

char x[ ]=“abcdefg”;

char y[ ]={`a`,`b`,`c`,`d`,`e`,`f`,`g`};

A.数组x和数组y的值相同

B.数组x和数组y的长度相同

C.数组x的长度大于数组y的长度

D.数组x的长度小于数组y的长度

3;以下程序的输出结果是()。

void main ( )

{

char arr [2] [4];

strcpy(arr[0],“you”);strcpy(arr[1],“me”);

arr[0] [3]=‘&’;

printf(“%s\n”,arr);

}

A.you&me

B.you

C.me

D.arr

4;假设有如下变量定义char str[8],str2[8]=“good”;则不能实现将

字符数组str2赋值给strl的语句是()。

A.strl=str2;

B.strcpy(strl,str2)

C.strncpy(strl,str2,6)

D.memcpy(strl,str2,5)

5;下列()能够判断两个字符串strl和str2是否相等。

A.if(strl=str2)

B.if(strl=str2)

C.if(strcmp(strl,str2));

D.if(strcmp(strl,str2)==0)6;以下程序的输出结果是()。

#include﹤stdio.h﹥

int main( )

{

char ch[7]=“89ab12”;

for(int i =0,s=0;ch[i] ﹥=‘0’&&ch[i] ﹤=‘9’;i++)

s=10*s+ch[i]-‘0’;

printf(“%d\n”,s);

return 0;

}

A.89ab12

B.8912

C.89

D.144

7;以下正确的语句是()。

A.char s[5]=“abcdef”;

B.char*s;gets(s);

C.char s[5];scanf(“%s”,&s);

D.char*s;s=“abcdef”;

习题10

一;选择题

1.下列说法正确的是()。

A.结构体类型一经定义,系统就为其分配内存单元

B.结构体变量所占内存单元数是各成员所占内存单元数之和

C.可以对结构体变量进行赋值和存取等运算

D.定义结构体变量后,只能引用结构体变量的具体成员,不能引用结构体变量

2;对于枚举类型enum ColorType{red,green,blue,yellow=7,black};则枚举数量red和black的值分别是()。

A.1,5

B.1,7

C.0,8

D.1,8

3;以下对结构体变量day的定义中,正确的是()。

A.struct Date

{

int x,y;

}day

B.typedef struct

{

int x,y;

}day

C.struct

{

int x,y;

} Date ;

struct Date day;

D.struct Date

{

int x,y;

} Date ;

struct day;

4;对于如下结构体变量定义,能够正确实现输入操作的语句是()。

struct studentType

{

char name[10];

double score [3];

}stu;

A.scanf(“%s”,https://www.wendangku.net/doc/693777104.html,);

B.scanf(“%If”,stu.score);

C.scanf(“%s”,&https://www.wendangku.net/doc/693777104.html,);

D.scanf(“%If”,&stu.score);

5.结构体变量在程序执行期间()。

A.所有成员都驻留在内存中

B.只有一个成员驻留在内存中

C.部分成员驻留在内存中

D.正在使用的成员驻留在内存中

习题11

一;选择题

1.C/C++语言规定()。

A.函数不能嵌套定义,但可以嵌套调用

B.函数不能嵌套定义,也不可以嵌套调用

C.函数可以嵌套定义,也可以嵌套调用

D.函数可以嵌套定义,但不可以嵌套调用

2;在函数调用时,系统将当前函数的运行环境进栈,运行环境不包括()。

A.形参变量

B.局部变量

C.全局变量

D.返回地址3;以下程序运行后的输出结果是()。

#include﹤stdio.h﹥

int Fun(int x,int y)

{

return x+y;

}

int main()

{

int a=2,b=5,c=8;

printf(“%d/n”,Fun(Fun(a+b,c),a-b));

return 0;

}

A.编译出错

B.9

C.12

D.21

4;以下程序运行后的输出结果是()。

#included﹤stdio.h﹥

#included﹤string.h﹥

char str [ ] = “student”;

void Fun(int i)

{

if (i﹤strlen(str))

{

printf(“%c”,str [i]);

Fun(i+2);

}

}

int main()

{

int i=0;

Fun(i);

return 0;

}

A.student

B.suet

C.sue

D.stu 5;以下程序运行后的输出结果是()。

#included﹤stdio.h﹥

int Fun(int i)

{

int sum = 0;

If (i= =1)

return 1;

else

{

sum+=Fun(i-1);

return sum

}

}

int main ()

{

printf(“%d/n”,Fun(5));

return 0;

}

A.0

B.1

C.8

D.15

习题12

一;选择题

1;若有变量定义int a [5]={1,2,3,4,5};int*p=a;则下列()不能实现引用数组第2个元素。

A.a [1]

B. p[1]

C.*p+1

D.*(p+1)

2;有一个二维数组a [3][4],其第3行第4列元素的正确表示方法是

()。

A.a [3][4]

B.&a [2][3]

C.*(a+2)+3

D.*(a [2]+3)3;以下程序求数组中的最大值,划线处的语句是()。

#included﹤stdio.h﹥

int main ()

{

int a [5]={3,5,1,8,6};

for(int*p=a,*q=a;p<a+5;p++﹚

if ()

q=p;

printf(“%d/n”,*q);

return 0;

}

A.p>q

B.*p>*q

C.a[p] ﹥a[q]

D.p-a>q-a

4;以下程序的输出结果是()。

#included﹤stdio.h﹥

struct HAR

{

int x,y;

struct HAR *p;

} h [2];

int main ()

数据结构考试试题及答案

数据结构 一、单选题 1. 计算机算法指的是(b )。 A.程序B.问题求解步骤的描述C.调度方法D.排序方法 2. 以下数据结构中,(a )个是非线性数据结构。 A.树B.字符串C.队D.栈 3. 对于顺序存储的线性表,访问元素和插入元素的时间复杂度分别为:(c )。 A.O(n) O(n) B.O(n) O(1) C.O(1) O(n) D.O(1) O(1) 4. 在单链表指针为p的结点之后插入指针为s的结点,正确的操作是(b )。 A.p->next=s;s->next=p->next B.s->next=p->next; p->next=s C.p->next=s;p->next=s->next D.p->next=s->next; p->next=s 5. n个顶点的有向图中,含有向边的数目最多为( d ) A.n-1 B.n C.n(n-1)/2 D.n(n-1) 6. 循环队列存储在数组A[0..m]中,则入队时的操作为( d ) A.rear=rear+1 B.rear=(rear+1)mod(m-1) C.rear=(rear+1)mod m D.rear=(rear+1)mod(m+1) 7. 字符串?ababaabab?的next函数为(d ) A.011232232 B.012341234 C.011122334 D. 011234234 8. 若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数为( b )A.9 B.11 C.15 D.不确定 9. 设有数组A[i,j],数组的每个元素长度为3字节,i的值为1到8,j的值为1到10,数组从内存首地址BA开始顺序存放,当以列为主序存放时,元素A[5,8]的首地址为( b )。A.BA+141 B.BA+180 C.BA+222 D.BA+225 10. n个顶点的带权无向连通图的最小生成树包含(b )个顶点 A.n-1 B.n C.n/2 D.n+1 11.有关二叉树的下列说法正确的是( b ) A.二叉树的度为2 B.一棵二叉树的度可以小于2 C.二叉树中至少有一个结点的度为2 D.二叉树中任何一个结点的度都为2 12.关键路径是AOE网中( a )。 A.从源点到汇点的最长路径B.从源点到汇点的最短路径 C.最长回路 D.最短路径(从源点到汇点的所有路径中,经过弧的数目最多的路径) 13.若查找每个记录的概率相等,则在具有n个记录的连续文件中采用顺序查找查找一个记录,其平均查找长度ASL为(c)。 A.(n-1)/2 B.n/2 C.(n+1)/2 D.n 14.就平均性能而言,目前最好的内部排序方法是(d ) A.冒泡排序B.希尔排序C.堆排序D.快速排序 15.已知广义表LS=((a,b,c),(d,e,f)),运用head和tail函数取出LS中原子e的运算是(d )A.head(tail(LS)) B.tail (head (LS) C.head(tail(head(tail(LS)))) D.head(tail(tail (head (LS)))) 17.在n个结点的顺序表中,算法的时间复杂度是O(1)的操作是:( a ) A. 访问第i个结点(1≤i≤n)和求第i个结点的直接前驱(2≤i≤n) B. 在第i个结点后插入一个新结点(1≤i≤n)

《数据结构》填空作业题答案

《数据结构》填空作业题答案 第1章绪论(已校对无误) 1.数据结构包括数据的逻辑结构、数据的存储结构和数据的运算三方面的内容。 2.程序包括两个内容:数据结构和算法。 3. 数据结构的形式定义为:数据结构是一个二元组: Data Structure =(D,S)。 4. 数据的逻辑结构在计算机存储器内的表示,称为数据的存储结构。 5. 数据的逻辑结构可以分类为线性结构和非线性结构两大类。 6. 在图状结构中,每个结点的前驱结点数和后继结点数可以有多个。 7. 在树形结构中,数据元素之间存在一对多的关系。 8. 数据的物理结构,指数据元素在计算机中的标识(映象),也即存储结构。 9. 数据的逻辑结构包括线性结构、树形结构和图形结构 3种类型,树型结构和有向图结构合称为非线性结构。 10. 顺序存储结构是把逻辑上相邻的结点存储在物理上连续的存储单元里,结点之间的逻辑关系由存储单元位置的邻接关系来体现。 11. 链式存储结构是把逻辑上相邻的结点存储在物理上任意的存储单元里,节点之间的逻辑关系由附加的指针域来体现。 12. 数据的存储结构可用4种基本的存储方法表示,它们分别是顺序存储、链式存储、索引存储和散列存储。 13. 线性结构反映结点间的逻辑关系是一对一的,非线性结构反映结点间的逻辑关系是一对多或多对多。 14. 数据结构在物理上可分为顺序存储结构和链式存储结构。 15. 我们把每种数据结构均视为抽象类型,它不但定义了数据的表示方式,还给出了处理数据的实现方法。 16. 数据元素可由若干个数据项组成。 17. 算法分析的两个主要方面是时间复杂度和空间复杂度。 18. 一个算法的时间复杂度是用该算法所消耗的时间的多少来度量的,一个算法的空间复杂度是用该算法在运行过程中所占用的存储空间的大小来度量的。 19. 算法具有如下特点:有穷性、确定性、可行性、输入、输出。 20. 对于某一类特定的问题,算法给出了解决问题的一系列操作,每一操作都有它的确切 的定义,并在有穷时间内计算出结果。 n 。 21. 下面程序段的时间复杂度为㏒ 3

数据结构试题及答案(免费)

一、单选题(每题 2 分,共20分) 1. 1.对一个算法的评价,不包括如下(B )方面的内容。 A.健壮性和可读性B.并行性C.正确性D.时空复杂度 2. 2.在带有头结点的单链表HL中,要向表头插入一个由指针p指向的结 点,则执行( )。 A. p->next=HL->next; HL->next=p; B. p->next=HL; HL=p; C. p->next=HL; p=HL; D. HL=p; p->next=HL; 3. 3.对线性表,在下列哪种情况下应当采用链表表示?( ) A.经常需要随机地存取元素 B.经常需要进行插入和删除操作 C.表中元素需要占据一片连续的存储空间 D.表中元素的个数不变 4. 4.一个栈的输入序列为1 2 3,则下列序列中不可能是栈的输出序列的是 ( C ) A. 2 3 1 B. 3 2 1 C. 3 1 2 D. 1 2 3 5. 5.AOV网是一种()。 A.有向图B.无向图C.无向无环图D.有向无环图 6. 6.采用开放定址法处理散列表的冲突时,其平均查找长度()。 A.低于链接法处理冲突 B. 高于链接法处理冲突 C.与链接法处理冲突相同D.高于二分查找 7.7.若需要利用形参直接访问实参时,应将形参变量说明为()参数。 A.值B.函数C.指针D.引用 8.8.在稀疏矩阵的带行指针向量的链接存储中,每个单链表中的结点都具 有相同的()。 A.行号B.列号C.元素值D.非零元素个数 9.9.快速排序在最坏情况下的时间复杂度为()。 A.O(log2n) B.O(nlog2n) C.0(n) D.0(n2) 10.10.从二叉搜索树中查找一个元素时,其时间复杂度大致为( )。 A. O(n) B. O(1) C. O(log2n) D. O(n2) 二、二、运算题(每题 6 分,共24分) 1. 1.数据结构是指数据及其相互之间的______________。当结点之间存在M 对N(M:N)的联系时,称这种结构为_____________________。 2. 2.队列的插入操作是在队列的___尾______进行,删除操作是在队列的 ____首______进行。 3. 3.当用长度为N的数组顺序存储一个栈时,假定用top==N表示栈空,则 表示栈满的条件是___top==0___(要超出才为满)_______________。 4. 4.对于一个长度为n的单链存储的线性表,在表头插入元素的时间复杂度 为_________,在表尾插入元素的时间复杂度为____________。

数据结构考试题库

数据结构考试题库

绪论 一、填空题 1.数据的逻辑结构被分为集合、(线性结构)、(树形结构)和(图状结构)四种。 2.物理结构是数据结构在计算机中的表示,又称为(存储结构)。 3.数据元素的逻辑结构包括( 线性)、(树)和图状结构3种类型,树形结构和图状结构合称为(非线性结构)。 4.(数据元素)是数据的基本单位,(数据项)是数据不可分割的最小单位。 5.线性结构中元素之间存在(一个对一个)关系,树形结构中元素之间存在(一个对多个)关系,图状结构中元素之间存在(多个对多个)关系。 ?6.数据结构是一门研究非数值计算的程序设计问题中:计算机的(数据元素)以及它们之间的(关系)和(运筹)等的学科。 7.算法的五个重要特性为有穷性、确定性、(输入)、(输出)和(可行性)。 二、选择题 1.数据的不可分割的基本单位是(D)。 A.元素 B.结点 C.数据类型 D.数据项 *2.线性表的逻辑顺序与存储顺序总是一致的,这种说法(B)。 A.正确 B.不正确 C.不确定 D.无法选择 3.线性结构是指数据元素之间存在一种(D)。 精心整理,用心做精品2

A.一对多关系 B.多对多关系 C.多对一关系 D.一对一关系 4.在数据结构中,从逻辑上可以把数据结构分成(A)。 A.动态结构和静态结构 B.紧凑结构和非紧凑结构 C.线性结构和非线性结构 D.内部结构和外部结构 5.线性表若采用链式存储结构时,要求内存中可用存储单元的 地址( D)。 A.必须是连续的 B.部分地址必须是连续的 C.一定是不连续的 D.连续不连续都可以 三、简答题 1.算法的特性是什么。 答:有穷性确定性可行性有0或多个输入有1或多个输出线性结构 一、填空题 1.在一个长度为n的线性表中删除第i个元素(1≤i≤n)时,需向前移动(n-i)个元素。 2.从循环队列中删除一个元素时,其操作是(先移动队首指针,后取出元素)。 3.在线性表的单链接存储中,若一个元素所在结点的地址为p,则其后继结点的地址为(p->next)。 4.在一个单链表中指针p所指向结点的后面插入一个指针q所指向的结点时,首先把(p->next)的值赋给q->next,然后(q->date)的值赋给p->next。 5.从一个栈删除元素时,首先取出(栈顶元素),然后再使(栈顶指针)减1。 6.子串的定位操作通常称做串的(模式匹配)。 精心整理,用心做精品3

开放大学数据结构2020年考试必备填空题

1、数据结构按结点间的关系,可分为4种逻辑结构: 集合、线性结构、树形结构、图状结构。 2、数据结构中的数据元素存在多对多的关系称为图 状结构结构。 3、在一个长度为n的顺序存储结构的线性表中,向第 i(1≤i≤n+1)个元素之前插入新元素时,需向后移动n-i+1个数据元素。 4、从长度为n的采用顺序存储结构的线性表中删除第 i(1≤i≤n+1)个元素,需向前移动n-i个元素。5、数据的逻辑结构在计算机中的表示称为物理结构 或存储结构。 6、除了第1个和最后一个结点外,其余结点有且只有一 个前驱结点和后继结点的数据结构为线性结构,每个结点可有任意多个前驱和后继结点数的结构为非线性结构。 7、算法的5个重要特性是有穷性、确定性、可形 性、有零个或多个输入、有零个或多个输出。 8、数据结构中的数据元素存在一对多的关系称树 形结构结构。 9、往栈中插入元素的操作方式是:先移动栈顶指针, 后存入元素。 10、数据结构中的数据元素存在一对一的关系称为线 性结构结构。 11、要求在n个数据元素中找其中值最大的元素,设基本 操作为元素间的比较。则比较的次数和算法的时间复杂度分别为n-1和O(n)。 12、在一个单链表中p所指结点之后插入一个s所指结点 时,应执行__s->next=p->next;__和p->next=s;的操作。 13、设有一个头指针为head的单向循环链表,p指向链 表中的结点,若p->next= =head,则p所指结点为尾结点。 14、在一个单向链表中,要删除p所指结点,已知q指向 p所指结点的前驱结点。则可以用操作q->next=p->next; 。 15、设有一个头指针为head的单向链表,p指向表中某 一个结点,且有p->next= =NULL,通过操作p->next=head;,就可使该单向链表构造成单向循环 链表。 16、每个结点只包含一个指针域的线性表叫单链表。 17、线性表具有顺序存储和链式存储两种 存储结构。 18、数据的逻辑结构是从逻辑关系上描述数据,它与数据 的关系存储结构无关,是独立于计算机的。19、在双向循环链表的每个结点中包含两个指针域,其 中next指向它的直接后继,prior指向它的直接前驱,而头结点的prior指向尾结点,尾结点的next指向头结点。 20、单向循环链表是单向链表的一种扩充,当单向链表带 有头结点时,把单向链表中尾结点的指针域由空指针改为头结点的指针;当单向链表不带头结点时,则把单向链表中尾结点的指针域由空指针改为指向指向第一个结点的指针。 21、线性链表的逻辑关系时通过每个结点指针域中的指 针来表示的。其逻辑顺序和物理存储顺序不再一致,而是一种链式存储结构,又称为链表。 22、栈是限定在表的一端进行插入和删除操作的线性表, 又称为后进先出表。 23、队列的特性是先进先出表。 24、删除栈中元素的操作方式是:先取出元素,后移 动栈顶指针。 25、循环队列队头指针在队尾指针下一个位置,队列是 “满”状态 26、在队列的顺序存储结构中,当插入一个新的队列元素 时,尾指针增1 ,当删除一个元素队列时,头指针增1。 27、循环队列的引入,目的是为了克服假上溢。 28、向顺序栈插入新元素分为三步:第一步进行栈是否 满判断,判断条件是s->top=MAXSIZE-1 ;第二步是修改栈顶指针;第三步是把新元素赋给栈顶对应的数组元素。同样从顺序栈删除元素分为三步:第一步进行栈是否空判断,判断条件是s->top=-1。第二步是把栈顶元素;第三步修改栈顶指针。 29、假设以S和X分别表示入栈和出栈操作,则对输入序 列a,b,c,d,e一系列栈操作SSXSXSSXXX之后,得到的输出序列为bceda。

数据结构试题及答案

数据结构试题 一、单选题 1、在数据结构的讨论中把数据结构从逻辑上分为(C ) A 内部结构与外部结构 B 静态结构与动态结构 C 线性结构与非线性结构 D 紧凑结构与非紧凑结构。 2、采用线性链表表示一个向量时,要求占用的存储空间地址(D ) A 必须是连续的 B 部分地址必须是连续的 C 一定是不连续的 D 可连续可不连续 3、采用顺序搜索方法查找长度为n的顺序表时,搜索成功的平均搜索长度为( D )。 A n B n/2 C (n-1)/2 D (n+1)/2 4、在一个单链表中,若q结点是p结点的前驱结点,若在q与p之间插入结点s,则执行( D )。 A s→link = p→link;p→link = s; B p→link = s; s→link = q; C p→link = s→link;s→link = p; D q→link = s;s→link = p; 5、如果想在4092个数据中只需要选择其中最小的5个,采用( C )方法最好。 A 起泡排序 B 堆排序 C 锦标赛排序 D 快速排序 6、设有两个串t和p,求p在t中首次出现的位置的运算叫做( B )。 A 求子串 B 模式匹配 C 串替换 D 串连接 7、在数组A中,每一个数组元素A[i][j]占用3个存储字,行下标i从1到8,列下标j从1到10。所有数组元素相继存放于一个连续的存储空间中,则存放

该数组至少需要的存储字数是( C )。 A 80 B 100 C 240 D 270 8、将一个递归算法改为对应的非递归算法时,通常需要使用( A )。 A 栈 B 队列 C 循环队列 D 优先队列 9、一个队列的进队列顺序是1, 2, 3, 4,则出队列顺序为( C )。 10、在循环队列中用数组A[0..m-1] 存放队列元素,其队头和队尾指针分别为front和rear,则当前队列中的元素个数是( D )。 A ( front - rear + 1) % m B ( rear - front + 1) % m C ( front - rear + m) % m D ( rear - front + m) % m 11、一个数组元素a[i]与( A )的表示等价。 A *(a+i) B a+i C *a+i D &a+i 12、若需要利用形参直接访问实参,则应把形参变量说明为( B )参数。 A 指针 B 引用 C 值 D 变量 13、下面程序段的时间复杂度为( C ) for (int i=0;i

《数据结构》期末考试题及答案

2011-2012学年第一学期期末考查 《数据结构》试卷 (答案一律写在答题纸上,在本试卷上做答无效) 一、选择(每题1分,共10分) 1.长度为n的线性表采用顺序存储结构,一个在其第i个位置插入新元素的算法时间复杂度为(D) A.O(0) B.O(1) C.O(n) D.O(n2) 2.六个元素按照6,5,4,3,2,1的顺序入栈,下列哪一个是合法的出栈序列?(D) A.543612 B.453126 C.346512 D.234156 3.设树的度为4,其中度为1、2、3、4的结点个数分别是4、2、1、2,则树中叶子个数为(B ) A.8 B.9 C.10 D.11 4.设森林F对应的二叉树B有m个结点,B的右子树结点个数为n,森林F中第一棵树的结点个数是( B ) A. m-n B.m-n-1 C.n+1 D.m+n 5.若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是(B) A.9 B.11 C.15 D.不确定 6.下列哪一个方法可以判断出一个有向图是否有环。(A) A.深度优先遍历 B.拓扑排序 C.求最短路径 D.求关键路径 7.第7层有10个叶子结点的完全二叉树不可能有(B )个结点。 A.73 B.234 C.235 D.236 8.分别用以下序列构造二叉排序树,与用其他三个序列构造的结果不同的是(B) A.(100,80,90,60,120,110,130) B.(100, 120, 110,130,80, 60,90) C.(100,60,80,90,120,110,130) D.(100,80, 60,90, 120, 130,110) 9.对一组数据(84,47,25,15,21)排序,数据的排列次序在排序过程中变化如下:(1)84 47 25 15 21 (2)15 47 25 84 21 (3)15 21 25 84 47(4)15 21 25 47 84则采用的排序方法是(B ) A.选择排序 B.起泡排序 C.快速排序 D.插入排序 10.对线性表进行折半查找时,要求线性表必须(D) A.以顺序方式存储 B.以顺序方式存储,且数据元素有序

数据结构复习题目和答案

《数据结构-C语言版》 第一章绪论 单项选择题 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. n2 B. nlogn C. n D. logn 7.设使用某算法对n个元素进行处理,所需的时间是T(n)=100nlog2n+200n+2000,则该算法的渐近时间复杂度为____ ___。 A. O(1) B. O(n) C. O(200n) D. O(nlog2n)

CDCBBDD 第二章线性表 单项选择题 1.链表不具有的特点是____ ____。 A. 可随机访问任一元素 B. 插入和删除时不需要移动元素 C. 不必事先估计存储空间 D. 所需空间与线性表的长度正比 2.设顺序表的每个元素占8个存储单元。第1个单元的存储地址是100,则第6个元素占用的最后一个存储单元的地址为。 A. 139 B. 140 C. 147 D. 148 3.在线性链表存储结构下,插入操作算法。 A. 需要判断是否表满 B. 需要判断是否表空 C. 不需要判断表满 D. 需要判断是否表空和表满 4.在一个单链表中,若删除p所指结点的后继结点,则执行。 A. p->next = p->next->next; B. p->next = p->next; C. p = p->next->next; D. p = p->next; p->next = p->next->next; 5.将长度为n的单链表接在长度为m的单链表之后的算法时间复杂度为。A. O(n) B. O(1) C. O(m) D. O(m+n) 6.需要预分较大空间,插入和删除不需要移动元素的线性表,其存储结构是。 A. 单链表 B. 静态链表 C. 线性链表 D. 顺序存储方式ACCABB 填空题 1.在带表头结点的单链表中,当删除某一指定结点时,必须找到该结点的_____结点。2.在单链表中,指针p所指结点为最后一个结点的条件是。 3.将两个各有n个元素的有序表归并成一个有序表,其最少的比较次数是。4.在一个长度为n的顺序表中第i个元素(1≤i≤n)之前插入一个元素时,需向后移动元素的个数是。 5.在长度为n的顺序表中插入一个元素的时间复杂度为。 1前驱 2 p->next==NULL

自考数据结构试题真题

全国2011年1月高等教育自学考试 数据结构试题 课程代码:02331 一、单项选择题(本大题共15小题,每小题2分,共30分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.下列选项中与数据存储结构无关的术语是() A.顺序表 B.链表 C.链队列 D.栈 2.将两个各有n个元素的有序表归并成一个有序表,最少的比较次数是() A.n-1 B.n C.2n-1 D.2n 3.已知循环队列的存储空间大小为m,队头指针front指向队头元素,队尾指针rear指向队尾元素的下一个位置,则向队列中插入新元素时,修改指针的操作是() A.rear=(rear-1)%m; B.front=(front+1)%m; C.front=(front-1)%m; D.rear=(rear+1)%m; 4.递归实现或函数调用时,处理参数及返回地址,应采用的数据结构是() A.堆栈 B.多维数组 C.队列 D.线性表 5.设有两个串p和q,其中q是p的子串,则求q在p中首次出现位置的算法称为() A.求子串 B.串联接 C.串匹配 D.求串长 6.对于广义表A,若head(A)等于tail(A),则表A为() A.( ) B.(( )) C.(( ),( )) D.(( ),( ),( )) 7.若一棵具有n(n>0)个结点的二叉树的先序序列与后序序列正好相反,则该二叉树一定是 ()A.结点均无左孩子的二叉树 B.结点均无右孩子的二叉树

C.高度为n的二叉树 D.存在度为2的结点的二叉树 8.若一棵二叉树中度为l的结点个数是3,度为2的结点个数是4,则该二叉树叶子结点的个数是() A.4 B.5 C.7 D.8 9.下列叙述中错误的是() A.图的遍历是从给定的源点出发对每一个顶点访问且仅访问一次 B.图的遍历可以采用深度优先遍历和广度优先遍历 C.图的广度优先遍历只适用于无向图 D.图的深度优先遍历是一个递归过程 10.已知有向图G=(V,E),其中V={V1,V2,V3,V4},E={},图G的拓扑序列是() A.V1,V2,V3,V4 B.V1,V3,V2,V4 C.V1,V3,V4,V2 D.V1,V2,V4,V3 11.平均时间复杂度为O(n log n)的稳定排序算法是() A.快速排序 B.堆排序 C.归并排序 D.冒泡排序 12.已知关键字序列为(51,22,83,46,75,18,68,30),对其进行快速排序,第一趟划分完成后的关键字序列是() A.(18,22,30,46,51,68,75,83) B.(30,18,22,46,51,75,83,68) C.(46,30,22,18,51,75,68,83) D.(30,22,18,46,51,75,68,83) 13.某索引顺序表共有元素395个,平均分成5块。若先对索引表采用顺序查找,再对块中元素进行顺序查找,则在等概率情况下,分块查找成功的平均查找长度是()A.43 B.79 C.198 D.200 14.在含有10个关键字的3阶B-树中进行查找,至多访问的结点个数为() A.2 B.3 C.4 D.5 15.ISAM文件系统中采用多级索引的目的是() A.提高检索效率 B.提高存储效率

2017年数据结构期末考试题及答案A

2017年数据结构期末考试题及答案 一、选择题(共计50分,每题2分,共25题) 1 ?在数据结构中,从逻辑上可以把数据结构分为 C 。 A. 动态结构和静态结构B?紧凑结构和非紧凑结构 C.线性结构和非线性结构 D .内部结构和外部结构 2?数据结构在计算机内存中的表示是指 A ° A. 数据的存储结构 B.数据结构 C.数据的逻辑结构 D .数据元 素之间的关系 3.在数据结构中,与所使用的计算机无关的是数据的 A 结构。 A. 逻辑B?存储 C.逻辑和存储 D.物理 4 .在存储数据时,通常不仅要存储各数据元素的值,而且还要存储 C ° A.数据的处理方法B?数据元素的类型 C.数据元素之间的关系 D.数据的存储方法 5. 在决定选取何种存储结构时,一般不考虑 A ° A.各结点的值如何B?结点个数的多少 C?对数据有哪些运算 D.所用的编程语言实现这种结构是否方便。 6. 以下说法正确的是D ° A. 数据项是数据的基本单位 B. 数据元素是数据的最小单位 C. 数据结构是带结构的数据项的集合 D. —些表面上很不相同的数据可以有相同的逻辑结构 7. 在以下的叙述中,正确的是B ° A. 线性表的顺序存储结构优于链表存储结构 B. 二维数组是其数据元素为线性表的线性表 C?栈的操作方式是先进先出 D.队列的操作方式是先进后出

8. 通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着 A. 数据元素具有同一特点 B. 不仅数据元素所包含的数据项的个数要相同,而且对应的数据项的类型要一致 C. 每个数据元素都一样 D. 数据元素所包含的数据项的个数要相等 9 ?链表不具备的特点是 A 。 A.可随机访问任一结点 B.插入删除不需要移动元素 C?不必事先估计存储空间 D.所需空间与其长度成正比 10. 若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一 个结点,则采用 D 存储方式最节省运算时间。 A.单链表B ?给出表头指针的单循环链表 C.双链表D ?带头结点 的双循环链表 11. 需要分配较大空间,插入和删除不需要移动元素的线性表,其存储结构是 B 。 A.单链表B .静态链表 C.线性链表 D .顺序存储结构 12 .非空的循环单链表head的尾结点(由p所指向)满足C 。 A. p—>next 一NULL B. p — NULL C. p—>next == head D. p = = head 13 .在循环双链表的p所指的结点之前插入s所指结点的操作是 D 。 A .p—> prior-> prior=s B .p—> prior-> n ext=s C.s —> prior—> n ext = s D.s —> prior—> prior = s 14 .栈和队列的共同点是C 。 A.都是先进后出 B .都是先进先出 C.只允许在端点处插入和删除元素 D .没有共同点

数据结构习题

习题一 一、填空题 1. 算法具有有穷性、确定性、可行性、输入和输出五大特征。 2. 数据结构的内容包括以下三个方面:数据元素、数据关系和运算集合。 3. 数据结构的存储结构分为顺序、链式、索引、散列。 4. 评价算法性能的标准主要从算法执行时间和空间两方面考虑。 5. 在线性结构、树形结构和图状结构中,数据元素之间分别存在着1对1 、1对多和多对多关系。 二、分析题 2.设n为整数,分析下列程序段中,用*标明的语句的语句频度及时间复杂度。(1)for(n =1;n<=10;n++) *s=s+n; (2) for(i =1;i<=n;i++) *s=s+n; (3) for(i =1;i<=n;i++) for(j=1;j<=n;j++) *s=s+n (4) for(i =1;i<=n;i++) for(j=1;j<=i ;j++) *s=s+n; (5)for(i =1;i<=n;i++) for(j=1;j<=n;j++) { c[i][j]=0; for(k=1;k<=n;k++) *c[i][j]=c[i][j]+a[i][k]*b[k][j]; } 习题二 3.填空题 1.在顺序表中,逻辑上相邻的元素,其物理位置上一定相邻。 2.在单链表中,逻辑上相邻的元素,其物理位置上不一定相邻。 3.设单链表中,指针p指向结点s,若要删除s之后的结点(若存在),则需修改指针的操作为P=s->next;s->next=s->next->next;free(p); 。 4.在一个长度为n的顺序表中,如果要删除第i个元素,需移动n-i+1 个元素。 二、选择题 1.某线性表中最常用的操作是存取序号为i的元素和在最后进插入和删除运算,则采用(C )存储方式的时间性能最好。 A.双向链表 B.双向顺环链表 C.顺序表 D.单向顺环链表 2.在一个单链表中,已知q结点是p结点的前驱结点,若在p和q之间插入s结点,则需执行( C )。 A.s->next=p->next;p->next=s B.p->next=s->next;s->next=p C.q->next=s;s->next=p D.p->next=s;s->next=q

数据结构习题及参考答案

习题1 一、单项选择题 A1.数据结构是指()。 A.数据元素的组织形式 B.数据类型 C.数据存储结构 D.数据定义 C2.数据在计算机存储器内表示时,物理地址与逻辑地址不相同的,称之为()。 A.存储结构 B.逻辑结构 C.链式存储结构 D.顺序存储结构 D3.树形结构是数据元素之间存在一种()。 A.一对一关系 B.多对多关系 C.多对一关系 D.一对多关系 B4.设语句x++的时间是单位时间,则以下语句的时间复杂度为()。 for(i=1; i<=n; i++) for(j=i; j<=n; j++) x++; A.O(1) B.O(2n) C.O(n) D.O(3n) CA5.算法分析的目的是(1),算法分析的两个主要方面是(2)。 (1) A.找出数据结构的合理性 B.研究算法中的输入和输出关系 C.分析算法的效率以求改进 D.分析算法的易懂性和文档性 (2) A.空间复杂度和时间复杂度 B.正确性和简明性 C.可读性和文档性 D.数据复杂性和程序复杂性 6.计算机算法指的是(1),它具备输入,输出和(2)等五个特性。 (1) A.计算方法 B.排序方法 C.解决问题的有限运算序列 D.调度方法 (2) A.可行性,可移植性和可扩充性 B.可行性,确定性和有穷性 C.确定性,有穷性和稳定性 D.易读性,稳定性和安全性 7.数据在计算机内有链式和顺序两种存储方式,在存储空间使用的灵活性上,链式存储比顺序存储要()。 A.低 B.高 C.相同 D.不好说 8.数据结构作为一门独立的课程出现是在()年。 A.1946 B.1953 C.1964 D.1968 9.数据结构只是研究数据的逻辑结构和物理结构,这种观点()。 A.正确 B.错误 C.前半句对,后半句错 D.前半句错,后半句对

2015年数据结构期末考试题及答案

2012年数据结构期末考试题及答案 一、选择题 1.在数据结构中,从逻辑上可以把数据结构分为C。 A.动态结构和静态结构B.紧凑结构和非紧凑结构 C.线性结构和非线性结构D.内部结构和外部结构 2.数据结构在计算机内存中的表示是指A。 A.数据的存储结构B.数据结构C.数据的逻辑结构D.数据元素之间的关系 3.在数据结构中,与所使用的计算机无关的是数据的A结构。 A.逻辑B.存储C.逻辑和存储D.物理 4.在存储数据时,通常不仅要存储各数据元素的值,而且还要存储C。 A.数据的处理方法B.数据元素的类型 C.数据元素之间的关系D.数据的存储方法 5.在决定选取何种存储结构时,一般不考虑A。 A.各结点的值如何B.结点个数的多少 C.对数据有哪些运算D.所用的编程语言实现这种结构是否方便。 6.以下说法正确的是D。 A.数据项是数据的基本单位 B.数据元素是数据的最小单位 C.数据结构是带结构的数据项的集合 D.一些表面上很不相同的数据可以有相同的逻辑结构 7.算法分析的目的是C,算法分析的两个主要方面是A。 (1)A.找出数据结构的合理性B.研究算法中的输入和输出的关系 C.分析算法的效率以求改进C.分析算法的易读性和文档性 (2)A.空间复杂度和时间复杂度B.正确性和简明性 C.可读性和文档性D.数据复杂性和程序复杂性 8.下面程序段的时间复杂度是O(n2)。

s =0; for(I =0;i<n;i++) for(j=0;j<n;j++) s +=B[i][j]; sum =s ; 9.下面程序段的时间复杂度是O(n*m)。 for(i =0;i<n;i++) for(j=0;j<m;j++) A[i][j] =0; 10.下面程序段的时间复杂度是O(log3n)。 i =0; while(i<=n) i =i * 3; 11.在以下的叙述中,正确的是B。 A.线性表的顺序存储结构优于链表存储结构 B.二维数组是其数据元素为线性表的线性表 C.栈的操作方式是先进先出 D.队列的操作方式是先进后出 12.通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着B 。 A.数据元素具有同一特点 B.不仅数据元素所包含的数据项的个数要相同,而且对应的数据项的类型要一致 C.每个数据元素都一样 D.数据元素所包含的数据项的个数要相等 13.链表不具备的特点是A。 A.可随机访问任一结点B.插入删除不需要移动元素 C.不必事先估计存储空间D.所需空间与其长度成正比 14.不带头结点的单链表head为空的判定条件是A。

数据结构期末考试题及标准答案

数据结构期末考试题及标准答案

————————————————————————————————作者:————————————————————————————————日期:

2012年数据结构期末考试题及答案 一、选择题 1.在数据结构中,从逻辑上可以把数据结构分为C。 A.动态结构和静态结构B.紧凑结构和非紧凑结构 C.线性结构和非线性结构D.内部结构和外部结构 2.数据结构在计算机内存中的表示是指A。 A.数据的存储结构B.数据结构C.数据的逻辑结构D.数据元素之间的关系 3.在数据结构中,与所使用的计算机无关的是数据的A结构。 A.逻辑B.存储C.逻辑和存储D.物理 4.在存储数据时,通常不仅要存储各数据元素的值,而且还要存储C。 A.数据的处理方法B.数据元素的类型 C.数据元素之间的关系D.数据的存储方法 5.在决定选取何种存储结构时,一般不考虑A。 A.各结点的值如何B.结点个数的多少 C.对数据有哪些运算D.所用的编程语言实现这种结构是否方便。 6.以下说法正确的是D。 A.数据项是数据的基本单位 B.数据元素是数据的最小单位 C.数据结构是带结构的数据项的集合 D.一些表面上很不相同的数据可以有相同的逻辑结构 7.算法分析的目的是C,算法分析的两个主要方面是A。 (1)A.找出数据结构的合理性B.研究算法中的输入和输出的关系 C.分析算法的效率以求改进C.分析算法的易读性和文档性 (2)A.空间复杂度和时间复杂度B.正确性和简明性 C.可读性和文档性D.数据复杂性和程序复杂性 8.下面程序段的时间复杂度是O(n2)。

s =0; for(I =0;i<n;i++) for(j=0;j<n;j++) s +=B[i][j]; sum =s ; 9.下面程序段的时间复杂度是O(n*m)。 for(i =0;i<n;i++) for(j=0;j<m;j++) A[i][j] =0; 10.下面程序段的时间复杂度是O(log3n)。 i =0; while(i<=n) i =i * 3; 11.在以下的叙述中,正确的是B。 A.线性表的顺序存储结构优于链表存储结构 B.二维数组是其数据元素为线性表的线性表 C.栈的操作方式是先进先出 D.队列的操作方式是先进后出 12.通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着B 。 A.数据元素具有同一特点 B.不仅数据元素所包含的数据项的个数要相同,而且对应的数据项的类型要一致 C.每个数据元素都一样 D.数据元素所包含的数据项的个数要相等 13.链表不具备的特点是A。 A.可随机访问任一结点B.插入删除不需要移动元素 C.不必事先估计存储空间D.所需空间与其长度成正比 14.不带头结点的单链表head为空的判定条件是A。

数据结构复习题

栈和队列 3.1 单项选择题 1. 一个栈的入栈序列a,b,c,d,e,则栈的不可能的输出序列是。 A. edcba B. decba C. dceab D. abcde 2. 若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pn,若p1=n,则pi为。 A. i B. n=i C. n-i+1 D. 不确定 3. 栈结构通常采用的两种存储结构是。 A.顺序存储结构和链式存储结构 B. 散列方式和索引方式 C. 链表存储结构和数组 D. 线性存储结构和非线性存储结构 4. 判定一个顺序栈ST(最多元素为m0)为空的条件是。 A. top !=0 B. top= =0 C. top !=m0 D. top= =m0-1 5. 判定一个顺序栈ST(最多元素为m0)为栈满的条件是。 A. top!=0 B. top= =0 C. top!=m0 D.top= =m0-1 6. 栈的特点是 B ,队列的特点是 A 。 A. 先进先出 B. 先进后出 7. 向一个栈顶指针为HS的链栈中插入一个s所指结点时,则执行。 (不带空的头结点) A. HS—>next=s; B. s—>next= HS—>next; HS—>next=s; C. s—>next= HS; HS=s; D. s—>next= HS; HS= HS—>next; 8. 从一个栈顶指针为HS的链栈中删除一个结点时,用x保存被删结点的值,则执行。(不带空的头结点) A. x=HS; HS= HS—>next; B. x=HS—>data; C. HS= HS—>next; x=HS—>data; D. x=HS—>data; HS= HS—>next; 9. 一个队列的数据入列序列是1,2,3,4,则队列的出队时输出序列是。 A. 4,3,2,1 B. 1,2,3,4 C. 1,4,3,2 D. 3,2,4,1 10. 判定一个循环队列QU(最多元素为m0)为空的条件是。 A. rear - front= =m0 B. rear-front-1= =m0 C. front= = rear D. front= = rear+1 11. 判定一个循环队列QU(最多元素为m0, m0= =Maxsize-1)为满队列的条件是。 A. ((rear- front)+ Maxsize)% Maxsize = =m0 B. rear-front-1= =m0 C. front= =rear D. front= = rear+1 12. 循环队列用数组A[0,m-1]存放其元素值,已知其头尾指针分别是front和rear,则当前队列中的元素个数是。 A. (rear-front+m)%m B. rear-front+1

数据结构习题及答案精编版

第一章 1.在数据结构中,从逻辑上可以把数据结构分为(C ) A.动态结构和静态结构 B. 紧凑结构和非紧凑结构 C.线性结构和非线性结构 D. 内部结构和外部结构 ● 2.在数据结构中,与所使用的计算机无关的是( A ) A. 逻辑结构 B. 存储结构 C. 逻辑和存储结构 D. 物理结构 3.下面程序的时间复杂度为____O(mn)_______。 for (int i=1; i<=m; i++) for (int j=1; j<=n; j++ ) S+=i 第二章线性表 ●链表不具备的特点是(A) A 可以随机访问任一结点(顺序) B 插入删除不需要移动元素 C 不必事先估计空间 D 所需空间与其长度成正比 2. 不带头结点的单链表head为空的判定条件为(A ),带头结点的单链表head为空的判定条件为(B ) A head==null B head->next==null C head->next==head D head!=null ●3.在线性表的下列存储结构中,读取元素花费时间最少的是(D) A 单链表 B 双链表 C 循环链表 D 顺序表 ● 4.对于只在表的首、尾两端进行手稿操作的线性表,宜采用的存储结构为(C) A 顺序表 B 用头指针表示的单循环链表 C 用尾指针表示的单循环链表 D 单链表 ● 5.在一个具有n 个结点的有序单链表中插入一个新的结点,并保持链表元素仍然有序, 则操作的时间复杂度为( D ) A O(1) B O(log2n) C O(n2) D O(n) ● 6.在一个长度为n (n>1)的单链表上,设有头和尾两个指针,执行(B)操作与链表的长 度有关 A 删除单链表中第一个元素 B 删除单链表中最后一个元素 C 在第一个元素之前插入一个新元素 D 在最后一个元素之后插入一个新元素 ●7.与单链表相比,双向链表的优点之一是(D) A 插入删除操作更简单 B 可以进行随机访问 C 可以省略表头指针或表尾指针 D 顺序访问相邻结点更容易 ●8.若list是某带头结点的循环链表的头结点指针,则该链表最后那个链结点的指针域 (头结点的地址)中存放的是( B ) A list的地址 B list的内容 C list指的链结点的值 D 链表第一个链结点的地址 ●9.若list1和list2分别为一个单链表与一个双向链表的第一个结点的指针,则( B ) A list2比list1占用更多的存储单元 B list1与list2占用相同的存储单元 C list1和list2应该是相同类型的指针变量 D 双向链表比单链表占用更多的存储单元 10.链表中的每个链结点占用的存储空间不必连续,这句话正确吗? (不正确) 11. 某线性表采用顺序存储结构,元素长度为4,首地址为100,则下标为12的(第13个)元素的存储地址为148。V 100+4*12=148 11.在顺序表的(最后一个结点之后)插入一个新的数据元素不必移动任何元素。 12.若对线性表进行的操作主要不是插入删除,则该线性表宜采用(顺序)存储结构,若频繁地对线性表进行插入和删除操作,则该线性表宜采用( 链 )存储结构。

相关文档
相关文档 最新文档