【软考通】
程序中全局变量的存储空间在(B)分配。
A 代码区
B 静态数据区
C 栈区
D 堆区
程序运行时的用户内存空间一般划分为代码区、静态数据区、栈区和堆区,其中栈区和堆区也称为动态数据区。全局变量的存储空间在静态数据区。
以下程序设计语言中,(C)更适合用来进行动态网页处理。
A HTML
B LISP
C PHP
D JAVA/C++
HTML:静态网页
LISP:一种基于伽马演算的函数式编程语言
PHP:混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态页面
引用调用方式下进习函数调用,是将(B)。
A 实参的值传递给行参
B 实参的地址传递给形参
C 形参的值传递给实参
D 形参的地址传递给实参
值调用和引用调用是实现函数调用,是传递参数的两种基本方式。在值调用方式下,是将实参的值传给形参,在引用调用方式下实将实参的地址传递给形参。
编译程序对高级语言源程序进行编译的过程中,要不断收集、记录和使用源程序中一些相关符号的类型和特征等信息,并将其存入(A)中。
A 符号表
B 哈希表
C 动态查找表
D 栈和队列
符号表是一种用于语言翻译器(例如编译器和解释器)中的数据结构。在符号表中,程序源代码中的每个标识符都和它的声明和使用信息绑定在一起,比如其数据类型、作用域以及内存地址。
哈希表:也叫散列表,是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。
动态查找表:动态查找表的表结构本身是在查找过程中动态生成的,即对于给定值key,若表中存在其关键字等于key的记录,则查找成功返回,否则插入关键字等于key的记录。
栈和队列:基本的数据结构。栈的基本特点是“后进先出”,而队列的基本特点是“先进先出”。
以下关于解释程序和编译程序的叙述中,正确的事(C)
A 编译程序和解释程序都生成源程序的目标程序
B 编译程序和解释程序都不生成源程序的目标程序
C 编译程序生成源程序的目标程序,解释程序则不然
D 编译程序不生成源程序的目标程序,而解释程序反之
解释程序也称为解释器,它或者直接解释执行源程序,或者将源程序翻译成某个中间表示形式后再执行。而编译程序(编译器)则是将源程序翻译成目标语言程序,然后在计算机上运行目标程序。两种语言处理程序根本区别是:在编译方式下,机器上运行的是与源程序等价的目标程序,源程序和编译程序都不再参与目标程序的执行过程;而在解释方式下,解释程序和源程序(或其某种等价表示)要参与到程序的运行过程中,运行程序的控制权在解释程序。解释器翻译源程序时不生成独立的目标程序,而编译器则需将源程序翻译成独立的目标程序。
以下关于传值调用与引用调用的叙述中,正确的事(C)。
➀在传值调用方式下,可以实现形参和实参间双向传递数据的效果
➁在传值调用方式下,实参可以是变量,也可以是常量和表达式
➂在引用调用方式下,可以实现形参和实参间双向传递数据的效果
➃在引用调用方式下,实参可以是变量,也可以是常量和表达式
A ➀➂
B ➀➃
C ➁➂
D ➁➃
在过程(或函数)首部声明的参数成为形式参数,简称形参;过程(或函数)调用时的参数称为世纪参数,简称实参。
传值调用以实参向形式参数传递相应类型的值,在这种方式下,形式参数不能向实际参数返回信息。
引用调用将实际参数的地址传递给形式参数,使得形参的地址就是对应的实参的地址。
在对高级语言源程序进行编译的过程中,为源程序中变量所分配的存储单元的地址属于(A)
A 逻辑地址
B 物理地址
C 接口地址
D 线性地址
编译过程中为变量分配存储单元所用的地址是逻辑地址,程序运行时再映射为物理地址。
对于逻辑表达式“x and y or not z”,and、or、not分别是逻辑与、或、非运算,优先级从高到低为not、and、or,and or为左结合,not为右结合,若进行短路计算,则(C)
A x为真时,整个表达式的值即为真,不需要计算y和z的值
B x为假时,整个表达式的值即为假,不需要计算y和z的值
C x为真时,根据y的值决定是否需要计算z的值
D x为假时,根据y的值决定是否需要计算z的值
对逻辑表达式可以进行短路计算,其依据时:a and b的含义是a和b同时为“真”,则 a and b为“真”,因此若a为“假”,则无论b的值为“真”或“假”,a and b必然为“假”,a or b的含义是a和b同时为“假”,则a or b必然为“真”。
在优先级和结合性规定下,对逻辑表达式“x and y or not z”求值时,应先计算“x and y”的值,若为“假”,才会计算“z”的值。因此若x的值为“假”,则“x and y”的值为“假”,需要计算“not z”来确定表达式的值而不管y是“真”是“假”。当x的值为“真”,则需要计算y的值:若y的值为“真”,则整个表达式的值为“真”(从而不需再计算“not z”);若y的值为“假”,则需要计算“not z”来确定表达式的值。
算术表达式x-(y+c)*8的后缀式是()(-、+、*表示算术减、加、乘运算,运算符的优先级和结合性遵循惯例)。(D)
A x y c 8 - + *
B x y - c + 8 *
C x y c 8 * + -
D x y c + 8 * -
后缀表达式(也叫逆波兰式,Reverse Polish notation)是将运算符写再操作数之后的表达式表示方法。
表达式“x-(y+c)*8”的后缀式为“xyc+8*-”
算术表达式采用逆波兰式表示时不用括号,可以利用()进行求值。与逆波兰式ab-cd+*对应的中缀表达式时(B)
A 数组
B 栈
C 队列
D 散列表
逆波兰式(Reverse Polish notation,也叫后缀表达式)是将运算符写再操组数之后的表达式表示方法。对逆波兰式进行求值的方法是:从左至右扫描表达式,遇到操作数则压栈