嵌入式软件助理工程师认证考试复习题_第1页
嵌入式软件助理工程师认证考试复习题_第2页
嵌入式软件助理工程师认证考试复习题_第3页
嵌入式软件助理工程师认证考试复习题_第4页
嵌入式软件助理工程师认证考试复习题_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

1、嵌入式软件助理工程师认证考试复习题新嵌入式软件助理工程师认证考试复习题2012.08.一、单项选择题1、如下哪一个命令可以帮助你知道shell命令的用法(A)A.manB.pwdC.helpD.more2、在大多数Linux发行版本中,以下哪个属于块设备(B)A.串行口B.硬盘C.虚拟终端D.打印机3、下面哪个命令行可用来马上重新启动正在运行的Linux系统?(D)A.restart-delay=0B.reboot-wC.halt-pD.shutdown-rnow4、在Linux系统,默认的shell是什么(A)A.bashB.ashC.cshD.gnush5、下面哪条命令可用来确保文件“my

2、file”存在(B)A.cpmyfile/dev/nullB.touchmyfileC.createmyfileD.mkfilemyfile6、LILO的配置文件是:(B)A./etc/confB./etc/lilo.confC./proc/kcoreD./usr/local/7、用“useraddjerry”命令添加一个用户)这个用户的主目录是什么(A)A./home/jerryB./bin/jerryC./var/jerryD./etc/jerry8、Linux文件权限一共10位长度,分成四段,第三段表示的内容是(D)A.文件类型B.文件所有者的权限C.文件所有者所在组的权限D.其他用户的

3、权限9、在ARM系统结本中,MMU央射最小的单元空间是_DA、64KBB、16KBG4KBCk1KB10、某文件的组外成员的权限为只读;所有者有全部权限;组内的权限为读与写,则该文件的权限为(D)A.467B.674C.476D.76411、不是shell具有的功能和特点的是(A)A.管道B.输入输出重定向C.执行后台进程D.处理程序命令4612、在ARM处理器的各种工作模式中,(A)模式无法访问一些被保护的系统资源。20100626年徐远超A.用户模式(user)B.系统模式(system)C.中断模式(IRQ)D.终止模式(Abort)13、如何从当前系统中卸载一个已装载的文件系B. di

4、smountD.从 /etc/fstab 中统(A)A.umountC.mount-u删除这个文件系统项14、你用vi编辑器编写了一个脚本文件shell.sh,你想将改文件名称修改为shell2.sh)下列命令(B)可以实现。A.cpshell.shshell2.shB.mvshell.shshell2.shC. ls shell.sh>shell2.shD. llshell.sh>shell2.sh15、在/home/studl/wang目录下有一文件file)使用(D)可实现在后台执行命令,此命令将file文件中的内容输出到file.copy文件中。A.catfile>f

5、ile.copyB.catfilefile.copyC. &catfilefile.copyD.&catfile>file.copy16、字符设备文件类型的标志是(B)A.pB.cC.sD.l17、删除文件命令为(D)A.mkdirB.rmdirC.mvD. rm18、(B)命令可更改一个文件的权限设置?A.attribB.chmodC.changeD.file19、用命令ls-al显示出文件ff的描述如下所示,由此可知文件ff的类型为(A)。-rwxr-xr-1rootroot599Cec1017:12ffA.普通文件B.硬链接C.目录D.符号链接20、系统中有用户us

6、er1和user2)同属于users组。在user1用户目录下有一文件file1)它拥有644的权限,如果user2用户想修改useri用户目录下的filei文件,应拥有(B)权限。A.744B.664C.646D.74621、在指令系统的各种寻址方式中,获取操作数最快的方式是(1-B);若操作数的地址包含在指令中,则属于(2-A)方式。(1) A直接寻址B、立即寻址C寄存器寻址D、间接寻址(2) A直接寻址B、立即寻址C寄存器寻址D、间接寻址22、在CPU和物理内存之间进行地址转换时,(B)将地址从虚拟(逻辑)地址空间映射到物理地址空间。ATCBB、MMUC、CACHEDDMA23、Linu

