首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
已知数据文件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
53
问题
已知数据文件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全国计算机三级
相关试题推荐
为了使AX和BX寄存器中的两个16位二进制数具有相同的符号位,下面的程序段中应填写什么指令?PUSHAX____________TESTAX,8000HJZSAMEXORBX,8000HSAME:POPAX
下面程序段中,当满足条件转到NEXT标号执行时,AL中的值正确的是______。 CMP AL,0FBH JNL NEXT … NEXT......
嵌入式系统硬件的核心是CPU。下面关于嵌入式系统CPU特点的叙述中,错误的是()
对于嵌入式Linux而言,Bootloader完成的工作步骤不包括如下()项。
在下图所示的高端嵌入式系统的软件组成图中,A应为【65】_______程序,B应为【66】_______程序。
当条件为非负数时,将R1指示的内存中16位数据加载到R0寄存器中,ARM指令为()。
汉字有多种不同的编码标准,下面关于不同编码标准之间关系的叙述中,错误的是()。
在ADS1.2的集成开发环境中,若生成的输出文件需要包含所有的调试信息,那么,生成目标应该选择为【79】。若目标系统地址映射关系比较复杂时,应使用【80】格式的文件来说明地址映射方式。
在ARM处理器中,作为记录程序状态的寄存器是【49】_______,其中状态位T的作用是在ARM状态与Thumb状态间进行切换,当T=1时处理器处于的状态是【50】_______状态。
具有wi—Fi功能的手机、平板电脑、笔记本电脑等终端设备,需要在有“热点”的地方才可能接入无线网络。所谓“热点”其正式的名称是__________【45】,它实际上是一个无线交换机或无线__________【46】,室内覆盖距离一般仅为30m左右,室外通常
随机试题
(2014年)我国某汽车公司并购了某一发达国家的汽车公司。该发达国家具有发达的金融市场,能够进行所有的传统金融交易和现代金融衍生品交易。该汽车公司并购中的运作行为和并购后的运营模式是:(1)为了补充并购资金的不足,从国内商业银行取得了5年期浮动利率的美元贷
给出程序框图,用信号量semWait、semSignal操作控制男舞客或女舞客进入舞厅的过程,男、女舞客的进入舞厅各为一个独立的程序,说明各个信号量的意义及初值。假定初态时舞厅空。
对从事国际海运和航空运输业的利润实行征税的是()
Ifamotherpusheshersmallsoninaswing,givingonlyalightforceeachtimehereturns,eventuallyhewillbeswingingquit
引起婴幼儿缺铁性贫血的最根本原因是
借贷记账法中,记入账户贷方表示()。
我国现行的国有企业流动资金的供应方式是()。
已知R3=0x80001000,R4=0x00A00010,执行ARM指令MOVR3,R4,LSL#8后,R3的值为()。
Whoeverhasfinishedthetaskaheadoftimewillberewarded,thoughwedon’tknowwho______willbe.
BritishCuisine:TheBestofOldandNewBritishcuisine(烹饪)hascomeofageinrecentyearsaschefs(厨师)combinethebestof
最新回复
(
0
)