数组复习题.doc

合集下载

第5章《数组》复习题

第5章《数组》复习题

第5章数组一、选择题1、下列关于数组的描述正确是:()A) 数组的长度是固定的,而其中元素的数据类型可以不同B) 数组的长度是固定的,而其中元素的数据类型必须相同C) 数组的长度是可变的,而其中元素的数据类型可以不同D) 数组的长度是可变的,而其中元素的数据类型必须相同2、在C++语言中引用数组元素时,下面关于数组下标数据类型的说法错误的是:()A) 整型常量 B) 整型表达式C) 整型常量或整型表达式 D) 任何类型的表达式3、要定义数组A,使得其中每个元素的数据分别依次为:3、9、4、8、0、0、0,错误的定义语句是:()A) int A[]={3,9,4,8,0,0,0}; B) int A[9]={3,9,4,8,0,0,0};C) int A[]={3,9,4,8}; D) int A[8]={3,9,4,8};4、有如下数组声明:int value[30];,下标值引用错误的是:()A) value[30] B) value[0] C) value[10] D) value[20]5、以下叙述中错误的是:()A)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出B)数组名代表的是数组所占存储区的首地址,其值不可改变C)当程序执行中,数组元素的下标超出所定义的下标范围时,系统自动扩展数组长度D)可以通过赋初值的方式确定数组元素的个数6、在C++语言中,一维数组的定义方法为:()。

类型说明符数组名A)[常量表达式] B)[整型常量] C)[整型变量] D)[整型常量]或[整型表达式]7、对以下说明语句的正确理解是()。

int a[10]={6,7,8,9,10};A)将5个初值依次赋给a[1]至a[5] B)将5个初值依次赋给a[0]至a[4]C)将5个初值依次赋给a[6]至a[10]D)因为数组长度与初值的个数不相同,所以此语句不正确8、假定short类型变量占用两个字节,其有定义:short x[10]={0,2,4};,则数组x在内存中所占字节数是()。

数据结构复习题及答案

数据结构复习题及答案