7、x将存储设备和输入/输出设备均看做文件来操作,(C)不是以文件的形式出现。A.目录B.软链接C. i节点表D.网络适配器24、关于文件系统的安装和卸载,下面描述正确的是(A)。A.如果光盘未经卸载,光驱是打不开的B.安装文件系统的安装点只能是/mnt下C.不管光驱中是否有光盘,系统都可以安装CD-RO快备D. mount/dev/fd0/floppy此命令中目录/floppy是自动生成的25、为了查看Linux启动信息,可以用(B)命令A.cat/etc/lilo.confB.dmesgC. cat/proc/cpuinfoD.lilo26、用下列(A)命令查看Linux使用了多少内存A.ca

8、t/proc/meminfoB.cat/bin/meminfoC.vi/proc/meminfoD.vi/user/local/meminfo27、下列(D)设备是字符设备。A.hdcB.fd0C.hda1D. tty129、有如下的命令:$ddif=f1of=f2。其中if=f1表示(A)A.以f1作为源文件,代替标准输入B.以f1作为目标文件,代替标准输出C.当条件满足fl的时候,执行真正的拷贝D.拷贝的过程中,不转化文件30、为了查找出当前用户运行的所有进程的信息,我们可以使用(B)命令:A.ps-aB.ps-uC.Is-aD.Is-l31、为保证在启动服务器时自动启动DHCP®

9、;程,应对(B)文件进行编辑。A/etc/rc.d/rc.inet2B、/etc/rc.d/rc.inet1C、/etc/dhcpd.confD、/etc/rc.d/rc.S32、文件exerl的访问权限为rw-r-r-,现要增加所有用户的执行权限和同组用户的写权限,下列命令正确的是(A)。A、chmoda+xg+wexer1B、chmod765exer1C、chmodo+xexer1D、chmodg+wexer133、删除当前目录abc以及下面的所有子目录和文件,并不要求提示任何确认信息的命令是(B)A.delabc*.*B.rm-rfabcC.rmdirabcD.rm-rabc*.*34、

10、如果忘记了ls命令的用法,可以采用(C)命令获得帮助a.?Isb.helplsc.manIsd.getIs35、在安装开始前,用光盘启动系统,想要进入字符界面安装,需要输入的命令是(C)a.linuxdocb.linuxc.linuxtextd.linuxnote36、要给文件filel加上其他人可执行属性的命令是(C)a.chmoda+xb.chowna+xc.chmodo+xd.chowno+x37、怎样新建一个新文件:(A)a.touchhello.cb.mkhello.cc.rmhello.cd.newhello.c38、在bash命令中,当用(B)参数时,表示bash是交互的。A、一

11、cB、一iC、一sD、一d39、重定向的符号">"表示:(C)A输出追加B、输入追加C、输出重定向,原来的文件会被改写D、管道A为变量赋值:$FRUIT=apple示变量的值:fruit=appleC、显示变量的值:echo$FRUITD、判断变量是否有值:-f"$FRUIT43、一般可以用(C)实现自动编译。A、gccB、gdb*C、makeD、vi44、处理机主要由处理器、存储器和总线组成,总线包括(D)。A、数据总线、串行总线、逻辑总线、物理总线B、并行总线、地址总线、逻辑总线、物理总线C并行总线、串行总线、全双工总线D数据总线、地址总线、控制总线45

12、、假设当前目录下有文件Makefile,下面是其内容:pr1:prog.osubr.ogcc-opr1prog.osubr.oprog.o:prog.cprog.hgcc-c-lprog.oprog.csubr.o:subr.cgcc-c-osubr.osubr.cclear:rm-fpr1*.o现在执行命令makeclear,实际执行的命令是(A):A. rm-fpr1*.oB. gcc-c-lprog.oprog.cC. gcc-c-osubr.osubr.cD.都执行55.下列哪种文件系统的写入是LINUX所不能完全支持的:DA.FATB.UFSC.JFSD.NTFS57、同CISC相比

