首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
文件IN_DAT中存有200组数据。每组有3个数,每个数均是三位数。函数ReadData()是读取这200组数据存放到结构数组inBuf中。请编制函数dataSort(),其功能是:要求在200组数据中找出条件为每组数据中的第一个数大于第二个数加第三个数之
文件IN_DAT中存有200组数据。每组有3个数,每个数均是三位数。函数ReadData()是读取这200组数据存放到结构数组inBuf中。请编制函数dataSort(),其功能是:要求在200组数据中找出条件为每组数据中的第一个数大于第二个数加第三个数之
admin
2021-09-09
77
问题
文件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://kaotiyun.com/show/oYOZ777K
本试题收录于:
三级网络技术题库NCRE全国计算机三级分类
0
三级网络技术
NCRE全国计算机三级
相关试题推荐
下列关于WindowsServer2003系统下DHCP服务器的描述中,错误的是()。
R1,R2是一个自治系统中采用RIP路由协议的两个相邻路由器,R1的路由表如下图(a)所示,当R1收到R2发送的如下图(b)的(V,D)报文后,R1更新的五个路由表项中距离值从上到下依次为()。
如下图所示,某园区网用10Gbps的POS技术与Internet相连,POS接口的帧格式是SONET。园区网内部路由协议采用OSPF,与Internet的连接使用静态路由协议。该园区网还通过一台Cisco2511和Modempool设备为用户提供拨号入网
如下图所示,某园区网用2.5Gbps的POS技术与Internet相连,POS接口的帧格式是SONET。路由协议的选择方案是,园区网内部采用OSPF协议,园区网与Interact的连接使用静态路由。请阅读以下R1和R3的部分配置信息,并补充空白处的配置
一台Cisco6500交换机的4/1~24端口用于连接单个PC机和服务器,若需加快PC机和服务器接入到网络中的速度,STP可选功能的正确配置是()。
下列关于数据备份方法的描述中,错误的是
一台Cisco6500交换机的4/1~24端口用于连接单个PC机和服务器,若需加快PC机和服务器接入到网络中的速度,STP可选功能的正确配置是
Windows2003系统DNS服务器中增加一条资源记录如下图所示,下列关于该资源记录的描述中,正确的是()。Ⅰ创建的资源记录为邮件交换器记录Ⅱ创建该记录时,在反向查找区域中创建相应的指针记录Ⅲ该记录被客户查询时,存放到缓存中的时间为36
下列关于集线器的描述中,错误的是()。
下列关于集线器的描述中,错误的是()。
随机试题
重农主义
若要提高螺纹连接的自锁性能,可以()。
项目融资的框架结构中所包括的基本模块有( )。
基金业协会应当在私募基金登记材料齐备后()个工作日内通过网站公告私募基金名单以及基本情况的方式,为私募基金办结登记手续。
若不考虑其他因素,人民币升值对出口的影响是()。
资料档案收集与入住期物业管理工作密切相关,须同步进行的是()。
《中华人民共和国计量法》于()起施行。
下列《水浒传》中人物、绰号及其事迹对应正确的一项是()。
水平迁移是指处于同一抽象和概括水平的经验之间的相互影响,是在难度、复杂程度上属于同一水平层次的两种经验之间的相互影响;垂直迁移是指处于不同抽象和概括水平的经验之间的相互影响,是具有较高概括水平的上位经验与具有较低概括水平的下位经验之间的相互影响。根据上述
Thework-lifebalanceisdead.Bythis,I’mnotadvocatingthatyoushouldgiveupyourpursuitofhavingafulfillingcareeran
最新回复
(
0
)