中南大学现代远程教育课程考试(考试)复习题及参考答案数据结构(使用教材:余腊生编著,人民邮电出版社出版,《数据结构—基于C++模板类的实现》一、判断题1.数组是一种复杂的数据结构,数组元素之间的关系既不是线性的也不是树形的。

[ ] 2.链式存储在插人和删除时需要保持物理存储空间的顺序分配,不需要保持数据元素之间的逻辑顺序。

[ ]3.在用循环单链表表示的链式队列中,可以不设队头指针,仅在链尾设置队尾指针。

[ ] 4.通常递归的算法简单、易懂、容易编写,而且执行的效率也高。

[ ] 5.一个广义表的表尾总是一个广义表。

[ ] 6.当从一个小根堆(最小堆)中删除一个元素时,需要把堆尾元素填补到堆顶位置,然后再按条件把它逐层向下调整,直到调整到合适位置为止。

[ ] 7.对于一棵具有n个结点,其高度为h的二叉树,进行任一种次序遍历的时间复杂度为O(h)。

[ ] 8.存储图的邻接矩阵中,邻接矩阵的大小不但与图的顶点个数有关,而且与图的边数也有关。

[ ] 9.直接选择排序是一种稳定的排序方法。

[ ] 10.30、闭散列法通常比开散列法时间效率更高。

[ ] 11.有n个结点的不同的二叉树有n!棵。

[ ] 12.直接选择排序是一种不稳定的排序方法。

[ ] 13.在2048个互不相同的关键码中选择最小的5个关键码,用堆排序比用锦标赛排序更快。

[ ] 14.当3阶B_树中有255个关键码时,其最大高度(包括失败结点层)不超过8。

[ ] 15.一棵3阶B_树是平衡的3路搜索树,反之,一棵平衡的3路搜索树是3阶非B_树。

[ ] 16.在用散列表存储关键码集合时,可以用双散列法寻找下一个空桶。

在设计再散列函数时,要求计算出的值与表的大小m互质。

[ ] 17.在只有度为0和度为k的结点的k叉树中,设度为0的结点有n0个,度为k的结点有nk个,则有n0=nk+1。

[ ] 18.折半搜索只适用于有序表,包括有序的顺序表和有序的链表。

数据结构复习题

数据结构复习题

一、单项选择题1.评价一个算法时间性能的主要标准是()A.算法易于调试B. 算法易于理解C.算法的稳定性和正确性D.算法的时间复杂度2.可用带表头结点的链表来表示表,也可用不带表头结点的链表来表示表,前者的主要好处是()A.可以加快对表的遍历B.使空表和非空表的处理统一C.提高存取结点的速度D.节省存储空间3.稀疏矩阵一般的压缩存储有两种,即()。

A.一维数组和二维数组B.一维数组和三元组C.二维数组和十字链表D.三元组和十字链表4.链表不具有的特点是()。

A.可随机访问任一元素B.插入删除不需要移动元素C.不必事先估计存储空间D.所需空间与线性表的长度成正比5.非空的循环单链表head的尾结点p满足()。

A.P->next==NULL B.p==NULL C.P->next==head D.P==head 6.对稀疏矩阵进行压缩存储是为了()。

A.便于进行矩阵运算B.便于输入和输出C.节省存储空间D.降低运算的时间复杂度7.数据结构中,与所使用的计算机无关的是数据的()结构。

A.顺序B.物理C.逻辑D.物理和存储8.在长度为n的顺序表中插入一个元素时,等概率情况下的平均移动元素的次数是()。

A.(n-1)/2B.n/2C.n*(n-1)/2D.(n+1)/29.对于一个头指针为H的带头结点的单链表,判定该表为空表的条件是()A. H==NULL B.H!=NULL C.H→next ==H D.H→next==NULL10. 在一个顺序表中,若表的第一个元素的存储地址是210,每一个元素的长度为3,则第5个元素的存储地址是()。

A.219 B.222 C.225 D.22811. 栈S最多能容纳4个元素,现有6个元素按a,b,c,d,e,f的顺序进栈,下面序列()是可能的出栈序列。

A.edcbaf B.bcefad C.cbedaf D.adfebc12.循环队列用数组A[M]存放元素,已知其头尾指针分别为front和rear,则当前队列中的元素个数是()。

数组练习题大全

数组练习题大全

数组练习题大全数组是计算机编程中一种重要的数据结构。

掌握数组的基本操作和应用是每个程序员都需要具备的技能之一。

本文将为您提供一系列数组练习题,帮助您熟练掌握数组的使用。

一、基础操作题1. 请编写一个程序,创建一个长度为5的整型数组,然后将数组中的元素依次赋值为1、2、3、4、5,并输出数组中的所有元素。

2. 请编写一个程序,创建一个长度为10的字符型数组,然后将数组中的元素依次赋值为'A'、'B'、'C'、'D'、'E'、'F'、'G'、'H'、'I'、'J',并输出数组中的所有元素。

3. 请编写一个程序,创建一个长度为7的浮点型数组,然后使用循环从键盘输入数组中的元素值,并计算数组中所有元素的平均值。

二、查找与排序题4. 请编写一个程序,在一个已知整型数组中查找指定的元素。

如果找到该元素,则输出该元素的下标位置;如果未找到,则输出"未找到该元素"。

5. 请编写一个程序,将一个已知整型数组按照从小到大的顺序进行排序,并输出排序后的结果。

三、统计与分析题6. 请编写一个程序,统计一个整型数组中负数的个数,并输出统计结果。

7. 请编写一个程序,计算一个整型数组中所有元素的和,并输出总和。

8. 请编写一个程序,找出一个整型数组中的最大值和最小值,并输出这两个值。

四、应用题9. 请编写一个程序,统计一个整型数组中奇数和偶数的个数,并输出统计结果。

10. 请编写一个程序,从一个已知整型数组中删除指定的元素,并输出删除后的数组。

11. 请编写一个程序,将一个整型数组中的所有元素向左移动一位,并输出移动后的数组。

12. 请编写一个程序,将一个整型数组中的所有元素向右移动一位,并输出移动后的数组。

总结:通过以上一系列的数组练习题,您可以逐步掌握数组的使用技巧。

数组复习题

数组复习题

1.输入10个数,存入一维数组,求10个数的最大值
2.把一个不多于5位的整数分解,存到一维数组中,对这个一维数组的数据
按照从小到大的顺序排序。

3.有个已经排好序的数组,要求输入一个数后,按原来排序的规律将它插入
数组中。

4.将一个数组中的值按逆序重现存放。

5.建立一个3*4行矩阵,输入数据,求其中的正数、负数、零的个数,并且
输出矩阵,同时输出正数、负数、零的个数。

6.有一篇文章,共有3行文字,每行有80个字符。

要求分别统计出其中英
文大写字母、小写字母、数字、空格以及其他字符的个数。

7.有10个学生,5门课,输入这10个学生的成绩,求各门课的平均分以及
每个学生的总分。

(要求平均分和总分用一维数组保存)
8.建立一个3*4行矩阵,输入数据,求其中的正数、负数、零的个数,并且
输出矩阵,同时输出正数、负数、零的个数。

9.有一个4*5的矩阵,求素数的个数
10.有一篇文章,共有3行文字,每行有80个字符。

要求分别统计出其中英
文大写字母、小写字母、数字、空格以及其他字符的个数。

(完整版)数据结构复习题(附答案)

(完整版)数据结构复习题(附答案)

一、算法设计题(每题15分,共60分)答题要求:①用自然语言说明所采用算法的思想;②给出每个算法所需的数据结构定义,并做必要说明;③写出对应的算法程序,并做必要的注释。

1、有一个带头结点的单链表,每个结点包括两个域,一个是整型域info,另一个是指向下一个结点的指针域next。

假设单链表已建立,设计算法删除单链表中所有重复出现的结点,使得info域相等的结点只保留一个。

3、约瑟夫环问题(Josephus问题)是指编号为1、2、…,n的n(n>0)个人按顺时针方向围坐成一圈,现从第s个人开始按顺时针方向报数,数到第m个人出列,然后从出列的下一个人重新开始报数,数到第m的人又出列,…,如此重复直到所有的人全部出列为止。

现要求采用循环链表结构设计一个算法,模拟此过程。

4、编程实现单链表的就地逆置。

23.在数组 A[1..n]中有n个数据,试建立一个带有头结点的循环链表,头指针为h,要求链中数据从小到大排列,重复的数据在链中只保存一个.5、设计一个尽可能的高效算法输出单链表的倒数第K个元素。

3、假设以I和O分别表示入栈和出栈操作。

栈的初态和终态均为空,入栈和出栈的操作序列可表示为仅由I和O组成的序列,称可以操作的序列为合法序列,否则称为非法序列。

(15分)(1)下面所示的序列中哪些是合法的?A. IOIIOIOOB. IOOIOIIOC. IIIOIOIOD. IIIOOIOO(2)通过对(1)的分析,写出一个算法,判定所给的操作序列是否合法。

若合法,返回true,否则返回false(假定被判定的操作序列已存入一维数组中)。

5、设从键盘输入一整数的序列:a1, a2, a3,…,an,试编写算法实现:用栈结构存储输入的整数,当ai≠-1时,将ai进栈;当ai=-1时,输出栈顶整数并出栈。

算法应对异常情况(入栈满等)给出相应的信息。

设有一个背包可以放入的物品重量为S,现有n件物品,重量分别为W1,W2,...,W n。

数据结构复习题答案

数据结构复习题答案

数据结构复习题答案一、选择题1.栈和队列的共同特点是( )。

A.只允许在端点处插入和删除元素B.都是先进后出C.都是先进先出D.没有共同点2.用链接方式存储的队列,在进行插入运算时( ).A. 仅修改头指针B. 头、尾指针都要修改C. 仅修改尾指针D.头、尾指针可能都要修改3.以下数据结构中哪一个是非线性结构?( )A. 队列B. 栈C. 线性表 D. 二叉树4.设有一个二维数组A[m][n],假设A[0][0]存放位置在644,A[2][2]存放位置在676(10),每个(10)元素占一个空间,问A[3][3](10)存放在()位置,脚注表示用10进制表示。

(10)A.688 B.678 C.692 D.6965.树最适合用来表示( )。

A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据6.二叉树的第k层的结点数最多为( ).A.2k-1 B.2K+1 C.2K-1D. 2k-17.若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为( )A. 1,2,3B. 9,5,2,3C. 9,5,3D. 9,4,2,38.对n个记录的文件进行快速排序,所需要的辅助存储空间大致为( )A. O(1)B. O(n)C. On) D. O(n2)(1og29.对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K %9作为散列函数,则散列地址为1的元素有()个,A.1 B.2 C.3 D.410.设有6个结点的无向图,该图至少应有( )条边才能确保是一个连通图。

A.5B.6C.7D.811.一个链队列中,f,r分别为队首、队尾指针,则插入s所指结点的操作为( )。

A)f->next=c;f=s; B)r->next=s;r=s;C)s->next=r;r=s; D)s->next=f;f=s;12.下列说法正确的是()。

