拓展训练一

一、选择题

1.Linux和UNIX的关系是( C )

   A.没有关系                          B.UNIX是一种类Linux的操作系统

   C.Linux是一种类UNIX的操作系统        C.Linux和UNIX是一回事

2.Linux是一个( D )的操作系统。

   A.单用户、单任务                     B.单用户、多任务

   C.多用户、单任务                     D.多用户、单任务

二、简答题

1.试列举Linux系统的主要特点。

答:①、开放性:特别是遵循开放系统互连(OSI)国际标准。

②、多用户:操作系统资源可以被不同用户使用,每个用户对自己的资源(例如:文件、设备)有特定的权限,互不影响。
③、多任务:计算机同时执行多个程序,而同时各个程序的运行互相独立。
④、良好的用户界面:Linux向用户提供了两种界面:用户界面和系统调用。Linux还为用户提供了图形用户界面。它利用鼠标、菜单、窗口、滚劢条等设施,给用户呈现一个直观、易操作、交互性强的友好的图形化界面。
⑤、设备独立性操作系统把所有外部设备统一当作成文件来看待,只要安装驱劢程序,任何用户都可以象使用文件一样,操纵、使用这些设备。Linux是具有设备独立性操作系统,内核具有高度适应能力。
⑥、提供了丰富的网络功能:完善的内置网络是Linux一大特点。
⑦、可靠的安全系统:Linux采取了许多安全技术措施,包括对读、写控制、带保护的子系统、审计跟踪、核心授权等,这为网络多用户环境中的用户提供了必要的安全保障。

⑧、良好的可移植性:将操作系统从一个平台转移到另一个平台使它仍然能挄其自身的方式运行的能力。Linux是一种可移植的操作系统,能够在从微型计算机到大型计算机的任何环境中和任何平台上运行。

2.Linux的主要发行版本有哪些?

      答:①.RedHat Linux       ②.Debian Linux   ③.Ubuntu Linux

       ④.Slackware Linux     ⑤.Suse Linux     ⑥.Gentoo Linux

       ⑦.Mandriva  Linux     ⑧.Redflag  Linux

3.下载CentOS 6.5的光盘镜像文件。

   答:http://vault.centos.org/6.5/isos/x86_64/




