软考中的编程语言可以选择Java或者C++,主要考察类、接口定义,构造函数,方法等基础知识。如果没有编程相关知识,可以找个基础教程学习一下,这里提供俩个:
https://www.runoob.com/java/java-tutorial.html和
https://www.runoob.com/cplusplus/cpp-tutorial.html。
真题:
- 将高级语言源程序通过编译或解释方式进行翻译时,可以先生成与源程序等价的某种中间代码。以下关于中间代码的叙述中,正确的是( )。
A.中间代码常采用符号表来表示
- 编译过程中进行的语法分析主要是分析( )。
语法分析主要是分析数据类型是否合法。
3.下图为一个表达式的语法树,该表达式的后缀形式为( x 5 y + * a / b - )。
前序:中左右
中序:左中右
后序:左右中
4.程序设计语言的语法基本上都是上下文无关文法。
5.编译程序的功能是把用高级语言书写的源程序翻译成与之等价的目标程序。编译过程划分成词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成6个阶段。目标程序可以独立于源程序运行。中间代码生成、代码优化不是必须的。
解释程序是一种语言处理程序,在词法、语法和语义分析方面与编译程序的工作原理基本相同,但在运行用户程序时,它是直接执行源程序或源程序的内部形式(中间代码)。因此,解释程序并不产生目标程序,这是它和编译程序的主要区别。
6.中间代码的表达形式有语法树,后缀式,三地址代码。
中间代码可以用树或图表示。
中间代码有利于进行与机器无关的优化处理。
7.移进--归约分析法是编译程序(或解释程序)对高级语言源程序进行语法分析的一种方法,属于( )的语法分析方法。
B.自底向上(或自下而上)
试题分析
归约分析是自底向上方法中的典型。
8.表达式采用逆波兰式表示时,利用( 栈 )进行求值。
算术表达式默认为左中右排序。
9.编译程序对高级语言源程序进行编译的过程中,要不断收集、记录和使用源程序中一些相关符号的类型和特征等信息,并将其存入( 符号表 )中。
10.对高级语言源程序进行编译的过程中,有穷自动机(NFA或DFA)是进行( 词法分析 )的适当工具。
11.在对高级语言源程序进行编译的过程中,为源程序中变量所分配的存储单元的地址属于( 逻辑地址 )。