首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
在文件IN30.DAT中有200组数据,每组有3个数,每个数均是3位数。函数readDat()是读取这200组数据存放到结构数组aa中。请编制函数jsSort(),其函数的功能是:要求在200组数据中找出条件为每组数据中的第二个数大于第一个数加第三个数之和
在文件IN30.DAT中有200组数据,每组有3个数,每个数均是3位数。函数readDat()是读取这200组数据存放到结构数组aa中。请编制函数jsSort(),其函数的功能是:要求在200组数据中找出条件为每组数据中的第二个数大于第一个数加第三个数之和
admin
2009-02-19
77
问题
在文件IN30.DAT中有200组数据,每组有3个数,每个数均是3位数。函数readDat()是读取这200组数据存放到结构数组aa中。请编制函数jsSort(),其函数的功能是:要求在200组数据中找出条件为每组数据中的第二个数大于第一个数加第三个数之和,其中满足条件的个数作为函数jsSort()的返回值,同时把满足条件的数据存入结构数组bb中,再对结构数组bb中的数据按照每组数据的第二个数加第三个数之和的大小进行降序排列,排序后的结果仍重新存入结构数组bb中,最后调用函数writeDat()把结果bb输出到文件OUT30.DAT中。
注意:部分源程序已给出。
请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。
试题程序:
#include 〈stdio.h>
#include 〈string.h>
#include 〈conio.h>
typedef struct
{
int x1, x2, x3;
} Data;
Data aa[200], bb[200];
int jsSort()
{
}
main ( )
{
int count;
readDat();
count = jsSort (); /* 返回满足条件的个数 */
writeDat(count);
}
readDat()
{
FILE *in;
int i;
in = fopen("IN30.DAT", "r");
for(i=0; i〈200; i++)
fscanf(in, "%d %d %d", &aa
.x1, &aa
.x2, &aa
.x3);
fclose(in);
}
writeDat(int count)
{
FILE *out;
int i;
out= fopen("OUT30.DAT", "w");
clrscr();
for(i=0; i〈count; i++)
{
printf("%d, %d, %d 第二个数+第三个数=%d\n", bb
.x1, bb
.x2,
bb
.x3, bb
.x2+bb
, x3);
fprintf(out, "%d, %5d, %d\n", bb
.x1, bb
.x2, bb
.x3);
}
fclose(out);
}
选项
答案
int jsSort() { int i, cnt=0, j; Data ch; for(i=0; i〈200; i++) if(aa[i].x2>aa[i].x1+aa[i].x3) /*如果第二个数大于第一个数加第三个数之和*/ { bb[cnt]=aa[i]; /*则把该组数据存入结构数组bb中*/ cnt++; /*统计满足条件的数据的组数*/ } for(i=0; i〈cnt-1; i++) /*对结构数组bb中的数据按照每组数据的第二个数*/ for(j=i+1; j〈cnt; j++) /*加第三个数之和的大小进行降序排列*/ if(bb[i].x2+bb[i].x3〈bb[j].x2+bb[j].x3) { ch=bb[i]; bb[i]=bb[j]; bb[j]=ch; } return cnt; /*返回满足条件的个数*/ }
解析
本题考查对结构体数组中的元素的各个域的操作。首先利用一个for循环来依次取得结构体数组中的各个元素,之后按照题目要求对当前的元素的各个域进行条件判断,由语句“if(aa
.x2>aa
.x1+aa
.x3)”来实现。如果该条件成立,则把被判断元素存放到数组bb中去,当符合条件的所有元素被找完后,按照“每组数据中的第二个数加第三个数之和的大小”进行从大到小的排序。解答本题的关键是要弄清被处理对象是结构体变量中的某个域,而不是结构体变量本身。
转载请注明原文地址:https://kaotiyun.com/show/CYcZ777K
本试题收录于:
三级数据库技术题库NCRE全国计算机三级分类
0
三级数据库技术
NCRE全国计算机三级
相关试题推荐
下述程序为一数据段,正确的判断是( )。 1 DATA SEGMENT 2 X DB 385H 3 VAR=1 4 VAR EQU 2 5 ENDS
下列说法中错误的是( )。
在1000H单元中有一条二字节指令JMP SHORT LAB,如果其中偏移量分别为30H、 6CH、0B8H,则转向地址LAB的值分别为【 】;106EH; 10BAH。
为了提高I/O设备的使用效率,操作系统必须支持I/O设备的共享,并优化这些设备的使用。在Windows98中,对于独占设备(如打印机等),系统使用了某种技术,把它们改造成以顺序并发方式使用的共享设备。这种技术称为_______。
将PC机接入有线电视网(Cable TV或CATV),利用有线电视网进行数据传输,从而达到高速访问因特网的目的的设备是【 】。
若用户初始化堆栈时,(SP)=0000H则该堆栈的可使用空间是( )。
在保护模式下,假设已知当前中断的中断类型为5,中断描述符表的基地址为300H,那么中断描述符在中断描述符表中的起始地址( )。
嵌入式系统广泛使用微控制器(MCU),下面关于MCU的叙述中错误的是()。
嵌入式系统开发时所用的集成开发环境,包含许多软件工具。下面所列举的工具中,哪一个不属于集成开发环境所包含的软件工具。()
嵌入式系统的开发过程按顺序可以分成【77】分析与规格说明、系统设计、【78】设计、系统集成与测试等4个阶段,测试的目的是验证模块/系统的功能和性能,以及发现错误。
随机试题
血小板正常值为()
严重性吸气性呼吸困难最主要的特点为()
X线经被照体形成X线信息影像,其质量决定于
下列选项中,不属于项目非财务分析内容的是()。(2011年)
根据个人独资企业法律制度的规定,下列关于个人独资企业法律特征的表述中,正确的有()。
现代人力资源管理的测量技术包括()。
请认真阅读下列材料,并按要求作答。请根据上述材料完成下列任务:依据拟定的教学目标,设计导入和新授环节的教学活动并说明理由。
Asagiantofthestockmarket,Appleisunusual.Formuchofthepast20years,threecompanieshavealternatedintheroleof
请根据下图所示网络结构回答下列问题。如果该网络内服务器群的IP地址为192.168.33.11一192.168.33.25,并且采用一种设备能够对服务器提供如下保护措施:发送到服务器群的数据包将被进行过滤检测,如果检测到恶意数据包时,系统发出警报并阻
A、Lookingforapersontotalkto.B、Workingonatroublemakingtalking.C、Tryingtounderstandthetwogenders.D、Tryingtound
最新回复
(
0
)