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

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

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

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

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

    1、二级 C 语言笔试-464 及答案解析(总分:102.00,做题时间:90 分钟)一、选择题(总题数:40,分数:66.00)1.对长度为 n 的线性表进行顺序查找,在最坏的情况下所需要的比较次数为 _。A) log2n B) n/2 C) n D) n+l(分数:2.00)A.B.C.D.2.数据的存储结构是指( )A) 数据所占的存储空间B) 数据的逻辑结构在计算机中的存放形式C) 数据在计算机中的顺序存储方式D) 存储在计算机外存中的数据(分数:2.00)A.B.C.D.3.结构化程序设计主要强调的是A) 程序的规模 B) 程序的效率 C) 程序设计语言的先进性 D) 程序易读性(分数:

    2、2.00)A.B.C.D.4.按照“先进后出”原则组织数据的数据结构是( )。A) 队列 B) 栈 C) 双向链表 D) 二叉树(分数:2.00)A.B.C.D.5.某二叉树有 5 个度为 2 的结点,则该二叉树中的叶子结点数是_。A) 10 B) 8 C) 6 D) 4(分数:2.00)A.B.C.D.6.单个用户使用的数据视图的描述称为A) 外模式 B) 概念模式 C) 内模式 D) 存储模式(分数:2.00)A.B.C.D.7.结构化程序设计的 3 种结构是( )。 A) 顺序结构,分支结构,跳转结构 B) 顺序结构,选择结构,循环结构 C) 分支结构,选择结构,循环结构 D) 分支结构

    3、,跳转结构,循环结构(分数:2.00)A.B.C.D.8.有下列二叉树,对此二叉树中序遍历的结果为( )。(分数:2.00)A.B.C.D.9.下列关于栈的叙述正确的是_。(A) 栈按“先进先出“组织数据(B) 栈按“先进后出“组织数据(C) 只能在栈底插入数据(D) 不能删除数据(分数:2.00)A.B.C.D.10.数据流图用于抽象地描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是( )。A) 控制流 B) 加工 C) 数据存储 D) 源和潭(分数:1.00)A.B.C.D.11.有下列二叉树,对此二叉树前序遍历的结果为( )。(分数:2

    4、.00)A.B.C.D.12.将 E-R 图转换为关系模式时,实体和联系都可以表示为( )。A属性 B键C关系 D域(分数:1.00)A.B.C.D.13.在结构化方法中,用数据流图(DFD)作为描述工具的软件开发阶段是( )。A) 可行性分析 B) 需求分析 C) 详细设计 D) 程序编码(分数:1.00)A.B.C.D.14.下列工具中为需求分析常用工具的是( )。A) PAD B) PFD C) N-S D) DFD(分数:2.00)A.B.C.D.15.算法中,对需要执行的每一步操作,必须给出清楚、严格的规定这属于算法的_。A) 正当性 B) 可行性 C) 确定性 D) 有穷性(分数:

    5、2.00)A.B.C.D.16.设变量已正确定义并赋值,以下正确的表达式是_。A) x=y*5=x+z B) int(15.8%5)C) x=y+z+5,+y D) x=25%5.0(分数:1.00)A.B.C.D.17.有以下程序:main()int a=5,b=4,c=3,d=2;if(abc)printf(“%d/n“,d);else if(c-1=d)=1)printf(“%d/n“,d+1);elseprintf(“%d/n“,d+2);执行后输出结果是 _。A) 2 B) 3 C) 4 D) 编译时有错,无结果(分数:1.00)A.B.C.D.18.已知:i nf t=0:whil

    6、e(t=1) 则下列叙述中正确的是A) 循环控制表达式的值为 0 B) 循环控制表达式的值为 1C) 循环控制表达式不合法 D) 以上说法都不对(分数:1.00)A.B.C.D.19.若运行以下程序时,从键盘输入 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

    7、!=/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.20.下列选项中合法的赋值语句是( )。A) a=b=34 B) a=34,b=34C) i-1; D) m=(int)(x+y);(分数:2.00)A.B.C.D.21.有如下嵌套的 if 语句if(ab)if(ac) k=a;else k=c;elseif(bc) k=b;else k=c;以下选项中与上述订语句等价的语句

    8、是A) k=(ab)? a:b;k=(bc)?b:c;B) k=(ab)?(bc)?a:b):(bc)?b:c);C) k=(ab)?(ac)?a:c):(bc)?b:c);D) k=(ab)?a:b;k=(ac)?a:c;(分数:1.00)A.B.C.D.22.下列程序的输出结果是( )。main()int i=1,j=2,k=3;if(i+=1p=(char *)malloc(sizeof(char)* 20);q=p;scanf(“%s %s“,p,q);printf(“%s %s/n“,p,q);若从键盘输入;abc def回车,则输出结果是 _。A) def def B) abc d

    9、ef C) abe d D) d d(分数:2.00)A.B.C.D.29.有以下程序:void swapl(int c0,int c1)int t;t=c00;c00=c10;c10=t;void swap2(int*c0,int*c1)int t;t=*c0;*c0=*c1;*c1=t;main()int a2=3,5),b2=3,5;swapl(a,a+1);swap2(b0,b1);printf(“%d%d%d%d/n“,a0,a1,b0,b1);程序运行后的输出结果是_。A) 3 5 5 3 B) 5 3 3 5 C) 3 5 3 5 D) 5 3 5 3(分数:2.00)A.B.C

    10、.D.30.设 q1 和 q2 是指向一个 float 型一维数组的指针变量,k 为 float 型变量,则不能正确执行的语句是( )。A) k=*q1+*q2; B) q1=k; C) q1=q2; D) k=*q1*(*q2);(分数:2.00)A.B.C.D.31.下面程序段的输出结果是( )。char str=“ABC“,*p=str;Printf(“%d/n“,*(p+3);A) 67 B) 0 C) 字符C的地址 D) 字符C(分数:1.00)A.B.C.D.32.在 C 语言中,函数返回值的类型最终取决于( )。A) 函数定义时在函数首部所说明的函数类型B) return 语句中

    11、表达式值的类型C) 调用函数时主调函数所传递的实参类型D) 函数定义时形参的类型(分数:2.00)A.B.C.D.33.表达式 3.6-5/2+1.2+5%2 的值是( )。A) 4.3 B) 4.8 C) 3.3 D) 3.8(分数:1.00)A.B.C.D.34.以下错误的定义语句是_。A) int x3=0,1,1,2,3;B) int x43=1,2,3,1,2,3),1,2,3,1,2,3;C) int x4=1,2,3,1,2,3,1,2,3,1,2,3;D) int x3=1,2,3,4;(分数:2.00)A.B.C.D.35.下面程序段中,输出*的个数是char *s=“/ta

    12、/018bc“;for(;*s!=/0;s+)printf(“*“);A) 9 B) 5 C) 6 D) 7(分数:2.00)A.B.C.D.36.以下程序运行后的输出结果是 #includestdio.h int fun() static int x=1; x+=1; return x; main() int i,s=1; for(i=1; i=5;i+) s+=fun(); printf(“%d/n“, s); A) 11 B) 21 C) 6 D) 120(分数:2.00)A.B.C.D.37.变量 a 中的数据用二进制表示的形式是 01011101,变量 b 中的数据用二进制表示的形式

    13、是 11110000。若要求将 a 的高 4 位取反,低 4 位不变,所要执行的运算是( )。Aab Ba|b Cay=3*x-4;return y;A) int B) 不确定 C) void D) float(分数:2.00)A.B.C.D.39.有以下程序:#include stdio.h#include string.hmain(int argc,char *argv)int i,len=0;for(i=1;iargc;i+=2)len+=strlen(argvi);prinff(“%d/n“,len);此程序经编译链接后生成的可执行文件是 ex.exe,若运行时输入以下带参数的命令行:

    14、ex abed efg h3 k44则执行后的输出结果时( )。A) 14 B) 12 C) 8 D) 6(分数:2.00)A.B.C.D.40.有以下程序#includestdio.h#includestring.htypedef structchar name9;char sex;float score2;)STU;STU f(STU a)STU b=“Zhao“,in,85.0,90.0);int i;strcpy(a.name,b.name);a.sex=b.sex;for(i=0;i2;i+) a.scorei=b.scorei;return a;main()STU c=“Qian“

    15、,f,95.0,92.0,d;d=f(c);printf(“%s,%c,%2.0f,%2.0f“,d.name,d.sex,d.score0,d.score1);程序的运行结果是( )。Aqian,f,95,92 Bqian,m,85,90CZhaO,m,85,90 DZhao,f,95,92(分数:1.00)A.B.C.D.二、填空题(总题数:15,分数:36.00)41.某二叉树有 5 个度为 2 的结点以及 3 个度为 1 的结点,则该二叉树中共有 1 个结点。(分数:2.00)填空项 1:_42.数据的独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,

    16、基于逻辑结构的应用程序不必修改,这称为 1。(分数:2.00)填空项 1:_43.数据结构包括数据的逻辑结构、数据的U /U以及列数据的操作运算。(分数:2.00)填空项 1:_44.深度为 5 的满二叉树有 1 个叶子结点。(分数:2.00)填空项 1:_45.某二叉树中度为 2 的结点有 18 个,则该二叉树中有 1 个叶子结点。(分数:4.00)填空项 1:_46.数据库系统的三级模式分别为U /U模式、内部级模式与外部级模式。(分数:2.00)填空项 1:_47.若有定义:int a=10,b=8,c=4;然后顺序执行下列语句后,变量 a 中的值是_。 c=(b-=(a-4);a=(c

    17、%2)+(b-1);(分数:2.00)填空项 1:_48.以下程序的功能是:将输入的正整数按逆序输出。例如:若输入 135,则输出 531,请填空。#includestdio.hmain()int n,s;printf(“Enter a number:“);scanf(“%d“,n);printf(“Output:“);dos=n%10;printf(“%d“,s);_;while(n!=0);printf(“/n“);(分数:2.00)填空项 1:_49.下列程序运行后的输出结果是_。#includestdio.hmain()int k=1,s=0;doif(k%2)!=0)continue

    18、;s+=k;k+;whiIe(k10);printf(“s=%d/n“,s);(分数:4.00)填空项 1:_50.下面程序的输出是U /Umain()enum ememl=3,em2=1,em3;char*aa=“AA,“BB“,“CC“,“DD“printf(“%s%s%/n“,aaem1,aaem2,aaem3);(分数:2.00)填空项 1:_51.以下程序的运行结果是_。int k=0;void fun(int m)m+=k;k+=m;printf(“m=%d/nk=%d“,m,k+);main()int i=4;fun(i+);printf(“i: %d k=%d/n“,i,k);

    19、(分数:2.00)填空项 1:_下面函数的功能是:找出一维数组元素中的最大值和它所在的下标,并将最大值和其下标通过形参传回。请填空。#includestdio.hvoid fun(int a,int n,int *max,int *d)int i;*max=a0; *d=0;for(i=0;U /U;i+)if(*maxU /U) *max=ai;*d=i;main( )int i,x E20,max,index,n=10;fox(i=0;in;i+)scanf(“%d“,xi);printf(“%4d“,xi);printf(“/n“);fun(x,n,U /U;i+)j=i*10+6;if

    20、(U /U)continue:Printf(“%d”“,j);(分数:2.00)填空项 1:_53.设有定义:FILE *fw;,请将以下打开文件的语句补充完整,以便可以向文本文件 read me.txt 的最后续写内容。fw=fopen(“readme.txt“, “_“)(分数:2.00)填空项 1:_54.以下程序通过函数*。这里 f(x)=x2+1,由 F 函数实现。请填空。main()printf(“The sum=%d/n“, SunFun(10); SunFun(int n)int x, s=0 ;for (x=0; x=n ; x+ ) s+=F(U /U) ;return s

    21、;F(int x)return (U /U);(分数:2.00)填空项 1:_二级 C 语言笔试-464 答案解析(总分:102.00,做题时间:90 分钟)一、选择题(总题数:40,分数:66.00)1.对长度为 n 的线性表进行顺序查找,在最坏的情况下所需要的比较次数为 _。A) log2n B) n/2 C) n D) n+l(分数:2.00)A.B.C. D.解析:解析 顺序查找的最坏情况是所找的元素在线性表的最后,因此查找的比较次数是线性表的长度,即 n。2.数据的存储结构是指( )A) 数据所占的存储空间B) 数据的逻辑结构在计算机中的存放形式C) 数据在计算机中的顺序存储方式D)

    22、 存储在计算机外存中的数据(分数:2.00)A.B. C.D.解析:解析 数据的存储结构,又称为数据的物理结构,是数据的逻辑结构在计算机中的存放形式。数据的存储结构有顺序结构、链式结构、散列结构和索引结构等。3.结构化程序设计主要强调的是A) 程序的规模 B) 程序的效率 C) 程序设计语言的先进性 D) 程序易读性(分数:2.00)A.B.C.D. 解析:解析 结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、模块化及限制使用 goto语句,总的来说可使程序结构良好、易读、易理解、易维护。4.按照“先进后出”原则组织数据的数据结构是( )。A) 队列 B) 栈 C) 双向链表 D)

    23、二叉树(分数:2.00)A.B. C.D.解析:解析 栈是一种特殊的线性表,其插入和删除运算都只在线性表的一端进行,而另一端是封闭的。进行插入、删除的一端称为栈顶,封闭的一端称为栈底。栈顶元素是最后被插入的元素,不是最后被删除的,是按先进后出的原则组织数据的。5.某二叉树有 5 个度为 2 的结点,则该二叉树中的叶子结点数是_。A) 10 B) 8 C) 6 D) 4(分数:2.00)A.B.C. D.解析:知识点 二叉树的基本性质评析 在任意一棵二叉树中,度为 0 的结点(即子叶结点)总比度为 2 的结点多一个。本题中度为 2 的结点数为 5,故叶子结点数为 5+16 个。6.单个用户使用的

    24、数据视图的描述称为A) 外模式 B) 概念模式 C) 内模式 D) 存储模式(分数:2.00)A. B.C.D.解析:解析 选项 A)正确,外模式是用户的数据视图,也就是用户所见到的数据模式;选项 B)不正确,全局数据视图的描述称为概念模式,即数据库中全部数据的整体逻辑结构的描述;选项 C)不正确,物理存储数据视图的描述称为内模式,即数据库在物理存储方面的描述;选项 D)不正确,存储模式即为内模式。7.结构化程序设计的 3 种结构是( )。 A) 顺序结构,分支结构,跳转结构 B) 顺序结构,选择结构,循环结构 C) 分支结构,选择结构,循环结构 D) 分支结构,跳转结构,循环结构(分数:2.

    25、00)A.B. C.D.解析:解析 程序设计语言仅仅使用顺序、选择和重复(循环)三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。遵循程序结构化的设计原则,按结构化程序设计方法设计出的程序易于理解、使用和维护;可以提高编程工作的效率,降低软件的开发成本。8.有下列二叉树,对此二叉树中序遍历的结果为( )。(分数:2.00)A.B. C.D.解析:解析 对二又树的中序遍历是指:首先遍历左子树,然后访问根结点,最后遍历右子树。在遍历左,右子树时,注意依旧按照“左子树根结点右于树”的顺序。9.下列关于栈的叙述正确的是_。(A) 栈按“先进先出“组织数据(B) 栈按“先进后出“组织数据(C)

    26、 只能在栈底插入数据(D) 不能删除数据(分数:2.00)A.B. C.D.解析:10.数据流图用于抽象地描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是( )。A) 控制流 B) 加工 C) 数据存储 D) 源和潭(分数:1.00)A. B.C.D.解析:解析 数据流图包括四个方面,即加工(输入数据经加工变换产生输出)、数据流(沿箭头方向传送数据的通道,一般在旁边标注数据流名)、存储文件(数据源)(表示处理过程中存放各种数据的文件)、源和潭(表示系统和环境的接口,属系统之外的实体),不包括选项中的控制流。11.有下列二叉树,对此二叉树前序遍

    27、历的结果为( )。(分数:2.00)A.B.C.D. 解析:解析 对二叉树的前序遍历是指:先访问根结点,然后访问左子树,最后访问右于树,并且,在访问左、右子树时,先访问根结点,再依次访问其左、右子树。记住 3 种遍历的顺序:前序,访问根一按前序遍历左子树一按前序遍历右子树:中序,按中序遍历左子树一访问根一按中序遍历右子树;后序,按后序遍历左子树呻按后序遍历右子树一访问根。12.将 E-R 图转换为关系模式时,实体和联系都可以表示为( )。A属性 B键C关系 D域(分数:1.00)A.B.C. D.解析:解析 在 C 语言中,将 E-R 图转换为关系模式时,实体和联系都可以表示为关系。13.在结

    28、构化方法中,用数据流图(DFD)作为描述工具的软件开发阶段是( )。A) 可行性分析 B) 需求分析 C) 详细设计 D) 程序编码(分数:1.00)A.B. C.D.解析:解析 软件开发阶段包括需求分析、总体设计、详细设计、编码和测试五个阶段,其中需求分析阶段常用的工具是数据流图和数据字典。14.下列工具中为需求分析常用工具的是( )。A) PAD B) PFD C) N-S D) DFD(分数:2.00)A.B.C.D. 解析:解析 需求分析常用的工具有数据流图(DFD)、数据字典(DD)、判定树和判定表。PAD(问题分析图)、PFD(程序流程图)、 N-S(盒式图)都是详细设计的常用工具

    29、,不是需求分析的工具。15.算法中,对需要执行的每一步操作,必须给出清楚、严格的规定这属于算法的_。A) 正当性 B) 可行性 C) 确定性 D) 有穷性(分数:2.00)A.B.C. D.解析:解析 算法具有 5 个特性:有穷性、确定性、可行性、有零个或多个输入、有一个或多个输出。16.设变量已正确定义并赋值,以下正确的表达式是_。A) x=y*5=x+z B) int(15.8%5)C) x=y+z+5,+y D) x=25%5.0(分数:1.00)A.B.C. D.解析:解析 赋值运算符的左边必须是一个代表某一存储单元的变量名,而 A 选项中的“y*5=x+z”部分是非法赋值。求余运算符

    30、的对象只能是整型,故选项 B 和选项 D 是错误的。选项 C 为逗号表达式。17.有以下程序:main()int a=5,b=4,c=3,d=2;if(abc)printf(“%d/n“,d);else if(c-1=d)=1)printf(“%d/n“,d+1);elseprintf(“%d/n“,d+2);执行后输出结果是 _。A) 2 B) 3 C) 4 D) 编译时有错,无结果(分数:1.00)A.B. C.D.解析:解析 执行 if(abc)时,首先判断 ab 的值,54 结果为真(C 语言中规定真用 1 表示),然后比较 1c,结果为假,执行第一个 else 后的语句,判断条件(c

    31、-1=d)=1 是否成立,即判断(3-1=2)=1,结果为真,所以执行 printf(“%d/n“,d+1),输出结果 3。18.已知:i nf t=0:while(t=1) 则下列叙述中正确的是A) 循环控制表达式的值为 0 B) 循环控制表达式的值为 1C) 循环控制表达式不合法 D) 以上说法都不对(分数:1.00)A.B. C.D.解析:解析 这里要注意“=”与“=”的用法。t=1 是将 1 赋值给 t,所以循环控制表达式的值始终为1。19.若运行以下程序时,从键盘输入 ADescriptorCR(CR表示回车),则其运行结果是#includestdio.hmain( )char c;

    32、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,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,v

    33、0 和 v2 在循环 11 次中都要加 1,共循环 12 次,由于 v0 的初值为 1,所以 v0=13,v2=12。20.下列选项中合法的赋值语句是( )。A) a=b=34 B) a=34,b=34C) i-1; D) m=(int)(x+y);(分数:2.00)A.B.C.D. 解析:解析选项 A)是一个合法的赋值表达式,但结尾没加分号,所以它不是一个赋值语句;选项 B)是一个逗号表达式,也因为结尾没有加分号而不足合法的赋值语句:选项 C)是个算术表达式,虽然有分号,但这个表达式没有赋值操作,因此,也不是一条赋值语句。21.有如下嵌套的 if 语句if(ab)if(ac) k=a;els

    34、e k=c;elseif(bc) k=b;else k=c;以下选项中与上述订语句等价的语句是A) k=(ab)? a:b;k=(bc)?b:c;B) k=(ab)?(bc)?a:b):(bc)?b:c);C) k=(ab)?(ac)?a:c):(bc)?b:c);D) k=(ab)?a:b;k=(ac)?a:c;(分数:1.00)A.B.C. D.解析:解析 嵌套的辽语句功能是将 k 赋值为 a、b、c 中的最小值,选项 A 中没有比较 a、c 的大小,选项 B 中语句“(bc)?a:b):(bc)?b:c)”错误,选项 D 中没有比较 b、c 大小。22.下列程序的输出结果是( )。mai

    35、n()int i=1,j=2,k=3;if(i+=1p=(char *)malloc(sizeof(char)* 20);q=p;scanf(“%s %s“,p,q);printf(“%s %s/n“,p,q);若从键盘输入;abc def回车,则输出结果是 _。A) def def B) abc def C) abe d D) d d(分数:2.00)A. B.C.D.解析:解析 本题考查%s 控制符在 scanf 函数中的应用。scanf 函数中%s 控制符的作用是将键盘输入的字符串送到内存,输入的字符串从第一个非空格字符算起,遇到空格或回车就认为是输入结束。本题中执行语句 scanf(“

    36、%s%s“,p,q)时,从键盘输入 abc def回车后,指针变量 p 指向字符串“abc/0“,q 指向字符串“def/0“,但是由于 p 和 q 指向同一个存储单元,所以存储单元中存放的是“def/0“,printf 函数的输出结果为 def def。29.有以下程序:void swapl(int c0,int c1)int t;t=c00;c00=c10;c10=t;void swap2(int*c0,int*c1)int t;t=*c0;*c0=*c1;*c1=t;main()int a2=3,5),b2=3,5;swapl(a,a+1);swap2(b0,b1);printf(“%d

    37、%d%d%d/n“,a0,a1,b0,b1);程序运行后的输出结果是_。A) 3 5 5 3 B) 5 3 3 5 C) 3 5 3 5 D) 5 3 5 3(分数:2.00)A.B.C.D. 解析:解析 函数 swapl 的形参是数组名,在调用时应将数组名,即数组的首地址,作为实参传递给形参,形参所指向内容的改变可以带回到实参,因此调用函数 swap 1 是将元素 a0和 a1互换。函数swap2 的形参是指针变量,在调用时将 b0、b1的值传递给它,形参内容改变也可以带回到实参,b0和 b1的内容也进行了交换。所以输出为 5 3 5 3。30.设 q1 和 q2 是指向一个 float 型

    38、一维数组的指针变量,k 为 float 型变量,则不能正确执行的语句是( )。A) k=*q1+*q2; B) q1=k; C) q1=q2; D) k=*q1*(*q2);(分数:2.00)A.B. C.D.解析:解析 选项 A)是将指针 q1 和 q2 所指向的变量值相加,然后赋给 k;选项 B)中,float 型数据和指针型数据之间不能进行赋值运算:选项 C)中,是两个指针变量之间的赋值:选项 D)中,是两个指针型变量所指向的两个 float 型数据相乘。31.下面程序段的输出结果是( )。char str=“ABC“,*p=str;Printf(“%d/n“,*(p+3);A) 67

    39、B) 0 C) 字符C的地址 D) 字符C(分数:1.00)A.B. C.D.解析:解析 本题考查指向字符串的指针变量。指针变量 p 指向的应该是该字符串中的首地址,p+3 指向的是字符串结束标志“/0“的地址,因而*(p+3)的值为 0。32.在 C 语言中,函数返回值的类型最终取决于( )。A) 函数定义时在函数首部所说明的函数类型B) return 语句中表达式值的类型C) 调用函数时主调函数所传递的实参类型D) 函数定义时形参的类型(分数:2.00)A. B.C.D.解析:解析 在 C 语言中,应当在定义函数时指定函数值的类型凡不加类型说明的函数,默认按整型处理。在定义函数时对函数值说

    40、明的类型一般应该和 return 语句中的表达式类型一致。如果函数值的类型和 return 语句中的表达式类型不一致,则以函数值的类型为准,由系统自动进行转换。即函数类型决定返回值的类型。33.表达式 3.6-5/2+1.2+5%2 的值是( )。A) 4.3 B) 4.8 C) 3.3 D) 3.8(分数:1.00)A.B.C.D. 解析:解析 算术运算符的结合方向为“自左至右”,先按运算符的优先级别高低次序执行,同时在 C中两个整数相除或求余数其结果依旧为整数。计算后结果为 3.6-2+1.2+1=3.8。34.以下错误的定义语句是_。A) int x3=0,1,1,2,3;B) int

    41、x43=1,2,3,1,2,3),1,2,3,1,2,3;C) int x4=1,2,3,1,2,3,1,2,3,1,2,3;D) int x3=1,2,3,4;(分数:2.00)A.B.C. D.解析:解析 若在定义二维数组的同时对数组进行初始化,可以不指定一维长度但二维长度不能省略,因此选项 C 是错误的。如果数据不足,系统将自动给后面的元素自动补初值 0。35.下面程序段中,输出*的个数是char *s=“/ta/018bc“;for(;*s!=/0;s+)printf(“*“);A) 9 B) 5 C) 6 D) 7(分数:2.00)A.B.C. D.解析:解析 本题中,格式符 0 表

    42、示的是八进制无符号形式输出整型数(不带前导 0),字符常量在内存中占一个字节,存放的是 ACSII 码代码值。C 语言规定,所有字符常量都作为整型量来处理,在计算机内部,其对应的整数值就是 ACSII 字符集中该字符的序号,即 x+=1; return x; main() int i,s=1; for(i=1; i=5;i+) s+=fun(); printf(“%d/n“, s); A) 11 B) 21 C) 6 D) 120(分数:2.00)A.B. C.D.解析:解析 本题考查的是静态存储类型的变量。静态存储变量的特点是只赋一次初值,当函数发生多次调用时,静态存储变量上一次的值会带入到

    43、函数本次的调用中。本题程序中,main 函数中 5 次调用 fun函数,变量 s 完成函数返回值的累加。由于 fun 函数中变量 x 是静态存储类型的变量,所以 x 赋值为 1 只在第一次调用 fun 函数时执行,第一次调用结束后 x 的值变为 2,当第二次调用 fun 函数时,x 的值是上一次调用后的结果 2,而不会重新赋值。根据这些特点,可以知道 5 次调用 fun 函数后,x 值依次变为2、3、4、5、6,s 的初值为 1,所以 1+2+3+4+5+6=21。37.变量 a 中的数据用二进制表示的形式是 01011101,变量 b 中的数据用二进制表示的形式是 11110000。若要求将

    44、 a 的高 4 位取反,低 4 位不变,所要执行的运算是( )。Aab Ba|b Cay=3*x-4;return y;A) int B) 不确定 C) void D) float(分数:2.00)A. B.C.D.解析:解析 C 语言规定函数定义时若不声明函数值的类型,则默认为是整型。39.有以下程序:#include stdio.h#include string.hmain(int argc,char *argv)int i,len=0;for(i=1;iargc;i+=2)len+=strlen(argvi);prinff(“%d/n“,len);此程序经编译链接后生成的可执行文件是 e

    45、x.exe,若运行时输入以下带参数的命令行:ex abed efg h3 k44则执行后的输出结果时( )。A) 14 B) 12 C) 8 D) 6(分数:2.00)A.B.C.D. 解析:解析 main 函数可以有两个参数,第一个参数为一个整型变量,表示命令行参数的个数,本题为5;第二个参数为一个字符型指针数组,其中第一个数组元素指向程序名,第二个数组元素指向命令行中的第一个参数,以后依此类推。由程序中的 for 循环可以看出,程序是求第一(argv1)、第三(argv3)个参数的长度之和,即 4+2=6。40.有以下程序#includestdio.h#includestring.htyp

    46、edef structchar name9;char sex;float score2;)STU;STU f(STU a)STU b=“Zhao“,in,85.0,90.0);int i;strcpy(a.name,b.name);a.sex=b.sex;for(i=0;i2;i+) a.scorei=b.scorei;return a;main()STU c=“Qian“,f,95.0,92.0,d;d=f(c);printf(“%s,%c,%2.0f,%2.0f“,d.name,d.sex,d.score0,d.score1);程序的运行结果是( )。Aqian,f,95,92 Bqian,m,85,90CZhaO,m,85,90 DZhao,f,95,92(分数:1.00)A.B.C. D.解析:解析 f()函数的功能是对形参 a 的各个成员用结构体变量 b 的各个成员进行赋值后,返回变量a。二、填空题(总题数:15,分数:36.00)41.某二叉树有 5 个度为 2 的结点以及 3 个度为 1 的结点,则该二叉树中共有 1 个结点。(分数:2.00)填空项 1:_ (正确答案:14)解析:解析 在二叉树中,度为 0 的结点数是度为 2 的结点数加 1,故二叉树中结点数的总


    注意事项

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




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

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

    收起
    展开