《C语言数据结构》第1至9章自测题答案大全.doc

上传人:飞****2 文档编号:51818646 上传时间:2022-10-20 格式:DOC 页数:113 大小:220KB
返回 下载 相关 举报
《C语言数据结构》第1至9章自测题答案大全.doc_第1页
第1页 / 共113页
《C语言数据结构》第1至9章自测题答案大全.doc_第2页
第2页 / 共113页
点击查看更多>>
资源描述

《《C语言数据结构》第1至9章自测题答案大全.doc》由会员分享,可在线阅读,更多相关《《C语言数据结构》第1至9章自测题答案大全.doc(113页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、只要你有能力去做的事就一定要去做,不要给自己留下任何遗憾,人生最重要的不是所站的位置,而是所朝的方向。第一章概论 自测题答案 姓名 班级 题号一二三四五六总分题分3315982015100得分一、填空题(每空1分共33分)1. 一个计算机系统包括 硬件系统 和 软件系统 两大部分2. 一台计算机中全部程序的集合称为这台计算机的 软件资源 /(系统) 3. 计算机软件可以分为 系统 软件和 应用 软件两大类科学计算程序包属于 应用软件 诊断程序属于 系统软件(工具) 4. 一种用助忆符号来表示机器指令的操作符和操作数的语言是 汇编语言 5. 数据结构是一门研究非数值计算的程序设计问题中计算机的

2、操作对象 以及它们之间的 关系 和运算等的学科6. 数据结构被形式地定义为(D R)其中D是 数据元素 的有限集合R是D上的 关系 有限集合7. 数据结构包括数据的 逻辑结构 、数据的 存储结构 和数据的 运算 这三个方面的内容8. 数据结构按逻辑结构可分为两大类它们分别是 线性结构 和 非线性结构 9. 线性结构中元素之间存在一对一关系树形结构中元素之间存在一对多关系图形结构中元素之间存在多对多关系10 在线性结构中第一个结点 没有 前驱结点其余每个结点有且只有 1个前驱结点;最后一个结点 没有 后续结点其余每个结点有且只有1个后续结点11. 在树形结构中树根结点没有 前驱 结点其余每个结点

3、有且只有 1 个前驱结点;叶子结点没有 后续 结点其余每个结点的后续结点数可以任意多个 12. 在图形结构中每个结点的前驱结点数和后续结点数可以 任意多个 13数据的存储结构可用四种基本的存储方法表示它们分别是顺序 、 链式 、 索引 和 散列 14. 数据的运算最常用的有5种它们分别是插入 、 删除、修改、 查找 、排序15. 一个算法的效率可分为 时间 效率和 空间 效率16. 00年省统考任何一个C程序都由 一个主函数 和若干个被调用的其它函数组成17. 【00年省统考题】变量一经说明就确定该变量的取值范围(即存储单元)及 确定变量所允许的运算 二、单项选择题(每小题1分共15分)( B

4、 ) 1. 通常所说的主机是指 A) CPUB) CPU和内存C) CPU、内存与外存D) CPU、内存与硬盘( C )2. 在计算机内部一切信息的存取、处理和传送的形式是 A) ACSII码 B) BCD码 C)二进制 D)十六进制 ( D )3. 软件与程序的区别是A) 程序价格便宜、软件价格昂贵;B) 程序是用户自己编写的而软件是由厂家提供的; C) 程序是用高级语言编写的而软件是由机器语言编写的; D) 软件是程序以及开发、使用和维护所需要的所有文档的总称而程序只是软件的一部分( C )4. 所谓裸机是指A) 单片机B)单板机C) 不装备任何软件的计算机D) 只装备操作系统的计算机(

5、D )5. 应用软件是指 A)所有能够使用的软件 B) 能被各应用单位共同使用的某种软件 C)所有微机上都应使用的基本软件 D) 专门为某一应用目的而编制的软件( A )6. 00年省统考C语言中的常量可分为整型常量、实型常量、字符型常量及 (枚举) 四种 (A) 符号常量 (B)长整型常量 (C) 逻辑常量 (D)二进制整数( C )7. 编译程序的功能是 A)发现源程序中的语法错误 B)改正源程序中的语法错误 C)将源程序编译成目标程序 D)将某一高级语言程序翻译成另一种高级语言程序( A )8. 系统软件中最重要的是 A) 操作系统 B) 语言处理系统 C) 工具软件 D) 数据库管理系

