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

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

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

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

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

    1、二级 C 语言笔试-460 及答案解析(总分:93.50,做题时间:90 分钟)一、选择题(总题数:40,分数:64.00)1.下列叙述中正确的是A) 对长度为 n 的有序链表进行查找,最坏情况下需要的比较次数为 nB) 对长度为 n 的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)C) 对长度为 n 的有序链表进行对分查找,最坏情况下需要的比较次数为(log 2n)D) 对长度为 n 的有序链表进行对分查找,最坏情况下需要的比较次数为(nlog 2n)(分数:2.00)A.B.C.D.2.若某二叉树的前序遍历访问顺序是 abdgcefh,中序遍历访问顺序是 dgbaechf,则其

    2、后序遍历的结点访问顺序是( )。A) bdgcefha B) gdbecfha C) bdgaechf D) gdbehfca(分数:1.00)A.B.C.D.3.软件调试的目的是A) 发现错误 B) 改正错误C) 改善软件的性能 D) 验证软件的正确性(分数:2.00)A.B.C.D.4.下列叙述中正确的是 _。A) 程序设计就是编制程序 B) 程序测试必须由程序员自己去做C) 程序经调试改错后还应进行再测试 D) 程序经调度改错后不必进行再测试(分数:2.00)A.B.C.D.5.下列关于线性链表的描述中正确的是( )。A) 存储空间不一定连续,且各元素的存储顺序是任意的B) 存储空间不一

    3、定连续,且前件元素一定存储在后件元素的前面C) 存储空间必须连续,且各前件元素一定存储在后件元素的前面D) 存储空间必须连续,且各元素的存储顺序是任意的(分数:2.00)A.B.C.D.6.软件生命周期可分为定义阶段、开发阶段和维护阶段。详细设计属于A) 定义阶段 B) 开发阶段 C) 维护阶段 D) 上述 3 个阶段(分数:2.00)A.B.C.D.7.下列选项中不属于结构化程序设计方法的是_。A) 自顶向下 B) 逐步求精C) 模块化 D) 可复用(分数:2.00)A.B.C.D.8.有以下程序:main()char a,b,c,d;scanf(“%c,%c,%d,%d“,a,printf

    4、(“%c,%c,%c,%c/n“,a,b,c,d);若运行时从键盘上输入:6,5,65,66回车,则输出结果是 _。A) 6,5,A,B B) 6,5,65,66 C) 6,5,6,5 D) 6,5,6,6(分数:2.00)A.B.C.D.9.有三个关系 R,S 和 T 如下:(分数:1.00)A.B.C.D.10.以下叙述中正确的是_。A) 用 C 语言实现的算法必须要有输入和输出操作B) 用 C 语言实现的算法可以没有输出但必须要有输入C) 用 C 语言程序实现的算法可以没有输入但必须要有输出D) 用 C 语言程序实现的算法可以既没有输入也没有输出(分数:1.00)A.B.C.D.11.以

    5、下选项中与 if(a=1)a+;else a=b;语句功能不同的语句是( )。 A) switch(a) ease 0:a=b;break; default:a+; B) switch(a=1) case 0:a+: default:a=b; C) switch(a) default:a=b;break; case 1:a+; D) a=(a=1)?(a+):b(分数:1.00)A.B.C.D.12.下列程序的输出结果是( )。main()int a=1,b=2;printf(“%d,%d/n“,-a,+b);A) 1,2 B) 1,3 C) 0,2 D) 0,3(分数:1.00)A.B.C.

    6、D.13.请选出可用作 C 语言用户标识符的是( )。A) void,define,WORD B) a3_b3,_123,IFC) FOR,-abc,Case D) 2a,Do,$izeof(分数:1.00)A.B.C.D.14.下列叙述中错误的是_。A) 计算机不能直接执行用 C 语言编写的源程序B) C 程序经 C 编译后,生成后缀为.obj 的文件是一个二进制文件C) 后缀为.obj 的文件,经连接程序生成后缀为.exe 的文件是一个二进制文件D) 后缀为.obj 和.exe 的二进制文件都可以直接运行(分数:2.00)A.B.C.D.15.若变量已正确定义并赋值,以下符合 C 语言语法

    7、的表达式是A) a:=b+1 B) a=b=c+2 C) int 18.5%3 D) a=a+7=c+b(分数:1.00)A.B.C.D.16.设有以下语句:int a=1,b=2,c;c=a(b2);执行后,c 的值为( )。A6 B7 C8 D9(分数:1.00)A.B.C.D.17.在 16 位编译系统上,若有定义 int a=10,20,30,*p=if(aB) a=b;c=a;if(c!=A) c=b;printf(“%d,%d,%d/n“,a,b,C) ;其输出结果是( )。A) 程序段有语法错 B) 3,5,3C) 3,5,5 D) 3,5,7(分数:2.00)A.B.C.D.1

    8、9.若有定义 float x=1.5;int a=1,b=3,c=2;,则正确的 switch 语句是A) swimh(x)case 1.0:printf(“*/n“);case 2.0:printf(“*/n“);B) switch(int)x);case 1:printf(“*/n“);case 2:printf(“*/n“);C) switch(a+b)case 1:pfintf(“*/n“);case 2+1:pfintf(“*/n“);D) switch(a-I-b)case 1:pfintf(“*/n“);case c:printf(“*/n“);(分数:1.00)A.B.C.D.

    9、20.有以下程序#include stdio.hmain()int a=1,2,3,4,y,*p=S+=2;printf(“%d/n“,s0);执行后的结果是( )。A) 输出字符 a 的 ASCII 码 B) 输出字符 c 的 ASCII 码C) 输出字符 c D) 程序出错(分数:2.00)A.B.C.D.22.有以下程序 #includestdio.h intfun(int a,int b) if(b=0)return a; else return(fun(-a,-b); main() pdntf(“%d/n“,fun(4,2); 程序的运行结果是( )。 A) 1 B) 2 C) 3

    10、D) 4(分数:2.00)A.B.C.D.23.下列字符数组初始化语句中,不正确的是( )。A) charcgoodmorning; B) char,c20“goodmoming“;C) charca,b,c,d; D) charc“goodmoming“;(分数:2.00)A.B.C.D.24.以下程序段给数组所有的元素输入数据,请选择正确答案填入。#includestdio.hmain()int a10=0;while(i10)scan(“%d“_);:A) a+(i+) B) A) * printf(“%c/n“,*(pc+5);程序运行后的输出结果是_。(A) z(B) 0(C) 元素

    11、 ch5地址(D) 字符 y 的地址(分数:2.00)A.B.C.D.28.设已执行预编译命令#includestring.h,以下程序段的输出结果是char s=“ an apple“ ;printf(“%d/n“,strlen(s);A) 7 B) 8 C) 9 D) 10(分数:2.00)A.B.C.D.29.以下程序的输出结果是( )。#include stdio.hmain()int n=4;while(n-) printf(“%d “,-n);A) 2 0 B) 3 1 C) 3 2 1 D) 2 1 0(分数:1.00)A.B.C.D.30.以下程序的主函数中调用了在其前面定义的

    12、 fun 函数#include stdio.hmain()double a15,k;k=fun(a);则以下选项中错误的 fun 函数受部是( )。A)double fun(double a15) B)double fun(double *a)C)double fun(double a) D)double fun(double a)(分数:2.00)A.B.C.D.31.下列的程序用来输出两个字符串前 7 个字符中对应相等的字符及其位置号,程序空白处应该填写的是( )。#includestdiohmain()char s1=“chinese“,s2=“japnese“;int i;for(i=

    13、0;s1i!=/0 ,则数组 x 在内存中所占字节数是_。A) 3 B) 6 C) 10 D) 20(分数:2.00)A.B.C.D.38.已知一个文件中存放若干工人档案记录,其数据结构如下: struct a char number100; int age; float p6; ; 定义一个数组:struct a number10; 假定文件已正确打开,不能正确地从文件中读入 10 名工人数据到数组 b 中的是( )。 A) fread(b,sizeof(struct a),10,fp);B) for(i=0;i10;i+) fread(bi,sizeof(struct a),1,fp);

    14、C) for(i=0;i10;i+)fread(b+i,sizeof(struct a),1,fp);D) for(i=0;i5;i+=2) fread(b+i,sezeof(struct a),2,fp);(分数:2.00)A.B.C.D.39.有以下程序#includemain()FILE *fp; int i, k, n;fp=fopen(“data.dat“, “w+“);for(i=1; i6; i+)fprintf(fp,“%d “,i);if(i%3=0) fprintf(fp,“/n“);rewind(fp);fscanf(fp, “%d%d“, k, n); printf(“

    15、%d %d/n“, k, n);fclose(fp);程序运行后的输出结果是_。(A) 0 0(B) 123 45(C) 1 4(D) 1 2(分数:2.00)A.B.C.D.40.下列叙述正确的是( )。AC 语言中的文件是流式文件,因此只能顺序存取数据B打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖C在一个程序中当对文件进了写操作后,必须先关闭该文件然后再打开,才能读到第 1 个数据D当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失(分数:1.00)A.B.C.D.二、填空题(总题数:15,分数:29.50)41.数据字典是各类数据描述的集合,它通常

    16、包括 5 个部分,即数据项、数据结构、数据流、 1 和处理过程。(分数:2.00)填空项 1:_42.注释说明了程序的功能,它分为U /U注释和功能性注释。(分数:2.00)填空项 1:_43.一棵二叉树第六层(根结点为第一层)的结点数最多为个 1。(分数:2.00)填空项 1:_44.用树型结构表示实体类型及实体间联系的数据模型称为 1。(分数:2.00)填空项 1:_45.若 a=l,b=2,则表达式!(x=a)|y=b)if( c = a) printf( “% d /n“ ,c);else printf( “% d /n“ ,b);(分数:2.00)填空项 1:_48.在 C 语言中,

    17、while 和 dowhile 循环的主要区别是 1 的循环至少被执行一次。(分数:2.00)填空项 1:_49.写出下列程序的输出结果 _。main()int=0;while(n+=1);printf(“%d,“,n);printf(“%d“,n+);(分数:2.00)填空项 1:_50.以下程序的输出结果是U /U。main()char s=“ABCD“,*p;for(p=s+1;ps+4;p+)printf(“%s/n“,p);(分数:2.00)填空项 1:_51.以下程序运行后的输出结果是U /U。#include stdio.hmain( )int a,b,c;a =25;b =02

    18、5;e =0x25;prinff(“%d %d %d/n“,a,h,c);(分数:2.00)填空项 1:_52.“printf(“%d/n“,strlen(“/t/“023/xABC/n“);”语句的输出结果是_。(分数:1.50)填空项 1:_53.执行下列语句段后,x 的值是_。int*p,x;x100;px*p+50;(分数:2.00)填空项 1:_54.以下程序中函数 fun 的功能是:统计 person 所指结构体数组中所有性别(sex)为 M 的记录的个数,存入变量 n 中,并作为函数值返回。请填空:#includestdio.h#define N 3typedef structi

    19、nt num;char name10;char sex;)SS;int fun(SS person)int i,n=0;for(i=0;iN;i+)if(_=M)n+;return n;main()(SS WN=1,AA,F,2,BB,M,3,CC,M;int n;n=fun(W);printf(“n=%d/n“,n);(分数:2.00)填空项 1:_55.以下程序运行后的输出结果是_。main()char a=“123456789“,*p;int i=0;p=a;while (*p)if(i%2=0) *p=*;p+;i+;puts(a);(分数:2.00)填空项 1:_二级 C 语言笔试-

    20、460 答案解析(总分:93.50,做题时间:90 分钟)一、选择题(总题数:40,分数:64.00)1.下列叙述中正确的是A) 对长度为 n 的有序链表进行查找,最坏情况下需要的比较次数为 nB) 对长度为 n 的有序链表进行对分查找,最坏情况下需要的比较次数为(n/2)C) 对长度为 n 的有序链表进行对分查找,最坏情况下需要的比较次数为(log 2n)D) 对长度为 n 的有序链表进行对分查找,最坏情况下需要的比较次数为(nlog 2n)(分数:2.00)A. B.C.D.解析:解析 有序链表中定位元素需要通过指针逐个查找,所以对分查找的意义不大。选项 A 正确。2.若某二叉树的前序遍历

    21、访问顺序是 abdgcefh,中序遍历访问顺序是 dgbaechf,则其后序遍历的结点访问顺序是( )。A) bdgcefha B) gdbecfha C) bdgaechf D) gdbehfca(分数:1.00)A.B.C.D. 解析:解析 前序遍历的第一个结点 a 为树的根结点;中序遍历中 a 左边的结点为 a 的左子树, a 右边的结点为 a 的右子树;再分别对 a 的左右子树进行上述两步处理,直到每个结点都找到正确的位置。3.软件调试的目的是A) 发现错误 B) 改正错误C) 改善软件的性能 D) 验证软件的正确性(分数:2.00)A.B. C.D.解析:解析 软件测试与软件调试是两

    22、个不同的概念:软件测试的目的是发现错误,而软件调试的目的是发现错误导致程序失效的原因,并修改程序以修正错误,调试是测试之后的活动。4.下列叙述中正确的是 _。A) 程序设计就是编制程序 B) 程序测试必须由程序员自己去做C) 程序经调试改错后还应进行再测试 D) 程序经调度改错后不必进行再测试(分数:2.00)A.B.C. D.解析:解析 软件测试包括需求分析、结构功能模块设计、编制程序等阶段。程序的测试可以由专门的测试人员来完成。程序经调试改错后还应进行再测试。5.下列关于线性链表的描述中正确的是( )。A) 存储空间不一定连续,且各元素的存储顺序是任意的B) 存储空间不一定连续,且前件元素

    23、一定存储在后件元素的前面C) 存储空间必须连续,且各前件元素一定存储在后件元素的前面D) 存储空间必须连续,且各元素的存储顺序是任意的(分数:2.00)A. B.C.D.解析:解析 线性表的链式存储结构中的结点空间是动态生成的,它们在内存中的地址可能是连续的,也可能是不连续的。6.软件生命周期可分为定义阶段、开发阶段和维护阶段。详细设计属于A) 定义阶段 B) 开发阶段 C) 维护阶段 D) 上述 3 个阶段(分数:2.00)A.B. C.D.解析:解析 软件生命周期由软件定义、软件开发和软件维护 3 个时期组成。软件定义可分为软件系统的可行性研究和需求分析两个阶段。软件开发时期由 5 个阶段

    24、组成:概要设计、详细设计、编写代码、组装测试和确认测试。软件维护时期的主要任务是使软件持久地满足用户的需要。7.下列选项中不属于结构化程序设计方法的是_。A) 自顶向下 B) 逐步求精C) 模块化 D) 可复用(分数:2.00)A.B.C.D. 解析:解析 结构化程序设计方法的主要原则可以概括为:自顶向下,逐步求精,模块化,限制使用goto 语句。8.有以下程序:main()char a,b,c,d;scanf(“%c,%c,%d,%d“,a,printf(“%c,%c,%c,%c/n“,a,b,c,d);若运行时从键盘上输入:6,5,65,66回车,则输出结果是 _。A) 6,5,A,B B

    25、) 6,5,65,66 C) 6,5,6,5 D) 6,5,6,6(分数:2.00)A. B.C.D.解析:解析 char 型数据类型以%d 的形式输入时,输入的是 ASCII 值。65 是字符 A 的 ASCII 码值,66是字符 B 的 ASCII 值。9.有三个关系 R,S 和 T 如下:(分数:1.00)A.B.C.D. 解析:解析 关系的并运算是指由结构相同的两个关系合并,形成一个新的关系,其中包含两个关系中的所有元素。由题可以看出,T 是 R 和 S 的并运算得到的。10.以下叙述中正确的是_。A) 用 C 语言实现的算法必须要有输入和输出操作B) 用 C 语言实现的算法可以没有输

    26、出但必须要有输入C) 用 C 语言程序实现的算法可以没有输入但必须要有输出D) 用 C 语言程序实现的算法可以既没有输入也没有输出(分数:1.00)A.B.C. D.解析:解析 一个算法应该具有以下 5 个特性:有穷性、确定性、可行性、有零个或多个输入、有一个或多个输出。因此一个算法可以没有输入(程序的功能确定),但必须要有输出,没有输出的算法是没有意义的。11.以下选项中与 if(a=1)a+;else a=b;语句功能不同的语句是( )。 A) switch(a) ease 0:a=b;break; default:a+; B) switch(a=1) case 0:a+: default

    27、:a=b; C) switch(a) default:a=b;break; case 1:a+; D) a=(a=1)?(a+):b(分数:1.00)A.B. C.D.解析:解析 if else 语句的含义是,如果变量 a 的值等于 1,变量 a 的值加 1,否则,则把变量 b 的值赋给变量 a。在本题的 4 个选项中,与其含义不同的是选项 B),因为没有 break 语句,当 a=1 的时候,会顺序执行两条语句,最终结果是将 b 的值赋给 a。12.下列程序的输出结果是( )。main()int a=1,b=2;printf(“%d,%d/n“,-a,+b);A) 1,2 B) 1,3 C)

    28、 0,2 D) 0,3(分数:1.00)A.B.C.D. 解析:解析 本题主要考查自加(+)、自减(-)运算符的使用。“+i,-i”在使用 i 之前,先使 i 的值加 1 或者减 1,然后再使用 i 此时的值参与运算;“i+,i-”是在使用 i 参与表达式运算之后,再使 i的值加 1 或者减 1。本题中-a 和+b 是先执行 a 减 1 和 b 加 1 操作,再输出表达式的值。13.请选出可用作 C 语言用户标识符的是( )。A) void,define,WORD B) a3_b3,_123,IFC) FOR,-abc,Case D) 2a,Do,$izeof(分数:1.00)A.B. C.D

    29、.解析:解析 C 语言规定用户标识符由字母、数字和下划线组成,且第一个字符必须是字母或下划线,可见选项 C) ,D) 是错误的;此外,C 语言不允许用户将关键字作为标识符,而选项 A) 中的 void 是 C语言的关键字。14.下列叙述中错误的是_。A) 计算机不能直接执行用 C 语言编写的源程序B) C 程序经 C 编译后,生成后缀为.obj 的文件是一个二进制文件C) 后缀为.obj 的文件,经连接程序生成后缀为.exe 的文件是一个二进制文件D) 后缀为.obj 和.exe 的二进制文件都可以直接运行(分数:2.00)A.B.C.D. 解析:解析 C 语言是一种“高级语言”。由高级语言编

    30、写的程序称为“源程序”。C 语言源程序经过编译后生成一个后缀为.obj 的二进制文件(称为目标文件),最后还要由“连接程序”(Link)软件把此.obj文件与 C 语言提供的各种库函数连接起来,生成一个后缀为.obj 的可执行文件。在 DOS 状态下,只需打人此文件的名字(不必打入后缀.obj)就可以运行。后缀为.obj 的文件不可以直接执行。15.若变量已正确定义并赋值,以下符合 C 语言语法的表达式是A) a:=b+1 B) a=b=c+2 C) int 18.5%3 D) a=a+7=c+b(分数:1.00)A.B. C.D.解析:解析 选项 A) 中包含一个不合法的运算符“:”;选项

    31、C) 应改为(int)18.5%3;选项 D) 可理解为两个表达式:a+7c+b 和 aa+7,其中第一个是错的,因为 C 语言规定赋值号的左边只能是单个变量,不能是表达式或常量等。因此,正确答案是选项 B) ,它实际上相当于 a(bc+2),进而可分解为两个表达式:bc+2 和 ab。16.设有以下语句:int a=1,b=2,c;c=a(b2);执行后,c 的值为( )。A6 B7 C8 D9(分数:1.00)A.B.C.D. 解析:解析 本题考查两个知识点,按位异或和左移。把 b 左移 2 位化成二进制 c=a(b2)=a(0000102)=a001000=0000001001000=9

    32、,故选择 D。17.在 16 位编译系统上,若有定义 int a=10,20,30,*p=if(aB) a=b;c=a;if(c!=A) c=b;printf(“%d,%d,%d/n“,a,b,C) ;其输出结果是( )。A) 程序段有语法错 B) 3,5,3C) 3,5,5 D) 3,5,7(分数:2.00)A.B. C.D.解析:解析 本题考查的是程序结构设计中 if 语句的应用,当 if 判断条件成立时就执行其后的相关语句,否则不执行,本题中第一个 if 条件不成立,故不执行“a=b”,接着执行“c=a”,此时第二个 if 条件也不成立,故不执行其后语句,最终 c 的值为 3。19.若有

    33、定义 float x=1.5;int a=1,b=3,c=2;,则正确的 switch 语句是A) swimh(x)case 1.0:printf(“*/n“);case 2.0:printf(“*/n“);B) switch(int)x);case 1:printf(“*/n“);case 2:printf(“*/n“);C) switch(a+b)case 1:pfintf(“*/n“);case 2+1:pfintf(“*/n“);D) switch(a-I-b)case 1:pfintf(“*/n“);case c:printf(“*/n“);(分数:1.00)A.B.C. D.解析:

    34、解析 C 语言中,switch 语句专用于实现多分支结构程序,其特点是各分支清晰且直观。switch后面括号中可以是任何表达式,取其整数部分与各常量表达式进行比较。常量表达式中不能出现变量,且类型必须是整型、字符型或枚举型,各常量表达式各不相同。20.有以下程序#include stdio.hmain()int a=1,2,3,4,y,*p=S+=2;printf(“%d/n“,s0);执行后的结果是( )。A) 输出字符 a 的 ASCII 码 B) 输出字符 c 的 ASCII 码C) 输出字符 c D) 程序出错(分数:2.00)A.B.C.D. 解析:解析 因为字符数组 s中的数组名

    35、s 表示的是一个地址常量。所以语句“s+=2;”不能将指针在当前位置的基础上再向后移动两位。因而程序编译时出错。22.有以下程序 #includestdio.h intfun(int a,int b) if(b=0)return a; else return(fun(-a,-b); main() pdntf(“%d/n“,fun(4,2); 程序的运行结果是( )。 A) 1 B) 2 C) 3 D) 4(分数:2.00)A.B. C.D.解析:解析 由程序可知,函数 fun(int a,int b)是一个递归函数。所以当主函数中调用 fun(4,2)叶,其执行过程如下:fun(4,2)-fu

    36、n(3,1)-fun(2,0),其返回值为 2。所以正确答案为选项 B)。23.下列字符数组初始化语句中,不正确的是( )。A) charcgoodmorning; B) char,c20“goodmoming“;C) charca,b,c,d; D) charc“goodmoming“;(分数:2.00)A. B.C.D.解析:解析 本题考查两个概念:用单引号括起来的一个字符常量只能存放一个字符;C 语言中没有字符串变量,只能用字符数组来存储字符串。选项 A)中一个单引号内放了若干个字符是错误的;选项 B)和选项 D)中将一个字符串赋值给一个字符数组是允许的。24.以下程序段给数组所有的元素

    37、输入数据,请选择正确答案填入。#includestdio.hmain()int a10=0;while(i10)scan(“%d“_);:A) a+(i+) B) A) * printf(“%c/n“,*(pc+5);程序运行后的输出结果是_。(A) z(B) 0(C) 元素 ch5地址(D) 字符 y 的地址(分数:2.00)A. B.C.D.解析:28.设已执行预编译命令#includestring.h,以下程序段的输出结果是char s=“ an apple“ ;printf(“%d/n“,strlen(s);A) 7 B) 8 C) 9 D) 10(分数:2.00)A.B. C.D.解

    38、析:命题目的 考查了测字符串长度函数 strlen。解题要点 如果一个字符数组中存放一个字符串,则函数 strlen 的值为“/0”之前的全部字符个数,也包括空格在内。考点链接 字符串处理函数的使用。29.以下程序的输出结果是( )。#include stdio.hmain()int n=4;while(n-) printf(“%d “,-n);A) 2 0 B) 3 1 C) 3 2 1 D) 2 1 0(分数:1.00)A. B.C.D.解析:解析 n-是先使用后自减,-n 是先自减后使用。n=4 时,执行 n-后,n 变为 3,执行-n 后,n 变为 2,所以,第一次输出时,n 为 2;

    39、同上过程,第二次输出时,n 为 0。30.以下程序的主函数中调用了在其前面定义的 fun 函数#include stdio.hmain()double a15,k;k=fun(a);则以下选项中错误的 fun 函数受部是( )。A)double fun(double a15) B)double fun(double *a)C)double fun(double a) D)double fun(double a)(分数:2.00)A.B.C.D. 解析:解析 由函数 fun 在主函数中的调用形式可以看出,函数 fun()的函数返回值类型为 double,形参为一维数组或指针变量。31.下列的程序

    40、用来输出两个字符串前 7 个字符中对应相等的字符及其位置号,程序空白处应该填写的是( )。#includestdiohmain()char s1=“chinese“,s2=“japnese“;int i;for(i=0;s1i!=/0 ,则数组 x 在内存中所占字节数是_。A) 3 B) 6 C) 10 D) 20(分数:2.00)A.B.C.D. 解析:评析 当数组定义后,系统就为其分配内存空间,而不论其中有没有内容。因此,本题中数组x10不论是否为其元素初始化,它所分配的存储空间仍为 2*10=20 个字节。38.已知一个文件中存放若干工人档案记录,其数据结构如下: struct a ch

    41、ar number100; int age; float p6; ; 定义一个数组:struct a number10; 假定文件已正确打开,不能正确地从文件中读入 10 名工人数据到数组 b 中的是( )。 A) fread(b,sizeof(struct a),10,fp);B) for(i=0;i10;i+) fread(bi,sizeof(struct a),1,fp); C) for(i=0;i10;i+)fread(b+i,sizeof(struct a),1,fp);D) for(i=0;i5;i+=2) fread(b+i,sezeof(struct a),2,fp);(分数:

    42、2.00)A.B. C.D.解析:解析 数据块输入/输出函数的调用格式为:fread(buffer,size,count,fp),其中:“buffer”是一个指针,对于 fread 来说,它是读入数据的存放地址。“size”是要读写的字节数:“count”是要进行读写多少个 size 字节的数据项;“fp”是指文件型指针。选项 B)中 bi是一个数组,不是指针,需改为 int i, k, n;fp=fopen(“data.dat“, “w+“);for(i=1; i6; i+)fprintf(fp,“%d “,i);if(i%3=0) fprintf(fp,“/n“);rewind(fp);f

    43、scanf(fp, “%d%d“, k, n); printf(“%d %d/n“, k, n);fclose(fp);程序运行后的输出结果是_。(A) 0 0(B) 123 45(C) 1 4(D) 1 2(分数:2.00)A.B.C.D. 解析:40.下列叙述正确的是( )。AC 语言中的文件是流式文件,因此只能顺序存取数据B打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖C在一个程序中当对文件进了写操作后,必须先关闭该文件然后再打开,才能读到第 1 个数据D当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失(分数:1.00)A.B.C.D. 解析:解析

    44、 在 C 语言中,有两种对文件的存取方式:顺序存取和直接存取。如果以“a”的方式对已打开的文件进行写操作后,则原文件中内容将保存,新的数据写在原有内容之后。如果以“a+”的方式为读和写操作而打开文件,则可以对文件进行读/写,而且在读和写操作之间不必关闭文件。可以从头开始读。当对文件的读(写)操作完成之后,必须将它关闭。二、填空题(总题数:15,分数:29.50)41.数据字典是各类数据描述的集合,它通常包括 5 个部分,即数据项、数据结构、数据流、 1 和处理过程。(分数:2.00)填空项 1:_ (正确答案:数据存储)解析:解析 数据字典是各类数据描述的集合,它通常包括 5 个部分,即数据项

    45、,是数据的最小单位;数据结构,是若干数据项有意义的集合;数据流,可以是数据项,也可以是数据结构,表示某一处理过程的输入或输出;数据存储,处理过程中存取的数据,常常是手工凭证、手工文档或计算机文件。42.注释说明了程序的功能,它分为U /U注释和功能性注释。(分数:2.00)填空项 1:_ (正确答案:序言性)解析:评析 注释一般分为序言性注释和功能性注释。43.一棵二叉树第六层(根结点为第一层)的结点数最多为个 1。(分数:2.00)填空项 1:_ (正确答案:32)解析:44.用树型结构表示实体类型及实体间联系的数据模型称为 1。(分数:2.00)填空项 1:_ (正确答案:层次模型)解析:

    46、解析 在数据模型中,用二维表表示关系模型,用有向图表示网状模型,用树型结构表示层次模型。45.若 a=l,b=2,则表达式!(x=a)|y=b)if( c = a) printf( “% d /n“ ,c);else printf( “% d /n“ ,b);(分数:2.00)填空项 1:_ (正确答案:1)解析:解析 该程序要注意的是 if 语句的判断条件“c=a”是赋值,而不是“c=a”。由于 a= 1,故条件 c=a 使 c 的值为 1(真),所以输出 c 的值 1。48.在 C 语言中,while 和 dowhile 循环的主要区别是 1 的循环至少被执行一次。(分数:2.00)填空项 1:_ (正确答案:dowhile)解析:解析 考查 while 和 dowhile 循环的主要区别。while 循环的控制出现在循环体之前,只有当while 后面的表达式的值为非零时,才可能执行循环体;在 dowhile 构成的循环体中,总是先执行一次循环体,然后再求表达式的值,因此无论表达式的值是否为零,循环体至少要被执行一次。49.写出下列程序的输出结果 _。main()int=0;while(n+=1);printf(“%d,“,n);printf(“%d“,n+);(分数:2.00)填空项 1:_ (正确答案:3


    注意事项

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




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

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

    收起
    展开