首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
已知数据文件IN86.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:把千位数字和十位数字重新组合成一个新的十位数ab(新十位数的十位数字是原4位数的千位数字,新十位数的个位数字是原4
已知数据文件IN86.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:把千位数字和十位数字重新组合成一个新的十位数ab(新十位数的十位数字是原4位数的千位数字,新十位数的个位数字是原4
admin
2010-01-09
42
问题
已知数据文件IN86.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:把千位数字和十位数字重新组合成一个新的十位数ab(新十位数的十位数字是原4位数的千位数字,新十位数的个位数字是原4位数的十位数字),以及把个位数字和百位数字组成另一个新的十位数cd(新十位数的十位数字是原4位数的个位数字,新十位数的个位数字是原4位数的百位数字),如果新组成的两个十位数ab>cd,ab必须是偶数且能被5整除,cd必须是奇数,同时两个新十位数字均不为0,则将满足此条件的4位数按从大到小的顺序存入数组b中,并要计算满足上述条件的4位数的个数cnt,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT86.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 ("IN86. 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 ("OUT85. 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]/l000; /*求四位数的千位数字*/ hun=a [i] %1000/100; /*求四位数的百位数字*/ ten=a [i] %100/10; /*求四位数的十位数字*/ data=a [i]%10; /*求四位数的个位数字*/ ab=thou*10+ten; /*把千位数和十位数重新组合成一个新的十位数字ab*/ cd=data*10+hun; /*把个位数和百位数组合成一个新的十位数字cd*/ if ((ab-cd>0) && (ab%2! =1 &&ab%5==0) &&cd%2==l&&ab! =0&&cd! =0 ) /*如果ab>cd,ab是偶数且能被5整除,cd是奇数,且两个数均不为0*/ { b[cnt] =a[i]; /*将满足条件的数存入数组b中*/ cnt++; /*统计满足条件的数的个数*/ } } for (i=0; i<cnt-1; i++) /*将数组b中的数按从大到小的顺序排列*/ for (j=i+l; j<cnt; j++) if (b[i]<b[j]) { data=b [i]; b [i] =b [j]; b [j] =data; } }
解析
本题考查的知识点如下:
(1)将一个4位整数各位上的数转变成单独的个位数。
(2)判断结构中多个条件的布尔运算。
(3)循环的使用。
(4)数据的排序。
在本题中,首先要将一个4位数的千位、百位、十位、个位拆成独立的数字。这里借助特殊运算符号“%”——取余和“/”——整除。将1个4位数整除1000则可得到其千位上的数字,将其除以1000取余再整除100则可得百位上的数字,除以100取余再整除10则可得十位上的数字,除以10取余则得个位上的数字。若一个数除以2取余为0,则这个数是偶数。由题意可知,各个条件必须同时满足,所以各条件之间用“与”运算。先将符合条件的数存入数组b中,再对b中的数据进行排序。排序采用“选择排序法”。
转载请注明原文地址:https://kaotiyun.com/show/oKYZ777K
本试题收录于:
三级网络技术题库NCRE全国计算机三级分类
0
三级网络技术
NCRE全国计算机三级
相关试题推荐
SQLServer2008数据库中,【11】视图是存储一个查询结果的数据库对象。
设有课程表(课程号,课程名,开课学期)和选课表(学号,课程号,成绩),现要利用开窗函数查询每门课程的课程名、开课学期及选该门课的学生人数(不包括没人选的课程)。请补全下列语句:SELECTDISTINCT课程名,开课学期,COUNT(*)OVE
设在SQLServer2008某数据库中有商品表和销售表,两个表的定义如下:CREATETABLE商品表(商品号char(10)PRIMARYKEY,商品名varchar(40),类别varchar(2
在SQLServer2008中,每个数据页可存储8060字节的数据。设表T有10000行数据,每行占用3000字节,则存储该表数据大约需要【8】MB存储空间。(存储空间保留到整数,小、数点后按四舍五入处理)
在SQLServer2008的某用户数据库中,设有T表,现要在T表的c1列和c2列上建立一个复合唯一聚集索引,其中c1列值重复率为20%,c2列为10%。请补全下列语句建立一个性能最优的索引:CREATEuNIQUECLLISTERED
关于优化查询说法正确的是()。
在分布式数据库中,使用____________模式来描述各片段到物理存放场地的映像。
在数据库管理系统中,为保证并发事务的正确执行,需采用一定的并发控制技术。下列关于基于锁的并发控制技术的说法,错误的是()。
分区表是将一个表的数据按水平方式划分为不同的子集,从而可以更快速有效地访问数据子集。现有表R(A,B)以及针对该表的如下SQL语句,如果基于列A对R进行范围分区,该分区设计方案能提高其性能的SQL语句是()
索引是数据库中重要的数据结构,关于索引现有下列说法:Ⅰ.在某个查询中带排序的属性有多个时可以考虑在这些属性上建立复合索引Ⅱ.一个表中最多只能有一个主索引或聚集索引Ⅲ.多属性索引中,索引属性的顺序一般按照属性的长度进行排列Ⅳ.在频繁更新的属性上建立索
随机试题
最先将知识产权问题引入贸易政策的国家是()
患者,男性,戴用全口义齿1周后,复诊自诉义齿易脱落。在行口腔检查时,发现患者牙槽嵴低平,导致义齿易松脱,若经济条件允许,应
患者,男性,50岁。患肝硬化10年,近2个月出现肝区持续疼痛,腹部检查肝增大,可触及结节,腹腔穿刺腹水呈血性。该患者可能并发了
×年×月×日,某造纸厂发生了一起因工人严重违反操作规程和缺乏救助常识而导致10人中毒,其中4人死亡的重大伤害事故。事故当日,该厂工人于早上7时停机,经过往浆池中灌水、排水的工序后,8时左右有2名工人下池清扫浆池,当即晕倒在池中。在场工人在没有通知厂领导的
对于流浪、留守等特殊儿童,社会工作者需要对他们做专业的社会工作服务,可以提供的服务有()。
如何开展“读书月”活动的前期筹备工作?
前些年翻看先生的这本书时,尽管自己对民国话题有着欲说还休的浓厚兴味,对这本话语剪辑独出心裁的编排方式下潜藏的_______常常默契会心,但读完仍是感到_______。填入画横线部分最恰当的一项是()。
习近平总书记在参加十二届全国人大二次会议安徽代表团审议时指出,各级领导干部都要树立和发扬好的作风,并提出了“三严三实”,即()。
分配给某校园网的地址块是202.105.192.0/18,该校园网包含_______个C类网络。
A到了就给家里来个电话,好让爸妈放心。B我真的得了第一名吗?我有点儿不敢相信。C你比他大,做哥哥的应该让着弟弟点儿。D你唱歌这么大的声音不怕邻居来找你?E不错。你能带我去看看公司其他地方吗?这是我的东西,为什么要给他玩儿?
最新回复
(
0
)