数组作业二
国家开放大学电大《数据结构》网络课形考任务2作业及答案
国家开放大学电大《数据结构》网络课形考任务2作业及答案形考任务2一、单项选择题(每小题2分,共50分)题目1若让元素1,2,3依次进栈,则出栈顺序不可能为()。
选择一项:A. 3,1,2B. 3,2,1C. 2,1,3D. 1,3,2题目2一个队列的入队序列是1,2,3,4。
则队列的输出序列是()。
选择一项:A. 1,4,3,2B. 4,3,2,1C. 3,2,4,1D. 1,2,3,4题目3向顺序栈中压入新元素时,应当()。
选择一项:A. 先后次序无关紧要B. 先存入元素,再移动栈顶指针C. 同时进行D. 先移动栈顶指针,再存入元素题目4在一个栈顶指针为top的链栈中,将一个p指针所指的结点入栈,应执行()。
选择一项:A. p->next=top->next;top->next=p;B. p->next=top->next;top=top->next;C. p->next=top;top=p;D. top->next=p;题目5在一个栈顶指针为top的链栈中删除一个结点时,用 x保存被删结点的值,则执行()。
选择一项:A. x=top->data;top=top->next;B. top=top->next;x=top->data;C. x=top->data;D. x=top;top=top->next;题目6判断一个顺序队列(最多元素为m)为空的条件是()。
选择一项:A. front==rearB. front==rear+1C. rear==m-1D. rear=m题目7判断一个循环队列为满的条件是()。
选择一项:A. rear=MaxSizeB. (rear+1)%MaxSize==frontC. front==rear+1D. rear%MaxSize= =front题目8判断栈满(元素个数最多n个)的条件是()。
南开24秋学期《数据结构》作业参考二
24秋学期《数据结构》作业参考1.一个向量第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是()选项A:110选项B:108选项C:100选项D:120参考答案:B2.数组Q[n]用来表示一个循环队列,f为当前队列头元素的前一位置,r为队尾元素的位置,假定队列中元素的个数小于n,计算队列中元素的公式为选项A:r-f选项B:(n+f-r)% n选项C:n+r-f选项D:(n+r-f)% n参考答案:D3.链表适用于()查找选项A:顺序选项B:二分法选项C:顺序,也能二分法选项D:随机参考答案:A4.二叉树是非线性数据结构,所以()选项A:它不能用顺序存储结构存储选项B:它不能用链式存储结构存储选项C:顺序存储结构和链式存储结构都能存储选项D:顺序存储结构和链式存储结构都不能使用参考答案:C5.链表是一种采用存储结构存储的线性表选项A:顺序选项B:链式选项C:星式选项D:网状参考答案:B6.线性表L在()情况下适用于使用链式结构实现。
选项A:需经常修改L中的结点值选项B:需不断对L进行删除插入选项C:L中含有大量的结点选项D:L中结点结构复杂参考答案:B7.对有n个记录的表作快速排序,在最坏情况下,算法的时间复杂度是()选项A:O(n)选项B:O(n2)选项C:O(nlog2n)选项D:O(n3)参考答案:B8.串是一种特殊的线性表,其特殊性体现在()选项A:可以顺序存储选项B:数据元素是一个字符选项C:可以链式存储选项D:数据元素可以是多个字符参考答案:B9.广度优先遍历类似于二叉树的()选项A:先序遍历选项B:中序遍历。
国开JavaScript程序设计形考作业2试题及答案
第二次任务(预备知识:第二、三章;分值:10分;选做:3选1;需辅导教师评分)实训二:显示数据列表1.题目显示数据列表。
2.目的(1)掌握流程控制语句的使用。
(2)掌握函数的使用。
(3)理解闭包的概念。
(4)应会设计基本的应用程序。
3.内容在所设计的项目中,实现显示数据列表。
数据以表格的方式显示,不同的行显示不同的颜色。
当单击每行数据的标题时,将会弹出窗口,显示详细信息。
4.要求(1)数据存放在数组中,用程序实现数据显示。
(2)以闭包的方式定义工具,窗口函数封装在工具中。
(3)通过循环生成数据行,用条件判断实现不同行显示不同的颜色。
参考答案:这个任务可以通过JavaScript和HTM1实现。
我们需要一个HTM1表格来显示数据,然后使用JaVaSCriPt来填充数据和控制行颜色以及弹出窗口。
这里是一个简单的示例:首先,创建一个HTM1文件,例如叫做index.htm1:htm1复制代码<!DOCTYPE htm1><htm1><head>CtitIe>数据列表显示<∕tit1e><sty1e>tab1e{width:100%;border-co11apse:co11apse;)th,td{border:Ipx so1idb1ack;padding:8px;text-a1ign:1eft;}.odd-row{background-co1or:#f2f2f2;).even-row{background-co1or:#FFfFFf;}<∕sty1e><∕head><body><tab1e id=,,data-tab1e"><∕tab1e><script src=',script.js,,><∕script><∕body><∕htm1>然后,创建一个JaVaSCriPt文件,例如叫做SCriPt.js:javascript复制代码//定义数据数组var data=[{name:"张三∖age:23,gender:“男"},{name:,1李四,,,age:24,gender:,,女,,},{name:“王五",age:25,gender:“男"},//更多数据.・・];//创建并返回一个函数,该函数用于创建并返回一个表格行元素function createRow(data1tem){//使用数据项创建并返回一个表格行元素var row=document.CreateE1ement(,tr,);var nameCe11=document.cReateE1ement(,td,);nameCe11.textcontent=;row.appendChi1d(nameCe11);var ageCe11=document.CreateE1ement(,td,);ageCe11.textcontent=data1tem.age;row.appendChi1d(ageCe11);var genderCe11=document.CreateE1ement(,td,);genderCe11.textcontent=data1tem.gender;row.appendChi1d(genderCe11);return row;)//创建并返回一个函数,该函数用于创建并返回一个带有标题的表格行元素,并且该行在被点击时会弹出一个窗口显示详细信息function CreateTit1eROW(titIe){//使用标题创建并返回一个表格行元素,该行在被点击时会弹出一个窗口显示详细信息var row=createRow({name:tit1e,age:'点击查看"gender:'点击查看’});//使用“点击查看”作为占位符文本,直到实现弹出窗口的功能为止row.addEvent1istener('c1ick'function(){//为该行添加一个点击事件监听器,当该行被点击时,将弹出一个窗口显示详细信息var win=WindoW.open(,,,新窗口中创建一个新的表格,其中包含标题行(Name,Age,Gender)win.document.write(,<tr><td>,+data[0].name+,<∕td><td>,+data[0].age+,<∕td><td>< +data[0].gender+,<∕td><∕tr>');//在新窗口中添加第一行数据(假设第一行数据是标题行)for(var i=1;i<data.1ength;i++){//对于数据数组中的每一项数据,在新窗口中添加一行数据(除了标题行)win.document.write(,<tr><td>,+data[i].name+,<∕td><td>,+data[i].age+,<∕td><td>,+d ata[i].gender+,<∕td><∕tr>,);//在新窗口中添加一行数据(Name,Age,Gender)} win.document.write('<∕tab1e>,);//在新窗口中关闭表格标签,完成表格的创建和数据的添加win.document.c1ose();//关闭新窗口的文档对象模型(DOM),完成新窗口的创建和数据的添加,然后使新窗口可读或可写(取决于用户的设置)});//在该行上添加一个点击事件监听器,当该行被点击时,将弹出一个窗口显示详细信息(Name,Age,Gender)的表格,其中包含所有数据项的数据(Name,Age,Gender)实训三:随机显示题头图片1.题目随机显示题头图片。
C语言程序设计形成性考核作业2解答
《C语言程序设计》作业2解答一、选择题1. 在下面的一维数组定义中,( C )语句有语法错误。
A. int a[ ]={1,2,3};B. int a[10]={0};C. int a[ ];D. int a[5];2. 在下面的二维数组定义中,( C )语句是正确的。
A. int a[5][ ];B. int a[ ][5];C. int a[ ][3]={{1,3,5},{2}};D. int a[ ](10);3. 假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[1][2]的值为( C )。
A. 2B. 4C. 6D. 84. 假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}};”,则元素a[2][1]的值为( A )。
A. 0B. 4C. 8D. 65. 将两个字符串连接起来组成一个字符串时,选用( C )函数。
A. strlen( )B. strcap( )C. strcat( )D. strcmp( )二、填空题1. 假定一维数组的定义为“char * a[8];”,则该数组所含元素的个数为8 。
2. 假定一维数组的定义为“char * a[8];”,则该数组所占存储空间的字节数为32 。
3. 假定二维数组的定义为“int a[3][5];”,则该数组所占存储空间的字节数为60 。
4. 假定二维数组的定义为“double a[M][N];”,则该数组所含元素的个数为M*N 。
5. 假定二维数组的定义为“double a[M][N];”,则每个数组元素的行下标取值范围在0 ~M-1 之间。
6. 假定二维数组的定义为“double a[M][N];”,则每个数组元素的列下标取值范围在0~N-1 之间。
7. 使用“typedef char BB[10][50];”语句定义BB 为含有10行50列的二维字符数组类型。
第四章 数组作业
第四章数组4.1 选择题1. 以下关于数组的描述正确的是( )。
A. 数组的大小是固定的,但可以有不同的类型的数组元素B. 数组的大小是可变的,但所有数组元素的类型必须相同C. 数组的大小是固定的,所有数组元素的类型必须相同D. 数组的大小是可变的,可以有不同的类型的数组元素2. 以下对一维整型数组a的正确说明是( )。
A.int a(10);B. int n=10,a[n];C.int n;D. #define SIZE 10scanf("%d",&n); int a[SIZE];int a[n];3. 在C语言中,引用数组元素时,其数组下标的数据类型允许是( )。
A. 整型常量B. 整型表达式C. 整型常量或整型表达式D. 任何类型的表达式4. 以下对一维数组m进行正确初始化的是( )。
A. int m[10]=(0,0,0,0) ;B. int m[10]={ };C. int m[ ]={0};D. int m[10]={10*2};5. 若有定义:int bb[ 8];。
则以下表达式中不能代表数组元bb[1]的地址的是( )。
A. &bb[0]+1B. &bb[1]C. &bb[0]++D. bb+16. 假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是( )。
A. 3B. 6C. 10D. 207. 若有以下说明:int a[12]={1,2,3,4,5,6,7,8,9,10,11,12};char c='a',d,g;则数值为4的表达式是( )A. a[g-c]B. a[4]C. a['d'-'c']D. a['d'-c]8. 以下程序段给数组所有的元素输入数据,请选择正确答案填入( )。
#include<stdio.h>main(){int a[10],i=0;while(i<10) scanf("%d",________ );┇}A. a+(i++)B. &a[i+1]C. a+iD. &a[++i]9. 执行下面的程序段后,变量k中的值为( )。
数据结构作业答案(大连理工大学)
作业1. 线性表编程作业:1.将顺序表逆置,要求用最少的附加空间。
参考答案#include <>#include <>#include <>#define LIST_INIT_SIZE 100#define LISTINCREMENT 10#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define INFEASIBLE -1#define OVERFLOW -2typedef int Status;typedef int ElemType;typedef struct{ ElemType *elem;int length;int listsize;}SqList;立单链表 ");printf("2.取元素值 ");printf("3.查找 \n");printf("4.插入 ");printf("5.删除 ");printf("6.显示\n");printf("7.删除大于mink且小于maxk的元素值 ");printf("8.就地升序排序\n");printf("9.就地逆置 ");printf("a.有序表插入 ");printf("q.退出\n");printf("\n请选择操作:");fflush(stdin);scanf("%c",&choice);switch(choice){case '1': printf("请输入单链表中结点个数:");scanf("%d",&n);Create_L2(L,n);break;case '2': printf("请输入元素位序:");scanf("%d",&i);GetElem_L(L,i,e);printf("元素值为:%d\n",e);break;case '3': printf("请输入要查找的元素:");scanf("%d",&e);if(dlbcz(L,e))printf("查找成功!");elseprintf("查找失败。
数据结构作业2
一、判断题。
◆1、通常数组采用静态内存分配进行存储,链表采用动态内存分配进行存储。
( V)◆2、链表在进行插入与删除操作时,根本就不需要移动数据元素。
( X )◆3、在查找结点时,双向链表比单链表较为迅速;在插入或删除一个具体结点时,双向链表比单链表较为费时。
( V )◆4、顺序存储的线性表可以按序号随机存取。
( V )●1、在有n个数据元素的链表中进行插入操作,在最坏情况下需要读取多少个元素?(A). 1 (B). n/2 (C). n (D). n/3●2、如下链表中,f为头指针,请问结点d的数据域如何表示?(A). ((f→next)→next)→data(B). ((f→next)→next)→next(C). (((f→next)→next)→next) →data(D). 以上都不是●3、在双向链表中,插入一个newnode在某node的右边,请在空格内选择正确的操作。
•Void dinsert (node_pointer node, node_pointer newnode)•{ newnode→Llink=node;• newnode→Rlink=node→Rlink;•( )=newnode;• node→Rlink=newnode; }(A). node→Rlink→Llink(B). node→Llink→Rlink(C). node→Llink(D). node→Llink→Llink●4、链表不具有的特点是什么?A. 可随机访问任一元素B.插入和删除时不需要移动元素C. 不必事先估计存储空间D. 所需空间与线性表的长度成正比●5、线性链表(动态)是通过什么方式表示元素之间的关系的?A.保存后继元素地址B. 元素的存储顺序C. 保存左、右孩子地址D. 保存后继元素的数组下标●6、设顺序表的每个元素占8个存储单元,第1个单元的存储地址是100,则第6个元素占用的最后一个存储单元的地址是什么?A. 139B. 140C. 147D. 148●7、设顺序表的长度为n,并设从表中删除元素的概率相等,则在平均情况下,从表中删除一个元素需移动的元素个数是什么?A. (n-1)/2B. n/2C. n(n-1)/2D. n(n+1)/2●8、在线性链表存储结构下,插入操作算法的操作如何?A. 需要判断是否表满B. 需要判断是否表空C. 不需要判断表满D. 需要判断是否表空和表满●9、带头结点的单链表head为空的判断条件是()。
北航《算法与数据结构》在线作业二
A. 分支结点数加1
B. 单分支结点数加1
C. 双分支结点数加1
D. 双分支结点数减1
满分:4 分
25. 某二叉树结点的前序序列为E、A、C、B、D、G、F,中序遍历为A、B、C、D、E、F、G。 该二叉树结点的后序序列为 ( )。
A. B,D,C,A,F,G,E
B. 63
C. 32
D. 31
满分:4 分
15. 如果待排序序列中两个数据元素具有相同的值,在排序后它们的位置发生颠倒,则称该排序是不稳定的。下列选项中,()就是不稳定的排序方法。
A. 起泡排序
B. 归并排序
C. 直接插入法排序
D. 简单选择排序
满分:4 分
D. 'DATA'
满分:4 分
2. 某二叉树的先序序列和后序序列正好相反,则该二叉树一定是( )的二叉树。
A. 空或只有一个结点高度等于其结点数
B. 任一结点无左孩子
C. 任一结点无右孩子
满分:4 分
3. 设有50行60列的二维数组A[50][60],其元素长度为4字节,按行优先顺序存储,基地址为200,则元素A[18][25]的存储地址为()。
C. 附加设施,如为便于运算实现而设置的“哑结点”等等
D. 一种存储结构可以在两个级别上讨论。其一是机器级,其二是语言级
满分:4 分
9. n个顶点的连通图至少有( )条边。
A. n-1
B. n
C. n+1
D. 0
满分:4 分
10. 排序方法中,从未排序序列中依次取出元素与己排序序列(初始时为空)中的元素进行比较,将其放入己排序序列的正确位置上的方法,称为()
北交《数据结构》在线作业二答卷
B.Shell排序
C.归并排序
D.快速排序
答案:D
29.下列那种排序需要的附加存储开销最大()。
A.插入排序
B.快速排序
C.归并排序
D.堆排序
答案:C
30.如果待排序序列中两个数据元素具有相同的值,在排序后它们的位置发生颠倒,则称该排序是不稳定的。下列选项中,()就是不稳定的排序方法。
A.head=NULL
B.head->next=NULL
C.head->next=head
D.head!=head
答案:B
9.向一个有127个元素的顺序表中插入一个新元素并保持原来顺序不变,平均要移动( )个元素。
A.8
B.63.5
C.64
D.7
答案:B
10.对于含有n个顶点e条边的无向连通图,利用Prim算法生成最小代价生成树其时间复杂度为( )。
C.索引存储
D.散列存储
答案:A
27.向二叉排序树中插入一个元素时,其时间复杂度大致为( )。
A.O(n*log2n)
B.O(n)
C.O(log以2为底的n)
D.O(1)
答案:C
28.用某种排序方法队线性表(25,84,21,47,15,27,68,35,20)进行排序,元素序列变化如下: (1)25,84,21,47,15,27,68,35,20 (2)20,15,21,25,47,27,68,35,84 (3)15,20,21,25,35,27,47,68,84 (4)15,20,21,25,27,35,47,68,84 所采用的排序方法是( )。
A.3700
2019级春数据结构第二次作业
题号题目内容答案答题时间1"空串与空格串是相同的,这种说法____。
A.正确B.不正确"B02"串是一中特殊的线性表,其特殊性体现在____。
A.可以顺序存储B.数据元素是一个字符C.可以链接存储D.数据元素可以是多个字符"B03"设有两个串p和q,求q在p中首次出现的位置的运算称作____。
A.连接B.模式匹配C.求子串D.求串长"B04"设串s1=’ABCDEFG’,s2=’PQRST’,函数con (x,y)返回x和y串的连接串,subs(s,i,j)返回串s的从序号i的字符开始的j个字符组成的子串,len(s)返回串s的长度,则con (subs (s1,2,len (s2)), subs (s1,len (s2),2))的结果串是____。
A.BCDEFB.BCDEFGC.BCPQRSTD.BCDEFEF"D05"常对数组进行的两种基本操作是____。
A.建立与删除B.索引和修改C.对数据元素的存取和修改D.查找与索引"C06"二维数组M的成员是6个字符(每个字符占一个存储单元,即一个字节)组成的串,行下标i的范围从0到8,列下标j的范围从0到9,则存放M 至少需要①_ _个字节;M 数组的第8列和第5行共占②____个字节。
A.90B.180C.240D.540E.108F.114G.54H.60"DE07"二维数组A中,每个元素的长度为3个字节,行下标i从0到7,列下标j从0到9,从首地址SA开始连续存放在存储器内,存放该数组至少需要的字节数是____。
A.80B.100C.240D.270"C08"由于二叉树中每个结点的度最大为2,所以二叉树是一种特殊的树,这种说法____。
A.正确B.错误"B09"假定在一棵二叉树中,双分支结点数为15,单分支结点数为30个,则叶子结点数为个。
福师20年秋数据结构概论在线作业二【标准答案】
福师《数据结构概论》在线作业二-0002试卷总分:100得分:100一、单选题(共25道试题,共50分)1.设森林F对应的二叉树为B,它有m个结点,B的根为p,p的右子树结点个数为 n,森林F中第一棵树的结点个数是()A.m-nB.m-n-1C.n+1D.条件不足,无法确定答案:A2.若二叉树采用二叉链表存储结构,要交换其所有分支结点左、右子树的位置,利用()遍历方法最合适。
A.前序B.中序C.后序D.按层次答案:C3.一个算法应该是()。
A.程序B.问题求解步骤的描述C.要满足五个基本特性D.A 和 C.答案:B4.栈和队列的共同点是()。
A.都是先进先出8.都是先进后出C.只允许在端点处插入和删除元素D.没有共同点E.限制存取点的线性结构F.限制存取点的非线性结构答案:C5.下面的程序段中,对x的赋值语句的频度为()FOR i:=1 TO n DOFOR j:=1 TO n DO x:=x+1;A.O(2n)B.O(n)C.O(n"2)D.O(log2n)答案:C6.算法的计算量的大小称为计算的()A.效率B.复杂性C.现实性D.难度答案:B7.对于栈操作数据的原则是()A.先进先出8.后进先出C.后进后出D.不分顺序答案:B8.下列表达式中结果不是日期型的是?A.CT0D("2000/10/01")B.「99/10/01}+365C.VAL("2000/10/01")D.DATE()答案:C9.关键路径是事件结点网络中()A.从源点到汇点的最长路径B.从源点到汇点的最短路径C.最长回路D.最短回路答案:A10.就平均性能而言,目前最好的内排序方法是()排序法。
A.冒泡B.希尔插入C.交换D.快速答案:D11.栈和队都是()A.顺序存储的B.线性结构C.链式存储的D.非线性结构答案:B12.关系数据库中,实现实体之间的联系是通过表与表之间的?A.公共索引B.公共存储C.公共元组D.公共属性答案:D13.下列关于候选键的说法中错误的是?A.键是惟一标识实体的属性集B.候选键能惟一决定一个元组C.能惟一决定一个元组的属性集是候选键D.候选键中的属性均为主属性答案:C14.假设以行序为主序存储二维数组A=array[1..100,1..100],设每个数据元素占2个存储单元,基地址为10,则LOC[5,5]=()A.808B.818C.1010D.1020答案:B15.链表不具有的特点是()儿插入、删除不需要移动元素B.可随机访问任一元素C.不必事先估计存储空间D.所需空间与线性长度成正比答案:B16.若要求尽可能快地对序列进行稳定的排序,则应选(A.快速排序B.归并排序C.冒泡排序D.堆答案:B17.下面关于关系数据模型的说法,正确的是哪一项?A.只能表示实体间的1:1联系B.只能表示实体间的l:n联系C.只能表示实体间的m:n联系D.可以表示实体间的上述三种联系答案:D18.若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素的算法的时间复杂度为()(1<=i<=n+1)。
matlab第二章作业 2
2.1创建一个有七个元素的一维数组,并做如下处理(1)直接寻访一维数组的第六个元素(2)寻访一维数组的第一、三、五个元素(3)寻访一维数组中第四个至最后一个元素(4)寻访一维数组中大于70的元素A=linspace(1,200,7)%创建一个有七个元素的一维数组>>A =Columns 1 through 31.0000 34.1667 67.3333Columns 4 through 6100.5000 133.6667 166.8333Column 7200.0000(5)>> A(6)%直接寻访一维数组的第六个元素ans =166.8333(6)>> A([1,3,5])%寻访一维数组的第一、三、五个元素ans =1.0000 67.3333 133.6667(7)>> A(4:end)%寻访一维数组中第四个至最后一个元素ans =100.5000 133.6667 166.8333 200.0000>> b=A>70%判断A中的各元素是否大于70b =0 0 0 1 1 1 1>> A(b)%显示A 中大于70的元素ans =100.5000 133.6667 166.8333 200.00002.3找出数组A=⎥⎦⎤⎢⎣⎡----5311342024中所有绝对值大于3的元素 >> A=[-4,-2,0,2,4;-3,-1,1,3,5]%创建AA =-4 -2 0 2 4-3 -1 1 3 5>> b=abs(A)>3%判断A 中各元素绝对值是否大于3b =1 0 0 0 10 0 0 0 1>> A(b)%显示逻辑值为1的各元素ans =-4452.5求1)1)(4)(232+++++s s s s s (的商及余多项式 >> p1=[1,5,6,10,8];%创建分子多项式>> ps1=poly2str(p1,'s')%以s 作为未知数显示多项式ps1 =s^4 + 5 s^3 + 6 s^2 + 10 s + 8>> p2=[1,1,1];%创建分母多项式>> ps2=poly2str(p2,'s')%以s 作为未知数显示多项式ps2 =s^2 + s + 1>> [q,r]=deconv(p1,p2)%求商及余多项式q =1 4 1r =0 0 0 5 7>> disp(['商:',poly2str(q,'s')])%显示商多项式 商: s^2 + 4 s + 1>> disp(['余:',poly2str(r,'s')])%显示余多项式 余: 5 s + 72.6求3阶方阵A 的特征多项式构造方阵A=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡200030001 A=[1,0,0;0,3,0;0,0,2;];%构造方阵A>> B=poly(A);%B 为A 的特征多项式>> poly2str(B,'s')ans =s^3 - 6 s^2 + 11 s - 6>> p=roots(B)%求B 的根p =3.00002.00001.0000。
19春天津大学《数据结构》在线作业二100分答案
《数据结构》在线作业二-0001
试卷总分:100 得分:100
一、单选题 (共 40 道试题,共 100 分)
1.对于静态表的顺序查找法,若在表头设置岗哨,则正确的查找方式为()。
A.从第0个元素往后查找该数据元素
B.从第1个元素往后查找该数据元素
C.从第n个元素往开始前查找该数据元素
D.与查找顺序无关
标准选择是:C
2.数组的逻辑结构不同于下列(??)的逻辑结构。
A.线性表
B.栈
C.队列
D.树
标准选择是:D
3.设哈希表长m=14,哈希函数H(key)=key%11。
表中已有4个结点:addr (15)=4;addr (38)=5;addr (61)=6;addr (84)=7,如用二次探测再散列处理冲突,关键字为49的结点的地址是()。
A.8
B.3
C.5
D.9
标准选择是:D
4.排序方法中,从未排序序列中挑选元素,并将其依次放入已排序序列(初始时为空)的一端的方法,称为()。
A.希尔排序
B.归并排序
C.插入排序
D.选择排序
标准选择是:D
5.字符串的长度是指()。
A.串中不同字符的个数
B.串中不同字母的个数
C.串中所含字符的个数
D.串中不同数字的个数
标准选择是:C。
天大20年春季《数据结构》在线作业二答卷【标准答案】
《数据结构》在线作业二
试卷总分:100 得分:100
一、单选题 (共 40 道试题,共 100 分)
1.设一组初始记录关键字序列为(Q,H,C,Y,P,A,M,S,R,D,F,X),则按字母升序的第一趟冒泡排序结束后的结果是()。
A.P,A,C,S,Q,D,F,X,R,H,M,Y
B.H,C,Q,P,A,M,S,R,D,F,X,Y
C.F,H,C,D,P,A,M,Q,R,S,Y,X
D.A,D,C,R,F,Q,M,S,Y,P,H,X
答案:B
2.设输入序列为1、2、3、4、5、6,则通过栈的作用后可以得到的输出序列为()。
A.5,3,4,6,1,2
B.3,2,5,6,4,1
C.3,1,2,5,4,6
D.1,5,4,6,2,3
答案:B
3.数组的逻辑结构不同于下列(??)的逻辑结构。
A.队列
B.线性表
C.树
D.栈
答案:C
4.设指针变量top指向当前链式栈的栈顶,则删除栈顶元素的操作序列为()。
A.top=top->next;
B.top=top-1;
C.top=top+1;
D.top->next=top;
答案:A
5.一个有n个顶点的无向图最多有()条边。
A.n(n-1)/2
B.n(n-1)
C.n
D.2n
答案:A
6.设一个顺序有序表A[1:14]中有14个元素,则采用二分法查找元素A[4]的过程中比较元素的顺序为( )。
A.A[7],A[5] ,A[3],A[4]
B.A[7],A[3],A[5],A[4]
C.A[1],A[2],A[3],A[4]。
东北师范大学奥鹏数据结构20春在线作业2标准答案
正确答案:B
19.二叉树在中序线索化后,仍不能有效求解的问题是( )。
A.求指定结点的前序后继
B.求指定结点的中序前驱
C.求指定结点的中序后继
D.求指定结点的后序后继
正确答案:D
20.内排序方法的稳定性是指()。
A.该排序算法不允许有相同的关键字记录
B.该排序算法允许有相同的关键字记录
A.算法最终必须由计算机程序实现
B.为解决某问题的算法同为该问题编写的程序含义是相同的
C.算法的可行性是指指令不能有二义性
D.以上几个都是错误的
正确答案:D
14.经过下列栈的操作后,GetTop(ST)的值是( )。InitStack(ST); push(ST,'a'); push(ST,'b'); pop(ST,x);
A.a
B.b
C.1
D.2
正确答案:A
15.从一个栈顶指针top的链栈中删除一个结点时,用x保存被删除的元素,执行( )。
A.x = top; top = top->next;
B.top = top->next; x = top->data;
C.x = top->data;
D.x = top->data; top = top->next;
11.用ISAM组织文件适合于()。
A.磁带
B.磁盘
C.光盘
D.外存储器
正确答案:B
12.判断线索二叉树中某结点p有左子女的条件是( )。
A.p ! = NULL
B.p->lchild ! = NULL
C.p->ltag = = 0
东北师范数据结构16秋在线作业2
数据结构16秋在线作业2一、单选题(共 20 道试题,共 60 分。
)1. 在下述几种排序方法中,辅助空间需要最多的是 ()。
. 直接插入排序. 快速排序. 直接选择排序. 归并排序正确答案:2. 广义表运算式til ( ( ( , ) , ( , ) ) ) 的操作结果是 ()。
. ( , ). ,. ( ( , ) ).正确答案:3. 下列序列中,() 是执行第一趟按递减序快速排序后所得的序列。
. [ 68, 11 , 18 , 69 ] 70 [ 23 , 93 , 73]. [ 68 , 11 , 69 , 23 ] 70 [18, 93, 73 ]. [ 93, 73 ] 70 [ 68, 11, 69, 23, 18 ]. [ 68 , 11 , 69, 23, 18 ] 70 [ 93, 73 ]正确答案:4. 递归过程的实现需用到 ( )。
. 线性表. 链表. 栈. 队列正确答案:5. 数组[6,7] 的每个元素占5个字节,将其按列优先次序存储在起始地址为1000的内存单元中,则元素[5,5] 的地址是 ()。
. 1165. 1170. 1175. 1180正确答案:6. VL树中任一结点的平衡因子的绝对值都应小于等于 ()。
. 0. 1. 2. 3正确答案:7. 下述文件中适合于磁带存储的是 ()。
. 顺序文件. 索引文件. 散列文件. 多关键字文件正确答案:8. 在n个结点的线索二叉树中线索的数目为 ( )。
. n-1. n. n+1. 2n正确答案:9. 一棵左子树为空的二叉树在前序线索化后,其中空的链域的个数是:( )。
. 不确定. 0. 1. 2正确答案:10. 有n个顶点的无向图的边数最多为 ()。
. n. n(n-1). n(n-1)/2. 2n正确答案:11. 由3个结点可以构造出多少种不同的有向无序树?( ). 9. 10. 11. 12正确答案:12. 引入线索二叉树的目的是 ( )。
数组作业
1.编写程序,找出10个数中最大的数以及最大数所在的下标。
1.1.#include<iostream>using namespace std;int main(){ int i,a[10],max,n;max=a[0];for(i=0;i<=9;i++){ cin>>a[i];if(max<a[i]) {max=a[i];n=i;}}cout<<"max="<<max<<" "<<"n="<<n<<endl;return 0;}2.编写程序,找出10个数中最大的数和最小数,将最大数与第一个数交换位置,最小数与最后一个数交换位置。
2.#include<iostream>using namespace std;int main(){ int i,a[10],max,min,k,k1;max=a[0];min=a[0];for(i=0;i<10;i++){cin>>a[i];// if(max<a[i]) max=a[i];if(min>a[i]) min=a[i];}cout<<"max="<<max<<" "<<"min="<<min<<endl;//for(i=0;i<10;i++){{k=max;max=a[0];a[0]=k;k1=min;min=a[9];a[9]=k1;} }for(i=0;i<10;i++)cout<<a[i]<<endl;return 0;}3. 将一个数组中的值按逆序重新存放。
例如,原来顺序为10、60、5、42、19,要求改为19、42、5、60、10。
数据结构题及参考答案
数据结构作业题作业题(一)一、单项选择题1. 从逻辑上可以把数据结构分为( c )两大类。
A.动态结构、静态结构 B.顺序结构、链式结构C.线性结构、非线性结构 D.初等结构、构造型结构2. 链表不具有的特点是( b )A.插入、删除不需要移动元素 B.可随机访问任一元素C.不必事先估计存储空间 D.所需空间与线性长度成正比3.下面程序段的时间复杂度的量级为( d )。
For(i=1;i<=n;i++)For(j=1;j<=I;j++)For(k=1;k<=j;k++)X=x+1;A.O(1) B.O(n)C.O(n²) D.O(n³)4.在一个带头结点的双向循环链表中,若要在p所指向的结点之前插入一个新结点,则需要相继修改(c)个指针域的值。
A.2 B.3C.4 D.65、一个顺序存储线性表的第一个元素的存储地址是90,每个元素的长度是2,则第6个元素的存储地址是( b )。
A.98 B.100C.102 D.1066、判定一个栈s(最多元素为m0)为空的条件是(b)。
A.s-〉top! =0 B.s-〉top= =0C.s-〉top! =m0 D.s-〉top= =m07、循环队列用数组A[m](下标从0到m-1)存放其元素值,已知其头尾指针分别是front和rear,则当前队列中的元素个数是( a )。
A.(rear-front+m)%m B.rear-front+1C.rear-front-1 D. rear-front8、设有两个串S1与S2,求串S2在S1中首次出现位置的运算称作(c)。
A.连接 B.求子串C.模式匹配 D.判子串9、设串S1='ABCDEFG',S2='PQRST',函数con(x,y)返回x和y串的连接串,subs(s,i,j)返回串S的的从序号i的字符开始的j个字符组成的子串,len(s)返回串S的长度,则con(subs(S1,2,len(S2)),subs(S1,len(S2),2))的结果是( d )。
JavaScript中对象数组作业题目以及作业
JavaScript中对象数组作业题⽬以及作业var BaiduUsers = [],WechatUsers = [];var User = function(id, name, phone, gender, age, salary) {this.id = id; = name;this.phone = phone;this.gender = gender;this.age = age;this.salary = salary;};User.create = function(id, name, phone, gender, age, salary) {return new User(id, name, phone, gender, age, salary);};BaiduUsers.push(User.create(1, 'tommy', '1111', 'male', 18, 10000));BaiduUsers.push(User.create(2, 'jerry', '2222', 'male', 28, 10000));BaiduUsers.push(User.create(3, 'raobin', '3333', 'female', 14, 1200));BaiduUsers.push(User.create(4, 'binbin', '4444', 'male', 23, 9800));BaiduUsers.push(User.create(5, 'yuyu', '5555', 'female', 22, 10000));WechatUsers.push(User.create(1, 'yuyu', '1111', 'male', 20, 40000));WechatUsers.push(User.create(2, 'allen', '6666', 'male', 34, 15800));WechatUsers.push(User.create(3, 'raobin', '3333', 'female', 16, 2300));WechatUsers.push(User.create(4, 'harvey', '7777', 'male', 30, 29800));WechatUsers.push(User.create(5, 'yuyu', '8888', 'female', 27, 7000));//Step1:将被收购公司的⼈员,⼿机号存在于原公司的,进⾏合并⼯资并且删除for (var i = 0; i < BaiduUsers.length; i++) {for (var y = 0; y < WechatUsers.length; y++) {if (BaiduUsers[i].phone == WechatUsers[y].phone) {WechatUsers[y].oldsalary = WechatUsers[y].salary;WechatUsers[y].salary = WechatUsers[y].salary + BaiduUsers[i].salary;BaiduUsers.splice(i, 1)}}}//Step2:将被收购公司剩余⼈员⼯资乘以1.2,并且改变IDvar len = WechatUsers.length;for (var i = 0; i < BaiduUsers.length; i++) {BaiduUsers[i].oldsalary = BaiduUsers[i].salary;BaiduUsers[i].salary = BaiduUsers[i].salary * 1.2;BaiduUsers[i].id = WechatUsers.length + 1 + i;}//Step3:定义⼀个新对象数组,连接上述两个数组var Aftereat = WechatUsers.concat(BaiduUsers)//Step4:计算收购之后的最⾼⼯资,最低⼯资,平均⼯资,male的平均⼯资,female的平均⼯资等//全公司的平均⼯资var avgall = Aftereat.map(function(value) {return value.salary;}).reduce(function(previous, current, index, array) {return previous + current;}) / Aftereat.length;//男员⼯的平均⼯资Aftereat.filter(function(value) {return value.gender == 'male'}).map(function(value) {return value.salary;}).reduce(function(previous, current, index, array) {return previous + current;}) / Aftereat.filter(function(value) {return value.gender == 'male'}).length;//⼥员⼯的平均⼯资Aftereat.filter(function(value) {return value.gender == 'female'}).map(function(value) {return value.salary;}).reduce(function(previous, current, index, array) {return previous + current;}) / Aftereat.filter(function(value) {return value.gender == 'female'}).length;//收购之后最⾼⼯资Math.max.apply(null, Aftereat.map(function(value) {return value.salary;}))//收购之后最低⼯资Math.min.apply(null, Aftereat.map(function(value) {return value.salary;}))//原始⽅法如下var arrsalary = []for (var i = 0; i < Aftereat.length; i++) {arrsalary.push(Aftereat[i].salary)}var malesalary = []var femalesalary = []for (var i = 0; i < Aftereat.length; i++) {if (Aftereat[i].gender == 'male') {malesalary.push(Aftereat[i].salary)} else if (Aftereat[i].gender == 'female') {femalesalary.push(Aftereat[i].salary)} else {console.log("性别⽆法识别亲");}}var avgmalevar avgfemalefunction avg(dataIntArr) {var avg = 0;for (var i = 0; i < dataIntArr.length; i++) {avg += parseFloat(dataIntArr[i]);}return avg / dataIntArr.length;}avg(arrsalary) avg(malesalary) avg(femalesalary)var topsalary = 0var summarysalary = 0var bottomsalary = 99999999999for (var i = 0; i < arrsalary.length; i++) {summarysalary += arrsalary[i];if (arrsalary[i] > topsalary) {topsalary = arrsalary[i]}if (arrsalary[i] < bottomsalary) {bottomsalary = arrsalary[i]}}var avgall = summarysalary / arrsalary.length console.log(bottomsalary); console.log(topsalary);console.log(summarysalary);console.log(avgall);console.log(avg(arrsalary)); //-------全员⼯平均⼯资console.log(avg(malesalary)); //-------男员⼯平均⼯资console.log(avg(femalesalary)); //-------⼥员⼯平均⼯资//Step5:找出收购后⼯资⾼于8000的员⼯姓名和电话号码,按薪⽔从⾼到低排序function sortBy(filed) {return function(a, b) {return b[filed] - a[filed]}}Aftereat.sort(sortBy("salary"))var arrmorethan8000 = new Array();var UserArray = function(name, phone) { = name;this.phone = phone;};UserArray.add = function(name, phone) {return new UserArray(name, phone);};for (var i = 0; i < Aftereat.length; i++) {if (Aftereat[i].salary > 8000) {arrmorethan8000.push(UserArray.add(Aftereat[i].name, Aftereat[i].phone)) }}arrmorethan8000var MMM = Aftereat//Step6:找出收购前后⼯资涨幅最⾼的员⼯姓名和电话号码,以及涨幅的百分⽐for (var i = 0; i < MMM.length; i++) {if (MMM[i].oldsalary != undefined) {MMM[i].salaryrise = MMM[i].salary - MMM[i].oldsalary;MMM[i].percentrise = MMM[i].salaryrise / MMM[i].oldsalary * 100;} else {MMM.splice(i, 1)}}function sortBy(filed) {return function(a, b) {return b[filed] - a[filed]}}MMM.sort(sortBy("percentrise"))//Step7:找出收购后重名最多的三个姓名,统⼀出他们的平均年龄var tempObj = {};var LLL = Aftereatfor (var i = LLL.length - 1; i >= 0; i--) {if (tempObj[LLL[i].name]) { // 得到元素出现的次数,并组成objtempObj[LLL[i].name] = tempObj[LLL[i].name] + 1;} else {tempObj[LLL[i].name] = 1;}}var mostVal;for (var key in tempObj) { // 从对象中得到数组中出现最多的元素if (!mostVal) {mostVal = key;} else if (tempObj[mostVal] < tempObj[key]) {mostVal = key;}}delete tempObj.mostValvar name = []for (var i = 0; i < Aftereat.length; i++) {if (Aftereat[i].name == mostVal) {name.push(Aftereat[i].age)}}avg(name) 作业要求var BaiduUsers = [], WechatUsers = [];var User = function(id, name, phone, gender, age, salary) {this.id = id; = name;this.phone = phone;this.gender = gender;this.age = age;this.salary = salary;};User.create = function(id, name, phone, gender, age, salary) {return new User(id, name, phone, gender, age, salary);};BaiduUsers.push(User.create(1, 'tommy', '1111','male', 18, 10000));BaiduUsers.push(User.create(2, 'jerry', '2222','male', 28, 10000));BaiduUsers.push(User.create(3, 'raobin','3333','female', 14, 1200));BaiduUsers.push(User.create(4, 'binbin','4444','male', 23, 9800));BaiduUsers.push(User.create(5, 'arthur','5555','female', 22, 10000));WechatUsers.push(User.create(1, 'tommy', '1111','male', 20, 40000));WechatUsers.push(User.create(2, 'allen', '6666','male', 34, 15800));WechatUsers.push(User.create(3, 'raobin','3333','female',16, 2300));WechatUsers.push(User.create(4, 'harvey','7777','male',30, 29800));WechatUsers.push(User.create(5, 'yuyu', '8888','female',27, 7000));Wechat收购Baidu,电话号码相同的⼈当作是同⼀个⼈,合并后salary相加,其他属性保留Wechat的数据,新的Baidu的员⼯重新⽣成id,salary涨幅20%统计收购后的员⼯平均⼯资,最⾼⼯资,最低⼯资,male的平均⼯资,female的平均⼯资找出收购后⼯资⾼于8000的员⼯姓名和电话号码,按薪⽔从⾼到低排序找出收购前后⼯资涨幅最⾼的员⼯姓名和电话号码,以及涨幅的百分⽐找出收购后重名最多的三个姓名,统⼀出他们的平均年龄。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、写一个二分搜索法算法的代码,一个冒泡排序的代码,写一个杨辉三角的代码,并认真理解代码,这个很重要。
2、求二进制[用递归],用递归的方式实现二分搜索法。
3、用java编写程序输出1,2……n这n个自然数,要求用递归算法
4、求阶乘由用户输入一个数,求这个数的阶乘并输出(用两种方式实现,提示:可使用递归的方法)
5、在数组中的某个位置插入一个任意数
题目:已知有一个整型数组,原始长度为6,现在数组中已经放置了5个无素。
要求能够根据用户的需求在数组的某个位置插入用户输入的数字。
如图:
6、随机生成50个数字(整数),每个数字的范围是[10,50]统计每个数字出现的次数以及出现次数最多的数字与它的个数,最后将每个数字及其出现次数打印出来,如果某个数字出现次数为0,则不要打印它,打印时按按照数字的升序排列。
7、一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
8、两个乒乓球队进行比赛,各出三人。
甲队为a,b,c三人,乙队为x,y,z三人。
已抽签决定比赛名单。
有人向队员打听比赛的名单。
a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。
9、题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。
问第4个人岁数,他说比第3个人大2岁。
问第三个人,又说比第2人大两岁。
问第2个人,说比第一个人大两岁。
最后问第一个人,他说是10岁。
请问第五个人多大?
* 1.程序分析:利用递归的方法,递归分为回推和递推两个阶段。
要想知道第五个人岁数,需知道第四人的岁数,
* 依次类推,推到第一人(10岁),再往回推。
10、求1+2!+3!+...+20!的和.
11、使用所学栈的思想,完成下面的需求:
A、首先让用户输入一个字符串,然后在控制台把字符串逆输出来,比如:用户输入world,控制台输出dlrow。
B、让用户输入一个符合某种规则的字符串:此字符串中充许包括一些分隔符,但是必须要保证此字符串中的分隔符是成对出现的,如果不成对,程序显示用户所输入的字符串不符合规则。
比如用户所输入的字符串是a{b[c(d)e]}此字符串是符合规则的。
但是如果是a{b[c]不是符合规则的,因为前后的分隔符没有相互匹配,并提示是那个分隔符没有匹配项。
请从里面选择1/2的题目做。