单链表的基本操作 1.实验题目 问题描述:实现带头结点的单链表的建立、求长度,取元素、修改元素、插入、删除 等单链表的基本操作。通过代码的编写理解并掌握单链表的过程编写以及作用。 2.实验要求 (1)依次从键盘读入数据,建立个单链表并将单链表的初始化设置为空; (2)通过操作选择,输出单链表中的数据元素 (3)显示单链表的长度; (4)根据指定条件能够查找出元素和修改元素; (5)实现在指定位置插入和删除元素的功能 (6)显示操作后的结果 3.算法设计 (1)用到的结构(逻辑结构、存储结构) 逻辑结构:线性结构 存储结构:带头结点的单链表 (2)算法设计思路 定义结点类型LNode,每个结点包括数据域data和指针域next。定义头指针LinkList 。编写如下函数: 1、createlist(LinkList &L);用尾插法创建个带头结点的单链表。 2、print(LinkList L);输出该单链表中的数据元素。 3、ListLength(LinkList L);求该单链表的长度。 4、GetElem(LinkList &L,int i,ElemType &e);查找第i个元素。 5、SetElem(LinkList &L,int i,ElemType m);修改第i个元素。 6、ListInsert (LinkList &L, int i, ElemType e );在第i个元素前插入个元素。7、ListDelete(LinkList &L,int i,ElemType &e2);删除第i个元素。 8、main();通过case结构来调用createlist(LinkList &L)、GetElem(LinkList &L,int i,ElemType &e)、SetElem(LinkList &L,int i,ElemType m)、ListInsert (LinkList &L, int i, ElemType e )、ListDelete(LinkList &L,int i,ElemType &e2) 4.调试和测试 调试过程总结经过多次调试,本程序能很好的完成实验要求的各项功能。给出几组测 试数据及实验结果: 4.1 系统界面 4.2 创建带头结点的单链表 (先输入单链表整数,每输入完个整数后按回车键,数据输入完后以0结束) 4.3 打印链表中的数据 4.4 打印链表长度 4.5 按位置取元素 4.6 修改链表中的元素 4.7 插入结点 4.8 按结点位置编号删除结点 4.8 显示做了修改后的链表元素: 5.实验总结 对比这次试验,在上机的时候明显感觉到比之前更加有思路,能够很好地找个关键性 的语句对程序进行修改,这次试验虽然说比上次好,但是也暴漏出了许多的缺陷,在编 写的时候,感觉整个流程都挺对,但是就是运行不出来,或者是不能够实现原有的功能 ,通过同学的交流,然后慢慢地参照课本才将本次试验很好地完成。 6.附录(源程序) #include<stdio.h> #include<conio.h> #include"stdafx.h" #define OK 1 #define ERROR 0 typedef char ElemType; typedef int Status; typedef struct LNode { ElemType data; LNode *next; } LNode,*LinkList; Status createlist(LinkList &L) //尾插法创建带头结点的单链表 { int ch; L=new LNode; L->next=NULL; printf("请输入单链表中的数据:"); scanf("%d", &ch); LinkList r=L; while(ch!=0) { LinkList p=new LNode; p->data=ch; p->next=NULL; r->next=p; r=p; scanf("%d", &ch); } return OK; } void print(LinkList L) //输出单链表 { LinkList p=L->next; printf("单链表为:\n"); while(p) { printf("%2d",p->data); p=p->next; }} Status ListLength(LinkList L) //求单链表的长度 { int k=0; LinkList p=L->next; while(p){ k++; p=p->next;} printf("\n"); printf("单链表的长度为 %d:" , k); printf("\n"); return k; } Status GetElem(Lin 单链表是种常见的数据结构,它由系列节点组成,每个节点包含数据元素和指向下个节点的指针。在这个实验报告中,重点是实现带头结点的单链表的基本操作,包括建立、求长度、取元素、修改元素、插入和删除等。 实验题目要求从键盘读入数据来构建个单链表,并初始化为空。这意味着我们需要编写个函数来创建链表,例如`createlist`函数,该函数使用尾插法,即每次新输入的数据会被添加到链表的末尾。这可以通过循环读取用户输入,创建新的节点并将其连接到现有链表的末尾来实现。 实验要求能够输出链表中的数据元素,这可以通过`print`函数完成。此函数遍历链表,打印每个节点的数据域。 另外,链表的长度可以通过`ListLength`函数计算,该函数遍历整个链表,每次遇到个节点就增加计数器,最后返回计数值。 查找和修改元素的功能由`GetElem`和`SetElem`函数提供。`GetElem`用于获取指定位置的元素,而`SetElem`则用于修改这个位置的元素值。这两个函数都需要处理非法索引的情况,例如索引超出链表范围。 此外,实验还需要实现插入和删除操作。`ListInsert`函数在给定位置插入新元素,而`ListDelete`函数删除指定位置的元素。这两种操作都需要在链表中找到正确的位置,然后调整指针以保持链表的连续性。 在实验的调试和测试阶段,作者通过输入不同数据和执行各种操作来验证程序的正确性,并针对出现问题的地方进行了修改和完善。 实验总结部分,作者提到这次实验相比以前更有思路,能够更有效地修改程序,但也暴露了编程过程中的些不足,如逻辑错误或功能不完全实现。这些问题通过同学的交流和参考教材得到了解决。 源代码部分展示了实现这些功能的C语言结构,包括定义链表节点类型`LNode`,头指针`LinkList`,以及上述各函数的定义。这些函数实现了链表操作的核心逻辑。 这个实验旨在加深对单链表的理解,包括其基本操作的实现细节和问题解决过程,这对于学习数据结构和算法至关重要。通过这样的实践,可以提高对链表这种数据结构的实际运用能力。。内容来源于网络分享,如有侵权请联系我删除。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值