13、,下面哪一项不属于RISC处理器的特征一DA、采用固定长度的指令格式,指令规整、简单、基本寻址方式有23种。B、减少指令数和寻址方式,使控制部件简化,加快执行速度。C数据处理指令只对寄存器进行操作,只有加载/存储指令可以访问存储器,以提高指令的执行效率,同时简化处理器的设计。RRISC处理器都采用哈佛结构58、在下列ARM处理器的各种模式中,D模式有自己独立的R8-R14寄存器。A、系统模式(System)、B、终止模式(Abort)C中断模式(IRQ)D快中断模式(FIQ)59、按照ARM1过程调用标准(APCS,栈指针使用B寄存器.A、R0B、R13GR14DR1560、在ARM系结本中,

14、_C寄存器作为连接寄存器,当进入子程序时或者处理器响应异常的时候,用来保存PC的返回值;_C寄存器作为处理器的程序计数器指针。A、R0,R14B、R13,R15C、R14,R15D、R14,R061、在ARM体系结构中,要从主动用户模式(User)切换到超级用户模式(Supervisor),应采用何种方法?CA、直接修改CPU状态寄存器(CPSR对应的模式B、先修改程序状态备份寄存器(SPSR到对应的模式,再更新CPU犬态C使用软件中断指令(SWDD让处理器执行未定义指令62、下面关于MM5口Linux描述错误的是:CA、MMU1内存管理单元MemoryManagementUnit的缩写B、u

15、Clinux可以运行在有MMU勺处理器上CLinux内核功能强大,内存管理功能丰富,即使在没有MMU勺处理器上,也可以通过软件实现地址映射。DLinux系统正是利用MMU才能使得各个进程有独立的寻址空间63、DNSM名系统主要负责主机名和(A)之间的解析。AIP地址B、MACfc址C网络地址D、主机别名64、在vi编辑器中的命令模式下,重复上一次对编辑的文本进行的操作,可使用(C)命令。A上箭头B、下箭头C、<.>D、<*>65、进程有三种状态:(C)。A、准备态、执行态和退出态B、精确态、模糊态和随机态C、运行态、就绪态和等待态D、手工态、自动态和自由态66、下列变量

16、名中有效的shell变量名是A-1-timeB、_2$3C、bo_chuang_1D、2009file67、文件系统的主要功能是(A)。A、实现对文件的按名存取B、实现虚拟存储C、提高外存的读写速度D用于保存系统文档68、在ARMLinux体系中,用来处理外设中断的A软件中断(SWD C中断t#求(IRQ)(FIQ)69、在Linux系统中序的函数是 BA、trap_initC、enable_irq异常模式是CB、未定义的指令异常D、快速中断请求驱动程序注册中断处理程B、request_irqDregister_irq70、在ARMLinuxB、中断(IRQ)代码以后,ARM勺处于A工作模式A

17、、超级用户(SVCG快速中断(IRQ!)D和进入中断之前的状态有关系71、在AR楙系构建的嵌入式系统中,由电平模式触发的中断,其对应的中断标准应该在何时被清除?AA、当中断处理程序结束以后,才可以清除B、进入相应的中断处理程序,即可以清除G产生IRQ中断的时候,处理器自动清除任何时候都可以清除85、下列软件中,不属于BootLoader的是(B)。A、viviB、busyboxC、ubootDblob86、某文件的组外成员的权限为只写;所有者有读写权限;组内的权限为只读,则该文件的权限为(B)A467B642C476D76487、关闭linux系统(不重新启动)可使用命令BoA)Ctrl+Al

18、t+DelB)haltC)shutdown-rnowD)reboot88、在vi编辑器中的命令模式下,键入_B_可在光标当前所在行下添加一新行。A)"a"B)"o"C)"I"D)A89、重定向的符号">>"表示:(A)A输出追加B、输入追加C、输出重定向,原来的文件被改写D、管道90、WWW务器是在Internet上使用最为广泛,它采用的是B结构。A)服务器/工作站B)B/SC)集中式D)分布式91、NFS是C系统。A)文件B)磁盘C)网络文件D)操作92、在日常管理中,通常CPU影响系统性能的情况是:

