首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列程序说明和C代码,将应填入(n)处的字句写在对应栏内。 【说明】 下面的程序功能的功能是以行为单位对字符串按下面的条件进行排序。排序条件为:从字符串中间一分为二,右边部分按字符的ASCII值降序排序,排序后左边部分与右边部分进行交换。如果原字
阅读下列程序说明和C代码,将应填入(n)处的字句写在对应栏内。 【说明】 下面的程序功能的功能是以行为单位对字符串按下面的条件进行排序。排序条件为:从字符串中间一分为二,右边部分按字符的ASCII值降序排序,排序后左边部分与右边部分进行交换。如果原字
admin
2009-02-15
64
问题
阅读下列程序说明和C代码,将应填入(n)处的字句写在对应栏内。
【说明】
下面的程序功能的功能是以行为单位对字符串按下面的条件进行排序。排序条件为:从字符串中间一分为二,右边部分按字符的ASCII值降序排序,排序后左边部分与右边部分进行交换。如果原字符串长度为奇数,则最中间的字符不参加排序,字符仍放在原位置上
例如:位置:0 1 2 3 4 5 6 7
源字符串:h g f e a b c d
则处理后字符串:d c b a h g f e
函数ReadDat()实现从文件in.dat中读取数据(每行字符串长度均小于80),函数WriteDat()把结果dat输出到文件out.dat中。
#include<stdio.h>
#include<siring.h>
#include<conio.h>
char dat[20] [80];
void jsSort()
{
int i,j,k,strl;
char ch;
for(i=0;i<20;i++)
strl=strlen(date
);
for(j=(1);j<strl;j++) /*对后半部分的字符串进行排序*/
for(k=j+1;k<strl;k++)
if( (2) )
{
ch=dat
[j];
dot
[j]=dat
[k];
dat
[k]=ch;
}
for(j=0; (3) j++) /*前后两部分进行交换*/
{
ch = date
[j];
dote
[j] = date
[(strl+1)/2+j];
dat
[(strl+1)/2+j]=ch;
}
}
}
void main()
{
reodDat();
isSort();
writeDot();
}
readDat ()
{
FILE * in;
int i=0;
char * p;
(4);
while(i<20 && fgets(dat
,80,in)!=NULL)
{
p = strchr(date
,"\n");
if(p) *p=0;
i++;
}
fclose (in);
}
writeDat()
{
FILE * out;
int i;
clrscr ();
out = fopen("out. dat" ,"W");
for(i=0;i<20;i++)
{
printf("%s\n",dar
);
printf ((5));
}
fclose (out);
}
选项
答案
(1)(strl+1)/2 (2)dat[i][j]<dat[i][k] (3)j<strl/2 (4)in=fopen("in. dat","r") (5)out,"% s\n",dat[i]
解析
程序的思路是:先调用函数ReadDat()从文件in.dat中读取20行数据存放到字符中数组dat中,然后调用函数jsSort()对字符串数组dar按照排序规则进行排序,排序后的结果仍按行重新存入字符串数组dat中,最后调用函数WriteDat()把结果dat输出到文件out.dat中。
(1)、(2)空所在的两重循环是对一行字符串的后半部分按字符的 ASCII值降序排序,这是一个简单的冒泡排序。考虑到如果原字符串长度为奇数,则最中间的字符不参加排序,因此应从第(strl+1)/2个元素开始排序,这就是(1)空所填的内容。由于是按字符的ASCII值降序排序,因此当dat
[j]<dat
[k]时就要进行数据交换,这就是 (2)空所填的内容。
(3)空所在的循环是进行前后两部分数据交换,因此,结束条件应为strl/2,因此空(3)应填“j<strl/2”。
(4)空所在函数是读取数据函数。在读取数据前先要以只读方式打开数据文件in.dat,因此空(4)处应填写“in=fopen("in.dat","r")”。
(5)空所在函数是写入排序结果函数。在(5)空所在行是把dat
一行写入到out.dat中,应此(5)空处应填写“out,"%"s\n",dat
”。
转载请注明原文地址:https://kaotiyun.com/show/7ojZ777K
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
在Access中,表和数据库的关系是(67)。
下面不属于软件开发过程的是______。
在Excel的A1单元格中输入函数“=LEFT(“信息处理技术员”,2)”,按回车键后,A1单元格中的值为()。
文件的类型可以根据()来识别。
某商场的部门和商品两个实体之间的关系如下图所示。假设每个部门负责销售若干种商品,每种商品只能由一个部门负责销售,那么部门和商品之间存在着(14)的联系。
一条内存不常见的容量是(1)。
在信息收集过程中,需要根据项目的目标把握数据(7)________________要求,既不要纳入过多无关的数据,也不要短缺主要的数据;既不要过于简化,也不要过于烦琐。
在Excel2010中,C3:C7单元格中的值分别为10、OK、20、YES和48,在。D7单元格中输入函数“=COUNT(C3:C7)”,按回车键后,D7单元格中显示的值为________________。
Windows系统的控制面板不包括__________功能。
与外存相比,内存的特点是(3)。
随机试题
正常成人安静时,心率约为每分钟60~100次。()
玉米与大豆或花生间作是利用了它们之间原始合作的共生关系。[]
案情:甲有限责任公司在2006年为了提高工人的积极性,发行了公司内部职工股。2011年,公司决定让部分职工退股,并将其本金连同当年利息一并返还。在甲公司经营过程中,因业务开展顺利,董事会决定,即日起正式实施以下方案:①以甲公司名义投资1
A上市公司2×17年有关经济业务发生如下:(1)1月5日,委托证券公司从股票交易所购入B上市公司股票100000股,每股购买价款为5.5元(其中包含已宣告但尚未发放的现金股利0.2元/股)。另支付相关交易费用30000元,取得的增值税专用发票上注明的
资料一:企业向甲银行借款5000万元,年利率8%,每半年计息一次,期限5年,自2018年1月1日起至2023年1月1日止,企业选择等额本息还款方式偿还贷款本息,还款日在每年的7月1日和1月1日。资料二:2019年12月末企业出于降杠杆需要,准备于
地陪在接团后赶赴饭店途中的初次讲解中,首先应当()。
材料:蓝天幼儿园是某市的一家幼儿园,该幼儿园的李老师为了给幼儿们一个不一样的寒假,给幼儿布置了独具特色的寒假作业—环保作业:让家长带领幼儿到公园街头捡拾垃圾;民俗作业:让幼儿真正认识传统佳节;体育作业:长跑、跳绳天天练,告别肥胖、近视眼等。这种“变了脸”
有以下程序main()inta[10]={1,2,3,4,5,6,7,8,9,10},*p=.&a[3],*q=p+2;printf("%d\n",*p+*q);程序运行后输出结查是
A、Thelossofinterestinstudy.B、Thegapbetweenlearningandpractice.C、Thehightuitionforschooling.D、Thelimitednumber
Thinkoflavendertodayandupcomeimagesofold-worldcottagegardensthickwithnoddinghollyhocksandpinkrosesroundthed
最新回复
(
0
)