首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
已知数据文件IN26.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中。请编制一函数jsVal(),其功能是:把千位数字和个位数字重新组成一个新的十位数(新十位数的十位数字是原4位数的千位数字,新十位数的个位数字是原4位数的
已知数据文件IN26.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中。请编制一函数jsVal(),其功能是:把千位数字和个位数字重新组成一个新的十位数(新十位数的十位数字是原4位数的千位数字,新十位数的个位数字是原4位数的
admin
2009-02-19
24
问题
已知数据文件IN26.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中。请编制一函数jsVal(),其功能是:把千位数字和个位数字重新组成一个新的十位数(新十位数的十位数字是原4位数的千位数字,新十位数的个位数字是原4位数的个位数字),把百位数字和十位数字组成另一个新的十位数(新十位数的十位数字是原4位数的百位数字,新十位数的个位数字是原4位数的十位数字),如果新组成的两个十位数均是奇数并且两个十位数中至少有一个数能被5整除,同时两个新十位数字均不为零,则将满足此条件的4位数按从大到小的顺序存入数组b中,并要求计算满足上述条件的4位数的个数cnt,最后调用写函数writeDat(),把结果cnt及数组b中符合条件的4位数输出到 OUT26.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("IN26.DAT", "r");
for(i = 0; i〈 MAX; i++)
fscanf(fp, "%d", &a
);
fclose(fp);
}
main ( )
{
int i;
readDat ( );
j sVal ();
printf("满足条件的数=%d\n", cnt);
for(i = 0; i〈 cnt; i++)
printf("%d ", b
);
printf ( "\n" );
writeDat ( );
}
writeDat ( )
{
FILE *fp;
int i;
fp = fopen("OUT26.DAT", "w");
fprintf(fp, "%d\n", cnt);
for(i = 0; i 〈 cnt; i++)
fprintf(fp, "%d\n", bill);
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=1O*thou+data; /*把千位数字和个位数字重新组成一个新的十位数*/ cd=10*hun+ten; /*把百位数字和十位数字组成另一个新的十位数*/ if(ab%2==1 && cd%2==1 && (ab%5==0 || cd%5==0) && ab!=0 && cd !=0) { /*如果这两个十位数均是奇数并且两个十位数中至少有一个数能被5整除,同时两个新十位数字均不为零*/ b[cnt]=a[i]; /*则把满足条件的数存入数组b中*/ } } for(i=0; i〈cnt-1; i++) /*将数组b中的数按从大到小的顺序排列*/ for(j=i+1; j〈cnt; j++) if(b[i]〈b[j]) { data=b[i]; b[i]=b[j]; b[j]=data; } }
解析
本题看起似乎比较繁琐,但只要仔细分析,把思路理清,还是不难解决的。由题意可以列出解题步骤如下:
(1)求得当前所取得的整数的千位、百位、十位、个位上的数字值。可以借助“/”(除法)与“%”(取余)两个运算符。“thou=a
/1000;hun=a
%1000/100;ten=a
%100/10;data=a
%10;”这4条语句可以依次取得原4位数的千位、百位、十位及个位上的数字值。
(2)按照要求(第一个十位数:新十位数的十位数字是原4位数的千位数字,新十位数的个位数字是原4位数的个位数;第二个十位数:新十位数的十位数字是原4位数的百位数字,新十位数的个位数字是原4位数的十位数字)把求得的各个位上的数字值组成两个新的十位数ab和cd,用“ab=10*thou+data;cd=10*hun+ten;”语句实现。
(3)对新组成的两个十位数进行条件判断(判断条件的语句是“if(ab%2==1&&cd%2==1&&(ab%5==0||cd%5==0)&&ab!=0&&cd!=0)”)。如果满足条件,则把原来的4位数放到数组b中,同时用一个计数器变量cnt求出满足条件的4位数的个数。
(4)对数组b中的4位数用选择法进行从大到小的排序。
转载请注明原文地址:https://jikaoti.com/ti/fpQ7FFFM
本试题收录于:
三级数据库技术题库NCRE全国计算机三级分类
0
三级数据库技术
NCRE全国计算机三级
相关试题推荐
Pentium微处理器为了支持多用户、多任务操作,提供了4个特权级。操作系统核心程序和用户程序的特权级分别是______。
按病毒的入侵途径可将病毒分为入侵型、操作系统型、( )4类。
执行下面的程序段后,(ES)为______。MAINDD01234567HLESDI,MAIN
有下列数据定义语句:DATASEGMENTADDRDWNUMBERNUMBERDB10ARRAY,DB5DUP(0)TABLElDDRTlRT2;(RTl,RT2是标号)
RS-232C标准在OSI参考模型中属于( )。
在软件测试中,检查各模块间接口关系、各模块组合在一起时的功能是否满足总的功能要求的测试是( )
Windows98内置了许多系统工具,用户利用这些工具可以对系统进行监视和维护。在下列叙述中,哪个是错误的?______
嵌入式系统的应用形式是多种多样的,不同的嵌入式应用系统,需要选择适合其应用需求的开发工具来进行开发。采用开发工具的主要目的是()。
如果一棵二叉树结点的前序序列是A,B,C,后序序列是C,B,A,则该二叉树结点的对称序序列
下面所列条目中,哪一项是当前开发工具的发展趋势?Ⅰ.采用三层Client/Server结构Ⅱ.对Web应用的支持Ⅲ.开放的、构件式的分布式计算环境
随机试题
大隧之外,其乐也泄泄!泄泄:
按病证分类的方书首推
公开招标在开标时,应当由()。
某投资组合由A、B两只股票构成,已知A、B两只股票收益率的变化方向和变化幅度完全相同,则下列表述中,正确的有()。
密切关注、正确分析竞争对手的报价属于()。
RPI卡环的最佳适应证是()。
《宪法》在序言中明确规定:“本宪法以法律的形式确认了中国各族人民奋斗的成果,规定了国家的根本制度和根本任务,是国家的根本法,具有最高的法律效力。”同时规定:“全国各族人民、一切国家机关和武装力量、各政党和各社会团体、各企业事业组织,都必须以宪法为根本的活动
鸦片战争以后,西方列强野蛮入侵,封建统治腐朽无能,国家战乱不已,人民饥寒交迫,中国人民和中华民族遭受世所罕见的深重苦难。要实现民族独立、人民解放和国家富强、人民富裕,就必须推翻封建专制统治,对中国社会进行根本变革。辛亥革命的爆发,是()
A、Sheisworriedabouttheseminar.B、Themankeepsinterruptingher.C、Shefindsittoohard.D、Shelacksinterestinit.D原文重
玉饰不仅能使佩戴者更美丽,还能促进其身体健康。
最新回复
(
0
)