ImageVerifierCode 换一换
格式:DOC , 页数:22 ,大小:136.50KB ,
资源ID:1318118      下载积分:5000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-1318118.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(【计算机类职业资格】2018年计算机二级C语言模拟题4及答案解析.doc)为本站会员(testyield361)主动上传,麦多课文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文库(发送邮件至master@mydoc123.com或直接QQ联系客服),我们立即给予删除!

【计算机类职业资格】2018年计算机二级C语言模拟题4及答案解析.doc

1、2018 年计算机二级 C 语言模拟题 4 及答案解析(总分:100.00,做题时间:120 分钟)一、选择题(总题数:40,分数:40.00)1.下列数据结构中,属于非线性结构的是( )。(分数:1.00)A.循环队列B.带链队列C.二叉树D.带链栈2.下列数据结构中,能够按照“先进后出”原则存取数据的是( )。(分数:1.00)A.循环队列B.栈C.队列D.二叉树3.对于循环队列,下列叙述中正确的是( )。(分数:1.00)A.队头指针是固定不变的B.队头指针一定大于队尾指针C.队头指针一定小于队尾指针D.队头指针可以大于队尾指针,也可以小于队尾指针4.算法的空间复杂度是指( )。(分数:

2、1.00)A.算法在执行过程中所需要的计算机存储空间B.算法所处理的数据量C.算法程序中的语句或指令条数D.算法在执行过程中所需要的临时工作单元数5.软件设计中划分模块的一个准则是( )。(分数:1.00)A.低内聚低耦合B.高内聚低耦合C.低内聚高耦合D.高内聚高耦合6.下列选项中不属于结构化程序设计原则的是( )。(分数:1.00)A.可封装B.自顶向下C.模块化D.逐步求精7.软件详细设计产生的图如下:该图是( )。(分数:1.00)A.N-S 图B.PAD 图C.程序流程图D.E-R 图8.数据库管理系统是( )。(分数:1.00)A.操作系统的一部分B.在操作系统支持下的系统软件C.

3、一种编译系统D.种操作系统9.在 E-R 图中,用来表示实体联系的图形是( )(分数:1.00)A.椭圆形B.矩形C.菱形D.三角形10.有三个关系 R、S 和 T 如下:其中关系 T 由关系 R 和 S 通过某种操作得到,该操作为( )。(分数:1.00)A.选择B.投影C.交D.并11.以下关于结构化程序设计的叙述中正确的是( )。(分数:1.00)A.三种基本结构构成的程序只能解决小规模的问题B.结构化程序使用 goto 语句会很便捷C.一个结构化程序必须同时由顺序、分支、循环三种结构组成D.在 C 语言中,程序的模块化是利用函数实现的12.对于一个正常运行的 C 程序,以下叙述中正确的

4、是( )。(分数:1.00)A.程序的执行总是从 main 函数开始B.程序的执行总是从程序的第一个函数开始,在 main 函数结束C.程序的执行总是从 main 函数开始,在程序的最后一个函数中结束D.程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束13.以下选项中能表示合法常量的是( )。(分数:1.00)A.“007“B.1.5E2.0C.D.1,20014.以下定义语句中正确的是( )。(分数:1.00)A.int a=b=0;B.char A=65+1,b=bC.D.double a=0.0; b=1.1;15.若变量 x、y 已正确定义并賦值,以下符合 C 语言语法

5、的表达式是( )。(分数:1.00)A.+x,y=x-B.x+1=yC.x=x+10=x+yD.double(x)/1016.若变量已正确定义为 int 型,要通过语句 给 a 赋值 1、给 b 赋值 2、给 c 赋值 3,以 下输入形式中错误的是( )(注:代表一个空格符)。(分数:1.00)A.123B.1,2,3C.1,2,3D.1,2,317.以下不能输出字符 A 的语句是( )(注:字符 A 的 ASCII 码值为 65,字符 a 的 ASCII 码值为 97)。(分数:1.00)A.printf (“%c n“,65);B.printf (“%c n“,a-32);C.printf

6、 (“%d n“,A);D.printf (“%c n“;B-1);18.若 a 是数值类型,则逻辑表达式(a=1)ll(a!=1)的值是( )。(分数:1.00)A.a 的值不确定B.0C.2D.119.设有定义:int a=1, b=2, c=3 ;以下语句中执行效果与其他三个不同的是( )。(分数:1.00)A.if(ab) c=a;a=b;b=c;B.if(ab) c=a,a=b,b=c;C.if(ab) c=a,a=b,b=c;D.if(ab) c=a;a=b;b=c;20.有以下程序程序运行后的输出结果是( )。(分数:1.00)A.y=0B.y=-1C.y=1D.while 构成

