问题 问答题


阅读下列函数说明和C代码,把应填入其中n处的字句写在答卷的对应栏内。
【函数2说明】
本题中的函数encode()和decode()分别实现对字符串的变换和复原。变换函数encode()顺序考察已知字符串的字符,按以下规则逐组生成新字符串:
1.若已知字符串的当前字符不是数字字符,则复制该字符于新字符串中。
2.若已知字符串的当前字符是一个数字字符,且它之后没有后继字符,则简单地将它自己复制到新字符串中。
3.若已知字符串的当前字符是一个数字字符,并且还有后继字符,设该数字字符的面值为n,则将它的后续字符(包括后续字符是一个数字字符)重复复制n+1次到新字符串中。
4.以上述一次变换为一组,在不同组之间另插入一个下划线字符“-”用于分隔。例如。encode()函数对字符串26a3t2的变换结果为666_a_tttt_2
复原函数decode()做变换函数encode()的相反的工作。即复制不连续相同的单个字符,而将一组连续相同的字符(不超过10个)变换成一个用于表示重复次数的数字字符和一个重复出现的字符,并在复原过程中掠过变换函数为不同组之间添加的一个下划线字符。
假定调用变换函数encode()时的已知字符串中不包含下划线字符。
【函数2】
int encode(char*instr,char * outstr)
{
char*ip,*op,c;int k,n;
ip=instr;op=outstr;
while(*ip){
if (1) &&*(ip+1){
n= *ip -’0’+ 1;
c= *++ip;
for(k=0;k<=n;k++)
(2)
}
else (3)
*op++ =’-’;
ip++;
}
if(op>outstr) (4)
*op=’\0’;
return op-outstr;
}
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){ip++;n++;}
if (5) *op++=’0’+n-1;
*op++=c;
if(* ip==’_’,) (6)
}
* op=’\0’;
return op-outstr;
}

答案

参考答案:

解析:*op++=*ip 当前字符不是数字,简单复制一次的情况。

多项选择题 共用题干题

患者女性,11岁,小学五年级学生。主因控制不住地反复想无意义事情,不自主眨眼、模仿他人说话、吼叫、打自己近两年,加重一年而就诊。两年前父母让患者学钢琴,患者不肯,母亲严厉训斥患者,其后表现情绪不良、少语一月余,其后情绪恢复,于20个月前逐渐出现爱眨眼睛,其后逐渐出现努嘴巴、甩头、发声吼叫,偶尔要拍打自己,反复想一些无意义的事情,努力控制自己不去想,但无法控制,为此感到很痛苦。半年余未经任何治疗,病情好转。于一年前病情加重,反复想一些无意义的事情,如在做练习题的时候,脑子里立刻想到我为什么做这个题,做了会有什么好处,不做会怎么样,学习受到影响,成绩下降。患者眨眼睛、甩头、发声吼叫等症状也明显加重,几乎每天都出现。患者为此很苦恼,烦躁不安,晚上睡眠差,经常彻夜难眠,食欲也随之下降。

提示:对患者进行门诊治疗,氟哌啶醇治疗0.5mg/d用起,每天2次,3天后加至1mg/d,每天2次,1周后加至3mg/d。舍曲林治疗从25mg/d用起,每天一次,3天后加至50mg/d,1周后加至100mg/d,患者用药第8天开始出现斜颈、上肢肌张力增高。针对病人目前情况,下一步处理可以考虑以下哪些选择()。

A.方案不变,加强观察

B.减少氟哌啶醇用量

C.加用抗胆碱药物

D.换用其他药物

E.抽动症状加重,加大氟哌啶醇用量

F.减少或停用氟哌啶醇

G.停用舍曲林

H.合用利培酮,快速控制抽动

多项选择题