19、A。A)CPU已满负荷地运转B)CPU的运行效率为30%C)CPU的运行效率为50%D)CPU的运行效率为80%93、在使用GCCI译器的过程中,以下(B)选项可用来指定生成的目标文件名A.-cB.-oC.-SD.-E98 .ARM嵌入式系统中,PC指向的是正在(C)的指令地址。A执行B译码C取指D都不是99 .ARM系统处理16-bit数据时,对应的数据类型是(B)A Byte 三者都不是B HalfwordC Word D100 .实时系统是指(B)A响应快的系统B时间约束的系统C单任务系统D内核小的系统101 .下面属于blob运行过程第一阶段的是(C)A外围的硬件初始化(串口,USE)

20、;B根据用户选择,进入命令行模块或启动kernel。C寄存器的初始化D堆栈的初始化答案:C第一阶段的代码在start.s中定义,大小为1KB,它包括从系统上电后在0x00000000地址开始执行的部分。这部分代码运行在Flash中,它包括对S3c44B0B勺一些寄存器的初始化和将Blob第二阶段代码从Flash拷贝到SDRAM1。102 .下列几种流行的嵌入式GUI中,没有采用分层设计的一种是:BA.MiniGUIB.Qt/EmbeddedC.Nano-XWindowD.OpenGUI103 .Qt/Embedded的底层图形引擎基于一下哪种接口技术:AA.framebufferB.GALC.

21、IALD.GFX104.在Linux使用GC编译器时有如下命令:Gcc-gtest.c-otest,其中参数-g的作用是(D)A.生成目标文件test.oB.生成汇编文件test.sC.进行预编译D.包含调试信息105、下列提法中,不属于ifconfig命令作用范围的是DoA)配置本地回环地址B)配置网卡的IP地址C)激活网络适配器D)加载网卡到内核中160、下面对于Bootloader的描述不正确的是(0A是上电后运行的第一个程序B、改变系统时钟CBootloader的两种模式对开发人员没有意义D向内核传递启动参数161、符号“|"在shell命令中表示:(D)A输出追加B、输入追

22、加C、输出重定向,原来的文件被改写D、管道162、通常所说的32位微处理器是指邑。A)地址总线的宽度为32位B)处理的数据长度只能为32位C)CPU字长为32位D)通用寄存器数目为32个163、在32位处理器上,假设栈顶指针寄存器的当前值为0X00FFFFE8那么在执行完指令“pusheax"(eax为32位寄存器)后,栈指针的当前值应为AA)0X00FFFFE4B)0X00FFFFE6C)0X00FFFFEAD)0X00FFFFEC164、有若干并发进程均将一个共享变量count中的值加1一次,那么有关count中的值说法正确的是:。(C)A、肯定有不正确的结果B、肯定有正确的结果

23、C若控制这些并发进程互斥执行count加1操作,count中的值正确RA,B,C均不对165、使用Vim作为文本编辑器,在指令模式下要将光标移动到文档的最后一行的命令是(C)。A0B、$CGDGG169、BootLoader的stage2通常使用C语言实现,以完成复杂的功能,并增加可读性和可移植性,以下哪一步骤属于stage2的内容:D.A.为加载BootLoader的stage2准备RAM空间B.设置好堆栈C.硬件设备初始化D.将kernel映像和根文件系统映像从flash上读到RAM空间中170、执行以下程序段MOVSP,#3AHMOVA,#20HMOVB,#30HPUSHCCPUSBPO

