首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读下列函数说明和C函数,将应填入(n)处的字句写在对应栏内。 [说明] 函数encode()和decode()分别通过参数传递实现对字符串的变换和复原,返回值均为处理以后的字符串长度。变换函数encode()顺序考察已知字符串的字符,按以下规则逐组
阅读下列函数说明和C函数,将应填入(n)处的字句写在对应栏内。 [说明] 函数encode()和decode()分别通过参数传递实现对字符串的变换和复原,返回值均为处理以后的字符串长度。变换函数encode()顺序考察已知字符串的字符,按以下规则逐组
admin
2009-02-15
10
问题
阅读下列函数说明和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://jikaoti.com/ti/NrW7FFFM
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
新建一个Word文档,编辑结束后,执行“文件”菜单中的“保存”命令,则______。
某企业要求将各销售部门上月的销售额制作成图表。________________能直观形象地体现各销售部门的业绩以及在企业总销售额中的比例。
数据________________是将数据以图形图像形式表示,并利用数据分析工具发现其中未知信息的处理过程。
企业建立生产和库存管理系统的目的不包括()。
上级要求信息处理技术员做a、b、c、d、e五件工作。先做什么,后做什么,如何安排呢?根据工作性质以及紧急程度,他列出了如下几条规则:a应在b前 c应在a前 d应在a前 a应在e前d应在b前 b应在e前 c应在d前 c应在
某年级两个班举行了一次数学统考,一班(共30人)的平均成绩为70分,二班(共 20人)的平均成绩为75分,则该年级的平均成绩为(65)分。
在Excel的A2单元格中输入:“=1=2”,则显示的结果是______。
在Excel中,下列符号属于比较运算符的是(43)。
程序员一般用(7)软件编写和修改程序。
随机试题
油井含水的上升速度除了受规律性的影响外,在某一阶段主要取决于()情况和层间差异的调整程度。
迈克尔.里杰斯特认为,为组织建立富有竞争力的声誉、树立组织的形象和处理组织的重大问题创造了机会的是()
马钱子去毛多采用
鲁迅曾说:“人有人性,狼有狼性。我希望中国人多一点狼性,少一点人性。”用现代教育改革新观念的眼光来看,鲁迅实际上是在提倡()
1928年,英国细菌学家弗莱明首先发现了世界上第一种抗生素——青霉素。1929年,弗莱明发表了他的研究成果,遗憾的是,这篇论文发表后一直没有受到科学界的重视。1942年,青霉素已经可以临床应用,但依然无法大量生产。直到1943年,制药公司发现了批量生产青霉
对于领导做出的命令或决定,你觉得有问题,并认为自己的方案更好,向领导提出建议后,领导依然要求按照他的决定执行,请问你怎么办?
在试用买卖合同项下,如果试用买卖期限届满,买受人未作是否购买的意思表示,则标的物毁损、灭失的风险由()。
以下4种路由中,_________路由的子网掩码是255.255.255.255。
程序设计语言的基本成分包括(30)、运算、控制、传输等,可计算问题的程序都可以用顺序结构、(31)和重复结构这三种控制结构来描述。
关于局域网交换机,下列表述错误的是()。
最新回复
(
0
)