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

    【计算机类职业资格】二级C语言笔试-414及答案解析.doc

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

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

    【计算机类职业资格】二级C语言笔试-414及答案解析.doc

    1、二级 C 语言笔试-414 及答案解析(总分:96.50,做题时间:90 分钟)一、选择题(总题数:40,分数:65.00)1.下列描述中,不是线性表顺序存储结构特征的是( )。A) 不便于插入和删除 B) 需要连续的存储空间C) 可随机访问 D) 需另外开辟空间来保存元素之间的关系(分数:1.00)A.B.C.D.2.结构化分析方法是面向( )的自顶向下、逐步求精进行需求分析的方法。A) 对象 B) 数据结构 C) 数据流 D) 目标(分数:2.00)A.B.C.D.3.已知、棵二叉树的后序遍历序列是 dabec,中序遍历序列是 debac,则它的前序遍历序列是( )。A) acbed B)

    2、 decab C) deabc D) cedba(分数:1.00)A.B.C.D.4.按照“先进先出”组织数据的数据结构是( )。A) 队列 B) 栈 C) 双向链表 D) 二叉树(分数:2.00)A.B.C.D.5.在软件开发中,需求分析阶段产生的主要文档是( )。A) 可行性分析报告 B) 软件需求规格说明书C) 概要设计说明书 D) 集成设计计划(分数:2.00)A.B.C.D.6.软件设计中划分模块的一个准则是A) 低内聚低耦合 B) 高内聚低耦合C) 低内聚高耦合 D) 高内聚高耦合(分数:2.00)A.B.C.D.7.对于 n 个结点的单向链表(无表头结点),需要指针单元的个数至少

    3、为 _。A) n-1 B) n C) n+1 D) 2n(分数:2.00)A.B.C.D.8.设有如下三个关系表RAmnSB C1 3TA B Cm 1 3n 1 3下列操作中正确的是A) T=RS B) T=RS C) T=RS D) T=R/S(分数:2.00)A.B.C.D.9.下面各选项中,均是 C 语言合法标识符的选项组是A) 33 we auto B) _23 me _3ewC) _43 3e_ else D) ER-DF 32(分数:1.00)A.B.C.D.10.若函数中有定义语句:int k;,则_。A) 系统将自动绐 K 赋初值 0 B) 这时 K 中的值无定义C) 系统将

    4、自动绐 K 赋初值-1 D) 这时 K 中无任何值(分数:2.00)A.B.C.D.11.以下 C 语言用户标识符中,不合法的是( )。A_1 BAaBcCa_b Da-b(分数:1.00)A.B.C.D.12.有以下程序:#includestdio.hmain()int x=1,y=0,a=0,b=0;switch(x)case 1:switch(y)case 0:a+;break;case 1:b+;break;case 2:a+;b+;break;case 3:a+;b+;printf(“a=%d,b=%d/n“,a,b);程序的运行结果是_。A) a=1,b=0 B) a=2,b=2C

    5、) a=1,b=1 D) a=2,b=1(分数:1.00)A.B.C.D.13.若运行以下程序时,从键盘输入 ADescriptorCR(CR表示回车),则其运行结果是#includestdio.hmain( )char c;int v0=1,v1=0,v2=0;do switch(c=getchar( )casea:caseA:casee:caseE:casei:caseI:caseo:caseO:caseu:caseU:v1+=1; default:v0+=1;v2+=1;while(c!=/n);printf(“v0=%d,v1=%d,v2=%d/n“,v0,v1,v2);A) v0=7

    6、,v1=4,v2=7 B) v0=8,v1=4,v2=8C) v0=11,v1=4,v2=11 D) v0=13,v1=4,v2=12(分数:1.00)A.B.C.D.14.有以下程序fun(int x)int p;if(x=0x=1) return(3);p=x-fun(x-2);return p;main()printf(“%d/n“,fun(7);执行后的输出结果是A) 7 B) 3 C) 2 D) 0(分数:1.00)A.B.C.D.15.若整型变量 a、b、c、d 中的值依次为:1、4、3、2。则条件表达式 aB?A:CD?C:D 的值是_。(A) 1(B) 2(C) 3(D) 4(

    7、分数:1.00)A.B.C.D.16.下面程序的功能是把 316 表示为两个加数的和,使两个加数分别能被 13 和 11 整除,请选择填空。#includestdiohmain()int i=0,j,k;doi+;k=316-13*iwhile(_);j=k/11; printf(“316=13*%d+11,%d”,i,j);A) k/11 B) k%11 C) k/11=0 D) k%11=0(分数:1.00)A.B.C.D.17.下列程序的功能是给 r 输入数据后计算半径为 r 的圆面积 s。程序在编译时出错。main ()/*Beginning*/int r; float s;scanf

    8、(“%d“, B) x=(x*100+0.5)/100.0C) x=(int)(x*100+0.5)/100.0; D) x=(x/100+0.5)/100.0;(分数:1.00)A.B.C.D.19.定义下列结构体(联合)数组:struct stchar name15;int age;a10=“ZHAO“,14,“WANG“,15,“LIU“,16,“ZHANG“,17;执行语句 printf(“%d,%c“,a2.age,*(a3.name+2)的输出结果为( )。A) 15,A B) 16,H C) 16,A D) 17,H(分数:2.00)A.B.C.D.20.有以下程序:void c

    9、hange(int k)k0=k5;)main()int x10=1,2,3,4,5,6,7,8,9,10,n=0;while(n=4)(change(xn);n+;for(n=0;n5;n+)printf(“%d“,xn);printf(“/n“);程序运行后的输出结果是_。A) 6 7 8 9 10 B) 1 3 5 7 9 C) 1 2 3 4 5 D) 6 2 3 4 5(分数:2.00)A.B.C.D.21.对两个数组 a 和 b 进行下列初始化:char m=“1234567“;char n=1,2,3,4,5,6,7;则下列叙述正确的是( )。A) 数组 m 与数组 n 完全相同

    10、 B) 数组 m 与数组 n 长度相同C) 数组 m 比数组 n 长 1 D) 数组 m 与数组 n 中都存放字符串(分数:2.00)A.B.C.D.22.下列叙述错误的是( )。A) 函数名是属于用户标识符,需符合 C 语言对标识符的规定B) 形参只能是变量C) 为保证程序的正常运行,函数中定义的变量不能与其他函数中的变量同名D) 函数中定义的变量可以与其他函数中的变量同名(分数:2.00)A.B.C.D.23.下列程序的输出结果是( )。#includestdio.hmain()char ch25=“1234“,“5678“,*p2;int i,j,s=0;for(i=0;i2;i+)pi

    11、=chi;for(i=0;i2;i+)for(j=0;pij/0,j+=2)s=pij-0;printf(“%d“,s);)A) 6357 B) 6135 C) 1357 D) 691357(分数:2.00)A.B.C.D.24.若有以下结构体定义,则是正确的引用或定义。struct exampleint x;int y;v1;A) example.x=10 B) examplev2.x=10C) struct v2;v2.x=10 D) struct example v2=10;(分数:2.00)A.B.C.D.25.表达式0x11 的值是( )。A0xFFEE B0x71 C0x0071

    12、D0xFFE1(分数:1.00)A.B.C.D.26.以下不正确的定义语句是( )。A) double x5=2.0,4.0,6.0,8.0,10.0;B) int y5=0,1,3,5,7,9;C) char c1=1,2,3,4,5; D) char c2=/x10,/xa,/x8;(分数:1.00)A.B.C.D.27.有以下程序#include stdioh#include stringhvoid fun(char,*s,int n)char *t; int i,j;for(i=0;in-1;i+)for(j=i+1;jn;j+)if(strlen(si)strlen(sj) t=si

    13、;si:sj;sj=t;main()char *ss=“bcc“,“bbcc“,“xy“,“aaaacc“,“aabcc“;fun(ss,5); printf(“%s,%s/n“,ss0,ss4);程序的运行结果是A) xy,aaaacc B) aaaacc,xy C) bcc,aabcc D) aabcc,bcc(分数:2.00)A.B.C.D.28.以下程序运行后的输出结果是#includestdio.hstruct stint x,y; data2=1,10,2,20;main( )struet st *p=data; printf(“%d,“,p-y);printf(“%d/n“,(+

    14、p)-x);A) 10,1 B) 20,1 C) 10,2 D) 20,2(分数:2.00)A.B.C.D.29.若程序有宏定义:#define N 100 则以下叙述中正确的是_。A) 宏定义中定义了标识符 N 的值为整数 100B) 在编译程序对 C 源程序进行预处理时用 100 替换标识符 NC) 对 C 源程序进行编译时用 100 替换标识符 ND) 在运行时用 100 替换标识符 N(分数:2.00)A.B.C.D.30.以下叙述中正确的是_。A) 预处理命令行必须位于 C 源程序的起始位置B) 在 C 语言中,预处理命令行都以“#”开头C) 每个 C 程序必须在开头包含预处理命令行

    15、:#includestdio.hD) C 语言的预处理不能实现宏定义和条件编译的功能(分数:2.00)A.B.C.D.31.设有如下定义:struct complexint real, unreal; data1=1, 8. data2;则以下赋值语句中错误的是A) data2=data1; B) data2=(2, 6);C) data2.real=data1.real; D) data2.real=data1.unreal;(分数:2.00)A.B.C.D.32.以下结构体类型说明和变量定义中正确的是_。A) typedef structint n;char c;);REC t1,t2;B

    16、) struct REC;int n;char c;)REC;REC t1,t2;C) typedef struct REC;int n;char c;REC;D) structint n=0;char c=A;t1,t2;REC t1,t2;(分数:2.00)A.B.C.D.33.以下结构体类型说明和变量定义中正确的是_。A) typedef struct B) struct REC;int n;char c;REC; int n;char c;REC t1,t2; REC t1,t2;C) typedef struct REC; D) structint n=0;char c=A;t1,t

    17、2; int n;char c;REC;REC t1,t2;(分数:2.00)A.B.C.D.34.以下与函数 fseek (fp, OL, SEEK_SET)有相同作用的是( )。A) feof(fp) B) ftell(fp) C) fgetc(fp) D) rewind(fp)(分数:1.00)A.B.C.D.35.若已经定义的函数有返回值,则以下关于该函数调用的叙述中错误的是_。A) 函数调用可以作为独立的语句存在B) 函数调用可以作为一个函数的实参C) 函数调用可以出现在表达式中D) 函数调用可以作为一个函数的形参(分数:2.00)A.B.C.D.36.以下程序的输出结果是main(

    18、 )int c=35;printf(“%d/n“,cc);A)0 B)70 C)35 D)1(分数:2.00)A.B.C.D.37.在位运算中,操作数每右移两位,其结果相当于( )。A) 操作数乘以 2 B) 操作数除以 2C) 操作数除以 4 D) 操作数乘以 4(分数:2.00)A.B.C.D.38.设有如下说明typedef struct STlong a; int b;char c2; NEW;则下面叙述中正确的是_。A) 以上的说明形式非法 B) ST 是一个结构体类型C) NEW 是一个结构体类型 D) NEW 是一个结构体变量(分数:1.00)A.B.C.D.39.以下叙述中错误

    19、的是( )。A) C 程序必须由一个或一个以上的函数组成B) 函数调用可以作为一个独立的语句存在C) 若函数有返回值,必须通过 return 语句返回D) 函数形参的值也可以传回给对应的实参(分数:1.00)A.B.C.D.40.有以下程序:#include stdio.hmain()int c;while(c=getchar() )! =/n)switch(c-2)case 0: case 1: putchar(c+4);case 2:putehar(c+4);break;case 3:putchar(c+3);default:putchar(c+2);break;运行程序,从第一列开始输入

    20、以下数据:2473回车则程序的输出结果是( )。A) 668977 B) 668966 C) 66778777 D) 6688766(分数:2.00)A.B.C.D.二、填空题(总题数:15,分数:31.50)41.算法复杂度主要包括时间复杂度和 1 复杂度。(分数:2.00)填空项 1:_42.在程序设计阶段应该采取 1 和逐步求精的方法,把一个模块的功能逐步分解,细化为一系列具体的步骤,继而用某种程序设计语言写成程序。(分数:1.50)填空项 1:_43.对软件设计的最小单位(模块或程序单元)进行的测试通常称为_测试。(分数:2.00)填空项 1:_44.数据模型按不同应用层次分成三种类型

    21、,它们是概念数据模型、U /U和物理数据模型。(分数:2.00)填空项 1:_45.阅读下面程序,则执行后的输出结果是_。#include“stdio.h“main()int x,y,z;x=1;y=2;z=3;if(xy)if(xz)printf(“%d“,x);else printf(“%d“,y);printf(“%d/n“,z);(分数:2.00)填空项 1:_46.表示“整数 x 的绝对值大于 5”时值为“真”的 C 语言表达式是U /U。(分数:2.00)填空项 1:_47.设 y 为血型变量,请写出描述“y 是偶数”的表达式 1。(分数:2.00)填空项 1:_48.设 int

    22、a=5,b=6,表达式(+a=b-)?+a:-b 的值是 1。(分数:2.00)填空项 1:_49.以下函数用来求出数组的最大元素在数组中的下标并存放在 k 所指的存储单元中。请填空。#includeconio.h#includestdio.hint fun(int *s,int t,int *k)int i;*k=0;8 if(s*ksi)*k=i;return 9 ;main()int a10:876,675,896,101,301,401,980,431,451,777,k;fun(a,10,while(s);-s;(分数:2.00)填空项 1:_52.下面的程序实现的是从指针 p 所指

    23、向的地址的 n 个数中,找出最大的和最小的数据,请填空。fun(int *p,int n)int *q;int max,min;max=min=*p;for(q=p;_;q+)if(*qmax)max=*q;else if(*qmin)min=*q;(分数:2.00)填空项 1:_53.设有定义:struet personint ID;char name12;p;请将“scanf(“%d“,_);”语句补充完整,使其能够为结构体变量 p 的成员 ID 正确读入数据。(分数:4.00)填空项 1:_54.以下程序的输出结果是U /U。void reverse(int a,int n)int i,

    24、t;for(i=0;in/2;i+)t=ai;ai=an-1-i;an-1-i=t;main()int b10=1,2,3,4,5,6,7,8,9,10;int i,s=0;reverse(b,8);for(i=6;i10;i+)s+bi;printf(“%d/n“,s);(分数:2.00)填空项 1:_55.有以下程序:float f1(float n)return n*n; float f2(float n)return 2*n; main()float(*p1)(float),(*p2)(float),(*t)(float),y1,y2;p1=f1;p2=f2;y1=p2(p1(2.0)

    25、;t=P1;p1=p2;p2=t;y2=p2(p1(2.0);printf(“%3.0f,%3.0f/n“,y1,y2);程序运行后的输出结果是U /U。(分数:2.00)填空项 1:_二级 C 语言笔试-414 答案解析(总分:96.50,做题时间:90 分钟)一、选择题(总题数:40,分数:65.00)1.下列描述中,不是线性表顺序存储结构特征的是( )。A) 不便于插入和删除 B) 需要连续的存储空间C) 可随机访问 D) 需另外开辟空间来保存元素之间的关系(分数:1.00)A.B.C.D. 解析:解析 线性表的顺序存储是用一片连续的空间来存放数据元素,其特点是逻辑上相邻的元素在物理位置

    26、上也相邻。数据元素之间逻辑上的先后关系自动隐含在物理位置的相邻元素之中,因此,不需要另外开辟空间来保存元素之间的关系。2.结构化分析方法是面向( )的自顶向下、逐步求精进行需求分析的方法。A) 对象 B) 数据结构 C) 数据流 D) 目标(分数:2.00)A.B.C. D.解析:解析 结构化分析方法是面向数据流进行需求分析的方法,采用自顶向下、逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。3.已知、棵二叉树的后序遍历序列是 dabec,中序遍历序列是 debac,则它的前序遍历序列是( )。A) acbed B) decab C) deabc D) ced

    27、ba(分数:1.00)A.B.C.D. 解析:解析 依据后序遍历序列可确定根结点为 c,由中序遍历序列可知其左子树由 deba 构成,右子树为空;又由左子树的后序遍历序列可知其根结点为 e,由中序遍历序列可知其左子树为 d,右子树由 ba 构成,如图所示。由此可知该二叉树的前序遍历序列为选项 D) 。4.按照“先进先出”组织数据的数据结构是( )。A) 队列 B) 栈 C) 双向链表 D) 二叉树(分数:2.00)A. B.C.D.解析:解析 队列是一种特殊的线性表,只允许在表的一端插入元素,在表的另一端删除元素,插入元素的一端叫“队尾”,删除元素的一端叫“队头”,先插入的元素先被删除,是按“

    28、先进先出”的原则组织数据的。5.在软件开发中,需求分析阶段产生的主要文档是( )。A) 可行性分析报告 B) 软件需求规格说明书C) 概要设计说明书 D) 集成设计计划(分数:2.00)A.B. C.D.解析:解析 需求分析的最终结果是生成软件需要规格说明书,可以为用户、分析人员和设计人员之间的交流提供方便,可以直接支持目标确认,又可以作为控制软件开发进程的依据。6.软件设计中划分模块的一个准则是A) 低内聚低耦合 B) 高内聚低耦合C) 低内聚高耦合 D) 高内聚高耦合(分数:2.00)A.B. C.D.解析:解析 模块划分应考虑的因素包括模块之间的耦合和内聚。一般来说,要求模块之间的耦合尽

    29、可能地低,即模块尽可能独立,要求模块的内聚程度尽可能地高,即遵循高内聚、低耦合的原则。7.对于 n 个结点的单向链表(无表头结点),需要指针单元的个数至少为 _。A) n-1 B) n C) n+1 D) 2n(分数:2.00)A.B.C. D.解析:评析 在 n 个结点的单向链表(无表头结点)中,每个结点都有一个指针单元(即指针域),加上头指针,至少需要 n+1 个指针单元。8.设有如下三个关系表RAmnSB C1 3TA B Cm 1 3n 1 3下列操作中正确的是A) T=RS B) T=RS C) T=RS D) T=R/S(分数:2.00)A.B.C. D.解析:解析 对于两个关系的

    30、合并操作可以用笛卡尔积表示。设有 n 元关系 R 和 m 元关系 S,它们分别有 p 和 q 个元组,则 R 与 S 的笛卡尔积记为 RS,它是一个 m+n 元关系,元组个数是 pq,由题意可得,关系 T 是由关系 R 与关系 S 进行笛卡尔积运算得到的。9.下面各选项中,均是 C 语言合法标识符的选项组是A) 33 we auto B) _23 me _3ewC) _43 3e_ else D) ER-DF 32(分数:1.00)A.B. C.D.解析:解析 合法的标识符是由字母、数字和下划线组成,并且第一个字符必须为字母或下划线,用户定义的标识符不能与关键字相同。选项 A),数字不能为第一

    31、个字母,auto 为关键字;选项 C)中,也是数字不能为第一个字母,else 为关键字;选项 D)中负号不合法。10.若函数中有定义语句:int k;,则_。A) 系统将自动绐 K 赋初值 0 B) 这时 K 中的值无定义C) 系统将自动绐 K 赋初值-1 D) 这时 K 中无任何值(分数:2.00)A.B. C.D.解析:评析 基本型的整型变量用类型名关键字 int 进行定义,当定义时,编译程序仅为 K 开辟存储单元,而没有在存储单元中存放任何初值,此时变量中的值是无意义的,称变量值“无定义”。11.以下 C 语言用户标识符中,不合法的是( )。A_1 BAaBcCa_b Da-b(分数:1

    32、.00)A.B.C.D. 解析:解析 标识符主要由英文字母、数字和下画线构成,但开头字符一定是字母或下画线。12.有以下程序:#includestdio.hmain()int x=1,y=0,a=0,b=0;switch(x)case 1:switch(y)case 0:a+;break;case 1:b+;break;case 2:a+;b+;break;case 3:a+;b+;printf(“a=%d,b=%d/n“,a,b);程序的运行结果是_。A) a=1,b=0 B) a=2,b=2C) a=1,b=1 D) a=2,b=1(分数:1.00)A.B.C.D. 解析:解析 本题考查

    33、switch 语句。x=1,因此第一个 switch 语句是执行 case 1:后面的语句,进入嵌入的 switch 语句;y=0,执行 case 0:后面的语句,得 a=1,遇到 break 语句退出嵌入的 switch 语句。由于第一个 switch 语句的 case 1:后面没有 break 语句,因此继续执行 case 2:后面的语句,得a=2,b=1,遇到 break 语句退出第一个 switch 语句。结果为 a=2,b=1。13.若运行以下程序时,从键盘输入 ADescriptorCR(CR表示回车),则其运行结果是#includestdio.hmain( )char c;int

    34、 v0=1,v1=0,v2=0;do switch(c=getchar( )casea:caseA:casee:caseE:casei:caseI:caseo:caseO:caseu:caseU:v1+=1; default:v0+=1;v2+=1;while(c!=/n);printf(“v0=%d,v1=%d,v2=%d/n“,v0,v1,v2);A) v0=7,v1=4,v2=7 B) v0=8,v1=4,v2=8C) v0=11,v1=4,v2=11 D) v0=13,v1=4,v2=12(分数:1.00)A.B.C.D. 解析:解析 由于只有 4 个元音字符,所以 v1=4,v0 和

    35、 v2 在循环 11 次中都要加 1,共循环 12 次,由于 v0 的初值为 1,所以 v0=13,v2=12。14.有以下程序fun(int x)int p;if(x=0x=1) return(3);p=x-fun(x-2);return p;main()printf(“%d/n“,fun(7);执行后的输出结果是A) 7 B) 3 C) 2 D) 0(分数:1.00)A.B.C. D.解析:解析 因为 fun(int x)是一个递归函数,所以主函数中 fun(7)经过三次递归调用,其过程可以描述为“fun(7)=7-fun(5)=7-(5-fun(3)=7-(5-(3-fun(1)=7-(

    36、5-(3-3)=7-5=2”,所以最后的输出结果为2。15.若整型变量 a、b、c、d 中的值依次为:1、4、3、2。则条件表达式 aB?A:CD?C:D 的值是_。(A) 1(B) 2(C) 3(D) 4(分数:1.00)A. B.C.D.解析:16.下面程序的功能是把 316 表示为两个加数的和,使两个加数分别能被 13 和 11 整除,请选择填空。#includestdiohmain()int i=0,j,k;doi+;k=316-13*iwhile(_);j=k/11; printf(“316=13*%d+11,%d”,i,j);A) k/11 B) k%11 C) k/11=0 D)

    37、 k%11=0(分数:1.00)A.B. C.D.解析:解析 本题的关键是两个加数分别能被 13 和 11 整除。当 k%11 的值为 0 时,则退出循环,将执行j=k/11;语句,输出结果,所以该表达式合理的条件是 k%11。17.下列程序的功能是给 r 输入数据后计算半径为 r 的圆面积 s。程序在编译时出错。main ()/*Beginning*/int r; float s;scanf(“%d“, B) x=(x*100+0.5)/100.0C) x=(int)(x*100+0.5)/100.0; D) x=(x/100+0.5)/100.0;(分数:1.00)A.B.C. D.解析:

    38、解析 本题考查实型数据。题目要求保留到小数点后两位,选项 A)、B)、D)都不合要求。在选项C)中,x*100+0.5 的作用是将第三位四舍五入,取整后再除以 100.0,即可得符合要求的数据。19.定义下列结构体(联合)数组:struct stchar name15;int age;a10=“ZHAO“,14,“WANG“,15,“LIU“,16,“ZHANG“,17;执行语句 printf(“%d,%c“,a2.age,*(a3.name+2)的输出结果为( )。A) 15,A B) 16,H C) 16,A D) 17,H(分数:2.00)A.B.C. D.解析:解析 本题主要考查结构体

    39、数组。a2.age 为结构体 a2的 age 成员,即 16。a3.name 为指向结构体 a3的 name 成员的第一个元素的指针,即指向“Z”,(a3.name+2)将指针后移两位指向第三个元素“A”,*(a3.name+2)是取指针所指向地址的内容。20.有以下程序:void change(int k)k0=k5;)main()int x10=1,2,3,4,5,6,7,8,9,10,n=0;while(n=4)(change(xn);n+;for(n=0;n5;n+)printf(“%d“,xn);printf(“/n“);程序运行后的输出结果是_。A) 6 7 8 9 10 B) 1

    40、 3 5 7 9 C) 1 2 3 4 5 D) 6 2 3 4 5(分数:2.00)A. B.C.D.解析:解析 本题主要考查数组元素的地址作为实参,当 n=0 时,把 x0的地址传递给被调函数change(),即把形参 k 和实参 x 指向同一个存储单元,执行被调函数后 k0=6,即 x0=6;当 n=1 时,执行被调函数后 x1=7,以此类推,最后得到 x 数组的值为 6,7,8,9,10。21.对两个数组 a 和 b 进行下列初始化:char m=“1234567“;char n=1,2,3,4,5,6,7;则下列叙述正确的是( )。A) 数组 m 与数组 n 完全相同 B) 数组 m

    41、 与数组 n 长度相同C) 数组 m 比数组 n 长 1 D) 数组 m 与数组 n 中都存放字符串(分数:2.00)A.B.C. D.解析:解析 本题考查字符数组和字符串赋值给数组的一些区别。.语句“char m=“1234567“;”定义了一个字符型数组并进行了初始化,C 语言规定,在字符串的末尾自动加上串结束标记/0,因此数组 m 的长度是 8;而数组 n 是按照字符方式对数组进行初始化,系统不会自动加上串结束标记/0,因此数组 n 的长度是 7。22.下列叙述错误的是( )。A) 函数名是属于用户标识符,需符合 C 语言对标识符的规定B) 形参只能是变量C) 为保证程序的正常运行,函数

    42、中定义的变量不能与其他函数中的变量同名D) 函数中定义的变量可以与其他函数中的变量同名(分数:2.00)A.B.C. D.解析:解析 本题考查函数调用时参数的作用域。在函数调用时,函数体内定义的变量的作用域在函数体内,因而在不同函数体内定义的变量可以相同,不影响各个变量的使用。23.下列程序的输出结果是( )。#includestdio.hmain()char ch25=“1234“,“5678“,*p2;int i,j,s=0;for(i=0;i2;i+)pi=chi;for(i=0;i2;i+)for(j=0;pij/0,j+=2)s=pij-0;printf(“%d“,s);)A) 63

    43、57 B) 6135 C) 1357 D) 691357(分数:2.00)A.B.C. D.解析:解析 本题先将指针 p 指向二维数组 ch25,相当于 p0=“1234“,p1=“5678“,通过双重for 循环,是要将 p 中的字符隔一个输出一个,通过 s=pij-0这条语句是将所要输出的字符转换成相应的十进制数。24.若有以下结构体定义,则是正确的引用或定义。struct exampleint x;int y;v1;A) example.x=10 B) examplev2.x=10C) struct v2;v2.x=10 D) struct example v2=10;(分数:2.00)

    44、A.B.C.D. 解析:评析 在定义结构体变量时,不能只用结构体名 example 或关键字 struct 进行定义,必需要用结构体类型名 struct example 定义,在引用结构体成员变量时,需要用结构体变量名进行引用,所以选D。25.表达式0x11 的值是( )。A0xFFEE B0x71 C0x0071 D0xFFE1(分数:1.00)A. B.C.D.解析:解析 本题主要考查按位求反运算:十六进制整型常量的形式是以数字 0x 开头的十六进制字符串;按位求反运算的规则是:将二进制表示的运算对象按位取反,即将 1 变 0,将 0 变 1。26.以下不正确的定义语句是( )。A) do

    45、uble x5=2.0,4.0,6.0,8.0,10.0;B) int y5=0,1,3,5,7,9;C) char c1=1,2,3,4,5; D) char c2=/x10,/xa,/x8;(分数:1.00)A.B. C.D.解析:解析 选项 B) 中定义的 y 数组的长度为 5,但赋初值时有 6 个元素,所以是错误的。27.有以下程序#include stdioh#include stringhvoid fun(char,*s,int n)char *t; int i,j;for(i=0;in-1;i+)for(j=i+1;jn;j+)if(strlen(si)strlen(sj) t=

    46、si;si:sj;sj=t;main()char *ss=“bcc“,“bbcc“,“xy“,“aaaacc“,“aabcc“;fun(ss,5); printf(“%s,%s/n“,ss0,ss4);程序的运行结果是A) xy,aaaacc B) aaaacc,xy C) bcc,aabcc D) aabcc,bcc(分数:2.00)A. B.C.D.解析:解析 函数 fun(char,s,int n)的功能是对字符串数组的元素按照字符串的长度从小到大排序。在主函数中执行 fun(ss,5)语句后,*ss“xy“,“bcc“,“bbcc“,“aabcc“,“aaaacc“,ss0,ss4的输出结果为 xy,aaaacc。28.以下程序运行后的输出结果是#includestdio.hstruct stint x,y; data2=1,10,2,20;main( )struet st *p=data; printf(“%d,“,p-y);printf(“%d/n“,(+p)-x);A) 10,1 B) 20,1 C) 10,2 D) 20,2(分数:2.00)A.B.C. D.解析:解析 正确地给结构体数组赋初值,data0.x=1、data0.


    注意事项

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




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

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

    收起
    展开