数组练习题

数组练习题

数组练习题1.下面数组声明语句,_________正确。

A)Dim a[2,4] As Integer B)Dim a(2,4)As IntegerC)Dim a(n,n)As Integer D)Dim a(2 4)As Integer2.假定建立了一个名为Command1的命令按钮数组,则以下说法中错误的是________。

A)数组中每个命令按钮的名称(名称属性)均为Command1B)数组中每个命令按钮的标题(Caption属性)都一样C)数组中所有命令按钮可以使用同一个事件过程D)用名称Command1(下标)可以访问数组中的每个命令按钮3.数组声明语句Dim a(-2 to2,5)中,数组包含元素个数为________。

A)120 B)30 C )60 D)204.下面程序的输出结果是________。

Dim aa = Array(1,2,3,4,5,6,7)For i = Lbound(a)to Ubound(a)a(i)= a(i)* a(i)Next iPrint a(i)A)36 B)程序出错C)49 D)不确定5.下面程序的输出结果是________。

Option Base 1Private Sub Command1_Click()Dim a%(3, 3)For i = 1 To 3For j = 1To 3If j > 1 And i > 1 Thena(i, j)= a(a(i - 1, j - 1), a(i, j - 1))+ 1Elsea(i, j)= i * jEnd IfPrint a(i, j); "";Next jPrintNext iEnd SubA)1 2 3 B)1 2 3 C )1 2 3 D)1 2 32 3 1 1 2 3 2 4 6 2 2 23 2 3 1 2 3 3 6 9 3 3 36.在设定Option Base 0后,经Dim arr(3,4)As Integer 定义的数组arr含有的元素个数为________。

数据结构复习题选择题部分

数据结构复习题选择题部分

第一课绪论一、选择题1.算法的计算量的大小称为计算的()。

A.效率 B.复杂性 C.现实性 D.难度参考答案:B2.算法的时间复杂度取决于( ).A.问题的规模 B.待处理数据的初态 C.A和B参考答案:C3.计算机算法指的是()。

A.计算方法 B.排序方法 C.解决问题的步骤序列 D.调度方法参考答案:C4.计算机算法必须具备()这三个特性。

A.可执行性、可移植性、可扩充性 B.可执行性、确定性、有穷性C.确定性、有穷性、稳定性 D.易读性、稳定性、安全性参考答案:B5.下面关于算法说法错误的是()。

A.算法最终必须由计算机程序实现B.为解决某问题的算法同为该问题编写的程序含义是相同的C.算法的可行性是指指令不能有二义性D.以上几个都是错误的参考答案:D6.从逻辑上可以把数据结构分为()两大类。

A.动态结构、静态结构 B.顺序结构、链式结构C.线性结构、非线性结构 D.初等结构、构造型结构参考答案:C第二课线性表一选择题1.下列属顺序存储结构优点的是()。

A.存储密度大 B.插入运算方便 C.删除运算方便 D.可方便地用于各种逻辑结构的存储表示参考答案:A2.下列关于线性表的叙述中,错误的是()。

A.线性表采用顺序存储,必须占用一片连续的存储单元。

B.线性表采用顺序存储,便于进行插入和删除操作.C.线性表采用链接存储,不必占用一片连续的存储单元。

D.线性表采用链接存储,便于插入和删除操作。

参考答案:B3.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用()存储方式最节省时间.A.顺序表 B.双链表 C.带头结点的双循环链表 D.单循环链表参考答案:A4.某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用()存储方式最节省运算时间.A.单链表 B.仅有头指针的单循环链表 C.双链表 D.仅有尾指针的单循环链表参考答案:D5.若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点。

