Linux及C考试题附答案
嵌入式Linux C语言应用开发试题及答案

嵌入式Linux C语言应用开发试题及答案一:选择题1.下面不是对Linux操作系统特点描述的是( B )。
[A] 良好的可移植性[B] 单用户[C] 多用户[D] 多任务2.查看创建目录命令mkdir的帮助文档,可以使用命令( D)。
[A] mkdir –h [B] help mkdir [C] mkdir -p [D] man mkdir3.在C语言中,要求运算数必须是整型的运算符是( D )。
[A] / [B] ++ [C] != [D] %4.C语言程序的三种基本程序是( A )。
[A] 顺序结构,选择结构,循环结构[B] 递归结构,循环结构,转移结构[C] 嵌套结构,递归结构,顺序结构[D] 循环结构,转移结构,顺序结构5.数据结构包含的内容不包括(a)A.线性结构B.存储结构C.逻辑结构D.数据运算6.向一个单链表linklist中的节点t后面插入一个节点p,下列操作正确的是(a)A.p->next = t->next;t->next = p;B.t->next = p->next;t->next = p;C.t->next = p;p->next = t->next;D.t->next = p;t->next = p->next;7.下列哪种打开文件的方式不能修改文件已有的内容( B )[A] r+ [B] r [C] w+ [D] a+8.以下哪种不是进程的状态( B )[A] 运行态[B] 锁定态[C] 睡眠态[D] 停止态9.常用来进行多任务同步的机制是( B )[A]管道[B] 信号量[C]信号[D]共享内存10.下列对于有名管道描述错误的是( D )[A] 可以用于互不相关的进程间[B] 通过路径名来打开有名管道[C] 在文件系统中可见[D] 管道内容保存在磁盘上11.不能被用户进程屏蔽的信号是( B )[A] SIGINT [B] SIGSTOP [C] SIGQUIT [D] SIGILL12.fread()返回值的含义是( B )[A] 读取的字节数[B] 读取的对象数[C] 缓冲区的首地址[D] 013.以下不属于socket的类型的是 ( )。
Linu期末考试复习试题含答案

Linu期末考试复习试题含答案Linux期末考试复习试题含答案一、单项选择题1. 下列哪个命令可以用于在Linux系统中创建文件夹?a) mvb) cpc) rmd) mkdir答案:d) mkdir2. 下列哪个命令可以用于在Linux系统中显示当前工作目录?a) lsb) cdc) pwdd) grep答案:c) pwd3. 在Linux系统中,以下哪个命令用于将文件内容打印到终端上?a) catb) echoc) lessd) head答案:a) cat4. 在Linux系统中,要将一个文件copy至另一个目录,可以使用以下哪个命令?a) cpb) mvc) rmd) mkdir答案:a) cp5. 在Linux系统中,以下哪个命令可以用于查找某个文件或目录?a) findb) grepc) lsd) touch答案:a) find二、填空题1. 在Linux系统中,修改文件权限的命令是 _________。
答案:chmod2. 在Linux系统中,以管理员身份运行命令的命令是 _________。
答案:sudo3. 在Linux系统中,将某个文件重命名的命令是 _________。
答案:mv4. 在Linux系统中,创建一个空文件的命令是 _________。
答案:touch5. 在Linux系统中,以当前用户身份切换至另一个用户的命令是_________。
答案:su三、简答题1. 请解释Linux系统中的"root"用户是什么意思,以及它的作用。
答案:在Linux系统中,"root"用户是超级用户,拥有系统中所有权限的特殊用户。
它的作用是可以对系统进行完全的控制和管理,可以更改系统的核心设置,安装和卸载软件,以及对其他用户和文件进行操作。
2. 请简要介绍Linux系统中的三种常见文件权限,并解释每种权限的具体含义。
答案:- 读权限(r): 允许用户查看文件的内容或者读取目录中的文件列表。
嵌入式linux c开发常见笔试题目

嵌入式Linux C开发的常见笔试题目主要围绕C语言基础、Linux操作系统以及嵌入式系统开发等方面。
以下是一些可能的笔试题目:
1. 请解释C和C++的主要区别。
2. 描述一下静态变量和全局变量在内存中的分配情况。
3. 解释一下什么是预处理器以及它的主要作用。
4. 编写一个程序,实现两个整数的交换而不使用第三个变量。
5. 描述一下进程和线程的区别以及它们之间的关系。
6. 什么是死锁?请列举至少两种导致死锁的情况。
7. 请解释一下中断处理程序的工作原理。
8. 如何在Linux中创建一个新进程?
9. 描述一下Linux中的同步和异步机制。
10. 什么是RTOS?请列举至少两个RTOS的例子。
Linux操作系统下的C语言开发环境搭建测试题

