首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
已知数据文件INl5.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中。请编制函数jsVal(),其功能是:依次从数组a中取出一个4位数,如果该4位数连续小于该4位数以后的5个数且该数是偶数,则统计出满足此条件的数的个数cn
已知数据文件INl5.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中。请编制函数jsVal(),其功能是:依次从数组a中取出一个4位数,如果该4位数连续小于该4位数以后的5个数且该数是偶数,则统计出满足此条件的数的个数cn
admin
2009-02-19
63
问题
已知数据文件INl5.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中。请编制函数jsVal(),其功能是:依次从数组a中取出一个4位数,如果该4位数连续小于该4位数以后的5个数且该数是偶数,则统计出满足此条件的数的个数cnt,并把这些4位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT15.DAT文件中。
注意:部分源程序已给出。
程序中已定义数组:a[200],b[200],已定义变量:cnt。
请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。
试题程序:
#include〈stdio.h>
#define MAX 200
int a[MAX] , b[MAX], cnt = 0;
void jsVal()
{
}
void readDat()
{
int i;
FILE *fp;
fp = fopen("IN15.DAT", "r");
for(i = 0; i〈 MAX; i++)
fscanf(fp, "%d", &a
);
fclose(fp);
}
main ( )
{
int i;
readDat ( );
jsVal ( );
printf("满足条件的数=%d\n", cnt);
for(i = 0; i〈 cnt; i++)
printf("%d ", b
);
printf("\n");
writeDat();
}
writeDat()
{
FILE *fp;
int i;
fp = fopen("OUT15.DAT", "w");
fprintf(fp, "%d\n", cnt);
for(i = 0; i〈 cnt; i++)
fprintf(fp, "%dkn", b
);
fclose(fp);
}
选项
答案
void jsVal() { int i, j, flag=0; for(i=0; i〈MAX-5; i++) /*如果该4位数连续小于该4位数以后的5个数*/ { for(j=i+1; j〈=i+5; j++) { if(a[i]〈a[j]) flag=1; /*则置flag为1*/ else flag=0; /*否则置flag为0*/ if(a[i]%2!=0) /*如果该数是奇数则置flag为0*/ flag=0; if(flag==0) /*如果flag为0,则退出循环*/ break; } if(flag==1) /*如果flag为1,则将该数存入数组b中,并统计满足条件的数的个数*/ { b[cnt]=a[i]; cnt++; } } for(i=0;i〈cnt-1; i++) /*将数组b中的数按从小到大的顺序排序*/ for(j=i+1; j〈cnt; j++) if(b[i]>b[j]) { flag=b[i]; b[i]=b[j]; b[j]=flag; } }
解析
根据题意可知,要编制函数的功能有两部分:一是找出满足条件的4位数;二是对找出的数进行从小到大排序。首先利用一个for循环来依次从数组中取得4位数,接着用当前得到的4位数与该数后面的5个数(可以用循环次数来控制)依次进行比较,如果该数比它后面的5个数都小,则给标志变量flag赋值1。接着对flag进行判断,如果不为1,则该数肯定不符合条件,直接去取下一个数:若flag值为1,再来判断该数是否是偶数,如果恰好该数又是偶数,则把该数加入到数组b中。这样就可以依次取出符合条件的数,然后利用选择法对b数组中的元素进行从小到大的排序。
转载请注明原文地址:https://kaotiyun.com/show/SdcZ777K
本试题收录于:
三级数据库技术题库NCRE全国计算机三级分类
0
三级数据库技术
NCRE全国计算机三级
相关试题推荐
鼠标器、打印机和扫描仪等设备都有一个重要的性能指标,即分辨率,它用每英寸的像素数目来描述,通常用三个英文字母【 】来表示。
汇编语言源程序经汇编后不能直接生成( )。
将多台计算机互连成为以太网时,通常除了使用以太网卡和双绞线之外,还必须使用的一种网络设备是【】。
下面是8086/8088微处理器中有关寄存器的叙述; ①通用寄存器AX、BX、CX、DX既可以存放8位或16位数据,也可以作为偏移地址寄存器访问存储器单元 ②指针和变址寄存器SP、BP、sI和DI只能存放偏移地址 ③段寄存器只能存放
计算机中有多种总线,按照层次结构可以分为处理器总线、存储器总线、系统总线和【 】。
执行下列指令序列后,完成的功能是将(DX,AX)的值______。 MOV CL,04 SHL DX,CL MOV BL,AH SHL AX,CL SHR BL,CL OR DL,BL
开发嵌入式系统时,需要构建一个宿主机一目标机的开发环境。若目标机是裸机,那么为了调试和下载软件需要将调试仿真器连接到目标机的哪一种接口?()。
IP协议在计算机网络的互连中起着重要的作用。下面有关IP地址的叙述中,错误的是()。
已知内存0x80000000中的内容为0x33,0x80000001中的内容为0x31,0x80000002中的内容为0x30,0x80000003中的内容为0x32,则ARM在大端模式下地址0x80000000所指示的一个字为()。
iOS的系统架构分为四个层次,从底层到高层依次是:核心操作系统层、核心服务层、媒体层和【69】层。所有iOS应用程序都由面向对象的程序设计语言【70】驱动。
随机试题
皮亚杰认为中班时期的幼儿思维方式为()
下列哪一项属于同定信息()
患儿,男,5岁,发热1天,有咽痛,家长给予头孢氨苄口服,次日热不退,全身出现弥漫性针尖大小红色皮疹,疹间皮肤充血,咽红、扁桃体Ⅱ度肿大,表面有脓性分泌物。该患儿3周后出现眼睑水肿、尿少、血尿、头痛,最可能出现的并发症是
患者,刘某,明日在硬膜外麻醉下行左肾切除术,给予大量不保留灌肠,灌肠液的温度应是
论证比选方案的步骤有哪些?
债券面值3000万元,票面利率为12%,发行期限20年,按面值等价发行,发行费用为筹资总额的5%,所得税税率为25%,每年支付一次利息,则该笔债券的成本是()。
甲公司有一笔闲置资金,可以进行为期一年的债券投资,计划一年后出售购入债券,市场上有两种债券可供选择,相关资料如下:(1)两种债券的面值均为1000元,到期时间均为3年后。(2)A种债券的票面利率为10%,每年末付息一次,到期支付1000元,到期收益率为
A、 B、 C、 D、 D本题属于单组同规律类图形推理。各项均为内部图形与外部图形相连的多边形。
不当得利,是指没有法律和合同上的根据而受利益,致使他人受到损失。按法律规定,受损失的一方有请求不当得利人返还所得到的利益的权利。而不当得利人有返还利益的义务。据此定义,下列属于不当得利的是( )。
先阅读以下说明,然后回答问题1、问题2与问题3。[说明]最新网络病毒为Worm.Zotob病毒及其变种(Worm.Zotob.b),该病毒会在被感染的电脑上开设后门,黑客可以通过这些后门对其进行远程控制,Worm.Zotob利用了微软公布的
最新回复
(
0
)