c语言编程题方法2.docx
- 文档编号:7118577
- 上传时间:2023-01-19
- 格式:DOCX
- 页数:10
- 大小:454.11KB
c语言编程题方法2.docx
《c语言编程题方法2.docx》由会员分享,可在线阅读,更多相关《c语言编程题方法2.docx(10页珍藏版)》请在冰豆网上搜索。
c语言编程题方法语言编程题方法2第二类型:
结合in.dat文件修改out文件。
第一种类型:
直接按题目要求修改out.dat文件,如全国计算机等级考试上机考试第三题(程序编写题)做题技巧基本步骤篇,在这里就不再讲了。
这是最基本的类型,也是最简单的类型。
第二类型:
结合in.dat文件修改out文件。
如此题:
http:
/out.dat文件为止,如下图:
http:
/out文件当中,每个字符串所对应的n的值,这就要求我们必须找到n的值。
方法是,用打开out文件的方法打开in.dat文件(与out.dat文件在同一个文件夹中)。
我们把in与out进行对比,大家就会发现,字符的部分完全一样,但是,in文件每一个字符串下面都有一个数字,这就是我们要找的n的值,我们再按题目要求对out文件进行修改。
http:
/in文件,这时,需要去程序中找相关数据。
如此题(这个题目是比较难的,有很多注意事项,我用红色的进行标注):
同样,我们按基本步骤篇中的步骤,一直做到打开out文件为止。
大家看到out文件之后,会发现,这是一个没有任何规律的数字,我们把-858993460删了。
这时,大家首先想到的自然是去找in文件,但是,大家会发现,这个题目根本没有in文件。
根据题目的意思,这个题目要按我们这个方法做,我们必须要知道两组数据:
一是所有学生的成绩,二是指定的分数段。
我们来看程序部分:
#include#defineN16typedefstructcharnum10;ints;STREC;intfun(STREC*a,STREC*b,intl,inth)main()STRECsN=GA005,85,GA003,76,GA002,69,GA004,85,GA001,96,GA007,72,GA008,64,GA006,87,GA015,85,GA013,94,GA012,64,GA014,91,GA011,90,GA017,64,GA018,64,GA016,72;STREChN,tt;FILE*out;inti,j,n,low,heigh,t;printf(Enter2integernumberlow&heigh:
);scanf(%d%d,&low,&heigh);if(heighlow)t=heigh;heigh=low;low=t;n=fun(s,h,low,heigh);printf(Thestudentsdatabetween%d-%d:
n,low,heigh);for(i=0;in;i+)printf(%s%4dn,hi.num,hi.s);printf(n);out=fopen(D:
k0124010001out.dat,w);n=fun(s,h,80,98);fprintf(out,%dn,n);for(i=0;in-1;i+)for(j=i+1;jhj.s)tt=hi;hi=hj;hj=tt;for(i=0;in;i+)fprintf(out,%4dn,hi.s);fprintf(out,n);fclose(out);通过这个程序,再结合题目中的“N名学生的数据已在主函数中放入结构体数组s中”,我们不难发现,学生的成绩就是:
GA005,85,GA003,76,GA002,69,GA004,85,GA001,96,GA007,72,GA008,64,GA006,87,GA015,85,GA013,94,GA012,64,GA014,91,GA011,90,GA017,64,GA018,64,GA016,72我们再继续看程序,其中n=fun(s,h,80,98);中的80,98就是我们需要的学生的分数段。
到目前为止,我们需要的两组数据:
所有学生的成绩,指定的分数段都已经找到了,我们就可以往out文件中写入内容了。
可是,我们写什么内容到out文件中呢?
到这里,就对我们C语言知识的一些基本功有一定的要求了。
在这个地方,大家要记住一定,out文件里的内容,按正常做题方法来看,肯定是由程序实现书写的,只是,我们这个办法,由我们自己代替了程序的工作,我们自己就必须要遵守程序的一些规则。
程序实现书写内容到文件当中,自然就是fprintf语句,所以,大家只要去程序中,只要看到fprintf语句,说明fprintf语句后面的输出内容都是要写入到out文件当中去的(我尽量讲得详细,但是,这里仍然不好理解,希望大家认真看,多看两次,能理解上面说的是什么)。
回到这个题:
第一个:
fprintf(out,%dn,n);这条语句是需要输出一个n的值到out文件当中,n=fun(s,h,80,98);即n就是80到98之间学生的人数,我们数一下,知道n的值为8,所以,我们首先在out文件当中书写一个8,由于有n,所以,还需要回车一下。
第二个:
fprintf(out,%4dn,hi.s);hi.s就是学生的分数,80到98之间学生的分数,注意输出的时候4d%(具体什么意思,自己去看书),同时,根据前面的几条语句:
for(j=i+1;jhj.s)tt=hi;hi=hj;hj=tt;这实行了对学生分数从小到大的排序,所以,我们接下来按从小到大的顺序把80到98之间的学生分数按4d%的格式写入到out文件中,注意n,说明每一个分数完了都要换行,包括最后一个。
第三个:
fprintf(out,n);这就是输出一个换行符,就是在out文件后面一行再按一次回车健。
接着往下看,再也没有fprintf语句,说明,已经完了,保存,得分。
第四种类型:
没有in文件,程序中也没有相关数据,那么他的数据就在程序的运行窗口。
比如此题:
同样,我们按基本步骤篇中的步骤,一直做到打开out文件为止。
同里,我们把:
后面所有的内容都删除掉(包括:
与-之间的两个空格)。
我们要做这个题,必须要知道所有的人年龄,我们发现,没有in文件,程序中也没有给出相关的数据,其实,我们再运行一下程序,得到黑色的运行窗口,大家就会发现所有人的年龄。
这时,我们只需要数0-9之间有多少,10-19之间有多少。
就行了。
我们来做一个,0-9之间,共有2人,于是,可能很多同学就直接这么写了:
0-9:
2。
这是不对的,同样,大家一定要看清楚输入格式!
程序中有这么一条语句:
fprintf(wf,%4d-%4d:
%4dn,i*10,i*10+9,di)大家注意看,:
的前面的后面都各有两个空格,按输入格式讲的知识,我们知道,空格必须要原样输出的,所以,:
与2之间,必须要先敲两个空格;然后,再看4d%,我们知道,还必须有三个空格,所以,:
与2之间,应该是5个空格!
第五种类型:
没有out文件。
由于我们没有写代码,所以,可能部分程序没办法正常运行,造成就没有out文件(out文件不是本来就有的,他是在运行的了程序之后才生成的),这种时候,就需要我们手动建立一个out文件,建立方法是:
1、如果说有in文件,复制一下in文件,然后在同一个文件夹下面粘贴,然后重命名为out就可以了。
如果说没有in文件,我们在考生文件夹的空白处,单击右健,选择新健,选择文本文档,然后对这个新健的文件重命名为out.dat(注意,必须修改文件的后缀名。
文件原名为新建文本文档.txt,我们必须全部删掉,然后写上out.dat。
如果说你看不到.txt,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 编程 方法