6、统( C )9. 可移植性最好的计算机语言是 A) 机器语言B)汇编语言C) 高级语言D) 自然语言( B )10. 非线性结构是数据元素之间存在一种:A)一对多关系 B)多对多关系 C)多对一关系 D)一对一关系( C )11. 数据结构中与所使用的计算机无关的是数据的 结构;A) 存储 B) 物理 C) 逻辑 D) 物理和存储( C )12. 算法分析的目的是:A) 找出数据结构的合理性 B) 研究算法中的输入和输出的关系C) 分析算法的效率以求改进 D) 分析算法的易懂性和文档性( A )13. 算法分析的两个主要方面是:A) 空间复杂性和时间复杂性 B) 正确性和简明性C) 可读性和文

7、档性 D) 数据复杂性和程序复杂性( C )14. 计算机算法指的是:A) 计算方法 B) 排序方法 C) 解决问题的有限运算序列 D) 调度方法( B )15. 计算机算法必须具备输入、输出和 等5个特性A) 可行性、可移植性和可扩充性 B) 可行性、确定性和有穷性C) 确定性、有穷性和稳定性 D) 易读性、稳定性和安全性三、简答题(每小题3分共9分)1我们知道计算机只能执行机器指令为什么它能运行用汇编语言和高级语言编写的程序?答:靠汇编程序将汇编语言或高级语言翻译转换为目标程序(即机器语言)2.【严题集1.2】数据结构和数据类型两个概念之间有区别吗?答:简单地说数据结构定义了一组按某些关系

