首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
函数readDat()是从文件in71.dat中读取20行数据存放到字符串数组xx中(每行字符串长度均小于80)。请编制函数JsSon(),其功能是:以行为单位对字符串按下面给定的条件进行排序,排序后的结果仍按行重新存入字符串数组xx中。最后调用函数wri
函数readDat()是从文件in71.dat中读取20行数据存放到字符串数组xx中(每行字符串长度均小于80)。请编制函数JsSon(),其功能是:以行为单位对字符串按下面给定的条件进行排序,排序后的结果仍按行重新存入字符串数组xx中。最后调用函数wri
admin
2010-01-09
70
问题
函数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全国计算机三级
相关试题推荐
IDEF0需求建模方法由箭头和【1】两种元素构成。
现有课程表(课程号,课程名,学分,开课学期,课程性质),课程号为主码。该表数据量较大。设经常要对该表执行类似下面的查询:SELECT*FROM课程表WHERE课程名=′数据库原理′为提高这类查询的执行效率,下列物理设计方案中,正确且最为合理的
在SQLServer2008中,能够出现在SELECT语句目标列中的用户自定义函数是【5】函数。
下列关于SQLServer2008触发器的说法,错误的是()。
在UML中,用于描述系统、用例和程序模块中逻辑流程的先后执行次序或并行次序的图称为【3】图。
数据库性能优化是数据库应用系统上线后最常见的运行维护任务之一。下列有关数据库性能优化的说法,错误的是()。
在建立数据仓库的数据集成工作中,需要采用适当的策略从数据源获取变化数据。下列数据表中,一般情况下不适宜采用快照方式从业务系统获取数据的是()。
SQLServer中根据索引的实现方式,索引技术可以分成有序索引和_________两大类。
设有职工表(职工号,姓名,地址1,地址2),其中,职工号为主码。现要求地址1和地址2组合起来不能有重复值。在SQLServer2008环境中有下列创建该表的语句:Ⅰ.CREATETABLE职工表(职工号intPRIMARYKEY,姓名nch
现有SQLServer2008数据库服务器,其中的一个数据库占用80GB空间,另有一台用于备份的计算机,该机器上有4个大小均为50GB的硬盘分区。若要将此数据库完全备份到该计算机上,则()
随机试题
根据开发单位或有关机构的用地申请和建设项目的实际用地需要,城市规划主管部门形成的,以确定用地位置、面积和界限为主要内容的规范性文件是()。
城市总体规划的编制和报批程序正确的是()。①组织编制城市总体规划纲要,按规定提请审查。②前期研究。③根据国务院建设主管部门或者省、自治区建设主管部门提出的审查意见,组织编制城市总体规划成果,按法定程序报请审查和批准。
企业在建筑业资质证书有效期内()等发生变更的,应当在工商部门办理变更手续后1个月内办理资质证书变更手续。
无粘结预应力的施工中,主要工作是()。
主要用于保管合同、运输合同、加工承揽合同等主合同的担保形式是()。
企业从银行借入短期借款,不会导致实际利率高于名义利率的利息支付方式是()。
甲酒店是一家总部位于中国某市的五星级酒店集团。近年来,甲酒店在全国范围内通过托管、合并与自建等方式大力发展经营业务。一家投资公司准备向甲酒店投资入股,现在正对甲酒店的财务状况进行分析。为了进行比较,该投资公司选取了乙酒店作为参照对象,乙酒店是中国酒店业的龙
下列房产中,应计算缴纳房产税的有()。
第五次人口普查显示我国65岁及以上的人口占总人口的百分比大约是( )。第五次人口普查显示我国15岁及以上的人口占总人口的百分比大约是( )。
设函数f(x)具有二阶连续导数,且f(x)>0,f’(0)=0,则函数z=f(x)lnf(y)在点(0,0)处取得极小值的一个充分条件是
最新回复
(
0
)