首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
在文件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
85
问题
在文件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全国计算机三级
相关试题推荐
下面是关于82593。可编程中断控制器的叙述,其中错误的是:
下列关于即插即用(PnP)技术的描述,正确的是______。
通过DMA方式传送一个数据块的过程中,会涉及下面几个操作:Ⅰ.DMAC向CPU发申请总线的请求信号HRQⅡ.I/O设备向DMAC发DMA请求信号,要求进行数据传送Ⅲ.CPU在完成当前总线周期后暂停操作,向DMAC发响应DMA请
PC机中的中断源通常分为五种类型,它们是:I/O中断、时钟中断、故障中断、程序中断和( )。
一台显示器的图形分辨率为1024×768,要求显示256种颜色,显示存储器VRAM的容量至少为( )。
执行下面的程序后,AX寄存器中的数据是( )。 BUT DW 10DUP(2) XOR AX, AX MOV CX, LENGTH MOV SI,SIZE BUF—TYPEBUF
计算机技术与通信技术的结合是时代的热点,为此Windows98提供了多种不同的( )位通信服务。
Windows 98提供了多种系统工具便于用户管理和维护计算机系统,提高计算机的运行效率。其中,可用于查看各种系统资源利用状态和目前已加载的各类驱动程序(如IRQ资源的使用情况、已加载的MS-DOS驱动程序等)的系统工具是______。
8259A中,用户可以屏蔽指定的中断输入,方法是设置中断屏蔽寄存器IMR中相应位等于1,其使用的操作命令字是【 】。
RVDS开发工具套件中,主要包括工程管理器、【79】、调试器和指令集仿真器等。调试器是RVDS工具套件中的功能模块之一,它支持【80】调试和软件仿真调试。
随机试题
y=1
下列配穴中,不属于上下配穴的是:
支原体肺炎治疗用肺炎链球菌肺炎治疗用
A.具有独立做出诊断和治疗的权利B.对病人义务和对社会义务的统一C.有自主权或自我决定权D.真实提供病情,并与医师合作执行治疗E.享有保密和隐私权
洁治器工作刃与牙面的工作角度
玉屏风散的组成药物中含()
A、卡托普利B、可乐定C、哌唑嗪D、肼屈嗪E、米诺地尔有“首剂现象”的药物是( )。
()是指商业银行因没有遵守法律、规则和准则可能遭受法律制裁、监管处罚、重大财务损失和声誉损失的风险。
虚拟经济是指相对独立于实体经济的虚拟资本的经济活动。虚拟经济在运行上具有内在的波动性。根据上述定义,下列选项属于虚拟经济的是:
A.化脓性炎B.假膜性炎C.变质性炎D.增生性炎流行性乙型脑炎的病变特点是
最新回复
(
0
)