7、无限循环21.有以下程序程序运行后的输出结果是( )。(分数:1.00)A.1*1=1 1*2=2 1*3=32*2=4 2*3=63*3=9B.1*1=1 1*2=2 1*3=32*1=2 2*2=43*1=3C.1*1=11*2=2 2*2=41*3=3 2*3=6 3*3=9D.1*1=12*1=2 2*2=43*1=3 3*2=6 3*3=922.有以下程序程序运行后的输出结果是( )。(分数:1.00)A.*7B.*3*5C.*5D.*2*623.以下叙述中错误的是( )。(分数:1.00)A.函数形参的值也可以传回给对应的实参B.函数调用可以作为一个独立的语句存在C.若函数有返回值

8、,必须通过 return 语句返回D.C 程序必须由一个或一个以上的函数组成24.有以下程序程序运行后的输出结果是( )。(分数:1.00)A.4B.2C.1D.325.有以下程序(分数:1.00)A.1, 3B.2, 3C.1, 4D.1, 226.若有定义语句:int a23, *p3;则以下语句中正确的是( )。(分数:1.00)A.p0=B.p0=a;C.p=a;D.p1=27.以下程序中函数 f 的功能是:当 flag 为 1 时,进行由小到大排序;当 flag 为 0 时,进行由大到小排序。程序运行后的输出结果是( )。(分数:1.00)A.1,2,3,4,5,6,7,8,9,10

9、,B.3,4,5,6,7,2,1,8,9,10,C.5,4,3,2,1,6,7,8,9,10,D.10,9,8,7,6,5,4,3,2,1,28.有以下程序程序运行后的输出结果是( )。(分数:1.00)A.4 3 3 2B.2 3 4 4C.1 2 3 4D.1 1 2 329.设有定义:char*c;以下选项中能够使 c 正确指向一个字符串的是( )。(分数:1.00)A.B.scanf(“%s“,c);C.c=getchar();D.*c=“string“30.若有定义语句:char s10=“123456700“;则 strlen(s)的值是( )。(分数:1.00)A.10B.8C.

10、9D.731.若有定义语句:程序运行后的输出结果是( )。(分数:1.00)A.6B.9C.11D.732.有以下程序(注:字母 A 的 ASCII 码值是 65)程序运行后的输出结果是( )。(分数:1.00)A.YTB.BTC.YED.BY33.有以下程序程序运行后的输出结果是( )。(分数:1.00)A.21B.11C.6D.12034.有以下程序程序运行后的输出结果是( )。(分数:1.00)A.C D E FB.A B E FC.A B C DD.C D A B35.以下关于 typedef 的叙述错误的是( )。(分数:1.00)A.用 typedef 为类型说明一个新名,通常可以

11、增加程序的可读性B.typedef 只是将已存在的类型用一个新的名字来代表C.用 typedef 可以为各种类型说明一个新名,但不能用来为变量说明一个新名D.用 typedef 可以增加新类型36.程序中已构成如下图所示的不带头结点的单向链表结构,指针变量 s、p、q、均已正确定义,并用于指向链表结点,指针变量 s 总是作为头指针指向链表的第一个结点。若有以下程序段q=s;s=s-next;p=s;while(p-next) p=p-next;p-next=q; q-next=NULL;该程序段实现的功能是( )。(分数:1.00)A.首结点成为尾结点B.尾结点成为首结点C.删除首结点D.删除

12、尾结点37.有以下程序程序运行后的输出结果是( )。(分数:1.00)A.143B.197C.33D.2838.若有以下程序段int r=8;printf(“%dn“,r1 );输出结果是( )。(分数:1.00)A.8B.4C.16D.239.以下叙述中错误的是( )。(分数:1.00)A.getchar 函数用于从磁盘文件读入字符B.gets 函数用于从终端读入字符串C.fputs 函数用于把字符串输出到文件D.fwrite 函数用于以二进制形式输出数据到文件40.有以下程序以上程序执行后 abc.dat 文件的内容是( )。(分数:1.00)A.ChinangB.ChinaC.China

