欢迎来到麦多课文档分享! | 帮助中心 海量文档,免费浏览,给你所需,享你所想!
麦多课文档分享
全部分类
  • 标准规范>
  • 教学课件>
  • 考试资料>
  • 办公文档>
  • 学术论文>
  • 行业资料>
  • 易语言源码>
  • ImageVerifierCode 换一换
    首页 麦多课文档分享 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

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

    • 资源ID:1329739       资源大小:155.50KB        全文页数:15页
    • 资源格式: DOC        下载积分:5000积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    二维码
    微信扫一扫登录
    下载资源需要5000积分(如需开发票,请勿充值!)
    邮箱/手机:
    温馨提示:
    如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如需开发票,请勿充值!如填写123,账号就是123,密码也是123。
    支付方式: 支付宝扫码支付    微信扫码支付   
    验证码:   换一换

    加入VIP,交流精品资源
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    1、全国计算机等级考试二级 C语言真题题库 2+2015年 9月及答案解析(总分:43.00,做题时间:120 分钟)一、选择题(每小题 1分,共 40分)(总题数:40,分数:40.00)1.下列叙述中错误的是( )。(分数:1.00)A.数据结构中的数据元素不能是另一数据结构B.数据结构中的数据元素可以是另一数据结构C.空数据结构可以是线性结构也可以是非线性结构D.非空数据结构可以没有根节点2.为了降低算法的空间复杂度,要求算法尽量采用原地工作(in place)。所谓原地工作是指( )。(分数:1.00)A.执行算法时所使用的额外空间固定(即不随算法所处理的数据空间大小的变化而变化)B.执行

    2、算法时所使用的额外空间随算法所处理的数据空间大小的变化而变化C.执行算法时不使用额外空间D.执行算法时不使用任何存储空间3.某循环队列的存储空间为 Q(1:m),初始状态为 frontrearm。现经过一系列的入队操作和退队操作后,frontm,rearm-1,则该循环队列中的元素个数为( )。(分数:1.00)A.m-1B.mC.1D.04.某棵树只有度为 3的节点和叶子节点,其中度为 3的节点有 8个,则该树中的叶子节点数为( )。(分数:1.00)A.15B.16C.17D.不存在这样的树5.某二叉树共有 530个节点,其中度为 2的节点有 250个,则度为 1的节点数为( )。(分数:

    3、1.00)A.29B.30C.249D.2516.若某二叉树中的所有节点值均大于其左子树上的所有节点值,且小于右子树上的所有节点值,则该二叉树遍历序列中有序的是( )。(分数:1.00)A.前序序列B.中序序列C.后序序列D.以上说法均可以7.将 C语言的整数设为整数类 I,则下面属于类 I实例的是( )。(分数:1.00)A.-103B.10E3C.103D.“0103”8.下列叙述中正确的是( )。(分数:1.00)A.软件包括程序、数据和文档B.软件包括程序和数据C.软件包括算法和数据结构D.软件包括算法和程序9.软件生命周期是指( )。(分数:1.00)A.软件的定义和开发阶段B.软件

    4、的需求分析、设计与实现阶段C.软件的开发阶段D.软件产品从提出、实现、使用维护到停止使用退役的过程10.下列叙述中正确的是( )。(分数:1.00)A.数据库系统可以解决数据冗余和数据独立性问题,而文件系统不能B.数据库系统能够管理各种类型的文件,而文件系统只能管理程序文件C.数据库系统可以管理庞大的数据量,而文件系统管理的数据量较少D.数据库系统独立性较差,而文件系统独立性较好11.关于程序模块化,以下叙述错误的是( )。(分数:1.00)A.程序模块化可以提高程序运行的效率B.程序模块化可以提高程序编制的效率C.程序模块化可以提高程序代码复用率D.程序模块化可以提高调试程序的效率12.以下

    5、正确使用 C语言标识符的是( )。(分数:1.00)A.3B.#3C._3D.-313.若有定义:int a,b,c;以下程序段的输出结果是( )。 a11;b3; c0; printf(”dn”,c(ab,ab);(分数:1.00)A.2B.0C.3D.114.以下选项中合法的 C语言常量是( )。(分数:1.00)A.C-STRB.20141C.”10D.2EK15.设有定义:int x,y,z;,且各变量已赋正整数值,则以下能正确表示代数式“ (分数:1.00)A.10xyzB.1x*y*zC.1(x*y*z)D.1xy(double)z16.有以下程序: (分数:1.00)A.B.12

    6、C.1234D.17.有以下程序: (分数:1.00)A.2,2,3,4,4,4,B.2,3,4,C.2,2,3,4,D.2,3,3,4,5,6,18.有以下程序: (分数:1.00)A.2400000B.1500000C.1600000D.200000019.有以下程序: (分数:1.00)A.5,B.0,0,0,0,0,C.0,1,2,3,4,D.0,1,20.以下程序拟实现计算 sum1+12+13+150。 (分数:1.00)A.sum + 1i;B.while(i50);C.sum=1.0;D.i+;21.若有定义语句: double a, *pa; 以下叙述中错误的是( )。(分数

    7、:1.00)A.定义语句中的*号是一个间址运算符B.定义语句中的*号是一个说明符C.定义语句中的 p只能存放 double类型变量的地址D.定义语句中*p=a 把变量 a的地址作为初值赋给指针变量 p22.关于函数返回值,以下叙述正确的是( )。(分数:1.00)A.函数可以返回整个结构体,即使结构体中有数组B.函数只能返回基本数据类型的数值或指针C.函数不可以返回一个数组D.函数不能没有返回值23.有以下程序: (分数:1.00)A.24B.720C.120D.624.若有语句:int a34,(*p)4;pa;,则以下选项中叙述错误的是( )。(分数:1.00)A.系统将开辟一个名为 p的

    8、二维数组,p00中的值即为 a00中的值B.p+1代表 a10的地址C.p中将存放 a数组的首地址D.p+2代表 a数组最后一行的首地址25.有以下程序: (分数:1.00)A.B,C,D,E,B.A,B,C,D,C.C,D,E,F,D.B,D,F,H,26.设有以下程序段: float a8 10,20; int b1 0; char c ”A”,”B”;char d“1”; 以下叙述正确的是( )。(分数:1.00)A.只有变量 c的定义是合法的B.只有变量 a,b、c 的定义是完全合法的C.所有变量的定义都是完全合法的D.只有变量 a,b 的定义是完全合法的27.有以下程序: (分数:1

    9、.00)A.1 2 3 4B.5 4 3 1C.1 2 3 5D.3 2 1 428.有以下程序: (分数:1.00)A.9B.-1C.10D.029.有以下程序: (分数:1.00)A.ejotyB.afkpuC.agmsyD.eimqu30.语句 printf(“dn“,strlen(“t“n06508AB“);的输出结果是( )。(分数:1.00)A.6B.7C.8D.931.有以下程序: (分数:1.00)A.012345B.876543210C.876543D.01234567832.有以下程序; (分数:1.00)A.1,2,1,2,2,4B.1,2,6,6,7,8C.1,2,2,

    10、4,2,4D.1,2,6,6,2,433.有以下程序: (分数:1.00)A.-263B.2C.0D.-2634.设有定义: struct complex int real,unreal;datal1,8,data2; 则以下赋值语句中错误的是( )。(分数:1.00)A.data2(2,6);B.data2data1;C.data2realdata1real;D.data2realdata1.unreal;35.有以下程序: (分数:1.00)A.11,11B.29,29C.26,29D.121,12136.若有定义: typedef int *T10; T a; 则以下选项与上述定义中 a

    11、的类型完全相同的是( )。(分数:1.00)A.int *a10;B.int(*a)10;C.int a10;D.int(*a10)();37.有以下程序: (分数:1.00)A.6,5,4,3,2,1,B.1,2,3,4,5,6,C.1,1,1,1,1,1D.6,6,6,6,6,6,38.有以下程序: (分数:1.00)A.有运行错误B.输出 1110C.输出 1210D.输出 211039.若文件指针 fp已正确指向文件,ch 为字符型变量,以下不能把字符输出到文件中的语句是( )。(分数:1.00)A.fget(fp,ch);B.fputc(ch,fp);C.fprintf(fp,”c”

    12、,ch);D.fwrite(ch,sizeof(ch),1,fp);40.有以下程序: (分数:1.00)A.yellow:3B.yellow:2C.white:2D.white:3二、程序填空题(总题数:1,分数:1.00)41.函数 fun的功能是:根据所给的年、月、日,计算出该日是这一年的第几天,并作为函数值返回。其中函数 isleap用来判别某一年是否为闰年。 例如,若输入:2008 5 1,则程序输出:2008 年 5月 1日是该年的第 122天。 请在程序的下划线处境入正确的内容,并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1C 中。 不得增

    13、行或删行,也不得更改程序的结构! 试题程序: (分数:1.00)_三、程序修改题(总题数:1,分数:1.00)42.给定程序 MODI1C 中,函数 fun的功能是:在有 n名学生,2 门课成绩的结构体数组 std中,计算出第 1门课程的平均分,作为函数值返回。例如,主函数中给出了 4名学生的数据,则程序运行的结果为:第 1门课程的平均分是:76125000 请改正函数 fun中指定部位的错误,使它能得出正确的结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构。 试题程序: (分数:1.00)_四、程序设计题(总题数:1,分数:1.00)43.请编写函数 fun,其功能

    14、是:判断形参 n中的正整数是几位数(输人数据的位数不超过 4位),并将结果通过函数值返回。例如:若输入的数据为 123,则输出结果为:输入的数字是 3位。 注意:部分源程序存在 PR0G1C 中,请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入所编写的若干语句。 试题程序: (分数:1.00)_全国计算机等级考试二级 C语言真题题库 2+2015年 9月答案解析(总分:43.00,做题时间:120 分钟)一、选择题(每小题 1分,共 40分)(总题数:40,分数:40.00)1.下列叙述中错误的是( )。(分数:1.00)A.数据结构中的数据元素不能是另一数据结构

    15、 B.数据结构中的数据元素可以是另一数据结构C.空数据结构可以是线性结构也可以是非线性结构D.非空数据结构可以没有根节点解析:解析数据元素是一个含义很广泛的概念,它是数据的“基本单位”,在计算机中通常作为一个整体进行考虑和处理。数据元素可以是一个数据也可以是被抽象出的具有一定结构的数据集合,所以数据结构中的数据元素可以是另一数据结构。满足有且只有一个根节点并且每个节点最多有一个前件,也最多有一个后件的非空的数据结构被认为是线性结构,不满足上述条件的结构为非线性结构。空数据结构可以是线性结构也可以是非线性结构。非空数据结构可以没有根节点,如非性线结构“图”就没有根节点。故选 A选项。2.为了降低

    16、算法的空间复杂度,要求算法尽量采用原地工作(in place)。所谓原地工作是指( )。(分数:1.00)A.执行算法时所使用的额外空间固定(即不随算法所处理的数据空间大小的变化而变化) B.执行算法时所使用的额外空间随算法所处理的数据空间大小的变化而变化C.执行算法时不使用额外空间D.执行算法时不使用任何存储空间解析:解析算法的空间复杂度是指执行这个算法所需要的内存空间,包括输人数据所占的存储空间、程序本身所占的存储空间、算法执行过程中所需要的额外空间。如果额外空间量相对于问题规模(即输人数据所占的存储空间)来说是常数,即额外空间量不随问题规模的变化而变化,则称该算法是原地工作的。故选 A选

    17、项。3.某循环队列的存储空间为 Q(1:m),初始状态为 frontrearm。现经过一系列的入队操作和退队操作后,frontm,rearm-1,则该循环队列中的元素个数为( )。(分数:1.00)A.m-1 B.mC.1D.0解析:解析循环队列长度为 m,由初始状态为 frontrearm,可知此时循环队列为空。入队运算时,首先队尾指针进 1(即 rear+1),然后在 rear指针指向的位置插入新元素。特别的,当队尾指针rearm+1 时,置 rear1。退队运算时,排头指针进 1(即 front+1),然后删除 front指针指向的位置上的元素,当排头指针 frontm+1 时,置 fr

    18、ont1。从排头指针 front指向的后一个位置直到队尾指针rear指向的位置之间所有的元素均为队列中的元素。如果 rear-front0,则队列中的元素个数为 rear-front个;如果 rear-front0,则队列中的元素个数为 rear-front+m。该题中 m-1m,即 rear-front0,则该循环队列中的元素个数为(m-1)-m+mm-1。故选 A选项。4.某棵树只有度为 3的节点和叶子节点,其中度为 3的节点有 8个,则该树中的叶子节点数为( )。(分数:1.00)A.15B.16C.17 D.不存在这样的树解析:解析树是一种简单的非线性结构,直观地来看,树是以分支关系定

    19、义的层次结构。在树结构中,一个节点所拥有的后件个数称为该节点的度,所有节点中最大的度称为树的度。由于只有度为 3的节点和叶子节点,可知最后一层都为叶子节点,倒数第二层一部分节点度为 3,一部分为叶子节点,其余的节点的度均为 3,计算度为 3的节点总数(3 3-1-1)28(3 4-1-1)2 可知,树共有 4层,前两层有度为 3的节点(3 3-1-1)24 个,第三层有 339 个节点,其中 4个是度为 3的节点,5 个是叶子节点,所以该树中的叶子节点数为 43+517。故选 C选项。5.某二叉树共有 530个节点,其中度为 2的节点有 250个,则度为 1的节点数为( )。(分数:1.00)

    20、A.29 B.30C.249D.251解析:解析在树结构中,一个节点所拥有的后件个数称为该节点的度,所有节点中最大的度称为树的度。对任何一棵二叉树,度为 0的节点总是比度为 2的节点多一个。二叉树节点总数为 530,度为 2的节点有250个,则度为 0的节点有 251个,那么度为 1的节点个数为 530-250-25129。故选 A选项。6.若某二叉树中的所有节点值均大于其左子树上的所有节点值,且小于右子树上的所有节点值,则该二叉树遍历序列中有序的是( )。(分数:1.00)A.前序序列B.中序序列 C.后序序列D.以上说法均可以解析:解析二叉树遍历可以分为 3种:前序遍历(访问根节点在访问左

    21、子树和访问右子树之前)、中序遍历(访问根节点在访问左子树和访问右子树两者之间)、后序遍历(访问根节点在访问左于树和访问右子树之后)。由于节点值均大于其左子树上的所有节点值,且小于右子树上的所有节点值,那么只要遍历时访问根节点在访问左于树和右子树之间,遍历序列有序,即中序序列有序。故选 B选项。7.将 C语言的整数设为整数类 I,则下面属于类 I实例的是( )。(分数:1.00)A.-103 B.10E3C.103D.“0103”解析:解析整数类实例包括:十进制常量用 09 表示,不能以 0开头;八进制常量用 07 表示,必须用 0开头;十六进制常量用 09 和 AF(af)表示,必须以 0x或

    22、 0X开头。本题中 B选项是科学计数法表示的浮点数实例,C 选项是浮点数实例,D 选项是字符串实例。故选 A选项。8.下列叙述中正确的是( )。(分数:1.00)A.软件包括程序、数据和文档 B.软件包括程序和数据C.软件包括算法和数据结构D.软件包括算法和程序解析:解析计算机软件由两部分组成:一是机器可执行的程序和数据;二是机器不可执行的,与软件开发、运行、维护、使用等有关的文档。故选 A选项。9.软件生命周期是指( )。(分数:1.00)A.软件的定义和开发阶段B.软件的需求分析、设计与实现阶段C.软件的开发阶段D.软件产品从提出、实现、使用维护到停止使用退役的过程 解析:解析通常把软件产

    23、品从提出、实现、使用、维护到停止使用、退役的过程称为软件生命周期。A、B、C 选项均为生命周期的一部分。故选 D选项。10.下列叙述中正确的是( )。(分数:1.00)A.数据库系统可以解决数据冗余和数据独立性问题,而文件系统不能 B.数据库系统能够管理各种类型的文件,而文件系统只能管理程序文件C.数据库系统可以管理庞大的数据量,而文件系统管理的数据量较少D.数据库系统独立性较差,而文件系统独立性较好解析:解析数据管理技术的发展经历了 3个阶段:人工管理阶段、文件系统阶段和数据库系统阶段。三者各自的特点如下表所示。 11.关于程序模块化,以下叙述错误的是( )。(分数:1.00)A.程序模块化

    24、可以提高程序运行的效率 B.程序模块化可以提高程序编制的效率C.程序模块化可以提高程序代码复用率D.程序模块化可以提高调试程序的效率解析:解析模块化程序的优点:(1)易于维护和复用,可以提高程序编制的效率;(2)易于分工合作;(3)易于模块化调试测试。模块化程序的副作用:(1)可能会降低程序运行效率;(2)设计的前期工作需要多花费时间。可知 B,C,D 选项正确。答案为 A选项。12.以下正确使用 C语言标识符的是( )。(分数:1.00)A.3B.#3C._3 D.-3解析:解析C 语言合法标识名的命名规则是:(1)标识符由字母、数字和下划线组成;(2)第一个字符不能是数字只能是字母或下划线

    25、。A 选项的第一个字符为,非法;B 选项,第一个字符为#,非法;D 选项,第一个字符为-,非法。答案为 C选项。13.若有定义:int a,b,c;以下程序段的输出结果是( )。 a11;b3; c0; printf(”dn”,c(ab,ab);(分数:1.00)A.2 B.0C.3D.1解析:解析C 语言中,逗号运算符可以把两个以上(包含两个)的表达式连接成一个表达式。逗号运算符的优先级是所有运算符中级别最低的,逗号运算符保证左边的子表达式运算结束后才进行右边的子表达式的运算。也就是说,逗号运算符是一个序列点,其左边所有副作用都结束后,才对其右边的子表达式进行运算,并以最右边表达式的值作为整

    26、个逗号表达式的值。因此变量 c的值为 ab 即 1132。故答案为A选项。14.以下选项中合法的 C语言常量是( )。(分数:1.00)A.C-STRB.20141 C.”10D.2EK解析:解析所谓常量是指在程序运行的过程中,其值不能被改变的量。在 C语言中,有整型常量、实型常量、字符常量和字符串常量等类型。A 选项是字符串,但使用单引号,错误;C、D 选项,为实型常量中指数形式,但指数形式 e(E)之前必须是数字,之后必须为整数,错误。故答案为 B选项。15.设有定义:int x,y,z;,且各变量已赋正整数值,则以下能正确表示代数式“ (分数:1.00)A.10xyz B.1x*y*zC

    27、.1(x*y*z)D.1xy(double)z解析:解析代数表达式 1(xyz)是小数,转为 C语言的表达式必须是小数。A 选项由于 10 为浮点数,计算结果自动转换为浮点数,故 A选项正确。B、C、D 选项的表达式均为 0。答案为 A选项。16.有以下程序: (分数:1.00)A. B.12C.1234D.解析:解析scanf()函数从标准输入输出中读入两个字符1、2分别赋给变量 a、b,遇到回车自动结束,但回车符已经存入缓冲区,函数 getchar()将从中接受了回车符,故 c被赋值为回车符,第二个getchar()读人字符3,因此 a1,b2,c,d3。故答案为 A选项。17.有以下程序

    28、: (分数:1.00)A.2,2,3,4,4,4,B.2,3,4,C.2,2,3,4, D.2,3,3,4,5,6,解析:解析continue 语句的作用是跳过循环体中剩余的语句而强行执行下一次循环。在 switchcase语句中,如果没有 break会导致多个分支重叠。因此,输人 1,2,3,则执行 case 1:printf(“d“,b+1);case 2:printf(“d,“,b+1);continue;后结束。2 则执行 case 2:printf(”d,“,b+1);continue;3 则执行 default:printf(“d,“,b+1);continue;得到的结果是 2,

    29、2,3,4。故答案为 C选项。18.有以下程序: (分数:1.00)A.2400000 B.1500000C.1600000D.2000000解析:解析题目中程序执行过程中关键语句 zx/y 的结果为:z15,if 条件成立,得x24,y24,z10,下一次循环 if条件不成立跳出循环,按照格式打印 y值为 2400000。故答案为 A选项。19.有以下程序: (分数:1.00)A.5,B.0,0,0,0,0,C.0,1,2,3,4, D.0,1,解析:解析scanf(”c”,c),输入的字符,题目中输入了 0,字符 0对应于 ASCII码为 48,因此for循环中,i 的范围从 05,均小于

    30、 48,if 条件不成立,直接执行下一条语句 printf,因此得到的结果是 0,1,2,3,4。故答案为 C选项。20.以下程序拟实现计算 sum1+12+13+150。 (分数:1.00)A.sum + 1i; B.while(i50);C.sum=1.0;D.i+;解析:解析选项 A中,sum+1i;i 为整型,因此 1/i是整型类型,当 1i 有小数时,小数部分会被截断。因此 1i 结果始终为 0,导致结果出错,应改为 sum+10/i。因此答案为 A选项。21.若有定义语句: double a, *pa; 以下叙述中错误的是( )。(分数:1.00)A.定义语句中的*号是一个间址运算

    31、符 B.定义语句中的*号是一个说明符C.定义语句中的 p只能存放 double类型变量的地址D.定义语句中*p=a 把变量 a的地址作为初值赋给指针变量 p解析:解析指针运算符(通常称为间接引用运算符:indirection operator 或复引用运算符:dereferencing operator)返回其操作数(即一个指针)所指向的对象的值。定义语句中的*号不是一个间址运算符,而是定义指针变量的说明符,因此,A 项错误,B 选项正确,原则上说变量 p可以放 double兼容性的变量地址,C 选项正确,根据指针的赋值运算,可知 D选项正确。故答案为 A选项。22.关于函数返回值,以下叙述正

    32、确的是( )。(分数:1.00)A.函数可以返回整个结构体,即使结构体中有数组 B.函数只能返回基本数据类型的数值或指针C.函数不可以返回一个数组D.函数不能没有返回值解析:解析函数返回值可以为整型、实型、字符型、指针和结构类型,也可以没有返回值,因此 A选项正确,可以返回数组指针,因此可知 B、C、D 选项错误。放答案为 A选项。23.有以下程序: (分数:1.00)A.24B.720C.120 D.6解析:解析函数 fun()求数组指定返回的元素的积。函数 fun(a,3)求的是数组 a0a3的积。因此结果为 2*3*4*5120,故答案为 C选项。24.若有语句:int a34,(*p)

    33、4;pa;,则以下选项中叙述错误的是( )。(分数:1.00)A.系统将开辟一个名为 p的二维数组,p00中的值即为 a00中的值 B.p+1代表 a10的地址C.p中将存放 a数组的首地址D.p+2代表 a数组最后一行的首地址解析:解析(*p)4定义了一个数组指针。p 可以指向类似于 arry4的数组,题设中,p 不是一个二维数组,只是可以指向这类二维数组,因此 A选项错误。p+1 代表了第一行第一个元素的地址,pa 指向数组 a的首地址,则 B、C 选项正确,同理可知 D选项也正确。故答案为 A选项。25.有以下程序: (分数:1.00)A.B,C,D,E, B.A,B,C,D,C.C,D

    34、,E,F,D.B,D,F,H,解析:解析函数 change()的作用是从数组尾部将数组内的元素值加 1。数组的初始值为 ABCD,因此经change()后,得到的值为 BCDE。故答案为 A选项。26.设有以下程序段: float a8 10,20; int b1 0; char c ”A”,”B”;char d“1”; 以下叙述正确的是( )。(分数:1.00)A.只有变量 c的定义是合法的B.只有变量 a,b、c 的定义是完全合法的C.所有变量的定义都是完全合法的D.只有变量 a,b 的定义是完全合法的 解析:解析float a810,20;定义了一个包含 8个 float型元素的数组,并

    35、初始化了数组的前 2项,其他项是随机数。int b10,定义了只有一个 int型元素的数组,并初始化为 0。char c“A“,“B“;定义一个 char型数组,大小有初始化元素决定,但初始化值是字符串,类型不兼容,编译出错。char d“1“,;定义一个 char型变量,但是初始化赋值字符串,类型不兼容,编译出错。因此只有数组 a,b 的定义和初始化正确。故答案为 D选项。27.有以下程序: (分数:1.00)A.1 2 3 4B.5 4 3 1C.1 2 3 5 D.3 2 1 4解析:解析第一个 for循环初始化数组 a,分别为 1,3,5,随机数,形成了基本有序的序列,再将输入的数字插

    36、入到数组 a,使它们形成有序序列。因此可以分析出,打印的结果为 1,2,3,5。故答案为 C选项。28.有以下程序: (分数:1.00)A.9 B.-1C.10D.0解析:解析while(pa+n*p!x)p+;当 pa;n10,x10;时 while循环条件成立,直到pa+9,结束循环,执行下一条语句,if 条件成立,返回 p-a,此时执行 p-aa+9-a9;因此,输出9。故答案为 A选项。29.有以下程序: (分数:1.00)A.ejotyB.afkpuC.agmsy D.eimqu解析:解析数组 a是二维数组,数组 w存放二维数组 a行列值相同的位置上的元素,由 a510可得w0w4的

    37、元素分别是 agmsy,因此打印结果为 agmsy。故答案为 C选项。30.语句 printf(“dn“,strlen(“t“n06508AB“);的输出结果是( )。(分数:1.00)A.6 B.7C.8D.9解析:解析字符串“t“n06508AB“中共有 13个字符,而 strlen()函数从字符串第一个字符开始扫描,直到碰到第一个结束符0为止,然后返回计数器值(长度不包含“0“)。故输出结果为 6。答案为 A选项。31.有以下程序: (分数:1.00)A.012345 B.876543210C.876543D.012345678解析:解析fun(*ss,m1,m2)的作用是,如果 m1m

    38、2 交换数组元素 ssm1,ssm2。因此,fun(ss,0,5)后 ss的 0,1,2,3,4,5,6,7,8,0。fun(ss,9,6)后 ss的0,1,2,3,4,5,0,8,7,6。fun(ss,0,9)后 ss的 0,1,2,3,4,5,0,8,7,6。因此打印结果 012345。故答案为 A选项。32.有以下程序; (分数:1.00)A.1,2,1,2,2,4 B.1,2,6,6,7,8C.1,2,2,4,2,4D.1,2,6,6,2,4解析:解析全局变量与函数体内局部变量同名时,局部变量会覆盖全局变量,因此在 sub1()函数内,全局变量 m,n 是不可见的,在函数 sub1()

    39、内对 m,n 操作的是局部变量,对全局变量不产生影响。但在sub2()函数内,由于没有和全局变量重名,因此在此函数内,m,n 是可见的。因此,第一个 printf()打印的是全局变量 m,n,故打印的是 1,2;第二个 printf(),调用 sub1()。没有修改全局变量 m,n,故打印的是 1,2;第三个 printf(),之前调用了 sub2(),修改了全局变量 m,n,因此,打印的是 2,4。故答案为 A选项。33.有以下程序: (分数:1.00)A.-263B.2C.0D.-26 解析:解析isspace(c)检查参数 c是否为空格字符。若参数 c为空格字符,则返回 TRUE,否则返

    40、回NULL(0)。Isdigit(c)函数检查参数 c是否为阿拉伯数字 0到 9。返回值若为阿拉伯数字,则返回 TRUE,否则返回 NULL(0)。fun()函数的第一个 for循环判断字符串是否为负号。第二个 for循环获取符号后面的数字字符,并将它们转化为整数。若遇到了非数字的字符则跳出,最后返回数组的结果。因此,可知首先获取负号,紧接着获取数值 26,遇到了字符 a,跳出返回-26,因此打印的结果是-26。故答案为 D选项。34.设有定义: struct complex int real,unreal;datal1,8,data2; 则以下赋值语句中错误的是( )。(分数:1.00)A.

    41、data2(2,6); B.data2data1;C.data2realdata1real;D.data2realdata1.unreal;解析:解析结构体变量建议在定义的时候进行初始化。结构体常见的几种初始化方法如下: 35.有以下程序: (分数:1.00)A.11,11B.29,29 C.26,29D.121,121解析:解析#define 命令是 C语言中的一个宏定义命令,标识符一般使用大写,为了区分其他标识符,它用来将一个标识符定义为一个字符串,该标识符被称为宏名,被定义的字符串称为替换文本。宏定义不进行其他操作,仅仅只是替换标识符。S(k+j+2)k+j+2*k+j+2k+j+2,经

    42、计算可得 29,S(j+k+2)j+k+2*k+j+2j+k+2,经计算可得 29。因此输出为 29,29。答案为 B选项。36.若有定义: typedef int *T10; T a; 则以下选项与上述定义中 a的类型完全相同的是( )。(分数:1.00)A.int *a10; B.int(*a)10;C.int a10;D.int(*a10)();解析:解析C 语言允许由用户自己定义类型说明符,也就是说允许由用户为数据类型取”别名”。类型定义符 typedef即可用来完成此功能,可以完全代替原来的类型说明符。因此,变量 a的类型为 int *a10。typedef int*T10,由于运算

    43、符优先级高于*,可以看成 typedef int10 *T,替换 T可得int10 *aint *a10,因此,答案为 A选项。37.有以下程序: (分数:1.00)A.6,5,4,3,2,1, B.1,2,3,4,5,6,C.1,1,1,1,1,1D.6,6,6,6,6,6,解析:解析fopen(“datadat“,“w+“);w+打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失,若文件不存在则建立该文件。rewind(fp);使文件 fp的位置指针指向文件开始。fprintf(fp,“dn“,a5-i);将 ai输出到 fp指向的文件中。fscanf(fp,“d“,k);将

    44、fp读入到变量 k中,第一个 for循环将数组中元素倒着输入到 fp指向的文件中。rewind();则指向文件开始,因此打印的是数组 a的倒叙。故打印结果为 6,5,4,3,2,1。答案为 A选项。38.有以下程序: (分数:1.00)A.有运行错误 B.输出 1110C.输出 1210D.输出 2110解析:解析calloc(n,sizeof(type)在内存的动态存储区中分配 n个长度为 size的连续空间,函数返回一个指向分配起始地址的指针,如果分配不成功,返回 NULL。s 在函数 fun()内申请了内存空间,但是在调用 fun()函数后会释放掉,最后 q指向 NULL,因此运行时打印

    45、出错。答案为 A选项。39.若文件指针 fp已正确指向文件,ch 为字符型变量,以下不能把字符输出到文件中的语句是( )。(分数:1.00)A.fget(fp,ch); B.fputc(ch,fp);C.fprintf(fp,”c”,ch);D.fwrite(ch,sizeof(ch),1,fp);解析:解析函数 fgetc()从文件读入一个字符到指定变量。函数 fputc()将指定字符写入 fp文件中,函数 fprintf(),fwrite()均是写入文件操作函数。因此 B,C,D 选项错误。答案为 A选项。40.有以下程序: (分数:1.00)A.yellow:3B.yellow:2 C.

    46、white:2D.white:3解析:解析结构体定义时初始化,list0“white“,2,list1“yellow“,3,(list+1)-colorlist1color“yellow“,list-dimlist0dim2,因此,打印的结果是yellow:2。故答案为 B选项。二、程序填空题(总题数:1,分数:1.00)41.函数 fun的功能是:根据所给的年、月、日,计算出该日是这一年的第几天,并作为函数值返回。其中函数 isleap用来判别某一年是否为闰年。 例如,若输入:2008 5 1,则程序输出:2008 年 5月 1日是该年的第 122天。 请在程序的下划线处境入正确的内容,并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1C 中。 不得增行或删行,也不得更改程序的结构! 试题程序: (分数:1.00)_正确答案:( (1)leap (2)day (3)1)解析: 解题思路 填空 1:leap isleap()函数用来判断是否是闰年,由于初始化 2月为 28天,但是闰年是 29,因此闰年要多加 1天。isleap()应该返回 0或者 1,leap 的表达式为逻辑运算,得到的结果刚好是 0或 1。 填空 2:days 前面累加了平年整月份的天数,还需要加上最后一个月包含的日的


    注意事项

    本文(【计算机类职业资格】全国计算机等级考试二级C语言真题题库2+2015年9月及答案解析.doc)为本站会员(王申宇)主动上传,麦多课文档分享仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文档分享(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

    收起
    展开