华中师范大学2007–2008学年第1学期期末考试试卷(B卷)课程名称基于Linux的程序设计课程编号84820005任课教师题型选择题填空题简答题阅读程序题编程题总分分值2213121538100得分得分评阅人一、选择题(共11题,每题2分,共22分)()1.安装Linux时,若一台计算机的内存为256MB,则SWAP分区(交换分区)的大小通常应该设定为。A.64MBB.128MBC.512MBD.1GB()2.下列说法中,不正确的是。A.Linux区分大小写。B.Linux提供虚拟控制台的访问方式,这可以通过按下键盘的CTRL+ALT+Fn来实现(n=1,…,6)。C.RedHatLinux是目前世界上最流行的Linux发行套件。D.Linux是免费使用和自由传播的类UNIX操作系统,它没有版权。()3.为了利用GDB调试C/C++程序,在编译时需要把调试信息加载到可执行文件中,则用GCC编译源程序时,需要利用选项。A.-gB.-EC.–WallD.–O2()4.$temp=’thisisatempedvariable’;echofoo${temp}上述命令执行的结果为。A.fooB.foo$tempC.foo’thisisatempedvariable’D.foothisisatempedvariable()5.下列关于网络编程的叙述中,错误的是。A.一个完整的网络程序应该包含两个独立的程序,它们分别运行在客户端和服务器端。B.当使用UDP编程时,如果函数sendto()函数成功返回,表示系统发出的数据被通讯的对方准确接收到了。C.相同条件下UDP发送数据的速度要比TCP快。D.端口号是16bit的地址码,端口号和IP地址构成一个插口(socket)。院(系):专业:年级:学生姓名:学号:-------------------------------------------------密----------------------------------封-----------------------------线---------------------------------------------------------第1页(共4页)()6.为了得到所有的命令行输入的参数,我们可以使用变量:。A.$@B.$#C.$0D.$!()7.某人用vi编辑器编写了一个脚本文件shell.sh,他想将文件名改为shell2.sh,下列命令可以实现。A.cpshell.shshell2.shB.mvshell.shshell2.shC.llsshell.shshell2.shD.llshell.shshell2.sh()8.在linux下进行shell编程时,注释符是。A.#B.//C./**/D.以上都不对()9.已知某用户stud1,其用户目录为/home/stud1。如果当前目录为/home,进入目录/home/stud1/test的命令是。A.cdtestB.cd/stud1/testC.cdstud1/testD.cdhome()10.文件exer1的访问权限为rw-r--r--,现要增加所有用户的执行权限和同组用户的写权限,下列命令正确的是。A.chmoda+x,g+wexer1B.chmod765exer1C.chmodo+xexer1D.chmodg+wexer1()11.在用命令ls–l列出文件的详细信息时,表示Linux文件访问权限的那一组数据共10位,分成四段,第二段(第2-4位)表示的是。A文件类型B其他用户的权限C文件所有者所在组的权限D文件所有者的权限得分评阅人二、填空题(共10题,每空1分,共13分)12.Linux中常见的文本编辑器有和。13.常用的socket类型有两种:和。14.就是将前一个命令的标准输出作为后一个命令的标准输入。15.你是公司的Linux服务的管理员。你想查看/root下文件和文件夹的赋权的详细列表,可以使用命令。16.shell不仅是用户命令的解释器,同时也是一种功能强大的,是Linux的缺省shell。17.在shell编程时,如果将测试条件置于方括号内,应注意方括号两边必须有。18.为了将一个命令置于后台运行,需要在命令后面加上符号。19.将命令“command”的标准输出重定向到文件“filename”中的方法是。20.在用vi编辑文件时,为了将文件内容存入test..txt文件中(但不退出vi),应在命令模式下键入。21.编写完shell程序后,若想运行此程序,必须赋予该shell脚本文件权限。得分评阅人三、简答题(共2题,共12分)22简述Linux下编程的一般步骤。(本题满分6分)23.vi编辑器有哪几种工作模式?各工作模式之间如何进行转化?(本题满分6分)-------------------------------------------------密----------------------------------封-----------------------------线---------------------------------------------------------第2页(共4页)得分评阅人四、读程序题(共2题,共15分)24有如下的程序:#includesys/types.hmain(){pid_tpid;pid=fork();if(!pid)printf(thisischild,mypidis%d\n,getpid());elseif(pid0)printf(thisisparent,childhaspid%d,andmypidis%d\n,pid,getpid());elseprintf(forkfail\n);}编译运行后得到如下结果:thisischild,mypidis3845thisisparent,childhaspid3845,andmypidis3844.试解释产生上述结果的原因,并分析程序的执行过程。(本题满分9分)25某Shell程序的功能是:判断文件是不是正规文件,如果是将其拷贝到/regularfile目录下,请将程序补充完整。(本题满分6分)#!/bin/shFILENAME=echo“Inputfilename:”#输入文件名if#如果是正规文件then#拷贝至/regularfile目录下fi得分评阅人五、编程题(共3题,共38分)26.设计一个Shell程序,在/userdata目录下建立50个目录,即user1~user50,并设置每个目录的权限,其中其他用户的权限为:读;文件所有者的权限为:读、写、执行;文件所有者所在组的权限为:读、执行。(本题满分15分)-------------------------------------------------密----------------------------------封-----------------------------线---------------------------------------------------------第3页(共4页)27.试编写一个简单的C程序,分别列出在终端tty1~tty6共6个终端上运行的所有进程。(本题满分8分)28.设计一个程序,当用户从客户端输入“Hello,Server”,传送到服务器端,变成“Hello,Client”,送回客户端;如果从客户端输入“Hello,ABC”,传送到服务器端,则变成“Hello,abc”,送回客户端;如果从客户端输入“exit”,传送到服务器端,服务器端程序退出,不向客户端送回任何信息;上述三种情况之外的其它情况,从客户端输入的内容经服务器后均原样送回客户端。(本题满分15分)-------------------------------------------------密----------------------------------封-----------------------------线---------------------------------------------------------第4页(共4页)