首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
已知数据文件in38.dat中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数JsVal(),其功能是:若一个4位数的千位数字上的值小于等于百位数字上的值,百位数字上的值小于等于十位数字上的值,以及十位数字上的值小于等
已知数据文件in38.dat中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数JsVal(),其功能是:若一个4位数的千位数字上的值小于等于百位数字上的值,百位数字上的值小于等于十位数字上的值,以及十位数字上的值小于等
admin
2009-02-15
39
问题
已知数据文件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://kaotiyun.com/show/WLfZ777K
本试题收录于:
三级信息管理技术题库NCRE全国计算机三级分类
0
三级信息管理技术
NCRE全国计算机三级
相关试题推荐
当一个结点需要发送数据时,可利用一对发送线将数据通过()内部的总线广播出去。
按照使用集线器的方式,双绞线组网方法可以分为()结构、()结构与堆叠式集线器结构。
综合布线系统可分成6个子系统:()、配线子系统、干线子系统、设备间子系统、管理子系统和建筑群子系统。
Internet中的自治系统最重要的特点就是它有权自主决定在本系统内应采用何种()协议。
FTP服务器的测试方法有两种,即使用浏览器访问FTP服务器和()。
弹性分组环RPR采用双环结构,RPR将沿顺时针传输的光纤环称为(),将沿逆时针传输的光纤环称为()。
()负责全网的数据处理业务,负责向网络用户提供各种网络资源与网络服务。
802.11b运作模式基本分为()模式和()模式两种。
阅读以下说明,回答问题(1)~(5)。说明:某小区采用HFC接入Internet的解决方案进行网络设计,网络结构如图13-9所示。(1)网络设计流程通常由以下5阶段组成:A)确定网络物理结构B)确定网络逻辑结构C)对现有
A、 B、 C、 D、 C路由表的主要内容包括目的网络地址、下一跳路由器地址和目的端口等信息。另外,每一台路由器的路由表中还包含缺省路由的信息。缺省路由又称为缺省网关,如果目标网络没有直接显示在路由表里的时候
随机试题
在数据库“Acc2.mdb”中有“学生成绩”表、“学生档案”表和“课程名”表3张表。(1)以“学生成绩”表、“学生档案”表和“课程名”表为数据源,建立参数查询“查询1”,通过输入班级ID来查询不及格情况,参数提示为“请输入班级ID”,查询结果显示“班级编
甲企业的一项药品发明专利将于2017年9月1日保护期满。2014年3月,乙企业到国家医药主管机关申请新药许可,为了提供审批需要的信息,乙制造了甲企业的该项专利药品,乙企业的行为()
Alandfreefromdestruction,pluswealth,naturalresources,andlaborsupply—allthesewereimportant【C1】______inhelpingEngl
子宫腔粘连综合征(Asherman综合征)是指
A.阴寒内实B.阳盛实热C.气血不足D.脾胃虚弱促脉的主病有
牙髓活力电测验测试牙的值明显低于对照牙,则表示
简述知识、技能和能力的关系。
你处理过的一件最困难的工作是什么?你是如何处理的?
要实施扩张性的财政政策,可采取的措施有()。
无数事实证明,人有了明确的理想,才能在人生的追求上不断去攀登,最大限度地实现人生价值;人若没有明确的理想,就会像没有舵的小船,在生活的大海中迷失方向,甚至搁浅触礁。这表明理想信念()
最新回复
(
0
)