首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列程序说明和C代码,将应填入(n)处的字句写在对应栏内。 【说明】 下面的程序功能的功能是以行为单位对字符串按下面的条件进行排序。排序条件为:从字符串中间一分为二,右边部分按字符的ASCII值降序排序,排序后左边部分与右边部分进行交换。如果原字
阅读下列程序说明和C代码,将应填入(n)处的字句写在对应栏内。 【说明】 下面的程序功能的功能是以行为单位对字符串按下面的条件进行排序。排序条件为:从字符串中间一分为二,右边部分按字符的ASCII值降序排序,排序后左边部分与右边部分进行交换。如果原字
admin
2009-02-15
36
问题
阅读下列程序说明和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
程序员下午应用技术考试
软考初级
相关试题推荐
某工作站无法访问域名为www.test.com的服务器,此时使用ping命令按照该服务器的IP地址进行测试,响应正常。但是按照服务器域名进行测试,出现超时错误。此时可能出现的问题是(17)。
字符串编辑有3种基本操作:在指定位置插入一个字符、在指定位置删除一个字符、在指定位置用另一个字符替换原来的字符。将字符串ABCDE,编辑成ECDFE,至少需要执行(6)次基本操作。
某企业要求将各销售部门上月的销售额制作成图表。________________能直观形象地体现各销售部门的业绩以及在企业总销售额中的比例。
Windows7系统运行时,用户用鼠标右击某个对象经常会弹出________________。
Word2010中的格式刷可用于复制段落的格式,若要将选中的当前段落格式重复应用多次,应()。
为保护个人信息不被泄露,每个人都需要提高安全意识。以下各项,除(62)外,都是应该养成的安全习惯。
以下关于数据录入人员和数据校验人员工作职责的叙述中,不正确的是______。
(1)是固化在主板ROM内的程序,为计算机提供最底层、最直接的硬件访问和控制。
为了保证其他主机能接入Internet,在如图1-4所示的host1eth1网卡“Internet连接共享”应如何选择?请为图1-2中host2配置Internet协议属性参数。IP地址:(5);(范围)子网掩码:(6);默
随机试题
公称直径为125mm,工作压力为0.8MPa的工业管道应选用()。
Largelectureclassesarefrequentlyregardedasanecessaryevil.Suchclasseshavetobe【56】inmanycollegesanduniversities
A.囊腺瘤B.囊腺癌C.囊性畸胎瘤D.肌瘤E.库肯勃瘤具有3个胚层组织的肿瘤是
护士采取股外侧肌注射的情况是
患者,男性,35岁。高温工作4小时。因出汗较多,口渴,饮水3大杯。30分钟后自感乏力、腿痛,不能走路,并有腹痛。最可能出现的情况是
上消化道出血时每日出血量至少超过多少毫升才会是黑便?()
三个R=10Ω的电阻作三角形连接,已知线电流I1=22A,则该三相负载的有功功率P=()。
下列属于学生过错行为的是()。
甲公司向乙公司发出采购50台电脑的要约,乙公司于3月1日发出承诺信件表示完全同意要约内容,3月7日信件发至甲公司,3月8日甲公司的经理知悉了该信件内容,遂于3月10Et电传告知乙公司收到承诺信件。在该合同的订立过程中,承诺通知的生效时间是()。
すみません、新しいキャンパスの近所には食料品の店はありますか。店
最新回复
(
0
)