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

上传人:jobexamine331 文档编号:1325641 上传时间:2019-10-17 格式:DOC 页数:7 大小:36.50KB
下载 相关 举报
【计算机类职业资格】二级C语言机试-130及答案解析.doc_第1页
第1页 / 共7页
【计算机类职业资格】二级C语言机试-130及答案解析.doc_第2页
第2页 / 共7页
【计算机类职业资格】二级C语言机试-130及答案解析.doc_第3页
第3页 / 共7页
【计算机类职业资格】二级C语言机试-130及答案解析.doc_第4页
第4页 / 共7页
【计算机类职业资格】二级C语言机试-130及答案解析.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、二级 C 语言机试-130 及答案解析(总分:100.00,做题时间:90 分钟)一、填空题(总题数:1,分数:30.00)给定程序的功能是:调用函数 fun 将指定源文件中的内容复制到指定的目标文件中,复制成功时函数返回值为 1,失败时返回值为 0。在复制的过程中,把复制的内容输出到终端屏幕。主函数中源文件名放在数组 sfname 中,目标文件名放在数组 tfname 中。请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。注意:源程序存放在考生文件夹下的 BLANK1.C 中。不得增行或删行,也不得更改程序的结构。文件 BLANK1.C 内容如下:#includestdi

2、o.h#includestdlib.hint fun(char *source,char *target)FILE *fs,*ft;char ch;/*found*/if(fs=fopen(source, (1) )=NULL)return 0;if(ft=fopen(target,“w“)=NULL)return 0;printf(“/nThe data in file: /n“);eh=fgetc(fs);/*found*/while(!feof( (2) )putehar(ch);/*found*/fpute(ch, (3) );ch=fgetc(fs);fclose(fs);fclos

3、e(ft);printf(“/n/n“);return 1;void main( )char sfname20=“myfile1“,tfname20=“myfile2“;FILE *myf; int i;char c;myf=fopen(sfname,“w“);printf(“/nThe original data: /n“);for(i=1;i30;i+)c=A+rand( )%25;fprintf(rayf,“%c“,c);printf(“%c“,c);fclose(myf);printf(“/n/n“):if(fun(sfnaille,tfname) printf(“Succeed!“)

4、;else printf(“Fail!“);(分数:30.00)填空项 1:_填空项 1:_填空项 1:_二、改错题(总题数:1,分数:30.00)1.给定程序 MODI1.C 中函数 fun 的功能是:计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值,其中 x 和 y 的值不等,z 和 y 的值不等。例如,当 x 的值为 9,y 的值为 11,z 的值为 15 时,函数值为-3.50。请改正程序中的错误,使它能得出正确的结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构。文件 MODI1.C 内容如下:#includestdio.h#inc

5、ludemath.h#includestdlib.h/*found*/#define FU(m,n) (m/n)double fun(double a,double b,double c)double value;value=FU(a+b,a-b)+FU(c+b,c-b);/*found*/Return(Value);void main( )double x,y,z,sum;printf(“Input x y z: “);seanf(“%1f%1f%1f“, int i;char c;myf=fopen(sfname,“w“);printf(“/nThe original data: /n“)

6、;for(i=1;i30;i+)c=A+rand( )%25;fprintf(rayf,“%c“,c);printf(“%c“,c);fclose(myf);printf(“/n/n“):if(fun(sfnaille,tfname) printf(“Succeed!“);else printf(“Fail!“);(分数:30.00)填空项 1:_ (正确答案:“r“)解析:填空项 1:_ (正确答案:fs)解析:填空项 1:_ (正确答案:ft)解析:解析 主函数中通过循环建立了源文件 myfile1,文件名存放在数组 sfname 中,调用 fun 函数完成文件的复制,复制后的目标文件为

7、myfile2,文件名存放在数组 tfname 中。函数 fun 实现两个文件的复制功能。在 fun 函数中,首先以只读方式打开源元件,源文件的文件指针为 fs,所以第 1 空处应填入”r”;然后以只写方式打开目标文件,目标文件的文件指针为 ft。如果打开成功,程序则往下执行。文件的复制通过循环完成,当文件指针 fs 没有指向文件尾时,从该文件中读出一个字符给 ch,并将它输出到屏幕上以及目标文件中,所以第 2 空处应该检测源文件是否结束,填入 fs 文件指针。对于第 3 空,应该将 ch 字符输出到目标文件中,所以填入 ft 文件指针。循环结束后返回 1。二、改错题(总题数:1,分数:30.

8、00)1.给定程序 MODI1.C 中函数 fun 的功能是:计算函数F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值,其中 x 和 y 的值不等,z 和 y 的值不等。例如,当 x 的值为 9,y 的值为 11,z 的值为 15 时,函数值为-3.50。请改正程序中的错误,使它能得出正确的结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构。文件 MODI1.C 内容如下:#includestdio.h#includemath.h#includestdlib.h/*found*/#define FU(m,n) (m/n)double fun(doub

9、le a,double b,double c)double value;value=FU(a+b,a-b)+FU(c+b,c-b);/*found*/Return(Value);void main( )double x,y,z,sum;printf(“Input x y z: “);seanf(“%1f%1f%1f“, *n=j;)解析:解析 函数 fun 中,i 循环从 1 开始到 1000 结束,取出每一个 i 值进行判断,将能被 7 或 11 整除,但不能同时被 7 和 11 整除(即不能被 77 整除)的 i 值放入数组 a 中。循环结束后,j 的值(即数组 a的个数)通过形参 n 带

10、回。主函数中,调用函数 fun 后,将满足条件的整数按一行 10 个输出到屏幕上。最后调用 NONO 函数。NONO函数的功能是:将满足条件的整数输出到文件 out.dat 中。函数中首先以写的方式创建了文本文件out.dat,然后调用 fun 函数,将结果输出到文件 out.dat 中。虽然程序中的 NONO 函数涉及文件的处理,但是由于 C 语言是一种模块化的程序设计语言,fun 函数是一个独立的功能模块,而且 fun 函数中没有对 NONO 函数进行调用,所以即使没有看明白 NONO 函数的功能,也不影响对 fun 函数的编写。归纳总结 等级考试的上机题目中文件的处理通常出现在程序填空题

11、中。主要涉及文件函数的使用,必须掌握常用函数的使用格式,常用的函数有:(1)fopen(打开文件)和 fclose(关闭文件)。(2)fgetc(读单个字符)和 fputc(写单个字符)。(3)fgets(读字符串)和 fputs(写字符串)。(4)fread(读数据块)和 fwrite(写数据块)。(5)fscanf(以格式化方式读)和 fprintf(以格式化方式写)。(6)feof(测试文件是否结束)。(7)fseek(文件指针定位函数)。(8)rewind(文件指针复位函数)。程序设计题中虽然没有要求对文件进行编程处理,但是程序中通常会给出一个 NONO 函数,该函数会将程序的运行结果输出到结果文件中,不过考生只需了解该函数的功能,它对于 fun 函数的编写没有影响。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

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