24、PACCPOPB后,A和B的内容是(B)A20H,30HB、30H,20HC3AH30HD3AH3AH、多项选择题1. 嵌入式操作系统不同于通用操作系统的功能是(BC)A、任务调度B、可裁减性C、强实时D设备管理E、存储器管理2. linux操作系统支持的文件系统有(ABCDE)A、EXT2B、VFATC、NFSD、ISO9660E、JFFS3. Linux系统中的设备文件通常有如下分类(BCD)A虚拟设备B、字符设备C、网络设备块设备E、存储设备4 .片内总线是大规模集成电路(LargeScaleIntegratedCircuit:LSI)和超大规模集成电路(VLSI)内部各寄存器或功能单元

25、之间的信息交换通道,它由生产厂家决定,下列属于片内总线的有(ABD)oAAHB总线B、AP巳总线C、USB总线D、ASB总线E、1394总线5 .下列能改变ARM*&理器工作状态的指令有(CD)AB指令B、SU时旨令C、BX指令D、BLX指令E、BL指令6 .常用的软件开发模型有(BCD)A结构型B、原型模型C、迭代型D、瀑布型E、综合型7 .ARM处理器的工作模式中属于异常模式的有(CDE)A用户模式usrB、系统模式sysC、外部中断模式irqD、中止模式abtE、快速中断模式fiq8 .芯片总线又称元件级总线,它是指系统内或插件板内各元件之间所使用的总线,下列属于芯片总线的有(A

26、CD)AI2C总线B、ISA总线C、SPI总线D、SCI总线E、PCI总线9 .在ARM汇编语言程序设计中主程序和子程序参数的传递需要满足ATPC觊则,ATPC觊则中用来传递参数的寄存器是(ABCD)AR0B、R1C、R2D、R3E、R4四、判断题1、在gdb调试过程中,不退出gdb也可以执行UNIXshell命令。(对)2、 退出交互模式的shell,应键入quit。(错)3、 Linux文件系统的文件都按其作用分门别类地放在相关的目录中,对于外部设备文件,一般应将其放在/etc目录中。(错)4、命令fdisk/mbr的作用是安装系统引导程序到主分区。(错)5、在Linux系统中,测试DNS

27、!艮务器是否能够正确解析域名的的客户端命令,使用命令nslookup。(对)6、 命令mount/dev/hdc/mnt/cdrom是将光盘CD-ROMhdc)安装到文件系统的/mnt/cdrom目录下。(对)7、 /home/src目录存放着Linux的源代码。(错)8、 Linux文件名的长度不得超256个字符。(对)9、在vi编辑器中的命令模式下,删除当前光标处的字符使用d命令。(错)10、基于AR睇构的指令都是32位的。(错)11、文件系统的主要功能是实现虚拟存储。(错)12、进程有三种状态是准备态、执行态和退出态。(错)13、Samba!艮务器的进程由smbd和nmbd两部分组成。(

28、对)14、shell命令的第一个按键必须是字符、数字或者空格(错)15、Linux文件名的长度不得超256个字符。(对)16、在gdb调试过程中,用make命令可以不用退出gdb就可以重新产生可执行文件。(对)17、若一台计算机的内存为128MB则交换分区的大小通常是64M(错)18、在重新启动Linux系统的同时把内存中的信息写入硬盘,应使用shutdown-rnow命令实现。(对)19、在vi编辑器中的命令模式下,删除当前光标处的字符使用d命令。(错)20、Sambal艮务器的进程由smbd和nmbd两部分组成。(对)21、从后台启动进程,应在命令的结尾加上符号(错)22、网络管理的重要任