数据结构复习题及答案

数据结构复习题及答案

数据结构复习题及答案数据结构习题一、名词解释1.数据、数据元素、数据项、数据结构、数据的逻辑结构、数据物理结构、顺序存储、链式存储、算法、时间复杂度、空间复杂度。

2.线性表、顺序表、单链表、双向链表、循环链表、双向循环链表、三个概念的区别:头指针、头结点、首元结点(第1个元素结点)。

3.栈(顺序栈、链栈)、队列(顺序队、链队)、循环队列、递归、稀疏矩阵、三元组。

4.树、叶子结点、结点的度、树的度、树的高(深)度、二叉树、遍历、满二叉树、完全二叉树、哈夫曼树、WPL、哈夫曼编码。

5.图(有向、无向)、网、边、弧、度、入度、出度、完全图(有向、无向)、(强)连通图(分量)、(最小)生成树、邻接矩阵、邻接表、DFS、BFS。

6.查找表、关键字、静态查找、动态查找、ASL、顺序查找、折半查找、分块查找、二叉排序树。

7、排序、内(外)排序、稳定性、插入(直接、希尔),交换(起泡、快速),选择(直接、堆),2路归并。

一、填空题1.数据结构是研究数据的_逻辑结构__和___物理结构__,并在这种结构上定义相关的运算,设计实现这些运算的算法,分析算法的效率。

算法的效率包括时间和空间两个方面,分别称为___时间复杂度____和__空间复杂度___。

2.数据的基本单元是__数据元素__,数据的最小单元是__数据项_。

3.算法是对特定问题求解___步骤___的一种描述,是指令的有限序列。

4.一个算法的时间复杂度为(3n3+2n—7),其数量级表示为O(n3)_。

5.一个算法具有5个特性:确定性、可行性、有穷性、输入和输出。

6.算法机能的阐发和怀抱,能够从算法的工夫庞大度和空间庞大度来评判算法的好坏。

7.数据的逻辑布局包孕调集布局、线性布局、树形布局和图型布局四品种型。

8.数据布局在计较机中的表示称为数据的物理布局,它能够采用__按次存储___或__链式存储_两种存储方法。

9.线性表有两种存储布局,划分为按次存储和链式存储。

数据结构复习题

数据结构复习题

数据结构复习题一、填空题(1)若已知一个栈的输入序列为1 ,2, 3 ,...n ,其输出序列为p1,p2,p3,....pn。

若p1=n,则pi为n-i+1 。

(2) 在单循环链表L中,指针p 所指结点为最后一个结点的条件是P->next= = L。

(3)具有32有结点的完全二叉树的深度为 6 。

(4) L是带有头结点的单链表的头指针,第一个元素结点的指针是 L->next 。

(5)从逻辑关系上讲,数据结构主要分为两大类,它们是线性关系和非线性关系。

(6)有序表中元素为1,2,3,4,5,6,7,8,9.11采用二分查找方法进行查找,共有 2 个元素的查找长度为2。

(7)从无向图中的某个顶点出发,进行一次广度优先搜索,即可访问图的每个顶点,则该图一定是连通图。

(8)归并排序的时间复杂性为___O(nlogn)________(9) 在一个长度为n的顺序表中删除第m个元素时,需向前移动_ n-i-1 _ 个元素。

(10) 多维数组实际上是由__ 一维数组 __实现的。

(11) 链接存储的特点是利用_____指针___来表示数据元素之间的逻辑关系。

(12) 后缀表达式“4 5 * 3 2 + -”的值为__ _15_ ______。

(14) 一个算法的复杂性可分为_ 时间_ ___复杂性和空间复杂性。

(15) 无向图的邻接矩阵是一个_ 对称矩阵_ ___。

(16) 在一棵树中,___叶子_ ___结点没有后继结点。

(17) 存储结构是逻辑结构的____物理__ ______实现。

(18) 在单链表中,指针p 所指结点为最后一个结点的条件是_P->next= = NULL _ 。

(19) 栈是一种限定在表的一端进行插入和删除的线性表,又被称为_后出先进___表。

(20) 设图G=(V,E),V={1,2,3,4}, E={<1,2>,<1,3>,<2,4>,<3,4>,<2,3>},从顶点1出发,对图G进行广度优先搜索的序列有__2_ __种。

数组练习题

数组练习题
39.初始化多维数组的语句中,可以缺省的是().
A.最后一个下标界
B.第1个下标界
C.第2个下标界
D.以上都不是
40.数组声明为: char str1[20]="Borland",str2[]="C++5.0";调用函数"strcat(str1,str2);"后,字符串str1的串长是().
A.13
32.在C语言中,引用数组元素时,其数组下标的数据类型允许是().
A.整型常量
B.整型表达式
C.整型常量或整型表达式
D.任何类型的表达式
33.以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是().
A.char s[10]="abcdefg";
B.char t[]="abcdefg",*s=t;
B.char str[];
C.int num['10'];
D.int n=5; int a[n][n+2];
3.下列定义数组的语句中不正确的是().
A.int a[2][3]={1,2,3,4,5,6};
B.int a[2][3]={{1},{4,5}};
C.int a[][3]={{1},{4}};
A.14
B.15
C.16
D.17
49.在执行int a[][3]={{1,2},{3,4}};语句后,a[1][2]的值是()
A.int a(10);
B.int n=10,a[n];
C.int n; scanf("%d",&n); int a[n];
D.#define SIZE 10 (换行) int a[SIZE];