8、结合在一起的数组元素数据类型不仅定义了一组带结构的数据元素而且还在其上定义了一组操作3. 简述线性结构与非线性结构的不同点答:线性结构反映结点间的逻辑关系是 一对一的非线性结构反映结点间的逻辑关系是多对多的四、00年统考题阅读下列C程序段写出相应的执行结果(每小题4分共8分)1. printf(Input x);scanf(%d&x);if (x20) y=x;else if (x10) y=2*x;if (x0&xa13-a24-A30 ()循环链表 ()单链表 ()双向循环链表 ()双向链表四、简答题(每小题5分共10分)1. 【严题集2.3】试比较顺序存储结构和链式存储结构的优缺点在什么

9、情况下用顺序表比链表好?答: 顺序存储时相邻数据元素的存放地址也相邻(逻辑与物理统一);要求内存中可用存储单元的地址必须是连续的优点:存储密度大(1?)存储空间利用率高缺点:插入或删除元素时不方便 链式存储时相邻数据元素可随意存放但所占存储空间分两部分一部分存放结点值另一部分存放表示结点间关系的指针优点:插入或删除元素时很方便使用灵活缺点:存储密度小(datalink 头指针 首元结点简而言之头指针是指向链表中第一个结点(或为头结点或为首元结点)的指针;头结点是在链表的首元结点之前附设的一个结点;数据域内只放空表标志和表长等信息(内放头指针?那还得另配一个头指针!)首元素结点是指链表中存储线性

10、表中第一个数据元素a1的结点五、【软考题】线性表具有两种存储方式即顺序方式和链接方式现有一个具有五个元素的线性表L=2317470531若它以链接方式存储在下列100119号地址空间中每个结点由数据(占2个字节)和指针(占2个字节)组成如下所示:05U17X23V31Y47Z100120其中指针XYZ的值分别为多少?该线性表的首结点起始地址为多少?末结点的起始地址为多少?(10分)答:X= 116 Y= 0 Z= 100 首址= 108 末址= 112 六、阅读分析题(10分)【严题集2.10】指出以下算法中的错误和低效(即费时)之处并将它改写为一个既正确又高效的算法答:错误有两处: 参数不合

11、法的判别条件不完整例如表长为10若从第一位置(i=1)删除10个元素(k=10)要求合理但会被判为非法合法的入口参数条件为(0ia.length) (0ka.length-i) 应将if ( i1 | k a.length ) return INFEASIBLE改为:if (!(0=i+1; j-) a.elemj-1 = a.elemj;改为for (j=i+1; j = a.length; j+) a.elemj-1 = a.elemj;七、编程题(每题10分共40分)1. 【徐士良题集2002年1月省统考题】写出在顺序存储结构下将线性表逆转的算法要求使用最少的附加空间解:输入:长度为n的

12、线性表数组A(1:n)输出:逆转后的长度为n的线性表数组A(1:n)C语言描述如下(其中ET为数据元素的类型):2. 【严题集2.6】已知L是无表头结点的单链表且P结点既不是首元结点也不是尾元结点请写出在P结点后插入S结点的核心语句序列答:此题答案不唯一但若从已给定序列中挑选则限制颇多(7) Q=P;(11) P=L;(8) while(P-next!=Q)P=P-next;(10) P=Q;(4) S-next=P-next;P-next=S;3. 编写程序将若干整数从键盘输入以单链表形式存储起来然后计算单链表中结点的个数(其中指针P指向该链表的第一个结点) 注:统计结点个数是【省统考样题】

13、的要求也是教材P60 4-6计算链表长度的要求编程又简单很容易作为考题解:编写C程序如下(已上机通过):全局变量及函数提前说明:-#include#includetypedef struct liuyuint data;struct liuyu*link;test;liuyu *p*q*r*head;int m=sizeof(test);void main () /*第一步从键盘输入整数不断添加到链表*/int i;head=(test*)malloc(m); /*m=sizeof(test);*/p=head; i=0;while (i!=-9999) printf(/ninput an i

14、nteger stop by -9999:);scanf(%d&i);p-data=i; /* input data is saved */p-link=(test*)malloc(m); /*m=sizeof(test);*/q=p;p=p-link;q-link=NULL; /*原先用p-link=NULL似乎太晚!*/ p=head; i=0; /*统计链表结点的个数并打印出来*/while (p-link!=NULL)printf(%dp-data);p=p-link;i+;printf(n node number=%dn i-1); /*结点的个数不包括-9999*/0301陈建武:

15、3.程序中统计结点数应是i个而不是i-1.假设链表表长为ni从0开始则在统计某一结点后 i 加一此时p已指向下一个结点第一结点统计结束i为1p指向第二结点即当p指向尾结点(第n个结点)时i的值为n-1while循环条件不符(指针域为null)退出循环即得统计的结点数为n-1.所以 i 的值就是结点数不必再减一4. 请编写26个字母按特定字母值插入或删除的完整程序可自行选用顺序存储或链表结构答:#include /*全局变量及函数提前说明:*/#includetypedef struct liuyuchar data;struct liuyu*link;test;liuyu *p*q*r*hea

16、d;int L; /*元素的个数*/int m=sizeof(test);void build(); /* 主函数中会被调用的函数应当预先说明 */void display();int insert_char(charchar); /*插入一个字母在第字母Y之前若无字母则加到末尾*/int delet_char(char); /* 删除元素X注意保存X的前趋元素指针! */*-*/void build() /*字母链表的生成*/int i;head=(test*)malloc(m); /*m=sizeof(test);*/p=head;for(i=1;idata=i+a-1; /* a也可用其

17、ASCII码97来表示 */p-link=(test*)malloc(m); /*m=sizeof(test);*/p=p-link; p-data=i+a-1;p-link=NULL;/*-*/void display() /*字母链表的输出*/p=head;while (p-link!=NULL) printf(%cp-data);p=p-link; printf(%cnp-data);/*-*/int insert_char(char Xchar Y) /*插入一个字母X在某个字母Y之前若找不到Y字母则加到末尾*/p=head;r=(test*)malloc(m);r-data=X;if

18、(head-data=Y) head=r; r-link=p; else while(p-data!=Y)&(p-link!=NULL) q=p; p=p-link; if(p-data=Y) q-link=r; r-link=p; elsep-link=r;r-link=NULL; L+;return(0);/*-*/int delet_char(char X) /* 删除元素X注意保存X的前趋元素指针! */ p=head;if(head-data=X)head=head-link;free(p);else while(p-data!=X)&(p-link!=NULL)q=p; p=p-l

19、ink;if(p-data=X) q-link=p-link; free(p); else return(-1);L-;return(0);/*-*/void main(void) /*字母线性表的生成和输出*/ L=26; build();display();printf(insert return value=%dninsert_char(LW);display();printf(delete return value=%dndelet_char(z);display();附:屏幕上显示的执行结果是:a b c d e f g h i j k l m n o p q r s t u v w

20、 x y zinsert return value=0a b c d 9 e f g h i j k l m n o p q r s t u v w x y z Ldelete return value=0a b c d e f g h i j k l m n o p q r s t u v w x y L0301陈建武修改意见:一. display()函数代码可优化为四行void display() /*字母链表的输出*/p=head;while (p-link!=NULL)/改为while(p)因为当p指向尾结点时p不为null条件成立循环 /printf()然后p被赋值为null此时循环

21、条件不符退出正好. printf(%cp-data);p=p-link; printf(%cnp-data); /用while(p)此行可删二.对int insert_char(char Xchar Y) 若用带头结点的链表代码可减为10行我的程序如下(若参数没有slist p代码要多一行让q指向头指针)void InsertFind(slist pchar insertcharchar insertpos)/字母insertpos前插入字母insertchar slist ppriornewnode; /newnode新结点pprior为插入位置结点的直接前驱 newnode = new l

22、iuyu;/为新结点分配内存 newnode-data = insertchar; /对结点数据域初始化 while(p) /当p指向尾结点时最后一次循环 pprior = p; /pprior从头指针开始指向p的直接前驱 p = p-next; /p从首元结点开始不断前移 直至最后p为null if(p&(p-data = insertpos) /当p为null或者结点p的数据域为所要插入的字母break; /则退出循环 newnode-next = pprior-next; /在找到的位置前插入 pprior-next = newnode; 对删除结点的操作若有头结点同样可以减少代码由此可

23、见创建一个头结点对简化程序有很大的帮助.上面的观点仅供参考不对之处请指教!第3章 栈和队列 自测卷答案 姓名 班级 题号一二三四五六总分题分151020202015100得分一、填空题(每空1分共15分)1. 【李春葆】向量、栈和队列都是 线性 结构可以在向量的 任何 位置插入和删除元素;对于栈只能在 栈顶 插入和删除元素;对于队列只能在 队尾 插入和 队首 删除元素2. 栈是一种特殊的线性表允许插入和删除运算的一端称为 栈顶 不允许插入和删除运算的一端称为 栈底 3. 队列 是被限定为只能在表的一端进行插入运算在表的另一端进行删除运算的线性表4. 在一个循环队列中队首指针指向队首元素的 前一

24、个 位置5. 在具有n个单元的循环队列中队满时共有 n-1 个元素6. 向栈中压入元素的操作是先 移动栈顶指针 后 存入元素 7. 从循环队列中删除一个元素时其操作是 先 移动队首指针 后 取出元素 8. 00年统考题带表头结点的空循环双向链表的长度等于 0 解:二、判断正误(判断下列概念的正确性并作出简要的说明)(每小题1分共10分)( )1. 线性表的每个结点只能是一个简单类型而链表的每个结点可以是一个复杂类型 错线性表是逻辑结构概念可以顺序存储或链式存储与元素数据类型无关( )2. 在表结构中最常用的是线性表栈和队列不太常用 错不一定吧?调用子程序或函数常用CPU中也用队列( )3. 栈是一种对所有插入、删除操作限于在表的一端进行的线性表是一种后进先出型结构( )4. 对于不同的使用者一个表结构既可以是栈也可以是队列也可以是线性表 正确都是线性逻辑结构栈和队列其实是特殊的线性表对运算的定义略有不同而已( )5. 栈和链表是两种不同的数据结构 错栈是逻辑结构的概念是特殊殊线性表而链表是存储结构概念二者不是同类项( )6. 栈和队列是一种非线性数据结构 错他们都是线性逻辑结构栈和队列其实是特殊的线性表对运算的定义略有不同而已( )7. 栈和队列的存储方式既可是顺序方式也可是链接方式 ( )8. 两个栈共享一片连续内存空间时为提高内存利用率

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