29、务是:控制和监控。(对)23、函数的标量参数通过传值的方式进行传递,而数组名参数则具有传址调用的语义。(V)24、Linux系统是一个多用户多任务的分时操作系统,允许多个用户在相同的机器上一次运行很多程序。(,)25、Linux中的ls命令的功能是变换工作目录到目标指定目录。(x)26、AR胞含32个通用寄存器。(X)27、QtEmbedded勺API同Qt/X11和Qt/Windows的相同,但它并不是基于X11库。(V)28、kmalloc和vmalloc的区别在于,前者申请到的是物理地址连续的内存空间,而后者则是虚拟地址连续的内存空间,不能用在中断时间。(,)29、LINUX是一个真正的

30、多任务和分时操作系统,允许多个用户在相同的机器上一次运行很多程序。(,)30、 (X)Linux采用线程调度程序选择线程占用CPU行。31、 (V)在单机系统中可采用关中断的方式保证操作的原子性。32、 (X)根文件系统是系统启动时首先加载的文件系统,因此需要快速加载的内容应放置于其中,以加快系统的运行速度。33、 (X)线程切换成本小于进程,因此Linux系统中的多线程程序的调度开销要小于多进程程序。五、简答题1、简述嵌入式系统中非占先式与占先式调度法的区别有哪些。答:非占先式调度法也称作合作型多任务(cooperativemultitasking),各个任务彼止匕合作共享一个CPU中断服务

31、可以使一个高优先级的任务由挂起状态变为就绪状态。(1分)但中断服务以后控制权还是回到原来被中断了的那个任务,直到该任务主动放弃CPU的使用权时,那个高优先级的任务才能获得CPU的使用权。(2分)当系统响应时间很重要时,要使用占先式(preemptive)内核。(1分)最高优先级的任务一旦就绪,总能得到CPU勺控制权。当一个运行着的任务使一个比它优先级高的任务进入了就绪态,当前任务的CPU用权就被剥夺了,或者说被挂起了,那个高优先级的任务立刻得到了CPU勺控制权。(2分)2、什么是硬实时操作系统、软实时操作系统以及二者的区别?答:在实时系统中,如果系统在指定的时间内未能实现某个确定的任务,会导致

32、系统的全面失败,这样的系统被称为强实时系统或硬实时系统。(1分)强实时系统响应时间一般在毫秒或微秒级。(1分)在弱实时系统中,虽然响应时间同样重要,但是超时却不会发生致命的错误。(1分)其系统响应时间在毫秒至秒的数量级上,(1分)其实时性的要求比强实时系统要差一些。(2分)3、介绍一下嵌入式系统的设计步骤有哪些?各部分主要工作是什么?答:(1)需求分析阶段,罗列出用户的需求;(1分)(2)体系结构设计阶段,描述系统的功能如何实现;(1分)(3)详细设计阶段,进行硬件系统与软件系统的分类划分,以决定哪些功能用硬件实现,哪些用软件实现;(1分)(4)系统集成,把系统的软件、硬件和执行装置集成在一起

33、,(1分)进行调试,发现并改进在设计过程中的错误;(1分)(5)系统测试,对设计好的系统进行测试,看其是否满足给定的要求。(1分)4、AR帔持哪两种数据存储格式,简单描述各自特点。答:分为大端格式和小端格式。(2分)大端格式:被存放字数据的高字节存储在存储系统的低地址中,而被存放的字数据的低字节则存放在存储系统的高地址中。(2分)小端格式:与大端存储格式相反,在小端存储格式中,存储系统的低地址中存放的是被放字数据中的低字节内容,存储系统的高地址存放的是被存字数据中的高字节内容。(2分)5、什么是BootLoader?主要有几种工作模式及主要功能是什么?答:简单说来,Bootloader就是操作

