ImageVerifierCode 换一换
格式:DOC , 页数:23 ,大小:121KB ,
资源ID:1318117      下载积分:5000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-1318117.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(【计算机类职业资格】2018年计算机二级C语言模拟题3及答案解析.doc)为本站会员(testyield361)主动上传,麦多课文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文库(发送邮件至master@mydoc123.com或直接QQ联系客服),我们立即给予删除!

【计算机类职业资格】2018年计算机二级C语言模拟题3及答案解析.doc

1、2018 年计算机二级 C 语言模拟题 3 及答案解析(总分:100.00,做题时间:120 分钟)一、选择题(总题数:40,分数:40.00)1.下列叙述中正确的是( )。(分数:1.00)A.栈是“先进先出”的线性表B.队列是“先进后出”的线性表C.循环队列是非线性结构的线性表D.有序线性表既可以采用顺序存储结构,也可以采用链式存储结构2.支持子程序调用的数据结构是( )。(分数:1.00)A.桟B.树C.队列D.二叉树3.某二叉树有 5 个度为 2 的结点,则该二叉树中的叶子结点数是( )。(分数:1.00)A.10B.8C.6D.44.下列排序方法中,最坏情况下比较次数最少的是( )。

2、(分数:1.00)A.冒泡排序B.简单选择排序C.直接插入排序D.堆排序5.软件按功能可以分为应用软件、系统软件和支撑软件(工具软件),下面属于应用软件的是( )(分数:1.00)A.编译程序B.操作系统C.教务管理系统D.汇编程序6.下面叙述中错误的是( )。(分数:1.00)A.软件测试的目的是发现错误并改正错误B.对被调试的程序进行“错误定位”是程序调试的必要步骤C.程序调试通常也称为 DebugD.软件测试应严格执行测试计划,排除测试的随意性7.耦合性和内聚性是对模块独立性度量的两个标准,下列叙述中正确的是( )(分数:1.00)A.提高耦合性降低内聚性有利于提高模块的独立性B.降低耦

3、合性提高内聚性有利于提高模块的独立性C.耦合性是指一个模块内部各个元素间彼此结合的紧密程度D.内聚性是指模块间互相连接的紧密程度8.下列叙述中错误的是( )。(分数:1.00)A.在数据库系统中,数据的物理结构必须与逻辑结构一致B.数据库技术的根本目标是要解决数据的共享问题C.数据库设计是指在已有数据库管理系统的基础上建立数据库D.数据库系统需要操作系统的支持9.有两个关系 R、S 如下:由关系 R 通过运算得到关系 S,则所使用的运算为( )。(分数:1.00)A.选择B.投影C.插入D.连接10.将 E-R 图转换为关系模式时,实体和联系都可以表示为( )(分数:1.00)A.属性B.键C

4、.关系D.域11.以下叙述中错误的是( )。(分数:1.00)A.C 语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令B.C 程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件C.用 C 语言编写的程序称为源程序,它以 ASCII 代码形式存放在一个文本文件中D.C 语言源程序经编译后生成后缀为.obj 的目标程序12.以下选项中,合法的一组 C 语言数值常量是( )(分数:1.00)A.12. 0Xa23 4.5e0B.028 .5e-3 -0xfC177 4e1.5 0abcD.0x8A 10,000 3.e513.以下选项中不合法的标识符是( )。(分

5、数:1.00)A.printB.FORC.int i=0,k=18;”,则不符合 C 语言规定的赋值语句是( )。(分数:1.00)A.i=a%11;B.i=(a+k)#define N 4void fun(int aN, int b) int i;for(i=0; ifun(int x, int y) static int m=0, i=2;i+=m+1; m=i+x+y; return m;main() int j=1,m=1,k;k=fun(j,m); printf(“%d,“,k);k=fun(j,m); printf(“%dn“,k);程序运行后的输出结果是( )。(分数:1.00)

6、A.5,11B.5,5C.11,11D.11,534.在 C 语言中,只有在使用时才占用内存单元的变量,其存储类型是( )。(分数:1.00)A.auto 和 registerB.extern 和 registerC.auto 和 staticD.static 和 register35.下面结构体的定义语句中,错误的是( )。(分数:1.00)A.struct ord int x;int y;int z; struct ord a;B.struct ord int x;int y;int z; struct ord a;C.struct ord int x;int y;int z; a;D.s

7、truct int x;int y;int z; a;36.有以下程序程序运行后的输出结果是( )。(分数:1.00)A.2,4B.1,2C.1,4D.2,337.以下叙述中正确的是( )。(分数:1.00)A.在 C 语言中,预处理命令行都以#开头B.预处理命令行必须位于 C 源程序的起始位置C.#include 必须放在 C 程序的开头D.C 语言的预处理不能实现宏定义和条件编译的功能38.有以下程序程序运行后的输出结果是( )。(分数:1.00)A.20B.10C.0D.出错39.有以下程序程序运行后的输出结果是( )。(分数:1.00)A.32B.16C.1D.040.读取二进制文件的

