模拟UNIX系统成组链接法实现磁盘存储空间的管理组织
自考_操作系统概论真题第3章 存储管理

一、单项选择题7.计算机主存储器中,存储单元的编址单位是( )A.二进制位B.字节C.字D.块8.计算机系统中,存取速度最快的存储器是( )A.寄存器B.主存储器C.高速缓冲存储器D.辅助存储器9.减少可变分区存储管理中碎片的措施是( )A.增大分区长度B.增加分区数目C.采用移动技术D.减少分区长度10.可变分区存储管理中,通常分配最快的算法是( )A.最先适应分配B.最优适应分配C.最坏适应分配D.随机分配7、存储管理中的地址转换(重定位)指的是( )A、将绝对地址转换成逻辑地址B、将物理地址转换成逻辑地址C、将逻辑地址转换成绝对地址D、将物理地址转换成相对地址8、页式管理系统中,页面调度算法淘汰最近使用次数最少的算法是( )A、FIFOB、FILOC、LRUD、LFU9、可以采用静态重定位方式转换地址的管理内存方案是( )A、页式管理B、页式虚拟管理C、可变分区管理D、固定分区管理8.处理器不能..直接访问的存储器是()A.寄存器B.高速缓冲存储器C.主存储器D.辅助存储器9.断电停机后,存储信息随之消失的存储器是()A.磁盘B.磁带C.主存储器D.U盘10.处于运行状态的操作系统程序应放在()A.寄存器中B.高速缓冲存储器中C.主存储器中D.辅助存储器中8.价格昂贵、存取速度最快,但容量较小的存储器是()A.寄存器B.高速缓冲存储器C.主存储器D.辅助存储器9.程序状态字寄存器是属于()A.指令寄存器B.通用寄存器C.控制寄存器D.时钟寄存器10.处理器中仅设置一个界限寄存器的存储管理方式是()A.页式存储管理B.可变分区存储管理C.固定分区存储管理D.单用户连续存储管理7、处理器不能..直接访问的存储器是()A、寄存器B、高速缓冲存储器C、主存储器D、光盘)A、256和65536B、255和65535C、256和65535D、255和655369、页式存储管理中,作业运行时,该作业的页表是放在()A、磁盘B、主存系统区C、主存用户区D、用户程序7.可用来长期存储大量信息的存储器是( )A.寄存器B.高速缓冲存储器C.主存储器D.辅助存储器8.可变分区存储管理的主存分配算法中,查找次数最少的是( )A.随机适应分配算法B.最先适应分配算法C.最优适应分配算法D.最坏适应分配算法9.页式存储管理中,作业运行时,该作业的页表是放在( )A.磁盘中B.主存系统区中C.主存用户区中D.用户程序中7.基址寄存器和界限寄存器是属于()A.指令寄存器B.通用寄存器C.控制寄存器D.时钟寄存器8.存储管理实际管理的是()A.辅助存储器B.全部主存储器C.主存储器中的用户区D.主存储器中的系统区9.页式存储管理中,若不使用快表,则采用二级页表时,每访问一个操作数要访问主存()A.1次B.2次C.3次D.4次10.存储介质上可连续存储信息的一个区域称为“块”,下列关于“块”的错误..概念是()A.块是主存储器与存储设备进行信息交换的逻辑单位B.每次交换总是交换一块或整数块信息C.存储设备的类型是决定块的大小的因素之一D.信息传输的效率是决定块的大小的因素之一7.下列存储设备中,存取速度最快的是( )A.RAMB.硬盘C.光盘D.U盘8.对页式管理中页表的描述,正确的是( )A.页表主要指出主存中块号与磁盘中块号的对应关系B.每个作业的页表长度是固定的,由操作系统指定C.每个作业的页表长度是不同的,由作业所占页的多少而定D.每个作业的页表长度是不同的,由用户事先指定9.存储管理实际上是管理( )A.主存中的操作系统部分B.主存中的用户区域C.整个主存储器D.主存和辅存7.主存储器中,存储单元通常使用的编址单位是A.字B.字节C.块D.二进制位8.处理器中设置有上限寄存器和下限寄存器的存储管理是A.单用户连续B.固定分区C.可变分区D.页式虚拟9.关于虚拟存储器技术的概念,不正..确.的是采用该技术时A.允许用户的逻辑地址空间大于主存的绝对地址空间B.用户的逻辑地址空间的大小由计算机的地址结构和磁盘容量决定C.比较适用于大型作业的运行D.比较适用于多个小型作业的运行7、某一主存储器容量为1M的计算机,分割成4K的等长块。
第5章文件系统习题及答案