13、BeijingD.BeijingChina二、程序填空题(总题数:1,分数:20.00)函数 fun 的功能是计算的前 n 项。若 x=2.5,函数值为:12.182340。请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也:f 得更改程序的结构!(分数:20.00)填空项 1:_三、程序改错题(总题数:1,分数:20.00)给定程序 MODI1.C 中函数 fun 的功能是:找出 100 至 n(不大于 1000)之间三位数字相等的所有整数,把这些整数放在 s 所指数组中,个数作为函数值返回。请改

14、正函数 fun 中指定部位的错误,使它能得出正确的结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!(分数:20.00)_四、程序设计题(总题数:1,分数:20.00)请编写函数 fun,其功能是:计算并输出给定 10 个数的方差:例如,给定的 10 个数为 95,0、89.0、76.0、65.0、88.0、72.0、85.0、81.0、90.0、56.0,输出为5=11.730729。注意:部分源程序在文件 PROG1.C 中。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。(分数:20.00)_2018 年计算机

15、二级 C 语言模拟题 4 答案解析(总分:100.00,做题时间:120 分钟)一、选择题(总题数:40,分数:40.00)1.下列数据结构中,属于非线性结构的是( )。(分数:1.00)A.循环队列B.带链队列C.二叉树 D.带链栈解析:树是简单的非线性结构,因此二叉树作为树的一种属于非线性结构,答案 C 正确。2.下列数据结构中,能够按照“先进后出”原则存取数据的是( )。(分数:1.00)A.循环队列B.栈 C.队列D.二叉树解析:栈是按先进后出的原则组织数据的;队列是按先进先出的原则组织数据的,因此本题答案为 B。3.对于循环队列,下列叙述中正确的是( )。(分数:1.00)A.队头指

16、针是固定不变的B.队头指针一定大于队尾指针C.队头指针一定小于队尾指针D.队头指针可以大于队尾指针,也可以小于队尾指针 解析:循环队列的队头指针与队尾指针都不是固定的,随着入队与出队操作要进行变化。因为是循环利用的队列结构,所以对头指针有时可能大于队尾指针有时也可能小于队尾指针,故本题答案为 D。4.算法的空间复杂度是指( )。(分数:1.00)A.算法在执行过程中所需要的计算机存储空间 B.算法所处理的数据量C.算法程序中的语句或指令条数D.算法在执行过程中所需要的临时工作单元数解析:算法的空间复杂度是指算法在执行过程中所需要的内存空间,因此本题答案为 A。5.软件设计中划分模块的一个准则是

17、( )。(分数:1.00)A.低内聚低耦合B.高内聚低耦合 C.低内聚高耦合D.高内聚高耦合解析:一般较优秀的软件设计应尽量做到高内聚、低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性,因此本题答案为 B。6.下列选项中不属于结构化程序设计原则的是( )。(分数:1.00)A.可封装 B.自顶向下C.模块化D.逐步求精解析:结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用 goto 语句,因此本题答案为 A。7.软件详细设计产生的图如下:该图是( )。(分数:1.00)A.N-S 图B.PAD 图C.程序流程图 D.E-R 图解析:N-S 图提出了用方框

18、图来代替传统的程序流程图,因此 A 不对。PAD 图是问题分析图,它是继承程序流程图和方框图之后提出的又一种主要用于描述软件详细设计的图形表示工具, 因此 B 不对。E-R 图是数据库中用于表示 E-R 模型的图示工具,因此 D 不对。根据图中所示表示方法可以得知该图是进行软件详细设计时使用的程序流程图,因此本题答案为 C。8.数据库管理系统是( )。(分数:1.00)A.操作系统的一部分B.在操作系统支持下的系统软件 C.一种编译系统D.种操作系统解析:数据库管理系统是数据库的机构,它是一种系统软件,负责数据库中的数 据组织、数据操纵、数据维护、控制及保护和数据服务等,是一种在操作系统支持下

19、的系统软件,因此本题 答案为 B。9.在 E-R 图中,用来表示实体联系的图形是( )(分数:1.00)A.椭圆形B.矩形C.菱形 D.三角形解析:在 E-R 图中实体集用矩形表示,属性用椭圆表示,联系用菱形表示,因此 选择 C。10.有三个关系 R、S 和 T 如下:其中关系 T 由关系 R 和 S 通过某种操作得到,该操作为( )。(分数:1.00)A.选择B.投影C.交D.并 解析:在关系 T 中包含了关系 R 与 S 中的所有元组,所以进行的是并的运算,答案为 D。11.以下关于结构化程序设计的叙述中正确的是( )。(分数:1.00)A.三种基本结构构成的程序只能解决小规模的问题B.结

