中级软件设计师上午试题模拟题2018年(3)
(总分100,考试时间90分钟)
单项选择题
1. 以下关于解释程序和编译程序的叙述中,正确的是______。
A. 编译程序和解释程序都生成源程序的目标程序
B. 编译程序和解释程序都不生成源程序的目标程序
C. 编译程序生成源程序的目标程序,解释程序则不然
D. 编译程序不生成源程序的目标程序,而解释程序反之
2. 以下关于传值调用与引用调用的叙述中,正确的是______。
①在传值调用方式下,可以实现形参和实参间双向传递数据的效果
②在传值调用方式下,实参可以是变量,也可以是常量和表达式
③在引用调用方式下,可以实现形参和实参间双向传递数据的效果
④在引用调用方式下,实参可以是变量,也可以是常量和表达式
A. ①③ B. ①④
C. ②③ D. ②④
3. 可用于编写独立程序和快速脚本的语言是______。
A. Python B. Prolog
C. Java D. .C#
4. 将高级语言源程序翻译成目标程序的是______。
A. 解释程序 B. 编译程序
C. 链接程序 D. 汇编程序
5. 在对程序语言进行翻译的过程中,常采用一些与之等价的中间代码表示形式。常用的中间代码表示不包括______。
A. .树 B. 后缀式
C. 四元式 D. 正则式
6. 函数(过程)调用时,常采用传值与传地址两种方式在实参和形参间传递信息。以下叙述中,正确的是______。
A. 在传值方式下,将形参的值传给实参,因此,形参必须是常量或变量
B. 在传值方式下,将实参的值传给形参,因此,实参必须是常量或变量
C. 在传地址方式下,将形参的值传给实参,因此,形参必须有地址
D. 在传地址方式下,将实参的值传给形参,因此,实参必须有地址
7. 编译和解释是实现高级程序设计语言翻译两种基本形式。以下关于编译与解释的叙述中,正确的是______。
A. 在解释方式下,对源程序不进行词法分析和语法分析,直接进行语义分析
B. 在解释方式下,无需进行词法、语法和语义分析,而是直接产生源程序的目标代码
C. 在编译方式下,必须进行词法、语法和语义分析,然后产生源程序的目标代码
D. 在编译方式下,必须先形成源程序的中间代码,然后再产生与机器对应的目标代码
8. 若C程序的表达式中引用了未赋初值的变量,则______。
A. 编译时一定会报告错误信息,该程序不能允许
B. 可以通过编译并运行,但运行时一定会报告异常
C. 可以通过编译,但链接时一定会报告错误而不能运行
D. 可以通过编译并运行,但运行结果不一定是期望的结果
函数t、f的定义如下所示,其中,a是整型全局变量。设调用函数t前a的值为5,则在函数中以传值调用(call by value)方式调用函数f时,输出为______;在函数t中以引用调用(call by
reference)方式调用函数时,输出为______。
9.
A. 12 B. 16
C. 20 D. 24
10.
A. 12 B. 16
C. 20 D. 24
11. 传值与传地址是函数调用时常采用的信息传递方式,______。
A. 在传值方式下,是将形参的值传给实参
B. 在传值方式下,形参可以是任意形式的表达式
C. 在传地址方式下,是将实参的地址传给形参
D. 在传地址方式下,实参可以是任意形式的表达式
12. 以下关于变量和常量的叙述中,错误的是______。
A. 变量的取值在程序运行过程中可以改变,常量则不行
B. 变量具有类型属性,常量则没有编程语言翻译
C. 变量具有对应的存储单元,常量则没有
D. 可以对变量赋值,不能对常量赋值
13. 下面C程序段中count++语句执行的次数为______。
for(int i=1;i<=11;i*=2)
for(int j=1;j<=i;j++)
count++;
A. 15 B. 16
C. 31 D. 32
14. 程序的三种基本控制结构是______。
A. 过程、子程序和程序 B. 顺序、选择和重复
C. 递归、堆栈和队列 D. 调用、返回和跳转
15. 函数调用时,基本的参数传递方式有传值与传地址两种,______。
A. 在传值方式下,形参将值传给实参
B. 在传值方式下,实参不能是数组元素
C. 在传地址方式下,形参和实参间可以实现数据的双向传递
D. 在传地址方式下,实参可以是任意的变量和表达式
16. 下面关于程序语言的叙述,错误的是______。
A. 脚本语言属于动态语言,其程序结构可以在运行中改变
B. 脚本语言一般通过脚本引擎解释执行,不产生独立保存的目标程序
C. PHP、JavaScript属于静态语言,其所有成分可在编译时确定
D. C#、Java语言属于静态语言,其所有成分可在编译时确定
17. 程序设计语言一般都提供多种循环语句,例如实现先判断循环条件再执行循环体的while语句和先执行循环体再判断循环条件的do-while语句。关于这两种循环语句,在不改变循环体的条件下,______是正确的。
A. while语句的功能可由do-while语句实现
B. do-while语句的功能可由while语句实现
C. 若已知循环体的次数,则只能使用while语句
D. 循环条件相同时,do-while语句的执行效率更高
18. 下列叙述中错误的是______。
A. 面向对象程序设计语言可支持过程化的程序设计
B. 给定算法的时间复杂性与实现该算法所采用的程序设计语言无关
C. 与汇编语言相比,采用脚本语言编程可获得更高的运行效率
D. 面向对象程序设计语言不支持对一个对象的成员变量进行直接访问
19. 在对高级语言源程序进行编译的过程中,为源程序中变量所分配的存储单元的地址属于______。
A. 逻辑地址 B. 物理地址
C. 接口地址 D. 线性地址
20. 以下关于语言L={anbn|n>1)的叙述中,正确的是______。A.可用正规式“aa*bb*”描述,
但不能通过有限自动机识别
B.可用正规式“ambm”表示,也可用有限自动机识别
C.不能用正规式表示,但可以用有限自动机识别
D.不能用正规式表示,也不能通过有限自动机识别
编译过程中,对高级语言程序语句的翻译主要考虑声明语句和可执行语句。对声明语句,主要是将需要的信息正确地填入合理组织的______中;对可执行语句,则是______。
21.
A. 符号表 B. .栈
C. 队列 D. .树
22.
A. 翻译成机器代码并加以执行 B. 转换成语法树
C. 翻译成中间代码或目标代码 D. 转换成有限自动机
23. 语言L={ambn|m≥0,n≥1}的正规表达式是______。A.aa*bb*
***bb*
***b*
***b*
24. 算术表达式(a-b)*c+d的后缀式是______(-、+、*表示算术的减、加、乘运算,运算符的优先级和结合性遵循惯例)。
A. abcd-*+ B. ab-cd*+
C. ab-c*d+ D. abc-d*+
25. 以下关于程序错误的叙述中,正确的是______。
A. 编译正确的程序必然不包含语法错误
B. 编译正确的程序必然不包含语义错误
C. 除数为0的错误可以在语义分析阶段检查出来
D. 除数为0的错误可以在语法分析阶段检查出来
26. 算术表达式x-(y+c)*8的后缀式是______(-、+、*表示算术的减、加、乘运算,运算符的优先级和结合型遵循惯例)。
A. xyc8-+* B. xy-c+8*
C. xyc8*+- D. xyc+8*-
27. 下图所示为一个有限自动机(其中,A是初态、C是终态),该自动机所识别的字符串的特点是______。
A. 必须以1 1结尾的0、1串 B. 必须以00结尾的0、1串
C. 必须以01结尾的0、1串 D. 必须以10结尾的0、1串
28. 下图所示为一个有限自动机(其中,A是初态、C是终态),该自动机识别的语言可用正规式______表示。
A. (0|1)*01 B. 1*0*10*1
C. 1*(0)*01 D. 1*(0|10)*1*
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论