首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
文件IN_DAT中存有200组数据。每组有3个数,每个数均是三位数。函数ReadData()是读取这200组数据存放到结构数组inBuf中。请编制函数dataSort(),其功能是:要求在200组数据中找出条件为每组数据中的第一个数大于第二个数加第三个数之
文件IN_DAT中存有200组数据。每组有3个数,每个数均是三位数。函数ReadData()是读取这200组数据存放到结构数组inBuf中。请编制函数dataSort(),其功能是:要求在200组数据中找出条件为每组数据中的第一个数大于第二个数加第三个数之
admin
2021-09-09
52
问题
文件IN_DAT中存有200组数据。每组有3个数,每个数均是三位数。函数ReadData()是读取这200组数据存放到结构数组inBuf中。请编制函数dataSort(),其功能是:要求在200组数据中找出条件为每组数据中的第一个数大于第二个数加第三个数之和,其中满足条件的个数作为函数dataSort()的返回值,同时把满足条件的数据存人结构数组outBuf中,再对结构数组outBuf中的数据按照每组数擤;的第一个数加第三个数之和的大小进行升序排列(第一个数加第三个数的和均不相等),排序后的结果仍重新存人结构数组outBuf中,函数WriteData(int)负责把结果outBuf输出到文件OUT.DAT中。
注意:部分源程序已给出。
请勿改动主函数main()、读函数ReadData()和写函数WriteData(int)的内容。
试题程序:
#inch+de
#include
#include
typedef struct
{
int x1.x2.x3;
}
Data;
Data inBuf[200],outBuf[200];
void ReadData();
void WriteData(int);
int dataSort()
{
}
void main()
{
int count}
ReadData();
count=dataSort(); /*返回满足条件的个数*/
WriteData(count);
}
void RcadData()
{
FILE*in;
int i;
in=fopen(“IN.DAT”,“r”);
for(i=0;i<200;i++)
fscanf(in,“0A d,%d,%d,”,&inBuf
,x1,
&inBuf
,x2,&inBuf
.x3);
fclose(in);
}
void WriteData(int count)
{
FILE*out;
int i;
OUt=fopen(“OUT.DAT”,“W”);
system(“CLS”);
for(i=0; i
{
printf(“x1=%d,x2=%d,x3=%d x1+x3
=%d\n”,outBuf
.x1,outBuf
.x2,outBuf
.x3,outBuf
.xl+outBuf
.x3);
fprintf(out,“x1=%d,x2=%d,x3=%d x1+
x3=%d\n”,outBuf
.x1,outBuf
.x2,out
Buf
.x3,outBuf
.x1+outBuf
.x3);
}
fclose(out);
}
选项
答案
int dataSort() { int count=0,i,j; Data temp; for(i=0;i<200;i++) { if(inBuf[i].xl>inBuf[i].x2+inBuf[i].x3) /*如果符合条件,则将inBuf中的内容写到 outBuf中*/ { outBuf[count].x1=inBuffi].x1; outBuf[count].x2=inBuf[i].x2; outBuf[count].x3=inBuf[i].x3; count++; } } for(i=0;i
outBuf [j].xl+outBuf[j].x3) { temp.x1=outBuf[i-].x1; //将outBuf[i]中的内容写到temp中 temp.x2=outBuf[i].x2} temp.x3=outBuf[i].x3; outBuf[i].x1=outBuf[j].x1; //将outBuf[j]中的内容写到outBuf [i]中 outBuf[i].x2=outBuf[j].x2; outBuf[i].x3:outBuf[j].x3; outBuf[j].x1=temp.x1; //将temp中的内容写到outBuf[j]中 outBuf[j].x2=temp.x2 ; outBuf[j].x3=temp.x3 ; } return count; }
解析
本题主要考查结构数组排序的问题。
所谓结构数组排序就是以结构某一元素为依据对结构数组进行排序。排序时仍采用冒泡排序法。但是由于结构不像变量那样可以通过简单的赋值来交换变量(如果要赋值的话需要对结构里的所有元素进行赋值替换,比较麻烦),所以在进行两个相邻结构交换时,用到内存拷贝函数来对内存的内容整体进行操作。
由于本题的头文件中没有包含时内存操作的头文件mem.h,故只能用赋值的方法来进行结构的交换。
转载请注明原文地址:https://jikaoti.com/ti/TpY7FFFM
本试题收录于:
三级网络技术题库NCRE全国计算机三级分类
0
三级网络技术
NCRE全国计算机三级
相关试题推荐
下图是校园网某台主机在命令行模式下执行某个命令时用sniffer捕获的数据包。请根据图中信息回答下列问题。图中的①和②删除了部分显示信息,其中①处的信息应该是【17】,②处的信息应该是【18】。
请根据下图所示网络结构回答问题。如果服务器组的地址是202.13.157.10-202.13.157.50并且需要使用ACL过滤所有访问服务器群的特定端口数据包,那么ACL应部署在路由器_______的_______端口。
Serv-UFFP服务器的用户常规选项中不包含()。
在一台主机上用浏览器无法访问到域名为www.sun.com的网站,并且在这台主机上执行tracert命令时有如下信息分析以上信息,会造成这种现象的原因是()。
下列关于局域网设备的描述中,错误的是()。
下图是校园网某台主机在命令行模式执行某个命令时用sniffer捕获的数据包。请根据图中信息回答下列问题。该主机上执行的命令是【16】。
如果Ciseo路由器有如下SNMP的配置Router(config)#snmp-serverenabletrapsRouter(config)#snmp-serverhostadmin.tjut.edu.cnadmin那么,下列描述中错误的是
CiscoCatalyst6500交换机采用telnet远程管理方式进行配置,其设备管理地址是194.56.9.178/27,缺省路由是194.53.9.161,下列对交换机预先进行的配置,正确的是()。
某公司分配给人事部、培训部和销售部的IP地址块分别为192.67.159.224/27、192.67.159.208/28和192.67.159.192/28,这三个地址块经聚合后的地址块为
下列关于集线器的描述中,错误的是
随机试题
我国现阶段的爱国统一战线包括大陆和港澳台及海外两个范围的联盟。
人体组织声能衰减的主要原因不包括
下列属于子宫输卵管造影术的禁忌证的情况是
女孩,8岁。寒战、发热、咳脓痰2天。体格检查:体温39.2℃,左肺闻及湿啰音。X线胸片示左下胸部大片致密影。给予抗生素治疗。2天后症状加重,胸痛并呼吸困难,左胸呼吸音降低。胸片显示左胸膜腔积液。经胸腔引流3个月后,每日引流出脓性液体约5ml,脓腔大小约
29岁初产妇,妊娠39周,于晨4时临产,10时宫口开大3cm,20时宫口开大7cm,应诊断为()
老年人口腔保健受到乡政府的高度重视,请来口腔保健专家指导卫生院的工作。经过讨论研究,全乡1OOO多名60岁以上老年人口腔保健的详细计划方案形成了。掌握了老年人口腔健康基本资料后,制定的口腔保健目标是
关于减刑、假释的适用,下列哪些选项是错误的?(2013年卷二57题,多选)
阅读以下文字,完成以下问题。人何时最容易产生灵感呢?据有关专家调查,是在似睡非睡、似梦非梦中闪现念头时。专家们对298人进行调查后惊奇地发现,大约90%(262人)的人产生灵感的时间几乎在同一时间:“特别容易激发灵感的时间”是早晨起床后、深夜、沉
下面有关对视图的描述正确的是_______。
在学校中,教师的“职称”与教师个人“职工号”的联系是()。
最新回复
(
0
)