全国计算机等级考试(NCRE)三级Linux应用与开发技术样题及参考答案_第1页
全国计算机等级考试(NCRE)三级Linux应用与开发技术样题及参考答案_第2页
全国计算机等级考试(NCRE)三级Linux应用与开发技术样题及参考答案_第3页
全国计算机等级考试(NCRE)三级Linux应用与开发技术样题及参考答案_第4页
全国计算机等级考试(NCRE)三级Linux应用与开发技术样题及参考答案_第5页
已阅读5页,还剩22页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

全国计算机等级考试(NCRE)三级Linux应用与开发技术样题及参考答案一、单项选择题(共40小题,每小题1分,共40分)以下关于Linux内核的描述,错误的是()A.Linux内核最初是由林纳斯·托瓦兹开发的B.Linux内核是免费开源的,遵循GPL协议C.Linux内核版本命名规则为主版本.次版本.修订版本,次版本为偶数表示开发版D.Linux内核支持多用户、多任务、多线程Linux系统中,存储用户密码哈希信息的文件是()A./etc/passwdB./etc/shadowC./etc/groupD./etc/gshadow以下命令中,可以修改现有用户默认shell的命令是()A.useraddB.usermodC.userdelD.groupmod使用GCC编译C语言程序时,以下哪个阶段会进行语法和语义分析()A.预处理B.编译C.汇编D.链接Makefile中,$@代表的含义是()

A.所有的依赖文件B.第一个依赖文件C.目标文件D.规则命令Linux系统中,以下哪个进程是内核启动的第一个用户空间进程,PID为1()A.initB.systemdC.kthreaddD.swapper以下命令中,可以实时显示系统进程资源占用情况的是()A.psB.topC.pstreeD.killLinux中进程nice优先级的范围是()A.0-99B.-20-19C.1-100D.1-10以下关于硬链接和软链接的描述,错误的是()A.硬链接不能跨文件系统B.软链接可以跨文件系统C.删除原文件,硬链接失效D.删除原文件,软链接失效SSH服务默认的端口号是()A.21B.22C.23D.80Linux中,将当前目录下的文件test压缩为test.tar.gz的命令是()A.tar-czftest.tar.gztestB.tar-xzftest.tar.gztestC.tar-cvftest.tar.gztestD.tar-xvftest.tar.gztest以下哪个是Linux下流行的分布式源码版本控制工具()A.GitB.MakeC.AutoconfD.VimLinuxshell中管道符|的作用是()