20、构化程序使用 goto 语句会很便捷C.一个结构化程序必须同时由顺序、分支、循环三种结构组成D.在 C 语言中,程序的模块化是利用函数实现的 解析:使用 goto 语句会使程序混乱,所以 B 错误;一个结构化程序没有必要同时由顺序、分支、循环三种结构组成,所以 C 错误;使用三种基本结构构成的程序可以解决任何复杂的问题,所以 A 错误。12.对于一个正常运行的 C 程序,以下叙述中正确的是( )。(分数:1.00)A.程序的执行总是从 main 函数开始 B.程序的执行总是从程序的第一个函数开始,在 main 函数结束C.程序的执行总是从 main 函数开始,在程序的最后一个函数中结束D.程序

21、的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束解析:程序的执行总是从 main 函数开始,在 main 函数中结束,其他函数通过 main 函数调用执行,所以 A 正确。13.以下选项中能表示合法常量的是( )。(分数:1.00)A.“007“ B.1.5E2.0C.D.1,200解析:E 前 E 后有数字,E 后数字为整数,B 错误;“”为转义字符,后面跟特 定字符,用来表示 ASCII 字符,C 错误;一个整数之间不能有逗号,D 错误。14.以下定义语句中正确的是( )。(分数:1.00)A.int a=b=0;B.char A=65+1,b=b C.D.double a=0

22、.0; b=1.1;解析:定义变量时不能连等,所以 A 错误,C 选项中,b 是指针,c 定义为指向 指针的指针才可以接受B.printf (“%c n“,a-32);C.printf (“%d n“,A); D.printf (“%c n“;B-1);解析:d 输出整数,所以选择 C。18.若 a 是数值类型,则逻辑表达式(a=1)ll(a!=1)的值是( )。(分数:1.00)A.a 的值不确定B.0C.2D.1 解析:无论 a 的值为多少,(a=1)和(a!=1)总会有一个成立,两者或运算,则值为真,为 1。19.设有定义:int a=1, b=2, c=3 ;以下语句中执行效果与其他三

23、个不同的是( )。(分数:1.00)A.if(ab) c=a;a=b;b=c; B.if(ab) c=a,a=b,b=c;C.if(ab) c=a,a=b,b=c;D.if(ab) c=a;a=b;b=c;解析:选项 B、D 中 if 语句后都是一条复合语句,选项 C 中 if 语句后都是一条 语句,选项 A 之后有 3 条语句,所以答案选择 A。20.有以下程序程序运行后的输出结果是( )。(分数:1.00)A.y=0B.y=-1 C.y=1D.while 构成无限循环解析:当 y 为 0 财,表达式 y-才为假,循环结束,最终 y 的值为-1,所以答案选择 B。21.有以下程序程序运行后的

24、输出结果是( )。(分数:1.00)A.1*1=1 1*2=2 1*3=32*2=4 2*3=63*3=9B.1*1=1 1*2=2 1*3=32*1=2 2*2=43*1=3C.1*1=11*2=2 2*2=41*3=3 2*3=6 3*3=9D.1*1=12*1=2 2*2=43*1=3 3*2=6 3*3=9解析:外层循环 i,值分别为 1 2 3,内层循环分别为 1 2 3、2 3 和 3,所以答案为 A。22.有以下程序程序运行后的输出结果是( )。(分数:1.00)A.*7 B.*3*5C.*5D.*2*6解析:本题考査的是 break 语句。dowhile 循环是“先执行,后判断

25、”,所以 无论条件如何,它都至少会执行一遍。程序首先初始化变量 i 为 5,然后进入 dowhile 循环体,首先判断 (i%3=1),因为 5%3=2,所以if 条件不满足,跳过下面的 if 语句,执行 i+,i 变为 6。第 1 遍循环结束,判断 (i!=0)为真,继续循环。现在 i%3=6%3=0,所以 if 语句还是不被执行,继续 i+,i 变为 7,仍然满足(i!=0),继续 循环。第 3遍循环 i%3=7%3=1,满足条件(i%3=1),继续判断条件 i%5=2 成立,即输出*7,然后执行 break 语句跳出循环。23.以下叙述中错误的是( )。(分数:1.00)A.函数形参的值

