首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
已知在文件IN99.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)几部分组成。其中,金额=单价×数量可计算得出。函数ReadDa()的功能
已知在文件IN99.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)几部分组成。其中,金额=单价×数量可计算得出。函数ReadDa()的功能
admin
2010-06-27
85
问题
已知在文件IN99.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)几部分组成。其中,金额=单价×数量可计算得出。函数ReadDa()的功能是读取这100个销售记录并存入数组sell中。请编制函数SortDat(),其功能要求:按金额从小到大进行排列,若金额相同,则按产品代码从小到大进行排列,排列结果仍存入结构数组sell中,最后调用函数Writedat()把结果输出到文件OUT99.DAT中。
注意:部分源程序已给出。
请勿改动主函数main()、读函数ReadDat()和写函数Writedat()的内容。
试题程序:
#include<stdio.h>
#include<mem.h>
#include<string.h>
#include<conio.h>
#include<stdlib.h>
#define MAX 100
typedef struct
{
char dm[5];
char mc[11];
int dj;
int sl;
long je;
} PRO;
PRO sell[MAX];
void ReadDat();
void WriteDat();
void SortDat()
{
}
void main()
{
memset sell,0,sizeof(sell));
ReadDat();
SortDat();
WriteDat();
}
void ReadDat()
{
FILE *fp;
char str[80],ch[11];
int i;
fp=fopen("IN99.DAT","r");
for(i=0;i<100;i++)
{
fgets(str,80,fp);
memcpy(sell
.dm,str,4);
memcpy(sell
.mc,str+4,10);
memcpy(ch,str+14,4);
ch[4]=0;
sell
.dj=atoi(ch);
memcpy(ch,str+18,5);
ch[5]=0;
sell
.sl=atoi(ch);
sell
.je=(long)sell
.dj*sell
.sl;
}
fclose(fp);
}
void WriteDat()
{
FILE *fp;
int i;
fp=fopen("OUT99.DAT","w");
for(i=0;i<100;i++)
{
fprintf(fp,"%s %s %4d %5d %101d\".sell
.dm,sell
.mc,sell
.dj,sell
.sl,sell
.je);
}
fclose(fp)
}
选项
答案
void SortDat() { int i,j; PRO xy; for(i=0 ;i<99; i++) for(j =i+1;j<100;j++) { if (sell[i].je>sell[j].je) /*按金额从小到大进行排列*/ { xy=sell[i]; sell[i]=sell[j]; sell[j]=xy; } else if (sell[i].je==sell[j].je) /*若金额相同*/ if (strcmp(sell[i].dm,sell[j].dm)>0) /*则按产品代码从小到大进行排列*/ { xy=sell[i]; sell[i]=sell[j]; sell[j]=xy } } }
解析
本题考查的知识点如下;
结构体及结构数组;结构数组的排序;字符型数组的比较。
本题着重考查结构体变量的访问、赋值,包括结构体本身及结构体中各个成员的访问和赋值。根据题意要求,我们首先要比较金额。若金额相同,则比较产品代码。因为产品代码为字符型,所以不能使用简单的比较运算符进行比较。在这里,我们使用了字符串处理函数strcmp(char *stell,char *str12,unsigned int cout)对其进行比较。因为已定义了结构数组,就可以使用循环进行比较排序。排序同样采用前面介绍的“选择排序法”。
转载请注明原文地址:https://kaotiyun.com/show/Rq5Z777K
本试题收录于:
三级信息管理技术题库NCRE全国计算机三级分类
0
三级信息管理技术
NCRE全国计算机三级
相关试题推荐
下列哪一种结构是属于文件的物理结构?()
下列关于配置管理的描述中,错误的是()。
I/O设备数据传送控制方式中,实现程序直接控制方式需要下列哪些关键部件?()
下列文件的物理结构中,哪些结构适合文件的随机存取?()
操作系统在对磁盘的访问中,优化下列哪个时间可以显著改善磁盘的读写性能?()
在虚拟页式存储管理系统中,若采用请求调页方式,当用户需要装入一个新的页面时,其调入的页面来自()。
某系统在打印数据时,读数据进程、处理数据进程和打印结果进程是通过下列哪个对象相关联的?()
100Base-FX标准支持的传输介质可以是()。
请分析以下程序。intmain(){pid_tpid;inta=1:pid=fork();if(pid==0)printf("Iamthechildprocess,a=%d\n",++a);else
软件测试是保证软件质量的重要措施,它的实施应该是在______。
随机试题
A.为病人保密B.文明礼貌服务C.互学互尊,团结协作D.钻研技术,精益求精E.救死扶伤,实行社会主义的人道主义不断更新知识,提高技术水平是《医务人员医德规范及实施办法》内容要求的
于锦将自家的一居室出租给张华,约定租赁期限为6个月。租赁期限届满后,张华要求续租,于锦表示张华生活习惯不好,断然拒绝,张华十分生气,拒不搬出。于锦诉至法院,要求张华搬离该房屋。以下表述中正确的是:
压入式局部通风机和启动装置,必须安装在进风巷道中,距掘进巷道回风口不得小于()。
超声波比射线探伤灵敏度高,灵活方便,( )、成本低、对人体无害,但显示缺陷不直观,对缺陷判断不精确,受探伤人员经验和技术熟练程度影响较大。
工程项目成本管理也就是工程项目( ),其最终目的就是通过成本控制,保证预期的利润目标的实现。
下列建筑安装工程费用,属于材料费的是()。
银行在办理个人汽车贷款业务时,可采取的信用风险防控措施不包括()。
对于一件优先权日为2007年9月27日、国际申请日为2008年2月15日的PCT申请,国际检索单位于2008年3月10日收到检索本后,应当最迟在下列哪个日期完成国际检索报告?
Whentelevisionfirstbegantoexpand,veryfewofthepeoplewhohadbecomefamousasradiocommentators【31】effectiveontelev
InTheBirthOrderBook:WhyYouAretheWayYouAre(2004),Dr.KevinLemannotesthat21ofthefirst23Americansinspacewe
最新回复
(
0
)