计算机技术与软件专业技术资格考试(初级程序员)

某C语言程序中,m是一个整型变量,则()时遇到表达式m+"test"会报错。A、词法分析B、语法分析C、语义分析D、程序运行

题目

某C语言程序中,m是一个整型变量,则()时遇到表达式m+"test"会报错。

  • A、词法分析
  • B、语法分析
  • C、语义分析
  • D、程序运行
如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

表达式中括号不匹配错误可在编译程序______阶段检查出来。

A.词法分析

B.语法分析

C.语义分析

D.代码优化


正确答案:B
解析:编译程序是要把高级语言书写的源程序翻译成与之等价的目标程序,其工作过程可分为6个阶段:
  词法分析:对源程序从前到后逐个字符进行扫描,从中识别出一个个“单词”符号。
  语法分析:在词法分析的基础上,根据语言的语法规则将单词符号序列分解成各类语法单元。通过语法分析,确定整个输入串是否构成一个语法上正确的程序。
  语义分析:主要检查源程序是否存在语义错误,进行类型分析和检查。数据类型一般包括类型的载体及其上的运算两方面的内容。只有语法和语义都正确的源程序才能翻译成正确的目标代码。
  中间代码生成:根据语义分析的输出生成中间代码,这是一种简单且含义明确的记号系统,与具体的机器无关。
  代码优化:生成的中间代码往往在时间和空间上有很大的浪费,对其优化,可生成高效的目标代码。优化过程可在中间代码生成阶段进行,也可以在目标代码生成阶段进行。
  目标代码生成:把中间代码变换成特定机器上的绝对指令代码、可重定位的指令代码或汇编代码。

第2题:

● 程序以解释方式运行时,不(31) 。

(31)

A. 进行词法分析

B. 进行语法分析

C. 进行语义分析

D. 产生目标程序文件


正确答案:D

第3题:

●编译器和解释器是两种高级语言处理程序,与编译器相比, (29) 。编译器对高级语言源程序的处理过程可以划分为词法分析、语法分析、语义分析、中间代码生成、代码优化、目标代码生成等几个阶段:其中,代码优化和 (30) 并不是每种编译器都必需的。词法分析的作用是识别源程序中的 (31) ;语法分析中的预测分析法是 (32) 的一种语法分析方法;编译器在 (33) 阶段进行表达式的类型检查及类型转换。

(29) A.解释器不参与运行控制,程序执行的速度慢

B.解释器参与运行控制,程序执行的速度慢

C.解释器参与运行控制,程序执行的速度不变

D.解释器不参与运行控制,程序执行的速度快

(30) A.词法分析

B.语义分析

C.中间代码生成

D.语法分析

(31) A.字符串

B.单词

C.语句

D.标识符

(32) A.自左至右

B.自顶向下

C.自底向上

D.自右至左

(33) A.词法分析

B.语法分析

C.语义分析

D.中间代码生成


正确答案:B,C,B,B,C
【解析】在编译方式下,源程序的编译和目标代码的执行是两个独立的阶段,即编译器不参与目标代码的执行。而在解释方式下,解释器将源程序逐句地进行翻译,并立即执行。因此,解释器参与运行控制。由于解释器将两个过程一次完成,所以速度较慢。并不是所有的编译器都经过中间代码阶段和代码优化阶段,可以直接生成目标代码,然后不经过优化便执行。 词法分析的任务是读入一个字符串,根据词法规则,将字符串划分成有意义的单词。预测分析法根据已经分析的结果预测下一句可能出现的情况,是一种自顶向下的分析方法。语义分析主要是根据语义规则以及词法分析的结果,对源程序进行语义检查,包括类型方面检查,运算合法性检查等语义检查。

第4题:

某C语言程序中,m是一个整型变量,则______时遇到表达式m+"test"会报错。

A.词法分析

B.语法分析

C.语义分析

D.程序运行

A.

B.

C.

D.


