【计算机类职业资格】全国计算机等级考试二级C语言真题题库2+2014年3月及答案解析.doc

上传人:王申宇 文档编号:1329736 上传时间:2019-10-17 格式:DOC 页数:14 大小:133KB
下载 相关 举报
【计算机类职业资格】全国计算机等级考试二级C语言真题题库2+2014年3月及答案解析.doc_第1页
第1页 / 共14页
【计算机类职业资格】全国计算机等级考试二级C语言真题题库2+2014年3月及答案解析.doc_第2页
第2页 / 共14页
【计算机类职业资格】全国计算机等级考试二级C语言真题题库2+2014年3月及答案解析.doc_第3页
第3页 / 共14页
【计算机类职业资格】全国计算机等级考试二级C语言真题题库2+2014年3月及答案解析.doc_第4页
第4页 / 共14页
【计算机类职业资格】全国计算机等级考试二级C语言真题题库2+2014年3月及答案解析.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

1、全国计算机等级考试二级 C语言真题题库 2+2014年 3月及答案解析(总分:43.00,做题时间:120 分钟)一、选择题(每小题 1分,共 40分)(总题数:40,分数:40.00)1.下列叙述中正确的是( )。(分数:1.00)A.每一个节点有两个指针域的链表一定是非线性结构B.所有节点的指针域都为非空的链表一定是非线性结构C.循环链表是循环队列的链式存储结构D.线性结构的存储节点也可以有多个指针2.使用白盒测试方法时,设计测试用例应根据( )。(分数:1.00)A.程序的内部逻辑B.程序的复杂结构C.程序的功能D.使用说明书3.在医院,每个医生只属于某一个诊疗科,医生同一天可为多位患者

2、看病,而一名患者可在多个科室治疗,则实体医生和患者之间的联系是( )。(分数:1.00)A.多对多B.多对一C.一对多D.一对一4.设序列长度为 n,在最坏情况下,时间复杂度为 O(log2n)的算法是( ;)s+=i;i+;if(i1)11 中,是右移符号,数字 13换算成二进制后右移 1位,再和 1进行按位或运算,结果为 7;表达式 d(131)|1 中,首先判断 13是否大于 1,此时条件成立返回 1后,再和1进行或运算,结果为 1,因此答案为 C选项。33.有以下程序: (分数:1.00)A. B.XXXC.XXD.X=解析:解析主函数首先为结构体定义两个变量 s1、s2,分别使用字符

3、串拷贝函数 strcpy()为 s1和 s2的成员 name赋值,再将 s2中的成员信息赋值给 s1,因此输出为“”,答案为 A选项。34.有以下程序: (分数:1.00)A.1,2,1,2,0,B.1,5,0,4,0,C.1,5,5,4,0,D.0,4,0,4,0 解析:解析“”表示与运算,主函数首先定义一个数组 array6,初始化前 4个元素的值,其余默认值为 0。在 for循环中,为数组 array中每一个元素换算成二进制数后和二进制整数“100”进行按位与运算,再将结果进行输出,因此答案为 D选项。35.有以下程序: (分数:1.00)A.5 B.2C.6D.3解析:解析malloc

4、(size)函数作用是在内存的动态存储区分配一个长度为 size的连续空间,函数的返回值是新分配的存储区的首地址,将该地址赋值给 P指针,然后取 P指针的地址,调用 fun函数。fun 函数中对指向指针的指针 s指向的内存单元赋值,其中 x1表示二维数组 x的第二行的行地址,x1+1 表示二维数组 x的第二行第二列的地址,所以 fun函数的功能是将二维数组 x的第二行第二列的值,即 x11赋值给*s,*s 为 p,所以*s 代表*P,x11与 a11等价,因此答案为 A选项。36.有如下定义: (分数:1.00)A.ps-birthyB.sbirthyC.psbirthy D.(*ps)bir

5、thy解析:解析使用结构体指针对结构体成员进行访问时,形式为结构指针名-结构成员名,或者(*结构指针名)结构成员名,题目中 ps为结构体指针,因此判断 A选项引用形式错误,答案为 c选项。37.有以下程序: (分数:1.00)A.6 B.21C.123456D.654321解析:解析本题首先定义文件指针变量 fp和一个数组 a,再打开一个文件“datadat”,随后先给文件写入数据 a0,由于 rewind函数是将文件指针从当前位置重新指向文件开始位置,所以 for循环依次将数组 a中的数据写入文件开始位置,退出循环后,文件中的数据顺序为:654321,重新使指针指向文件开始位置,将此时 fp