2013年-数据结构-复习题

2013年-数据结构-复习题

第一部分:数据结构——线性结构(顺序表、链表、栈、队列、数组、串)考点:1、时间复杂度2、数据的逻辑结构与存储结构相关知识——分类、与存储结构之间的关系3、顺序表的知识——特点4、链表的知识——编程求单链表中结点的个数、插入、删除。

5、栈与队列知识——特点、循环队列、基本术语、链队列6、数组与矩阵——求元素的地址、稀疏矩阵行优先存储:下标从1开始:Loc(A i,j) = Loc(A1,1)+[(i-1)*n+j-1]*b下标从0开始:Loc(A i,j) = Loc(A0,0)+(i*n+j)*b 列优先存储:下标从1开始:Loc(A i,j) = Loc(A1,1)+[(j-1)*m+i-1]*b下标从0开始:Loc(A i,j) = Loc(A0,0)+(j*m+i)*b1. 设顺序线性表中有n个数据元素,则第i个位置上插入一个数据元素需要移动表中___________个数据元素;删除第i个位置上的数据元素需要移动表中___________个元素。

2.数据的逻辑结构通常有集合、线性结构、_________ 和 _________ 四类结构。

3.若进栈序列为a、b、c ,且进栈和出栈可以穿插进行,则可能出现_________个不同的出栈序列。

4.在栈结构中,允许插入的一端称为 _________;在队列结构中,允许删除的一端称为 _________。

5. 下列程序段的时间复杂度为_____________s=0;for(i=1;i<n;i++)for(j=1;j<n;j++)s+=i*j;6. 假设某个带头结点的单链表的头指针为head,则判定该表为空表的条件()A、head= =NULLB、head->next= =NULLC、head!=NULLD、head->next= =head7. 栈是一种操作受限的线性结构,其操作的主要特点是()A、先进先出B、后进先出C、进优于出D、出优于进8. 假设以数组A[n]存放循环队列的元素,其头、尾指针分别为front和rear。

数据结构经典复习题(仅供参考)

数据结构经典复习题(仅供参考)

一、选择题(20分)1.下面关于线性表的叙述错误的是(D )。

(A) 线性表采用顺序存储必须占用一片连续的存储空间(B) 线性表采用链式存储不必占用一片连续的存储空间(C) 线性表采用链式存储便于插入和删除操作的实现(D) 线性表采用顺序存储便于插入和删除操作的实现2.设某棵二叉树的中序遍历序列为ABCD,前序遍历序列为CABD,则后序遍历该二叉树得到序列为(A )。

(A) BADC (B) BCDA (C) CDAB (D) CBDA3.设某棵二叉树中有2000个结点,则该二叉树的最小高度为( C )。

(A) 9 (B) 10 (C) 11 (D) 124.设二叉排序树中有n个结点,则在二叉排序树的平均平均查找长度为( B )。

(A) O(1) (B) O(log2n) (C) (D) O(n2)5.设有5000个待排序的记录关键字,如果需要用最快的方法选出其中最小的10个记录关键字,则用下列( B )方法可以达到此目的。

(A) 快速排序(B) 堆排序(C) 归并排序(D) 插入排序第9小题分析:9快速排序、归并排序和插入排序必须等到整个排序结束后才能够求出最小的10个数,而堆排序只需要在初始堆的基础上再进行10次筛选即可,每次筛选的时间复杂度为O(log2n)。

6.下列四种排序中( D )的空间复杂度最大。

(A) 插入排序(B) 冒泡排序(C) 堆排序(D) 归并排序7.设一维数组中有n个数组元素,则读取第i个数组元素的平均时间复杂度为(C )。

(A) O(n) (B) O(nlog2n) (C) O(1) (D) O(n2)8.设一棵二叉树的深度为k,则该二叉树中最多有(D )个结点。

(A) 2k-1 (B) 2k(C) 2k-1(D) 2k-19.在二叉排序树中插入一个结点的时间复杂度为(B )。

(A) O(1) (B) O(n) (C) O(log2n) (D) O(n2)10.设用链表作为栈的存储结构则退栈操作( B )。

C语言复习题数组

C语言复习题数组

C语言复习题_数组一、填空1、若定义char a[] = ”\3Love\3”; 则strlen(a)的值为 6 , sizeof(a)的值为7 。

2、若定义char a[]= ”Hello!\n”;则strlen(a)的值为7 ,sizeof(a)的值为8 。

二、选择1、设有数组定义:char array [ ]="China";则数组array所占的空间为(C)。

A、4个字节B、5个字节C、6个字节D、7个字节2、为了判断两个字符串s1和s2是否相等,应当使用(D)。

A、if (s1= =s2)B、if (s1=s2)C、if(strcpy(s1,s2))D、if (strcmp(sl,s2)==0)3、下列描述中,合法的数组定义是(D)。