(2)链接结构
链接结构文件的逻辑记录是顺序的,但在存储空间中不必选择连续
的物理块,每个物理块的最后一个单元中用来存放物理块之间的链接指
针。要将文件占用的第一块的物理地址登记在文件目录中。
链接结构与顺序结构都只适合于顺序存取,不适宜随机访问,而下
面介绍的索引结构文件适于随机访问。
(3)索引结构
索引结构是实现非连续存储的另一种方法,索引结构为每个文件建立
盘面被划分成相等的扇区,各扇区的编号称为扇区号。磁盘上任何一块
的位置可由三个参数确定:柱面号、磁头号、扇区号。所以,应该选择
(B)、(C)、(D)。
4.如果按文件的用途来分类,可将文件分为_________。
(A)系统文件
(B)永久文件
(C)用户文件
(D)逻辑文件
(E)库文件
【解析】按文件的用途来分类,可将文件分为:系统文件、用户文
盘驱动器等设备。把存储介质的物理单位定义为卷,例如,一盘磁带、
一张软盘片、一个磁盘组都可称为一个卷。把存储介质上连续信息所组
成的一个区域称为块(物理记录)。块是主存储器与这些设备进行信息
交换的单位。目前常用的存储设备是磁带机和磁盘机。
所以,应该选择(A)、(B)、(C)、(D)。
3.磁盘上一物理块的位置可由参数_________确定。
(E)索引结构
【解析】由于存储设备的类型不同、特性各异,因而文件在相应存
储介质上的组织方式也有差异。通常文件的存储结构有三种:顺序结
构、链接结构和索引结构。
(1)顺序结构
一个文件被存放到连续相邻的块上,其逻辑记录顺序和物理块的顺序
相一致,这类文件称顺序文件或连续文件。文件占用的第一块的物理地
模拟UNIX系统成组链接法实现磁盘存储空间的管理

要求:模拟UNIX系统的空闲块成组链接法,实现磁盘存储空间的管理。
[提示]:(1)假定磁盘存储空间已被划分成长度为n的等长块,共有M块可供使用。
UNIX系统中采用空闲块成组链接的方法来管理磁盘存储空间,将磁盘中的每N个空闲块(N<M)分成一组,最后一组可以不足N块, 每组的第一块中登记了下一组空闲块的块数和块号,第一组的块数和块号登记在专用块中,登记的格式如下:当第一项内容为“0”寸,则第二项起指岀的空闲块是最后一组。
⑵现模拟UNIX系统的空闲块成组链接,假定共有8块可供使用,每3块为一组,则空闲块成组链接的初始状态为:开始时,空闲块号是顺序排列的,但经若干次的分配和归还操作后,空闲块的链接就未必按序排列了。
用二维数组A: array [0…M-1] of array [0 …n-1]来模拟管理磁盘空间,用A[i]表示第I块,第0块A[0]作为专用块。
(3) 成组链接的分组情况记录在磁盘物理块中,为了查找链接情况,必须把它们读入主存,故当磁盘初始化后,系统先将专用块内容复制到主存中。
定义一个数组MA存放专用块内容,即MA: =A[0]。
申请一块磁盘空间时,查MA从中找出空闲块号,当一组的空闲块只剩第一块时,则应把该块中指出的下一组的空闲块数和块号复制到专用块中,然后把该块分配给申请者。
当一组的空闲块分配完后则把专用块内容(下一组链接情况)复制到主存,再为申请者分配。
分配算法如下图。
采用成组链接的分配算法(4) 归还一块时给出归还的块号,若当前组不满规定块数时,将归还块登记入该组;若当前组已满,则另建一新组,这时归还块作为新一组的第一块,应把主存中登记的一组链接情况MA复制到归还块中,然后在MA重新登记一个新组归还一块的算法如下图。
采用成组链接的回收算法(5) 设计分配和归还磁盘空间的程序,能显示或打印分配的磁盘空间的块号,在完成一次分配或归还后能显示或打印各空闲块组的情况(各组的空闲块数和块号)。
(完整)文件管理习题及答案