34、系统内核运行的一段小程序,完成进行初始化系统硬件设置的任务,包括CPUSDRRAMFlash、串口等初始化,时钟的设置、存储器的映射。(2分)分为启动加载模式和下载模式。(1)启动加载模式启动加载(Bootlaoding)模式又称为"自主"(Autonomous)模式,是指Bootloader从目标机上的某个固态存储设备上将操作系统加载到RAM中运行,整个过程并没有用户的介入。(2分)(2)下载模式在下载模式下,目标机上的Bootloader将先出过串口连接或网络连接等通信手段从宿主机下载文件。(2分)6、Linux作为嵌入式操作系统的优势?答:Linux作为嵌入式操作系统

35、的优势主要有以下几八、1. 可应用于多种硬件平台。Linux已经被移植到多种硬件平台,这对于经费,时间受限制的研究与开发项目是很有吸引力的。原型可以在标准平台上开发后移植到具体的硬件上,加快了软件与硬件的开发过程。Linux采用一个统一的框架对硬件进行管理,从一个硬件平台到另一个硬件平台的改动与上层应用无关。(1分)2. Linux的高度模块化使添加部件非常容易。本身内置网络支持,而目前嵌入式系统对网络支持要求越来越高。(1分)3. Linux是一个和Unix相似、以内核为基础的、具有完全的内存访问控制,支持大量硬件(包括X86,Alpha、ARMF口Motorola等现有的大部分芯片)等特性

36、的一种通用操作系统。(1分)4. Linux可以随意地配置,不需要任何的许可证或商家的合作关系。其程序源码全部公开,任何人可以彳改并在GUN通用公共许可证(GNUGeneralPublicLicense)下发行。这样,开发人员可以对操作系统进行定制,适应其特殊需要。(1分)5. Linux带有Unix用户熟悉的完善的开发工具,几乎所有的Unix系统的应用软件都已移植到了Linux上。其强大的语言编译器GCCC+舟也可以很容易得到,不但成熟完善,而且使用方便。(分)六、阅读程序题1.管道是Linux中进程通信的一种方式,以下程序在父进程和子进程之间创建了一个管道,然后建立它们之间的通信,实现父进

37、程向子进程写数据的功能。说明标号所在行代码的功能。#include<unistd.h>#include<sys/types.h>#include<errno.h>#include<stdio.h>#include<stdlib.h>intmain()intpipe_fd2;pid_tpid;charbuf_r100;char*p_wbuf;intr_num;memset(buf_r,0,sizeof(buf_r);(1)if(pipe(pipe_fd)<0)(2)printf("pipecreateerrorn&quo

38、t;);return-1;if(pid=fork()=0)(3)printf("n");close(pipe_fd1);(4)sle即;if(r_num=read(pipe_fd0,buf_r,100)>0)一printf("%dnumbersreadfromthepipeis%sn",r_num,buf_r);close(pipe_fd0);(6)exit(0);elseif(pid>0)(7)close(pipe_fd0);(8)if(write(pipe_fd1,"Hello",5)!=-1)(9)printf(&q

39、uot;parentwrite1success!n");if(write(pipe_fd1,"Pipe",5)!=-1)printf("parentwrite2success!n");close(pipe_fd1);(10)sleep(3);waitpid(pid,NULL,0);exit(0);答案要点:(1)将数据缓冲区清0(2)创建管道(3)创建子进程(4)关闭子讲程写描述符(5)子讲程读取管道内容(6)关闭子进程读描述符父进程运行控制语句(8)关闭父进程的读描述符(9)将数据写入缓冲区(10)关闭父进程写描述符2 .阅读下面shell程

40、序,写出执行结果:#!/bin/shfornameinTomJackHarrydoecho"$nameismyfriend"done1、答:TomismyfriendJackismyfriendHarryismyfriend3 .用变量a给出下面的定义a)一个指向整型数的指针(Apointertoaninteger)b)一个指向指针的的指针,它指向的指针是指向一个整型数(Apointertoapointertoaninteger)c)一个有10个整型数的数组(Anarrayof10integers)d)一个有10个指针的数组,该指针是指向一个整型数的(Anarrayof10

41、pointerstointegers)e)一个指向有10个整型数数组的指针(Apointertoanarrayof10integers)2、答:a) int*a;/Apointertoanintegerb) int*a;/Apointertoapointertoanintegerc) inta10;/Anarrayof10integersd) int*a10;/Anarrayof10pointerstointegerse) int(*a)10;/Apointertoanarrayof10integers4.根据下面给出的声明和数据,对每个表达式进行求值并写出他的值。在每个表达式进行求值是使用原

