还剩9页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
第一部份数据结构
一、是非判断题(本题共分,每小题各分)101(对于下面给出的论述,你认为正确,请在小题后的括号中填入符号否则,填入符号)4,X对算法进行分析的目的是为了提高算法的质量()
1.普通情况下,双向链表比单向链表要占用更多的存储空间()
2.将插入与删除操作限制在表的一端的线性表被称为堆栈()
3.彻底二叉树不一定是满二叉树,满二叉树一定是彻底二叉树()
4.利用二叉树的前序遍历序列和后序遍历序列一定可以构造出一棵二叉树()
5.邻接表中边结点数目为偶数的图一定是无向图()
6..拓扑排序不是检测有向图中是否存在回路的惟一方法()7采用折半查找的线性表只要求表中元素按值的大小有序罗列就可以()
8.对具有个元素的序列进行插入排序,排序的总趟数为()
9.n n-1o无论什么情况,快速排序法比其他排序法的时间效率都要高()
10.
二、填空题(本题共分,每小题各分)151若长度为的线性表采用顺序存储结构,当不溢出时,在其第个位置()插入一个
1.n iiwign+l新的数据元素之前需要挨次挪移()个元素的位置在非空双向循环链表中由指的链结点前面插入一个指的链结点的过程对应的语句依次为
2.q p()(空白处为一条语句)p-rlink=q;p-llink=q-llink;q-llink=p;在实际应用中,当堆栈的最大长度难以估计时,堆栈最好采用()存储结构
3.若是初始为空的队列的输入序列,则此时该队列的输出序列是(
4.a,b,c,d)o若具有个结点的二叉树采用二叉链表存储,则链表中有()个指针域存放着
5.n NULL已知二叉树的前序遍历序列为中序遍历序列为其后序遍历序列为(
6.ABDCEFG,DBCAFEG,)o采用“逐点插入法”建立序列()的二叉排序树后,在该二叉
7.54,28,16,34,73,62,95,60,26,43排序树中查找到数据元素时一共进行了()次元素之间的比较62在一个图中,所有顶点的度数之和等于所有边数的()倍
8.具有个顶点的有向图最多有()条边
9.n具有个顶点的无向连通图采用邻接矩阵表示,邻接矩阵中至少有()个非零元素
10.n.将数据元素挨次存放于一个一维数组中(设数组下标从开始),112,468,10,12,14,16,18,200然后采用折半查找方法查找元素被比较过的数组元素的下标挨次为(12,)o若一个待散列存储的线性表为()散列函数为()则
12.K=18,25,63,50,42,32,9,45,H k=k MOD9,与元素发生冲突的元素有()个18若对序列()采用泡排序法按元素值从小到大进行排序,则整个排序过程中进行的
13.1,2,534元素之间的比较次数为()o若对序列()采用选择排序法按字典顺序进行排序,则
14.tang,deng,an,wang,shi,bai,fang,liu第三趟排序结束时序列的状态是()设有个元素组成的序列,希翼尽快挑选出其中前个(仅挑出前个!)最大值元,
15.100001010在不改变已有算法结构的前提下,插入排序法、快速排序法、堆积排序法和泡排序法这种内排4序算法中,最合适的是()
三、综合题(本题共分,每小题各分)155证明具有个结点的非空满二叉树,其叶结点的数目为()
1.n n+1/2已知某带权连通图采用邻接矩阵存储,邻接矩阵以三元组表形式给出邻接矩阵下三角形部
2.份的元素(不包括主对角线上元素)对应的各三元组分别为),),()(()x5,2,4,53x217,p=stu1;A.student.age B.stul.age C.p-age D.*p.age在语言中,库函数的功能是
20.C fgetsstr,n,fp从中读取至多个字符到文件A.str nfp从文件中读取长度为的字符串存入指向的内存B.fp nstr从文件中读取长度不超过的字符串存入指向的内存C.fp n-1str从文件中读取个字符串存入指向的内存D.fp nstr
六、填空题本题共分,每小题各分153若运行以下程序时,从键盘输入表示回车下同,则下面程序的运行结果
1.2473CR vCR是oinclude stdio.hmain{int c;whilec=getchar!=nswitch©2{case0:case1:putcharc+4;case2:putcharc+4;break;case3:putcharc+3;case4:putcharc+2;break;printfC rT:当从键盘上输入以后,下面程序的运行结果是
2.18vCR omain{int x,u,i,j,a
[8];%scanf d”,x;i=0do{u=x/2;a=x%2;;i++x=u;}whilex=1;;;forj=i-1j=0H printf%dtf a[j]f以下程序的运行结果是
3.main{increment;incrementQ;increment;increment{static inty=0;;y+=1printft%df,,y;}下面程序的运行结果是
4.include stdio.hmain{static chara[]=fiLanguage programechar*p1,*p2;int i;p1=a;p2=b;fori=0;i=7;i++if*p1+i==*p2+iprintft%c,ff以下程序用以输出结构体变量所占内存单元的字节数,请在程序的空白处横线上方填上
5.bt适当内容struct ps{double i;char arr
[20];;main{struct psbt;;printfi^bt sizeis:%d}
七、程序设计题本题分5所谓“水仙花数〃是指一个三位数,其各位数字立方之和等于该数本身例如是一个“水153仙花数”,因为请编写输出以内所有〃水仙花数〃的程序13+53+33=1531000
八、程序设计题本题分10请编写一语言程序,该程序实现对从键盘输入一些字符,逐个把它们送到磁盘上去直到输C入一个#为止请分别画出该连通图所有可能的最小生成树3,1,6,3,2,8,4,1,9,4,2,4,4,3,6,5,1,5,4,2已知散列函数为散列地址空间为并且采用线性探测再散列法处
3.Hkey=key%3MOD11,[
0..10],理冲突请画出在初始为空的散列表中挨次插入以后散列表的状态22,41,53,8,46,30,1,31,66
四、算法设计题本题分10结点的祖先定义为从根结点到该结点的所有分支上经过的结点己知非空二叉排序树采用二叉链表存储结构,链结点构造为根结点指针为Ichild datarchild,请写一非递归算法,挨次打印数据信息为的结点的祖先结点设结点的数据信息分别为To item整数,并且假设该结点的祖先结点存在第二部份语言程序设计C
五、单项选择题本题共分,每小题各分201一个语言程序是由
1.Co一个主程序和若干个子程序组成函数组成A.B.若干过程组成若干子程序组成C.D.当把以下四个表达式用作语句的控制表达式时,其中有一个选项与其他三个选项的含义不同,
2.if这个选项是A.k%2B,k%2==1C.k%2!=0D.!k%2==1下列运算符中优先级最低的是
3.oA.+B.C.:D.!=以下能够正确地定义整型变量和并且为其赋初值的语句是
4.a,b c,5oA-int a=b=c=5;B.int ab,c=5;5C.a=5,b=5,c=5;D.a=b=c=5;若有说明则能够正确使用语言库函数的赋值语句是
5.double y=
0.5,z=
1.5;int x=10;C OA.z=expy+fabsx;B.y=log10y+powy;C.z=sqrty-z;D.x=intatan2doublex,y+expy-
0.2;以下对二维数组的正确说明是
6.aoA.int a
[3][];B.floata3,4;C.double a
[1]
[4];D.float a34;若有条件表达式则以下表达式中能够彻底等价于表达式的是
7.expa++:b-,expoA.exp==0B.exp!=0C.exp==1D.exp!=1以下不正确的语句形式是
8.ifoA.ifaba!=b;B.ifa==b a+=b;%%C.ifavb{a++;b++;}D.ifa!=b scanf d”,a elsescanf d”,b;若有以下语句
9.int x=3;%do{printf d n”,x-=2;}while!-x;则上面程序段o输出结果是输出结果是和输出结果是和是死循环A.1B.30C.1-2D.以下循环语句的执行次数是
10.foroforx=0,y=0;y=123xv4;x++;执行次执行次是无限循环循环次数不定A.4B.3C.D.设有如下程序段:;
11.t=0whileprintf*{;()t++if t3break;)下面给出的个描述中,正确的是()4其中循环控制表达式是不合法的其中循环控制表达式与等价A.B.0其中循环控制表达式与等价以上说法都不对C.O D.语言允许函数值类型缺省定义,此时该函数值隐含的类型是(
12.C)o类型类型类型类型A.int B.float C.long D.double对于语言而言,以下正确的描述是(
13.C)o函数的定义可以嵌套,但函数的调用不可以嵌套A.函数的定义不可以嵌套,但函数的调用可以嵌套B.函数的定义和函数的调用都不可以嵌套C.函数的定义和函数的调用都可以嵌套D.以下关于宏替换的叙述中,错误的是()
14.宏替换不占用运行时间宏名无类型A.B.宏替换只是字符替换宏名必须用大写字母表示C.D.若已有定义且和均已指向变量则下面不能正确执行的赋值语句是
15.intk=2;int*p1,*p2;p1p2k,()o()A.k=*p1+*p2;B.p1=p2;C.p2=k;D.k=*p1**p2;若已有定义则对数组的第行第列(假设已正确说明并已赋值)元素地址
16.int a
[2]
[3];a ij i,j的正确引用为()o()()()A.*a+j B.a+j C.a+i D.*a+j若有说明则下面给出的个程序段中,正确的是()
17.int*p,m=5,n;4A.p=n;B.p=n;()scanfC%d,p scQnf%cT,*pC.scanfi%dff pD.p=n;f*P=n;*P=m;已有函数,为了让函数指针变量p指向函数max,正确的赋值方法是()
18.maxa,b oA.p=max;B.*p=max;C.p=maxa,b;D.*p=maxa,b;以下对结构体变量中成员的不正确引用的是
19.stu1agestruct student{int age;int num;}stu1,*p;p=stu1;()在语言中,库函数()的功能是A.student.age B.stul.age C.p-age D.*p.age
20.C fgetsstr,n,fp()从中读取至多个字符到文件A.str nfp从文件中读取长度为的字符串存入指向的内存B.fp nstr从文件中读取长度不超过的字符串存入指向的内存C.fp n-1str从文件中读取个字符串存入指向的内存D.fp nstr
六、填空题本题共分,每小题各分153若运行以下程序时,从键盘输入表示回车下同,则下面程序的运行结果是
1.2473vCR vCR#include stdio.hmain{int c;whilec=getchar!=’nfswitch©2%case0:case1:putcharc+4;case2:putcharc+4;break;case3:putcharc+3;default:putcharc+2;break;nff:}当从键盘上输入以后,下面程序的运行结果是
2.18vCRmain{int x,u,i,j,a
[8];scanfii%dff xfi=0;do{u=x/2;a=x%2;;i++x=u;}whilex=1;forj=i-1;j=0;j-printf%d,a[j]}以下程序的运行结果是
3.omain{increment;increment;increment;}increment{static inty=0;;y+=1}下面程序的运行结果是
4.o#include stdio.hmain{Static charci[]=^Language,b[]=^programechar*p1,*p2;int i;p1=a;p2=b;fori=0;i=7;i+4-if*p1+i==*p2+iprintfi%c,f^pl+i;}以下程序用以输出结构体变量所占内存单元的字节数,请在程序的空白处横线上方填上
5.bt适当内容struct ps{double i;char arr
[20];;main{struct psbt;几”,;pHntfbt sizeis:%d
七、程序设计题本题分5所谓〃水仙花数〃是指一个三位数,其各位数字立方之和等于该数本身例如是一个〃153水仙花数”,因为请编写输出以内所有“水仙花数〃的程序13+53+33=1531000#include stdio.hint mainvoidinti,j,k;for i=1;i=9;i++for j=0;j=9;j++for k=0;k=9;k++if+j*j*j+k*k*k==100*i+10*j+k}
八、程序设计题本题分10请编写一语言程序,该程序实现对从键盘输入一些字符,逐个把它们送到磁盘上去,直到输C入一个#为止程序源代码main{FILE*fp;char ch,filename
[10];exitO;ch=getchar;ch=getchar;whilech!=#{fputcch,fp;putcharch;ch=getchar;fclosefp;第一部份数据结构
一、是非判断题对算法进行分析的目的是为了提高算法的质量()
1..普通情况下,双向链表比单向链表要占用更多的存储空间()2将插入与删除操作限制在表的一端的线性表被称为堆栈()
3.彻底二叉树不一定是满二叉树,满二叉树一定是彻底二叉树()
4.利用二叉树的前序遍历序列和后序遍历序列一定可以构造出一棵二叉树(已知前序和中序,
5.恢复二叉树)邻接表中边结点数目为偶数的图一定是无向图()无向图一定是偶数,单偶数不一定是无
6.向图拓扑排序不是检测有向图中是否存在回路的惟一方法()
7..采用折半查找的线性表只要求表中元素按值的大小有序罗列就可以()二叉树8对具有个元素的序列进行插入排序,排序的总趟数为()
9.n n-1o无论什么情况,快速排序法比其他排序法的时间效率都要高()
10.
二、填空题若长度为的线性表采用顺序存储结构,当不溢出时,在其第个位置()插入一个
1.n iisign+l新的数据元素之前需要挨次挪移()个元素的位置n-i+1在非空双向循环链表中由指的链结点前面插入一个指的链结点的过程对应的语句依次为
2.q p()(空白处为一条语句)p-rlink=q;p-llink=q-llink;q-llink=p;q-llink-rlink-p在实际应用中,当堆栈的最大长度难以估计时,堆栈最好采用(链式)存储结构
3.若是初始为空的队列的输入序列,则此时该队列的输出序列是()
4.a,b,c,d若具有个结点的二叉树采用二叉链表存储,则链表中有()个指针域存放着
5.n NULLo已知二叉树的前序遍历序列为中序遍历序列为其后序遍历序歹为
6.ABDCEFG,DBCAFEG,U()DCBFGEA o采用“逐点插入法”建立序列()的二叉排序树后,在该二叉
7.54,28,16,34,73,62,95,60,26,43排序树中查找到数据元素时一共进行了()次元素之间的比较
623.在一个图中,所有顶点的度数之和等于所有边数的()倍82具有个顶点的有向图最多有()条边
9.n具有个顶点的无向连通图采用邻接矩阵表示,邻接矩阵中至少有()个非零元素
10.n将数据元素挨次存放于一个一维数组中(设数组下标从开始),然
11.246810,12,14,16,18,200后采用折半查找方法查找元素被比较过的数组元素的下标挨次为()12,o若一个待散列存储的线性表为()散列函数为()则
12.K=18,25,63,50,42,32,9,45,H k=k MOD9,与元素发生冲突的元素有()个183若对序列()采用泡排序法按元素值从小到大进行排序,则整个排序过程中进行的
13.125,3,4元素之间的比较次数为()4若对序列()采用选择排序法按字典顺序进行排序,则
14.tang,deng,an,wang,shi,bai,fang,liu第三趟排序结束时序列的状态是()o设有个元素组成的序列,希翼尽快挑选出其中前个(仅挑出前个!)最大值元,
15.100001010在不改变已有算法结构的前提下,插入排序法、快速排序法、堆积排序法和泡排序法这种内4排序算法中,最合适的是(堆排序)
三、综合题本题共分,每小题各分155证明具有个结点的非空满二叉树,其叶结点的数目为
1.n n+1/2取个中间变量表层数k已知某带权连通图采用邻接矩阵存储,邻接矩阵以三元组表形式给出邻接矩阵下三角形部
2.份的元素不包括主对角线上元素对应的各三元组分别为2,1,7,3,1,6,3,2,8,4J9,4,2,4,请分别画出该连通图所有可能的最小生成树4,3,6,5,10,5,2,4,5,3,oc,5,4,2或者所以不止一个4-25-2已知散列函数为散列地址空间为并且采用线性探测再散列
3.Hkey=key%3MOD11,[
0..10],法处理冲突请画出在初始为空的散列表中挨次插入以后散列表的状22,41,53,8,46,30,1,31,66态
四、算法设计题本题分10结点的祖先定义为从根结点到该结点的所有分支上经过的结点已知非空二叉排序树采用二叉链表存储结构,链结点构造为根结点指针为Ichild datarchild,请写一非递归算法,挨次打印数据信息为计的结点的祖先结点设结点的数据信息分别To em为整数,并且假设该结点的祖先结点存在先找父节点再找父节点打印完设为再找其父节点只要有关系就靠这关系找!item p,p p,第二部份语言程序设计C
五、单项选择题本题共分,每小题各分201一个语言程序是由
1.C a一个主程序和若干个子程序组成函数组成A.B.若干过程组成若干子程序组成C.D.当把以下四个表达式用作语句的控制表达式时,其中有一个选项与其他三个选项的含义不
2.if同,这个选项是aA.k%2B.k%2==1C.k%2!=0D.!k%2==1下列运算符中优先级最低的是
3.cA.+B.C.:D.!=以下能够正确地定义整型变量和并且为其赋初值的语句是
4.a,b c,5aA.int a=b=c=5;B.int a,b,c=5;C.a=5,b=5,c=5;D.a=b=c=5;若有说明则能够正确使用语言库函数的赋值语句是
5.double y=
0.5,z=
1.5;int x=10;C OA.z=expy+fabsx;B.y=log10y+powy;C.z=sqrty-z;D.x=intatan2doublex,y+expy-
0.2;以下对二维数组的正确说明是
6.a cA.inta
[3][];B.float a3,4;C.double a
[1]
[4];D.float a34;若有条件表达式则以下表达式中能够彻底等价于表达式的是
7.expa++:b-,expA.exp==0B.exp!=0C.exp==1D.exp!=1以下不正确的语句形式是
8.if oA.ifaba!=b;B.ifa==b a+=b;;;%%C.ifavb{a++b++}D.ifa!=b scanf“d”,a elsescanfd\b;若有以下语句
9.int x=3;do{printfu%dn-=2;}while!-x;则上面程序段o输出结果是输出结果是和输出结果是和是死循环A.1B.30C.1-2D.以下循环语句的执行次数是
10.foroforx=0,y=0;y=123x4;x++;执行次执行次是无限循环循环次数不定A.4B.3C.D.设有如下程序段
11.t=0;whileprintf**{;t++ift3break;}下面给出的个描述中,正确的是4其中循环控制表达式与等价其中循环控制表达式是不合法的B.A.以上说法都不对D.其中循环控制表达式与等价C.O此时该函数值隐含的类型是语言允许函数值类型缺省定义,
12.C o类型类型类型类型A.int B.float C.long D.double对于语言而言,以下正确的描述是
13.C o函数的定义可以嵌套,但函数的调用不可以嵌套A.函数的定义不可以嵌套,但函数的调用可以嵌套B.函数的定义和函数的调用都不可以嵌套C.函数的定义和函数的调用都可以嵌套D.以下关于宏替换的叙述中,错误的是
14.o宏替换不占用运行时间宏名无类型A.B.宏替换只是字符替换宏名必须用大写字母表示C.D.若已有定义「且和均已指向变量则下面不能正确执行的赋值语
15.intk=2;int*p1p2;p1p2k,句是A.k=*p1+*p2;B.p1=p2;C.p2=k;D.k=*p1**p2;若已有定义:则对数组的第行第歹!假设已正确说明并已赋值元素地址
16.int a
[2]
[3];a ij ijJ的正确引用为oA.*a+j B.a+j C.a+i D.*a+jA.p=n;B.p=n;scanf%d”,p;scanf%d,/p;C.scanf“%d”,p;D.p=n;;P=m;*P=n若有说明则下面给出的个程序段中,正确的是
17.int*p,m=5,n;4已有函数为了让函数指针变量指向函数正确的赋值方法是
18.maxa,b,p max,A.p=max;B.*p=max;C.p=maxa,b;D.*p=maxa,b;以下对结构体变量中成员的不正确引用的是
19.stu1agestruct student{int age;int num;}stu1,*p;。
个人认证
优秀文档
获得点赞 0