首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
已知数据文件in38.dat中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数JsVal(),其功能是:若一个4位数的千位数字上的值小于等于百位数字上的值,百位数字上的值小于等于十位数字上的值,以及十位数字上的值小于等
已知数据文件in38.dat中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数JsVal(),其功能是:若一个4位数的千位数字上的值小于等于百位数字上的值,百位数字上的值小于等于十位数字上的值,以及十位数字上的值小于等
admin
2009-02-15
41
问题
已知数据文件in38.dat中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数JsVal(),其功能是:若一个4位数的千位数字上的值小于等于百位数字上的值,百位数字上的值小于等于十位数字上的值,以及十位数字上的值小于等于个位数字上的值,并且此4位数是偶数,则统计出满足此条件的数的个数cnt并把这些4位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到out38.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( "in38.dat","r");
for(i=0;i<MAX;i++)
fscanf(fp,"%d",&a
);
fclose(fp);
}
void main()
{
int i;
readDat();
jsVal();
printf("满足条件的数=%d\n",cnt)
for(i=0;i<cnt;i++)
printf("%d\n",b
);
writeDat();
}
writeDat ( )
{
FILE *fp;
int i;
fp=fopen("out38.dat","w");
fprintf(fp,"%d\n",cnt);
for(i=0;i<cnt;i++)
fprintf(fp,"%d\n",b
);
fclose(fp);
}
选项
答案
void jsVal( ) { int i,j; int a1,a2,a3,a4,k; for(i=0;i<MAX;i++) { a1=a[i]/1000; /*求四位数的千位数字*/ a2=a[i]%1000/100; /*求四位数的百位数字*/ a3:a[i]%100/10; /*求四位数的十位数字*/ a4=a[i]%10; /*求四位数的个位数字*/ if ((a1<=a2) && (a2<=a3) && (a3<=a4) && (a[i]%2==0)) /*如果该数的千位数小于等于 百位数,百位数小于等于十位 数,十位数小于等于个位数, 并且此4位数是偶数*/ { 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]) { k=b[i]; b[i]=b[j]; b[j]=k; } }
解析
本题考查的知识点如下:
(1) 循环结构的嵌套使用。
(2) 运算符“%”及“/”的使用。
(3) 选择结构中多个条件的布尔运算。
在本题中,首先要解决的问题是如何将一个4位数的千位、百位、十位、个位拆成独立的数字。这里借助特殊运算符号“%”——取余和“/”——整除。将一个4位数整除1000则可得到其千位上的数字,将其除以1000取余再整除100则可得百位上的数字,除以100取余再整除10则可得十位上的数字,除以10取余则得个位上的数字。千位上的数小于等于百位上的数,百位上的数小于等于十位上的数……这些条件需要同时满足,所以各条件之间要用到“与”运算。最后的排序仍用“选择排序法”。
转载请注明原文地址:https://jikaoti.com/ti/IJh7FFFM
本试题收录于:
三级信息管理技术题库NCRE全国计算机三级分类
0
三级信息管理技术
NCRE全国计算机三级
相关试题推荐
IPv4地址是由32位二进制构成,其组成结构为“网络地址+主机地址”,共分为A,B,C,D,E5类。回答下列问题:(1)上述哪类IP地址作为组播地址?(2)采取子网划分后,IP地址的组成结构为IP地址=网络地址+子网地址+主机地址,子网划分导致实
综合布线系统的组成包括()、()、()、()、()、()6个子系统。
为防止环状结构出现,透明网桥使用了()。
根据实际需要,可选择的综合布线系统类型有:基本型、增强型和()。
一个BGP发言人与其他自治系统中的BGP发言人要交换路由信息,就要先建立()连接,然后在此连接上交换BGP报文以建立BGP会话。
OSPF协议要求当链路状态发生变化时用()法向所有路由器发送此信息。
数字用户线xDSL又被称为()。
目前保证协议安全性,有两种基本方法:一种是用()来证明一个协议是安全的;另一种是设计者用经验来分析协议的安全性。
从路由器在网络中的位置分类,()路由器一般用作核心层的主干路由器,()路由器一般用于汇聚层的路由器,()路由器一般用于接入层的接入路由器。
A、 B、 C、 D、 B漏洞是指计算机系统在硬件、软件、协议设计、具体实现以及系统安全策略等方面存在的缺陷和不足。漏洞扫描工具不是实时监视网络上的入侵,但能够测试和评价系统的安全性,并及时发现安伞漏洞。
随机试题
CTL细胞杀伤靶细胞的特点是
下列关于化学位移伪影的描述,错误的是
主要使窦房结、房室结的自律性降低,传导速度减慢,ERP延长的药物是
下列关于设计总负责说法正确的是()。
会计核算软件可以任意划分会计期间,分期结算账目,这是会计核算软件灵活性的表现。()
某酒厂销售薯类白酒4吨,不含税单价3200元/吨,货款已收回。该酒厂上述业务应缴纳的消费税税额为6650元。()
下列各项中,应当暂免或免征土地增值税的有()。
MoneyspentonadvertisingismoneyspentaswellasanyIknowof.Itservesdirectlytoassistarapiddistributionofgoodsa
在数据库中,与查询有关的是(1):与规范化方法有关的是(2):与完整性有关的是(3);与安全性有关的是(4);与并发性有关的是(5)。
AmericansEugeneFama,LarsPeterHansenandRobertShillerwontheNobelPrizeforeconomicsonMondayfordevelopingmethodst
最新回复
(
0
)