【计算机类职业资格】中级软件设计师上午试题-程序语言-2及答案解析.doc
《【计算机类职业资格】中级软件设计师上午试题-程序语言-2及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】中级软件设计师上午试题-程序语言-2及答案解析.doc(15页珍藏版)》请在麦多课文档分享上搜索。
1、中级软件设计师上午试题-程序语言-2 及答案解析(总分:100.00,做题时间:90 分钟)一、单项选择题(总题数:40,分数:100.00)1.程序运行过程中常使用参数在函数(过程)间传递信息,引用调用传递的是实参的_。(分数:2.00)A.地址B.类型C.名称D值2.在引用调用方式下进行函数调用是将_。(分数:1.00)A.实参的值传递给形参B.实参的地址传递给形参C.形参的值传递给实参D.形参的地址传递给实参3.在程序运行过程中经常使用参数在函数(过程)间传递信息,引用调用传递的是实参的_。(分数:1.00)A.地址B.类型C.名称D值4.弱类型语言(动态类型语言)是指不需要进行变量/对
2、象类型声明的语言。_属于弱类型语言。(分数:1.00)A.JavaB.C/C+C.PythonDC#5.可用于编写独立程序和快速脚本的语言是_。(分数:2.50)A.PythonB.PrologC.JavaDC#6.对于逻辑表达式“x and y or not z”,and、or、not 分别是逻辑与、或、非运算,优先级从高到低为 not、and、or,and、or 为左结合,not 为右结合,若进行短路计算,则_。(分数:2.50)A.x 为真时,整个表达式的值为真,不需要计算 y 和 z 的值B.x 为假时,整个表达式的值为假,不需要计算 y 和 z 的值C.x 为真时,根据 y 的值决定
3、是否需要计算 z 的值D.x 为假时,根据 y 的值决定是否需要计算 z 的值7.函数(过程)调用时,常采用传值与传地址两种方式在实参和形参间传递信息。以下叙述中,正确的是_。(分数:2.50)A.在传值方式下,将形参的值传给实参,因此,形参必须是常量或变量B.在传值方式下,将实参的值传给形参,因此,实参必须是常量或变量C.在传地址方式下,将形参的值传给实参,因此,形参必须有地址D.在传地址方式下,将实参的值传给形参,因此,实参必须有地址8.若 C 程序的表达式中引用了未赋初值的变量,则_。(分数:2.50)A.编译时一定会报告错误信息,该程序不能允许B.可以通过编译并运行,但运行时一定会报告
4、异常C.可以通过编译,但链接时一定会报告错误而不能运行D.可以通过编译并运行,但运行结果不一定是期望的结果函数 t、f 定义如下所示,其中,a 是整型全局变量。假设调用函数 t 前 a 的值为 5,则在函数中以传值调用(call by value)方式调用函数 f 时,输出为_;在函数 t 中以引用调用(call by reference)方式调用函数时,输出为_。 (分数:5.00)A.12B.16C.20D.24A.12B.16C.20D.249.在 KMP 模式匹配算法中,需要求解模式串 p 的 next 函数值,其定义如下(其中,j 为模式串字符的序号)。对于模式串“abaabaca”
5、,其 next 函数值序列为_。 (分数:2.50)A.01111111B.01122341C.01234567D.0112233410.若一种程序设计语言规定其程序中的数据必须具有类型,则有利于_。 在翻译程序的过程中为数据合理分配存储单元 对参与表达式计算的数据对象进行检查 定义和应用动态数据结构 规定数据对象的取值范围及能够进行的运算 对数据进行强制类型转换(分数:2.50)A.B.C.D.11.以下关于高级程序设计语言翻译的叙述中,正确的是_。(分数:2.50)A.可以先进行语法分析,再进行词法分析B.在语法分析阶段可以发现程序中的所有错误C.语义分析阶段的工作与目标机器的体系结构密切
6、相关D.目标代码生成阶段的工作与目标机器的体系结构密切相关12.传值与传地址是函数调用时常采用的信息传递方式,_。(分数:2.50)A.在传值方式下,是将形参的值传给实参B.在传值方式下,形参可以是任意形式的表达式C.在传地址方式下,是将实参的地址传给形参D.在传地址方式下,实参可以是任意形式的表达式13.对高级语言源程序进行编译的过程可以分为多个阶段,分配寄存器的工作在_阶段进行。(分数:2.50)A.词法分析B.语法分析C.语义分析D.目标代码生成14.将高级语言源程序翻译成机器语言程序的过程,常引入中间代码。以下关于中间代码的叙述中,不正确的是_。(分数:2.50)A.中间代码不依赖于具
7、体的机器。B.使用中间代码可提高编译程序的可移植性C.中间代码可以用树或图表示D.中间代码可以用栈和队列表示15.在编译程序对高级语言源程序进行编译的过程中,要不断收集、记录和使用源程序中一些相关符号的类型和特征等信息,并将其存入_中。(分数:2.50)A.符号表B.哈希表C.动态查找表D.栈和队列16.以下关于实现高级程序设计语言的编译和解释方式的叙述中,正确的是_。(分数:2.50)A.在编译方式下产生源程序的目标程序,在解释方式下不产生B.在解释方式下产生源程序的目标程序,在编译方式下不产生C.编译和解释方式都产生源程序的目标程序,差别是优化效率不同D.编译和解释方式都不产生源程序的目标
8、程序,差别在于是否优化17.以下关于解释程序和编译程序的叙述中,正确的是_。(分数:2.50)A.编译程序和解释程序都生成源程序的目标程序B.编译程序和解释程序都不生成源程序的目标程序C.编译程序生成源程序的目标程序,解释程序则不然D.编译程序不生成源程序的目标程序,而解释程序反之18.在对高级语言源程序进行编译的过程中,为源程序中变量所分配的存储单元的地址属于_。(分数:2.50)A.逻辑地址B.物理地址C.接口地址D.线性地址编译过程中,对高级语言程序语句的翻译主要考虑声明语句和可执行语句。对声明语句,主要是将需要的信息正确地填入合理组织的_中;对可执行语句,则是_。(分数:5.00)A.
9、符号表B栈C.队列D树A.翻译成机器代码并加以执行B.转换成语法树C.翻译成中间代码或目标代码D.转换成有限自动机19.将高级语言程序翻译为机器语言程序的过程中,常引入中间代码,其好处是_的适当工具。(分数:2.50)A.有利于进行反编译处理B.有利于进行与机器无关的优化处理C.尽早发现语法错误D.可以简化语法和语义分析20.以下关于程序错误的叙述中,正确的是_。(分数:2.50)A.编译正确的程序必然不包含语法错误B.编译正确的程序必然不包含语义错误C.除数为 0 的错误可以在语义分析阶段检查出来D.除数为 0 的错误可以在语法分析阶段检查出来21.在对程序语言进行翻译的过程中,常采用一些与
10、之等价的中间代码表示形式。常用的中间代码表示不包括_。(分数:2.50)A树B.后缀式C.四元式D.正则式22.编译和解释是实现高级程序设计语言翻译的两种的基本形式。以下关于编译与解释的叙述中,正确的是_。(分数:2.50)A.在解释方式下,对源程序不进行词法分析和语法分析,直接进行语义分析B.在解释方式下,无须进行词法、语法和语义分析,而是直接产生源程序的目标代码C.在编译方式下,必须进行词法、语法和语义分析,然后产生源程序的目标代码D.在编译方式下,必须先形成源程序的中间代码,然后再产生与机器对应的目标代码23.以下关于下图所示的有限自动机的叙述中,不正确的是_。 (分数:2.50)A.在
11、该自动机识别的字符串中 a 不能连续出现B.在自动机识别的字符串中 b 不能连续出现C.自动机识别的非空字符串必须以 a 结尾D.自动机识别的字符串可以为空串24.对于大多数通用程序设计语言,用_描述其语法即可。(分数:2.50)A.正规文法B.上下文无关文法C.上下文有关文法D.短语结构文法25.算术表达式“(a-b)*(c+d)”的后缀式是_。(分数:2.50)A.ab-cd+*B.abcd-*+C.ab-*cd+D.db-c+d*26.大多数程序设计语言的语法规则用_描述即可。(分数:2.50)A.正规文法B.上下文无关文法C.上下文有关文法D.短语结构文法27.在某 C/C+程序中,整
12、型变量 a 的值为 0 且应用在表达式“c=b/a”中,则最可能发生的情形是_。(分数:2.50)A.编译时报告有语法错误B.编译时报告有逻辑错误C.运行时报告有语法错误D.运行时产生异常28.以下关于语言 L=a n b n |n1的叙述中,正确的是_。 A.可用正规式“aa*bb*”描述,但不能通过有限自动机识别 B.可用正规式“a mbm”表示,也可用有限自动机识别 C.不能用正规式表示,但可以用有限自动机识别 D.不能用正规式表示,也不能通过有限自动机识别(分数:2.50)A.B.C.D.29.已知文法 G:SA0|B1,AS1|1,BS0|0,其中 S 是开始符号。从 S 出发可以推
13、导出_。(分数:2.50)A.所有由 0 构成的字符串B.所有由 1 构成的字符串C.某些 0 和 1 个数相等的字符串D.所有 0 和 1 个数不同的字符串30.算术表达式 a+(b-c)*d 的后缀式是_。(“-”、“+”、“*”表示算术的减、加、乘运算,运算符的优先级和结合性遵循惯例)(分数:2.50)A.bc-d*a+B.abc-d*+C.ab+c-d*D.abcd-*+31.对高级语言源程序进行编译的过程中,有穷自动机(NFA 或 DFA)是进行_。(分数:2.50)A.词法分析B.语法分析C.语义分析D.出错处理32.语言 L=a m b n |m0,n1的正规表达式是_。(分数:
14、2.50)A.aa*bb*B.a*bb*C.aa*b*D.a*b*33.算术表达式(a-b)*c+d 的后缀式是_(“-”、“+”、“*”表示算术的减、加、乘运算,运算符的优先级和结合性遵循惯例)。(分数:2.50)A.abcd-*+B.ab-cd*+C.ab-c*d+D.abc-d*+34.算术表达式 x-(y+c)*8 的后缀式是_(“-”、“+”、“*”表示算术的减、加、乘运算,运算符的优先级和结合型遵循惯例)。(分数:2.50)A.xyc8-+*B.xy-c+8*C.xyc 8*+-D.xyc+8*-35.如下图所示为一个有限自动机(其中,A 是初态,C 是终态),该自动机所识别的字符
15、串的特点是_。 (分数:2.50)A.必须以 11 结尾的 0、1 串B.必须以 00 结尾的 0、1 串C.必须以 01 结尾的 0、1 串D.必须以 10 结尾的 0、1 串36.如下图所示为一个有限自动机(其中,A 是初态、C 是终态),该自动机识别的语言可用正规式_表示。 (分数:2.50)A.(0|1)*01B.1*0*10*1C.1*(0)*01D.1*(0|10)*1*37.包含 8 个成员的开发小组的沟通路径最多有_。(分数:2.50)A.28B.32C.56D.6438.如下图所示为一个有限自动机(其中,A 是初态、C 是终态),该自动机可识别_。 (分数:2.50)A.00
16、00B.1111C.0101D.1010中级软件设计师上午试题-程序语言-2 答案解析(总分:100.00,做题时间:90 分钟)一、单项选择题(总题数:40,分数:100.00)1.程序运行过程中常使用参数在函数(过程)间传递信息,引用调用传递的是实参的_。(分数:2.00)A.地址B.类型C.名称 D值解析:解析 引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样,表示该引用名是目标变量名的一个别名。2.在引用调用方式下进行函数调用是将_。(分数:1.00)A.实参的值传递给形参B.实参的地址传递给形参 C.形参的值传递给实参D.形参的地址传递给实参解析:解析 引用调
17、用是把实参(如 int a)的地址(&a)赋给形参(指针变量,例如*b,这时 b=&a,即 b 指向变量 a),如果*b(即 a 对应的内存空间)发生变化,也就是变量 a 的值发生了变化。3.在程序运行过程中经常使用参数在函数(过程)间传递信息,引用调用传递的是实参的_。(分数:1.00)A.地址 B.类型C.名称D值解析:解析 引用调用把参数的地址复制给形式参数。在函数内,该地址用于访问调用中用到的实际参数。这意味着修改形式参数会影响实际参数。4.弱类型语言(动态类型语言)是指不需要进行变量/对象类型声明的语言。_属于弱类型语言。(分数:1.00)A.JavaB.C/C+C.Python D
18、C#解析:解析 根据定义可知 Java,C/C+,C#都需要进行变量/对象声明,所以说是强类型语言。而Pvthon 不需要,它属于弱类型语言。5.可用于编写独立程序和快速脚本的语言是_。(分数:2.50)A.Python B.PrologC.JavaDC#解析:解析 Python 是一种面向对象的解释型程序设计语言,可用于编写独立程序、快速脚本和复杂应用的原型。Python 也是一种脚本语言,它支持对操作系统底层的访问。 Prolog 是一种逻辑型语言。Prolog 程序是一系列事实、数据对象或事实间的具体关系和规则的集合。Prolog 有很强的推理功能,适用于书写自动定理证明、专家系统、自然
19、语言理解等问题的程序。 Java 是一种面向对象的程序设计语言,能开发应用在 Internet 上且具有软、硬件独立性和交互能力的程序。Java 可以一次编写而到处运行。 C#是微软公司发布的一种面向对象的、运行于 NET Framework 之上的高级程序设计语言。C#看起来与Java 有着惊人的相似:它包括了诸如单一继承、接口、与 Java 几乎同样的语法和编译成中间代码再运行的过程。但是 C#与 Java 有着明显的不同,它借鉴了 Delphi 的一个特点,与 COM(组件对象模型)是直接集成的,而且它是微软公司.NET Windows 网络框架的主角。6.对于逻辑表达式“x and y
20、 or not z”,and、or、not 分别是逻辑与、或、非运算,优先级从高到低为 not、and、or,and、or 为左结合,not 为右结合,若进行短路计算,则_。(分数:2.50)A.x 为真时,整个表达式的值为真,不需要计算 y 和 z 的值B.x 为假时,整个表达式的值为假,不需要计算 y 和 z 的值C.x 为真时,根据 y 的值决定是否需要计算 z 的值 D.x 为假时,根据 y 的值决定是否需要计算 z 的值解析:解析 “x and y or not z”可以表示为“(x and y)or(not z)”。x 为真时,如果 y 为真,则 x and y 的结果为真,此时不
21、需要计算 z 的值,整个表达式的值为真:如果 y 为假,则 x and y 的结果为假,此时整个表达式的值由 z 决定,如果 z 为真,则 not z 为假,最终结果为假,相反则为真。 x 为假时,不需要计算 y 的值,x and y 的结果为假,整个表达式的值由 z 决定。7.函数(过程)调用时,常采用传值与传地址两种方式在实参和形参间传递信息。以下叙述中,正确的是_。(分数:2.50)A.在传值方式下,将形参的值传给实参,因此,形参必须是常量或变量B.在传值方式下,将实参的值传给形参,因此,实参必须是常量或变量C.在传地址方式下,将形参的值传给实参,因此,形参必须有地址D.在传地址方式下,
22、将实参的值传给形参,因此,实参必须有地址 解析:解析 传值调用是指传递变量值的调用方式。在这种调用方式中,实参使用变量名或者表达式,形参使用变量名。在调用时,调用函数将实参值拷贝到一个副本给形参,即使形参按顺序从对应的实参中获得值,这就相当于将实参值对应地赋给形参,使形参获值。传址调用是指在调用时传递变量地址值的传值调用。传址调用时要求调用函数的实参用地址值,而被调用函数的形参用指针,于是函数之间进行地址值的传递。这种传递是将实参的变量地址值传递给形参指针,即让形参指针指向实参变量,这种传递方式与调用函数拷贝实参值的副本给形参是不同的,它是让形参指针直接指向实参的变量。8.若 C 程序的表达式
23、中引用了未赋初值的变量,则_。(分数:2.50)A.编译时一定会报告错误信息,该程序不能允许B.可以通过编译并运行,但运行时一定会报告异常C.可以通过编译,但链接时一定会报告错误而不能运行 D.可以通过编译并运行,但运行结果不一定是期望的结果解析:解析 全局变量和静态局部变量在定义时如果没有初始化,编译时会自动初始化为 0;而普通的局部变量,如果没有初始化,则其值是一个随机数。在 C 程序表达式中,只要引用的变量定义了,就可以通过编译并运行,但运行结果不一定是期望的结果。函数 t、f 定义如下所示,其中,a 是整型全局变量。假设调用函数 t 前 a 的值为 5,则在函数中以传值调用(call
24、by value)方式调用函数 f 时,输出为_;在函数 t 中以引用调用(call by reference)方式调用函数时,输出为_。 (分数:5.00)A.12B.16 C.20D.24解析:A.12B.16C.20D.24 解析:解析 本题主要考查函数调用时参数的传递方式。如果采用传值方式调用,则形参值的变化不会影响实参;而采用引用方式调用,则形参值的变化直接反映到实参。 本题中如果在函数 t 中采用传值方式调用函数 f,a 的值传给形参 r,在函数 f 中,a 的值变为 6,r 的值为 10 并返回赋给变量 x,由于 a 是全局变量,退出函数 f 后 a 的值依然为 6,所以函数 t
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 中级 软件 设计师 上午 试题 程序语言 答案 解析 DOC