8、函数调用形式为“fread(buffer,size,count,fp);”,其中 buffer 代表的是( )(分数:1.00)A.个内存块的首地址,代表读入数据存放的地址B.个整型变量,代表待读取的数据的字节数C.一个文件指针,指向待读取的文件D.个内存块的字节数二、程序填空题(总题数:1,分数:20.00)(分数:20.00)填空项 1:_三、程序改错题(总题数:1,分数:20.00)42.给定程序 MODI1.C 中函数 fun 的功能是:求整数 x 的 y 次方的低 3 位值。例如,整数 5 的 6 次方为 15625,此值的低 3 位值为 625。请改正函数 fun 中指定部位的错误

9、,使它能得出正确的结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!(分数:20.00)_四、程序设计题(总题数:1,分数:20.00)43.例如,若主函数从键盘给 x 输入 0.21 后,则输出为 s=1.100000。注意:部分源程序在文件 PROG1.C 中。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的大括号中填入你编写的若干语句。(分数:20.00)_2018 年计算机二级 C 语言模拟题 3 答案解析(总分:100.00,做题时间:120 分钟)一、选择题(总题数:40,分数:40.00)1.下列叙述中正确的是( )。(分数:1.0

10、0)A.栈是“先进先出”的线性表B.队列是“先进后出”的线性表C.循环队列是非线性结构的线性表D.有序线性表既可以采用顺序存储结构,也可以采用链式存储结构 解析:栈是先进后出的线性表,因此 A 错误;队列是先进先出的线性表,因此 B 错误;循环队列是线性结构的线性表,因此 C 错误,故本题答案为 D。2.支持子程序调用的数据结构是( )。(分数:1.00)A.桟 B.树C.队列D.二叉树解析:栈支持子程序调用。栈是一种只能在一端进行插入或删除的线性表,在主 程序调用子程序时要首先保存主程序当前的状态,然后转去执行子程序,最终把子程序的执行结果返回到主 程序中调用子程序的位置,然后继续向下执行,

11、这种调用方式符合栈的特点,因此本题的答案为 A。3.某二叉树有 5 个度为 2 的结点,则该二叉树中的叶子结点数是( )。(分数:1.00)A.10B.8C.6 D.4解析:根据二叉树的基本性质 3:在任意一棵二叉树中,度为 0 的叶子结点总是比 度为 2 的结点多一个,因此本题答案是 5+1=6,故选择 C。4.下列排序方法中,最坏情况下比较次数最少的是( )。(分数:1.00)A.冒泡排序B.简单选择排序C.直接插入排序D.堆排序 解析:冒泡排序、直接插入排序与简单选择排序法在最坏情况下均需要比较 n(n-1)/2 次,而堆排序在最坏情况下需要比较的次数是 n 2n,因此本题答案为 D。5

12、.软件按功能可以分为应用软件、系统软件和支撑软件(工具软件),下面属于应用软件的是( )(分数:1.00)A.编译程序B.操作系统C.教务管理系统 D.汇编程序解析:编译程序、操作系统、汇编程序都属于系统软件,只有教务管理系统才是 应用软件,因此本题答案为C。6.下面叙述中错误的是( )。(分数:1.00)A.软件测试的目的是发现错误并改正错误 B.对被调试的程序进行“错误定位”是程序调试的必要步骤C.程序调试通常也称为 DebugD.软件测试应严格执行测试计划,排除测试的随意性解析:软件测试的目的是为了发现错误而执行程序的过程,并不涉及改正错误,因此选项 A 错误。程序调试的基本步骤有:错误

13、定位、修改设计和代码以排除错误、进行回归测试以防止 引进新的错误。程序调试通常称为 Debug,即排错。软件测试的基本准则包括:所有测试都应追溯到需求、 严格执行测试计划,排除测试的随意性、充分注意测试中的群集现象、程序员应避免检査自己的程序、不可 能实现穷举测试、妥善保存测试计划等文件。7.耦合性和内聚性是对模块独立性度量的两个标准,下列叙述中正确的是( )(分数:1.00)A.提高耦合性降低内聚性有利于提高模块的独立性B.降低耦合性提高内聚性有利于提高模块的独立性 C.耦合性是指一个模块内部各个元素间彼此结合的紧密程度D.内聚性是指模块间互相连接的紧密程度解析:模块独立性是指每个模块只完成

