【计算机类职业资格】程序员-程序设计语言基础及答案解析.doc
《【计算机类职业资格】程序员-程序设计语言基础及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】程序员-程序设计语言基础及答案解析.doc(18页珍藏版)》请在麦多课文档分享上搜索。
1、程序员-程序设计语言基础及答案解析(总分:58.00,做题时间:90 分钟)一、B单选题/B(总题数:32,分数:58.00)1.需编译运行的程序,其_错误在编译时不能发现。(分数:1.00)A.逻辑B.语法C.括号不匹配D.关键字拼写2.由多个源文件组成的 C 程序,经过编辑、预处理、编译、链接等阶段才能生成最终的可执行程序。此过程中,在_阶段可以发现被调用的函数未定义。(分数:1.00)A.编辑和预处理B.预处理C.编译D.链接在下面的程序代码中,a 是全局变量。若以引用调用(call by reference)方式调用函数 f,则输出结果为U (1) /U;若以值调用(call by v
2、alue)方式调用函数 f,输出结果为U (2) /U。(分数:4.00)(1).(1)(分数:1.00)A.10B.40C.36D.72(2).(2) (分数:1.00)A.10B.40C.36D.72(3).(1)(分数:1.00)A.7B.5C.4D.3(4).(2)(分数:1.00)A.3B.4C.5D.7某 C 语言程序中,x 是一个浮点型变量,m 是一个值为正整数的整型常量,表达式 x%m (x 被 m 除取余数)在U (1) /U时会报错,这是一种U (2) /U错误。(分数:2.00)(1).(1)(分数:1.00)A.编译B.预处C.编辑D.运行(2).(2)(分数:1.00
3、)A.词法B.语法C.语义D.运行3.在 C 语言中,若函数调用时实参是数组名,则传递给对应形参的是_。(分数:1.00)A.数组空间的首地址B.数组的第一个元素值C.数组中元素的个数D.数组中所有的元素4.若程序 P 经编译并链接后可执行,则_。(分数:1.00)A.P 是正确的程序B.P 中没有语法错误C.P 中没有逻辑错误D.P 在运行中不会出错5._是有运行时把过程调用和响应调用需要的代码加以结合的过程。(分数:1.00)A.词法分析B.静态绑定C.动态绑定D.预编译在下面的程序中,若实参 a 与形参 x 以引用调用的方式传递信息,则输出结果为U (1) /U;若实参 a 与形参 x
4、以值调用的方式传递信息,那么输出结果为U (2) /U。Mainprograma:=1;addone(a);write(a);Procedure addone(x)a:=x+1;x:=x+2;return;(分数:2.00)(1).(1)(分数:1.00)A.1B.2C.3D.4(2).(2)(分数:1.00)A.1B.2C.3D.46.关于汇编语言,以下叙述中正确的是_。(分数:1.00)A.汇编语言源程序可以直接在计算机上运行B.将汇编语言源程序转换成目标程序的软件称为解释程序C.在汇编语言程序中,不能定义符号常量D.将汇编语言源程序翻译成机器语言程序的软件称为汇编程序7._不是 C 语言
5、的关键字。(分数:1.00)A.doB.elseC.fopenD.static8.C 程序代码“while(c=getchar()!=a)putchar(c);”中存在_错误。(分数:1.00)A.调用B.语法C.逻辑D.运行9._语言不是面向对象的程序设计语言。(分数:1.00)A.JavaB.C+C.SmalltalkD.Fortran10.程序员一般用_软件编写和修改程序。(分数:1.00)A.预处B.文本编辑C.链接D.编译11.程序以解释方式运行时,不_。(分数:1.00)A.进行词法分析B.进行语法分析C.进行语义分析D.产生目标程序文件12.若程序中定义了三个函数 f1、f2 和
6、 f3,并且函数 f1 调用 f2、f2 调用 f3,那么,在程序运行时不出现异常的情况下,函数的返回方式为_。(分数:1.00)A.先从 f3 返回 f2,然后从 f2 返回 f1B.先从 f3 返回 f1,然后从 f1 返回 f2C.先从 f2 返回 f3,然后从 f3 返回 f1D.先从 f2 返回 f1,然后从 f1 返回 f313.对高级语言源程序进行编译时,可发现源程序中的_错误。(分数:1.00)A.堆栈溢出B.变量未定义C.指针异常D.数组元素下标越界14.在 while 型循环结构中,_。(分数:1.00)A.循环体的执行次数等于循环条件的判断次数B.循环体的执行次数多于循环
7、条件的判断次数C.循环体的执行次数少于循环条件的判断次数D.循环体的执行次数与循环条件的判断次数无关15.函数调用采用_方式时,系统将实参的地址传递给形式参数。(分数:1.00)A.传值调用B.引用调用C.宏调用D.内部调用16._是正确的叙述。(分数:1.00)A.解释方式比编译方式更适用于规模较大的程序B.解释方式下生成的目标代码长,编译方式下生成的目标代码短C.解释方式下不生成源程序的目标代码D.解释方式只能用于批处理17.程序设计语言的定义一般应包括_几个方面。(分数:1.00)A.语法、语义和语句B.语法、语义和语用C.语义、语句和语用D.语法、语用和语句18.编译程序在语法分析阶段
8、能检查出_错误。(分数:1.00)A.表达式中的括号不匹配B.以零作除数C.数组下标越界D.无穷递归19.程序语言的语句从功能上大体可分为_两大类。(分数:1.00)A.声明语句和可执行语句B.简单语句和复杂语句C.顺序语句和判定语句D.程序语句和注释语句20._不属于程序语言翻译软件。(分数:1.00)A.编译程序B.解释程序C.汇编程序D.编辑程序21.在 C 语言中,若有定义“int a10;”,则_不能表示 a1的地址。(分数:1.00)A.a+lB. i=1; while (in) i=i*2; s=s+i; (分数:1.00)A.n-1B.n/2C.(n-1)2D.log2n程序设
9、计语言可划分为低级语言和高级语言两大类。与高级语言相比,用低级语言开发的程序,其U (1) /U,但在U (2) /U的场合,还经常全部或部分地使用低级语言。在低级语言中,汇编语言与机器语言十分接近,它使用了U (3) /U来提高程序的可读性。高级语言有很多种类,其中,PROLOG 是一种U (4) /U型语言,它具有很强的U (5) /U能力。(分数:13.00)(1).(1)(分数:1.00)A.运行效率低,开发效率低B.运行效率低,开发效率高C.运行效率高,开发效率低D.运行效率高,开发效率高(2).(2)(分数:1.00)A.对时间和空间有严格要求B.并行处理C.事件驱动D.电子商务(
10、3).(3)(分数:1.00)A.简单算术表达式B.助记符号C.伪指令D.定义存储语句(4).(4)(分数:1.00)A.命令B.交互C.函数D.逻辑(5).(5)(分数:1.00)A.控制描述B.输入/输出C.函数定义D.逻辑推理(6).(1)(分数:1.00)A.实际参数B.条件参数C.形式参数D.局部参数(7).(2)(分数:1.00)A.实际参数B.条件参数C.形式参数D.局部参数(8).(3)(分数:1.00)A.程序库B.目标程序C.机器指令代码D.模块(9).(4)(分数:1.00)A.编译程序B.目标程序C.链接程序D.解释程序(10).(3)(分数:1.00)A.程序库B.目
11、标程序C.机器指令代码D.模块(11).(5)(分数:1.00)A.源程序B.目标程序C.过程D.机器指令代码(12).(1)(分数:1.00)A.m-1B.mC.m+1D.2m(13).(2)(分数:1.00)A.m-1B.mC.m+1D.2m23._语言可以编写 applet 并通过 Script 程序调用执行。(分数:1.00)A.FORTRANB.C+或 CC.HTMLD.Java24.若程序中定义了局部变量与全局变量,则_。(分数:1.00)A.在函数内只能访问局部变量,但不能访问全局变量B.局部变量与全局变量的名字不得相同C.一个函数被多次调用时,其定义的局部变量必定分配同一个存储
12、单元D.函数中定义的局部变量与全局变量同名时,在函数内引用的是局部变量编译器和解释器是两种高级语言处理程序,与编译器相比,U (1) /U。编译器对高级语言源程序的处理过程可以划分为词法分析、语法分析、语义分析、中间代码生成、代码优化、目标代码生成等几个阶段:其中,代码优化和U (2) /U并不是每种编译器都必需的。词法分析的作用是识别源程序中的U (3) /U;语法分析中的预测分析法是U (4) /U的一种语法分析方法:编译器在U (5) /U阶段进行表达式的类型检查及类型转换。(分数:9.00)(1).(1)(分数:1.00)A.解释器不参与运行控制,程序执行的速度慢B.解释器参与运行控制
13、,程序执行的速度慢C.解释器参与运行控制,程序执行的速度快D.解释器不参与运行控制,程序执行的速度快(2).(2)(分数:1.00)A.词法分析B.语法分析C.中间代码生成D.语义分析(3).(3)(分数:1.00)A.字符串B.单词C.标识符D.语句(4).(4)(分数:1.00)A.自左至右B.自顶向下C.自底向上D.自右至左(5).(5)(分数:1.00)A.词法分析B.语法分析C.语义分析D.目标代码生成(6).(1)(分数:1.00)A.机器语言B.C 语言C.汇编语言D.数据库语言(7).(2)(分数:1.00)A.ASCII 码B.SQL 语句C.0、1 序列D.BCD 码(8)
14、.(1)(分数:1.00)A.2B.4C.6D.8(9).(2)(分数:1.00)A.2B.4C.6D.8在下面的程序代码中,a 是整型全局变量,b 是整型局部变量,x 是整数形参,若调用 com()时以引用调用的方式传递信息,则输出结果为U (1) /U;若调用 com()进以传值的方式传递信息,则输出结果为U (2) /U。(分数:2.00)(1).(1)(分数:1.00)A.8B.12C.14D.16(2).(2)(分数:1.00)A.8B.12C.14D.1625.结构化程序中的基本结构不包括_。(分数:1.00)A.嵌套B.顺序C.循环D.选择26._是正确的说法。(分数:1.00)
15、A.C 语言程序必须经过编译才能运行B.脚本语言程序只能在浏览器中执行C.JavaScript 是一种超文本标记语言D.在可视化编程中,源程序不能被编译程序员-程序设计语言基础答案解析(总分:58.00,做题时间:90 分钟)一、B单选题/B(总题数:32,分数:58.00)1.需编译运行的程序,其_错误在编译时不能发现。(分数:1.00)A.逻辑 B.语法C.括号不匹配D.关键字拼写解析:解析 语法错误可以看作是编码出现了违反语言规则的错误,一般编译或者链接时,都会报错。语义错误,也可以叫做逻辑错误,也就是说代码完全符合语言的规范,不会出现编译/链接的错误,但是,在逻辑上有错误。所以,选项
16、A 为正确答案。2.由多个源文件组成的 C 程序,经过编辑、预处理、编译、链接等阶段才能生成最终的可执行程序。此过程中,在_阶段可以发现被调用的函数未定义。(分数:1.00)A.编辑和预处理B.预处理C.编译D.链接 解析:解析 对于选项 A 和选项 B,编辑阶段创建和修改源程序,预处理阶段分析宏定义,以及替换宏引用。 对于选项 C,编译过程把源程序翻译为与之等价的目标程序。在此过程中,要进行词法,语法和语义分析,生成中间代码,进行代码优化,以及生成目标代码。 对于选项 D,链接是将各个编译单元中的变量和函数引用与定义进行绑定,保证程序中的变量和函数都有对应的实体。所以,被调用函数未定义,是在
17、此过程中发现的。选项 D 为正确答案。在下面的程序代码中,a 是全局变量。若以引用调用(call by reference)方式调用函数 f,则输出结果为U (1) /U;若以值调用(call by value)方式调用函数 f,输出结果为U (2) /U。(分数:4.00)(1).(1)(分数:1.00)A.10B.40C.36D.72 解析:(2).(2) (分数:1.00)A.10B.40 C.36D.72解析:解析 传值调用是指将实际参数的值传递给形式参数,实际参数与形式参数对应的存储单元是相互独立的,实际参数仅为形式参数提供初始值,在被调用函数中对形式参数的修改与实际参数没有关系。题
18、目中,实际参数 a 的值为 5,传值调用时将 5 传递给形式参数 x,a 是全局变量,所以函数 f 中对 a 和x 的引用是两个对象,如图 6-4 所示,函数的返回值为 36。 引用调用时形式参数和实际参数对应的存储单元都是实参的单元,因此函数中对 a 和 x 的引用是同一个对象,如图 6-5 所示,函数的返回值为 64。 (3).(1)(分数:1.00)A.7B.5C.4D.3 解析:(4).(2)(分数:1.00)A.3B.4C.5 D.7解析:解析 调用函数 f 时传递给形参 a 的值为 1,若采用传值的方式调用 g(c),那么,因为 c=a+1,所以,局部变量 c 的初始值为 2。执行
19、 g(c)调用时,在 g(c)函数中,只是更改了 x 和 b 的值,不会影响c 值,所以,return a+c,会返回 3。第 1 个空的正确答案为选项 D。 如果采用引用调用,那么,对 b 进行运算时,实际上也同时对 c 作了修改。所以,在 g()函数中,x 变量的结果为2*2=4,b=x/2+b=4/2+2=4。在此函数调用结束后,c 值为 4,所以,在 f()函数中,return a+c 的结果就是 5。综上所述,第 2 空的正确答案为选项 C。某 C 语言程序中,x 是一个浮点型变量,m 是一个值为正整数的整型常量,表达式 x%m (x 被 m 除取余数)在U (1) /U时会报错,这
20、是一种U (2) /U错误。(分数:2.00)(1).(1)(分数:1.00)A.编译 B.预处C.编辑D.运行解析:(2).(2)(分数:1.00)A.词法B.语法C.语义D.运行 解析:解析 对于第 1 个空,%要求参与运算的两个数都是整数,而题目中的操作数,其中有一个是浮点数,不符合%运算规则,也就是运算对象与运算符不匹配,属于语义错误。而在编译过程中,将进行静态语义的分析,会发现这个问题。所以,第 1 个空的正确答案为选项 A,第 2 个空的正确答案为选项 D。3.在 C 语言中,若函数调用时实参是数组名,则传递给对应形参的是_。(分数:1.00)A.数组空间的首地址 B.数组的第一个
21、元素值C.数组中元素的个数D.数组中所有的元素解析:解析 在 C 语言中,数组名表示该数组的起始地址,如果函数调用时,实参为数组名,那么,传递给形参的是数组的首地址。本题正确答案为选项 A。4.若程序 P 经编译并链接后可执行,则_。(分数:1.00)A.P 是正确的程序B.P 中没有语法错误 C.P 中没有逻辑错误D.P 在运行中不会出错解析:解析 一般的程序错误,可大致分为语法错误和语义错误。 语法错误可以看作是编码出现了违反语言规则的错误,一般编译或者链接时,都会报错。所以,如果程序编译链接可执行,那么,可以说明它没有语法错误。选项 B 的说法是正确的,为本题正确答案。 语义错误,也可以
22、叫做逻辑错误,也就是说代码完全符合语言规范,不会出现编译/链接的错误,但是,在逻辑上有错误。所以,编译链接正确,也不能保证没有逻辑错误,所以,选项 C 的说法错误。而如果一个程序有逻辑错误,就不能说它是正确的,也不能保证它运行没有错误。所以,选项 A 和选项 D 的说法也都是错误的。5._是有运行时把过程调用和响应调用需要的代码加以结合的过程。(分数:1.00)A.词法分析B.静态绑定C.动态绑定 D.预编译解析:解析 动态绑定是在程序运行过程中发生的,选项 C 为正确答案。其他选项都是在程序编译过程中或编译前发生的。在下面的程序中,若实参 a 与形参 x 以引用调用的方式传递信息,则输出结果
23、为U (1) /U;若实参 a 与形参 x 以值调用的方式传递信息,那么输出结果为U (2) /U。Mainprograma:=1;addone(a);write(a);Procedure addone(x)a:=x+1;x:=x+2;return;(分数:2.00)(1).(1)(分数:1.00)A.1B.2C.3D.4 解析:(2).(2)(分数:1.00)A.1B.2 C.3D.4解析:解析 引用调用是指把实参的地址传递给相应的形参,此时子程序对形参的改变会同时改变实参的值。值调用是指把实参的值传递给相应的形参,此时子程序对形参的 改变不会影响实参的值。所以,如果本题以引用调用,则在 a
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 程序员 程序设计语言 基础 答案 解析 DOC
