首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
函数readDat()是从文件in71.dat中读取20行数据存放到字符串数组xx中(每行字符串长度均小于80)。请编制函数JsSon(),其功能是:以行为单位对字符串按下面给定的条件进行排序,排序后的结果仍按行重新存入字符串数组xx中。最后调用函数wri
函数readDat()是从文件in71.dat中读取20行数据存放到字符串数组xx中(每行字符串长度均小于80)。请编制函数JsSon(),其功能是:以行为单位对字符串按下面给定的条件进行排序,排序后的结果仍按行重新存入字符串数组xx中。最后调用函数wri
admin
2010-01-09
87
问题
函数readDat()是从文件in71.dat中读取20行数据存放到字符串数组xx中(每行字符串长度均小于80)。请编制函数JsSon(),其功能是:以行为单位对字符串按下面给定的条件进行排序,排序后的结果仍按行重新存入字符串数组xx中。最后调用函数writeDat()把结果xx输出到文件out71.dat中。
条件:从字符串中间一分为二,左边部分按字符的ASCⅡ值降序排序,右边部分按字符的ASCⅡ值升序排序。如果原字符串长度为奇数,则最中间的字符不参加排序,字符仍放在原位置上。
例如: 位置0 1 2 3 4 5 6 7 8
源字符串a b c d h g f e
1 2 3 4 9 8 7 6 5
处理后的字符串d c b a e f g h
4 3 2 1 9 5 6 7 8
注意:部分源程序已给出。
请勿改动主函数main()、读函数readDat()和写函数writeDatO的内容。
试题程序:
#include<stdio.h>
#include<string.h>
#include<conio.h>
char xx[20][80];
void isSoYt()
{
}
void main()
{
readDat();
isSort();
writeDat();
{
readDat ( )
{
FILE *in;
int i=0;
char *p;
in=fopen ("in71.dat", "r");
while (i<20 && fgets(xx
,80,in)!=NULL)
{
p=strchr (xx
, ’\n’ );
if (p)
*p=0;
i++;
}
fclose (in);
}
writeDat ()
{
FILE *out;
int i;
clrscr ();
Out=fopen ("out71. dar ", "w");
for (i=0; i<20; i++)
{
printf("%s\n",xx
);
fprintf {out, "%s\n", xx
);
}
fclose (out);
}
选项
答案
void jsSort () { iht i, j, k, strl,half; char ch; for(i=0;i<20;i++) { strl=strlen (xx[i] ); /*求各行字符串的总长度*/ half=strl/2; /*求总长度的一半*/ for (j=0; j <half-1; j ++) /*左边部分按字符的ASCII值降序排序*/ for (k=j+l; k<half; k++) if(xx[i] [j]<xx[i] [k]) { ch=xx[i] [j]; xx[i] [j~]=xx[i] [k]; xx[i] [k] =ch; } if (strl%2) /*如果原字符串长度为奇数,则跳最中间的字符,使之不参加排序*/ half++; for (j=half; j <strl-1; j++) /*右边部分按字符的ASCII值升序排序* / for (k=j+l; k<strl; k++) if (xx[i] [j]>xx[i] [k]) { ch=xx [i] [j]; xx[i] [j]=xx[i] [k]; xx[i] [k] =ch; } } }
解析
本题考查的知识点如下:
(1)二维数组的访问和下标的控制。
(2)字符的ASCII码的比较。
(3)字符的排序。
本题将数据按行存入到二维数组xx中,行数为数组的第1个下标,每行字符的个数为数组的第2个下标。因为以行为字符串处理的单位,所以要先求得一行字符串的长度。字符可以参加任何整数运算,实际上是字符的ASCII码参与了运算,所以町以直接使用比较运算符对字符进行比较。对从0到(长度/2-1)的字符进行降序排序(数组的下标从0开始)。若长度为奇数,则再从(长度/2+1)开始(跳过最中间的字符)到最后1个字符进行升序排列。否则,从(长度/2)开始到最后1个字符进行升序排列。字符排序使用“选择排序法”,最后使用循环实现对每行数据的处理。
转载请注明原文地址:https://kaotiyun.com/show/pOYZ777K
本试题收录于:
三级网络技术题库NCRE全国计算机三级分类
0
三级网络技术
NCRE全国计算机三级
相关试题推荐
某教务管理系统使用SQLServer2008数据库管理系统,数据库软硬件配置信息如下:Ⅰ.数据库运行在两路IntelXeonE5-26092.4GHzCPU(每路CPU4核心),128GB内存、2块300GB15000转SAS硬盘(
在数据库动态转储机制中,一般需要使用【12】文件才能将数据库恢复到某一时刻的正确状态。
在分布式数据库中,采用【13】连接操作可以减少场地之间的数据传输量。
下列是关于关系数据模型和关系表的说法:Ⅰ.关系数据模型以集合论为基础表示和处理数据Ⅱ.关系数据模型同时支持非过程化语言和过程化语言直接存取数据Ⅲ."createtable..."语句用于定义关系表的结构及数据完整性约束Ⅳ.在关系表上执行sel
下列关于企业数据仓库环境中数据特点的说法,错误的是()。
某数据库应用系统中,数据库管理员发现某个查询功能是用多表连接操作实现的,此操作性能较差。在保证功能不变的前提下,若要提高该查询的执行效率,下列方法中可行的是()。
UML建模概念架构中包括元元模型层、元模型层、模型层和用户模型层四个层次。关于这四个层次的关系,下列说法错误的是()。
设用UML设计某数据库应用系统,设计人员规划了一组应用程序集,该集合由动态链接库和可执行程序构成。为了展现这些应用程序集间的组织和依赖关系,以对源代码、可执行程序的发布等进行系统建模,应采用的UML图是_________图。
设用UML设计某数据库应用系统,设计人员规划了一组应用程序集,该集合由动态链接库和可执行程序构成。为了展现这些应用程序集间的组织和依赖关系,以对源代码、可执行程序的发布等进行系统建模,应采用的UML图是【3】图。
下列叙述中不属于三层B/S结构数据库应用系统特点和操作特征的是()。
随机试题
John:Mary,I’mlookingforsomething【K1】________(interest)toread.Anysuggestions?Mary:Icanrecommend(推荐)AllJoya
A.吩噻嗪类药物B.抑制5一HT再摄取的药物C.苯二氮革类药物D.锂盐E.卡马西平多用于精神分裂症的药物是()
题33~37:某四层简支承重墙梁,如图2-14所示。托梁截面b×hb=300mm×600mm,托梁自重标准值gk1=5.0kN/m。墙体厚度240mm,采用MU10烧结多孔砖,计算高度范围内为M10混合砂浆,其余为M5泪合砂浆,墙体及抹灰白重标准值为4.5
产品结构的维修性设计中,可达性设计可从()方面考虑。
施工管理过程包括施工全过程的()
给水工艺预处理方法一般包括()。
坚持教育的基础性是我国教育事业健康发展的基本要求。()
Yoursisterhasmadean______foryoutoseethedentistat3thisafternoon.
操作系统的一个重要功能是存储管理。以下有关存储管理的叙述中,错误的是()。
A、She’senjoyingthemusic.B、Themusicwillkeepherawake.C、Themusicdoesn’tbotherher.D、Shewouldpreferadifferentstyl
最新回复
(
0
)