中北大学嵌入式习题答案第5章_第1页
中北大学嵌入式习题答案第5章_第2页
中北大学嵌入式习题答案第5章_第3页
中北大学嵌入式习题答案第5章_第4页
中北大学嵌入式习题答案第5章_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

第五章第五章 linuxlinux 与与 C C 语言编程基础语言编程基础 一 填空题一 填空题 1 在宿主机上使用编译器软件将嵌入式应用 嵌入式操作系统编译成为可以在 目标机 上运行代码的过程 称为 交叉编译 而采用的编译器称为 交叉编译器 2 C 语言中采用 asm 标记实现内嵌汇编 3 使用 gcc 命令若想生成调试信息 应该给 gcc 加参数 g 若想生成警告信息 应该给 gcc 加参数 Wall 4 有源文件 test c 若想生成目标文件 test o 正确的命令是 gcc c test c 5 gdb 对 可执行 文件进行调试 6 工程管理器 make 读入的配置文件为 makefile 7 不带缓存的文件 I O 操作 主要用到的 5 个函数为 open close read write 和 lseek 这里的不带缓存是指每一个函数都只调用系统中的一个函数 不理解这句话的含义 这些函数虽然不是 ANSI C 的组成部分 但是是 POSIX 的组成部分 lseek 函数 随机访问文件 移动文件读 写指针 使用 UNIX 系统调用来读取文件内容时 系统究竟是从文件的哪一个位置读取数据 完全由文件指针决定 例如 刚开始读取数据时 文件指针通常是指向文件的起始位置 二 选择题二 选择题 1 假设当前目录下有文件 Makefile 下面是其内容 pr1 prog o subr o gcc o pr1 prog o subr o prog o prog c prog h gcc c l prog o prog c subr o subr c gcc c o subr o subr c clear rm f pr1 o 现在执行命令 make clear 实际执行的命令是 A A rm f pr1 oB gcc c l prog o prog c C gcc c o subr o subr cD 都执行 2 B 命令是在 vi 编辑器中执行存盘退出 A qB wq C q D WQ 3 在 vi 编辑器中执行不存盘退出的命令为 A A q 编译结束 退出 vi B sq C q 不保存编辑过的文档 强制退出 D wq 保存文档并推出 4 vi 编辑器中不包括下面哪种模式 A A 编辑模式 B 命令行模式 C 插入模式 D 底行模式 解 命令行模式 初始模式 插入模式 底行模式 5 下面哪种语言 GCC 编译器不支持 C A C B Java C ASP D C ASP 即 Active Server Pages 是 MicroSoft 公司开发的服务器端脚本环境 可用来创 建动态交互式网页并建立强大的 web 应用程序 当服务器收到对 ASP 文件的请求时 它 会处理包含在用于构建发送给浏览器的 HTML Hyper Text Markup Language 超文本置 标语言 网页文件中的服务器端脚本代码 除服务器端脚本代码外 ASP 文件也可以包含 文本 HTML 包括相关的客户端脚本 和 com 组件调用 6 GCC 的正确编译流程为 A A 预处理 编译 汇编 链接 B 预处理 编译 链接 汇编 C 预处理 链接 编译 汇编 D 编译 预处理 汇编 链接 7 下面哪项关于 GCC 编译过程的说法是错误的 D A 编译阶段 GCC 要检查代码规范性 是否有语法错误等 确定代码的实际要做 的工作 B 汇编阶段是把编译阶段生成的 s 文件转成目标文件 C 预处理阶段 GCC 编译器将代码中包含的头文件编译进来 D GCC 在编译时默认使用静态库 8 下面哪些与 GDB 相关的说法是错误的 B A GDB 能调试可执行文件 B GDB 能调试源代码 C GDB 对编译过程有要求 D GDB 支持交叉调试 9 在 GDB 调试过程中 使用下面哪项命令设置断点 其中 m 代表行号 A A b m B c m C n m D s m 三 写程序 有 3 个进程 其中一个为父进程 其余两个是该父进程创建的子进程 其中一个子进 程在暂停 3s 后异常退出 另一个子进程运行 cat my txt 指令 父进程先用阻塞方式等待 第二个进程的结束 然后用非阻塞方式等待第一个子进程的退出 待收集到两个子进程结 束的消息后 父进程就返回 Printf I am child1 and I execute cat my txt n If execlp cat my txt NULL 0 四 读程序 写出程序运行结果 thread c define THREAD NUMBER3 define REPEAT NUMBER3 define DELAY TIME LEVELS10 0 void thrd func void arg int thrd num int arg int delay time 0 int count 0 printf Thread d is starting n thrd num for count 0 count REPEAT NUMBER count delay time count 1 sleep delay time printf tThread d job d delay d n thrd num count delay time printf Thread d finished n thrd num pthread exit NULL int main void pthread t thread THREAD NUMBER int no 0 res void thrd ret srand time NULL for no 0 no THREAD NUMBER no res pthread create if res 0 printf Create thread d failed n no exit res printf Create treads success n Waiting for threads to finish n for no 0 no THREAD NUMBER no res pthread join thread no if res printf Thread d joined n no else printf Thread d join failed n no return 0 答案 Thread 0 is starting ThreadThread 1 1 isis startingstarting ThreadThread 2 2 isis startingstarting CreateCreate threadsthreads successsuccess WaitingWaiting forfor threadsthreads toto finishfinish ThreadThread 0 0 jobjob 0 0 delaydelay 1 1 ThreadThread 1 1 jobjob 0 0 delaydelay 1 1 ThreadThread 2 2 jobjob 0 0 delaydelay 1 1 ThreadThread 0 0 jobjob 1 1 delaydelay 2 2 ThreadThread 1 1 jobjob 1 1 delaydelay 2 2 ThreadThread 2 2 jobjob 1 1 delaydelay 2 2 ThreadThread 0 0 jobjob 2 2 delaydelay 3 3 ThreadThread 1 1 jobjob 2 2 delaydelay 3 3 Thread 0 finished ThreadThread 2 2 jobjob 3 3 delaydelay 3 3 ThreadThread 1 1 finishedfinished ThreadThread 2 2 finishedfinished ThreadThread 0 0 joinedjoined ThreadThread 1 1 joinedjoined ThreadThread 2 2 joinedjoined 五 main c mytool1 c mytool2 c mytool1 h mytool2 h 位于同一目录下 源代码如下所 示 mytool1 c include mytool1 h void mytool1 print char print str printf This is mytool1 print s n print str mytool1 h ifndef MYTOOL 1 H define MYTOOL 1 H void mytool1 print char print str endif mytool2 c include mytool2 h void mytool2 print char print str printf This is mytool2 print s n print str mytool2 h ifndef MYTOOL 2 H define MYTOOL 2 H void mytool2 print char print str endif main c include mytool1 h include mytool2 h int main int argc char argv mytool1 print hello mytool2 print hello 要求编写 Makefile 文件实现对这两个文件的编译 Makefile 文件如下所示 请填写 在空白处的选项 Makefile main main o mytool1 o mytool2 o gccgcc o o mainmain main omain o mytool1 omytool1 o mytool

温馨提示

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

评论

0/150

提交评论