14、系统要求的独立的子功能,并且与其他模 块的联系最少且接口简单。一般较优秀的软件设计应尽量做到高内聚、低耦合,即减弱模块之间的耦合性和 提高模块内的内聚性,有利于提髙模块的独立性,因此 A 错误,B 正确。耦合性是模块间互相连接的紧 密程度的度量,内聚性是指一个模块内部各个元素间彼此结合的紧密程度,因此 C 与 D 错误。8.下列叙述中错误的是( )。(分数:1.00)A.在数据库系统中,数据的物理结构必须与逻辑结构一致 B.数据库技术的根本目标是要解决数据的共享问题C.数据库设计是指在已有数据库管理系统的基础上建立数据库D.数据库系统需要操作系统的支持解析:数据库应用系统中的核心问题是设计一个

15、能满足用户需求、性能良好的数 据库,这就是数据库设计,因此本题答案为 A 。9.有两个关系 R、S 如下:由关系 R 通过运算得到关系 S,则所使用的运算为( )。(分数:1.00)A.选择B.投影 C.插入D.连接解析:投影运算是从关系模式中挑选若干属性组成新的关系,这是从列的角度进 行的运算,相当于对关系进行垂直分解。本题中,S 是在原有关系 R 的内部进行的,是由 R 中原有的那些域的 列所组成的关系,因此选择 B。10.将 E-R 图转换为关系模式时,实体和联系都可以表示为( )(分数:1.00)A.属性B.键C.关系 D.域解析:从 E-R 图到关系模式的转换是比较直接的,实体与联系

16、都可以表示成关 系,E-R 图中属性也可以转换成关系的属性,因此本题答案为 C。11.以下叙述中错误的是( )。(分数:1.00)A.C 语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令B.C 程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件C.用 C 语言编写的程序称为源程序,它以 ASCII 代码形式存放在一个文本文件中D.C 语言源程序经编译后生成后缀为.obj 的目标程序解析:C 语言中的非执行语句不会被编译,不会生成二进制的机器指令,因此 A 选项错误。由 C 语言构成的指令序列称为 C 源程序,C 源程序经过 C 语言编译程序编译之后生成一个后

17、缀为.obj 的二进制文件(称为目标文件);最后要由“连接程序”把此“.obj”文件与 C 语言提供的各种库函数 连接起来生成一个后缀为“.exe”的可执行文件。根据上述分析可知,A 选项叙述错误。12.以下选项中,合法的一组 C 语言数值常量是( )(分数:1.00)A.12. 0Xa23 4.5e0 B.028 .5e-3 -0xfC177 4e1.5 0abcD.0x8A 10,000 3.e5解析:C 语言中八进制整型常量的开头是数字 0,十六进制整型常量的开头是数字 0x。C 语言中的实型常量有两种表示形式:小数形式,小数形式表示的实型常量必须要有小数点;指数形式,以“e”或“E”后

18、跟一个整数来表示以 10 为底数的幂数,且规定字母 e 或 E 之前必须要有数字,且 e 或 E 后 面的指数必须为整数。B 选项中 028 错误,八进制中没有数字 8。C 选项中“4e1.5”中 e 后面的指数不是整数。D 选项中“3.e5”小数点后面缺少数字。因此本题答案为 A 。13.以下选项中不合法的标识符是( )。(分数:1.00)A.printB.FORC.int i=0,k=18;”,则不符合 C 语言规定的赋值语句是( )。(分数:1.00)A.i=a%11;B.i=(a+k)#define N 4void fun(int aN, int b) int i;for(i=0; i

19、fun(int x, int y) static int m=0, i=2;i+=m+1; m=i+x+y; return m;main() int j=1,m=1,k;k=fun(j,m); printf(“%d,“,k);k=fun(j,m); printf(“%dn“,k);程序运行后的输出结果是( )。(分数:1.00)A.5,11 B.5,5C.11,11D.11,5解析:声明静态局部变量:函数调用结束后,其占用的存储单元不释放,在下次该函数调用时,该变量保留上一次函数调用结束时的值。本题子函数 fun 中的变量 i 和 m 均为静态局部变量。 因此第一次调用 fun 函数,返回 m

20、 的值为 5,第二次再调用 fun 函数时,i 的值为 3, m 的值已经是 5 了,所以执行 i+=m+1, i 的值变为 9,m=i+x+y=9+1+1=11,故本题答案为 A。34.在 C 语言中,只有在使用时才占用内存单元的变量,其存储类型是( )。(分数:1.00)A.auto 和 register B.extern 和 registerC.auto 和 staticD.static 和 register解析:auto:函数中的局部变量动态地分配存储空间,数据存储在动态存储区 中,在调用该函数时系统会给它们分配存储空间,在函数调用结束时就自动释放这些存储空间。register:为 了