A.将前一个命令的标准输出作为后一个命令的标准输入B.将前一个命令的错误输出作为后一个命令的标准输出C.将多个命令放到后台执行D.顺序执行多个命令以下关于字符设备与块设备的描述,错误的是()A.字符设备通常只能顺序读写,一般不支持随机访问B.块设备通过缓冲区访问数据,支持随机访问C.字符设备和块设备的设备号都由主设备号和次设备号组成D.块设备不能使用文件系统,字符设备可以挂载文件系统应用程序执行系统调用时,处理器运行模式会切换为()A.用户模式B.内核模式C.实模式D.保护模式信号量S的初始值为8,经过12次P操作、3次V操作后,S的值为()A.3B.-1C.1D.5以下进程间通信方式中,适合同一主机进程间传递大数据量,通信效率最高的是()A.管道B.消息队列C.共享内存D.信号以下关于ext4文件系统的描述,错误的是()A.ext4是Linux原生文件系统B.ext4支持最大1EB的文件系统C.ext4不支持日志功能,掉电后容易出现文件系统损坏D.ext4兼容ext3文件系统ARM架构嵌入式Linux平台最常用的BootLoader是()A.GRUBB.U-BootC.BIOSD.UEFILinux平台C语言开发中,创建新进程的系统调用是()A.forkB.execC.exitD.waitLinux系统中,查看当前工作目录的命令是()A.pwdB.cdC.lsD.mkdir以下命令中,可以查看系统路由表信息的是()A.pingB.netstat-rC.ifconfigD.traceroute使用GCC编译源代码test.c生成可执行文件test,以下命令正确的是()A.gcc-otesttest.cB.gcctest-otest.cC.gcctest.ctestD.gcc-ctesttest.cLinux平台命令行环境下,常用的应用程序调试工具是()A.gccB.gdbC.makeD.gitMakefile中规则的基本结构是()A.目标:依赖命令B.依赖:目标命令C.命令:目标依赖D.目标:命令依赖以下关于文件描述符的描述,错误的是()A.Linux中每个打开的文件都对应一个非负整数的文件描述符B.标准输入的文件描述符默认是1C.文件描述符记录文件的打开位置、访问权限等信息D.进程退出时内核会自动关闭所有打开的文件描述符要强制杀死进程号为1234的进程,以下命令正确的是()A.kill91234B.kill-91234C.kill12349D.kill1234-9Linux系统中交换分区(swap)的核心作用是()A.存储系统内核镜像文件B.物理内存不足时,将暂时不用的内存数据交换到磁盘C.存储用户个人数据D.存储系统引导程序以下关于虚拟内存的描述,正确的是()A.虚拟内存的容量不能超过物理内存容量B.虚拟内存为每个进程提供独立的地址空间,实现进程地址隔离C.虚拟内存只能存储在物理内存中D.32位Linux系统的虚拟地址空间最大为1GB以下关于shell的描述,错误的是()A.shell是用户与Linux内核交互的接口B.shell只能执行内置命令,无法调用外部二进制程序C.shell支持重定向、管道、通配符等扩展特性D.Linux主流发行版默认的shell是bash将命令的标准输出重定向到文件test,覆盖原有文件内容的正确写法是()A.>testB.>>testC.2>testD.<testLinux字符设备驱动开发中,用于注册字符设备的内核函数是()A.register_chrdevB.openC.printkD.fork进程状态中,表示进程已经获得除CPU之外的所有资源,等待调度器分配CPU执行的状态是()A.就绪态B.运行态C.阻塞态D.终止态以下文件类型标识中,代表Linux管道文件的是()A.-B.dC.pD.l要删除非空目录test,以下命令正确的是()A.rmtestB.rm-rtestC.rm-dtestD.rm-ftest查看文件test末尾10行内容的命令是()A.headtestB.tailtestC.cattestD.moretestLinux环境变量PATH的作用是()A.存储当前用户的主目录路径B.指定执行命令时搜索可执行文件的路径列表C.存储系统临时文件目录路径D.存储当前系统的主机名以下关于进程与线程的描述,错误的是()A.同一进程的多个线程共享进程的地址空间B.线程是CPU调度的基本单位,进程是资源分配的基本单位C.同一进程内的线程切换开销远大于进程间切换开销D.一个线程崩溃可能导致整个进程崩溃Linux嵌入式开发中交叉编译的含义是()A.在目标平台编译生成目标平台可执行程序B.在宿主机平台编译生成目标平台可执行程序C.同时编译多个源文件生成一个可执行程序D.编译生成带调试信息的可执行程序查看当前登录系统用户名的命令是()A.whoamiB.lsC.dfD.du【选择题参考答案】1.C2.B3.B4.B5.C6.B7.B8.B9.C10.B11.A12.A13.A14.D15.B16.B17.C18.C19.B20.A21.A22.B23.A24.B25.A26.B27.B28.B29.B30.B31.A32.A33.A34.C35.B36.B37.B38.C39.B40.A二、综合题(共2小题,每小题20分,共40分)某开发人员需要编写一个shell脚本,实现统计当前目录及子目录下所有.c源文件的非空代码行数,最终输出总行数。请补全以下脚本中的空缺部分。

#!/bin/bash

#初始化总行数

total=________(1)________

#查找当前目录下所有后缀为.c的普通文件,遍历所有文件

forfilein`find.-name"*.c"________(2)________`

do

#统计当前文件中非空行的数量,保存到lines变量

lines=`grep________(3)________$file|wc-l`

#累加总行数

total=$[________(4)________]

done

#输出最终统计结果

echo"________(5)________"请补全以下基础Linux内核模块代码框架中的空缺部分。

#include<linux/init.h>

#include<linux/module.h>

#include<linux/kernel.h>

//模块加载时执行的初始化函数

staticint__init________(1)________(void)

{

________(2)________(KERN_INFO"Hello,MyLinuxKernelModule!\n");

return0;

}

//模块卸载时执行的退出函数