26、也可以传回给对应的实参 B.函数调用可以作为一个独立的语句存在C.若函数有返回值,必须通过 return 语句返回D.C 程序必须由一个或一个以上的函数组成解析:函数参数传递是个不可逆的过程,形参不会把值传回实参,所以 A 选项错误。24.有以下程序程序运行后的输出结果是( )。(分数:1.00)A.4B.2C.1D.3 解析:c 的值为 a 乘以 b 的值,为 3。所以答案选择 D。25.有以下程序(分数:1.00)A.1, 3 B.2, 3C.1, 4D.1, 2解析:f 函数功能使第二个指针指向的元素增 1,第一个指针指向的元素不变,所 以答案选择 A 。26.若有定义语句:int a2

27、3, *p3;则以下语句中正确的是( )。(分数:1.00)A.p0= B.p0=a;C.p=a;D.p1=解析:本题考查的知识点是:二维数组和指针数组。无论一个数组有多少维或 者是否含指针类型,该数组最终都可以被看做一个比较特殊的一维数组。例如本题中的 int a23可以看作元 素为 int3(即包含 3个 int 型元素的一维数组),包含 2 个这样元素的一维数组;而 int*p3则可以看作元素为 int*,包含3 个这样元素的一维数组。选项 C 中,P 为数组名,其值是不能被改变的,故非法;选项 B 中, p0的类型是 int*,而 a 是二维数组名(类型为 int3),两者无法赋值,故

28、非法;选项 A 中,P0为 int 型指针,以下选项中能够使 c 正确指向一个字符串的是( )。(分数:1.00)A. B.scanf(“%s“,c);C.c=getchar();D.*c=“string“解析:选项 A 定义字符数组 str,然后将 str 赋值给 c,c 便指向字符串 str,符合题 意,所以选择 A 。30.若有定义语句:char s10=“123456700“;则 strlen(s)的值是( )。(分数:1.00)A.10B.8C.9D.7 解析:本题考査的是字符串的长度。字符数组中可以存放字符串,但字符数组的长 度并不是字符串的长度,字符串的长度是指字符数组中存放的有

29、效字符个数,即0之前的字符数。字符数组 s 中依次存放的字符是:1234567 和 2 个字符串结束标记0,故字符串的长度是 7,所以应该选择 D。31.若有定义语句:程序运行后的输出结果是( )。(分数:1.00)A.6 B.9C.11D.7解析:本题首先定义了 3 个字符数组 p、q、r,并分别被初始化。数组 P 指定的大小为 20,初始化列表为a,b,c,d,即只指定了前 4 个元素的内容,根据 C 语言的规定,初始化列表不足时, 其余元素均自动初始化为 0。然后通过 strcat( )函数,将字符串 r 连接到字符串 p 之后,即执行后 p 中的内容为“123d123de”。因为“st

30、rlen(q)”表示求字符串 q 的长度,很明显为 3,所以语句“strcpy(p+strlen(q),q)”的作用就是将字符串 q 复制到数组 p 的第 4 个元素位置处。32.有以下程序(注:字母 A 的 ASCII 码值是 65)程序运行后的输出结果是( )。(分数:1.00)A.YTB.BTC.YE D.BY解析:fun 函数输出 ASCII 码值为奇数的字符,所以答案选择 C。33.有以下程序程序运行后的输出结果是( )。(分数:1.00)A.21 B.11C.6D.120解析:循环调用 fun 函数,依次返回值为 2、3、4、5、6, s 原值为 1,累加以上返 回值,最终结果为

31、21,所以答案选择 A 。34.有以下程序程序运行后的输出结果是( )。(分数:1.00)A.C D E F B.A B E FC.A B C DD.C D A B解析:调用 fun1 函数将全局变量 a 和 b 赋值为C和D,然后输出全局变量 a 和 b,最 后调用 fun2 输出局部变量 a 和 b 的值E和F。答案选择 A 。35.以下关于 typedef 的叙述错误的是( )。(分数:1.00)A.用 typedef 为类型说明一个新名,通常可以增加程序的可读性B.typedef 只是将已存在的类型用一个新的名字来代表C.用 typedef 可以为各种类型说明一个新名,但不能用来为变量

