首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
已知数据文件IN45.DAT中存有200个4位数;并已调用读函数readDat()把这些数存入数组a中,请编制一函jsVal(),其功能是:把千位数字和十位数字重新组合成一个新的十位数ab(新十位数的十位数字是原4位数的千位数字,新十位数的个位数字是原4位
已知数据文件IN45.DAT中存有200个4位数;并已调用读函数readDat()把这些数存入数组a中,请编制一函jsVal(),其功能是:把千位数字和十位数字重新组合成一个新的十位数ab(新十位数的十位数字是原4位数的千位数字,新十位数的个位数字是原4位
admin
2009-02-19
47
问题
已知数据文件IN45.DAT中存有200个4位数;并已调用读函数readDat()把这些数存入数组a中,请编制一函jsVal(),其功能是:把千位数字和十位数字重新组合成一个新的十位数ab(新十位数的十位数字是原4位数的千位数字,新十位数的个位数字是原4位数的十位数字),以及把个位数和百位数组成另一个新的十位数cd(新十位数的十位数字是原4位数的个位数字,新十位数的个位数字是原4位数的百位数字),如果新组成的两个十位数ab-cd≥10且ab-cd≤20且两个数均为偶数,同时两个新十位数字均不为零,则将满足此条件的4位数按从大到小的顺序存入数组b中,并要计算满足上述条件的4位数的个数cnt,最后调用写函数waiteDat( )把结果cnt及数组b中符合条件的4位数输出到OUT45.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("IN45.DAT","r" );
for (i=0; i<MAX; i++ )
fscanf (fp, "%d" ,&a
);
fclose (fp) $
main ( )
{
int i;
readDat ( );
jsVal ();
print f ("满足条件的数=%d\n", cnt);
for (i=0; i<cnt; i++)
printf("%d\n",b
);
print f ( "In" );
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中*/ } } 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/OKcZ777K
本试题收录于:
三级数据库技术题库NCRE全国计算机三级分类
0
三级数据库技术
NCRE全国计算机三级
相关试题推荐
数字视频的数据量非常大,1张容量为560MB的VCD光盘大约可连续播放1小时的影视节目,则光盘播放时每秒钟的码率大约是
在Windows98环境下,创建多重启动配置时,需修改MS-DOS.SYS文件。如果要在机器启动时自动显示启动菜单,则应在MS-DOS.SYS文件中使用______命令。
下面是关于PC机串口(COMl、COM2)、USB接口和IEEE-1394接口的叙述,正确的是( )。
操作系统是管理计算机软硬件资源、控制程序运行、改善人机界面和为应用软件提供支持的一种系统软件。下面是有关操作系统的一些叙述: ①从1946年的ENIAC计算机开始,计算机都必须配有操作系统才能工作 ②操作系统与计算机硬件无关,任何计算机
将PC机组成以太局域网必须用到网卡、中继器和集线器等设备,其中的一种设备可用来对接收到的信号进行再生放大,扩大网络的传输距离,并通过它来连接网络中的各个结点机,把一个端口接收到的信息向所有的端口分发出去,这种网络设备是______。
以下ARM公司Codex处理器最适合实时应用的是()。
嵌入式系统的调试方法中有一种使用驻留监控软件的调试方法。所谓驻留监控软件是一段固化在【77】ROM中的程序。它是一种成本较低的调试方法,不需要专门的硬件调试和【78】设备。
一幅1024×768的彩色图像,每个像素使用16位表示,采用压缩比为5倍的算法压缩图像数据之后,其数据量大约是()MB。
数据库管理系统、图形用户界面、互联网浏览器、媒体播放器等软件,如果运行在嵌入式系统上,往往具有内部结构精简,【69】轻量化,占用存储资源【70】的特点。
数字图像的像素深度指每个像素用多少个二进位来表示。它决定了图像中可能出现的不同颜色(或不同亮度)的最大数目。像素深度是8位的灰度图像,其不同的亮度等级总数为【43】种。最多可以有大约1600万种颜色的图像称为真彩色图像,真彩色图像的像素深度为【44】位。
随机试题
在我国,立法权属于()
除继续治疗肠梗阻外还应处理在纠正电解质紊乱的同时,还要治疗
抢救新生儿窒息的程序应是
A.缄默状态B.情感淡漠C.痴呆状态D.抑郁状态E.脑衰弱综合征意识清楚,言语动作减少,思维迟缓,兴趣减退
按照《合同法》规定,与合同转让中的债权转让比较,由第三人向债权人履行债务的主要特点表现为()。
丙公司为上市公司,增值税一般纳税企业,适用增值税税率为17%,(假设没有其他税费),原材料只有甲材料一种并专门用于生产车间生产乙产品,该公司原材料按计划成本法进行日常核算。2013年12月1日,甲材料的计划单价为80元/千克,计划成本总额为250000元
从所给的选项中,选择最合适的一项填在问号处,使之呈现一定的规律性。()
Readthefollowingtextanddecidewhichanswerbestfitseachspace.Forquestions26~45,markoneletterA,B,CorDont
不消说,相识的人数是随了年龄增加的,一个人年龄越大,走过的地方当过的职务越多,相识的人理该越增加了,可是相识的人并不就是朋友。我们和许多人相识,或是因了事务关系,或是因了偶然的机缘——如在别人请客的时候同席吃过饭之类。见面时点头或握手,有事时走访或通信,口
Thescientist_____Antarcticaandhewillgiveusatalkwhenhe_____back.
最新回复
(
0
)