期末试卷A含答案版.doc_第1页
期末试卷A含答案版.doc_第2页
期末试卷A含答案版.doc_第3页
期末试卷A含答案版.doc_第4页
期末试卷A含答案版.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

湖北科技学院计算机学院 2014年秋 2012级 物联网工程(本科)专业 LINUX高级编程期末考查试卷(闭卷、100分钟)一、单选题(每小题2分,共60分)1.关于Linux内核版本的说法,以下错误的是(C)。 A表示为主版本号.次版本号.修正号 B1.2.3表示稳定的发行版 C1.3.3表示稳定的发行版 D2.2.5表示对内核2.2的第5次修正2.下列不是可执行程序运行时内存结构的是( D )。 A.代码区 B. 数据区 C.栈堆区D.变量区3. 下列有关fork()函数返回值说法错误的是( D )。A. 正常情况下,fork调用一次,会返回两次。B. 返回值等于0表示在子进程返回。C. 返回值大于0表示在父进程中返回。 D. 大于0的返回值为父进程PID号。4. 进程调用wait将被阻塞,直到( D )。A. 用户按任意键B. 收到时钟信号C. 子进程被创建 D. 子进程结束5. 下列关于网络编程的叙述中,错误的是( C )。A.一个完整的网络程序应该包含两个独立的程序,它们分别运行在客户端和服务器端。B.相同条件下UDP发送数据的速度要比TCP快。C.当使用UDP编程时,若函数sendto()成功返回,表示系统发出的数据被通讯的对方准确接收到了。D.端口号是16bit的地址码,端口号和IP地址构成一个插口(socket)。6. 删除命名管道的系统调用是( A )。A. unlinkB. closeC. fcolseD. dup2 7. 当打开vi编辑器编辑文件时,vi处于(A)模式。 A. 命令模式 B.编辑模式 C.实模式 D.虚模式8. 为了将当前目录下的归档文件myftp.tgz解压缩,可以使用( A )命令。 A.tarxvzfmyftp.tgzB.tarxvfmyftp.tgz C.tarvzfmyftp.tgz D.tarjvzfmyftp.tgz9. cat命令可( C )。A. 设置捕鼠器B. 查看子目录内容 C. 查看文本文件内容D. 查看二进制文件10. man命令可( D )。A. 查看编译信息B. 编译源程序 C. 查看用户信息D. 查看帮助信息11. 在Shell中Ctrl+D用于( A )。A. 输入文件结束符B. 撤销最近做的操作 C. 输出文件结束符D. 输出文件名12. pwd命令可( B )。A. 查看密码B. 查看当前目录 C. 查看在线用户D. 查看终端13. kill命令的功能是( C )。A. 停止进程B. 执行异步IO C. 向进程发送信号D. 查看帮助信息14. 某shell程序运行时需向脚本传递参数,为得到参数的个数,可以使用( B )。 A.$ B.$# C.$0D.$!15. 在Linux中执行命令时,重定向IO的是( D )。A. 命令B. 参数 C. 标准输入D. Shell16. cp命令用于( A )。A. 拷贝文件 B. 查询数据库 C. 网络连接D. 执行命令17. 默认情况下管理员创建了一个用户,就会在( B)目录下创建一个用户主目录。A./usr B./home C./root D./etc18.在vi编辑器里,命令dd用来删除当前的(A )。A.行B.变量C.字D.字符19.vi中哪条命令是不保存强制退出( C)。A.:wqB.:wq!C.:q!D.:quit20. Shell脚本中的注释用( C )标记。A. /B. /*/C. #D. *21. 用vi编辑并保存文件后,要退出vi编辑器时,可按Esc键切换到命令模式后,输入( A)。 A.:qB.:aC.:bD.:c22. bind调用用于( A )。A. 为socket分配地址B. 客户端与服务器连接C. 接收socket上的连接D. 监听socket上的连接23. 一个进程收到SIGCHILD信号,表示( C )。A. 创建子进程成功B. 创建子进程失败 C. 子进程结束D. 子进程开始运行24.如果用户想对某一命令详细的了解,可用( C )命令。A.lsB.helpC.manDdir25.若要将鼠标从VM中释放出来,可按(A )键来实现。 A.Ctrl+AltB. Ctrl+Alt+DelC. Ctrl+Alt+EnterD. Ctrl+Enter26.在UNIX/Linux系统添加新用户的命令是(D)。A.groupaddB.usermod C.userdel D.useradd27.删除文件命令为( D )。 AmkdirB.moveC.mvD.rm28.从后台启动进程,应在命令的结尾加上符号(A)。 A&B.C.#D.$29.如果执行命令#chmod746file.txt,那么该文件的权限是( )。 A.rwxr-rw-B.rw-r-r-C.-xrrwxD.rwxr-r30.下列那一个指令可以设定使用者的密码(C )。 ApwdBnewpwdCpasswdDpassword二、简答题(第1小题4分,第2小题6分,共10分)1.进程之间通信有哪几种方式,各用于何种情景? 答:管道、共享内存、信号、消息、socket。进程通信根据交换信息量的多少分为高级通信和低级通信。低级通信一般只传送一个或几个字节的信息,以达到控制进程执行速度的作用(如pv操作);高级通信则要传送大量数据,目的不是为了控制进程的执行速度,而是为了交换信息。高级进程通信方式有很多种,大致可归并为三类:共享存储器、管道文件和消息传递。共享存储器:在内存种分配一片空间作为共享存储区。需要进行通信的进程把它附加到自己的地址空间中,不需要时则把它取消。管道文件:它是连接两个命令的一个打开文件。一个命令向该文件中写入数据,为写者;另一个命令从该文件中读出数据,为读者。消息传递:它以消息为单位在进程间进行数据交换。2.若在计算机硬件系统中增加一个字符设备,为让用户方便地使用该设备,从底层硬件到应用层用户接口,我们应该在哪些层次编写何种功能的软件?可能会碰到哪些问题? 答:驱动程序,虚拟文件系统VFS,设备文件节点,应用层API 驱动程序:驱动程序就是一组程序,一个比较特别的软件,它具有一般程序的一些特性,可以形象地把它理解为是搭建在计算机硬件设备与操作系统之间的桥梁,它的作用就是使操作系统能够正确地识别、管理、使用相应的硬件设备。 虚拟文件系统VFS: 向上,对应用层提供一个标准的文件操作接口;对下,对文件系统提供一个标准的接口,以便其他操作系统的文件系统可以方便的移植到Linux上;VFS内部则通过一系列高效的管理机制,比如inode cache, dentry cache 以及文件系统的预读等技术,使得底层文件系统不需沉溺到复杂的内核操作,即可获得高性能;此外VFS把一些复杂的操作尽量抽象到VFS内部,使得底层文件系统实现更简单。设备文件节点:x中设备节点是通过“mknod”命令来创建的。一个设备节点其实就是一个文件,Linux中称为设备文件。有一点必要说明的是,在Linux中,所有的设备访问都是通过文件的方式,一般的数据文件程序普通文件,设备节点称为设备文件。应用层API:用户编程接口API遵循了UNIX中最流行的应用编程界面标准-POSIX标准。POSIX标准是由IEEE和ISO/IEC共同开发的标准系统。该标准基于当时现有的UNIX实践和经验,描述了操作系统的系统调用编程接口API,用于保证应用程序可以在源程序一级上在多种操作系统上移植运行。这些系统调用编程接口主要是通过C库(LIBC)来实现的。三、程序设计题(每题3分,共30分)1某工程包含源文件sub1.c,sub1.h, sub2.c, fun.h, fun.c, main.c,生成可执行文件doit,写一个makefile,要求: (1)执行make,可以最小编译代价得到可执行文件doit。 (2)执行make clean,清除可执行文件和全部目标文件。 (3)若sub1.h修改,sub1.o需重新编译;若fun.h发生修改,fun.o需重新编译。 (4)若main.o,sub1.o,sub2.o,fun.o发生修改,doit需重新生成。解:Makefiledoit:sub1.o sub2.o fun.o main.ogcc -o doit sub1.o sub2.o fun.o main.omain.o:main.cgcc c main.csub1.o:sub1.c sub1.hgcc -c sub1.csub2.o:sub2.c gcc -c sub2.cfun.o:fun.c fun.hgcc c fun.cclean: rm -rf *.o doit2桌子上有一个盘子,最多只能装2个水果。爸爸只能向盘中每次放入一个水果,儿子每次从盘中取出一个水果。请编写两个C语言程序,模拟爸爸和儿子的动作过程。 解: #include#include#includevoid Father();/Father进程void Son();/Son进程void Print();/向控制台输出信息int Plate_Size=0;/盘子中开始的苹果数int apple=0;/苹果数int Father_lag=0;/父亲是否处理等待状态,1时表示等待int Son_lag;/儿子是否处于等待状态,1时表示等待void Print()printf(现在盘子里有%d个苹果n,apple);if(Father_lag) printf(Father进程处于等待状态);if(Son_lag) printf(Son进程处于等待状态);if(Father_lag=0)&(Son_flag=0)!=1) printf(n);void Father()/Father进程 apple+; Print();void Son()/Son进程 apple-; Print();int main() int i;/1,表示Father进程操作,2时表示Son进程操作 int Plate_Size;/水果数量 while(1) i=rand()%2+1;/产生1,2随机数,其中1,表示Father()操作,2表示Son()进程操作 switch(i) case 1: if(Plate_Size=2) Father_lag=1;/Father()进程等待 Print(); else Father(); if(Son_lag=1) Son_lag=0;/唤醒Son()可以拿苹果了 Son(); break; case 2: if(Plate_Size=0) Son_lag=1;/Son()进程等待 Print(); else Son(); if(Father_lag=1) Father_lag=0;/唤醒Father()可以放苹果了 Father(); br

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论