首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
已知数据文件IN60.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数JsVal(),其功能是:把千位数字和十位数字重新组合成一个新的十位数ab(新十位数的十位数字是原4位数的千位数字,新十位数的个位数字是原4
已知数据文件IN60.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数JsVal(),其功能是:把千位数字和十位数字重新组合成一个新的十位数ab(新十位数的十位数字是原4位数的千位数字,新十位数的个位数字是原4
admin
2009-02-19
33
问题
已知数据文件IN60.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数JsVal(),其功能是:把千位数字和十位数字重新组合成一个新的十位数ab(新十位数的十位数字是原4位数的千位数字,新十位数的个位数字是原4位数的十位数字),以及把个位数和百位数组成另一个新的十位数cd(新十位数的十位数字是原4位数的个位数字,新十位数的个位数字是原4位数的百位数字),如果新组成的两个十位数ab<cd,ab必须是奇数且不能被5整除,cd必须是偶数,同时两个新十位数字均不为零,则将满足此条件的4位数按从大到小的顺序存入数组b中,并要计算满足上述条件的4位数的个数cnt,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT60.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 ( "IN60. 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("OUT60.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+ten; /*把千位数和十位数重新组合成一个新的十位数ab*/ cd=10*data+hun; /*把个位数和百位数组成另一个新的十位数cd*/ if((ab-cd<0)&&(ab%2==1)&&(ab%5!=0)&&(cd%2==0)&&ab!=0&&cd!=0) { /*如果ab<cd,ab是奇数且不能被5整除,cd是偶数,同时两个数字均不为零*/ 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位数整除1000则可得到其千位上的数字,除以1000取余再整除100则可得百位上的数字,除以100取余再整除10则可得十位上的数字,除以10取余则得个位上的数字。求得各位上的数字后,就可以重新组合进行比较。各条件必须同时满足,所以用“\”运算。题中要求将符合条件的数按从大到小的顺序存入数组b,可以先将符合条件的数存入数组b,再对数组b进行排序。排序使用“选择排序法”。
转载请注明原文地址:https://kaotiyun.com/show/BsSZ777K
本试题收录于:
三级数据库技术题库NCRE全国计算机三级分类
0
三级数据库技术
NCRE全国计算机三级
相关试题推荐
执行下列指令序列后,完成的功能是将(DX,AX)的值______。 MOV CL,04 SHL DX,CL MOV BL,AH SHL AX,CL SHR BL,CL OR DL,BL
ARM处理器在大端模式下,如果R0=1,R1=0xFF,而指令LDRR2,[R1,R0]执行后,R2的数据为0xAABBCCDD,内存0x00000100中的数据为___________【49】,0x00000103中的数据为___________【50
嵌入式系统的存储器以半导体存储器为主。随着技术的不断发展,新型存储器不断出现,主要包括FRAM和MRAM,分别称为__________【59】存储器和__________【60】存储器。
下面关于μC/OS—II任务管理的叙述中,错误的是()。
在Bootloader的stagel中,以下各步骤的顺序应为()。a.跳转到stage2的C程序入口点b.为加载stage2准备RAM空间c.拷贝stage2的执行代码到RAM空间中d.基本硬件初始化
按照嵌入式系统的技术复杂程度进行分类,可以把嵌入式系统分为低端系统、中端系统和高端系统三大类。下面关于低端嵌入式系统特性的叙述中错误的是()。
RTLinux基本的设计理念就是“架空”Linux内核,以便让其他实时进程能尽快地被执行。RTLinux开发者并没有针对实时操作系统的特性而重写Linux的内核,而是将Linux的内核代码做一些修改,将Linux的任务以及Linux内核本身作为一个【75】
SoC芯片中的CPU绝大多数是以IP核的方式集成在芯片中的,很少再自行设计开发。目前32位嵌入式处理器主要采用的是由【41】国一家专门从事RISC处理器内核设计公司设计的【42】内核。
在μC/OS-Ⅱ操作系统下,处于运行态的任务调用系统函数OSTaskDel()后将转入()。
根据参照完整性规则,外码的值或者等于以此外码为主码的关系中某个元组主码的值,或者取【】。
随机试题
A、HewasgoodatLatin.B、HereadlotsofLatinpoems.C、Hewasalreadyapoet.D、Heworkedharderthanothers.C
张某与杨某结婚后由于性格不合,很快离婚,离婚时杨某已经怀孕2个月。8个月后杨某生下儿子小毛,杨某生产时难产,生下小毛后很快死亡,杨某的母亲陈某将小毛抱回家。张某离婚后与孙某结婚,孙某患有不育症,张某听说杨某生了小毛后,要求陈某将小毛给自己和孙某抚养。陈某认
急性牙髓炎最有效的应急处理方法是
监理人员对设备制造单位提交的设备制造进度计划的审核内容不包括()。
用中线法进行洞内测量的隧道,中线点间距直线部分不宜短于()m。
石材幕墙的石板厚度不应小于()。同一幕墙玻璃单元不应跨越()个防火分区。
燃烧是可燃物与氧化剂作用发生的放热反应,其中大部分燃烧的必要条件有()。
近几年来,我国许多餐厅使用一次性筷子,这种现象受到越来越多人的批评。许多资源环境工作者在报刊上呼吁:为了保护森林资源,让山变绿、水变清,是采取有效措施,禁用一次性筷子的时候了!以下除哪项外,都从不同方面对批评者的观点提供了支持?
PC机使用的键盘是一种非编码键盘,键盘本身仅仅识别按键的位置,向PC机提供的是该按键的【 】码,然后由系统软件把它们转换成规定的编码,如ASCII码。
AlotofpeoplewhoshowedupattheartauctioninChicago______greatinterestinpurchasingthefamousartcollection.
最新回复
(
0
)