若一种程序设计语言规定其程序中的数据必须具有类型,则有利于 (22) 。
①在翻译程序的过程中为数据合理分配存储单元
②对参与表达式计算的数据对象进行检查
③定义和应用动态数据结构
④规定数据对象的取值范围及能够进行的运算
⑤对数据进行强制类型转换
(22) A.①②③ B.①②④ C.②④⑤ D.③④⑤
例题分析:
一种程序设计语言规定其程序中的数据必须具有类型,好处如下:
(1)有利于在翻译程序的过程中为数据合理分配存储单元,因为程序设计语言为不同的数据类型规定了其所占的存储空间,如果数据类型确定,其所占的存储空间也是确定的。
(2)有利于对参与表达式计算的数据对象进行检查,因为知道数据的数据类型,我们就可以根据类型来判断该数据是否可以参与某表达式计算,如自加、自减的操作数不允许是浮点数,这只要根据数据的类型就能判断某操作数,是否能进行自加、自减运算。
(3)有利于规定数据对象的取值范围及能够进行的运算,根据数据类型,我们可以数据的存储空间,也同时能知道数据的表示范围,如C语言中的整型数据,它占两个字节(16位),能表示的数据范围就是-2 16 至2 16 -1。
综上所述,可知本题的正确答案选B。
例题答案: B
以下关于高级程序设计语言翻译的叙述中,正确的是 (48) 。
(48)A.可以先进行语法分析,再进行词法分析
B.在语法分析阶段可以发现程序中的所有错误
C.语义分析阶段的工作与目标机器的体系结构密切相关
D.目标代码生成阶段的工作与目标机器的体系结构密切相关
例题分析:
在对用高级程序设计语言编写的程序进行执行时,首先是将源代码翻译成目标代码,然后再连接成可执行的二进制代码。因此在翻译阶段,目标代码生成阶段的工作与目标机器的体系结构密切相关。
例题答案: D
如图2-7所示为一个有限自动机(其中,A是初态、C是终态),该自动机可识别 (49) 。
图2-7 有限自动机
(49)A.0000 B.1111 C.0101 D.1010
例题分析:
本题主要考查有限自动机。
在本题中,A是初始状态,C是终止状态,通过选项中的字符串可以从初始状态到达终止状态,则说明该字符串能被题目中的自动机识别。也可以理解为依次输入选项中的字符串,可以在该自动机中找到相应的路径。
对于选项A的字符串0000,在输入0后,从初始状态A转移到状态B,然后接着输入3个0,状态然后停留在B,而无法到达终态C,因此选项A不能被该自动机识别。
同样的道理,我们可以找到字符串0101能被该自动机识别,在输入0后,状态跳转到B,输入1则由B转至C,再输入0,又由C转至B,最后输入1,由B转至终态C。
例题答案: C
传值与传地址是函数调用时常采用的信息传递方式 (50) 。
(50)A.在传值方式下,是将形参的值传给实参
B.在传值方式下,形参可以是任意形式的表达式
C.在传地址方式下,是将实参的地址传给形参
D.在传地址方式下,实参可以是任意形式的表达式
例题分析:
在函数调用时,系统为形参准备空间,并把实参的值赋值到形参空间中,在调用结束后,形参空间将被释放,而实参的值保持不变,这就是传值传递方式。传值传递方式中实参与形参之间的数据传递是单向的,只能由实参传递给形参,因而即使形参的值在函数执行过程中发生了变化,也不会影响到实参值。在C语言中,当参数类型是非指针类型和非数组类型时,均采用传值方式。
传地址方式把实参的地址赋值给形参,这样形参就可以根据地址值访问和更改实参的内容,从而实现双向传递。当参数类型是指针类型或数组类型时,均采用传地址方式。
区别于参数传值方式和返回值传递方式,传地址方式具有以下明显的优势。
(1)参数传值方式是主调函数与被调函数之间的单向数据传递方式,而参数的传地址方式则实现了二者之间的双向数据传递。
(2)函数的返回值每次只能把一个数据项从被调函数传递到主调函数,而参数的传地址方式却可一次性地传递多个数据项到主调函数。
例题答案: C