32、说明一个新名D.用 typedef 可以增加新类型 解析:用 typedef 没有增加新类型,所以选择 D 。36.程序中已构成如下图所示的不带头结点的单向链表结构,指针变量 s、p、q、均已正确定义,并用于指向链表结点,指针变量 s 总是作为头指针指向链表的第一个结点。若有以下程序段q=s;s=s-next;p=s;while(p-next) p=p-next;p-next=q; q-next=NULL;该程序段实现的功能是( )。(分数:1.00)A.首结点成为尾结点 B.尾结点成为首结点C.删除首结点D.删除尾结点解析:循环找到末尾结点,然后赋值给第一个结点,所以选择 A 。37.有以下

33、程序程序运行后的输出结果是( )。(分数:1.00)A.143 B.197C.33D.28解析:S(k+j)展开后为 4*(k+j)*k+j+1,结果为 143,选择 A 。38.若有以下程序段int r=8;printf(“%dn“,r1 );输出结果是( )。(分数:1.00)A.8B.4 C.16D.2解析:r 右移 1 位,结果为 4,所以选择 B。39.以下叙述中错误的是( )。(分数:1.00)A.getchar 函数用于从磁盘文件读入字符 B.gets 函数用于从终端读入字符串C.fputs 函数用于把字符串输出到文件D.fwrite 函数用于以二进制形式输出数据到文件解析:本题

34、考査的是文件操作。题中“fopen(fn,“W“)”的作用是打开 fn 所指向的文件,使用文件方式为“写入”;“fpUtS(Str,fp)”的作用是将字符 str 的值输出到 fp 所指向的文件中去。在程序 中,两次使用“写入”的方式打开同一个文件,在第二次打开时,文件指针指向文件头,所以此次写入的数据覆盖了文件原有的数据,故本题中 t1.dat 的内容为 end。故本题答案为 A。40.有以下程序以上程序执行后 abc.dat 文件的内容是( )。(分数:1.00)A.Chinang B.ChinaC.ChinaBeijingD.BeijingChina解析:本题考査的是文件操作。程序首先定

35、义了一个文件指针 pf,并使用 fopen() 函数以“wb+”方式新建一个可读写的二进制文件“123.dat”。然后使用 fwrite()函数写入字符串 s2 的前 7*1 个 字符。现在文件中的内容应该为“Beijing”。接下来程序使用 rewind()函数,将文件的读写指针调回起始位 置。并又调用 fwrite()函数写入字符串 s1 的前 5*1 个字符。所以文件原内容“Beijing”的前 5 个字符被覆盖,结 果为“Chinang”,故本题应该选择 A 。二、程序填空题(总题数:1,分数:20.00)函数 fun 的功能是计算的前 n 项。若 x=2.5,函数值为:12.1823

36、40。请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的 BLANK1.C 中。 不得增行或删行,也:f 得更改程序的结构!(分数:20.00)填空项 1:_ (正确答案:(1) 1.0 (2)1 (3) i)解析:填空 1:本题要求给 double 型变量 t 赋初值,从 for 循环中可知,t 用来存放累乘的结果,因此 t 的初值 应该为 1.0。填空 2:考査 for 循环变量的范围,注意本题要求计算 f(x)的前 n 项,所以循环变量 i 应从 1 递增至 n-1, 因此此空应填 1。填空 3: t 用来存放每次循环增量,分析公式可知

37、,后一项总是在前一项的基础上乘以 x/i,因此此空应填 i。三、程序改错题(总题数:1,分数:20.00)给定程序 MODI1.C 中函数 fun 的功能是:找出 100 至 n(不大于 1000)之间三位数字相等的所有整数,把这些整数放在 s 所指数组中,个数作为函数值返回。请改正函数 fun 中指定部位的错误,使它能得出正确的结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构!(分数:20.00)_正确答案:(1) k=i;(2) c=k%10;)解析:(1) i 是当前要被判断的数,因为 i 是循环变量,所以将 i 的值赋给 k 再进行运算。(2) c 是存放百位

38、上的数,可以通过求余运算得到,语句要用分号(;)结束。四、程序设计题(总题数:1,分数:20.00)请编写函数 fun,其功能是:计算并输出给定 10 个数的方差:例如,给定的 10 个数为 95,0、89.0、76.0、65.0、88.0、72.0、85.0、81.0、90.0、56.0,输出为5=11.730729。注意:部分源程序在文件 PROG1.C 中。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。(分数:20.00)_正确答案:()解析:这是一道求公式的值的题目,程序中第 1 个循环用来完成求 10 个数的总和,接着再用 x1=x1/10 来求 出平均值。第 2 个循环用来求累加和的值,最后将累加和的平方根返回,注意 sqrt 函数的应用。

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