A、int a[]={"String”};B、int a[5]={0,1,2,3,4,5};C、char a={”String”};D、char a[ ]={0,1,2,3,4,5};4、若有定义int a[10]; ,则对数组a的引用正确的是(D)。

A、a[10]B、a[6、3]C、a(6)D、a[10-10]5、以下对一维数组a的定义中正确的是(C)。

A、char a(10);B、int a[0、、100];C、int a[5];D、int k=10; int a[k];6、以下对一维数组的定义中不正确的是(B)。

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 ch1[]={'1',’2’,'3', ’4',’5'};D、char ch2[]={’\x10', '\xa’, '\x8’};7、假定一个int型变量占用四个字节,若有定义:int x[10]={0,2,4};则数组x在内存中所占字节数是(D).A、3B、6C、10D、408、若定义一个名为s且初值为"123"的字符数组,则下列定义错误的是(C)。

广技师C语言复习题5.-练习(数组)(有标准答案)

广技师C语言复习题5.-练习(数组)(有标准答案)

一、选择题1. 以下对一维整型数组a的正确说明是。

A.int a(10);B.intn=10, a[n];C.int n;scanf(“%d",&n);int a[n];D.#defineSIZE10int a[SIZE]2. 若有说明:int a[10];,则对a数组元素的正确引用是. A.a[10] B.a[3。

5] C.a(5) D.a[10-10]4. 以下对二维数组a的正确说明是。

A.int a[3][]; B.float a(3,4);C.double a[][4];D.floata(3)(4);5.若有说明:int a[3][4];则对a数组元素的正确引用是。

A.a[3][4] B.a[1,3]C.a[1+1][0]D.a(2)(1) 6. 以下能对二维数组a进行正确初始化的语句是。

A.inta[2][ ]={{1,0, 1}, {5, 2, 3}};B.int a[ ][3]={{1,2,3},{4,5,6}};C.int a[2][4]={{1,2,3},{4,5},{6}};D.int a[][3]={{1,0,1,0},{ },{1,1}};7. 下面程序段(每行代码前面的数字表示行号)。

1 inta[3]={3*0};2int i3 for(i=0;i〈3; i++) scanf(“%d”,&a[i]);4for(i=1;i〈3;i++) a[0]=a[0]+a[i];5 printf(“%d\n”,a[0]);A.第1行有错误 B.第5行有错误C.第3行有错误D.没有错误8.若有定义floatx[4]={1.3, 2.4,5。

6},y=6;则错误的语句是。

A.y=x[3]; B.y=x+1; C.y=x[2]+1D.x[0]=y; 9。

定义如下变量和数组:int k;int a[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是。

数据结构复习题第5章答案2014616

数据结构复习题第5章答案2014616

第5章数组与广义表一、选择题(每小题1分,共10分)1.一个向量第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是( A )。

A.110B.108C.100D.1202.在数组A中,每一个数组元素A[i][j]占用3个存储字节,行下标i从1到8,列下标j 从1到10。

所有数组元素相继存放于一个连续的存储空间中,则存放该数组至少需要的存储字节数是( C )。

A.80B.100C.240D.2703.假设有60行70列的二维数组a[1…60, 1…70]以列序为主序顺序存储,其基地址为10000,每个元素占2个存储单元,那么第32行第58列的元素a[32,58]的存储地址为( C )。

(无第0行第0列元素)A.16902B.16904C.14454D.答案A, B, C均不对4.将一个A[1..100,1..100]的三对角矩阵,按行优先存入一维数组B[1‥298]中,A中元素A6665(即该元素下标i=66,j=65),在B数组中的位置K为( A )。

A. 198B. 195C. 197D.1965.数组A[0..5,0..6]的每个元素占五个字节,将其按列优先次序存储在起始地址为1000的内存单元中,则元素A[5,5]的地址是( A )。

A. 1175B. 1180C. 1205D. 12106.假设以行序为主序存储二维数组A=array[1..100,1..100],设每个数据元素占2个存储单元,基地址为10,则LOC[5,5]= ( B )。

A. 808B. 818C. 1010D. 10207. 设有数组A[i,j],数组的每个元素长度为3字节,i的值为1到8,j的值为1到10,数组从内存首地址BA开始顺序存放,当用以列为主存放时,元素A[5,8]的存储首地址为( B )。

A. BA+141B. BA+180C. BA+222D. BA+2258.设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a11为第一元素,其存储地址为1,每个元素占一个地址空间,则a85的地址为( B )。

《数据结构》复习题

《数据结构》复习题

《数据结构》复习题一、填空题1.数据结构中评价算法的两个重要指标是和。

2.数据元素之间有多种关系,其中常见的关系有、、、。

3.线性表的顺序存储是用实现的。

4.在长度为n的顺序表中插入一个元素,等概率的情况下的平均移动元素的次数是。

5.三个结点可构成种不同形态的二叉树。

6.对于栈只能在 (位置)插入和删除元素。

7.对矩阵压缩是为了。

8.深度为k的完全二叉树至少有个结点,至多有个结点。

9.对于一棵具有n个结点的二叉树,当进行链接存储时,其二叉链表中的指针域的总数为个,其中个用于链接孩子结点。

10.对二叉排序树进行遍历,可得到排好序的递增结点序列。

11.N个顶点的连通图的生成树含有条边。

12.己知有序表为(12,18,24,35,47,50,62,83,90,115,134)当用二分法查找90时,需次查找成功,47时成功,查100时,需次才能确定不成功。

13.算法的计算量的大小称为计算的____14.在线性表的顺序存储中,元素之间的逻辑关系是通过__ __决定的;在线性表的链接存储中,元素之间的逻辑关系是通过____决定的。

15.对于一个具有N个结点的单链表,在已知的结点*P后插入一个新结点的时间复杂度为____,在给定值为X的结点后插入一个新结点的时间复杂度为____.16.无论对于顺序存储还是链接存储的队列来说,进行插入或删除运算的时间复杂度均相同为____.17.对于一棵具有n个结点的树,该树中所有结点的度数之和为____18.在一个完全二叉树的顺序存储中,若一个结点的下标为i,则它的左子女结点的下标为____,右子女结点的下标为____.19.对于一棵具有n个结点的二叉树,对应二叉链表中指针总数为____个,其中____个用于指向子女结点,____个指针空闲着20.以折半搜索方法搜索一个线性表时,此线性表必须是____存储的____表21.在一个无向图中,所有顶点的度数之和等于所有边数的____倍。

VB程序设计教案,数组12,数组复习题,附答案

VB程序设计教案,数组12,数组复习题,附答案
Next j
Print
Next i
For i = 1 To()
For j = 1 To()
()
Next j
Next i
For i = 1 To n
For j = 1 To m
Print d2(i, j)
Next j
Print
Next i
End Sub
16.下列程序的功能是随机产生10个两位整数并输出,然后进行排序输出,请在空白处填入相应的语句,使之完成上述功能。
3 2 3
B.1 2 3
1 2 3
1 2 3
C.1 2 3
2 4 6
3 6 9
D.1 1 1
2 2 2
3 3 3
21.下述语句的运行结果是()
Private Sub Command1_Click()
Dim a
i = 0
a = Array(1, -2, 9, 0, -1, 9)
Do
k = a(i)
For m = 10 To k Step -2
B.控件数组的每一个控件共享同样的事件过程
C.控件数组中的每一个元素的下标由控件的index属性指定
D. 控件数组中的每一个元素只能有相同的属性设置
24.在窗体上画3个单选按钮,组ห้องสมุดไป่ตู้一个名为Chkoption的控件数组,用于标识数组下标的参数()。
A.Tag
B.Index
C.ListIndex

Next i
For i = 1 To()
t = x(i)
()
()
Next i
For i = 1 To n
Label2.Caption = Label2.Caption & x(i) & ""

c语言复习题及答案第七章数组

c语言复习题及答案第七章数组

第七章数组(8学时)学习目的与要求:1、 重点掌握一维数组的定义和引用;2、 基本掌握二维数组的定义和引用;3、 重点掌握字符型数组的定义与引用;4、 能正确使用字符串处理函数;5、 学会使用数组解决实际问题。

重点:1、 一维数组的定义与引用;2、 二维数组的定义与引用;3、 字符数组的定义与引用;第1讲知识归纳:1、一维数组的定义:类型说明符数组名[常量表达式];(1) (1)数组名后必须用方括弧[],用其他括弧均错误 ;(2) 方括弧中的常量表达式表示数组的元素个数;(3) 方括弧中的常量表达式,必须是能计算出具体数值,且不改变的常量,不能是变量;二、填空题1、下面fun 函数的功能是将形参 x 的值转换成二进制数,所得二进制数的每一位数放在一维数组中返回,二进制数的最低位放在下标为0的元素中,其它依此类推。

请填空。

fun(int x,int b[]){ int k=0,r;do{ r=x% 2;b[k++]=r;x/= 2j } while(x); }( 1996 年 4 月) 2 22、以下程序用来对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相2、一维数组的引用:数组名[下标r ■」 \ for ( i =0 ; i<7 ; i printf((2)将整个字符串一次输入输出,用格式符 如^ chaLG1f10]; scanf (“ %s ” , c1); int num[N];(2003 年 9 月)25、有以下程序main (){ char a[ ]={ ‘a ' , ‘b ' , ‘c ' , ‘d ',i=sizeof(a); j=strle n( a);printf( “%d,%d b ” i,j);} 程序运行后的输出结果是()。

A ) 9,9B )8,9(2002 年 9 月) 21、C 22、C 23、D 24、B 25、D “ %c , c1[ i ]); %s ; 100]; D) int N=100; e ' , ‘f ' , ‘g ' , ‘h ' , ‘ 0' }; int i,j; C ) 1, 8 D ) 9, 8同字符的ASCII码之差。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数组复习题1. 单项选择题(1) int a[4]={5,3,8,9};其中a[3]的值为( D )。

A. 5B. 3C. 8D. 9(2) 以下4 个字符串函数中,( A )所在的头文件与其他3 个不同。

A. getsB. strcpyC. strlenD. strcmp(3) 以下4 个数组定义中,( D )是错误的。

A. int a[7];B. #define N 5 long b[N];C. char c[5];D. int n,d[n];(4) 对字符数组进行初始化,( B )形式是错误。

A. char c1[ ]={'1', '2', '3'};B. char c2[ ]=123;C. char c3[ ]={ '1', '2', '3', '\0'};D. char c4[ ]="123";(5) 在数组中,数组名表示( C )。

A. 数组第1 个元素的首地址B.数组第2 个元素的首地址C. 数组所有元素的首地址D.数组最后1 个元素的首地址(6) 若有以下数组说明,则数值最小的和最大的元素下标分别是(B )。

int a[12] ={1,2,3,4,5,6,7,8,9,10,11,12};A. 1,12B. 0,11C. 1,11D. 0,12(7) 若有以下说明,则数值为4 的表达式是(D )。

int a[12] ={1,2,3,4,5,6,7,8,9,10,11,12}; char c=’a’, d, g ;A. a[g-c]B. a[4]C. a['d'-'c']D. a['d'-c](8) 设有定义:char s[12]="string";则printf( "%d\n",strlen(s)); 的输出是(A )A. 6B. 7C. 11D. 12(9) 设有定义:char s[12] = "string"; 则printf("%d\n ", sizeof(s)); 的输出是( D )说明:sizeof是一个运算符,求变量或类型的长度A. 6B. 7C. 11D. 12(10) 合法的数组定义是( A )。

A. char a[ ]= "string " ;B. int a[5] ={0,1,2,3,4,5};C. char a= "string " ;D. char a[ ]={0,1,2,3,4,5}(11) 合法的数组定义是( D )。

A. int a[3][ ]={0,1,2,3,4,5};B. int a[ ][3] ={0,1,2,3,4};C. int a[2][3]={0,1,2,3,4,5,6};D. int a[2][3]={0,1,2,3,4,5,};(12) 下列语句中,正确的是( D )。

A. char a[3][ ]={'abc', '1'};B. char a[ ][3] ={'abc', '1'};C. char a[3][ ]={'a', "1"};D. char a[ ][3] ={ "a", "1"};(13) 下列定义的字符数组中,输出printf("%s\n", str[2]) ;的输出是( C )。

static str[3][20] ={ "basic", "foxpro", "windows"};A. basicB. foxproC. windowsD. 输出语句出错(14) 下列各语句定义了数组,其中哪一个是不正确的(C )。

A. char a[3][10]={"China","American","Asia"};B. int x[2][2]={1,2,3,4};C. float x[2][ ]={1,2,4,6,8,10};D. int m[][3]={1,2,3,4,5,6};(15) 数组定义为int a[3][2]={1,2,3,4,5,6},值为6的数组元素是( B )。

A. a[3][2]B. a[2][1]C. a[1][2]D. a[2][3](16) 下面的程序中哪一行有错误( D)。

#include <stdio.h>main(){float array[5]={0.0}; //第A行int i;for(i=0;i<5;i++)scanf("%f",&array[i]);for(i=1;i<5;i++)array[0]=array[0]+array[i];//第B行printf("%f\n",array[0]); //第C行}A. 第A行B. 第B行C. 第C行D. 没有(17) 下面哪一项是不正确的字符串赋值或赋初值的方式( C )。

A. char *str; str="string";B. char str[7]={'s','t','r','i','n','g'};C. char str1[10];str1="string";D. char str1[]="string",str2[]="12345678";(18) 若有以下说明和语句,则输出结果是哪一项( C )。

(strlen(s)为求字符串s的长度的函数)char s[12]="a book!";printf("%d",strlen(s));A. 12B. 8C. 7D. 11(19) 若有以下说明和语句,则输出结果是( B )。

(strlen(s)为求字符串s的长度的函数)char sp[]="\t\n\\\0will\n";printf("%d",strlen(sp));A. 14B. 3C. 9D. 字符串中有非法字符(20) 若有以下说明和语句,则输出结果是( C )。

char str[]="\"c:\\abc.dat\"";printf("%s",str);A. 字符串中有非法字符B. \"c:\\abc.dat\"C. "c:\abc.dat"D. "c:\\abc.dat"2. 填空题(1) C 语言中,数组的各元素必须具有相同的【】,元素的下标下限为【】,下标必须是正整数、0、或者【】。

但在程序执行过程中,不检查元素下标是否【】。

答案:数据类型,0,符号常量,越界(2) C 语言中,数组在内存中占一片【】的存储区,由【】代表它的首地址。

数组名是一个【】常量,不能对它进行赋值运算。

答案:连续,数组名,地址(3) 执行static int b[5], a[ ][3] ={1,2,3,4,5,6}; 后,b[4] =【】,a[1][2] =【】。

答案:0,6(4) 设有定义语句int a[3][4] ={{1},{2},{3}}; 则a[1][0]值为【】,a[1][1] 值为【】,a[2][1]的值为【】。

答案:2,0,0(5) 如定义语句为char a[ ]= "windows",b[ ]= "95";,语句printf("%s",strcat(a,b));的输出结果为【】。

答案:Windows95(6) 根据以下说明,写出正确的说明语句:men是一个有10个整型元素的数组。

step是一个有4个实型元素的数组,元素值分别为1.9, -2.33, 0, 20.6。

grid是一个二维数组,共有4行,10列整型元素。

答案:int mesh[10]; float step[4] = {1.9, -2.33, 0, 20.6}; int grid[4][10];(7) array是一个一维整形数组,有10个元素,前6个元素的初值是9,4,7,49,32,-5,正确的说明语句为:【】。

该数组下标的取值范围是从___到___(从小到大)。

用scanf函数输入数组的第二个元素表示为:【】。

用赋值语句把39存入第一个元素表示为:【】。

把第六个和第四个元素之和存入第一个元素表示为:【】。

答案:int array[10] = {9,4,7,49,32,-5}; 0 9 scanf("%d",&array[1]); array[0] = 39; array[0]= array[5]+array[3];(8) 写出以下初始化数组的长度:①int chn[3];数组chn的长度为___。

②float isa[]={1.0,2.0,3.0,4.0,5.0};数组isa的长度为___。

③int doom[8];数组doom的长度为___。

④float pci[4][2];数组pci的长度为___。

⑤int ast[3][3];数组ast的长度为___。

⑥int att[3][4];数组att的长度为___。

⑦float dell[][3]={{1,4,7},{2,5},{3,6,9}};数组dell的长度为___。

(设int类型占2个字节,float占4个字节)答案:6 20 16 32 18 24 36(9) 若有以下整型的a数组,数组元素和它们得值如下所示:数组元素: a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9]元素的值: 9 4 12 8 2 10 7 5 1 3①请写出对该数组的说明,并赋以上初值。

【】②该数组的最小下标值为___,最大下标值为___。

③写出下面各式的值:a[a[9]]的值为___ ;a[a[4]+a[8]]的值为___。

答案:int a[10]={9,4,12,8,2,10,7,5,1,3}; 0 9 8 8(10) 字符串"ab\n\\012/\\\""的长度为___。

相关文档
最新文档