正确答案:C
解析:本题考查程序语言翻译基础知识。
  对源程序进行编译的过程可以分为词法分析、语法分析、语义分析、中间代码生成和优化、目标代码生成等阶段。其中,词法分析是分析各种构造形式的单词,如整型常量、浮点常量、标识符、运算符等;语法分析是分析各种构造形式的表达式(算术表达式、关系表达式、逻辑表达式等)和语句(if语句、for语句、while语句等),词法分析和语法分析都是对程序的结构进行分析。语义分析是指分析程序中各种语言成分的含义,如变量、表达式、语句等的含义,是对程序的静态语义(编译时能确定的语义)的分析。程序运行时体现程序的动态语义。

第5题:

程序以解释方式运行时,不(31)。

A.进行词法分析

B.进行语法分析

C.进行语义分析

D.产生目标程序文件


正确答案:D
解析:本题考查关于语言处理的编译和解释基本概念。编译和解释足两种处理程序语言的方式。编译程序(编译器)首先将源程序翻译成目标语言程序,然后在计算机上运行目标程序;而解释程序(也称为解释器)或者直接解释执行源程序,或者将源程序翻译成某种中间表示形式后再加以执行。这两种语言处理程序的根本区别是:在编译方式下,机器上运行的是与源程序等价的目标程序,源程序和编译程序都不再参与目标程序的执行过程;而在解释方式下,解释程序和源程序(或其某种等价表示)要参与到程序的运行过程中,运行程序的控制权在解释程序。词法分析、语法分析和语义分析是进行语言翻译不可或缺的基本工作阶段,是编译和解释方式都要处理的。简单来说,解释器翻译源程序时不产生独立的目标程序,而编译器则需将源程序翻译成独立的目标程序。

第6题:

● 某C语言程序中,m是一个整型变量,则 (33) 时遇到表达式m+"test"会报错。

(33)

A. 词法分析

B. 语法分析

C. 语义分析

D. 程序运行


正确答案:C

第7题:

某C语言程序中,x是一个浮点型变量,m是一个值为正整数的整型常量,表达式x%m(x被m除取余数)在(40)时会报错,这是一种(41)错误。

A.编译

B.预处理

C.编辑

D.运行


正确答案:A
解析:程序代码中的错误可分为语法错误和语义错误。程序语言的语法表述的是语言的形式,或者说是语言的样子和结构。程序语言还有更重要的一个方面,就是附着于语言结构上的语义。语义揭示了程序本身的含义、施加于语言结构上的限制或者要执行的动作。程序语言的语义分为静态语义和动态语义。编译时进行的是静态语义的分析,主要包括:检查语言结构的语义是否正确,即是否结构正确的句子所表示的意思也合法;执行规定的语义动作,如表达式的求值、符号表的填写、中间代码的生成等。整除取余运算符“%”的有效运算对象是两个整数。在形式上,只要“%”的两个运算对象存在,其语法就是正确的;在语义上,“%”的运算对象中有浮点数则不符合整除取余运算的含义。因此,这是运算对象与运算符的类型不匹配错误,届于静态语义错误,在编译阶段可以发现该错误。

第8题:

● 以下关于高级语言程序的编译和解释的叙述中,正确的是 (48) 。

(48)

A. 编译方式下,可以省略对源程序的词法分析、语法分析

B. 解释方式下,可以省略对源程序的词法分析、语法分析

C. 编译方式下,在机器上运行的目标程序完全独立于源程序

D. 解释方式下,在机器上运行的目标程序完全独立于源程序


正确答案:C

第9题:

程序以解释方式运行时,不______。

A.进行词法分析

B.进行语法分析

C.进行语义分析

D.产生目标程序文件


正确答案:D
解析:解释方式执行是直接执行源程序或源程序的内部形式,所以它不需要产生目标程序文件。本题正确答案为选项D。

第10题:

请教:2010年下半年软考程序员-上午试题(标准参考答案版)第1大题第27小题如何解答?

【题目描述】

 ● 某C语言程序中,m是一个整型变量,则  (33)  时遇到表达式m+"test"会报错。

(33)

A. 词法分析       

B. 语法分析   

C. 语义分析     

D. 程序运行

 


正确答案:C

更多相关问题