问题
问答题
阅读以下技术说明和流程图,根据要求回答问题1至问题3。
[说明]
图4-8的流程图所描述的算法功能是将给定的原字符串中的所有前部空白和尾部空白都删除,但保留非空字符。例如,原字符串“ FileName ”,处理变成“File Name”。图4-9、图4-10和图4-11分别详细描述了图4-8流程图中的处理框A、B、C。
假设原字符串中的各个字符依次存放在字符数组ch的各元素ch(1)、ch(2)、…、ch(n)中,字符常量 KB表示空白字符。
图4-8所示的流程图的处理过程是:先从头开始找出该字符串中的第一个非空白字符ch(i),再从串尾开始向前找出位于最末位的非空白字符ch(j),然后将ch(i)、……、ch(j)依次送入ch(1)、ch(2)、……中。如果字符串中没有字符或全是空白字符,则输出相应的说明。
在图4-8流程图中,strlen()是取字符串长度函数。
图4-8 算法总流程图
图4-9 处理框A对应的流程图
图4-10 处理框B对应的流程图
图4-11 处理框C对应的流程图
[问题2] 在图4-8流程图中,判断框P中的条件可表示为:i> (5) 。 |
答案
参考答案:
解析:在图4-8所描述的流程图中,判断ch是空白字符串,等价于A框处理结束后没有找到空白字符。从图 4-9所描述的流程图中可以看出,循环变量i超过n(或达到n+1)时,就说明从头到尾一直没有找到空白字符。因此,在图4-8流程图中,判断框P中的条件可表示为“i>n”,即(5)空缺处所填写的内容是“n”。