软件设计师考试历年真题的错题整理——程序语言基础知识
章节习题——第二章:程序语言基础知识习题
-
下面关于程序语言的叙述,错误的是( ) 。
A. 脚本语言属于动态语言,其程序结构可以在运行中改变
B. 脚本语言一般通过脚本引擎解释执行,不产生独立保存的目标程序
C. php 、 JavaScript 属于静态语言,其所有成分可在编译时确定
D. C 语言属于静态语言,其所有成分可在编译时确定答案:C
解析:动态语言是指程序在运行时可以改变其结构,例如新的函数可以被引进、已有的函数可以被删除等在结构上的变化等。动态语言的类型检查是在运行时进行的,其优点是方便阅读,不需要写非常多的与类型相关的代码;缺点是不方便调试,命名不规范时会读不懂、不利于理解等。
脚本语言代表一套与系统程序设计语言不同的协定。它们牺牲执行速度和与系统程序设计语言相关的类型长度而提供更高的编程创作能力和软件重用。脚本语言更适合在联系复杂的应用程序中进行胶着(粘合)。为了简化连接组件的工作,脚本语言被设计为无类型的,脚本语言一般是面向字符的,因为字符为许多不同的事物提供了一致的描述。事实上,脚本语言都是动态语言,而动态语言都是解释型语言,不管它们是否是面向对象的语言。 -
HTML< body >元素中,( )属性用于定义超链接被鼠标点击后所显示的颜色。
A. alink B. background C. bgcolor D. vlink答案:D
解析:alink 用于设置正在被击中的链接的颜色。 vlink 用于设置己使用的链接的颜色。 background 用于设置背景图片的 URL 。 bgcolor 用于设置文档整体背景颜色。 -
通用的高级程序设计语言一般都会提供描述数据、运算、控制和数据传输的语言成分,其中,控制包括顺序、( )和循环结构。
A. 选择 B. 递归 C. 递推 D. 函数答案:A
解析:程序设计语言的基本成分包括数据、运算、控制和传输等。
程序设计语言的运算成分包括算数式运算、关系运算和逻辑运算。
程序设计语言的控制成分包括顺序、选择和循环 3 种结构。 -
算术表达式(a-b) * c+d 的后缀式是( ) (-、+、* 表示算术的减、加、乘运算,运算符的优先级和结合性遵循惯例)。
A. abcd-*+ B. ab-cd* + C. ab-c * d+ D. ab c-d * +答案:C
解析:后缀式即逆波兰式,是逻辑学家卢卡西维奇发明的一种表示表达式的方法。这种表示方式把运算符写在运算对象的后面,例如,把 a+b 写成 ab+。这种表示法的优点是根据运算对象和算符的出现次序进行计算,不需要使用括号,也便于用械实现求值。(a-b)*c+d 的后缀式是 ab-c*d+。 -
以下 HTML 代码中,创建指向邮箱地址的链接正确的是( )。
A. < a href=“email:test@test.com”>test@test.com
B. < a href=“emailto:test@test.com”>test@test.com
C. < a href=“mail:test@test.com”>test@test.com
D. < a href=“mailto:test@test.com”>test@test.com答案:D
解析:mailto:它告诉网页浏览器,下面的链接指向电子邮件地址,而不是页面 -
以下关于解释程序和编译程序的叙述中,正确的是( )。
A. 编译程序和解释程序都生成源程序的目标程序 B. 编译程序和解释程序都不生成源程序的目标程序
C. 编译程序生成源程序的目标程序,解释程序则不然 D. 编译程序不生成源程序的目标程序,而解释程序反之答案:C
解析:解释器翻译源程序时不生成独立的目标程序,解释器和源程序都要参与到程序的运行过程中
编译器翻译源程序时会生成独立保存的目标程序,机器上运行的是与源程序等价的目标程序。源程序和编译器都不参与到程序的运行过程中。 -
逻辑表达式“ a∧b∨ c∧(b∨ x> 0 )”的后缀式为( )。(其中∧、∨分别表示逻辑与、逻辑或,>表示关系运算大于,对逻辑表达式进行短路求值)
A. abcbx0>∨∧∧∨ B. ab∧c∨b∧x0>∨ C. ab∧cb∧x>0∨∨ D. ab∧cbx0>∨∧∨答案:D
解析:运算符优先级:先()再*/后± 等 ;逻辑运算符优先级:先 逻辑与 再 逻辑或。
如上所述优先级,①首先求出括号内的 b∨ x> 0后缀式,x>0后缀式:x0>;b∨x>0后缀式即为:bx0>∨。
②再对剩余逻辑运算符部分a∧b∨c∧ bx0>∨求后缀式:逻辑与优先——ab∧ ∨ cbx0>∨∧ ;再算逻辑或——ab∧cbx0>∨∧∨ -
在对高级语言源程序进行编译的过程中,为源程序中变量所分配的存储单元的地址属于( )
A. 逻辑地址 B. 物理地址 C. 接口地址 D. 线性地址答案:A
解析:编译过程中为变量分配存储单元所用的地址是逻辑地址,程序运行时再映射为物理地址。 -
递归下降分析法是一种()方法。
A.自底向上的语法分析 B.自上而下的语法分析 C.自底向上的词法分析 D.自上而下的词法分析答案:B
解析:递归向下分析法和预测分析法是常用的自顶向下分析法。算符有限分析法和LR(移进—归约)分析法属于自底向上的语法分析方法。 -
()是一种函数式编程语言。
A.Lisp B.Prolog C.Python D.Java/C++答案:A
解析:采用不同类型的程序语言进行程序开发涉及不同的程序思维和开发方法。题目中所列举的程序语言中,Lisp是函数式编程语言,Prolog是逻辑式程序语言,Python支持过程式编程也支持面向对象编程,Java/C++是面向对象的编程语言。