首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
在文件in33.dat中有200个正整数,且每个正整数均在1000至9999之间。函数readDat()的功能是读取这200个数并存放到数组aa中。请编制函数jsSort(),该函数的功能是:要求按照每个数的后3位的大小进行升序排列,将排序后的前10个数存
在文件in33.dat中有200个正整数,且每个正整数均在1000至9999之间。函数readDat()的功能是读取这200个数并存放到数组aa中。请编制函数jsSort(),该函数的功能是:要求按照每个数的后3位的大小进行升序排列,将排序后的前10个数存
admin
2009-02-19
31
问题
在文件in33.dat中有200个正整数,且每个正整数均在1000至9999之间。函数readDat()的功能是读取这200个数并存放到数组aa中。请编制函数jsSort(),该函数的功能是:要求按照每个数的后3位的大小进行升序排列,将排序后的前10个数存入数组bb中,如果数组bb中出现后3位相等的数,则对这些数按原始 4位数据进行降序排列,最后调用函数writeDat()把结果bb输出到文件out33.dat中。
例如:处理前6012 5099 9012 7025 8088
处理后9012 6012 7025 8088 5099
注意:部分源程序已给出。
请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。
试题程序:
# include<stdio. h>
# include<string. h>
#include<conio. h>
int aa[200] ,bb[10];
void readDat ();
void writeDat();
void jsSort()
{
void main ( )
{
readDat ( );
jsSort ( );
writeDat ( );
}
void readDat ()
{
FILE *in;
int i;
in=fopen ("in33 .dat" , "r" );
for(i=0;i<200;i++) fscanf (in, "%d ".&aa
);
fclose (in);
}
void writeDat ()
{
FILE *out;
int i;
clrscr ( );
out =fopen ("out33 .dar" , "w" );
for (i=0; i<10; i++)
{
printf ("i=%d, %d\n", i+1, bb
;
fprintf (out, "%d\n" ,bb
);
}
fclose (out);
}
选项
答案
void jsSort() { int i,j,data; for(i=0;i<199;i++) for(j=i+1;j<200;j++) { if(aa[i]%1000>aa[j]%1000) /*按照每个数的后3位的大小进行升序排列*/ { data=aa[i]; aa[i]=aa[j]; aa[j]=data; } else if(aa[i]%1000==aa[j]%1000) /*如果后3位数值相等,则对这些数 值按原始4位数据进行降序排列*/ if(aa[i]<aa[j]) { data=aa[i]; aa[i]=aa[j]; aa[j]=data; } } for(i=0;i<10;i++) /*将排好序的前十个数存入数组bb中*/ bb[i]=aa[i]; }
解析
本题考查的知识点如下:
(1)循环结构的嵌套。
(2)选择结构的嵌套。
(3)特殊运算符“%”的使用。
(4)数据的升降序排列。
在该题中,首先要解决的问题是如何把题中4位数转换成符合要求的3位数。这里要用到一个比较特殊的运算符%,它的功能是取余。将4位数赊以1000取余则得到要求的3位数。根据题意,若后3位相等,则按照原数据进行降序排序,所以在这里要加一个选择结构进行判断。对数据进行排序,可以使用最简单的“选择排序法”。即第一次从第一个数据开始和所有后面的数据进行比较,与比它大(小)的数据交换位置,将数据中最大(小)的数交换到最前面。第二次从第二个数据开始与后面的数据进行比较,,将此次比较中最(小)的数据交换至第二个位置,直至最后一个数据。
转载请注明原文地址:https://kaotiyun.com/show/MpcZ777K
本试题收录于:
三级数据库技术题库NCRE全国计算机三级分类
0
三级数据库技术
NCRE全国计算机三级
相关试题推荐
设X为变量,指令MOV AX, OFFSETX的寻址方式是( )。
在虚拟8086模式下,应用程序的特权级是
微处理器各部件之间通过【 】交换信息。
操作系统的功能主要包括处理机管理、存储管理、【 】、设备管理和作业管理。
在Windows98环境下,创建多重启动配置时,需修改MS-DOS.SYS文件。如果要在机器启动时自动显示启动菜单,则应在MS-DOS.SYS文件中使用______命令。
CPU从I/O接口的______中获取外部设备的“准备好”、“忙”或“闲”等状态信息。
计算机的主存储器(内存)用来存储数据和指令,为了实现按地址访问,每个存储单元必须有一个唯一的地址。PC机主存储器的编址最小单位是【 】。
便携式血氧仪采用无创伤的血氧检测方法,通过光电信号检测人体手指内动脉血的周期变化特征,从而计算出动脉血氧饱和度(其外形如图所示)。若便携式血氧仪以S3C2410芯片为核心,并外加其他功能电路来进行设计,其基本功能描述如下:a、利用动脉血液中血红蛋白和还
大多数嵌入式系统都必须处理汉字信息。下面关于汉字在系统中表示方法的叙述中,错误的是()。
下面关于三星公司基于ARM9内核的S3C2410嵌入式微处理器芯片的叙述中,错误的是()。
随机试题
汽车装载危险品时,严禁超载、人货混装,也不准与其他物品混装。()
美国规划师佩里提出的城市规划理论是【】
不得作为抵押标的物的是()。
关于卵巢囊性畸胎瘤基本特征的描述,不正确的是
与热压灭菌有关的数值是
阳水的特点无
试计算图4—4所示某工程现浇YL一1矩形单梁(C30)的钢筋工程量(净用量)。YL一1由4个编号的钢筋组成,按其形状可分为直筋、弯起钢筋(弯起角度为45°)和箍筋三种,均为I级(HPB235)钢筋。其中①号、②号钢筋、③号钢筋两端有半圆弯钩。
请用不超过200字的篇幅,概括出给定材料所反映的主要问题。要求:全面,有条理,有层次。就给定资料所反映的主要问题,用1200字左右的篇幅,自拟标题进行论述。要求中心明确,内容充实,论述深刻,有说服力。
(2011年424联考一41)刘女士今年48岁,她说:“我有两个女儿,当妹妹长到姐姐现在的年龄时,姐妹俩的年龄之和比我到那时的年龄还大2岁。”问姐姐今年多少岁?()
要在“学生表”中查询属于“计算机学院”的学生信息,错误的查询设计是()。
最新回复
(
0
)