用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将?

6、用 C 语言编写的源文件经过编译,若没有产生编译错误,则系统将( )。

A. 生成可执行目标文件 B. 生成目标文件

C. 输出运行结果 D. 自动保存源文件

本题正确答案应为B选项。

C选项为错误答案。

原因如下:

1、编译程序仅仅是将源语言编写的源程序转换为目标程序。

2、编译是把高级语言变成计算机可以识别的2进制语言。

3、编译程序把一个源程序翻译成目标程序的工作过程分为五个阶段:词法分析;语法分析;语义检查和中间代码生成;代码优化;目标代码生成。

显然,编译的过程中并没有运行程序输出结果的步骤,编译的结果是生成目标文件(代码)。

因此C选项为错误答案,B选项为正确答案。

编译原理图如下:

扩展资料:

目标代码(目标文件)生成是编译的最后一个阶段。目标代码生成器把语法分析后或优化后的中间代码变换成目标代码。目标代码有三种形式:

1、 可以立即执行的机器语言代码,所有地址都重定位;

2、待装配的机器语言模块,当需要执行时,由连接装入程序把它们和某些运行程序连接起来,转换成能执行的机器语言代码;

3、汇编语言代码,须经过汇编程序汇编后,成为可执行的机器语言代码。

目标代码生成阶段应考虑直接影响到目标代码速度的三个问题:一是如何生成较短的目标代码;二是如何充分利用计算机中的寄存器,减少目标代码访问存储单元的次数;三是如何充分利用计算机指令系统的特点,以提高目标代码的质量。

参考资料:

编译_百度百科

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-02
B,先生成目标文件。之后的工作不再由编译器完成,而是交给linker执行link操作,最后才能生成可执行文件。本回答被提问者和网友采纳
第2个回答  2010-06-12
系统默认的C 语言源程序文件的扩展名是 .c ,经过编译后生成的目标文件的扩展名是 .obj ,经过连接后生成的可执行文件的扩展名是 .exe 。

参考资料:我的课本

相似回答