staticvoid__exit________(3)________(void)

{

printk(KERN_INFO"Goodbye,MyLinuxKernelModule!\n");

}

//注册初始化和退出函数

________(4)________(mydemo_init);

________(5)________(mydemo_exit);

MODULE_LICENSE("GPL");

MODULE_DESCRIPTION("NCRELinuxDemoModule");

MODULE_AUTHOR("NCRE");【综合题参考答案】本题每空4分,共20分0(含义正确即可得分)-typef(添加其他不影响结果的过滤选项也可得分,要求指定查找普通文件,排除名称含.c的目录类文件)-v‘^$’(或等价写法,要求含义为排除空行,含义正确即可得分)$total+$lines(算术表达式正确,实现累加即可得分)非空代码总行数:to本题每空4分,共20分mydemo_init(函数名与后续注册参数一致即可得分)printk(内核打印函数,名称正确即可得分)mydemo_exit(函数名符合定义要求即可得分)module_init(Linux内核注册模块初始化函数的标准宏,名称正确即可得分)module_exit(Linux内核注册模块退出函数的标准宏,名称正确即可得分)三、应用题(共1小题,共20分)请根据要求完成开发任务:某Linux平台C语言开发项目,需要实现一个简单的多进程聊天室程序,要求:父进程负责接收用户输入的消息,将消息分发给所有创建的子进程;至少创建2个子进程,每个子进程收到消息后打印输出;使用管道实现进程间通信。请编写完整可运行的C语言代码,并说明核心实现逻辑。【应用题参考答案】核心实现逻辑(5分)遵循Linux管道半双工通信规则,为每个子进程创建一个独立的匿名管道,用于父进程向子进程单向传输消息;进程遵循”不使用即关闭”原则,关闭自身不需要的管道端,避免资源泄漏和读阻塞错误(2分)。调用fork()系统调用依次创建2个子进程,每个子进程保留对应管道的读端,关闭写端,进入循环持续读取管道中的消息,读取到消息后格式化打印输出,管道读端返回0时代表父进程关闭写端,子进程主动退出释放资源(1分)。父进程关闭所有管道的读端,进入循环读取用户从标准输入输入的消息,检测到用户输入exit则退出循环;否则将消息分别写入所有子进程的管道,实现消息广播分发;退出前关闭所有管道写端,调用wait()系统调用回收子进程资源,程序正常退出(2分)。完整可运行代码(12分,核心逻辑正确即可得分)

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

#include<unistd.h>

#include<sys/wait.h>

#defineBUFFER_SIZE1024

#defineCHILD_PROCESS_NUM2

intmain(void)

{

intpipefd[CHILD_PROCESS_NUM][2];//每个管道:0为读端,1为写端

pid_tpid;

charbuf[BUFFER_SIZE];

inti;

//为每个子进程创建管道

for(i=0;i<CHILD_PROCESS_NUM;i++)

{

if(pipe(pipefd[i])<0)

{

perror("创建管道失败");

exit(EXIT_FAILURE);

}

}

//循环创建子进程

for(i=0;i<CHILD_PROCESS_NUM;i++)

{

pid=fork();

if(pid<0)

{

perror("创建子进程失败");

exit(EXIT_FAILURE);

}

elseif(pid==0)//子进程执行逻辑

{

//关闭当前管道不需要的写端

close(pipefd[i][1]);

printf("子进程\%d(PID:\%d)启动,等待接收消息...\n",i+1,getpid());

//循环读取消息

while(1)

{

ssize_tlen=read(pipefd[i][0],buf,BUFFER_SIZE-1);

if(len>0)

{

buf[len]='\0';

printf("[子进程\%d]收到消息:\%s",i+1,buf);

fflush(stdout);

}

elseif(len==0)

{

printf("子进程\%d退出\n",i+1);

close(pipefd[i][0]);

exit(EXIT_SUCCESS);

}

else

{

perror("读取消息失败");

close(pipefd[i][0]);

exit(EXIT_FAILURE);

}

}

}

}

//父进程执行逻辑:关闭所有管道不需要的读端

for(i=0;i<CHILD_PROCESS_NUM;i++)

{

close(pipefd[i][0]);

温馨提示

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

评论

0/150

提交评论