首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
已知数据文件IN26.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中。请编制一函数jsVal(),其功能是:把千位数字和个位数字重新组成一个新的十位数(新十位数的十位数字是原4位数的千位数字,新十位数的个位数字是原4位数的
已知数据文件IN26.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中。请编制一函数jsVal(),其功能是:把千位数字和个位数字重新组成一个新的十位数(新十位数的十位数字是原4位数的千位数字,新十位数的个位数字是原4位数的
admin
2009-02-24
46
问题
已知数据文件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 ();
jsVal ();
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", 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=10*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中*/ cnt++; } } 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://kaotiyun.com/show/XRYZ777K
本试题收录于:
三级网络技术题库NCRE全国计算机三级分类
0
三级网络技术
NCRE全国计算机三级
相关试题推荐
设有属性A,B,C,D,以下表示中不是关系的是
Oracle数据库系统物理空间的使用是由下列哪一个(些)结构控制的?
第(38)至(41)题基于"学生-选课-课程"数据库中的三个关系:S(S#,SNAME,SEX,AGE),SC(S#,C#,GRADE),C(C#,CNAME,TEACHER)若要求查找选修"数据库技术"这门课程的学生姓名和成绩,将使用关系
关系中的某个属性不是该关系的主码或只是主码的一部分,但却是另一个关系的主码时,称该属性为
下列哪个工具不是Oracle数据库管理系统提供的工具?
下列______不是TCP/IP参考模型中的应用层协议。
在SYBASE数据库产品中提供面向对象的数据库建模工具的是
在下面的叙述中,属于TCP/IP协议特点的是Ⅰ.开放的协议标准,独立于特定的计算机硬件与操作系统Ⅱ.可以运行在局域网、广域网,更适用于互联网Ⅲ.整个TCP/IP设备在网络中具有惟一的Ip地址Ⅳ.可以提供多种可靠的用户
广域网覆盖的地理范围从几十公里到几千公里,其通信子网一般采用______技术。
由于逻辑错误或系统错误使得事务没有按预期的要求成功完成,这属于()。
随机试题
属于蛛网膜下腔阻滞的是
A、椎—基底动脉血栓形成B、大脑前动脉血栓形成C、大脑中动脉血栓形成D、蛛网膜下腔出血E、小脑出血有偏瘫、同向性偏盲、偏身感觉障碍,见于
A、淀粉指示剂B、喹哪啶红—亚甲蓝混合指示剂C、二苯胺指示剂D、邻二氮菲指示剂E、酚酞指示剂碘量法测定维生素C的含量,应选
驻深企业的境外人员以及经常往返于深港两地的交通员工应接受出入境检验检疫机关传染病监测体检。( )
登记账簿必须以财产为依据,利用复式记账的方法,将经济业务分门别类地登记到账簿中去。()
外国旅游者在乘飞机来华途中丢失行李,失主可向()索赔。
在新的历史条件下,弘扬雷锋精神、开展学雷锋活动,要不断赋予雷锋精神新的时代内涵。今天,雷锋勤俭节约的美德可以转化为低碳、节能等环保意识,雷锋助人为乐的品质可以转化为奉献、互助等志愿精神。材料体现的哲学原理是()。①价值选择和价值判断没有统一、
保障性安居工程
Anumberofprocessesorphaseshavebeenidentifiedastypicalofcreativethinking.【F1】Inwhatlogicallywouldbethefirstph
TwoCulturalDimensionsCultureisthecollectiveprogrammingofthemindwhichdistinguishesthemembersofonecategoryofpeo
最新回复
(
0
)