第七章一.选择题1.FAT能描述文件的_B__特征.A。
文件逻辑 B。
文件物理结构 C.文件共享 D.文件保护2。
文件的符号名与物理地址的转换是通过_C__来实现的。
A。
索引 B.索引节点 C。
文件目录 D。
二级索引3。
在UNIX文件系统中,为了对磁盘空间的空闲块进行有效的管理,采用的方法是_B__。
A。
空闲表 B。
成组链接法 C.FAT D.位示图法4.为了实现对文件的共享访问,在读写文件时需对文件加锁。
现在已有一个用户对某文件进行了读加锁,则另一个用户对该文件的_B__加锁操作可以成功。
A。
加读锁和写锁均不能成功 B.加读锁能成功C。
加读锁和写锁均能成功 D. 加写锁能成功5.操作系统实现文件管理后,允许用户对流式文件进行存取的最小单位是___D__。
A。
数据项 B。
记录 C。
文件 D。
字符6。
操作系统采用多级目录结构可以__A__。
A.解决命令冲突B.节省存储空间C.缩短文件传送时间 D。
减少系统开销7。
下述有关文件管理的叙述中,_C__是正确的。
A.一个文件不能同时多次建立B.在一级目录结构中,不同用户可以用相同的文件名C.文件系统主要是实现按名存取D。
逻辑记录的大小与存储介质块的大小必须一一对应8.文件系统是指___D__。
A。
文件的集合 B。
实现文件管理的一组软件C。
文件的目录 D.文件及其属性、管理文件的软件和文件系统接口9.文件系统的主要目的是__A__。
A.实现对文件的按名存取 B。
实现虚拟存储C。
提高外存的读写速度 D。
用于存储系统文件10.操作系统实现文件管理后,用户对记录式文件进行存取的最小单位是_C__.A.扇区 B。
字节 C。
目录 D.记录11。
为了解决不同用户文件的“命名冲突”问题,通常在文件系统中采用以下_B__方法。
A.约定的方法 B。
多级目录 C。
路径 D.索引12。
文件的绝对路径是指_C__。
A。
文件名和文件扩展名B。
一系列的目录文件名和该文件的文件名C.从根上到该文件所经历的路径中各符号名的集合D。
操作系统复习题

操作系统一、单项选择题(共20分,每题1分)1.操作系统是一种()。
A、应用软件B、系统软件C、通用软件D、工具软件2.操作系统的()管理部分负责对进程进行调度A、存储器B、设备B、文件D、处理机3.()要保证系统有较高的吞吐能力。
A、批处理系统B、分时系统C、网络操作系统D、分布式操作系统4.操作系统的基本类型主要有()。
A、批处理系统、分时系统和多任务系统B、单用户系统、多用户系统和批处理系统C、批处理操作系统、分时操作系统及实时操作系统D、实时系统、分时系统和多用户系统5.使多个用户通过与计算机相连的终端、以交互方式同时使用计算机的操作系统是()。
A、单道批处理系统B、多道批处理系统C、分时系统D、实时系统6.下面对进程的描述中,错误的是()。
A、进程是动态的概念B、进程执行需要处理机C、进程是有生命周期的D、进程是指令的集合7.进程的组成部分中()是进程存在的惟一标志。
A、PCBB、数据集合C、共享程序D、非共享程序8.进程从运行状态到阻塞状态可能是由于( )。
A、现运行进程执行了P操作B、现运行进程时间片用完C、现运行进程执行了V操作D、进程调度程序的调度9.进程从运行态到阻塞态不可能是由于现运行进程( )。
A、出现缺页中断B、发生越界中断C、申请磁带读/写D、执行了V操作10.在进程管理中,当()时,进程从阻塞状态变为就绪状态。
A、进程被进程调度程序选中B、等待某一事件C、等待的事件发生D、时间片用完11.位示图法可用于()。
A、页式虚拟存储管理中页面置换B、可变式分区存储管理中空闲区的分配和回收C、分页式存储管理中主存空闲块的分配和回收D、文件目录的查找12.下列()存储方式不能实现虚拟存储器。
A、分区B、页式C、段式D、段页式13.操作系统处理缺页中断时,选择一种好的调度算法对主存和辅存中的信息进行高效调度尽可能地避免()。
A、碎片B、CPU空闲C、多重中断D、抖动14.分页式存储管理的主要特点是()。
操作系统第三版第5章习题解答

