对高级语言源程序进行编译时,可发现源程序中的______错误。A.堆栈溢出B.变量未定义C.指针异常D.数

题目

对高级语言源程序进行编译时,可发现源程序中的______错误。

A.堆栈溢出

B.变量未定义

C.指针异常

D.数组元素下标越界

参考答案和解析
正确答案:B
解析:高级语言源程序中的错误分为两类:语法错误和语义错误。①语法错误指语言结构上的错误。②语义错误又可分为静态语义错误和动态语义错误。静态语义错误指编译时就能发现的程序含义上的错误,动态语义错误只有在程序运行时才能表现出来。堆栈溢出、指针异常和数组元素下标越界都是程序运行中才能出现的问题,而遵循先声明后引用原则的程序语言必须先定义变量,然后才能使用,否则编译器会在语法分析阶段指出变量未定义错误。本题正确答案为选项B。
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

编译程序的功能是()。
A.发现源程序中的语法错误
B.改正源程序中的语法错误
C.将源程序编译成目标文件
D.将一种高级语言程序翻译成另一种高级语言程序


答案:C
解析:
正确答案是C。
提示:编译的目的是要产生一个与源程序对应的目标文件,其中包含检査源程序是否有误。

第2题:

对高级语言源程序进行编译时,可发现源程序中的( )错误。

A.堆栈溢出
B.变量未定义
C.指针异常
D.数组元素下标越界

答案:B
解析:
本题考查编译过程基本知识。高级语言源程序中的错误分为两类:语法错误和语义错误,其中语义错误又可分为静态语义错误和动态语义错误。语法错误指语言结构上的错误,静态语义错误指编译时就能发现的程序含义上的错误,动态语义错误只有在程序运行时才能表现出来。堆栈溢出、指针异常和数组元素下标越界都是程序运行中才能出现的问题,而遵循先声明后引用原则的程序语言必须先定义变量,然后才能使用,否则编译器会在语法分析阶段指出变量未定义错误。

第3题:

对高级语言源程序进行编译时,可发现源程序中的__(29)__错误。

A.堆栈溢出

B.变量未定义

C.指针异常

D.数组元素下标越界


正确答案:B
编译就是把高级语言变成计算机可以识别的二进制语言,计算机只认识1和0,编译程序把人们熟悉的语言换成二进制的。编译程序把一个源程序翻译成目标程序的工作过程分为五个阶段:词法分析;语法分析;中间代码生成;代码优化;目标代码生成。主要是进行词法分析和语法分析,又称为源程序分析,分析过程中发现有语法错误,给出提示信息。(1)词法分析。词法分析的任务是对由字符组成的单词进行处理,从左至右逐个字符地对源程序进行扫描,产生一个个的单词符号,把作为字符串的源程序改造成为单词符号串的中间程序。执行词法分析的程序称为词法分析程序或扫描器。(2)语法分析。编译程序的语法分析器以单词符号作为输入,分析单词符号串是否形成符合语法规则的语法单位,如表达式、赋值、循环等,最后看是否构成一个符合要求的程序,按该语言使用的语法规则分析检查每条语句是否有正确的逻辑结构,程序是最终的一个语法单位。(3)中间代码生成。中间代码是源程序的一种内部表示,或称中间语言。中间代码的作用是可使编译程序的结构在逻辑上更为简单明确,特别是可使目标代码的优化比较容易实现。中间代码即为中间语言程序,中间语言的复杂性介于源程序语言和机器语言之间。(4)代码优化。代码优化是指对程序进行多种等价变换,使得从变换后的程序出发,能生成更有效的目标代码。所谓等价,是指不改变程序的运行结果。所谓有效,主要指目标代码运行时间较短,以及占用的存储空间较小。这种变换称为优化。(5)目标代码生成。目标代码生成是编译的最后一个阶段。目标代码生成器把语法分析后或优化后的中间代码变换成目标代码。本题的选项A,堆栈溢出就是不顾堆栈中分配的局部数据块大小,向该数据块写入了过多的数据,导致数据越界,结果覆盖了老的堆栈数据。这种错误,编译时是无法发现的,只有当运行结果出来后,才能分析出错误所在。选项C和D是在程序运行时可能出现的错误。

第4题:

编译程序的最终目标是( )。A.发现源程序中的语法错误B.改正源程序中的语法错误

编译程序的最终目标是( )。

A.发现源程序中的语法错误

B.改正源程序中的语法错误

C.将源程序编译成目标程序

D.将某一高级语言程序翻译成另一高级语言程序


正确答案:C
编译程序的基本功能以及最终目标便是把源程序(高级语言)翻译成目标程序。

第5题:

对高级语言源程序进行编译时,可发现源程序中的(29)错误。

A.堆栈溢出

B.变量未定义

C.指针异常

D.数组元素下标越界


正确答案:B
解析:本题考查编译过程基本知识。
  高级语言源程序中的错误分为两类:语法错误和语义错误,其中语义错误又可分为静态语义错误和动态语义错误。语法错误指语言结构上的错误;静态语义错误指编译时就能发现的程序含义上的错误,动态语义错误只有在程序运行时才能表现出来。堆栈溢出、指针异常和数组元素下标越界都是程序运行中才能出现的问题,而遵循先声明后引用原则的程序语言必须先定义变量,然后才能使用,否则编译器会在语法分析阶段指出变量未定义错误。

第6题:

试题(21)

对高级语言源程序进行编译时,可发现源程序中的 (21) 错误。

(21)

A. 堆栈溢出

B. 变量未定义

C. 指针异常

D. 数组元素下标越界


正确答案:B

试题(21)分析
本题考查编译过程基本知识。
高级语言源程序中的错误分为两类:语法错误和语义错误,其中语义错误又可分为静态语义错误和动态语义错误。语法错误指语言结构上的错误,静态语义错误指编译时就能发现的程序含义上的错误,动态语义错误只有在程序运行时才能表现出来。堆栈溢出、指针异常和数组元素下标越界都是程序运行中才能出现的问题,而遵循先声明后引用原则的程序语言必须先定义变量,然后才能使用,否则编译器会在语法分析阶段指出变量未定义错误。
参考答案
(21)B

第7题:

● 对高级语言源程序进行编译时,可发现源程序中的 (29) 错误。

(29)

A. 堆栈溢出

B. 变量未定义

C. 指针异常

D. 数组元素下标越界


正确答案:B

第8题:

对高级语言源程序进行编译时,可发现源程序中的(21)错误。

A.堆栈溢出

B.变量未定义

C.指针异常

D.数组元素下标越界


正确答案:B
解析:本题考查编译过程基本知识。高级语言源程序中的错误分为两类:语法错误和语义错误,其中语义错误又可分为静态语义错误和动态语义错误。语法错误指语言结构上的错误,静态语义错误指编译时就能发现的程序含义上的错误,动态语义错误只有在程序运行时才能表现出来。堆栈溢出、指针异常和数组元素下标越界都是程序运行中才能出现的问题,而遵循先声明后引用原则的程序语言必须先定义变量,然后才能使用,否则编译器会在语法分析阶段指出变量未定义错误。

第9题:

●对高级语言源程序进行编译时,可发现源程序中的(8)错误。

(8)A.堆栈溢出

B.变量未定义

C.指针异常

D.数组元素下标越界


正确答案:B