首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列函数说明和C函数,将应填入(n)处的字句写在对应栏内。 [说明] 函数encode()和decode()分别通过参数传递实现对字符串的变换和复原,返回值均为处理以后的字符串长度。变换函数encode()顺序考察已知字符串的字符,按以下规则逐组
阅读下列函数说明和C函数,将应填入(n)处的字句写在对应栏内。 [说明] 函数encode()和decode()分别通过参数传递实现对字符串的变换和复原,返回值均为处理以后的字符串长度。变换函数encode()顺序考察已知字符串的字符,按以下规则逐组
admin
2009-02-15
23
问题
阅读下列函数说明和C函数,将应填入(n)处的字句写在对应栏内。
[说明]
函数encode()和decode()分别通过参数传递实现对字符串的变换和复原,返回值均为处理以后的字符串长度。变换函数encode()顺序考察已知字符串的字符,按以下规则逐组生成新字符串:
(1)若已知字符串的当前字符不是数字字符,则复制该字符于新字符串中;
(2)若已知字符串的当前字符是一个数字字符,且它之后没有后继字符,则简单地将它复制到新字符串中;
(3)若已知字符串的当前字符是一个数字字符,并且还有后继字符,设该数字值为n,则将其后继字符重复复制n+1次到新字符串中;
(4)以上述一次变换为一组,在不同组之间另插入一个下划线‘_’用于分隔。
例如:encode()函数对字符中26a3t2的变换结果为666_a_tttt_2。
函数decode()用于经函数encode()处理的字符中,即复制不连续相同的单个字符,而将一组连续相同的字符(不超过10个)变换成一个用于表示重复次数的数字符和一个重复出现的字符,并在复原过程中掠过变换函数为不同组之间添加的一个下划线字符。
注:假定调用变换函数encode()时的原始字符串中不包含下划线字符。
[函数]
int encode(char *instr,char *outstr)
{ char *ip, *op,c;
int k,n;
ip=instr;
op=outstr;
while ( * ip) {
if(*ip>=’0’&&*ip<=’9’&&*(ip+l)) {
n=*ip-’0’+1;
c=(1);
for (k=0;k<n;k++) *op++=c;
}
else *op++=*ip;
(2);
ip++;
}
if (op>outstr) (3);
*op=’\0’;
(4);
}
int decode(char *instr,char *outstr)
{ char *ip,*op,c;
int n;
ip=instr; op=outstr;
while ( *ip) {
c=*ip;
n=0;
while( *ip==c&&n<10) {(5); n++; }
if(n>1) *op+ + =’0’+n-1;
* op++=c;
if(*ip==’_’) ip++;
}
*op=’\0’;
(4);
}
选项
答案
(1) *++ip (2) *op++=‘_’ (3) op- -或- -op (4) return op - outstr (5) ip++
解析
在encode和decode函数中,参数ip和op分别指向输入字符串和输出字符串。
(1)读到一个非零数字n时,读取其后一个字符放入c,将其循环写入输出字符串n遍;
(2)完成一组变换后,应向输出字符中中添加一个下划线字符;
(3)如果输出字符串不空,应删除其末尾多余的下划线字符;
(4)根据程序说明,此处应返回输出字符串的长度,这里用尾、首位置指针的差表示;
(5)此处while循环的作用是读取连续相同的若干字符,输入字符串的位置指针应后移。
转载请注明原文地址:https://kaotiyun.com/show/UbjZ777K
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
下列关于Word2007撤销操作的叙述中,正确的是______。
计算机网络中,防火墙的功能不包括________________。
()不属于ABC技术(人工智能-大数据-云计算)的典型应用。
某地区考试机构准备对信息处理技术员考试笔试成绩(BS)不低于45分,并且机考成绩(JK)为43~44分者进行重点复查。对考生成绩表进行筛选操作时,正确描述上述条件的表达式是(27)。
在编辑Word2007文档时,若多次使用剪贴板移动文本内容,当操作结束时,剪贴板中的内容为__________。
在Excel中,下列符号属于比较运算符的是(43)。
在Excel2007中,利用填充柄可以将数据复制到相邻单元格中。若选择含有数值的上下相邻的两个单元格,按住鼠标左键向下拖动填充柄,则数据将以(49)________________填充。
在Excel中,若单元格C5=1000、D5=50、C6=6000、D6=40,在单元格E5中输入公式“=C5*$D$5”,再将此公式复制到F6单元格中,则F6单元格的值为(54)。
在Excel2010中,G3单元格中公式为“=$D$3+E3+F3”,若以序列方式向下填充,则G12单元格的公式为()。
/etc/dhcpd.conf文件中的配置语句:hostCIU_DHCP{hardwareethemet52.54.AB.3B.B6.45fixed-address192.168.1.15;}表示的是什么意思?当配置文件配置好以后,还
随机试题
下列函数在给定区间上满足罗尔定理条件的是()。
面色恍白或萎黄,少气懒言,乏力瘦怯;心悸、失眠,肌肤干燥,肢体麻木甚则萎废不用。属于
先天性甲状腺功能减低症的新生儿筛查下列哪项是错误的
对根分叉区病变治疗效果影响最小的因素是
进行析漏试验时,在玻璃上加玻璃板盖,放入()温度的烘箱中较合适。
根据《火灾自动报警系统设计规范》(GB50116--2013)的规定,消防控制室内的设备面盘至墙的距离不应小于()m。
首先抓好解决企业关键问题、薄弱环节和重点项目的技术改造,处理好当前和长远的关系的是()。
以下营运资本筹资政策中,临时性负债(短期金融负债)占全部资金来源比重最大的是()。
根据下面材料,回答问题。2014年11月,A省金融机构存款余额(本外币)环比增长约为()。
大索貌阅
最新回复
(
0
)