首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
在文件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
67
问题
在文件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全国计算机三级
相关试题推荐
下面是有关超文本的叙述,其中错误的是
汇编语言源程序经汇编后不能直接生成( )。
在μC/OS—Ⅱ中,OSInit()函数先建立最初的任务就绪表,然后建立4个空白的数据链表。这4个空白的数据链表是()。
Linux内核由若干个子系统组成,一般来说下面哪一个不是Linux内核的子系统()。
某食堂的售饭系统由一个后台数据库系统及若干个前台刷卡机组成,其基本功能具体描述如下:a、刷卡机的硬件组成中,除了必须的最小硬件系统外,还需要IC卡读写模块、8段LED组成的显示模块、键盘模块、蜂鸣器模块、RS-485通信模块等。b、客户需要事先办理本系
某食堂的售饭系统由一个后台数据库系统及若干个前台刷卡机组成,其基本功能具体描述如下:a、刷卡机的硬件组成中,除了必须的最小硬件系统外,还需要IC卡读写模块、8段LED组成的显示模块、键盘模块、蜂鸣器模块、RS一485通信模块等。b、客户需要事先办理本系
一幅1024×768的彩色图像,每个像素使用16位表示,采用压缩比为5倍的算法压缩图像数据之后,其数据量大约是()MB。
在数据库管理系统中,下面哪个模块不是数据库存取的功能模块?
设一棵二叉树中,度为1的结点数为9,则该二叉树的叶结点的数目为
某二叉树结点的前序序列为A、B、D、E、G、C、F、H、I,对称序序列为D、B、G、E、A、C、H、F、I,则该二叉树结点的后序序列为【】。
随机试题
以下有关肾梗死CT表现哪一项是正确的
老年人皮肤瘙痒的最常见原因是
A.财产关系B.财产赔偿C.行政责任D.民事责任E.刑事责任可以由当事人协商解决的是
人民检察院对于公安机关侦查终结后移送起诉的案件所作出的不起诉的决定书,应当送达给( )。
根据《民事诉讼法》规定,我国法院与外国法院可以进行司法协助,互相委托,代为一定的诉讼行为,但哪些情况下我国法院应予以驳回或说明理由退回外国法院?()
对于架空线路杆塔的接地装置,当接地装置由较多水平接地极或垂直接地极组成时,垂直接地极的间距不应小于其长度的两倍,水平接地极的间距不宜小于()。
根据《水电工程验收管理办法》(2015年修订版),以下关于枢纽工程专项验收的说法,正确的是()。
甲公司是一家上市公司,在应监管部门要求进行自查的过程中,发现公司财务部经理李某自2017年11月起,未经董事会批准,私自将2.85亿元以存单质押的方式为A公司及其关联公司提供全额银行承兑保证。该项业务于2018年6月到期,A及其关联公司表示不能如期归还,公
Videogamesgetabadpress.Manyareunquestionablyviolentand,ashasbeenthewaywithnewmediafromnovelstocomicbooks
OneofthesaddestthingsabouttheperiodinwhichweliveisthegrowingestrangementbetweenAmericaandEurope.Thismaybe
最新回复
(
0
)