首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
函数readDat()是从文件in71.dat中读取20行数据存放到字符串数组xx中(每行字符串长度均小于80)。请编制函数jsSon(),其功能是:以行为单位对字符串按下面给定的条件进行排序,排序后的结果仍按行重新存入字符串数组xx中。最后调用函数 wr
函数readDat()是从文件in71.dat中读取20行数据存放到字符串数组xx中(每行字符串长度均小于80)。请编制函数jsSon(),其功能是:以行为单位对字符串按下面给定的条件进行排序,排序后的结果仍按行重新存入字符串数组xx中。最后调用函数 wr
admin
2010-01-11
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()和写函数writeDat()的内容。
试题程序:
#include<stdio. h>
# inc lude< st ring. h>
#inc lude<conio, h>
char xx[20] [80];
void jsSort()
{
}
void main ( )
{
readDat ();
jsSort ();
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.dat", "w" );
for (i=0; i<20; i++)
{
printf("%s\n",xx
);
fprintf (out, "%s\n" ,xx
);
}
fclose (out);
}
选项
答案
函数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()和写函数writeDat()的内容。 试题程序: #include<stdio. h> # inc lude< st ring. h> #inc lude<conio, h> char xx[20] [80]; void jsSort() { } void main ( ) { readDat (); jsSort (); writeDat ( ); } readDat ( ) { FILE *in; int i=0; char *p; in=fopen ( "in71.dat", "r"); while (i<20 && fgets(xx[i],80,in)!=NULL) { p=strchr (xx [i] , ’ \n’ ); if(p) *p=0; i++; } fclose (in); } writeDat ( ) { FILE *out; int i; clrscr ( ); out=fopen ( "out71.dat", "w" ); for (i=0; i<20; i++) { printf("%s\n",xx[i]); fprintf (out, "%s\n" ,xx[i] ); } fclose (out); }
解析
本题考查的知识点如下:
(1)二维数组的访问和下标的控制。
(2)字符的ASCⅡ码的比较。
(3)字符的排序。
本题将数据按行存入到二维数组xx中,行数为数组的第1个下标,每行字符的个数为数组的第2个下标。因为以行为字符串处理的单位,所以要先求得一行字符串的长度。字符可以参加任何整数运算,实际上是字符的ASCⅡ码参与了运算,所以可以直接使用比较运算符对字符进行比较。对从0到(长度/2-1)的字符进行降序排序(数组的下标从0开始)。若长度为奇数,则再从(长度/2+1)开始(跳过最中间的字符)到最后1个字符进行升序排列。否则,从(长度/2)开始到最后1个字符进行升序排列。字符排序使用“选择排序法”,最后使用循环实现对每行数据的处理。
转载请注明原文地址:https://www.kaotiyun.com/show/Sb5Z777K
本试题收录于:
三级信息管理技术题库NCRE全国计算机三级分类
0
三级信息管理技术
NCRE全国计算机三级
相关试题推荐
关于数字签名的描述中,正确的是()。
文件系统中,若把逻辑上连续的文件信息依次存放在连续编号的磁盘块中,这种结构称为()。
在虚拟页式系统中,当需要进行页面置换时,选择将驻留在内存中时间最长的一页调出的策略是()。
计算机I/O系统的硬件结构主要包含()。
UNIX操作系统中,fork()系统调用用于创建进程。仔细阅读、分析下列程序,假设程序正确运行并创建子进程成功,那么输出到屏幕的正确结果是()。main(){pid_tpid;pid=fork();if(
进程具有多种状态,操作系统改变进程状态主要是通过下列哪一种方法实现的?()
操作系统在进行设备分配时根据算法需要查找相应的数据结构,该数据结构包括的主要内容为下列哪几项?()
采用动态地址映射方式向内存装入程序时,其地址转换工作是在什么时间完成的?()
分析下列程序,不考虑其他因素,程序正常运行时最多会派生出多少个进程?()intmain(){fork();fork();fork();}
在一个采用非抢占式调度策略的系统中,下列哪些因素将引起进程调度?()
随机试题
某单位总承包了某机场的场道工程任务,该项目基础为两层水泥稳定碎石,要求7d浸水无侧限抗压强度不少于3.5MPa。在某段底基层施工完毕后监理单位进行检查,发现用钢钎下探基础松散,监理工程师怀疑强度达不到设计要求。施工单位提交的抗压强度表明,强度达到了设计要求
A.第3腰椎B.足侧倾斜15°,耻骨联合上3cmC.头侧倾斜20°~25°,两髂前上棘连线中点D.两髂前上棘连线中点下方3cmE.髂前上棘与脐连线中点腰椎侧位中心线为
A、微晶纤维素B、碳酸氢钠C、硬脂酸镁D、乙基纤维素E、滑石粉可用于粉末直接压片的是()
防排烟系统的排烟口距可燃物或可燃构件的距离不应小于()。
账务处理系统初始余额录入后,系统提示数据错误时,应当()。
()是员工招聘中常用的一种方法,但也存在较多争议。
在编辑演示文稿的文本标题时,可改变标题级别的视网是()。
某兴趣小组探究植物细胞失水量与外界溶液浓度的关系,选用紫色洋葱鳞片叶外表皮作为实验材料,进行以下实验:①撕取洋葱鳞片叶外表皮,分别在0.2g/mL、0.3g/mL、0.4g/mL的蔗糖溶液中浸泡一段时间。②取出材料,分别制成1、2
A、 B、 C、 D、 A1个圆圈一2个小正方形,图形数量相等,由此可知选择A选项。
加快资本周转,可以()
最新回复
(
0
)