第5章习题解答一、填空1.一个文件的文件名是在创建该文件时给出的。
2.所谓“文件系统”,由与文件管理有关的那部分软件、被管理的文件以及管理所需要的数据结构三部分组成。
3.块是辅助存储器与内存之间进行信息传输的单位。
4.在用位示图管理磁盘存储空间时,位示图的尺寸由磁盘的总块数决定。
5.采用空闲区表法管理磁盘存储空间,类似于存储管理中采用可变分区存储管理方法管理内存储器。
6.操作系统是通过文件控制块(FCB)感知一个文件的存在的。
7.按用户对文件的存取权限将用户分成若干组,规定每一组用户对文件的访问权限。
这样,所有用户组存取权限的集合称为该文件的存取控制表。
8.根据在辅存上的不同存储方式,文件可以有顺序、链接和索引三种不同的物理结构。
9.如果把文件视为有序的字符集合,在其内部不再对信息进行组织划分,那么这种文件的逻辑结构被称为“流式文件”。
10.如果用户把文件信息划分成一个个记录,存取时以记录为单位进行,那么这种文件的逻辑结构称为“记录式文件”。
二、选择1.下面的 B 不是文件的存储结构。
A.索引文件B.记录式文件C.串联文件D.连续文件2.有一磁盘,共有10个柱面,每个柱面20个磁道,每个盘面分成16个扇区。
采用位示图对其存储空间进行管理。
如果字长是16个二进制位,那么位示图共需A字。
A.200 B.128 C.256 D.1003.操作系统为每一个文件开辟一个存储区,在它的里面记录着该文件的有关信息。
这就是所谓的 B 。
A.进程控制块B.文件控制块C.设备控制块D.作业控制块4.文件控制块的英文缩写符号是 C 。
A.PCB B.DCB C.FCB D.JCB5.一个文件的绝对路径名总是以 C 打头。
A.磁盘名B.字符串C.分隔符D.文件名6.一个文件的绝对路径名是从 B 开始,逐步沿着每一级子目录向下,最后到达指定文件的整个通路上所有子目录名组成的一个字符串。
A.当前目录B.根目录C.多级目录D.二级目录7.从用户的角度看,引入文件系统的主要目的是D 。
成组链接模拟unix文件系统

问题描述]在任一OS下,建立一个大文件,把它假象成一张盘,在其中实现一个简单的模拟UNIX文件系统。
[基本要求]1.在现有机器硬盘上开辟20M的硬盘空间,作为设定的硬盘空间。
2.编写一管理程序对此空间进行管理,以模拟UNIX(linux)文件系统,具体要求如下:(1)要求盘块大小1k(2) i 结点文件类型正规文件目录文件(共1byte)块设备管道文件。
物理地址(索引表)共有13个表项,每表项2byte。
文件长度4byte。
联结计数1byte(3)0号块超级块栈长度50空闲盘块的管理:成组链接( UNIX)位示图法(Linux)(4)每建一个目录,分配4个物理块文件名14byte(5)目录项信息i 结点号2byte(6)结构:0#:超级块1#-20#号为i 结点区20#-30#号为根目录区(7)功能:1、初始化2、建立文件(需给出文件名,文件长度)3、建立子目录4、打开文件(显示文件所占的盘块)5、删除文件6、删除目录7、显示目录(即显示目录下的信息,包括文件、子目录等)8、显示整个系统信息2、模拟文件系统[问题描述]在任一OS下,建立一个大文件,把它假象成一张盘,在其中实现一个简单的小型文件系统。
[基本要求]该小型文件系统没有子目录机制,文件连续分配,不考虑分区。
做一个简单的操作界面,提供四条简单的命令:简单的ls、cat、cp、rd.进一步增强:上题中的文件系统功能:文件系统不连续分配,可以有子目录机制,(如两级子目录机制)。
附录课程设计报告内容一.实验题目与要求。
二.总的设计思想及环境说明、工具等。
三.本题所需数据结构与模块说明。
四.运行结果与运行情况。
五.自我评析与总结。
1.你认为你完成的哪些比较好或比较出色;2.差距与局限,什么做的不太好或什么地方可以做的更好以待改进;3.从本作业得到的收获:对编写与调试过程中经验教训的总结;4.完成本题的其他方法或你的设想;5.对本实验题的评价和改进意见。
操作系统第6章习题带答案