6、指向的数据(即文件中第一个数据 6)写入变量 k中,关闭文件,输出 k值,故答案为 A选项。38.以下程序段中,与其他 3个功能不同的程序段是( )。(分数:1.00)A.s0;i1;for(;)s+=i;i+;if(i=10)break; B.s0;i1;for(;i=10;)s+=i;i+;C.s0;for(i=1;i=10;i+)s+=i;D.for(s=0,i=1;i=10;s+=i,i+);解析:解析B、C、D 选项都表示对 1到 10进行累加后赋给 s,而 A选项中含 break语句,循环体只执行一次,结束整个循环过程,因此答案为 A选项。39.设有定义:int a0,b1;,以下

7、表达式中,会产生“短路”现象,致使变量 b的值不变的是( )。(分数:1.00)A.+a|+bB.a+|+bC.+ab+D.a+b+ 解析:解析+放在变量前面时,表示将变量+1,再参与其他操作,a+b+时,由于 a值是 0,直接判定与运算结果为 0,忽视 b+的值,因此 b值不发生改变,答案为 D选项。40.关于地址和指针,以下说法正确的是( )。(分数:1.00)A.通过强制类型转换可以将一种类型的指针变量赋值给另一种类型的指针变量 B.可以取一个常数的地址赋值给同类型的指针变量C.可以取一个表达式的地址赋值给同类型的指针变量D.可以取一个指针变量的地址赋值给基类型相同的指针变量解析:解析常

8、数的地址存储在内存的常量区,常量区存储的都是常量,值都是不可修改的,所以直接取常量的地址赋给指针变量没有任何意义,c 语言也不允许这样做,编译会出错,B 选项错误;表达式的值存储在临时变量中,内存中存在专门用来存储临时变量的区域,对这块地址进行操作也是没有意义的,C语言不允许这样做,编译会出错,C 选项错误;可以取一个指针变量的地址,但是指针变量的地址属于指针,只能赋值给指针类型的指针变量,D 选项错误。故答案为 A选项。二、程序填空题(总题数:1,分数:1.00)41.给定程序中,函数 fun的功能是:将形参指针所指结构体数组中的 3个元素按 num成员进行升序排列。请在程序的下划线处填入正

9、确的内容并把下划线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构! 试题程序: (分数:1.00)填空项 1:_ (正确答案:(1)std (2)PERSON (3)std)解析: 考点分析 本题考查:数据类型的定义;数组元素的操作;函数参数的传递。 要使用函数对整个数组进行操作时,应使用数组名作为函数的实参。当使用数组名作实参时,函数传递的实际上是数组的首地址,而并非数组本身,此时形参除了可以定义为指针变量外,还可以定义为数组,并且数组可以不指定大小,但无论用哪种形式,程序在编译时都将其作为一个指针变量处理。 解题思路 填空 1:定义形参变量引

10、用数组 std,此时形参可以定义为指针变量,也可以定义为数组。由下文可知,程序是通过数组下标对数组元素进行操作的,因此形参应使用数组形式,而非指针形式。 填空 2:程序使用变量 temp交换结构体数组元素的值,因而 temp应定义为 PERSON型。 填空 3:程序通过函数 fun对数组 std进行操作,因此函数的实参应为 std。三、程序修改题(总题数:1,分数:1.00)42.下列给定程序中函数 fun的功能是:将 m(1m10)个字符串连接起来,组成一个新串,放人 pt所指存储区中。例如:把 3个串“abc”、“CD”、“EF”连接起来,结果是“abcCDEF”。 请改正程序中的错误,使

11、它能得出正确的结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构! 试题程序: (分数:1.00)_正确答案:(1)int k,q,i; (2)pti strki;)解析: 考点分析 本题考查:c 语言的书写和语法性错误,这类错误比较简单,只要编译程序,根据错误提示修改即可。 解题思路 (1)关键字书写错误,定义整型变量的关键字应使用 int,而非 Int。 (2)数组元素表示错误,表示二维数组元素,应使用方括号将行坐标和列坐标分别括起来,即 strk,i应改为:strki。四、程序设计题(总题数:1,分数:1.00)43.下列程序定义了 N N的二维数组,并在主函数中

12、自动赋值。请编写函数 fun(int aN),该函数的功能是:将数组左下半三角元素中的值全部置成 0。例如 a数组中的值为: 则返回主程序后 a数组中的值应为: 注意:部分源程序给出如下。 请勿改动 main函数和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 试题程序: 注意:部分源程序给出如下。 请勿改动 main函数和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 试题程序: (分数:1.00)_正确答案:( )解析: 考点分析 本题考查:for 循环语句,使用嵌套循环语句遍历二维数组的各个元素;二维数组元素的引用。 解题思路对于 NN二维数组,如何表示其左下半三角元素,可以通过以下语句实现。 for(i0;in;i+) for(j0;ji;j+) 外层循环用来控制矩阵的行下标,内层循环控制矩阵的列下标。注意列下标的取值范围,因为要表示下三角元素,所以 j的范围是 0i。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

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