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

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

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

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

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

    1、二级 C语言笔试-67 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:70.00)1.已知函数的调用形式为 fread(buf,size,count,fp),参数 buf的含义是(分数:2.00)A.一个整型变量,代表要读入的数据项总数B.一个文件指针,指向要读的文件C.一个指针;指向要读入数据的存放地址D.一个存储区,存放要读的数据项2.有以下程序#includestring.hmain()char p=a,b,c,q10=a,b,c;printf(“%d%d/n“,strlen(p),strlen(q);以下叙述中正确的是(分数:2.00)A.在给

    2、p和 q数组置初值时,系统会自动添加字符串结束符,故输出的长度都为 3B.由于 p数组中没有字符串结束符,长度不能确定,但 q数组中字符串长度为 3C.由于 q数组中没有字符串结束符,长度不能确定,但 p数组中字符串长度为 3D.由于 p和 q数组中都没有字符串结束符,故长度都不能确定3.已知#int t=0;while(t=1)则以下叙述正确的是(分数:2.00)A.循环控制表达式的值为 0B.循环控制表达式的值为 1C.循环控制表达式不合法D.以上说法都不对4.当变量 c的值不为 2、4、6 时,值也为“真”的表达式是(分数:2.00)A.(c=2)|(c=4)|(c=6)B.(c=2 j

    3、+=2)s=10*s+pij-0;printf(“%d/n“,s);该程序的输出结果是(分数:1.00)A.69825B.63825C.6385D.69382513.若有条件表达式(exp)?a+:b-,则以下表达式中能完全等价于表达式(exp)的是(分数:1.00)A.(exp=0)B.(exp!=0)C.(exp=1)D.(exp!=1)14.对长度为 n的线性表排序,在最坏情况下,比较次数不是 n(n-1)/2的排序方法是(分数:1.00)A.快速排序B.冒泡排序C.直接插入排序D.堆排序15.若变量均已正确定义并赋值,以下合法的 C语言赋值语句是(分数:1.00)A.x=y=5;B.x

    4、=n%2.5;C.x+n=i;D.x=5=4+1;16.下面程序段的运行结果是char*s=“abcde“;s+=2;printf(“%d“,s);(分数:1.00)A.cdeB.字符cC.字符c的地址D.无确定的输出结果17.需求分析阶段的任务是确定(分数:1.00)A.软件开发方法B.软件开发工具C.软件开发费用D.软件系统功能18.栈底至栈顶依次存放元素 A、B、C、D,在第五个元素 E入栈前,栈中元素可以出栈,则出栈序列可能是(分数:1.00)A.ABCEDB.DCBEAC.DBCEAD.CDABE19.关系表中的每一横行称为一个(分数:1.00)A.元组B.字段C.属性D.码20.程

    5、序流程图中带有箭头的线段表示的是(分数:1.00)A.图元关系B.数据流C.控制流D.调用关系21.若有以下定义:struct linkint data;strnct link *next;a,b,c,*p,*q;且变量 a和 b之间已有如下图所示的链表结构:(分数:2.00)A.B.C.D.22.下列有关数据库的描述,正确的是(分数:2.00)A.数据处理是将信息转化为数据的过程B.数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变C.关系中的每一列称为元组,一个元组就是一个字段D.如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字

    6、23.以下叙述中错误的是(分数:2.00)A.在程序中凡是以“#”开始的语句行都是预处理命令行B.预处理命令行的最后不能以分号表示结束C.#define MAX是合法的宏定义命令行D.C程序对预处理命令行的处理是在程序执行的过程中进行的24.将 E-R图转换到关系模式时,实体与联系都可以表示成(分数:2.00)A.属性B.关系C.键D.域25.以下叙述中错误的是(分数:2.00)A.gets函数用于从终端读入字符串B.getchar函数用于从磁盘文件读入字符C.fputs函数用于把字符串输出到文件D.fwrite函数用于以二进制形式输出数据到文件26.以下选项中,不能作为合法常量的是(分数:2

    7、.00)A.1.234e04B.1.234e0.4C.1.234e+4D.1.234e027.变量 a中的数据用二进制表示的形式是 01011101,变量 b中的数据用二进制表示的形式是 11110000。若要求将 a的高位取反,低 4位不变,所要执行的运算是(分数:2.00)A.abB.a|bC.ap=printf(“%d/n“,a12);(分数:2.00)A.3B.6C.9D.随机数32.有以下程序段char ch; int k;ch=a; k=12;printf(“%c,%d,“,ch,ch,k); printf(“k=%d/n“,k);已知字符 a的 ASCII码值为 97,则执行上述

    8、程序段后输出结果是(分数:2.00)A.因变量类型与格式描述符的类型不匹配输出无定值B.输出项与格式描述符个数不符,输出为零值或不定值C.a,97,12k=12D.a,97,k=1233.下面程序段中,输出*的个数是char *s=“/ta/018bc“;for(;*s!=/0;s+)printf(“*“);(分数:2.00)A.9B.5C.6D.734.若有语句:char*line5;,以下叙述中正确的是(分数:2.00)A.定义 line是一个数组,每个数组元素是一个基类型为 char的指针变量B.定义 line是一个指针变量,该变量可以指向一个长度为 5的字符型数组C.定义 line是一

    9、个指针数组,语句中的。号称为间址运算符D.定义 line是一个指向字符型函数的指针35.以下不正确的叙述是(分数:2.00)A.在 C程序中,逗号运算符的优先级最低B.在 C程序中,APH 和 aph是两个不同的变量C.若 a和 b类型相同,在计算了赋值表达式 a=b后,b 中的值将放入 a中,而 b中的值不变D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值36.下面判断正确的是(分数:2.00)A.char*a=“china“;等价于 char*a;*a=“china“;B.char str5=“china“;等价于 char str=“china“;C.c

    10、har *s=“china“;等价于 char *s;s=“china“;D.char c4=“abc“,d4=“abc“;等价于 char c4=d4=“abc“;37.算法的时间复杂度是指(分数:2.00)A.执行算法程序所需要的时间B.算法程序的长度C.算法执行过程中所需要的基本运算次数D.算法程序中的指令条数38.有定义语句:char s10;,若要从终端给 s输入 5个字符,错误的输入语句是(分数:2.00)A.gets( j+=2)s=10*s+pij-0;printf(“%d/n“,s);该程序的输出结果是(分数:1.00)A.69825B.63825C.6385 D.69382

    11、5解析:解析 该题稍微难一点。主要要搞清楚以下几点:定义了一个指针数组 char *p2后,程序中第一个循环 for(i=0;i2;i+)pichi;的作用,是使指针数组的 p0元素(它本身是一个指针)指向了二维数组 ch的第一行字符串,并使指针数组的 p1元素指向二维数组 ch的第二行字符串。这样,就使指针数组 p和二维数组 ch建立起了一种对应关系,以后对二维数组 ch的某个元素的引用就有两种等价的形式:chij或 pij。对二维数组 ch的初始化,使其第一行 ch0中存入了字符串“6937”,第二行 ch1中的内容为字符串“8254”。程序中第二个循环中的循环体 ss*10+pi j-0

    12、;的功能是这样的,每执行一次,将 s中的值乘以 10(也即将 s中的数值整体向左移动一位,并在空出来的个位上添一个 0),再将当前 pii中的字符量转换为相应的数字,然后把这个数字加到 s的个位上。注意到内启循环的循环条件 pij/0是指 pij中的字符只要不是字符串结束标志/0就继续循环。语句 j+2;是使下标 j每次增加 2,也即一个隔一个地从 pi所指向的字符串中取出字符。经过上述解析后,不难看出,该程序首先从 p0所指向的字符串“6937”中一个隔一个地取出字符,分别是“6”和“3”,然后从 p1)所指向的字符串“8254”中一个隔一个地取出字符,分别是“8”和“5”,同时经过转换和相

    13、加运算后,结果 s中的值应该是 6385。13.若有条件表达式(exp)?a+:b-,则以下表达式中能完全等价于表达式(exp)的是(分数:1.00)A.(exp=0)B.(exp!=0) C.(exp=1)D.(exp!=1)解析:解析 条件运算符要求有 3个操作对象,称三日(元)运算符,它是 C语言中唯一的一个三目运算符。条件表达式的一般形式为:表达式 17表达式 2:表达式 3。其求解顺序是:先求解表达式 1,若为非 0(真)则求解表达式 2,此时表达式 2的值就作为整个条件表达式的值。若表达式 1的值为 0(假),则求解表达式 3,表达式 3的值就是整个条件表达式的值,注意+、-的用法

    14、。14.对长度为 n的线性表排序,在最坏情况下,比较次数不是 n(n-1)/2的排序方法是(分数:1.00)A.快速排序B.冒泡排序C.直接插入排序D.堆排序 解析:解析 在最坏情况下,快速排序、冒泡排序和直接插入排序需要的比较次数都为 n(n-1)/2,堆排序需要的比较次数为 nlog2n。15.若变量均已正确定义并赋值,以下合法的 C语言赋值语句是(分数:1.00)A.x=y=5; B.x=n%2.5;C.x+n=i;D.x=5=4+1;解析:解析 赋值运算符左侧的操作数必须是一个变量,而不能是表达式或者常量,选项 C) 和 D) 错误。“%”运算符两侧都应当是整型数据,选项 B) 错误。

    15、16.下面程序段的运行结果是char*s=“abcde“;s+=2;printf(“%d“,s);(分数:1.00)A.cdeB.字符cC.字符c的地址 D.无确定的输出结果解析:解析 对于字符串指针,其保留的是整个串的首地址,即第一个字符的起始地址;当该指针做算术运算时,就是该指针根据其类型向后移动相应的存储空间。17.需求分析阶段的任务是确定(分数:1.00)A.软件开发方法B.软件开发工具C.软件开发费用D.软件系统功能 解析:解析 需求分析是软件定义时期的最后一个阶段,它的基本任务就是详细调查现实世界要处理的对象(组织、部门、企业等),充分了解原系统的工作概况,明确用户的各种需求,然后

    16、在此基础上确定新系统的功能。选项 A) 软件开发方法是在总体设计阶段需完成的任务;选项 B) 软件开发工具是在实现阶段需完成的任务;选项 C) 软件开发费用是在可行性研究阶段需完成的任务。18.栈底至栈顶依次存放元素 A、B、C、D,在第五个元素 E入栈前,栈中元素可以出栈,则出栈序列可能是(分数:1.00)A.ABCEDB.DCBEA C.DBCEAD.CDABE解析:解析 栈操作原则上“后进先出”,栈底至栈顶依次存放元素 A、B、C、D,则表明这 4个元素中D是最后进栈, B、C 处于中间,A 最早进栈,所以出栈时一定是先出 D,再出 C,最后出 A。19.关系表中的每一横行称为一个(分数

    17、:1.00)A.元组 B.字段C.属性D.码解析:解析 关系表中,每一行称为一个元组,对应表中的一条记录;每一列称为一个属性,对应表中的一个字段;在二维表中凡能唯一标识元组的最小属性集称为该表的键或码。20.程序流程图中带有箭头的线段表示的是(分数:1.00)A.图元关系B.数据流C.控制流 D.调用关系解析:解析 程序流程图是人们对解决问题的方法、思路或算法的一种图形方式的描述。其中,图框表示各种操作的类型,图框中的文字和符号表示操作的内容;流程线表示操作的先后次序。带箭头的线段在数据流程图中表示数据流;带箭头的线段在程序流程图中表示控制流。题中给出的选项中,在图元之间用带有箭头的线段表示图

    18、元关系。在模块之间用带有箭头的线段表示调用关系。21.若有以下定义:struct linkint data;strnct link *next;a,b,c,*p,*q;且变量 a和 b之间已有如下图所示的链表结构:(分数:2.00)A.B.C.D. 解析:解析 本题考查链表的数据结构,必须利用指针变量才能实现,即一个结点中应包含一个指针变量,用它存放下一结点的地址。22.下列有关数据库的描述,正确的是(分数:2.00)A.数据处理是将信息转化为数据的过程B.数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变C.关系中的每一列称为元组,一个元组就是一个字段D.如果一个关系中的属性或属

    19、性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字 解析:解析 数据处理是指将数据转换成信息的过程,故选项 A) 叙述错误;数据的物理独立性是指数据的物理结构的改变,不会影响数据库的逻辑结构,故选项 B) 叙述错误;关系中的行称为元组,对应存储文件中的记录,关系中的列称为属性,对应存储文件中的字段,故选项 C) 叙述错误。23.以下叙述中错误的是(分数:2.00)A.在程序中凡是以“#”开始的语句行都是预处理命令行B.预处理命令行的最后不能以分号表示结束C.#define MAX是合法的宏定义命令行D.C程序对预处理命令行的处理是在程序执行的过程中进行的 解析:解析 C

    20、 语言中的预处理命令以符号#开头,这些命令是在程序编译之前进行处理的,选项 D) 的描述错误。24.将 E-R图转换到关系模式时,实体与联系都可以表示成(分数:2.00)A.属性B.关系 C.键D.域解析:解析 关系数据库逻辑设计的主要工作是将 E-R图转换成指定 RDBMS中的关系模式。首先,从E-R图到关系模式的转换是比较直接的,实体与联系都可以表示成关系,E-R 图中属性也可以转换成关系的属性,实体集也可以转换成关系。25.以下叙述中错误的是(分数:2.00)A.gets函数用于从终端读入字符串B.getchar函数用于从磁盘文件读入字符 C.fputs函数用于把字符串输出到文件D.fw

    21、rite函数用于以二进制形式输出数据到文件解析:解析 getchar 函数的作用是从终端读入一个字符。26.以下选项中,不能作为合法常量的是(分数:2.00)A.1.234e04B.1.234e0.4 C.1.234e+4D.1.234e0解析:解析 C 语言的语法规定,字母 e(E)之前必须有数字,且 e(E)后面的指数必须是整数,而选项 B) 中,e(E)后面的指数是小数,所以不合法。27.变量 a中的数据用二进制表示的形式是 01011101,变量 b中的数据用二进制表示的形式是 11110000。若要求将 a的高位取反,低 4位不变,所要执行的运算是(分数:2.00)A.ab B.a|

    22、bC.ap=printf(“%d/n“,a12);(分数:2.00)A.3B.6 C.9D.随机数解析:解析 本题中,a12是二维数组中的第 6个元素,对应 for循环中 i的值为 5,p55+1。32.有以下程序段char ch; int k;ch=a; k=12;printf(“%c,%d,“,ch,ch,k); printf(“k=%d/n“,k);已知字符 a的 ASCII码值为 97,则执行上述程序段后输出结果是(分数:2.00)A.因变量类型与格式描述符的类型不匹配输出无定值B.输出项与格式描述符个数不符,输出为零值或不定值C.a,97,12k=12D.a,97,k=12 解析:解

    23、析 输出格式控制符%c 表示将变量以字符的形式输出;输出格式控制符%d 表示将变量以带符号的十进制整型数输出,所以第一个输出语句输出的结果为 a,97;第二个输出语句输出的结果为 k12。33.下面程序段中,输出*的个数是char *s=“/ta/018bc“;for(;*s!=/0;s+)printf(“*“);(分数:2.00)A.9B.5C.6 D.7解析:解析 本题中,格式符 0表示的是八进制无符号形式输出整型数(不带前导 0),字符常量在内存中占一个字节,存放的是 ACSII码代码值。C 语言规定,所有字符常量都作为整型量来处理,在计算机内部,其对应的整数值就是 ACSII字符集中该

    24、字符的序号,即&*s 中有几个字符就输出几个*。34.若有语句:char*line5;,以下叙述中正确的是(分数:2.00)A.定义 line是一个数组,每个数组元素是一个基类型为 char的指针变量 B.定义 line是一个指针变量,该变量可以指向一个长度为 5的字符型数组C.定义 line是一个指针数组,语句中的。号称为间址运算符D.定义 line是一个指向字符型函数的指针解析:解析 C 语言中比*优先级高,因此 line先与5结合,形成 line5形式,这是数组形式,它有 5个元素,然后再与 line前面的“*”结合,表示此数组是一个指针数组,每个数组元素都是一个基类型为 char的指针

    25、变量。35.以下不正确的叙述是(分数:2.00)A.在 C程序中,逗号运算符的优先级最低B.在 C程序中,APH 和 aph是两个不同的变量C.若 a和 b类型相同,在计算了赋值表达式 a=b后,b 中的值将放入 a中,而 b中的值不变D.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值 解析:解析 在 C语言所有的运算符中,逗号运算符的优先级最低。C 语言中区分大小写,所以 APH和aph是两个不同的变量。赋值表达式 ab 表示将 b的值赋给 a,而 b本身的值保持不变;通过键盘可以向计算机输入允许的任何类型的数据。选项 D) 中当从键盘输入数据时,对于整型变量

    26、可以输入整型数值和字符,对于实型变量可以输入实型数值和整型数值等。36.下面判断正确的是(分数:2.00)A.char*a=“china“;等价于 char*a;*a=“china“;B.char str5=“china“;等价于 char str=“china“;C.char *s=“china“;等价于 char *s;s=“china“; D.char c4=“abc“,d4=“abc“;等价于 char c4=d4=“abc“;解析:解析 选项 A) char *a;*a“china”应改为 achina;,选项 B) 应该是 char str6;D) 项表述方法有错误。37.算法的时

    27、间复杂度是指(分数:2.00)A.执行算法程序所需要的时间B.算法程序的长度C.算法执行过程中所需要的基本运算次数 D.算法程序中的指令条数解析:解析 算法的复杂度主要包括算法的时间复杂度和空间复杂度。所谓算法的时间复杂度是指执行算法所需要的计算工作量,即算法执行过程中所需要的基本运算的次数;算法的空间复杂度一般是指执行这个算法所需要的内存空间。38.有定义语句:char s10;,若要从终端给 s输入 5个字符,错误的输入语句是(分数:2.00)A.gets(&s0);B.scanf(“%s“,s+1);C.gets(s);D.scanf(“%s“,s1); 解析:解析 在格式输入中,要求给

    28、出的是编译的地址,而 D) 答案中给出的 s1是一个值的表达式。39.若有以下说明和定义union dtint a;char b;double c;data;以下叙述中错误的是(分数:2.00)A.data的每个成员起始地址都相同B.变量 data所占内存字节数与成员 c所占字节数相等C.程序段:data.a=5;printf(“%f/n“,data.c);输出结果为 5.000000D.data可以作为函数的实参 解析:解析 选项 A) ,共用体的每个成员的起始地址都相同;选项 B) ,共用体变量所占的内存长度等于最长的成员的长度;选项 C) 因为每个成员的起始地址相同,所以整型数 5以浮点

    29、型输出时为5.000000;选项 D) C语言规定,不能把共用体变量作为函数的参数。40.有以下程序#include stdiohint f(int x)int y;if(x=0|x=1) return(3);y=x*x-f(x-2);return y;main()int z;z=f(3); printf(“%d/n“,z);程序的运行结果是(分数:2.00)A.0B.9C.6 D.8解析:解析 函数 int f(int x)是一个递归函数调用,当 x的值等于 0或 1时,函数值等于 3,其他情况下 y=x2-f(x -2),所以在主函数中执行语句 zf(3)时,y3*3-f(3-2)9-f(

    30、1)9-36。二、填空题(总题数:15,分数:30.00)41.测试用例包括输入值集和 【1】 值集。(分数:2.00)填空项 1:_ (正确答案:输出)解析:解析 软件测试用例是为了有效发现软件缺陷而编写的包含测试目的、测试步骤、期望测试结果的特定集合。正确认识和设计软件测试用例可以提高软件测试的有效性,便于测试质量的度量,增强测试过程的可管理性。软件测试用例包括:输入值集和输出值集。测试用例是软件测试的核心。42.某二叉树中度为 2的结点有 18个,则该二叉树中有 【2】 个叶子结点。(分数:2.00)填空项 1:_ (正确答案:19)解析:解析 在任意一棵二叉树中,度为 0的结点(即叶子

    31、结点)总是比度为 2的结点多一个。43.数据结构分为逻辑结构与存储结构,线性链表属于 【3】 。(分数:2.00)填空项 1:_ (正确答案:存储结构)解析:解析 数据的逻辑结构是指反映数据元素之间逻辑关系的数据结构;数据的存储结构是指数据的逻辑结构在计算机存储空间中的存放形式。在数据的存储结构中,不仅要存放各数据元素的信息,还需要存放各数据元素之间前后件关系的信息。44.在关系模型中,把数据看成一个二维表,每一个二维表称为一个 【4】 。(分数:2.00)填空项 1:_ (正确答案:关系)解析:解析 在关系模型中,把数据看成一个二维表,每一个二维表称为一个关系。表中的每一列称为一个属性,相当

    32、于记录中的一个数据项,对属性的命名称为属性名;表中的一行称为一个元组,相当于记录值。45.数据库设计分为以下 6个设计阶段:需求分析阶段、 【5】 、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。(分数:2.00)填空项 1:_ (正确答案:概念设计阶段)解析:解析 数据库设计分为以下 6个设计阶段:需求分析阶段、概念设计阶段、逻辑设计阶段、物理设计阶段、实施阶段及数据库运行和维护阶段。46.以下程序的输出结果是 【6】 。main()char c=z;printf(“%c“,c-25);(分数:2.00)填空项 1:_ (正确答案:a)解析:解析 “z”的 ASCII码值为 122,

    33、经过 c-25运算后得 97,以字符形式输出是 a。47.函数 fun的返回值是 【7】 。fun(char *a,char *b)int num=0,n=0;while(*(a+num)!=/0)num+;while(bn) *(a+num)=bn;num+;n+;return num;(分数:2.00)填空项 1:_ (正确答案:字符串 a和 b的长度之和)解析:解析 本题首先通过第一个 while循环计算字符串 a的长度,再通过第二个循环,将字符串 a和b相连,最后返回连接后的总长度。48.下列程序的输出结果是 【8】 。main()int i;for(i=1;i+1;i+)if(i4)

    34、printf(“%d/n“,i);break;printf(“%d/n“,i+);(分数:2.00)填空项 1:_ (正确答案:135)解析:解析 本题考查了 for循环语句的使用,break 语句用在本题中是结束 for循环直接跳出循环体外。当 i1 时,因为 if语句条件不满足,所以直接执行 printf(“%d/n“,i+);输出 1,同时 i自加1;执行第二次 for循环时,i=3;同样的 if语句条件不满足,所以直接执行 printf(“%d/n“,i+);输出 3,同时 i自加 1;执行第三次 for循环时,i5,if 语句条件满足,所以执行 printf(“%d/n“,i),输出

    35、 5,然后 break语句跳出了 for循环。49.以下程序的运行结果是 【9】 。#include stdiohmain() 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);(分数:2.00)填空项 1:_ (正确答案:a2,b1)解析:解析 本题考查了 switch结构的内容。C 语言中,程序执行完一个 case标号的内容后,如果没有 break语句,控制结构会转

    36、移到下一个 case继续执行,因为 case常量表达式只是起语句标号作用,并不是在该处进行条件判断。本题程序在执行完内部 switch结构后,继续执行了外部 switch结构的 case 2分支,最后 a和 b的值分别为 2和 1。50.以下程序的输出结果是 【10】 。#include stdiohvoid swap(int *a, int *b)int *t;t=a; a=b; b=t;main()int i=3,j=5,*p=&i,*q=&j;swap(p,q); printf(“%d %d/n“,*p,*q);(分数:2.00)填空项 1:_ (正确答案:3 5)解析:解析 函数 sw

    37、ap(int *a,int *b)的功能是实现*a 和*b 中两个数据的交换,在主函数中调用swap(p,q)后,形参指针变量 a和 b分别指向 i和 j,在 swap(int *a,int *b)执行完后,指针变量 a和 b分别指向 j和 i,而指针变量 p,q 所指向变量的值没有发生变化,所以输出结果为 3 5。51.函数 my_cmp()的功能是比较字符串 s和 t的大小,当 s等于 t时返回 0,否则返回 s和 t的第一个不同字符的 ASCII码差值,即 st 时返回正值,当 st 时返回负值。请填空。my_cmp(char *s,char *t)while(*s=*t)if(*s=/

    38、0)return 0;+s; +t;return 【11】 ;(分数:2.00)填空项 1:_ (正确答案:*s-*t)解析:解析 两字符串大小比较必须从它们的首字符开始,在对应字符相等情况下循环,直至不相等结束。相等时,若字符串已到了字符串的结束标记符,则两字符串相同,函数返回。值;如还有后继字符,则准备比较下一对字符。对应字符不相同,循环结束。循环结束时,就以两个当前字符的差返回,所以在空框处应填入*s-*t,保证在 st 时,返回正值,当 st 时,返回负值。52.以下程序的输出结果是 【12】 。float fun(int x,int y)return(x+y);main()int a

    39、=2,b=5,c=8;printf(“%3.0f/n“,fun(int)fun(a+c,b),a-c);(分数:2.00)填空项 1:_ (正确答案:9)解析:解析 本题考查函数的综合知识。首先,我们可以利用强制转换类型转换运算符,将一个表达式转换成所需类型。如: (double)a 是将 a转换成 double类型;(int)(x+y)是将 x+y的值转换成整型。本题可按部就班地逐步运算:fun(int)fun(a+c,b),a-c)fun(int)fun(10,5),2-8)fun(int)15.000000,-6)fun(15,-6)953.以下说明语句中, 【13】 是结构体类型名。t

    40、ypedef structint n;char ch8;PER;(分数:2.00)填空项 1:_ (正确答案:PER)解析:解析 本题中,typedef 声明新的类型名 PER来代替已有的类型名,PER 代表上面指定的一个结构体类型,此时,也可以用 PER 来定义变量。54.fseek函数的正确调用形式是 【14】 。(分数:2.00)填空项 1:_ (正确答案:fseek(文件指针,位移量,起始点))解析:解析 本题考查函数 fseek的用法。fseek 函数的调用形式为:fseek(文件指针,位移量,起始点)“起始点”用 0,1 或 2代替,其中,0 代表“文件开始”;1 为“当前位置”;

    41、2 为“文件末尾”。“位移量”指以“起始点”为基点,向前移动的字节数。ANSI C 和大多数 C版本要求位移量是 long型数据,这样当文件的长度大于 64k时不致出现问题。 ANSI C 标准规定在数字的末尾加一个字母 L,就表示 long型。55.以下程序的作用是:从名为 fileadat 的文本文件中逐个读入字符并显示在屏幕上。请填空。#include stdiohmain()FILE *fp; char ch;fp=fopen( 【15】 );ch=fsetc(fp);while(! feof (fp) putchar(ch); ch=fgetc(fp); putchar(/n); fclose(fp);(分数:2.00)填空项 1:_ (正确答案:“filea.dat“,“r/)解析:解析 fopen 函数的调用方式通常为 fopen(文件名,使用文件方式)。本题中要求程序可以打开filea.dat文件,并且是要读取文件中的内容,所以空白处应当填入“fileadat“,“r“。


    注意事项

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




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

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

    收起
    展开