|
|
|
|
移动端

1.15 编译原理(3)

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

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

年前最后一场技术盛宴 | 1月27日与京东、日志易技术大咖畅聊智能化运维发展趋势!


1.15 编译原理(3)

【真题 224】有如下代码:

  1. int main(void)  
  2. {  
  3. http://www.taobao.com  
  4. cout<<"welcome to taobao"<<endl;  

上述代码的出错时间是()。

A.预处理阶段  B.编译阶段  C.汇编阶段  D.链接阶段

E.运行阶段  F.程序运行正常

答案:B。

编译器对程序的编译可分为 4个阶段:预编译、编译和优化、汇编和链接,之后就是运行了。预编译是将程序引用的头文件包含进源代码中,并对一些宏进行替换。编译是将用户可识别的语言翻译成一组处理器可识别的操作码,生成目标文件,通常翻译成汇编语

言,而汇编语言和机器操作码之间是一对一的关系。

所有的目标文件必须用某种方式组合起来才能运行,这就是链接的作用。目标文件中通常仅解析了文件内部的变量和函数,对于引用的函数和变量还没有解析,这需要将其他已经编写好的目标文件引用进来,将没有解析的变量和函数进行解析,通常引用的目标是库。链接完成后会生成可执行文件。

本题中,编译阶段,编译程序读取源程序(字符流),进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码, http://ww.taobao.com是不合法的语句。所以,选项 B正确。

【真题 225】代码生成阶段的主要任务是()。

A.把高级语言翻译成汇编语言 B.把高级语言翻译成机器语言

C.把中间代码变换成依赖具体机器的目标代码 D.把汇编语言翻译成机器语言答案:C。代码生成阶段的主要任务是把中间代码(或经优化处理之后)变换成特定机器上的低级语言代码,

它的工作有赖于硬件系统结构和机器指令含义。选项 C正确。

【真题 226】下图是一个非确定有限自动机( NFA)的状态转换图,其等价的正规式为()。

A.0*|(0|1)0 B.(0|10)* C.0*(10)*  D.0*((0|1)0)*答案:B。从上面的自动机的状态转换图可以看出,这个自动机可以识别如下几种表达式:

1)0个或多个 0。

2)0个或多个如下的表达式:先识别 0或 1,接着识别一个 0;也就是说,识别 00串或 10串,对于 00串而言,跟 1)是相同的。

3)1)和 2)组合的表达式。综上所述,这个自动机可以识别 0个或多个 10串,0个或多个 0的组合。由此可见,选项 B满足条件,选项 B正确。上图中的自动机可以识别 100串,而选项 A、选项 C

和选项 D都无法识别。所以,选项 A、选项 C与选项 D都错误。所以,本题的答案为 B。

【真题 227】关于异常的含义,下列描述中,昀正确的一个是()。

A.程序编译错误  B.程序语法错误

C.程序自定义的异常事件  D.程序编译或者运行时发生的异常事件

答案:D。

异常是在程序编译或运行中所发生的可预料的或不可预料的异常事件,它会引起程序的中断,影响程序的正常运行。所以,选项 D正确。

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

51CTO读书频道二维码


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

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

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

读 书 +更多

Tomcat与Java Web开发技术详解

本书详细介绍了在最新Tomcat 5版本上开发Java Web应用的各种技术。主要内容包括:Tomcat和Java Web开发的基础知识,Java Web开发的高级技术...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