42、来给出的值(也就是说,某个表达式的结果不影响后面的表达式)。假定ints数组在内存中的起始位置是100,整型值和指针的长度都是4字节。intints20=10,20,30,40,50,60,70,80,90,100,110,120,130,140,150,160,170,180,190,200;(Otherdeclarations)int*ip=ints+3;表达式值intsints4ip_ip4一一一*(ip+4)答:(每项1分)ints Ints4 ip ip4 *(ip+4)表达式值100501128080七、应用实践题1、管道是Linux中进程通信的一种方式,以下程序在父进程和子进程之

43、间创建了一个管道,然后建立它们之间的通信,实现父进程向子进程写数据的功能。说明标号所在行代码的功能。#include<unistd.h>#include<sys/types.h>#include<errno.h>#include<stdio.h>#include<stdlib.h>intmain()intpipe_fd2;pid_tpid;charbuf_r100;char*p_wbuf;intr_num;memset(buf_r,0,sizeof(buf_r);(1)if(pipe(pipe_fd)<0)printf(&quo

44、t;pipecreateerrorn");return-1;if(pid=fork()=0)(3)printf("n");close(pipe_fd1);(4)sleep(2);if(r_num=read(pipe_fd0,buf_r,100)>0)-printf("%dnumbersreadfromthepipeis%sn",r_num,buf_r);close(pipe_fd0);(6)exit(0);elseif(pid>0)(7)close(pipe_fd0);(8)if(write(pipe_fd1,"Hello

45、",5)!=-1)(9)printf("parentwrite1success!n");if(write(pipe_fd1,"Pipe",5)!=-1)printf("parentwrite2success!n");close(pipe_fd1);(10)sleep(3);waitpid(pid,NULL,0);exit(0);答案要点:(1)将数据缓冲区清0(2)创建管道(3)创建子进程(4)关闭子进程写描述符(5)子进程读取管道内容(6)关闭子进程读描述符父进程运行控制语句(8)关闭父进程的读描述符(9)将数据写入缓冲区

46、(10)关闭父进程写描述符2、用Shell编程,判断一文件是不是字符设备文件,如果是将其拷贝到/dev目录下。答:#!/bin/shFILENAME=echo“Inputfilename:"readFILENAMEif-c"$FILENAME”thencp$FILENAME/devfi3、设计一个Shell程序)在/userdata目录下建立50个目录)即useriuser50)并设置每个目录的权限,其中其他用户的权限为:读;文件所有者的权限为:读、写、执行;文件所有者所在组的权限为:读、执行。答:#!/bin/shi=1whilei-le50doif-d/userdata

47、;thenmkdir-p/userdata/user$ichmod754/userdata/user$iecho"user$i"let"i=i+1"(或i=$($i+1)elsemkdir/userdatamkdir-p/userdata/user$ichmod754/userdata/user$iecho"user$i"let"i=i+1"(或i=$($i+1)fidone4、用变量a给出下面的定义f)一个指向整型数的指针(Apointertoaninteger)g)一个指向指针的的指针,它指向的指针是指向一个整型数(Apointertoapointertoaninteger)h)一个有10个整型数的数组(Anarrayof10integers)i) 一个有10个指针的数组,该指针是指向一个整型数的(Anarrayof10pointerstointegers)j) 一个指向有10个整型数数组的指针(Apoint

温馨提示

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

评论

0/150

提交评论