2023年8月2日发(作者:)
( ) 1。 下列关于Linux安装的说法中,不正确的是 。
A。如果计算机的内存为128MB,则SWAP分区(交换分区)的大小通常设定为256M。
B.安装时Linux分区的文件系统类型一般为ext2或ext3.
C.安装时要进行磁盘分区,如果选择“自动分区”,系统会自动保留硬盘上原来的数据。
除了可以从光盘安装外,还可以从网上下载Linux的iso映像文件,从硬盘安装。
( ) 2。 下列说法中,不正确的是 。
A. Shell程序编写完后还需要用gcc编译器编译。
B.可以通过将shell程序作为sh命令的输入来执行shell程序.
C。 shell程序中定义的函数不能有参数。
D。 Linux是免费使用和自由传播的类UNIX操作系统,但它并不是没有版权。
( ) 3. 为了利用GDB调试C/C++程序,在编译时需要把调试信息加载到可执行文件中,则用GCC编译源程序时,需要利用选项 。
A. –O2 B. -E C. –Wall D. —g
( ) 4. $temp=’world’;echo hello’$temp’
上述命令执行的结果为 。
A。 helloworld B. hello$temp C。 hello’world’ D. hello
( ) 5。 下列关于网络编程的叙述中,错误的是 。
A.一个完整的网络程序应该包含两个独立的程序,它们分别运行在客户端和服务器端.
B。相同条件下UDP发送数据的速度要比TCP快.
C. 当使用UDP编程时,如果函数sendto( )成功返回,表示系统发出的数据被通讯的对方准确接收到了。
D。端口号是16bit的地址码,端口号和IP地址构成一个插口(socket)。
( ) 6。 某shell程序在运行时需要向脚本传递参数,则为了得到所有命令行参数的个数,我们可以使用变量 。
A. $@ B. $# C。 $0 D。 $!
( ) 7. 将当前目录下的文件shell。sh移动到目录/home/linux下的命令为 。
A。 cp /home/linux B. mv /home/linux
C。 lls / home/linux/shell。sh D。 mv /root/ /home/linux/shell。sh
( ) 8. 在linux下进行shell编程时,注释符是 。
A. # B. // C. /* */ D。 以上都不对
( ) 9. 任何时候用户需要回到用户主目录时可以使用命令 。
A。 cd B. pwd C. path D. cd 。
( ) 10. 文件exer1的访问权限为744,现要取消文件所有者的执行权限,同时增加同组用户的写权限,下列命令中正确的是 。
A。 chmod u+x, g+w exer1 B. chmod 646 exer1
C. chmod a—x, g+w exer1 D. chmod g+w exer1
11. 就是将前一个命令的标准输出作为后一个命令的标准输入。
12. Linux有两种工作界面:字符界面和图形界面,其中 界面功能更强大.
13. 常用的socket类型有两种: 和 。
14。 将文件file1和文件file2连接成文件file3的命令是 。
15. 传递给shell脚本的位置参数只有前9个可以被访问,为了访问第9个位置参数以后的参数,可以使用命令 .
16. shell不仅是用户命令的解释器,同时也是一种功能强大的 , 是Linux缺省的shell.
17。 在shell编程时,如果将测试条件置于方括号内,应注意方括号两边必须有 .
18。 有时用户需要在一行给出多个shell命令,假定输入的命令都需要运行,则在shell提示符下输入命令时,可在命令之间加上符号 。
19。 为了获得父进程的ID号,可是使用函数 .
20. 在用bash命令调试shell程序时,为了将shell执行的每一个命令行都显示出来,应该使用bash的选项 。
21。 在Linux下调试c程序时,在提示符(gdb)下输入b 10表示 .
22。 你是公司的Linux服务的管理员。你想查看/root下文件和文件夹的赋权的详细列表,可以使用命令 .
23。 在用vi编辑好文件后,为了将文件内容存入test。。txt文件中并退出vi(开始进入vi时并未输入文件名),应在末行模式下键入 。
22. 试分别说明Linux下shell程序和C程序从编写到运行的一般步骤.(本题满分5分)
23。 vi编辑器有哪几种工作模式?各工作模式之间如何进行转化?(本题满分5分)
24。 阅读程序,写出程序的执行结果,并分析程序的执行过程。(本题满分10分)
#include #include int main() { pid_t result; int var=10; printf("before fork,var=%dn”,var); result=fork(); if(result<0) printf("fork failn"); else if(result〉0) { var++; printf("This is parent!n"); } else { var— -; printf("This is child!n”); } printf(”after fork var=%dn",var); return 0; } 假定父子进程均可在一个时间片内执行完,且操作系统每次均先调度子进程. 25。 某Shell程序以一个普通文件作为参数,其功能是:判断文件的大小是否为0,如果是则删除它;否则将该文件的内容输出到标准输出,请将程序补充完整。(本题满分10分) #!/bin/sh FILENAME= echo —n "Input file name:" #输入文件名 #如果不是文件 then #shell程序直接退出 fi #判断该文件是否为空 then #为空则删除它 else cat $FILENAME #否则输出文件的内容到标准输出 fi 26. 假如你是机房系统管理员,某班上的80个学生在机房的Linux服务器上共创建了80个帐号,帐号名为“user20060001”~“user20060080”,现在课程结束了,这些帐号均不再使用。试编写一个shell程序,删除学生所建的上述帐号.(本题满分12分) 27. 试编写一个简单的C程序,分别列出在终端tty1~tty6共6个终端上运行的所有进程。(本题满分8分) 28. 设计一个程序,当用户从客户端输入“Hello,Server”,传送到服务器端,变成“Hello,Client”,送回客户端;如果从客户端输入“Hello,ABC”,传送到服务器端,则变成“Hello,abc”,送回客户端;如果从客户端输入“exit”,传送到服务器端,服务器端程序退出,不向客户端送回任何信息;上述三种情况之外的其它情况,从客户端输入的内容经服务器后均原样送回客户端。(本题满分15分) 一、 选择题(共10题,每题2分,共20分) 1。C 2。A 3。D 5。C 6.B 7。B 8.A 4。B 9.A 10。C 二、 填空题(共13题,每空1分,共15分) 11.管道(或者“|”) 12.字符界面 13.流式socket(流式套接字,SOCK_STREAM),数据报式socket(数据报式套接字,SOCK_DGRAM) 14.cat file1 file2 〉 file3 15.shift 16.编程语言 bash 17.空格 18.; 19.getppid() 20。 -v 21。在第10行设置断点 22。 ls –l /root(写成ls –l也算对)23。wq (或者x test。txt) 三、简答题(共2题,共10分) 22。 试分别说明Linux下shell程序和C程序从编写到运行的一般步骤。(本题满分5分) (1) 在linux的命令提示符下启动编辑器,如输入vi,启动vi编辑器. (2) 输入程序的内容,然后保存,退出。 (3) 如果编写的是shell程序,在运行前需要增加执行权限,可通过如下语句: chmod +x filename 如果编写的是c程序,则进行编译,GCC 源文件 –o 目标文件。 (4) 如果发现程序有语法错误或者逻辑错误,则需要继续调试程序,直至程序无任何语法错误或逻辑错误. (5) 运行程序 ./可执行文件名、 23. vi编辑器有哪几种工作模式?各工作模式之间如何进行转化?(本题满分5分) vi有三种工作模式:命令行模式,文本输入模式,末行模式.各模式之间的切换如下图所示: 四、读程序题(共2题,共20分) 24 before fork,var=10 This is child after fork var=9 before fork,var=10 This is parent! after fork var=11 程序的执行过程如下: 程序先定义了两个变量result和var,然后输出变量var的值, 得到"before fork var=10”这一行输出(父子进程各复制了一份).当执行到result=fork()时程序分叉,产生父子两个进程。系统首先调度子进程执行,直至子进程结束。( 题目假定父子进程均可在一个时间片内执行完,且操作系统每次均先调度子进程。) 而在子进程中result为0,故走的是条件分支的最后一个分支,输出: This is child. after fork var=9 子进程执行完了之后调度父进程执行,直至父进程结束。而在父进程中result为子进程号,大于0,于是走条件分支的第二个个分支,输出: This is parent after fork var=11 25 #!/bin/sh FILENAME= echo —n "Input file name:" read FILENAME if [ ! —f $FILENAME ] then exit fi if [ ! -s $FILENAME ] then rm $FILENAME else cat $FILENAME fi 期末考试试卷(B卷) ( ) 1. 安装Linux时,若一台计算机的内存为256MB,则SWAP分区(交换分区)的大小通常应该设定为 。 A. 64MB B。 128MB C。 512MB D。 1GB ( ) 2。 下列说法中,不正确的是 。 A。 Linux 区分大小写. B。 Linux提供虚拟控制台的访问方式,这可以通过按下键盘的CTRL+ALT+Fn来实现(n=1,…,6)。 C。 Red Hat Linux是目前世界上最流行的Linux发行套件。 D. Linux是免费使用和自由传播的类UNIX操作系统,它没有版权。 ( ) 3。 为了利用GDB调试C/C++程序,在编译时需要把调试信息加载到可执行文件中,则用GCC编译源程序时,需要利用选项 . A。 —g B. -E C. –Wall D。 –O2 ( ) 4. $temp=’this is a temped variable';echo foo${temp} 上述命令执行的结果为 。 A. foo B。 foo$temp C。 foo’this is a temped variable’ D。 foothis is a temped variable ( ) 5. 下列关于网络编程的叙述中,错误的是 。 A.一个完整的网络程序应该包含两个独立的程序,它们分别运行在客户端和服务器端。 B.当使用UDP编程时,如果函数sendto( )函数成功返回,表示系统发出的数据被通讯的对方准确接收到了。 C.相同条件下UDP发送数据的速度要比TCP快. D。端口号是16bit的地址码,端口号和IP地址构成一个插口(socket)。 ( ) 6。 为了得到所有的命令行输入的参数,我们可以使用变量: 。 A。 $@ B。 $# C. $0 D。 $! ( ) 7。 某人用vi编辑器编写了一个脚本文件shell。sh,他想将文件名改为,下列命令 可以实现。 shell2。sh B. mv shell。sh shell。sh >shell2。sh D. ll shell。sh 〉 ( ) 8. 在linux下进行shell编程时,注释符是 。 A. # B。 // C. /* */ D. 以上都不对 ( ) 9. 已知某用户stud1,其用户目录为/home/stud1。如果当前目录为/home,进入目录/home/stud1/test的命令是 。 A。 cd test B. cd /stud1/test C。 cd stud1/test D. cd home ( ) 10. 文件exer1的访问权限为rw-r--r——,现要增加所有用户的执行权限和同组用户的写权限,下列命令正确的是 . A。 chmod a+x,g+w exer1 B. chmod 765 exer1 C. chmod o+x exer1 D。 chmod g+w exer1 ( ) 11。 在用命令ls –l 列出文件的详细信息时,表示Linux文件访问权限的那一组数据共10位,分成四段,第二段(第2-4位)表示的是 。 A 文件类型 B 其他用户的权限 C 文件所有者所在组的权限 D文件所有者的权限 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脚本文件 权限。 22 简述Linux下编程的一般步骤。(本题满分6分) 23. vi编辑器有哪几种工作模式?各工作模式之间如何进行转化?(本题满分6分) 三、 选择题 1。C 2.D 3。A 4.D 5.B 6。A 7.B 8。A 9.C 10.A 11。 四、 填空题 1.vi Emacs 2.流式socket(流式套接字,SOCK_STREAM),数据报式socket(数据报式套接字,SOCK_DGRAM) 3.管道 4.ls-l 5.编程语言 bash 6.空格 7.& 8.command〉filename 9. w 10.执行 2023年8月2日发(作者:) ( ) 1。 下列关于Linux安装的说法中,不正确的是 。 A。如果计算机的内存为128MB,则SWAP分区(交换分区)的大小通常设定为256M。 B.安装时Linux分区的文件系统类型一般为ext2或ext3. C.安装时要进行磁盘分区,如果选择“自动分区”,系统会自动保留硬盘上原来的数据。 除了可以从光盘安装外,还可以从网上下载Linux的iso映像文件,从硬盘安装。 ( ) 2。 下列说法中,不正确的是 。 A. Shell程序编写完后还需要用gcc编译器编译。 B.可以通过将shell程序作为sh命令的输入来执行shell程序. C。 shell程序中定义的函数不能有参数。 D。 Linux是免费使用和自由传播的类UNIX操作系统,但它并不是没有版权。 ( ) 3. 为了利用GDB调试C/C++程序,在编译时需要把调试信息加载到可执行文件中,则用GCC编译源程序时,需要利用选项 。 A. –O2 B. -E C. –Wall D. —g ( ) 4. $temp=’world’;echo hello’$temp’ 上述命令执行的结果为 。 A。 helloworld B. hello$temp C。 hello’world’ D. hello ( ) 5。 下列关于网络编程的叙述中,错误的是 。 A.一个完整的网络程序应该包含两个独立的程序,它们分别运行在客户端和服务器端. B。相同条件下UDP发送数据的速度要比TCP快. C. 当使用UDP编程时,如果函数sendto( )成功返回,表示系统发出的数据被通讯的对方准确接收到了。 D。端口号是16bit的地址码,端口号和IP地址构成一个插口(socket)。 ( ) 6。 某shell程序在运行时需要向脚本传递参数,则为了得到所有命令行参数的个数,我们可以使用变量 。 A. $@ B. $# C。 $0 D。 $! ( ) 7. 将当前目录下的文件shell。sh移动到目录/home/linux下的命令为 。 A。 cp /home/linux B. mv /home/linux C。 lls / home/linux/shell。sh D。 mv /root/ /home/linux/shell。sh ( ) 8. 在linux下进行shell编程时,注释符是 。 A. # B. // C. /* */ D。 以上都不对 ( ) 9. 任何时候用户需要回到用户主目录时可以使用命令 。 A。 cd B. pwd C. path D. cd 。 ( ) 10. 文件exer1的访问权限为744,现要取消文件所有者的执行权限,同时增加同组用户的写权限,下列命令中正确的是 。 A。 chmod u+x, g+w exer1 B. chmod 646 exer1 C. chmod a—x, g+w exer1 D. chmod g+w exer1 11. 就是将前一个命令的标准输出作为后一个命令的标准输入。 12. Linux有两种工作界面:字符界面和图形界面,其中 界面功能更强大. 13. 常用的socket类型有两种: 和 。 14。 将文件file1和文件file2连接成文件file3的命令是 。 15. 传递给shell脚本的位置参数只有前9个可以被访问,为了访问第9个位置参数以后的参数,可以使用命令 . 16. shell不仅是用户命令的解释器,同时也是一种功能强大的 , 是Linux缺省的shell. 17。 在shell编程时,如果将测试条件置于方括号内,应注意方括号两边必须有 . 18。 有时用户需要在一行给出多个shell命令,假定输入的命令都需要运行,则在shell提示符下输入命令时,可在命令之间加上符号 。 19。 为了获得父进程的ID号,可是使用函数 . 20. 在用bash命令调试shell程序时,为了将shell执行的每一个命令行都显示出来,应该使用bash的选项 。 21。 在Linux下调试c程序时,在提示符(gdb)下输入b 10表示 . 22。 你是公司的Linux服务的管理员。你想查看/root下文件和文件夹的赋权的详细列表,可以使用命令 . 23。 在用vi编辑好文件后,为了将文件内容存入test。。txt文件中并退出vi(开始进入vi时并未输入文件名),应在末行模式下键入 。 22. 试分别说明Linux下shell程序和C程序从编写到运行的一般步骤.(本题满分5分) 23。 vi编辑器有哪几种工作模式?各工作模式之间如何进行转化?(本题满分5分) 24。 阅读程序,写出程序的执行结果,并分析程序的执行过程。(本题满分10分) #include #include int main() { pid_t result; int var=10; printf("before fork,var=%dn”,var); result=fork(); if(result<0) printf("fork failn"); else if(result〉0) { var++; printf("This is parent!n"); } else { var— -; printf("This is child!n”); } printf(”after fork var=%dn",var); return 0; } 假定父子进程均可在一个时间片内执行完,且操作系统每次均先调度子进程. 25。 某Shell程序以一个普通文件作为参数,其功能是:判断文件的大小是否为0,如果是则删除它;否则将该文件的内容输出到标准输出,请将程序补充完整。(本题满分10分) #!/bin/sh FILENAME= echo —n "Input file name:" #输入文件名 #如果不是文件 then #shell程序直接退出 fi #判断该文件是否为空 then #为空则删除它 else cat $FILENAME #否则输出文件的内容到标准输出 fi 26. 假如你是机房系统管理员,某班上的80个学生在机房的Linux服务器上共创建了80个帐号,帐号名为“user20060001”~“user20060080”,现在课程结束了,这些帐号均不再使用。试编写一个shell程序,删除学生所建的上述帐号.(本题满分12分) 27. 试编写一个简单的C程序,分别列出在终端tty1~tty6共6个终端上运行的所有进程。(本题满分8分) 28. 设计一个程序,当用户从客户端输入“Hello,Server”,传送到服务器端,变成“Hello,Client”,送回客户端;如果从客户端输入“Hello,ABC”,传送到服务器端,则变成“Hello,abc”,送回客户端;如果从客户端输入“exit”,传送到服务器端,服务器端程序退出,不向客户端送回任何信息;上述三种情况之外的其它情况,从客户端输入的内容经服务器后均原样送回客户端。(本题满分15分) 一、 选择题(共10题,每题2分,共20分) 1。C 2。A 3。D 5。C 6.B 7。B 8.A 4。B 9.A 10。C 二、 填空题(共13题,每空1分,共15分) 11.管道(或者“|”) 12.字符界面 13.流式socket(流式套接字,SOCK_STREAM),数据报式socket(数据报式套接字,SOCK_DGRAM) 14.cat file1 file2 〉 file3 15.shift 16.编程语言 bash 17.空格 18.; 19.getppid() 20。 -v 21。在第10行设置断点 22。 ls –l /root(写成ls –l也算对)23。wq (或者x test。txt) 三、简答题(共2题,共10分) 22。 试分别说明Linux下shell程序和C程序从编写到运行的一般步骤。(本题满分5分) (1) 在linux的命令提示符下启动编辑器,如输入vi,启动vi编辑器. (2) 输入程序的内容,然后保存,退出。 (3) 如果编写的是shell程序,在运行前需要增加执行权限,可通过如下语句: chmod +x filename 如果编写的是c程序,则进行编译,GCC 源文件 –o 目标文件。 (4) 如果发现程序有语法错误或者逻辑错误,则需要继续调试程序,直至程序无任何语法错误或逻辑错误. (5) 运行程序 ./可执行文件名、 23. vi编辑器有哪几种工作模式?各工作模式之间如何进行转化?(本题满分5分) vi有三种工作模式:命令行模式,文本输入模式,末行模式.各模式之间的切换如下图所示: 四、读程序题(共2题,共20分) 24 before fork,var=10 This is child after fork var=9 before fork,var=10 This is parent! after fork var=11 程序的执行过程如下: 程序先定义了两个变量result和var,然后输出变量var的值, 得到"before fork var=10”这一行输出(父子进程各复制了一份).当执行到result=fork()时程序分叉,产生父子两个进程。系统首先调度子进程执行,直至子进程结束。( 题目假定父子进程均可在一个时间片内执行完,且操作系统每次均先调度子进程。) 而在子进程中result为0,故走的是条件分支的最后一个分支,输出: This is child. after fork var=9 子进程执行完了之后调度父进程执行,直至父进程结束。而在父进程中result为子进程号,大于0,于是走条件分支的第二个个分支,输出: This is parent after fork var=11 25 #!/bin/sh FILENAME= echo —n "Input file name:" read FILENAME if [ ! —f $FILENAME ] then exit fi if [ ! -s $FILENAME ] then rm $FILENAME else cat $FILENAME fi 期末考试试卷(B卷) ( ) 1. 安装Linux时,若一台计算机的内存为256MB,则SWAP分区(交换分区)的大小通常应该设定为 。 A. 64MB B。 128MB C。 512MB D。 1GB ( ) 2。 下列说法中,不正确的是 。 A。 Linux 区分大小写. B。 Linux提供虚拟控制台的访问方式,这可以通过按下键盘的CTRL+ALT+Fn来实现(n=1,…,6)。 C。 Red Hat Linux是目前世界上最流行的Linux发行套件。 D. Linux是免费使用和自由传播的类UNIX操作系统,它没有版权。 ( ) 3。 为了利用GDB调试C/C++程序,在编译时需要把调试信息加载到可执行文件中,则用GCC编译源程序时,需要利用选项 . A。 —g B. -E C. –Wall D。 –O2 ( ) 4. $temp=’this is a temped variable';echo foo${temp} 上述命令执行的结果为 。 A. foo B。 foo$temp C。 foo’this is a temped variable’ D。 foothis is a temped variable ( ) 5. 下列关于网络编程的叙述中,错误的是 。 A.一个完整的网络程序应该包含两个独立的程序,它们分别运行在客户端和服务器端。 B.当使用UDP编程时,如果函数sendto( )函数成功返回,表示系统发出的数据被通讯的对方准确接收到了。 C.相同条件下UDP发送数据的速度要比TCP快. D。端口号是16bit的地址码,端口号和IP地址构成一个插口(socket)。 ( ) 6。 为了得到所有的命令行输入的参数,我们可以使用变量: 。 A。 $@ B。 $# C. $0 D。 $! ( ) 7。 某人用vi编辑器编写了一个脚本文件shell。sh,他想将文件名改为,下列命令 可以实现。 shell2。sh B. mv shell。sh shell。sh >shell2。sh D. ll shell。sh 〉 ( ) 8. 在linux下进行shell编程时,注释符是 。 A. # B。 // C. /* */ D. 以上都不对 ( ) 9. 已知某用户stud1,其用户目录为/home/stud1。如果当前目录为/home,进入目录/home/stud1/test的命令是 。 A。 cd test B. cd /stud1/test C。 cd stud1/test D. cd home ( ) 10. 文件exer1的访问权限为rw-r--r——,现要增加所有用户的执行权限和同组用户的写权限,下列命令正确的是 . A。 chmod a+x,g+w exer1 B. chmod 765 exer1 C. chmod o+x exer1 D。 chmod g+w exer1 ( ) 11。 在用命令ls –l 列出文件的详细信息时,表示Linux文件访问权限的那一组数据共10位,分成四段,第二段(第2-4位)表示的是 。 A 文件类型 B 其他用户的权限 C 文件所有者所在组的权限 D文件所有者的权限 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脚本文件 权限。 22 简述Linux下编程的一般步骤。(本题满分6分) 23. vi编辑器有哪几种工作模式?各工作模式之间如何进行转化?(本题满分6分) 三、 选择题 1。C 2.D 3。A 4.D 5.B 6。A 7.B 8。A 9.C 10.A 11。 四、 填空题 1.vi Emacs 2.流式socket(流式套接字,SOCK_STREAM),数据报式socket(数据报式套接字,SOCK_DGRAM) 3.管道 4.ls-l 5.编程语言 bash 6.空格 7.& 8.command〉filename 9. w 10.执行
发布评论