首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
已知数据文件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
50
问题
已知数据文件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全国计算机三级
相关试题推荐
交换寄存器SI、DI的内容,正确的程序段是( )。
CPUf句存储器写入一个操作数时,在执行周期内,首先发出的信号是( )。
下面两条指令执行后,(AH)=【 】,(AL)=0AH; MOV AH, 10H MOVAL,10
VCD或者Karaoke CD盘片上的数据文件格式采用的是______。
8259A中,用户可以屏蔽指定的中断输入,方法是设置中断屏蔽寄存器IMR中相应位等于1,其使用的操作命令字是【 】。
由于Bootloader的实现依赖于CPU的体系结构,因此大多数Bootloader都分为stagel和stage2两大部分。依赖于CPU体系结构的代码,比如设备初始化代码等,通常都放在stagel中,且使用__________【73】语言来实现,以达到短
为提高SoC芯片设计效率,减少重复开发,通常将合格的经过验证的IC设计文件存储在数据库中,供反复使用。这些IC电路具有固定的不可再分解的功能特性,并受到知识产权保护,人们称之为“知识产权核”或“IP核”。按照IC设计文件的类型,IP核通常分为三种【41】、
如存储器的工作频率为333MHz,数据线宽度为32位,每个周期传输1次数据,则存储器的带宽=【63】MB/s。若存储器总线采用串行总线,以10位为一个数据帧(包含一个字节的存储数据),则总线带宽=总线频率/【64】。
如果要选择ARM处理器工作在外部中断模式,允许外部中断IRQ,禁止快速中断FIQ,使用Thumb工作状态,则需要设置的寄存器是()。
设有两个事务T1和T2,其并发操作序列如下表所示。则下面说法中正确的是________。
随机试题
不同CT值范围提示不同成分,下列叙述中不正确的是
应由在建工程、研发支出负担的职工薪酬,应该借记的账户有()。
膀胱结石的影像学表现中不正确的是
月经病的辨证要点有
可使血压偏低的因素是
以出让方式取得的土地使用权转让后,受让方改变原出让合同规定的土地用途的,必须取得()的同意。
下列各项中,可以用于分配辅助生产费用的方法有()。
anonymity
1925至1927年的大革命,规模宏伟,内涵丰富。与辛亥革命相比较,其不同点在于()
建立一个表单,表单文件名和表单控件名均为myform_b,表单标题为“订单管理”,表单其他功能如下:①表单中含有一个页框控件(PageFrame1)和一个“退出”命令按钮(Command1),单击“退出”命令按钮关闭并释放表单。②页框控
最新回复
(
0
)