第六章一、问答题1、什么是文件的逻辑结构?什么是文件的物理结构?2、为了能够查找到文件的位置,在采用连续文件、链接文件和索引文件时,在目录中需要登记哪些内容?3、磁盘容错技术可以分为哪三级?4、目前最广泛采用的目录结构是哪种?它有什么优点?5、文件在磁盘上存放的形式有几种?它们与存取方法有何关系?物理结构顺序结构链接结构索引结构直接文件存取方法顺序顺序(显式\隐式)顺序顺序随机(显式)随机随机按键6、简述以下移臂调度算法的思想:先来先服务调度算法、最短查找时间优先算法、电梯调度算法。
7、简述文件控制块中包含的内容。
8、假设多个用户共享一个文件目录系统,用户甲要用文件A、B、C、E,用户乙要用文件A、D、E、F。
已知用户甲的文件A与用户乙的文件A实际上不是同一个文件;用户甲的文件C与用户乙的文件F实际上是同一个文件;甲、乙两用户的文件E是同一个文件。
试问你是否可以拟定一种文件目录组织方案,使得甲、乙两用户既能共享文件而又不造成混乱?答:采用多级目录结构,文件目录分解为基本目录和符号目录,只要在不同文件符号目录中使用相同文件内部标识符,甲、乙两用户既能共享文件而又不造成混乱。
画图并简要说明二、计算题1、假定盘块的大小为1KB,硬盘的大小为10GB,采用显示链接分配方式时,请问文件分配表只是占用多大空间?磁盘块数:10GB/1KB=10M表达10M盘块,FAT每项至少需要24位,即3个字节所以文件分配表至少占用3B*10M=30M2、系统中磁头停留在磁道号为70的磁道上,这时先后有4个进程提出了磁盘访问请求,要访问磁盘的磁道号按申请到达的先后顺序依次为:45,68,28,90。
移动臂的运动方向:沿磁道号递减的方向移动。
若分别采用FCFS磁盘调度算法、SSTF算法,SCAN算法时,所需寻道长度分别为多少(走过多少柱面)?0号磁道是最里面还是最外面的一个磁道?提示:FCFS磁盘调度算法:70->45->68->28->90SSTF算法:70->68->90->45->28SCAN算法:70->68->->45->28->903、某系统采用UNIX操作系统的专用块内容为:空闲块数3,然后依次登记的空闲块号为77,89,60,问此时若一个文件A需要5个盘块,系统进行分配后有个文件B被删除,它占用的盘块块号为100,101,109,500,则回收这些盘块后专用块的内容是什么?写出整个分析过程。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
要求:模拟UNIX系统的空闲块成组链接法,实现磁盘存储空间的管理。
[提示]:
(1) 假定磁盘存储空间已被划分成长度为n的等长块,共有M块可供使用。
UNIX系统中采用空闲块成组链接的方法来管理磁盘存储空间,将磁盘中的每N个空闲块(N<M)分成一组,最后一组可以不足N块,每组的第一块中登记了下一组空闲块的块数和块号,第一组的块数和块号登记在专用块中,登记的格式如下:
当第一项内容为“0”时,则第二项起指出的空闲块是最后一组。
(2) 现模拟UNIX系统的空闲块成组链接,假定共有8块可供使用,每3块为一组,则空闲块成组链接的初始状态为:
开始时,空闲块号是顺序排列的,但经若干次的分配和归还操作后,空闲块的链接就未必按序排列了。
用二维数组A:array [0…M-1] of array [0…n-1]来模拟管理磁盘空间,用A[i]表示第I块,第0块A[0]作为专用块。
(3) 成组链接的分组情况记录在磁盘物理块中,为了查找链接情况,必须把它们读入主存,故当磁盘初始化后,系统先将专用块内容复制到主存中。
定义一个数组MA存放专用块内容,即MA: =A[0]。
申请一块磁盘空间时,查MA,从中找出空闲块号,当一组的空闲块只剩第一块时,则应把该块中指出的下一组的空闲块数和块号复制到专用块中,然后把该块分配给申请者。
当一组的空闲块分配完后则把专用块内容(下一组链接情况)复制到主存,再为申请者分配。
分配算法如下图。
采用成组链接的分配算法
(4) 归还一块时给出归还的块号,若当前组不满规定块数时,将归还块登记入该组;若当前组已满,则另建一新组,这时归还块作为新一组的第一块,应把主存中登记的一组链接情况MA复制到归还块中,然后在MA重新登记一个新组。
归还一块的算法如下图。
采用成组链接的回收算法
(5) 设计分配和归还磁盘空间的程序,能显示或打印分配的磁盘空间的块号,在完成一次分配或归还后能显示或打印各空闲块组的情况(各组的空闲块数和块号)。
本实习省去了块号与物理地址之间的转换工作,而在实际的系统中必须进行块号与物理地址的转换工作。
(6) 运行你所设计的程序,假定空闲块链接的初始状态如提示(2),现先分配4块,再依次归还第2块和第6块。
把执行后分配到的块号依次显示或打印出来,且显示或打印空闲块组的情况。
实验报告
附:源程序
#include<stdio.h>
int MA[4]; /*空闲块数组*/
int A[9][4]={{3,1,2,3},{3,4,5,6},{0,0,0,0},{0,0,0,0},{3,0,7,8}, {0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0}}; /*磁盘空间*/ int mark[9]; /*存放已分配的块*/
int No=0; /*已分配的块数*/
void display1()
{ int i,j,temp,count;
No=0;
if(MA[1]!=0)
{ i=MA[0];
printf("\ngroup1:");
for(j=1;j<=i;j++)
{ printf("%d ",MA[j]);
mark[++No]=MA[j];
temp=MA[1];
count=2;
while(A[temp][1]!=0)
{ printf("\ngroup%d:",count);
i=A[temp][0];
for(j=1;j<=i;j++)
{ printf("%d ",A[temp][j]);
mark[++No]=A[temp][j];
}
count++;
temp=A[temp][1];
}
printf("\ngroup%d:",count);
i=A[temp][0];
for(j=2;j<=i+1;j++)
if(A[temp][j]>0)
{ printf("%d ",A[temp][j]);
mark[++No]=A[temp][j];
}
}
else
{ i=MA[0];
if(i==1)
printf("\nThe blocks are all assigned");
else
{ printf("\ngroup1:");
for(j=2;j<=i;j++)
{ printf("%d ",MA[j]);
mark[++No]=MA[j];
}
}
}
}
void display() /*显示分组情况*/
{ int i,j;
if(MA[0]!=0)
display1();
else
{ i=MA[1];
for(j=0;j<=3;j++)
MA[j]=A[i][j];
}
}
void assign() /*分配空闲块*/
{ int s,i;
if(MA[0]>1) /*若该组不止一个空闲块*/
{ i=MA[0];
s=MA[i];
MA[0]--;
printf("\nnumber of the block:%d",s);
}
else if(MA[0]==1) /*只剩一个空闲块*/
{ if(MA[1]!=0) /*还有其它空闲块组*/
{ s=MA[1];
for(i=0;i<=3;i++)
A[0][i]=A[s][i];
MA[0]--;
printf("\nnumber of the block:%d",s);
}
else /*没有其它空闲块组*/
{ printf("\nThere isn't any space");
return;
}
}
else /*当前组已分配完*/
{ for(i=0;i<=3;i++)
MA[i]=A[0][i];
assign();
}
display(); /*显示分组情况*/
}
void callback() /*回收空闲块*/
{ int i,j,temp;
printf("\ninput the No. of the block you want to callback:");
scanf("%d",&j);
getchar(); /*得到待回收的空闲块号*/
for(temp=1;temp<=No;temp++)
{ if(mark[temp]==j)
break;
}
if(temp<No+1) /*若该空闲块已在,退出*/
{ printf("\nThe block is in the disk");
return;
}
if(MA[0]<3) /*当前组不满3块*/
{ i=MA[0];
MA[i+1]=j;
MA[0]++;
}
else /*已有3块*/
{ for(i=0;i<=3;i++)
A[j][i]=MA[i];
MA[0]=1;
MA[1]=j;
}
display(); /*显示*/
}
void menu() /*功能选择函数*/
{ int choice;
char judge;
printf("\ninput your choice:(1--assign,2--callback):");
scanf("%d",&choice);
getchar();
if(choice==1)
assign();
else if(choice==2)
callback();
else
printf("\ninvalid command!");
printf("\ncontinue or not?(y--Yes,n--Not):");
scanf("%c",&judge);
getchar();
if(judge=='y')
menu();
else
{ printf("\nNow the graph is:");
display();
printf("\npress any key to quit");
getch();
}
}
main()
{ int i;
for(i=0;i<=3;i++)
MA[i]=A[0][i];
display();
menu();
}。