全国计算机等级考试三级信息管理技术机试真题2010年9月.doc

上传人:scccc 文档编号:13248422 上传时间:2021-12-20 格式:DOC 页数:2 大小:25KB
返回 下载 相关 举报
全国计算机等级考试三级信息管理技术机试真题2010年9月.doc_第1页
第1页 / 共2页
全国计算机等级考试三级信息管理技术机试真题2010年9月.doc_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《全国计算机等级考试三级信息管理技术机试真题2010年9月.doc》由会员分享,可在线阅读,更多相关《全国计算机等级考试三级信息管理技术机试真题2010年9月.doc(2页珍藏版)》请在三一文库上搜索。

1、全国计算机等级考试三级信息管理技术机试真题 2010 年 9 月( 总分: 100.00 ,做题时间: 90 分钟 )、上机题( 总题数: 1,分数: 100.00)1.已知在文件in.dat中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称me(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)五部分组成。其中:金额 =单价 x数量。函数ReadDat()读取这100个销售记录并存人结构数组sell中。请编制函数 SortDat(),其功能要求:按金额从小到大进行排列,若金额相同,则按产品代码从大到小进行排列,最终排列结果仍存人结 构数组

2、sell 中,最后调用函数 WriteDat() 把结果输出到文件 out.dat 中。注意:部分源程序给出如下。请勿改动主函数 main() 、读数据函数 ReadDat() 和输出数据函数 WriteDat() 的内容。 试题源程序 #inelude < stdio h >#inelude < string . h >#inelude < eonio h>#inelude < stdlib h>#define MAX 100typedef struetehar dm5 ; /* 产品代码 */ehar me11 ; /* 产品名称 */int

3、 dj ; /* 单呶 *|int sl ; /* 数量 */long je ; /* 金额 */PRO;PRO senMAX;void ReadDat() ;void WriteDat() ;void SortDat() void main()memset(sell , 0, Sizeof(sell) ;ReadDat() ;SortDat() ;WriteDat() ;void ReadDat()FILE*fp ;ehar str80, eh11 ;int i : if(fp=fopen("IN DAT", "r")=NULL) return ;fo

4、r(i=0 ;i < 100;i+)fgets(str , 80, fp) ;memcpy(selli dm, str ,4) ; memcpy(selli mc, str+4 ,10) ; memcpy(ch, str+14 , 4) ; ch4=0 ; selli dj=atoi(ch) ; memcpy(ch, str+18 , 5) ; ch5=0 ; selli sl=atoi(ch) ; selli.je=(10ng)selli dj*selli sl ;fclose(fp) ;void WriteDat()FILE*fp ;int i ;if(fp : fopen(&quo

5、t;OUT DAT","w")=NULL)return ;for(i=0 ; i v 100; i+)printf("%S%S%4d%5d%5d/n",sellidln,selli mc, sellidj ,sellisl ,selli je) ;fprintf(fp "%S%S%4d%5d%lOld/n"sellidm,sellimc,sellidj ,sellisl , selli je) ;fclose(fp) ;分数: 100.00 ) 正确答案: (void SottDat()int i ,j ;PRO swap;

6、for(i=0 ; i v MAX-1; i+)for(j=i+l ; j v MAX; j+)if(selli . je > selljje)swap=selli ; selli=sellj ; sellj=swap ;else if(sellije=sellj je)if(strcmp(sellidm,sellj dm)v 0)swap=selli ; selli=sellj; sellj=swap :)解析: 解析 本题主要考查的是产品因素的比较排列问题。和冒泡排序法相似,用一个两重for 循环来实现,第一个 for 循环遍历每个结构体 (除了最后一个 ) ,第二个 for 循环用来遍历某个结构体 selli 之后 的每个结构体sellj,两者的je进行比较,如果selli . je大,则使用临时变量 swap来交换两者的 位置,如果相等则再比较 selli . dm和sellj . dm,如果前者小则交换位置。注意字符串的比较通过 strcrap() 函数进行,若两个字符串相等则返回 0,前者大于后者返回一个正整数,否则返回一个负整数。

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1