数据库系统工程师基础知识(选择题)模拟试卷10
中文选择题(含3小题)
用高级语言编写程序时,子程序调用语句中的实际参数必须与子程序说明中的形式参数在 (33) 上保持一致。在允许子程序递归调用的高级语言环境中,需用动态存储管理方法,它通常使用一个 (34) 存入子程序的调用记录,调用记录可包括:
.全局量存储区域的(35);
.调用点所在子程序的(36);
.调用点的(37);
.形式参数和实际参数的通信区域;
.返回值;
.本子程序的局部量和临时变量存储区域等。
1.(D)
A. 线性表
B. 队列
C. 堆
D. 下堆栈
解析:
2.(D)
A. 子程序首地址
B. 调用记录首地址
C. 参数地址
D. 开始地址
E. 返回地址
解析:
3.(B)
A. 子程序首地址
B. 调用记录首地址
C. 参数地址
D. 寄存器地址
E. 返回地址
解析:
4.(E)
A. 子程序首地址
B. 调用记录首地址
C. 参数地址
D. 寄存器地址
E. 返回地址
解析:除少数程序语言之外,形式参数和实际参数之间的对应关系通常按位置来确定。子程序定义中有形式参数表,而子程序调用是用实际参数表。进入子程序时,第一个形式参数就和第一个实际参数所表示的数据或其他信息相关联,一一对应。这样,子程序调用语句中的实际参数必须与子程序说明中的形式参数在个数、类型和顺序上保持一致,否则就不能在主程序和子程序之间正确地传递信息。
对于允许子程序递归调用的程序语言,一般采用动态存储管理方法,用堆栈来实现。由于某一子程序可能被调用了若干次,但只有最近一次调用正处于执行状态,而其余各次调用正等待下次调用的返回。这样,前几次该子程序调用的属于该子程序的局部变量存储区中的内容必须保存起来,以便下次调用返回时再继续使用。子程序执行需要一个用来存放有关信息的区域,这个区域为过程的调用记录,一般包含以下几部分:
.全局变量存储区域的开始地址;
.调用点所在子程序的调用记录的地址;
.调用点机器状态,如返回地址和寄存器当时值;
.形式参数和实际参数的通信区域;
.返回值;
.本子程序的局部变量和临时变量存储区。
语法分析方法大体上可分成自顶向下和自底向上两种。自底向上分析法,是从输入符号串开始逐步进行(38),直至(38)成文法的起始符号。自顶向下分析法,则是从文法的起始符号开始反复使用产生式进行(39),直至(40)出输入符号串。算符优先文法是一种自底向上分析方法,其特点是文法的产生式中(41)。自顶向下的分析方法,通常要求文法的产生式(41),如(42)文法就是一种可以自顶向下分析的文法。
5.(D)
A. 递归
B. 综合
C. 回归
D. 推导
E. 分解
解析:
6.(A)
A. 不含两个相邻的非终结符
B. 不含两个相邻的终结符
C. 不含ε产生式
D. 不含长度为1的产生式
解析:
7.(C)
A. 不以非终结符开头
B. 不以终结符开头
C. 不含左递归
D. 不含右递归
解析:
8.(B)
A. LR(I)
B. LL(I)
C. SLR(I)
D. LALR(I)
解析:语法分析的程序以词法分析程序所输出的用内部编码表示的单词序列为输入,其任务是分析源程序的结构,鉴别它是否是相应程序设计语言的一个合法程序。为了完成这个任务,通常由语法分析程序尝试着为其构造一棵完整的语法树。若尝试成功,则表明输入的符号串在结构上是一个合乎语法的程序,否则,源程序中必然存在错误。
就产生语法树的方向而言,可大致把它们分为自顶向下和自底向上两大类。所谓自顶向下的分析是对给定的符号串,试图自顶向下地为其构造出一棵语法树,或者说从文法的开始符号出发,为其构造一个最左推导。所谓自底向上的分析是对给定的符号串,试图自底向上地为其构造出一棵语法树,或者说从给定的符号串本身出发,试图将其归约为文法的开始符号。
算符优先文法属于自底向上的分析法,它利用各个算符间的优先关系和结合规则来进行语法分析,特别适用于分析各种表达式。算符优先文法的任何产生式的右部都会出现两个非终结符相邻的情况,且任何一对终对符之间至多只有3种算符关系“<”、“>”和“=”之一成立。自顶向下的文法中不能有左递归,否则自顶向下的分析过程进入死循环,不能正常进行。(27)中除LL(I)为自顶向下的文法外,其他均为自底向上的文法。
假设某程序语言的文法如下:
S→SaT|T
T→TbR|R
R→PdR|P
P→fSg|e
其中Vr={a,b,d,e,f,g};Vn={S,T,R,P};S是开始符号,那么,此文法是(43)文法。这种文法的语法分析通常采用优先矩阵。优先矩阵给出了该文法中各个终结符之间的优先关系(大于、小于、等于和无关系)。在上述文法中,某些终结符之间的优先关系如下:b{(44)}a;f{(45)}g;a{(46)}a;d{(47)}d。
9.(A)
A. 大于
B. 小于
C. 等于
D. 无关系
解析:
10.(C)
A. 大于
B. 小于
C. 等于
D. 无关系
解析:
11.(A)
A. 大于
B. 小于
C. 等于
D. 无关系
解析:
12.(B)
A. 大于
B. 小于
C. 等于
D. 无关系
解析:所谓算符文法,可以描述如下:如果在一个文法G中,不含有形如“U→…AB…”的产生式,其中A,B∈Vn,则G为算符文法。也就是说,如果G是算符文法,那么G的任何产生式的右部都不会出现两个非终结符号相邻的情况,而且,对算符文法而言,也不会产生两个非终结符号相邻出现的句型。这种性质意味着,如果把终结符号看做广义运算符,而把非终结符号看做广义运算的对象,则在算符文法的任何句型中,两相邻运算符之间的运算对象至多只有一个,而不会出现其间运算对象个数不确定的情况。这样就使得广义运算总是按照中缀形式出现的,对语法分析工作非常有益。
对于给定的文法G,可以逐个检查G的各产生式,查看它们的右部是否含有相邻出现的非终结符号,以确定G是否为算符文法,然后再构造相应的优先矩阵。若此矩阵中无多重定义的元素(即各运算符对之间至多只有一种优先关系),则可确认为算符优先文法。
在算符文法中,一般按照如下规则判断终结符之间的优先关系:
当且仅当G中有形如“U→…ab…”或者“U→…aBb…”的产生式,a=b
当且仅当G中有形如“U→…aA…”的产生式,且有或者“Ab...”或者“A
本文档预览:3600字符,共8215字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载