全国计算机等级考试三级网络技术上机试题排序解析

需积分: 0 0 下载量 114 浏览量 更新于2024-06-30 收藏 33KB DOC 举报
"全国计算机等级考试三级网络技术上机考试题" 这篇文档是关于全国计算机等级考试三级网络技术的一个上机考试题目。题目要求考生编写一个程序,该程序需要处理包含100个产品销售记录的数据文件(IN.DAT)。每个记录由四个部分组成:产品代码(4位字符型),产品名称(10位字符型),单价(整型),数量(整型)以及金额(长整型)。金额是通过单价和数量相乘得出的。 提供的源程序包含了三个主要函数:`main()`,`ReadDat()` 和 `WriteDat()`。`main()` 函数作为程序入口,先调用 `ReadDat()` 读取数据文件中的销售记录,并存储在一个名为 `sell` 的结构数组中,接着调用 `SortDat()` 对数据进行排序,最后调用 `WriteDat()` 将排序后的结果写入新的文件 OUT10.DAT。 `ReadDat()` 函数负责从 "IN.DAT" 文件中读取数据,逐行读取并将信息分割并存入结构体数组 `sell` 中。使用 `fopen()` 打开文件,然后用 `fgets()` 逐行读取,使用 `memcpy()` 复制字符串到相应字段,使用 `atoi()` 将字符串转换为整数类型。值得注意的是,程序中使用了 `memset()` 函数初始化整个 `sell` 数组。 `SortDat()` 函数是需要考生实现的部分,其任务是对 `sell` 数组进行排序。根据题目要求,排序规则是先按照产品代码降序排列,如果产品代码相同,则按照金额降序排列。这可能需要使用到某种排序算法,例如快速排序、归并排序或插入排序,但具体实现方法并未给出。 `WriteDat()` 函数用于将排序后的数据写入新文件 "OUT10.DAT",考生需要确保这个函数能够正确地将结构体数组的内容按照指定格式输出到文件。 这个考试题目涵盖了文件操作、数据结构(结构体)、内存管理(如 `memset()` 和 `memcpy()`)、字符串处理和数值转换(如 `atoi()`),以及排序算法等多个核心的C语言编程概念。考生需要熟悉这些基础知识并具备一定的编程能力才能完成题目。
2011-03-12 上传
本人计算机三级机试题目(精选) 全国计算机等级三级考试并不怎么难,为什么有许多人考试通过不了 ,仔细分析发现80%左右的考生都是由于种种原因机试没过,笔者感觉最主要原因还是不够认真,态度不端正,例如,笔者考计算机三级时,上机软件是VC++全英文界面,居然有好几个考生居然问监考老师怎么找编辑程序的窗口,笔者就有点郁闷了,考计算机三级居然不知上机步骤流程。有个监考老师说了一句:“就这水平还考试……OPEN!”笔者右边一女生就是笔者帮助找到源程序打开编辑程序的窗口。现在笔者将自身计算机三级考试机试复习题目拿来供各位想考计算机三级的学生参考,以下题目均为必看经典题目,必须一一在机子上调试出来,可以利用网上的模拟考试环境调试,仅仅只有不到20个题目。最后还补充了几个题目(均为南开100题,笔者补充的仅仅是题号),有能力的一定要看,如果实在不行可以不看,相信只要认真细心,能精通下面十多个题目机试通过率应该在85%以上。 <一>:四位数。 题目2:已知数据文件IN.DAT中存有200个四位数, 并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是: 如果四位数各位上的数字均是0或2或4或6或8, 则统计出满足此条件的个数cnt, 并把这些四位数按从大到小的顺序存入数组b中。最后main()函数调用写函数writeDat( )把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。 注意: 部分源程序存在文件PROG1.C文件中。 程序中已定义数组: a[200], b[200], 已定义变量: cnt 请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。 void jsVal() { int i,j,temp;int c[4];/*定义一个存放四位数各位上数字的数组*/ for(i=0;i<MAX;i++) {c[0]=a[i]/1000;c[1]=a[i]%1000/100;c[2]=a[i]%100/10;c[3]=a[i]%10;} if(c[0]%2==0&&c[1]%2==0&&c[2]%2==0&&c[3]%2==0) b[cnt++]=a[i]; for(i=0;i<cnt-1;i++) for(j=i+1;j<cnt;j++) if(b[i]<b[j]) {temp=b[i];b[i]=b[j];b[j]=temp;}