21、提高效率,C 语言允许将局部变量的值放在 CPU 中的寄存器中,这种变量叫“寄存器变量”,只有局部自 动变量和形式参数可以作为寄存器变量。extern:外部变量(全局变量)是在函数的外部定义的,它的作用 域为从变量定义处开始,到本程序文件的末尾。如果外部变量不在文件的开头定义,其有效的作用范围只限 于定义处到文件末尾。static:静态局部变量属于静态存储类别,在静态存储区内分配存储单元,在程序整个 运行期间都不释放。根据以上分析可知,故本题答案为 A。35.下面结构体的定义语句中,错误的是( )。(分数:1.00)A.struct ord int x;int y;int z; struct

22、ord a; B.struct ord int x;int y;int z; struct ord a;C.struct ord int x;int y;int z; a;D.struct int x;int y;int z; a;解析:A 选项“struct ord int x;int y;int z; struct ord a;”错误,不能在定义结 构体的同时,又用结构体类型名定义变量,应该写成 B 选项或者 D 选项的格式。36.有以下程序程序运行后的输出结果是( )。(分数:1.00)A.2,4B.1,2 C.1,4D.2,3解析:结构体变量可以作为函数的参数和返回值。作为函数的实参时

23、,可以实现 函数的传值调用。当使用结构体变量作为函数的形参时,实参也应该是结构体变量名以实现传值调用,实参将 复制的副本传递给形参,在被调用函数中改变形参值对于调用函数中的实参没有影响。因此本题选择 B。37.以下叙述中正确的是( )。(分数:1.00)A.在 C 语言中,预处理命令行都以#开头 B.预处理命令行必须位于 C 源程序的起始位置C.#include 必须放在 C 程序的开头D.C 语言的预处理不能实现宏定义和条件编译的功能解析:预处理命令是以“#”号开头的命令,它们不是 C 语言的可执行命令,这些 命令应该在函数之外书写,一般在源文件的最前面书写,但不是必须在起始位置书写,因此

24、B、C 选项错误。C 语言的预处理能够实现宏定义和条件编译等功能,因此 D 选项错误。故本题答案为 A 。38.有以下程序程序运行后的输出结果是( )。(分数:1.00)A.20 B.10C.0D.出错解析:“malloc(sizeof(int)”的作用是开辟一个长度为“sizeof(int)”的存储空间,并 通过强制类型转换“(int*)”将此存储空间的地址赋给了一个整型的指针变量 p。然后执行语句*p=n,使得*p 的值为 10,并通过 return 返回此值,即 a 的值为 10。然后在主函数中输出 a+fun(10)=10+10=20。故本题答案为 A。39.有以下程序程序运行后的输出

25、结果是( )。(分数:1.00)A.32B.16C.1 D.0解析:无符号整型变量 a 的值为 8,二进制表示为 00001000,右移 3 位后为 00000001,即十进制的 1,因此输出 1。40.读取二进制文件的函数调用形式为“fread(buffer,size,count,fp);”,其中 buffer 代表的是( )(分数:1.00)A.个内存块的首地址,代表读入数据存放的地址 B.个整型变量,代表待读取的数据的字节数C.一个文件指针,指向待读取的文件D.个内存块的字节数解析:“fread(void *buffer, size t_size,size t_count, FILE *

26、stream)” 功能是从一个文 件流中读数据,读取 count 个元素,每个元素占 size 个字节,如果调用成功返回 count。buffer 用于接收数据的内 存地址,大小至少是 size *count 个字节;size 是单个元素的大小,单位是字节;count 是元素的个数,每个元素占 size 个字节;stream 是输入流。故本题答案为 A。二、程序填空题(总题数:1,分数:20.00)(分数:20.00)填空项 1:_ (正确答案:(1)x (2)n (3)fabs(t))解析:填空 1 和填空 2: f 用来存放函数值,其初值为 1.0+X,dowhile 循环用于累加后面的通

27、项 t,第一次循 环时应为-x2/2,因此空 1 应为 x,空 2 应为 n。填空 3 :由题目中可知 dowhile 循环的条件,因而此空填写 fabs(t)。三、程序改错题(总题数:1,分数:20.00)42.给定程序 MODI1.C 中函数 fun 的功能是:求整数 x 的 y 次方的低 3 位值。例如,整数 5 的 6 次方为 15625,此值的低 3 位值为 625。请改正函数 fun 中指定部位的错误,使它能得出正确的结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!(分数:20.00)_正确答案:()解析:先用简单的思路理解一下该程序,如果当 x=y=1 时,程序的问题就很简单了,所以 for 语句的循环条件 应该是 for(i=1;i=le-6。

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1