首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
已知数据文件IN53.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数JsVal(),其功能是:依次从数组a中取出一个4位数,如果该4位数连续大于该4位数以前的5个数且该数是偶数,则统计出满足此条件的数个数cn
已知数据文件IN53.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数JsVal(),其功能是:依次从数组a中取出一个4位数,如果该4位数连续大于该4位数以前的5个数且该数是偶数,则统计出满足此条件的数个数cn
admin
2009-02-15
55
问题
已知数据文件IN53.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数JsVal(),其功能是:依次从数组a中取出一个4位数,如果该4位数连续大于该4位数以前的5个数且该数是偶数,则统计出满足此条件的数个数cnt并把这些4位数按从大到小的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到文件OUT53.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("in53.dat","r");
for(i=0;i<MAX;i++)
fscanf(fp,"%d",&a
);
fclose(fp);
}
void main()
{
int i;
readDat();
jsVal();
print f ( "满足条件的数=%d\n", cnt);
for(i=0;i<cnt;i++)
printf("%d",b
);
printf("\n");
writeDat ( );
}
writeDat ()
{
FILE *fp;
int i;
fp=fopen("out53.dat","w");
fprintf(fp,"%d\n",cnt);
for(i=0;i<cnt;i++)
fprintf(fp,"%d\n",b
);
fclose(fp);
}
选项
答案
void jsVal () { int i,j, flag; for (i=5; i<MAX; i++ ) { for (j=i-5; j<i;j++) { if(a[i]>a[j]) /*如果该4位数连续大于它以前的5个数*/ flag=l; /*则置flag为1*/ else flag=0; /*否则置flag为0*/ if (a[i]%2!=0) /*如果该四位数为奇数*/ flag=0; /*则置flag为0*/ if (flag==0) break; /*如果flag为0, 则退出循环*/ } if (flag==1) { b[cnt] =a[i]; /*把满足条件的数存入数组b中*/ 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; } }
解析
本题考查的知识点如下:
(1)使用循环对数组的元素进行比较和排序。
(2)强行退出循环结构。
在本题中,数组b中的数据要满足的条件有两个。在这里,不再使用判断结构中条件的布尔运算,而采用一种新的方法——设置标志变量flag。当数据不满足某一条件时,如数据不是偶数,将flag设置为0:当flag等于0时,可直接退出本层循环结构,进入外层的循环中。否则,根据题意要求,将数据存入数组b中。对数组b中的数据排序,使用“选择排序法”。
转载请注明原文地址:https://www.kaotiyun.com/show/iwfZ777K
本试题收录于:
三级信息管理技术题库NCRE全国计算机三级分类
0
三级信息管理技术
NCRE全国计算机三级
相关试题推荐
A、 B、 C、 D、 B基于WindowsServer2003系统的DHCP服务器,在[IP地址范围]界面中,可以用长度(如16)或点分十进制地址(如255.255.0.0)两种方法指定子网掩码。
A、 B、 C、 D、 B交换机全双工端口带宽的计算方法是:端口数×端口速率×2。一台交换机具有24个10/100Mbps电端口与2个1000Mbps光端口。如果所有端口都工作在全双工状态,即10/100Mb
A、 B、 C、 D、 D分组转发(Forwarding)是指在互联网中路由器转发IP分组的物理传输过程与数据报转发机制;源路由器指发送主机的默认路由器:目的路由器指该分组的目的主机所连接的路由器;当分组的
A、 B、 C、 D、 A宽带城域网的网络平台采用层次结构,分为核心交换层、边缘汇聚层和用户接入层三部分。用户接入层解决的是“最后一公里”的问题。
不考虑应用服务器和路由器对内部用户的权限、服务等限制的情况下,单纯从拓扑结构来看,在应用服务器关机的情况下,公司员工是能够连接上因特网的。如果应用服务器对内部的用户进行身份认证和授权、计费甚至对IP地址的分配有严格的控制,则在应用服务器关机的情况下,用户无
A、 B、 C、 D、 D性能管理包括系统监视器、性能日志和警报。系统监视器提供有关操作系统特定组件和用于搜集性能数据的服务器程序所使用资源的详细数据,并图形化显示性能监视数据。性能日志和警报提供数据记录能力
下列选项中,关于城域网的说法错误的是()。
pwd的意义是()。
信息安全是要防止非法攻击和病毒的传播,保障电子信息的有效性。从具体的意义上来理解,需保证以下()。Ⅰ.保密性Ⅱ.完整性Ⅲ.可用性Ⅳ.可控性
办公自动化简称OA,它的意义在于()。
随机试题
平板阀的驱动形式有()
“休眠效果”
下面哪一项不是异源性ACTH综合征的生化特征
产科领域容易致成DIC的疾病妊娠末期无痛性阴道流血应首先考虑
下列关于酒的诗词与作者对应不正确的是()。
下列说法正确的有()。
【背景资料】某高架桥工程,其中有三跨为普通钢筋混凝土连续梁,需现场浇筑,跨径组合为30m+40m+30m,桥宽18m,桥下净高9m。模板支架在已经上一级批准的施工组织设计中有详细的专项设计。项目经理为节约成本,就地取材,使用了附近工程
下列表达式不正确的是()。
我国公民的平等权不包括()。
私の趣味は切手を集めることだ。
最新回复
(
0
)