软考-程序语言基本知识(下)

1、【试题分析:从开始出发,不断推导与替换非终结符。
E->E+T->T+T->F+T->N+T->2+T->2+(T×F)->2+(-F×N)->2+(-N)×N->2+(-3)×4
答案:B】

2、【试题分析:程序设计语言的语义分为静态语义和动态语义,其中静态语义分析方法是语法制导翻译,其基本思想是将语言结构的语义以属性的形式赋予代表此结构的文法符号,而属性的计算以语义规则的形式赋予文法的产生式。
答案:C】

3、【试题分析:中间代码的作用是可使程序的结构在逻辑上更为简单明确,特别是可使目标代码的优化比较容易实现。中间代码有多种形式,觉见的有逆波兰记号(后缀式)、四元式和三元式,它们的共同特点是具体的机器无关,不依赖于具体的永无止息机。
答案:B】

4、【试题分析:
词法分析阶段:输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个的单词,删掉无用的信息,报告分析时的错误。
语法分析阶段:语法分析器以单词符号作为输入,分析单词符号是否形成符合语法规则的语法单位,如表达式、赋值、循环等,按语法规则分析检查每条语句是否有正确的逻辑结构。
语义分析阶段:主要检查源程序是否存在语义错误,并收集类型信息供后面代码生成阶段使用,如赋值语句的右端和左端的类型不匹配、表达式的除数是否为零等。
答案:B】

5、【试题分析:文法类型:0型、1型、2型、3型。
上下文无关文法:形式语言理论中一种重要的变化文法,用来描述上下文无关语言,在乔姆斯基分层中称为2型文法。由于程序设计语言的语法基本上都是上下文无关的文法,因此应用十分广泛。
答案:B】

6、【试题分析:
程序运行时,对函数的调用一般有两种形式:传值调用和引用调用。
传值调用:形参取的是实参的值,形参的改变不会导致调用点所传的实参的值发生改变。
引用调用:形参取的是实参的地址,即相当于实参存储单元的地址引用,因此,其值的改变同时就改变了实参的值。
答案:A】

7、【试题分析:
对于文法可以推导出的字符串分析,考试一般可以对文法举例,然后总结规律。以本题的文法为例,可以产生的字符串包括:
(1)10推导过程:S->A0,A->1。
(2)01推导过程:S->B1,B->0。
(3)1010推导过程:S->A0,A->S1,S->A0,A->1。
至此,可以了解到,选项A、B、D的描述都是不正确的。
答案:C】

8、【试题分析:
本题要求算术表达式的后缀式,解决该类问题的方法是将算术表达式构造成一棵二叉树,然后对二叉树进行后序遍历得到后缀式。对二叉树进行后序遍历的结果为abc-d*+。
答案:B】

9、【试题分析:
“中间代码”是一种简单且含义明确的记号系统,可以有若干种形式,它们的共同特征是与具体的机器无关,此时所做的优化一般建立在对程序的控制流和数据流分析的基础之上,与具体的机器无关。
答案:B】

10、【试题分析:
语言中具有独立含义的最小语法单位是符号(单词),如标识符、无符号常数和界限符等。词法分析的任务是把构成源程序的字符串转换成单词符号序列。有限自动机是一种识别装置的抽象概念,它能准确地识别正规集。有限自动机分为两类:确定的有限自动机(DFA)和不确定的有限自动机(NFA)。
答案:A】

11、【试题分析:
弱/强类型指的是语言类型系统的类型检查的严格程度,动态类型和静态类型则指变量与类型的绑定方法。静态类型是指编译器在编译源程序期间执行的类型检查,动态类型是指编译器(虚拟机)在程序运行时执行的类型检查。简单地说,在声明了一个变量之后,不能改变其类型的语言,是静态语言;能够随时改变其类型的语言,是动态语言。弱类型相对于强类型来说,类型检查更不严格,比如说允许变量类型的隐式转换、允许强制类型转换等。
答案:C】

你可能感兴趣的:(软考-程序语言基本知识(下))