首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
已知数据文件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
33
问题
已知数据文件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全国计算机三级
相关试题推荐
对于安装WindowsXP的PC来说,在启动盘的根目录中有一个引导菜单文件(系统安装时创建的一个文本文件),用于控制操作系统的引导,该文件的文件名是______。A)BOOT.INIB)IO.SYSC)MSDOS.SYSD)WININIT
对于ARM处理器以下不属于逻辑运算指令助记符的是()。
在μC/OS-II启动过程中,BootLader执行完毕后,执行应用程序主文件中main()时,依次执行的三个主要的函数是:①OSInit();②【67】_______;③【68】_______。
如下几种Bootloader中,用于Linux操作系统引导程序加载时所支持不同体系结构处理器种类最多的是()。
引导加载程序在引导加载操作系统时,设置相关的寄存器和资源,跳转到【73】所在的空间,执行其引导,这个过程中可以给【74】传递参数,可以控制系统启动的模式。
在Internet中负责选择合适的路由,使发送的数据分组(packet)能够正确无误地按照地址找到目的计算机所使用的【45】协议簇中的【46】协议。
嵌入式系统开发时,应该根据应用需求来选择相应的开发工具软件。RVDS是一个较常用的开发工具软件,下面的有关叙述中错误的是()。
具有Wi—Fi功能的手机、平板电脑、笔记本电脑等终端设备,需要在有“热点”的地方才可能接入无线网络。所谓“热点”其正式的名称是【45】,它实际上是一个无线交换机或无线【46】,室内覆盖距离一般仅为30m左右,室外通常可达100~300m。
汉字有多种不同的编码标准,下面关于不同编码标准之间关系的叙述中,错误的是()。
某二叉树节点的对称序序列为A、B、C、D、E、F、G,后序序列为B、D、C、A、F、G、E。则该二叉树对应的树林包括_____棵树。
随机试题
法兰连接是化工管路最常用的连接方式。()
我国票据法规定的银行本票仅限于_______。
呈蛙状腹的大量腹水最常见于
A.期门B.神门C.章门D.梁门治疗脾病,宜选用的腧穴是
男,40岁。有乙型肝炎病毒感染史。近2个月来感肝区疼痛,食欲减退,昨晚出现低血糖症状,今来院就诊,查体发现肝大。该病人即行肝动脉栓塞化疗术。术后的饮食指导不包括
用药咨询包括
以下哪种休克的治疗最适用于使用阿托品
某简支箱形截面梁,跨度60m,梁宽1m,梁高3.6m,采用Q345钢(16Mn钢)制造,在垂直荷载作用下,梁的整体稳定系数φb为( )。
人力资本理论认为,人力资本是经济增长的关键,教育是形成人力资本的重要力量。这一理论的主要缺陷是()。
(2018年吉林)“个性化定制”就在我们身边,“互联网+”大背景下,我们可以张扬更多的个性,从一件T恤到一本书,只要你愿意,生活中就会充满惊喜。这种消费属于()。
最新回复
(
0
)