Linux操作系统下的C语言开发环境搭建测试题(答案见尾页)一、选择题1. Linux操作系统下,C语言开发环境的搭建需要以下哪些步骤?A. 安装GCC编译器B. 设置环境变量C. 编译和运行C程序D. 配置终端2. 在Linux操作系统中,以下哪个命令可以用来编译和运行C程序?A. gccB. g++C. chmodD. make3. 在Linux操作系统中,如何修改默认的编译器路径?A. 修改PATH环境变量B. 使用export命令C. 编辑/etc/profile文件D. 修改gcc的配置文件4. 在Linux操作系统中,安装了GCC编译器后,如何验证其安装成功?A. 输入gcc --version命令B. 输入gcc -v命令C. 输入gcc --configure命令D. 输入gcc -E命令5. 在Linux操作系统中,如何配置终端以方便进行C语言编程?A. 更改终端的提示符B. 安装tmux或screen工具C. 配置bashrc文件6. 在Linux操作系统中,如何使用GDB调试器调试C程序?A. 安装gdb软件包B. 编译程序时添加-g选项C. 使用gdb命令启动程序D. 查看程序内存布局7. 在Linux操作系统中,如何查看源代码文件的内容?A. 使用cat命令B. 使用less命令C. 使用grep命令D. 使用find命令8. 在Linux操作系统中,如何使用vi编辑器编辑C语言源代码文件?A. 进入vi编辑器B. 编辑文件内容C. 保存文件并退出vi编辑器D. 检查文件是否已保存9. 在Linux操作系统中,如何通过FTP上传和下载文件?A. 使用ftp命令B. 使用sftp命令C. 使用scp命令D. 使用ls命令10. 在Linux操作系统中,如何设置用户权限以确保C语言源代码的安全?A. 使用chmod命令B. 使用chown命令C. 使用umask命令D. 使用acl命令11. Linux操作系统下,C语言开发环境的搭建需要以下哪些步骤?B. 设置环境变量C. 配置编译选项D. 编译和运行C程序12. 在Linux系统下,如何修改一个文件的权限使其可读可写?A. chmod 666 filenameB. chmod 777 filenameC. chmod 644 filenameD. chmod 755 filename13. 在Linux系统下,使用以下哪个命令可以查看文件的详细信息,如文件大小、创建日期等?A. ls -lB. df -hC. tar -xvf file.tarD. stat filename14. 在Linux系统下,如何使用vi编辑器打开一个文件?A. vi filenameB. vim filenameC. nano filenameD. emacs filename15. 在Linux系统下,安装了GCC编译器后,如何验证其是否正确安装?A. echo $PATHB. which gccC. gcc --versionD. all of the above16. 在Linux系统下,如何创建一个新的目录并进入该目录?A. mkdir new_directoryB. cd new_directoryC. rmdir new_directoryD. mkdir -p new_directory17. 在Linux系统下,如何使用grep命令在文本中搜索特定的字符串?A. grep "search_string" filenameB. grep "search_string" filename | lessC. grep "search_string" filename | moreD. all of the above18. 在Linux系统下,如何修改一个文件的换行符为LF(Unix风格)?A. dos2unix filenameB. unix2dos filenameC. cat filename | tr '' '' > filenameD. all of the above19. 在Linux系统下,如何使用find命令查找特定文件?A. find / -name "filename_pattern"B. find . -type f -name "filename_pattern"C. find / -name "filename_pattern" -printD. all of the above20. Linux操作系统下,C语言开发环境的搭建需要以下哪些步骤?A. 安装编译器B. 配置编译环境变量C. 安装文本编辑器D. 编写、编译和运行C源代码21. 在Linux操作系统下,以下哪个命令可以用来编译和运行C语言源代码?A. gccB. g++C. chmodD. make22. 在Linux操作系统下,以下哪个命令可以用来安装一个新的C语言库?A. apt-getB. yumC. pacman23. 在Linux操作系统下,以下哪个命令可以用来查看源代码的层次结构?A. catB. grepC. treeD. less24. 在Linux操作系统下,以下哪个命令可以用来创建一个新目录?A. mkdirB. rmdirC. touchD. cp25. 在Linux操作系统下,以下哪个命令可以用来删除一个文件?A. rmB. mvC. rmdirD. cp26. 在Linux操作系统下,以下哪个命令可以用来复制文件或目录?A. cpB. mvC. rmD. ln27. 在Linux操作系统下,以下哪个命令可以用来查看文件的内容?A. catB. grepC. lessD. head28. 在Linux操作系统下,以下哪个命令可以用来查找文件?A. findB. locateD. man29. 在Linux操作系统下,以下哪个命令可以用来查看当前目录的内容?A. lsB. cdC. pwdD. man30. Linux操作系统下,C语言开发环境的搭建需要哪些步骤?A. 安装GCC编译器B. 配置内核头文件C. 安装文本编辑器D. 配置终端环境31. 在Linux操作系统下,如何验证C语言编译成功?A. 编译一个简单的C源代码,观察是否有语法错误B. 使用命令行进入编译后的目录,查看生成的可执行文件C. 在终端中输入编译命令,观察是否有错误信息D. 将编译后的程序在另一个系统中运行,检查功能是否实现32. Linux操作系统下,C语言开发常用的文本编辑器有哪些?A. VimB. EmacsC. nanoD. Kate33. 在Linux操作系统下,如何配置终端环境以便于C语言编程?A. 设置默认编码为UTF-8B. 配置PATH环境变量,确保编译器路径已添加C. 安装并配置版本控制工具(如Git)D. 配置别名,提高编程效率34. 在Linux操作系统下,C语言开发中常用的调试工具有哪些?A. GDB调试器B. DDD调试工具C. Valgrind内存检测工具D. printf()函数调试35. Linux操作系统下,C语言开发环境的搭建过程中,如何配置网络连接?A. 修改网络配置文件,设置静态IP地址B. 关闭防火墙,确保端口畅通C. 配置DNS服务器,解析域名D. 使用Wireshark工具监控网络流量36. 在Linux操作系统下,C语言开发环境中,如何管理项目文件?A. 使用版本控制工具(如Git)进行项目管理B. 使用文件系统树形结构管理项目文件C. 使用目录和文件名来管理项目文件D. 使用标签系统管理项目文件37. Linux操作系统下,C语言开发环境的搭建完成后,如何优化编译速度?A. 升级GCC编译器到最新版本B. 优化编译选项,减少编译时间C. 使用增量编译,避免重复编译D. 使用并行编译,提高编译速度38. 在Linux操作系统下,C语言开发环境的搭建过程中,如何安装必要的库文件?A. 使用包管理器(如apt或yum)安装库文件B. 从官方网站下载库文件并手动安装C. 从源代码编译库文件并安装D. 使用静态链接库文件,减少动态链接的内存开销39. Linux操作系统下,C语言开发环境的搭建完成后,如何进行代码测试和调试?A. 使用GDB调试器进行单步调试B. 使用DDD调试工具查看内存状态C. 使用printf()函数打印变量值进行调试D. 使用单元测试框架进行自动化测试40. Linux操作系统下,C语言开发环境的搭建需要以下哪些步骤?A. 安装GCC编译器B. 配置环境变量C. 安装文本编辑器D. 编译和运行C程序41. 在Linux操作系统下,以下哪个命令可以用来查看系统中的所有进程?A. ps -efB. topC. freeD. all42. 在Linux操作系统下,如何修改一个文件的权限使得文件所有者具有读写权限,其他用户只具有读权限?A. chmod 644 filenameB. chmod 755 filenameC. chmod 664 filenameD. chmod 777 filename43. 在Linux操作系统下,使用以下哪个命令可以查看当前目录下的隐藏文件?A. ls -aB. ls -lC. ls -hD. ls -d44. 在Linux操作系统下,如何安装一个新软件包?A. apt-get updateB. yum install package_nameC. pacman -S package_nameD. brew install package_name45. 在Linux操作系统下,如何使用grep命令查找包含特定字符串的文件?A. grep "search_string" filenameB. grep "search_string" /path/to/filenameC. grep "search_string" $(find /path/to/search -type f)D. grep "search_string" /path/to/search/*46. 在Linux操作系统下,如何修改文件的所有者和组?A. chown new_owner:new_group filenameB. chown new_owner:new_group /C. chown new_owner:new_group *D. chown new_owner:new_group .47. 在Linux操作系统下,如何创建一个新的用户组?A. groupadd group_nameB. groupadd -g GID group_nameC. groupadd -G GID group_nameD. groupadd -p group_name48. 在Linux操作系统下,如何设置Shell提示符?A. export PS1="\u@\h:\w\$ "B. export PS1="\u@\h:\w\$ "C. export PS1="\u@\h:\w\\$ "D. export PS1="\u@\h:\w\$ "二、问答题1. 请简述在Linux操作系统下搭建C语言开发环境的步骤。
Linux程序员(C语言)考证题库

Linux程序员(C语言)考证题库一、单项选择题1.Linux的根分区的文件系统类型是C。
A.FAT16B.FAT32C.ext3D.NTFS2.安装好Linux操作系统后,系统默认的超级用户(系统管理员)账号是C。
A.administratorB.guestC.rootD.boot3.Linux文件系统的文件都按其作用分门别类地放在相关的目录中,对于外部设备文件,一般应将其放在C目录中。
A./binB./etcC./devD./lib4.Linux有三个查看文件的命令,若希望在查看文件内容过程中,可以用光标上下移动来查看文件内容,应使用C命令。
A.catB.moreC.lessD.menu5.可以为文件或目录重命名的命令是C。
A.mkdirB.rmdirC.mvD.rm6.已知某用户stud1,其用户目录为/home/stud1。
如果当前目录为/home,进入目录/home/stud1/test的命令是:C。
A.cd testB.cd/stud1/testC.cd stud1/testD.cd home7.Linux文件权限一共10位长度,分成四段,第三段表示的内容是C。
A.文件类型B.文件所有者的权限C.文件所有者所在组的权限D.其他用户的权限8.将Windows C:盘(hda1)安装在Linux文件系统的/winsys目录下,命令是B。
A.mount–t vfat dev/hda1/winsysB.mount–t vfat/dev/hda1/winsysC.mount–t vfat/dev/hda1winsysD.mount–t vfat dev/hda1winsys9.一般情况下,系统启动过程自动加载的文件系统信息是存放在文件D中A./usr/sbin/cfdiskB./sbin/fdiskC./etc/mtabD./etc/fstab10.系统中有用户user1和user2,同属于users组。
Linux考试试题100道(附答案)

Linux考试试题100道(附答案)1、Linux系统中,用户文件描述符0 表示______。
A.标准输入设备文件描述符B.标准输出设备文件描述符B.管道文件描述符 D.标准错误输出设备文件描述符答案:A2、以长格式列目录时,若文件test的权限描述为:drwxrw-r–,则文件test的类型及文件主的权限是______。
A.目录文件、读写执行B.目录文件、读写C.普通文件、读写D.普通文件、读答案:A3、当字符串用单引号(’’)括起来时,SHELL将______。
A.解释引号内的特殊字符B.执行引号中的命令C.不解释引号内的特殊字符D.结束进程答案:C4、/etc/shadow文件中存放______。
A.用户账号基本信息B.用户口令的加密信息C.用户组信息D.文件系统信息答案:B5、若当前目录为/home,命令ls–l 将显示home 目录下的()。
A.所有文件B.所有隐含文件C.所有非隐含文件D.文件的具体信息答案:D6、为卸载一个软件包,应使用_____。
A.rpm -iB.rpm -eC.rpm -qD.rpm -V答案:B7、下面关于文件“/etc/sysconfig/network-scripts/ifcfg-eth0”的描述哪个是正确的?( )。
A.它是一个系统脚本文件B.它是可执行文件C.它存放本机的名字D.它指定本机eth0的IP地址答案:D8、如何快速切换到用户John的主目录下?( )A.cd @JohnB.cd #JohnC.cd &JohnD.cd ~John答案:D9、启动DNS服务的守护进程()A. httpd startB.httpd stopC. named startD. named stop答案:C10、Linux有三个查看文件的命令,若希望在查看文件内容过程中可以用光标上下移动来查看文件内容,应使用命令()A.cat B. more C. less D. menu答案:C11、在LINUX中,要查看文件内容,可使用()命令。
linux 试题及答案
linux 试题及答案第一部分:选择题1. Linux 是一种()操作系统。
a) 开源b) 闭源c) 商业d) 私有答案:a) 开源2. 在 Linux 中,用于显示当前所在路径的命令是()。
a) pwdb) lsc) cdd) cp答案:a) pwd3. 在 Linux 中,用于创建目录的命令是()。
a) mkdirb) touchc) rmd) mv答案:a) mkdir4. Linux 中,用于列出当前目录下的文件和文件夹的命令是()。
a) lsb) cdc) pwdd) rm答案:a) ls5. 在 Linux 中,用于复制文件的命令是()。
a) cpb) mvc) touchd) mkdir答案:a) cp第二部分:填空题1. Linux 操作系统的核心部分被称为()。
答案:内核2. Linux 中,用于修改文件或目录的权限的命令是()。
答案:chmod3. 在 Linux 中,用于压缩文件的命令是()。
答案:tar4. Linux 是基于()开发的操作系统。
答案:UNIX5. Linux 中,默认的超级用户账户是()。
答案:root第三部分:简答题1. 什么是 Linux 操作系统?答:Linux 是一种开源操作系统,它基于 UNIX 操作系统开发而成。
Linux 以其稳定性、可定制性和安全性而闻名,并广泛运用于服务器和嵌入式设备等领域。
2. 如何在 Linux 中创建一个新用户?答:可以使用 `useradd` 命令来创建一个新用户,例如 `useradd -m newuser`。
其中,`-m` 参数表示同时创建用户的主目录。
3. 如何修改文件的访问权限?答:可以使用 `chmod` 命令来修改文件的访问权限。
例如,要将文件的所有者权限设置为可读可写可执行,可以使用 `chmod u+rwx filename` 命令。
4. 如何在 Linux 中安装软件包?答:可以使用包管理器,如 `apt` (用于 Debian 系统)或 `yum` (用于 Red Hat 系统),来安装软件包。
linux期末考试题及答案
linux期末考试题及答案Linux期末考试题及答案一、选择题(每题2分,共20分)1. Linux操作系统属于以下哪种类型?A. 单用户单任务操作系统B. 多用户多任务操作系统C. 单用户多任务操作系统D. 多用户单任务操作系统答案:B2. 在Linux系统中,以下哪个命令用于查看当前目录下的文件和文件夹?A. lsB. pwdC. cdD. mkdir答案:A3. 如果需要查看一个文件的内容,但不修改它,可以使用以下哪个命令?A. catB. viC. rmD. mv答案:A4. 在Linux中,以下哪个命令可以显示当前系统的运行时间、用户数、系统负载等信息?A. topB. psC. uptimeD. who答案:C5. Linux系统中的文件权限分为哪三类?A. 可读、可写、可执行B. 可读、可写、可删除C. 可读、可写、可链接D. 可读、可写、可打印答案:A...20. 在Linux系统中,以下哪个命令用于解压tar.gz格式的压缩文件?A. tar -xzvfB. gzip -dC. gunzipD. tar -zxvf答案:D二、填空题(每空2分,共20分)1. Linux系统中的文件系统是以_________为节点组织的。
答案:inode2. 在Linux中,使用_________命令可以切换到root用户。
答案:su3. 要查看当前路径,可以使用命令_________。
答案:pwd4. 如果需要递归地复制一个目录到另一个位置,并覆盖原有文件,可以使用命令_________。
答案:cp -r5. 在Linux中,文件权限的数字表示方法中,7表示_________。
答案:可读可写可执行...10. 使用_________命令可以查看当前系统的磁盘使用情况。
答案:df三、简答题(每题10分,共30分)1. 简述Linux系统中的文件类型有哪些,并给出每种类型的代表字符。
答案:Linux系统中的文件类型主要有以下几种:- 普通文件:-- 目录:d- 符号链接:l- 块设备文件:b- 字符设备文件:c- 管道:p- 套接字:s2. 解释什么是Linux的硬链接和软链接,并说明它们的区别。
linux考试试题及答案
Linux考试试题及答案一、选择题1、在/etc/fstab 文件中指定的文件系统加载参数中,那个参数一般用于CD-ROM 等移动设备(D )A. defaultsB. swC. rw 和 roD. noauto2、Linux 文件权限一共 10 位长度,分成四段,第三段表示的内容是(C)A. 文件类型B. 文件所有者的权限C. 文件所有者所在组的权限D. 其他用户的权限3、在使用 mkdir 命令创建新的目录时,在其父目录不存在时先创建父目录的选项是(D)A. -mB. -dC. -fD. -p4、一台主机要实现通过局域网与另一个局域网通信,需要做的工作是(C)A. 配置域名服务器B. 定义一条本机指向所在网络的路由C. 定义一条本机指向所在网络网关的路由D. 定义一条本机指向目标网络网关的路由5.下列提法中,不属于 ifconfig 命令作用范围的是(D)A. 配置本地回环地址B. 配置网卡的 IP 地址C. 激活网络适配器D. 加载网卡到内核中6、下列关于链接描述,错误的是(B)A. 硬链接就是让链接文件的 i 节点号指向被链接文件的 i 节点B. 硬链接和符号连接都是产生一个新的 i 节点C. 链接分为硬链接和符号链接D. 硬连接不能链接目录文件7、下列文件中,包含了主机DNS 配置信息的文件是(C )A. /etc/host.confB. /etc/hostsC. /etc/resolv.confD. /etc/networks8、那个命令可以从文本文件的每一行中截取指定内容的数据(D)A.cpB.ddC.fmtD.cut9、Linux 有三个查看文件的命令,若希望在查看文件内容过程中可以用光标上下移动来查看文件内容,应使用(C)命令。
A.catB.moreC.lessD.menu10、对名为 fido 的文件用 chmod 551 fido 进行了修改,则它的许可权是(D)A.-rwxr-xr-xB.-rwxr--r--C.-r--r--r--D.-r-xr-x—x11、文件 exer1 的访问权限为 rw-r--r--,现要增加所有用户的执行权限和同组用户的写权限,下列命令正确的是(A)A.chmod a+x g+w exer1B.chmod 765 exer1C.chmod o+x exer1D.chmod g+w exer112、有关归档和压缩命令,下面描述正确的是(C)A.用 uncompress 命令解压缩由 compress 命令生成的后缀为.zip 的压缩文件B.unzip 命令和 gzip 命令可以解压缩相同类型的文件C.tar 归档且压缩的文件可以由 gzip 命令解压缩D.tar 命令归档后的文件也是一种压缩文件13、下列那一项不是进程和程序的区别(B)A.程序是一组有序的静态指令,进程是一次程序的执行过程B.程序只能在前台运行,而进程可以在前台或后台运行C.程序可以长期保存,进程是暂时的D.程序没有状态,而进程是有状态的14、下列关于/etc/fstab 文件描述,正确的是(D)A.fstab 文件只能描述属于 linux 的文件系统B.CD_ROM 和软盘必须是自动加载的C.fstab 文件中描述的文件系统不能被卸载D.启动时按 fstab 文件描述内容加载文件系统15、如果想配置一台匿名 ftp 服务器,应修改那个文件(C)A./etc/gatewayB./etc/ftpserversC./etc/ftpusersD./etc/inetd.conf16、关于进程调度命令,那一项是不正确的(B)A.当日晚 11 点执行 clear 命令,使用 at 命令:at 23:00 today clearB.每年 1 月 1 日早上 6 点执行 date 命令,使用 at 命令:at 6am Jan 1 dateC.每日晚 11 点执行 date 命令,crontab 文件中应为:0 23 * dateD.每小时执行一次 clear 命令,crontab 文件中应为:0 */1 * clear17、可以完成主机名与 IP 地址的正向解析和反向解析任务的命令是(A)A.nslookupB.arpC.ifconfigD.dnslook18、将光盘/dev/hdc 卸载的命令是(C)A.umount/dev/hdcB.unmount/dev/hdcC.umount/mnt/cdrom /dev/hdcD.unmount/mnt/cdrom /dev/hdc19、用 ftp进行文件传输时,有两种模式(C)E.Word 和 binaryF.txt 和 Word DocumentG.ASCII 和 binaryH.ASCII 和 Rich Text Format20、crontab 文件由六个域组成,每个域之间用空格分割,其排列如下(B)I.MIN HOUR DAY MONTH YEAR COMMANDJ.MIN HOUR DAY MONTH DAYOFWEEK COMMANDMAND HOUR DAY MONTH DAYOFWEEKMAND YEAR MONTH DAY HOUR MIN二、填空题1. 在Linux系统中,以文件方式访问设备。
linux c笔试题
c语言常见笔试题大全(一)1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL我在这想看到几件事情:1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)2). 懂得预处理器将为u币你哦门票,模糊刚看见快乐科技计划发广告和统一,(表示无符号长整型),那么你有了一个好的起点。
记住,第一印象很重要。
2. 写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个。
#define MIN(A,B) ((A) <= (B) ?(A) : (B))这个测试是为下面的目的而设的:1). 标识#define在宏中应用的基本知识。
这是很重要的,因为直到嵌入(inline)操作符变为标准C的一部分,宏是方便产生嵌入代码的唯一方法,对于嵌入式系统来说,为了能达到要求的性能,嵌入代码经常是必须的方法。
2). 三重条件操作符的知识。
这个操作符存在C语言中的原因是它使得编译器能产生比if-then-else更优化的代码,了解这个用法是很重要的。
3). 懂得在宏中小心地把参数用括号括起来4). 我也用这个问题开始讨论宏的副作用,例如:当你写下面的代码时会发生什么事?least = MIN(*p++, b);3. 预处理器标识#error的目的是什么?如果你不知道答案,请看参考文献1。
这问题对区分一个正常的伙计和一个书呆子是很有用的。
只有书呆子才会读C语言课本的附录去找出象这种问题的答案。
当然如果你不是在找一个书呆子,那么应试者最好希望自己不要知道答案。
死循环(Infinite loops)4. 嵌入式系统中经常要用到无限循环,你怎么样用C编写死循环呢?这个问题用几个解决方案。
我首选的方案是:while(1){}一些程序员更喜欢如下方案:for(;;){}这个实现方式让我为难,因为这个语法没有确切表达到底怎么回事。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
华清远见嵌入式学院《Linux及C》考试题(A卷)1-5 CBCDB6-10 DBADD11-15 CCCAA16-20 C ADD C D A21-23 DBA一、选择题(23题,每空2分,共46分)1.常见的Linux发行版本有很多,下面不是Linux发行版本的是( C)。
[A] Red Hat Linux [B] Ubuntu Linux [C] unix [D] 红旗2.下面不是对Linux操作系统特点描述的是( B )。
[A] 良好的可移植性 [B] 稳定性低 [C] 多用户 [D] 多任务3.嵌套创建目录的命令可以使用( C )。
[A] mkdir –h [B] help mkdir [C] mkdir -p [D] man mkdir4.假设目录中存在若干文件file_num.txt(num表示文件编号,1~8),使用以下( D )通配符可以挑选出其中的编号为1、2、3、5、6、7的文件。
[A] file_*.txt [B] flie_?.txt [C] file_[1-7].txt [D] file_[^48].txt5.文件权限 r-x-w-r--对应的八进制表示形式为( B )[A] 0536 [B] 0524 [C] 0656 [D] 05346.目前流行的两种软件包管理机制,Debian使用( D )软件包。
[A] zip [B] rpm [C] tar [D] deb7.下述程序第二次的输出结果为( B )。
int main(void){extern int a;int b=0;static int c;a+=3;other();b+=3;other();}int a=5;other(){int b=3;static int c=2;a+=5; b+=5; c+=5;printf("%d,%d,%d\n",a,b,c);c=b;}[A] 13,0,13 [B] 18,8,13 [C] 13,8,13 [D] 18,8,08.C语言程序的三种基本程序是( A )。
[A] 顺序结构,选择结构,循环结构[B] 递归结构,循环结构,转移结构[C] 嵌套结构,递归结构,顺序结构[D] 循环结构,转移结构,顺序结构9.执行下面语句后的输出结果为( D )。
int i = -1;if (i < =0){}printf(“****\n”);i = 2;elsep rintf(“%%%%\n”);[A] 乱码 [B] %% [C] %%%% [D] 有语法错误,不能正确执行10.在C语言中,要求运算数必须是整型的运算符是( D )。
[A] / [B] ++ [C] != [D] %11.下面的程序运行结果为( C )。
char *RetMenory(void){char p[] = “hello world”;return p;}void Test(void){char *str = NULL;str = RetMemory();puts(str);}[A] 语法有错误,不能编译 [B] hello world [C]结果不可预知 [D] hello world+乱码12.下述程序的输出结果是( C )。
int main(void){int Y=100;while(Y--);printf(“Y=%d”,Y);}[A] Y=0 [B] Y=1 [C] Y=-1 [D] Y=随机数13.结构体DATA定义如下,则sizeof(struct DATA)的值为( C )。
struct DATA{float f1;int i;char c2;};[A] 6 [B] 8 [C] 12 [D] 1614.以下程序的功能是将字符串s中所有的字符c删除,那么空白处缺少的语句为:( A )。
#include <stdio.h>int main(void){char s[80]; abd abd\0int i, j; s[2] = s[3] = ‘d’gets(s);for ( i = j = 0; s [i]!= ‘\0’; i++ ){if ( s [i]!= ‘c’ )S[j++] = s[i] ;}s [ j ] = ‘\0’;puts ( s );return 0;}[A] s [ j++] = s [ i ] [B] s [ ++j ] = s [ i ][C] s [ j ] = s [ i ]; j++ [D] s [ j ] = s [ i ]15.下面函数的功能是( A )。
int fun (char*x){char*y=x;while(*y++);return(y-x-1);}[A] 求字符串的长度[B] 比较两个字符串的大小[C] 将字符串x复制到字符串y[D] 将字符串x连接到字符串y后面16./* Address */unsigned short *a = (unsigned short *)0x800;unsigned short *b= a+1;b = ? ( C )[A] 0x800 [B] 0x801 [C] 0x802 [D] 0x80417.下面程序的功能是将已按升序排好序的两个字符串a和b中的字符,按升序归并到字符串c中,请为程序中的空白处选择适当的语句。
#include <stdio.h>int main(void){char a[ ] = “acegikm”;char b[ ] = “bdfhjln pq”;char c[80], *p;int i = 0, j= 0, k = 0;while( a[i] != ’\0’ && b[j] != ‘\0’ ){if ( a[i] < b[j] ) { ( ① ) } Aelse { ( ② ) } Dk++;}c[k] = ‘\0’;if ( ③ ) p = b + j; Delse p = a + i;strcat ( c , p );puts ( c );}① [A] c[k] = a[i]; i++; [B] c[k] = b[j]; i++;[C]c[k] = a[i]; j++; [D] c[k] = a[j]; j++;② [A] c[k] = a[i]; i++; [B] c[k] = b[j]; i++;[C] c[k] = a[i]; j++; [D] c[k] = b[j]; j++;③ [A] a[i] = ‘\0’[B] a[i] != ‘\0’[C] b[j] = ‘\0’[D] b[j] != ‘\0’18.若要将当前目录中的myfile.txt文件压缩成myfile.txt.tar.gz,则实现的命令为( C)。
[A] tar -cvf myfile.txt myfile.txt.tar.gz [B] tar -cjf myfile.txt myfile.txt.tar.gz[C] tar -czf myfile.txt.tar.gz myfile.txt [D] tar -cxf myfile.txt.tar.gz myfile.txt19.在一个C源程序文件中,若要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使用的存储类别是( D )。
[A] extern [B] register [C] auto [D] static20.下面的代码输出是( A )void foo(void){unsigned int a=6;int b=-20;(a+b>6)?puts(">6"):puts("<=6");}[A] >6 [B] <=621.假设文件fileA的符号链接为fileB,那么删除fileA后,下面的描述正确的是( D )。
[A].fileB没有任何影响[B].因为fileB未被删除,所以fileA会被系统自动重新建立[C].fileB会随fileA的删除而被系统自动删除[D].fileB仍存在,但是属于无效文件22.以下程序的运行结果为( B )void sub(int x, int y, int *z){*z = y – x;}int main(void){int a,b,c;sub(10, 5, &a);sub(7, a, &b);sub(a, b, &c);printf( “%4d,%4d,%4d\n”,a,b,c);}[A] 5, 2, 3 [B] -5, -12, -7 [C] -5, -12, -17 [D] 5, -2, -723、一位法官在审理一起盗窃案中,对涉及到的四名嫌疑犯甲、乙、丙、丁进行了审问。
四人供述如下:甲说:“罪犯在乙、丙、丁三人之中。
”乙说:“我没有做案,是丙偷的。
”丙说:“在甲和丁中间有一人是罪犯。
”丁说:“乙说的是事实。
”经过充分的调查,证实这四人中有两人说了真话,另外两人说的是假话。
那么,请你对此案进行裁决,确认谁是罪犯?( A )[A]、乙和丁是盗窃犯[B]、乙和丙是盗窃犯[C]、乙是盗窃犯[D]、甲和丁是盗窃犯二、填空题(每空2分,共14分)1. 对文件file创建一个符号链接link( ln –s file link )。
2. 若有以下定义和语句,则*p[0]引用的是a数组元素中的( a[0] ),*(p[1]+1)引用的是a数组元素中的( a[3] )。
int *p[3], a[6], i;for( i = 0; i < 3; i++) p[i] = &a[2*i];3. 若有以下输入(<CR>代表回车换行符),则下面程序的运行结果为( 7 )。
1,2<CR>int main(void){int a[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};int (*p)[4], i, j;p = a;scanf(“%d,%d”,&i,&j);printf(“%d\n”, *(*(p+i)+j));return 0;}4. shell脚本的本质是( shell命令的有序集合 )。
5. 将历史纪录追加到文件file.txt内( history >> file.txt )。
6. make工程管理器根据( 时间戳 )来自动发现更新过的文件从而减少编译的工作量。
三、简答题(2题,每题5分,共10分)1、下面findmax函数将计算数组中的最大元素及其下标值,请编写该函数。
#include <stdio.h>void findmax ( int s[ ], int t, int *k ){}int main (void){int a[10] = {12, 23, 34, 45, 56, 67, 78, 89, 11, 22}, k;findmax ( a, 10, &k );printf ( “最大元素为:%d, 其下标值为:%d\n”, a[k], k );return 0;}2、现在有一个简单的工程项目,由main.c fun.c 和fun.h三个文件组成。