栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

编译原理第一章练习题

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

编译原理第一章练习题

编译原理第一章练习题 判断题

1、
一般来讲,编译程序生成的目标代码是一种绝对机器代码,可以直接在目标机上运行。

答案:错误

2、
在数中出现非数字字符如123XY45是词法错误。

答案:正确

3、
在源程序中出现非法字符如中文逗号等是语法错误。

答案:错误

4、
为方便语义检查,所有高级语言中变量必须先定义然后才能使用。

答案:正确

5、
编译过程可以由一遍、两遍或多遍完成。

答案:正确

6、
逆波兰式、三元式、四元式、抽象语法树都是中间语言表示,和具体机器平台无关。

答案:正确

7、
不能使用一种高级语言编写另一种高级语言的编译器。

答案:错误
大部分高级语言的编译器是由C语言编写的。

8、
如果发现代码错误,编译器应该立即停止其工作。

答案:错误
“立即”错误,应该先返回错误信息。

9、
标识符是由字母或字符开头,后跟字母、数字或字符的序列组成的单词。

答案:正确

10、
算符、界符、保留字、标识符、数字都是词法分析程序的识别对象。

答案:正确

选择题

1、
以下关于解释程序描述错误的是()
A、解释程序接受某个语言的程序并立即运行这个源程序
B、编译程序生成目标程序,解释程序不生成目标程序
C、解释程序的执行速度一般都快于编译程序
D、解释程序的输入包括源程序和输入数据

答案:C
解释程序(比如pathon)一般慢于编译程序(比如c/c++)

2、
Java语言编译后的代码之所以能够跨平台执行是因为()
A、Java编译程序生成的字节码(BYTECODE)是一种与平台无关的中间表示,因此能够直接在所有平台上运行
B、Java虚拟机负责BYTECODE在本地平台的解释执行
C、这些平台都使用了统一的指令格式
D、在一台机器上编译的代码本来就能够在另一台机器上执行,java并无特别之处

答案:B
java代码不是直接运行在CPU上,而是运行在java虚机(简称JVM)上的

3、
编译是对()。
A、机器语言的执行
B、汇编语言的翻译
C、高级语言的翻译
D、高级语言程序的解释执行

答案:C

4、
用高级语言编写的程序经编译后产生的程序叫( ).
A、源程序
B、目标程序
C、连接程序
D、解释程序

答案:B

5、
( )不是编译程序的组成部分。
A、词法分析程序
B、代码生成程序
C、设备管理程序
D、语法分析程序

答案:C

6、
源程序是句子的集合,( )可以较好地反映句子的结构。
A、线性表
B、树
C、完全图
D、堆栈

答案:B

7、
编译程序是一种( )。
A、汇编程序
B、翻译程序
C、解释程序
D、目标程序

答案:B
编译程序,也称为编译器,是指把用高级程序设计语言书写的源程序,翻译成等价的机器语言格式目标程序的翻译程序。

8、
按逻辑上划分,编译程序第三步工作是( )。
A、 语义分析
B、 词法分析
C、 语法分析
D、 代码生成

答案:A
词法分析 -> 语法分析 -> 语义分析

9、
编译程序中语法分析器接收以( )为单位的输入。
A、 单词
B、 表达式
C、 产生式
D、 句子

答案:A

10、
语法分析时所依据的是( )
A、 语法规则
B、 词法规则
C、 语义规则
D、 等价变换规则

答案:A

11、
通常一个编译程序中,不仅包含词法分析,语法分析,语义分析,中间代码生成,代码优化,目标代码生成等六个部分,还应包括( )。
A、 表格处理和出错处理
B、 解释器
C、 模拟执行器
D、 符号执行器

答案:A

12、
一般来说,编译过程由6个阶段组成。以下哪些不属于编译过程的组成部分()
A、 词法分析
B、 语法分析
C、 中间代码生成
D、 代码链接

答案:D

13、
以下哪些不是词法分析的任务()
A、 识别标识符
B、 识别保留字
C、 识别赋值语句
D、 识别数字

答案:C

14、
以下对于语法分析的描述错误的是()
A、 语法分析是编译程序的第二个阶段
B、 语法分析的依据是描述程序结构的语法规则
C、 语法分析的输入是词法分析的输出结果
D、 语法分析可以发现数组越界错误

答案:D

多选题

1、
以下哪些错误是在语法分析阶段发现的()
A、else没有匹配的if
B、数组下标不是整形变量
C、使用了未定义的函数
D、语句结尾缺少分号

答案:AD

2、
以下哪些错误是在语义分析阶段发现的()
A、程序中含有死循环
B、数组下标不是整形变量
C、使用了未定义的函数
D、给一个整形变量赋了一个字符串类型的值

答案:BCD

3、
以下属于解释程序的是()
A、BASIC
B、Linux Shell
C、SQL
D、Python

答案:ABCD

4、
以下属于编译前端的是()
A、词法分析
B、语法分析
C、语义分析
D、中间代码生成
E、机器无关的代码优化
F、机器相关的代码优化
G、代码生成

答案:ABCD

5、
指出以下C语言代码存在哪些错误?()
void main(){
int a, b, 123;
a = 0;
b = *a;
}

A、词法错误
B、语法错误
C、语义错误
D、没有错误

答案:BC

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/858077.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号