首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
己知数据文件IN45.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:把千位数字和十位数字重新组合成一个新的十位数ab(新十位数的十位数字是原4位数的千位数字,新十位数的个位数字是原4
己知数据文件IN45.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:把千位数字和十位数字重新组合成一个新的十位数ab(新十位数的十位数字是原4位数的千位数字,新十位数的个位数字是原4
admin
2009-02-15
31
问题
己知数据文件IN45.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:把千位数字和十位数字重新组合成一个新的十位数ab(新十位数的十位数字是原4位数的千位数字,新十位数的个位数字是原4位数的十位数字),以及把个位数和百位数组成另一个新的十位数cd(新十位数的十位数字是原4位数的个位数字,新十位数的个位数字是原4位数的百位数字),如果新组成的两个十位数ab-cd≥10且ab-cd≤20且两个数均为偶数,同时两个新十位数字均不为零,则将满足此条件的4位数按从人到小的顺序存入数组b中,并要计算满足上述条件的4位数的个数cnt,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT45.DAT文件中。
注意:部分源程序已给出。
程序中已定义数组:a[200],b[200],已定义变量:cnt。
请勿改动主函数main0、读函数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("IN45.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\n",b
);
printf("\n");
writeDat();
}
writeDat()
{
FILE *fp;
int i;
fp=fopen("OUT45.DAT","w");
fprintf(fp,"%d\n",cnt);
for(i=0;i<cnt;i++)
fprintf(fp, "%d\n",b
);
fclose(fp);
}
选项
答案
void jsVal( ) { int i, thou, hun, ten, data, j; int ab, cd; for (i=0 ;i<200; i++) { thou=a [i]/1000; /*求四位数的千位数字*/ hun=a [i]%1000/100; /*求四位数的百位数字*/ ten=a[i]%100/10; /*求四位数的十位数字*/ data=a[i]%10; /*求四位数的个位数字*/ ab=thou*10+ten; /*ab的十位数字是原4位数的千位数字,个位数字是原4位数的十位数字*/ cd=data*10+hun; /*cd的十位数字是原4位数的个位数字,个位数字是原4位数的百位数字*/ if((ab-cd>=10) && (ab-cd<=20) && (ab%2==0) && (cd%2==0) &&ab!=0 && cd!=0) { /*如果ab-cd≥10且ab-cd≤20且两个数均为偶数,且均不为零*/ b[cnt] =a [i]; /*将满足条件的数存入数组b中*/ cnt++; /*统计满足条件的数的个数*/ } } for (i=0;i<cnt-1;i++) /*将数组b中的4位数按从大到小的顺序*/ for (j=i+1; j<cnt; j ++) if (b[i]<b[j ] ) { data=b [i]; b[i]=b[j]; b[j] =data; } }
解析
本题考查的知识点如下:
(1)将一个4位整数各位上的数转变成单独的个位数。
(2)判断结构中多个条件的布尔运算。
(3)循环的使用。
(4)数据的排序。
在本题中,首先要将一个4位数的千位、百位、十位、个位拆成独立的数字。这里借助特殊运算符号“%”(取余)和“/” (整除)。将一个4位数整除1000则可得到其千位上的数字,除以1000取余再整除100则可得百位上的数字,除以100取余再整除10则可得十位上的数字,除以10取余则得个位上的数字。若一个数除以2取余为0,则这个数是偶数。题目中所给的条件必须同时满足,所以各条件之间用“与”运算。最后的排序采用“选择排序法”。
转载请注明原文地址:https://kaotiyun.com/show/W3fZ777K
本试题收录于:
三级信息管理技术题库NCRE全国计算机三级分类
0
三级信息管理技术
NCRE全国计算机三级
相关试题推荐
攻击者冒充信息源节点用户,将伪造的信息发送给信息的目的节点,这属于()。
备份上一次完全备份后产生和更新的所有新的数据称为()。
下列对IPv6地址FE80:0:0:0801:FE:0:0:04A1的简化表示中,错误的是
CiscoPIX525防火墙能够进行操作系统的映像更新、口令恢复等操作的模式是_____。
阅读以下说明,回答问题。说明:某小公司的网络拓扑如图13-11所示。其中路由器具有ISDN模块,公司网络通过ISDN连接到ISP。1)在应用服务器关机的情况下,公司员工能连接上Internet吗?简要解释。(2)在路由器和ISDN之间需要加入
在病毒的生存期内,病毒将与自身完全相同的副本放入其他程序或者硬盘上的某些特定分区中,这个阶段称之为______。
在设计点对点(AdhoC)模式的小型无线局域时,应选用的无线局域网设备是
下列关于干线子系统设计的描述中,错误的
某公司使用Windows2003DHCP服务器对内部主机的IP地址进行管理,DHCP服务器的新律作用域及新建保留配置如图2和图3所示。某DHCP客户机从该DHCP服务器获取IP地址过程中,在客户机捕获的报文及相关分析如图4所示。请补充图4中(1
A、 B、 C、 D、 A城域网(MAN)的覆盖范围一般在一个城市或地区的内部,距离通常在几十公里之内,其设计目标是满足覆盖范围内大量企业、机关、公司的多个局域网互联的请求,以实现大量用户之间的数据、语音、图
随机试题
水痘开始出皮疹是在发热后
以下是湖北地区生产的名茶有
吗啡镇痛是由于
滴制法制备软胶囊的丸粒大小取决于
法官下列行为中应该受到纪律处分的是:()
如图4-79所示水平杆AB=l,质量为2m,剪断绳BC瞬间,A处约束力为()。
东风公司购入旧设备一台,实际支付价款8000元,支付运杂费500元,安装费1000元,出售单位的该设备账面原值为10000元,已提折旧3500元。则该设备入账的原值为()。
有关增值税纳税人的下列表述中,不正确的是()。
什么是数学课堂教学过程的优化?怎样做到数学课堂教学的优化?
发展低碳经济作为具有全球共识性的选择,将改变每一个企业、单位、家庭、个人的生产、工作、消费和生活的方式。然而,我国的低碳经济发展之路与发达国家有显著的不同。发达国家早已走过了工业化阶段,正在朝着全面信息化的方向前进。而我国是一个发展中国家,人口众多、经济发
最新回复
(
0
)