1算法分析的目的是(
数据结构专升本模拟题及参考答案
作业题(一)一、单项选择题1. 从逻辑上可以把数据结构分为()两大类。
A.动态结构、静态结构 B.顺序结构、链式结构C.线性结构、非线性结构 D.初等结构、构造型结构2. 链表不具有的特点是()A.插入、删除不需要移动元素 B.可随机访问任一元素C.不必事先估计存储空间 D.所需空间与线性长度成正比3.下面程序段的时间复杂度的量级为()。
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所指向的结点之前插入一个新结点,则需要相继修改()个指针域的值。
A.2 B.3C.4 D.65、一个顺序存储线性表的第一个元素的存储地址是90,每个元素的长度是2,则第6个元素的存储地址是()。
A.98 B.100C.102 D.1066、判定一个栈s(最多元素为m0)为空的条件是()。
A.s-〉top! =0 B.s-〉top= =0C.s-〉top! =m0 D.s-〉top= =m07、循环队列用数组A[m](下标从0到m-1)存放其元素值,已知其头尾指针分别是front和rear,则当前队列中的元素个数是()。
A.(rear-front+m)%m B.rear-front+1C.rear-front-1 D. rear-front8、设有两个串S1与S2,求串S2在S1中首次出现位置的运算称作()。
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))的结果是()。
1算法分析的目的是(
---------------------------------------------------------------最新资料推荐------------------------------------------------------1算法分析的目的是(1. 算法分析的目的是( ) A. 找出数据结构的合理性B. 找出算法中输入和输出之间的关系C. 分析算法的易懂性和可靠性 D. 分析算法的效率以求改进【参考答案】 D 2. 在单链表中,增加头结点的目的是( ) A. 方便运算的 B.使单链表至少有一个结点 C. 标识表结点中首结点的位置 D.说明单链表是线性表的链式存储实现【参考答案】 A 3. 软件开发离不开系统环境资源的支持,其中必要的测试数据属于( ) A. 硬件资源 B. 通信资源 C. 支持软件 D. 辅助资源【参考答案】 D 4. 分布式数据库系统不具有的特点是( ) A. 数据分布性和逻辑整体性 B. 位置透明性和复制透明性 C. 分布性D. 数据冗余【参考答案】 D 5. 下列数据模型中,具有坚实理论基础的是( ) A. 层次模型 B. 网状模型 C. 关系模型 D. 以上 3 个都是【参考答案】 C 6. 栈底到栈顶依次存放元素 A、 B、 C、 D,在第五个元素 E 入栈前,栈中元素可以出栈,则出栈序列可能是( ) A. ABCED B. DCBEA C. DBCEA D. CDABE 【参考答案】 B 7. 在结构化程序设计思想提出之前,在程序设计中曾强调程序的效率,现在,与程序的效率相比,人们更重视程序的( ) A. 安全性 B. 一致性 C. 可理解性 D. 合理性【参考答案】 C 8. 软件开发的结构化生命周期方法将软件生命周期划分成( ) A. 定义、开发、运行1 / 14维护 B. 设计阶段、编程阶段、测试阶段 C. 总体设计、详细设计、编程调试 D. 需求分析、功能定义、系统设计【参考答案】 A 9. 在数据管理技术发展过程中,文件系统与数据库系统的主要区别是数据库系统具有( ) A. 特定的数据模型B. 数据无冗余C. 数据可共享D. 专门的数据管理软件【参考答案】 A 10. 实体是信息世界中广泛使用的一个术语,它用于表示( ) A. 有生命的事物 B. 无生命的事物 C. 实际存在的事物 D. 一切事物【参考答案】 C 11. 下面叙述中正确的是() A. C 语言编译时不检查语法 B. C 语言的子程序有过程和函数两种 C. C 语言的函数可以嵌套定义 D.C 语言的函数可以嵌套调用【参考答案】D 12. 以下叙述中正确的是() A. 构成 C 程序的基本单位是函数 B. 可以在一个函数中定义另一个函数 C. main()函数必须放在其他函数之前 D. 所有被调用的函数一定要在调用之前进行定义【参考答案】 A 13. 下列程序段的输出结果是() int a=1234; float b=123. 456; double c=12345. 54321; printf( %2d, %2.1f, %2. 1f , a, b, c) ; A. 无输出 B. 12,123. 5, 12345. 5 C. 1234, 123. 5, 12345. 5 D. 1234, 123.4, 1234. 5 【参考答案】 C 14. 设有以下程序段 int x=0, s=0; while(!x!=0) s+=++x; printf( %d , s) ; 则() A.运行程序段后输出 0 B. 运行程序段后输出 1 C. 程序段中的控制表达式是非法的 D. 程序段执行无限次【参考答案】 B---------------------------------------------------------------最新资料推荐------------------------------------------------------15. 以下程序段的描述,正确的是() x=-1; do{x=x*x; } while(!x) ; A. 是死循环 B. 循环执行两次C. 循环执行一次D. 有语法错误【参考答案】 C 16. 下列程序执行后的输出结果是() void func1(int i) ; voidfunc2(int i) ; char st[] = hello, friend! ; voidfunc1(int i) { printf( %c , st[i] ) ; if(i3) {i+=2;func2(i) ; } } void func2(int i) { printf( %c , st[i]) ; if(i3) {i+=2; func1(i) ; } } main(){ int i=0; func1(i) ; printf( \ n ) ; } A. hello B. helC. hloD. hlm 【参考答案】 C 17. 以下程序的输出结果是() #include stdio. h void prt(int *x, int*y, int*z){ printf( %d, %d, %d\ n , ++*x, ++*y, *(z++) ) ; } main(){ int a=10, b=40, c=20; prt(a, b, c) ; prt(a, b, c) ; }A. 11, 42, 31B. 11, 41, 20 12, 22, 41 12,42, 20 C. 11, 21, 40 D. 11, 41, 21 11, 21, 21 12, 42, 22 【参考答案】 B 18. 下列程序执行后的输出结果是() main() { int a[3][3] , *p, i; p=a[0][0] ; for(i=1; i9; i++) p[i] =i+1; printf( %d\ n ,a[1][2] ) ; } A. 3 B. 6 C. 9 D. 随机数【参考答案】 B 19. 下列程序执行后的输出结果是() main(){ char arr[2][4] ; strcpy(arr, you ) ; strcpy(arr3 / 14[1] , me ) ; arr[0][3] = ; printf( s\ n ,arr) ; } A. youme B. you C. me D. err 【参考答案】A 20. 有以下程序 int f(int n) { if(n==1) return 1;else return f(n-1) +1; } main() { int i, j=0;for(i=1; i3; i++) j+=f(i) ; printf( %d\ n , j) ; } 程序运行后的输出结果是() A. 4 B. 3 C. 2 D. 1 【参考答案】 B 21. 以下对结构体类型变量的定义中,不正确的是() A. typedef struct aa B. #define AA structaa { int n; AA{ int n; float m; float m; } AA; } tdl; AA tdl;C. structD. struct { int n; { int n; float m; float m; }aa; } tdl; struct aa tdl;【参考答案】 C 22. 若有以下程序 #include stdio. h voidf(int n) ; main() { void f(int n) ; f(5) ; }void f(int n) { printf( %d\ n , n) ; } 则以下叙述中不正确的是() A. 若只在主函数中对函数 f 进行说明,则只能在主函数中正确调用函数 f B. 若在主函数前对函数 f 进行说明,则在主函数和其后的其他函数中都可以正确调用函数 fC. 对于以上程序,编译时系统会提示出错信息:提示对 f 函数重复说明 D. 函数 f 无返回值,所以可用void 将其类型定义为无返回值型【参考答案】 C 23. 有以下---------------------------------------------------------------最新资料推荐------------------------------------------------------程序 #include stdio. h main() { FILE *fp; int i=20,j=30, k, n; fp=fopen( d1. dat , w ) ; fprintf(fp, %d\n , i) ; fprintf(fp, %d\n , j) ; fclose(fp) ; fp=fopen( d1. dat , r ) ; fscanf(fp, %d%d , k, n) ; printf( %d%d\ n , k, n) ; fclose(fp) ; } 程序运行后的输出结果是() A. 20 30 B. 20 50 C. 30 50 D. 3020 【参考答案】 A 24. 下面 4 个选项中,均是不合法的用户标识符的选项是() A. A P_0 B. float la0 _A C.b-a goto int D. _123 temp int 【参考答案】 C 25. 能正确表示逻辑关系:a10 或 a0 的 C 语言表达式是() A. a=10 or a=0 B. a=0| a=10 C. a=10 a=0 D. a=10|| a=0 【参考答案】D 26. 若有说明:int *p, m=5, n; 以下正确的程序段是() A. p=n; scanf( %d , p; ) B. p=n; scanf( %d , *p) C. scanf( %d , n) ; *p=n; D. p=n; *p=m; 【参考答案】 D 27. 有如下程序 main() { int a=2, b=-1, c=2; if(ab) if(b0)c=0; else c++; printf( %d\ n , c) ; } 该程序的输出结果是() A. 0 B. 1 C. 2 D. 3 【参考答案】C 28. 有一堆零件(100 到 200 之间),如果分成 4 个零件一组的若干组,则多 2 个零件;若分成 7 个零件一组,则多 3 个5 / 14零件;若分成 9 个零件一组,则多5 个零件。
计算机二级C++模拟试题及答案五
计算机二级C++模拟试题及答案五2015年计算机二级C++模拟试题及答案(五)2015年3月全国计算机等级考试已经结束,9月份的考试现在也可以复习了,下面应届毕业生网店铺专门为你准备了计算机等级考试的模拟试题,供你考前练习:一、选择题1.算法分析的目的是( )A.找出数据结构的合理性B.找出算法中输入和输出之间的关系C.分析算法的易懂性和可靠性D.分析算法的效率以求改进【参考答案】D2.在单链表中,增加头结点的目的是( )A.方便运算的实现B.使单链表至少有一个结点C.标识表结点中首结点的位置D.说明单链表是线性表的链式存储实现【参考答案】A3.软件开发离不开系统环境资源的支持,其中必要的测试数据属于( )A. 硬件资源B.通信资源C. 支持软件D.辅助资源【参考答案】D4.分布式数据库系统不具有的特点是( )A.数据分布性和逻辑整体性B.位置透明性和复制透明性C.分布性D.数据冗余【参考答案】D5.下列数据模型中,有坚实理论基础的是( )A. 层次模型B.网状模型C. 关系模型D.以上3个都是【参考答案】C6.栈底至栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是( )A.ABCEDB.DCBEAC.DBCEAD.CDABE【参考答案】B7.在结构化程序设计思想提出之前,在程序设计中曾强调程序的效率。
与程序的效率相比,人们更重视程序的( )A. 安全性B.一致性C. 可理解性D.合理性【参考答案】C8.软件开发的结构化生命周期方法将软件生命周期划分成( )A. 定义、开发、运行维护B.设计阶段、编程阶段、测试阶段C. 总体设计、详细设计、编程调试D.需求分析、功能定义、系统设计【参考答案】A9.数据管理技术发展过程中,文件系统与数据库系统的主要区别是数据库系统具有( )A.特定的数据模型B.数据无冗余C.数据可共享D.专门的数据管理软件【参考答案】A10.实体是信息世界中广泛使用的一个术语,它用于表示( )A.有生命的事物B.无生命的事物C.实际存在的事物D.一切事物【参考答案】C11.下列关于C++语言类的描述错误的是( )A.类用于描述事物的属性和对事物的操作B.类与类之间通过封装而具有明确的独立性C.类与类之间必须是平等的关系,而不能组成层次结构D.类与类之间可以通过一些方法进行通信和联络【参考答案】C12.以下叙述中正确的是( )A.构成C++语言程序的基本单位是类B.可以在一个函数中定义另一个函数C.main()函数必须放在其他函数之前D.所有被调用的函数一定要在调用之前进行定义【参考答案】A13.以下程序的输出结果是( )#includevoid reverse(int a[],int n){ int i,t;for(i=0;i{ t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}}void main(){ int b[10]={1,2,3,4,5,6,7,8,9,10};int i,s=0;reverse(b,8);for(i=6;i<10;i++)s+=b[i];cout<}A.22B.10C.34D.30【参考答案】A14.设有数组定义:char array[]=″China″;,则数组array所占的空间为( )A.4个字节B.5个字节C.6个字节D.7个字节【参考答案】C15.下面的哪个选项不能作为函数的返回类型?( )A.voidB.intC.newD.long【参考答案】C16.下面程序输出的结果是( )#includevoid main(){ int i;int a[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)cout<}A.1 5 9B.7 5 3C.3 5 7D.5 9 1【参考答案】B17.下列描述中哪个是正确的?( )A.私有派生的子类无法访问父类的成员B.类A的私有派生子类的派生类C无法初始化其祖先类A对象的属性,因为类A的成员对类C是不可访问的C.私有派生类不能作为基类派生子类D.私有派生类的所有子孙类将无法继续继承该类的成员【参考答案】B18.如果友元函数重载一个运算符时,其参数表中没有任何参数是说明该运算符是( )A.一元运算符B.二元运算符C.选项A和选项B都可能来源:考试大网D.重载错误【参考答案】D19.下列关于模板的说法正确的是( )A.模板的实参在任何时候都可以省略B.类模板与模板类所指的是同一概念C.类模板的参数必须是虚拟类型的D.类模板中的.成员函数全部都是模板函数【参考答案】D20.下面程序段的运行结果是( )void main(){int t,a,b,c;a=1;b=2;c=2;while(a{ t=a;a=b;b=t;c--;}cout<A.1,2,0B.2,1,0C.1,2,1D.2,1,1【参考答案】A21.若定义int k=7,x=12;,则能使值为3的表达式是( )A.x%=(k%=5)B.x%=(k-k%5)C.x&=k-k%5D.(x%=k)-(k%=5)【参考答案】D22.有以下结构体说明和变量的定义,且指针p指向变量a,指针q指向变量b。
1算法分析的目的是(
-、选择题1.算法分析的目的是( )A.找出数据结构的合理性B.找出算法中输入和输出之间的关系C. 分析算法的易懂性和可靠性D. 分析算法的效率以求改进【参考答案】D2.在单链表中,增加头结点的目的是( )A.方便运算的B.使单链表至少有一个结点C.标识表结点中首结点的位置D.说明单链表是线性表的链式存储实现【参考答案】A3.软件开发离不开系统环境资源的支持,其中必要的测试数据属于( )A.硬件资源B.通信资源C.支持软件D.辅助资源【参考答案】D4.分布式数据库系统不具有的特点是( )A.数据分布性和逻辑整体性B.位置透明性和复制透明性C.分布性D.数据冗余【参考答案】D5.下列数据模型中,具有坚实理论基础的是( )A.层次模型B.网状模型C.关系模型D.以上3个都是【参考答案】C6.栈底到栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是( )A.ABCEDB.DCBEAC.DBCEAD.CDABE【参考答案】B7.在结构化程序设计思想提出之前,在程序设计中曾强调程序的效率,现在,与程序的效率相比,人们更重视程序的( )A.安全性B.一致性C.可理解性D.合理性【参考答案】C8.软件开发的结构化生命周期方法将软件生命周期划分成( )A.定义、开发、运行维护B.设计阶段、编程阶段、测试阶段C.总体设计、详细设计、编程调试D.需求分析、功能定义、系统设计【参考答案】A9.在数据管理技术发展过程中,文件系统与数据库系统的主要区别是数据库系统具有( )A.特定的数据模型B.数据无冗余C.数据可共享D.专门的数据管理软件【参考答案】A10.实体是信息世界中广泛使用的一个术语,它用于表示( )A.有生命的事物B.无生命的事物C.实际存在的事物D.一切事物【参考答案】C11.下面叙述中正确的是()A.C语言编译时不检查语法B.C语言的子程序有过程和函数两种C.C语言的函数可以嵌套定义D.C语言的函数可以嵌套调用【参考答案】D12.以下叙述中正确的是()A.构成C程序的基本单位是函数B.可以在一个函数中定义另一个函数C.main()函数必须放在其他函数之前D.所有被调用的函数一定要在调用之前进行定义【参考答案】A13.下列程序段的输出结果是()int a=1234;float b=123.456;double c=12345.54321;printf(″%2d,%2.1f,%2.1f″,a,b,c);A.无输出B.12,123.5,12345.5C.1234,123.5,12345.5D.1234,123.4,1234.5 【参考答案】C14.设有以下程序段int x=0,s=0;while(!x!=0)s+=++x;printf(″%d″,s);则()A.运行程序段后输出0B.运行程序段后输出1C.程序段中的控制表达式是非法的D.程序段执行无限次【参考答案】B15.以下程序段的描述,正确的是()x=-1;do{x=x*x;}while(!x);A.是死循环B.循环执行两次C.循环执行一次D.有语法错误【参考答案】C16.下列程序执行后的输出结果是()void func1(int i);void func2(int i);char st[]=″hello,friend!″;void func1(int i){ printf(″%c″,st[i]);if(i<3){i+=2;func2(i);}}void func2(int i){ printf(″%c″,st[i]);if(i<3){i+=2;func1(i);}}main(){ int i=0;func1(i);printf(″\n″);}A.helloB.helC.hloD.hlm【参考答案】C17.以下程序的输出结果是()#include <stdio.h>void prt(int *x,int*y,int*z){ printf(″%d,%d,%d\n″,++*x,++*y,*(z++));} main(){ int a=10,b=40,c=20;prt(&a,&b,&c);prt(&a,&b,&c);}A.11,42,31B.11,41,2012,22,41 12,42,20C.11,21,40D.11,41,2111,21,21 12,42,22【参考答案】B18.下列程序执行后的输出结果是()main(){ int a[3][3],*p,i;p=&a[0][0];for(i=1;i<9;i++)p[i]=i+1;printf(″%d\n″,a[1][2]);}A.3B.6C.9D.随机数【参考答案】B19.下列程序执行后的输出结果是()main(){ char arr[2][4];strcpy(arr,″you″);strcpy(arr[1],″me″); arr[0][3]=′&′;printf(″s\n″,arr);}A.you&meB.youC.meD.err【参考答案】A20.有以下程序int f(int n){ if(n==1)return 1;else return f(n-1)+1;}main(){ int i,j=0;for(i=1;i<3;i++)j+=f(i);p rintf(″%d\n″,j);}程序运行后的输出结果是()A.4B.3C.2D.1【参考答案】B21.以下对结构体类型变量的定义中,不正确的是()A.typedef struct aaB.#define AA struct aa { int n; AA{ int n;float m; float m;} AA; } tdl;AA tdl;C.structD.struct{ int n; { int n;float m; float m;} aa; } tdl;struct aa tdl;【参考答案】C22.若有以下程序#include <stdio.h>void f(int n);main(){ void f(int n);f(5);}void f(int n){ printf(″%d\n″,n);}则以下叙述中不正确的是()A.若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数fB.若在主函数前对函数f进行说明,则在主函数和其后的其他函数中都可以正确调用函数fC.对于以上程序,编译时系统会提示出错信息:提示对f函数重复说明D.函数f无返回值,所以可用void将其类型定义为无返回值型【参考答案】C23.有以下程序#include <stdio.h>main(){ FILE *fp;int i=20,j=30,k,n;fp=fopen(″d1.dat″,″w″);fprintf(fp,″%d\n″,i);fprintf(fp,″%d\n″,j);fclose(fp);fp=fopen(″d1.dat″,″r″);fscanf(fp,″%d%d″,&k,&n);printf(″%d%d\n″,k,n);fclose(fp);}程序运行后的输出结果是()A.20 30B.20 50C.30 50D.30 20【参考答案】A24.下面4个选项中,均是不合法的用户标识符的选项是()A.A P_0B.float la0 _AC.b-a goto intD._123 temp int【参考答案】C25.能正确表示逻辑关系:“a≥10或a≤0”的C语言表达式是()A.a>=10 or a<=0B.a>=0|a<=10C.a>=10 &&a<=0D.a>=10||a<=0【参考答案】D26.若有说明:int *p,m=5,n;以下正确的程序段是()A.p=&n;scanf(″%d″,&p;)B.p=&n;scanf(″%d″,*p)C.scanf(″%d″,&n);*p=n;D.p=&n;*p=m;【参考答案】D27.有如下程序main(){int a=2,b=-1,c=2;if(a<b)if(b<0)c=0;else c++;printf(″%d\n″,c);}该程序的输出结果是()A.0B.1C.2D.3【参考答案】C28.有一堆零件(100到200之间),如果分成4个零件一组的若干组,则多2个零件;若分成7个零件一组,则多3个零件;若分成9个零件一组,则多5个零件。
2021级数据结构习题
2021级数据结构习题第1章绪论一、单选题:(从给定选项中选择最合适的答案)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.a和c.6.以下属于逻辑结构的是_______。
a、序列表B.哈希表C.线性表D.单链表7。
当计算机执行以下语句时,语句s的执行频率为__。
对于(i=l;i=i;j--)s;a.o(n)b.o(nlogn)c.o(n3)d.o(n2)8.算法分析的两个主要方面是_____。
a、空间复杂性和时间复杂性B.正确性和简洁性c.可读性和文档性d.数据复杂性和程序复杂性9.下面说法错误的是________.a、算法的原位工作意味着不需要添加额外的辅助空间b.在相同的规模n下,复杂度o(n)的算法在时间上总是优于复杂度o(2n)的算法c.所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界d.同一个算法,实现语言的级别越高,执行效率就越低10.如果序列表的第一个元素的存储地址为100,每个元素的长度为2,则第五个元素的地址为__。
a.110b.108c.100d.12011.从存储结构来看,数据结构可以分为两类。
a.动态结构、静态结构b.顺序结构、链式结构c.线性结构、非线性结构d.初等结构、构造型结构12.下列叙述中正确的是_____。
a、一个逻辑数据结构只能有一个存储结构。
b.数据的逻辑结构属于线性结构,存储结构属于非线性结构。
c、一个逻辑数据结构可以有多种存储结构,而各种存储结构不会影响数据处理的效率。
数据结构总复习题(JAVA)
一、填空题1. 栈和队列的共同特点是(只允许在端点处插入和删除元素)。
2. 在深度为5的满二叉树中,叶子结点的个数为(31)3. 算法分析的目的是(分析算法的效率以求改进)。
4. 由两个栈共享一个存储空间的好处是(节省存储空间,降低上溢发生的机率)。
5.串的长度是(串中所含字符的个数)。
6.设有两个串p和q,求q在p中首次出现位置的运算称做(模式匹配)7. N个顶点的连通图中边的条数至少为(N-1)。
8.N个顶点的强连通图的边数至少有(N)。
9.对长度为n的线性表进行顺序查找,在最坏情况下所需要的比较次数为(N)。
P25910.假设线性表的长度为n,则在最坏情况下,冒泡排序需要的比较次数为(n(n-1)/2)。
P29211. 在n个结点的单链表中要删除已知结点*p,需找到它的前驱结点的地址,其时间复杂度为O(n)。
12. 在具有n个单元的循环队列中,队满时共有 n-1 个元素。
13. 有向图G用邻接表矩阵存储,其第i行的所有元素之和等于顶点i的出度。
14. 用Dijkstra算法求某一顶点到其余各顶点间的最短路径是按路径长度递增的次序来得到最短路径的。
15. 在图形结构中,每个结点的前驱结点数和后续结点数可以任意多个。
16.在一个循环队列中,队首指针指向队首元素的前一个位置。
17.在顺序表中插入或删除一个元素,需要平均移动表中一半元素,具体移动的元素个数与表长和该元素在表中的位置有关。
18. 线性表中结点的集合是有限的,结点间的关系是一对一的。
19.数据结构被形式地定义为(D, R),其中D是数据元素的有限集合,R是D上的关系有限集合。
20. 线性结构中元素之间存在一对一关系,树形结构中元素之间存在一对多关系,图形结构中元素之间存在多对多关系。
21. 一个算法的效率可分为时间效率和空间效率。
22. 在顺序表中访问任意一结点的时间复杂度均为 O(1) ,因此,顺序表也称为随机存取的数据结构。
23. 在n个结点的单链表中要删除已知结点*p,需找到它的前驱结点的地址,其时间复杂度为O(n)。
二级C考前试卷
公共基础知识和C 语言程序设计 (考试时间90分钟,满分100分)一、选择题(每小题2分,共70分)下列各题A )、B )、C )、D )四个选项中,只有一个选项是正确的,请将正确的选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)算法分析的目的是______。
A )找出数据结构的合理性B )找出算法中输入和输出之间的关系C )分析算法的易懂性和可靠性D )分析算法的效率以求改进(2)n 个顶点的强连通图的边数至少有______。
A )n-1B )n(n-1)C )nD )n+1 (3)已知数据表A 中每个元素距其最终位置不远,为节省时间,应采用的算法是______。
A )堆排序B )直接插入排序C )快速排序D )直接选择排序 (4)用链表表示线性表的优点是______。
A )便于插入和删除操作 B )数据元素的物理顺序与逻辑顺序相同C )花费的存储空间较顺序存储少D )便于随机存取(5)下列不属于结构化分析的常用工具的是______。
A )数据流图B )数据字典C )判定树D )PAD 图 (6)软件设计的基本原理中,______是评价设计好坏的重要度量标准。
A )信息隐蔽性B )模块独立性C )耦合性D )内聚性(7)在软件工程中,白箱测试法可用于测试程序的内部结构。
此方法将程序看做是______。
A )循环的集合B )地址的集合C )路径的集合D )目标的集合(8)在数据管理技术发展过程中,文件系统与数据库系统的主要区别是数据库系统具有______。
A )数据无冗余B )数据可共享C )专门的数据管理软件D )特定的数据模型(9)分布式数据库系统不具有的特点是______。
A )分布式B )数据冗余C )数据分布性和逻辑整体性D )位置透明性和复制透明性(10)下列说法中,不属于数据模型所描述的内容的是______。
A )数据结构B )数据操作C )数据查询D )数据约束 (11)C 语言规定,程序中各函数之间______。
算法分析的目的是((精品)
---------------------------------------------------------------最新资料推荐------------------------------------------------------算法分析的目的是((精品)-、选择题 1. 算法分析的目的是( ) A. 找出数据结构的合理性 B. 找出算法中输入和输出之间的关系 C. 分析算法的易懂性和可靠性 D. 分析算法的效率以求改进【参考答案】 D 2. 在单链表中,增加头结点的目的是( ) A. 方便运算的 B. 使单链表至少有一个结点 C. 标识表结点中首结点的位置 D. 说明单链表是线性表的链式存储实现【参考答案】A 3. 软件开发离不开系统环境资源的支持,其中必要的测试数据属于( ) A. 硬件资源 B. 通信资源 C. 支持软件 D. 辅助资源【参考答案】 D 4. 分布式数据库系统不具有的特点是( ) A. 数据分布性和逻辑整体性 B. 位置透明性和复制透明性 C. 分布性 D. 数据冗余【参考答案】 D 5. 下列数据模型中,具有坚实理论基础的是( ) A. 层次模型 B. 网状模型 C. 关系模型 D. 以上 3 个都是【参考答案】C 6. 栈底到栈顶依次存放元素 A、 B、 C、 D,在第五个元素E 入栈前,栈中元素可以出栈,则出栈序列可能是( ) A. ABCED B. DCBEA C. DBCEA D. CDABE 【参考答案】 B 7. 在结构化程序设计思想提出之前,在程序设计中曾强调程序的效率,现在,与程序的效率相比,人们更重视程序的( ) A. 安全性 B. 一致性 C. 可理解性 D. 合理性【参考答案】 C 8.软件开发的结构化生命周期方法将软件生命周期划分成( )1 / 14A. 定义、开发、运行维护B. 设计阶段、编程阶段、测试阶段 C. 总体设计、详细设计、编程调试 D. 需求分析、功能定义、系统设计【参考答案】 A 9. 在数据管理技术发展过程中,文件系统与数据库系统的主要区别是数据库系统具有( ) A. 特定的数据模型 B. 数据无冗余 C. 数据可共享 D. 专门的数据管理软件【参考答案】 A 10. 实体是信息世界中广泛使用的一个术语,它用于表示( ) A. 有生命的事物 B. 无生命的事物 C. 实际存在的事物 D. 一切事物【参考答案】 C11. 下面叙述中正确的是() A. C 语言编译时不检查语法B. C 语言的子程序有过程和函数两种C. C 语言的函数可以嵌套定义 D. C 语言的函数可以嵌套调用【参考答案】 D 12. 以下叙述中正确的是() A. 构成 C 程序的基本单位是函数B. 可以在一个函数中定义另一个函数C. main()函数必须放在其他函数之前 D. 所有被调用的函数一定要在调用之前进行定义【参考答案】 A 13. 下列程序段的输出结果是() inta=1234; float b=123. 456; double c=12345. 54321; printf( %2d, %2. 1f, %2. 1f , a, b, c) ; A. 无输出B. 12, 123. 5, 12345. 5C. 1234, 123. 5, 12345. 5D. 1234, 123. 4, 1234. 5 【参考答案】 C 14. 设有以下程序段 int x=0, s=0; while(!x!=0) s+=++x; printf( %d , s) ; 则() A. 运行程序段后输出 0 B. 运行程序段后输出 1 C. 程序段中的控制表达式是非法的 D. 程序段执行无限次【参---------------------------------------------------------------最新资料推荐------------------------------------------------------考答案】 B 15. 以下程序段的描述,正确的是() x=-1;do {x=x*x; } while(!x) ; A. 是死循环 B. 循环执行两次 C. 循环执行一次 D. 有语法错误【参考答案】 C 16.下列程序执行后的输出结果是() void func1(int i) ;void func2(int i) ; char st[] = hello, friend! ; voidfunc1(int i) { printf( %c , st[i] ) ; if(i3) {i+=2;func2(i) ; } } void func2(int i) { printf( %c , st[i]) ; if(i3) {i+=2; func1(i) ; } } main(){ int i=0; func1(i) ; printf( \ n ) ; } A. hello B. helC. hloD. hlm 【参考答案】 C 17. 以下程序的输出结果是() #include stdio. h void prt(int *x, int*y, int*z){ printf( %d, %d, %d\ n , ++*x, ++*y, *(z++) ) ; } main(){ int a=10, b=40, c=20; prt(a, b, c) ; prt(a, b, c) ; }A. 11, 42, 31B. 11, 41, 20 12, 22, 41 12,42, 20 C. 11, 21, 40 D. 11, 41, 21 11, 21, 21 12, 42, 22 【参考答案】 B 18. 下列程序执行后的输出结果是() main() { int a[3][3] , *p, i; p=a[0][0] ; for(i=1; i9; i++) p[i] =i+1; printf( %d\ n ,a[1][2] ) ; } A. 3 B. 6 C. 9 D. 随机数【参考答案】 B 19. 下列程序执行后的输出结果是() main(){ char arr[2][4] ; strcpy(arr, you ) ; strcpy(arr3 / 14[1] , me ) ; arr[0][3] = ; printf( s\ n ,arr) ; } A. youme B. you C. me D. err 【参考答案】A 20. 有以下程序 int f(int n) { if(n==1) return 1;else return f(n-1) +1; } main() { int i, j=0;for(i=1; i3; i++) j+=f(i) ; printf( %d\ n , j) ; } 程序运行后的输出结果是() A. 4 B. 3 C. 2 D. 1 【参考答案】 B 21. 以下对结构体类型变量的定义中,不正确的是() A. typedef struct aa B. #define AA structaa { int n; AA{ int n; float m; float m; } AA; } tdl; AA tdl;C. structD. struct { int n; { int n; float m; float m; }aa; } tdl; struct aa tdl;【参考答案】 C 22. 若有以下程序 #include stdio. h voidf(int n) ; main() { void f(int n) ; f(5) ; }void f(int n) { printf( %d\ n , n) ; } 则以下叙述中不正确的是() A. 若只在主函数中对函数 f 进行说明,则只能在主函数中正确调用函数 f B. 若在主函数前对函数 f 进行说明,则在主函数和其后的其他函数中都可以正确调用函数 fC. 对于以上程序,编译时系统会提示出错信息:提示对 f 函数重复说明 D. 函数 f 无返回值,所以可用void 将其类型定义为无返回值型【参考答案】 C 23. 有以下---------------------------------------------------------------最新资料推荐------------------------------------------------------程序 #include stdio. h main() { FILE *fp; int i=20,j=30, k, n; fp=fopen( d1. dat , w ) ; fprintf(fp, %d\n , i) ; fprintf(fp, %d\n , j) ; fclose(fp) ; fp=fopen( d1. dat , r ) ; fscanf(fp, %d%d , k, n) ; printf( %d%d\ n , k, n) ; fclose(fp) ; } 程序运行后的输出结果是() A. 20 30 B. 20 50 C. 30 50 D. 3020 【参考答案】 A 24. 下面 4 个选项中,均是不合法的用户标识符的选项是() A. A P_0 B. float la0 _A C.b-a goto int D. _123 temp int 【参考答案】 C 25. 能正确表示逻辑关系:a10 或 a0 的 C 语言表达式是() A. a=10 or a=0 B. a=0| a=10 C. a=10 a=0 D. a=10|| a=0 【参考答案】D 26. 若有说明:int *p, m=5, n; 以下正确的程序段是() A. p=n; scanf( %d , p; ) B. p=n; scanf( %d , *p) C. scanf( %d , n) ; *p=n; D. p=n; *p=m; 【参考答案】 D 27. 有如下程序 main() { int a=2, b=-1, c=2; if(ab) if(b0)c=0; else c++; printf( %d\ n , c) ; } 该程序的输出结果是() A. 0 B. 1 C. 2 D. 3 【参考答案】C 28. 有一堆零件(100 到 200 之间),如果分成 4 个零件一组的若干组,则多 2 个零件;若分成 7 个零件一组,则多 3 个5 / 14零件;若分成 9 个零件一组,则多5 个零件。
算法分析与设计(习题答案)
算法分析与设计教程习题解答第1章 算法引论1. 解:算法是一组有穷的规则,它规定了解决某一特定类型问题的一系列计算方法。
频率计数是指计算机执行程序中的某一条语句的执行次数。
多项式时间算法是指可用多项式函数对某算法进行计算时间限界的算法。
指数时间算法是指某算法的计算时间只能使用指数函数限界的算法。
2. 解:算法分析的目的是使算法设计者知道为完成一项任务所设计的算法的优劣,进而促使人们想方设法地设计出一些效率更高效的算法,以便达到少花钱、多办事、办好事的经济效果。
3. 解:事前分析是指求出某个算法的一个时间限界函数(它是一些有关参数的函数);事后测试指收集计算机对于某个算法的执行时间和占用空间的统计资料。
4. 解:评价一个算法应从事前分析和事后测试这两个阶段进行,事前分析主要应从时间复杂度和空间复杂度这两个维度进行分析;事后测试主要应对所评价的算法作时空性能分布图。
5. 解:①n=11; ②n=12; ③n=982; ④n=39。
第2章 递归算法与分治算法1. 解:递归算法是将归纳法的思想应用于算法设计之中,递归算法充分地利用了计算机系统内部机能,自动实现调用过程中对于相关且必要的信息的保存与恢复;分治算法是把一个问题划分为一个或多个子问题,每个子问题与原问题具有完全相同的解决思路,进而可以按照递归的思路进行求解。
2. 解:通过分治算法的一般设计步骤进行说明。
3. 解:int fibonacci(int n) {if(n<=1) return 1;return fibonacci(n-1)+fibonacci(n-2); }4. 解:void hanoi(int n,int a,int b,int c) {if(n>0) {hanoi(n-1,a,c,b); move(a,b);hanoi(n-1,c,b,a); } } 5. 解:①22*2)(−−=n n f n② )log *()(n n n f O =6. 解:算法略。
计算机等级考试NCRE计算机等级考试二级模拟题2020年(54)_真题-无答案
计算机等级考试(NCRE)计算机等级考试二级模拟题2020年(54)(总分100,考试时间90分钟)一、选择题1. 1. 算法分析的目的是______。
A.找出数据结构的合理性B.找出算法中输人和输出之间的关系C.分析算法的易懂性和可靠性D.分析算法的效率以求改进A. AB. BC. CD. D2. 2. 在教师表中,如果要找出职称为“教授”的教师,所采用的关系运算是______。
A.选择B.投影C.连接D.自然连接A. AB. BC. CD. D3. 3. 用链表表示线性表的优点是______。
A.便于随机存取B.花费的存储空间较顺序存储少C.便于插入和删除操作D.数据元素的物理顺序与逻辑顺序相同A. AB. BC. CD. D4. 4. 将Access数据库中的数据发布在Internet网络上可以通过______。
A.查询B.窗体C.报表D.数据访问页A. AB. BC. CD. D5. 5. C语言的基本单位是______。
A.函数B.过程C.子程序D.子函数A. AB. BC. CD. D6. 6. 代表必须输入字母(A~Z)的输入掩码是______。
A.9**C.#**A. AB. BC. CD. D7. 7. 在面向对象方法中,______描述的是具有相似属性与操作的一组对象。
A.属性B.事件C.方法D.类A. AB. BC. CD. D8. 8. 数据独立性是数据库技术的重要特点之一。
所谓数据独立性是指______。
A.数据与程序独立存放B.不同的数据被存放在不同的文件中C.不同的数据只能被对应的应用程序所使用D.以上三种说法都不对A. AB. BC. CD. D9. 9. 下列描述中正确的是______。
数据结构期末复习题库(215道)
数据结构期末复习1、算法分析的目的是分析算法的效率以求改进,算法分析的两个主要方面是()——[单选题]A 空间复杂性和时间复杂性B 正确性和简明性C 可读性和文档性D 数据复杂性和程序复杂性正确答案:A2、两类存储结构为()——[单选题]A 线性结构和非线性结构B 逻辑结构和非逻辑结构C 顺序结构和链式结构D 逻辑结构和物理结构正确答案:C3、计算机算法指的是解决问题的有限运算序列,它必具备输入、输出和()等五个特性。
——[单选题]A 可行性、可移植性和可扩充性B 可行性、确定性和有穷性C 确定性、有穷性和稳定性D 易读性、稳定性和安全性正确答案:B4、在 C 语言中,有一种适用于不同数据类型构成的数据的结构称为()——[单选题]A 结构体B 数组C 变量D 常量正确答案:A5、在定义数组 int a[10]后,需要访问数组中第 3 个元素,正确的是()——[单选题]A a[0]B a[1]C a[2]D a[3]6、分析以下程序段,其时间复杂度为 T(n)=() for( i =0; i<n;i++)For(j=0;j<i;j++) A[i][j] = 0;——[单选题]A O(n)B O(n^2)C O(n^3)D O(1)正确答案:B7、数据元素之间存在一对多的关系,这种数据间的结构属于()——[单选题]A 集合B 线性结构C 树型结构D 图型结构正确答案:C8、有一个结构体及其变量定义如下: struct date{Int year; int month; intday;}birthday;此时要调用变量中的 year,正确的书写格式是()——[单选题]A yearB birthday.yearC date.yearD struct.year正确答案:B9、在数据结构中,从逻辑上可以把数据结构分成()——[单选题]A 动态结构和静态结构B 紧凑结构和非紧凑结构C 线性结构和非线性结构D 内部结构和外部结构正确答案:C10、分析下面算法(程序段),该算法的时间复杂度 T(n)=() for (i=0;i<n;i++)For (j=0;j<n; j++) A[i][j]=0;——[单选题]A O(n)B O(n^2)C O(n^3)D O(1)11、当定义一个结构体变量时,系统为它分配的内存空间是()——[单选题]A 结构体中一个成员所需的内存容量B 结构体中第一个成员所需的内存容量C 结构体中占内存容量最大者所需的容量D 结构体中各成员所需内存容量之和正确答案:D12、分析以下程序段,其时间复杂度为 T(n)=() x=0;For(i=1;i<n;i++);for(j=1;j<n;j++);For(k=1;k<n;k++); x++;——[单选题]A O(n)B O(n^2)C O(n^3)D O(1)正确答案:A13、有结构体定义及结构体类型数组如下: struct worklist{Int no;Char name[20]; char sex;}person[5];需要给结构体数组中第 2 个变量的 no 成员赋值为 5,正确的写法是()——[单选题]A no=5;B person.no=5;C person[2].no=5;D person[1].no=5;正确答案:D14、分析以下程序段,其时间复杂度为 T(n)=() i=1;While(i<=n) i=3*i;——[单选题]A O(n)B O(n^2)C O(n^3)D O(1)正确答案:D15、线性表是具有 n 个()的有限序列。
数据结构(C语言版)知识点复习资料
数据结构复习资料一、填空题1. 数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和运算等的学科。
2. 数据结构被形式地定义为(D, R),其中D是数据元素的有限集合,R是D上的关系有限集合。
3. 数据结构包括数据的逻辑结构、数据的存储结构和数据的运算这三个方面的内容。
4. 数据结构按逻辑结构可分为两大类,它们分别是线性结构和非线性结构。
5. 线性结构中元素之间存在一对一关系,树形结构中元素之间存在一对多关系,图形结构中元素之间存在多对多关系。
6.在线性结构中,第一个结点没有前驱结点,其余每个结点有且只有 1个前驱结点;最后一个结点没有后续结点,其余每个结点有且只有1个后续结点。
7. 在树形结构中,树根结点没有前驱结点,其余每个结点有且只有 1 个前驱结点;叶子结点没有后续结点,其余每个结点的后续结点数可以任意多个。
8. 在图形结构中,每个结点的前驱结点数和后续结点数可以任意多个。
9.数据的存储结构可用四种基本的存储方法表示,它们分别是顺序、链式、索引和散列。
10. 数据的运算最常用的有5种,它们分别是插入、删除、修改、查找、排序。
11. 一个算法的效率可分为时间效率和空间效率。
12. 在顺序表中插入或删除一个元素,需要平均移动表中一半元素,具体移动的元素个数与表长和该元素在表中的位置有关。
13. 线性表中结点的集合是有限的,结点间的关系是一对一的。
14. 向一个长度为n的向量的第i个元素(1≤i≤n+1)之前插入一个元素时,需向后移动 n-i+1 个元素。
15. 向一个长度为n的向量中删除第i个元素(1≤i≤n)时,需向前移动 n-i 个元素。
16. 在顺序表中访问任意一结点的时间复杂度均为 O(1) ,因此,顺序表也称为随机存取的数据结构。
17. 顺序表中逻辑上相邻的元素的物理位置必定相邻。
单链表中逻辑上相邻的元素的物理位置不一定相邻。
18.在单链表中,除了首元结点外,任一结点的存储位置由其直接前驱结点的链域的值指示。
国家电网招聘考试计算机类专业知识(数据结构与算法)模拟试卷2(
国家电网招聘考试计算机类专业知识(数据结构与算法)模拟试卷2(题后含答案及解析)题型有:1. 单项选择题单项选择题1.采用顺序查找法查找长度为n的顺序表时,查找成功的平均查找长度为( )。
A.(n-1)/2B.(n+1)/2C.nD.n/2正确答案:B解析:在查找成功的前提下,查找的最好情况是查找的第一个元素即想要查找的元素,最坏情况是查找的最后一个元素即想要查找的元素,所以查找成功的平均查找长度是(n+1)/2。
2.在循环队列中用数组A[0..m-1]存放队列元素,其队头指针和队尾指针分别为front和rear,则当前队列中的元素个数是( )。
A.(front-rear+1)%mB.(rear-front+1)%mC.(front-rear+m)%mD.(rear-front+m)%m正确答案:D3.算法分析的目的是( )。
A.找出数据结构的合理性B.研究算法中输入和输出的关系C.分析算法的效率,以求改进D.分析算法的易懂性和文档性正确答案:C4.下列关于栈的叙述,正确的是( )。
A.只要确定了入栈序列,就可以确定出栈序列B.栈是一种操作受限的线性表,只允许在其两端进行操作C.采用非递归方式重写递归程序时,必须使用栈D.函数调用时,可以使用栈来保存必要的信息解析:确定了入栈序列无法确定出栈序列,因为各个元素出栈的时间是不确定的;栈是一种操作受限的线性表,只允许在其一端进行操作;采用非递归方式重写递归程序时,除了栈还可以使用循环结构算法。
5.若允许表达式中多种括号混合嵌套,则检查表达式中括号是否正确配对的算法,通常选用的辅助结构是( )。
A.栈B.线性表C.队列D.二叉排序树正确答案:A解析:由于栈具有先进后出的特点,因此选用辅助结构栈可以实现表达式中多种括号混合嵌套的配对。
例如,使用3个栈,就可以同时解决表达式中的“{”与“}”、“[”与“]”、“(”与“)”的配对问题。
6.设线性表的长度为15,采用冒泡排序,在最坏的情况下需要比较的次数为( )。
数据结构模拟试题(8)
一.单选题1.数据结构是()A.一种数据类型B.数据的存储结构C.一组性质相同的数据元素的集合D.相互之间存在一种或多种特定关系的数据元素的集合2.算法分析的目的是()A.辨别数据结构的合理性B. 评价算法的优劣C.研究算法中输入与输出的关系D.鉴别算法的可读性3.在线性表的下列运算中,不改变数据元素之间结构关系的运算是()A.插入B.删除C.排序D.定位4.若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则可能出现的出栈序列为()A.3,2,6,1,4,5 B.3,4,2,1,6,5C.1,2,5,3,4,6 D.5,6,4,2,3,15.设串sl=”Data Structures with C++”,s2=”it”,则子串定位函数index(s1,s2)的值为()A.15 B.16C.17 D.186.广义表A=(a,(b),(),(c,d,e))的长度为( )A.4 B.5C.6 D.77.一棵含18个结点的二叉树的高度至少为( )A.3 B.4C.5 D.68..已知二叉树的先序序列为ABDECF,中序序列为DBEAFC,则后序序列为( ) A.DEBAFC B.DEFBCAC.DEBCFA D.DEBFCA9.无向图中一个顶点的度是指图中( )A.通过该顶点的简单路径数B.与该顶点相邻接的顶点数C.通过该顶点的回路数D.与该顶点连通的顶点数10.已知一个图如下所示,从顶点a出发进行广度优先遍历可能得到的序列为( )A.a c e f b d B.a c b d f eC.a c b d e f D.a c d b f e11.在下列排序方法中,平均时间性能为O(nlogn)且空间性能最好的是( )A.快速排序B.堆排序C.归并排序D.基数排序12.已知一组关键字为{25,48,36,72,79,82,23,40,16,35},其中每相邻两个为有序子序列。
对这些子序列进行一趟两两归并的结果是( )A.{25,36,48,72,23,40,79,82,16,35}B.{25,36,48,72,16,23,40,79,82,35}C.{25,36,48,72,16,23,35,40,79,82}D.{16,23,25,35,36,40,48,72,79,82}13.设顺序存储的线性表共有123个元素,按分块查找的要求等分成3块。
2023年计算机二级Access考前冲刺必看知识点
1、算法:是对一个问题求解环节的一种描述,具有以下5个重要特性:有穷性,拟定性,可行性,输入(有零个或者多个输入),输出(有一个或者多个输出)。
算法的有穷性是指算法必须在有限的时间内做完,即算法必须在有限个环节之后执行终止。
2、在算法对的的前提下,评价一个算法的两个标准是即——算法复杂度涉及时间复杂度和空间复杂度。
其中时间复杂度是指执行算法所需要的计算工作量。
空间复杂度是算法所需空间的度量。
3、算法分析的目的是分析算法的效率以求改善。
4、数据项是数据的最小单位。
数据的最小访问单位是字段。
5、一般说来,数据结构涉及数据的逻辑结构、数据的存储结构、数据的操作3个方面。
6、数据的存储结构是指数据的逻辑结构在计算机中的表达。
一种逻辑数据结构可以有多种存储结构,且各种存储结构影响数据解决的效率。
7、在数据的存储结构中,不仅需要存储各数据元素的信息,还要存放各元素之间前后件的信息。
8、在数据库管理系统提供的数据定义语言、数据操纵语言和数据控制语言中,数据定义语言负责数据的模式定义与数据的物理存取构建。
9、线性数据结构:队列,线性表,栈等等。
常用的结构数据模型有关系型、网状型和树型。
10、线性表中的元素之间具有一对一的关系,除第一个元素和最后一个元素外,其余每个元素都有一个且只有一个直接前驱和直接后驱。
顺序存储是线性表的一种最常用的存储方式。
11、栈的基本运算有三种:入栈、退栈和读栈。
12、栈是限定仅在表尾进行插入和删除操作的线性表。
允许插入和删除的一端叫做“栈顶”,不允许插入和删除的一端叫做“栈底”栈的修改只能在栈顶进行,按照后进先出的原则,具有记忆作用,对栈的插入与删除操作中,不需要改变栈底指针。
13、队列是限定了插入和删除操作的线性表。
它只允许在表的一端进行插入操作(队尾),而在此外一端进行删除操作(队头),队列的修改可以在两端进行,按照先进先出的原则。
14、数据结构分为逻辑结构和存储结构,循环队列属于存储结构。
数据结构试卷及答案1
1.算法分析的目的是( C )。
A.找出数据结构的合理性B.研究算法中输入和输出的关系C.分析算法的效率以求改进D.分析算法的易懂性和文档性2.( B )是具有相同特性数据元素的集合,是数据的子集。
A.数据符号B.数据对象C.数据D.数据结构3.用链表表示线性表的优点是( C )。
A.便于随机存取B.花费的存储空间比顺序表少C.便于插入与删除D.数据元素的物理顺序与逻辑顺序相同4.输入序列为(A,B,C,D)不可能的输出有(D )。
A.(A,B,C,D)B. (D,C,B,A)C. (A,C,D,B) D . (C,A,B,D)5.在数组表示的循环队列中,front、rear分别为队列的头、尾指针,maxSize为数组的最大长度,队满的条件是( B )。
A. front=maxSizeB. (rear+1)%maxSize=frontC. rear=maxSizeD. rear=front6.设有串t='I am a good student ',那么Substr(t,6,6)=( D )。
A. studentB. a good sC. goodD. a good7.设有一个对称矩阵A,采用压缩存储方式,以行序为主序存储a11为第一个元素,其存储地址为1,每个元素占一个地址空间,则a85地址为( B )。
D. 408.已知广义表LS=(A,(B,C,D),E)运用head和tail函数,取出LS中原子b的运算(C )。
A. Gethead(Gethead(LS))B. Gettail(Gethead(LS))C. Gethead(Gethead(Gettail(LS)))D. Gethead(Gettail(LS))9.若已知一棵二叉树先序序列为ABCDEFG,中序序列为CBDAEGF,则其后序序列为( A ) 。
A. CDBGFEAB. CDBFGEAC. CDBAGFED. BCDAGFE10.下列存储形式中,( C ) 不是树的存储形式。
数据结构智慧树知到答案章节测试2023年上海电力大学
第一章测试1.数据结构中,与所使用的计算机无关的是数据的( ) 结构。
A:存储B:逻辑C:物理D:物理和存储答案:B2.从逻辑上可以把数据结构分为()两大类。
A:顺序结构、链式结构B:线性结构、非线性结构C:初等结构、构造型结构D:动态结构、静态结构答案:B3.算法分析的目的是()A:分析算法的效率以求改进B:找出数据结构的合理性C:分析算法的易懂性和文档性D:研究算法中的输入和输出的关系答案:A4.一个”好”的算法应达到的目标有( )。
A:高时间效率和低存储率B:正确性C:可读性D:健壮性答案:ABCD5.健壮的算法不会因非法的输入数据而出现莫名其妙的状态。
A:错B:对答案:B6.数据的逻辑结构和数据的存储结构是相同的。
A:错B:对答案:A7.算法的实现依赖于数据的逻辑结构。
A:错B:对答案:A8.算法是对解题方法和步骤的描述。
A:对B:错答案:A9.链式存储结构所占存储空间()。
A:分两部分,一部分存放结点的值,另一个部分存放表示结点间关系的地址。
B:只有一部分,存储表示结点间关系的地址。
C:只有一部分,存放结点的值。
D:分两部分,一部分存放结点的值,另一部分存放结点所占存储单元值。
答案:A10.下列时间复杂度中最坏的是()。
A:O( logn)B:O(n2)C:O(n)D:O(1)答案:B第二章测试1.在n个结点的顺序表中,算法的时间复杂度是O(1)的操作是:A:将n个结点从小到大排序B:访问第i个结点(1≤i≤n)和求第i个结点的直接前驱(2≤i≤n)C:在第i个结点后插入一个新结点(1≤i≤n)D:删除第i个结点(1≤i≤n)答案:B2.链式存储结构的最大优点是A:存储密度高B:便于进行插入和删除操作C:便于随机存取D:无需预分配空间答案:B3.假设在顺序表{a0,a1,……,an-1}中,每一个数据元素所占的存储单元的数目为4,且第0个数据元素的存储地址为100,则第7个数据元素的存储地址是A:106B:128C:124D:107答案:B4.在一个单链表中的p和q两个结点之间插入一个新结点,假设新结点为s,则修改链的java语句序列是A:s.next=p;p.next=q;B:p.next=q;q.next=s;C:s.next=q;p.next=s;D:q.next=p;p.next=s;答案:C5.顺序存储方式的优点是存储密度大,且插入、删除运算效率高A:错B:对答案:A6.在单链表中,增加一个头结点的目的是为了A:方便运算的实现B:使单链表至少有一个结点C:标识表结点中首结点的位置D:说明单链表是线性表的链式存储答案:A7.一维数组第一个元素的存储地址是100,每个元素的长度为2,则第5个元素的地址是A:108B:110C:120D:100答案:A8.链表的删除算法很简单,因为当删除链中某个结点后,计算机会自动地将后续的各个单元向前移动A:错B:对答案:A9.链表的每个结点中都恰好包含一个指针A:对B:错答案:B10.顺序存储方式只能用于存储线性结构A:对B:错答案:B第三章测试1.若将整数1、2、3、4依次进栈,则不可能得到的出栈序列是A:1234B:4321C:1324D:1423答案:D2.在顺序栈中,若栈顶指针top指向栈顶元素的下一个存储单元,且顺序栈的最大容量是maxSize,则顺序栈的判空条件是A:top==maxSize-1B:top==-1C:top==maxSizeD:top==0答案:D3.在循环顺序队列中,假设以少用一个存储单元的方法来区分队列判满和判空的条件,front和rear分别为队首和队尾指针,front指向队首元素,rear 指向队尾元素的下一个存储单元,队列的最大存储容量为maxSize,则队列的判满条件是A:front==rear+1B:front==(rear+1)% maxSizeC:front!=rearD:front==rear答案:B4.在链栈中,进行出栈操作时A:需要判断栈是否为空B:无需对栈作任何差别C:需要判断栈是否满D:需要判断栈元素的类型答案:A5.栈和队列是一种非线性数据结构A:错B:对答案:A6.在循环顺序队列中,假设以少用一个存储单元的方法来区分队列判满和判空的条件,front和rear分别为队首和队尾指针,它们分别指向队首元素和队尾元素的下一个存储单元,队列的最大存储容量为maxSize,则队列的判空条件是A:front==(rear+1)% maxSizeB:front==rear+1C:front!=rearD:front==rear答案:D7.循环顺序队列是将顺序队列的存储区域看成是一个首尾相连的环,首尾相连的状态是通过数学上的哪种运算实现的?A:求余B:求和C:减运算D:除运算答案:A8.设数组Data[0..m]作为循环队列SQ的存储空间,front为队头指针,rear为队尾指针,则执行出队操作的语句为A:front=(front+1)% mB:front=front+1C:front=(front+1)%(m+1)D:rear=(rear+1)%m答案:C9.假定利用数组a[n]顺序存储一个栈,用top表示栈顶指针,top==-1表示栈空,并已知栈未满,当元素x进栈时所执行的操作为A:a[top–]=xB:a[++top]=xC:a[–top]=xD:a[top++]=x答案:B10.在不带表头结点的链栈中,若栈顶指针top直接指向栈顶元素,则将一个新结点p入栈时修改链的两条对应语句为A:top=p;p.next=top;B:p.next=top;top=p;C:p=top;top.next=p.next;D:top.next=p;p=top;答案:B第四章测试1.下面关于串的叙述中,哪一个是不正确的?( )A:串既可以采用顺序存储,也可以采用链式存储B:空串是由空格构成的串C:模式匹配是串的一种重要运算D:串是字符的有限序列答案:B2.串的长度是指( )A:串中包含的不同字符个数B:串中除空格以外的字符个数C:串中包含的不同字母个数D:串中包含的字符个数答案:D3.设有两个串p和q,其中q是p的子串,求q在p中首次出现的位置的算法称为( )A:联接B:求子串C:求串长D:模式匹配答案:D4.设主串的长度为n,模式串的长度为m,则串匹配的KMP算法时间复杂度是( )A:O(n×m)B:O(n)C:O(m)D:O(n + m)答案:D5.串也是一种线性表,只不过( )A:数据元素均为字符B:数据元素是子串C:表长受到限制D:数据元素数据类型不受限制答案:A6.一个串的任意连续字符组成的子序列称为串的子串,该串称为主串。
数据结构 选择题
《数据结构》习题库之一:选择题1.算法分析的目的是()A.研究算法的输入与输出之间的关系B.找出数据结构的合理性C.分析算法的效率以求改进算法D.分析算法的可读性与可移植性2. 在由list所指的非空线性链表中删除由p指的链结点的下一个链结点的过程是依次执行q=p->link,(),delete q。
A.p->link=qB.q->link=pC.q->link=p->linkD.p->link=q->link3.依次在初始为空的队列中插入元素为a,b,c,d以后,紧接着作了两次删除操作,此时的队头元素是()A.aB.bC.cD.d4.若某堆栈的输入序列为1,2,3,…,n-1,n,输出序列的第1个元素为n,则第i个输出元素为()A.n-i+1B.n-1C.iD.哪个元素无所谓5.设计递归问题的非递归算法一般需要用到()机制。
A.数组B.堆栈C.队列D.二叉树6.已知非空二叉树采用顺序存储结构,树中结点的数据信息依次存放在一个一维数组中,即ABC □DEF□□G□□H□□该二叉树的中序列遍历序列为()A.G,D,B,A,F,H.C,EB.G,B,D,A,F,H,C,EC.B,D,G,A,F,H,C,ED.B,G,D,A,F,H,C,E7.在一棵度为3的树中,度为3的结点有2个,度为2的结点有1个,度为1的结点有2个,那么,该树有()个叶结点。
A.4B.5C.6D.78. 向具有n个结点的、结构均衡的二叉搜索树中插入一个元素的时间复杂度大致为()。
A. O(1)B. O(log2n )C. O(n)D. O(nlog2n)9.在初始为空的散列表中依次插入关键字序列(MON,TUE,WED,THU,FRI,SAT,SUN),散列函数为H(k)=i MOD 7,其中,i为关键字k的第一个字母在英文字母表中的序号,地址值域为[0:6] ,采用线性再散列法处理冲突。
2015年青海省数据结构基础考试答题技巧
D.同一结点集构造的二叉树中,哈夫曼树的WPL最小
31、与单链表相比,双链表的优点之一是 D 。
A.插入、删除操作更简单
B.可以进行随机访问
C.可以省略表头指针或表尾指针
D.顺序访问相邻结点更灵活
32、在循环双链表的p所指的结点之前插入s所指结点的操作是 D 。
A.0 B.1 C.2 D.不确定
15、深度为k的完全二叉树至多有( )个结点
A B C D
16、长度为n的顺序表,删除位置i上的元素(0≤i≤n一1),需要移动的元素个数为
A.n—l条有向边 B.n条有向边
C.n(n—1)/2条有向边 D.n(n一1)条有向边
5、算法分析的目的是 C ,算法分析的两个主要方面是 A 。
(1)A.找出数据结构的合理性 B.研究算法中的输入和输出的关系
C.分析算法的效率以求改进 C.分析算法的易读性和文档性
42、在一个单链表HL中,若要向表头插入一个由指针p指向的结点,则执行( )。
A. HL=ps p一>next=HL
B. p一>next=HL;HL=p3
C. p一>next=Hl;p=HL;
D. p一>next=HL一>next;HL一>next=p
35、下列选项中,符合堆定义的是
A.{102,24,55,60,89,93}
B.{24,89,55,60,93,102}
C.{102,93,55,60,89,24}
D.{102,60。89,93,55,24}
36、在数据结构中,从逻辑上可以把数据结构分为 C 。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【参考答案】C
16.下列程序执行后的输出结果是( )
void func1(int i);
void func2(int i);
char st[ ]=″hello,friend!″;
void func1(int i)
{ printf(″%c″,st[i]);
if(i<3){i+=2;func2(i);}
A.特定的数据模型 B.数据无冗余
C.数据可共享 D.专门的数据管理软件
【参考答案】A
10.实体是信息世界中广泛使用的一个术语,它用于表示( )
A.有生命的事物 B.无生命的事物
C.实际存在的事物 D.一切事物
【参考答案】C
11.下面叙述中正确的是( )
A.C语言编译时不检查语法
B.C语言的子程序有过程和函数两种
C.C语言的函数可以嵌套定义
D.C语言的函数可以嵌套调用
【参考答案】D
12.以下叙述中正确的是( )
A.构成C程序的基本单位是函数
B.可以在一个函数中定义另一个函数
C.main()函数必须放在其他函数之前
D.所有被调用的函数一定要在调用之前进行定义
【参考答案】A
13.下列程序段的输出结果是( )
int a=1234;
-、选择题
1.算法分析的目的是( )
A.找出数据结构的合理性
B.找出算法中输入和输出之间的关系
C. 分析算法的易懂性和可靠性
D. 分析算法的效率以求改进
【参考答案】D
2.在单链表中,增加头结点的目的是( )
A.方便运算的
B.使单链表至少有一个结点
C.标识表结点中首结点的位置
D.说明单链表是线性表的链式存储实现
float m; float m;
} aa; } tdl;
struct aa tdl;
【参考答案】C
22.若有以下程序
#include <stdio.h>
12,22,41 12,42,20
C.11,21,40 D.11,41,21
11,21,21 12,42,22
【参考答案】B
18.下列程序执行后的输出结果是( )
main()
{ int a[3][3],*p,i;
p=&a[0][0];
for(i=1;i<9;i++)p[i]=i+1;
printf(″%d\n″,a[1][2]);
【参考答案】A
20.有以下程序
int f(int n)
{ if(n==1)return 1;
else return f(n-1)+1;
}
main()
{ int i,j=0;
for(i=1;i<3;i++)j+=f(i);
printf(″%d\n″,j);
}
程序运行后的输出结果是( )
A.4 B.3 C.2 D.1
A.层次模型 B.网状模型 C.关系模型 D.以上3个都是
【参考答案】C
6.栈底到栈顶依次存放元素A、B、C、D,在第五个元素E入栈前,栈中元素可以出栈,则出栈序列可能是( )
A.ABCED B.DCBEA C.DBCEA D.CDABE
【参考答案】B
7.在结构化程序设计思想提出之前,在程序设计中曾强调程序的效率,现在,与程序的效率相比,人们更重视程序的( )
A.安全性 B.一致性 C.可理解性 D.合理性
【参考答案】C
8.软件开发的结构化生命周期方法将软件生命周期划分成( )
A.定义、开发、运行维护
B.设计阶段、编程阶段、测试阶段
C.总体设计、详细设计、编程调试
D.需求分析、功能定义、系统设计
【参考答案】A
9.在数据管理技术发展过程中,文件系统与数据库系统的主要区别是数据库系统具有( )
#include <stdio.h>
void prt(int *x,int*y,int*z)
{ printf(″%d,%d,%d\n″,++*x,++*y,*(z++));}
main()
{ int a=10,b=40,c=20;
prt(&a,&b,&c);
prt(&a,&b,&c);
}
A.11,42,31 B.11,41,20
}
void func2(int i)
{ printf(″%c″,st[i]);
if(i<3){i+=2;func1(i);}
}
main()
{ int i=0;func1(i);printf(″\n″);}
A.hello B.hel C.hlo D.hlm
【参考答案】C
17.以下程序的输出结果是( )
int x=0,s=0;
while(!x!=0)s+=++x;
printf(″%d″,s);
则( )
A.运行程序段后输出0
B.运行程序段后输出1
C.程序段中的控制表达式是非法的
D.程序段执行无限次
【参考答案】B
15.以下程序段的描述,正确的是( )
x=-1;
do
{x=x*x;}while(!x);
A.是死循环 B.循环执行两次
【参考答案】B
21.以下对结构体类型变量的定义中,不正确的是( )
A.typedef struct aa B.#define AA struct aa
{ int n; AA{ int n;
float m; float m;
} AA; } tdl;
AA tdl;
C.struct D.struct
{ int n; { int n;
【参考答案】A
3.软件开发离不开系统环境资源的支持,其中必要的测试数据属于( )
A.硬件资源 B.通信资源 C.支持软件 D.辅助资源
【参考答案】D
4.分布式数据库系统不具有的特点是( )
A.数据分布性和逻辑整体性 B.位置透明性和复制透明性
C.分布性 D.数据冗余
【参考答案】D
5.下列数据模型中,具有坚实理论基础的是( )
}
A.3 B.6 C.9 D.随机数
【参考答案】B
19.下列程序执行后的输出结果是( )
main()
{ char arr[2][4];
strcpy(arr,″you″);strcpy(arr[1],″me″);
arr[0][3]=′&′;
printf(″s\n″,arr);
}
A.you&me B.you C.me D.err
float b=123.456;
double c=12345.54321;
printf(″%2d,%2.1f,%2.1f″,a,b,c);
A.无输出 B.12,123.5,12345.5
C.1234,123.5,12345.5 D.1234,123.4,1234.5
【参考答案】C
14.设有以下程序段