|
|
|
|
移动端

1.7.3 #include

《程序员面试笔试真题与解析》本书针对当前各大 IT企业面试笔试中特性与侧重点,精心挑选了 3年以来近百家典型 IT企业的面试笔试真题,这些企业涉及业务包括系统软件、搜索引擎、电子商务、手机 APP、安全关键软件等,面试笔试真题非常具有代表性与参考性。本节为大家介绍#include。

作者:猿媛之家来源:机械工业出版社|2017-12-06 14:38

有奖调研 | 1TB硬盘等你拿 AI+区块链的发展趋势及应用调研


1.7.3 #include

【真题 84】以下关于头文件的描述中,正确的是()。

A.#include<filename.h>,编译器寻找头文件时,会从当前编译的源文件所在的目录去找

B.#include“filename.h”,编译器寻找头文件时,会通过编译选项指定的目录去找

C.多个源文件同时用到的全局整数变量,它的声明和定义都放在头文件中,是好的编程习惯

D.在大型项目开发中,把所有自定义的数据类型、全局变量、函数声明都放在一个头文件中,各

个源文件都只需要包含这个头文件即可,省去了要写很多 #include语句的麻烦,是好的编程习惯

答案:B。

对于选项 A,对于 #include <filename.h>引用形式,编译器先从标准库路径开始搜索,然后再从本地

目录搜索。所以,选项 A错误。对于选项 B,对于 #include “filename.h”引用形式,编译器先从用户的工作目录开始搜索(用户的

工作目录是通过编译器指定的),然后再去系统路径寻找。所以,选项 B正确。对于选项 C,在 C/C++语言中,头文件只能存放全局变量的声明,其定义只能放在 .c、.cpp文件中。所以,选项 C错误。对于选项 D,一般而言,在开发大型项目的时候,会把不同的声明放在不同的头文件中。所以,选项 D错误。

【真题 85】以下说法正确的是()。

A.头文件中的 ifndef/define/endif 是为了防止该头文件被重复引用

B.对于#include<filename.h>,编译器从标准库路径开始搜索 filename.h,对于#include“filename.h”,编译器从用户的工作路径开始搜索 filename.h

C.C++语言支持函数重载, C语言不支持函数重载

D.fopen函数只是把文件目录信息调入内存答案:A、B、C。对于选项 A,头文件中的 ifndef/define/endif 的作用是为了防止该头文件被重复引用。所以,选项 A

正确。

对于选项 B,当使用#include<filename.h>包含方式时,编译器从标准库路径开始搜索 filename.h,当使用#include“filename.h”包含方式时,编译器从用户的工作路径开始搜索 filename.h。所以,选项 B正确。

对于选项 C,C++语言支持函数重载,而 C语言不支持函数重载。函数被 C++编译后,在库中的名字与 C语言是不同的。假设某个函数的原型为: void foo(int x, int y),那么该函数被 C编译器编译后,在库中的名字为 _foo,而 C++编译器则会产生像 _foo_int_int之类的名字,通常, C++语言提供了 C连接交换指定符号 extern “C”来解决名字匹配问题。所以,选项 C正确。

对于选项 D,fopen函数用来打开一个文件,它只是建立了文件对象和进程的关联关系,而这个关联关系就是文件描述符。所以,选项 D错误。

【真题 86】下列关于 #include命令的描述中,正确的是()。

A.一个#include命令中只能指定一个被包含文件

B.一个#include命令可以指定包含多个被包含文件

C.一个被包含的文件又可以包含另一个被包含文件

D.#include命令中,文件名可以用双引号或尖括号括起来答案:A、C、D。对于选项 A与选项 B,一个 include 命令每次只能包含进来一个文件。所以,选项 A正确,选项 B

错误。对于选项 C,一个被包含的文件可以通过 include包含另一个文件。所以,选项 C正确。对于选项 D,在#include命令中,文件名可以用双引号或尖括号括起来。所以,选项 D正确。

【真题 87】 #include命令的功能是( )。

A.在命令处插入一个头文件  B.在文件首部插入一个头文件

C.在命令处插入一个文本文件  D.在文件首部插入一个程序文件

答案:C。

#include的原理其实很简单,当预处理器发现 #include后,就会寻找指令后面 <>或“”中的文件名,并把这个文件的内容包含到当前的文件中,被包含的文件中的文本将替换源代码文件中的 #include指令。

所以,选项 C正确。

喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

设计模式:可复用面向对象软件的基础(双语版)

《设计模式:可复用面向对象软件的基础》(双语版)是引导读者走入软件设计迷宫的指路明灯,凝聚了软件开发界几十年的设计经验。四位顶尖的...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