全球旧事资料 分类
第2章程序员下午试题分析与解答试题一阅读下列说明和流程图,将应填入
处。流程图说明流程图11描述了一个算法,该算法将给定的原字符串中的所有前导空白和尾部空白都删除,但保留非空字符之间的空白。例如,原字符串“FileName”,处理后变成“FileName”。流程图12、流程图13、流程图14分别详细描述了流程图11中的框A,B,C。假设原字符串中的各个字符依次存放在字符数组ch的各元素ch1,ch2,…,ch
中,字符常量KB表示空白字符。流程图11的处理过程是:先从头开始找出该字符串中的第一个非空白字符chi,再从串尾开始向前找出位于最末位的非空白字符chj,然后将chi,…,chj依次送入ch1,ch2,…中。如果原字符串中没有字符或全是空白字符,则输出相应的说明。在流程图中,strle
是取字符串长度函数。
f问题在流程图11中,判断框P中的条件可表示为:i>5试题分析本题用分层的流程图形式描述给定的算法。流程图11是顶层图,其中用A、C标注了三个处理框。B、而流程图12、图13、图14分别对这三个处理框进行了细化。A框的功能是依次检查ch1,ch2,…,直到找到非空白字符chi。流程图12中,对i1,2,…进行循环,只要尚未找到尾,而且chiKB,则还需要继续查找。因此,1处可填写i<
>i是其等价形式。B框的功能是依次检查ch
ch
1,…,直到找到非空字符chj。流程图13中,对j
1,…进行循环,只要chjKB,则还需要继续循环查找。由于B框处理的前提是A框中已经找到了非空字符chi,所以,循环最多到达ji处就会结束。因此2处应填写判断条件chjKB。判断条件j>i是可有可无的。C框的功能是将chi,chi1,chj的内容依次送入ch1ch2,…,…中。流程图14中,kiil,对…j
f进行循环,即只要k<j,就要继续做传送,继续循环。因此3处可填写k<j。由于chi应送往ch1,chi1应送往ch2,…,所以,chk应送往chki1。这是程序员应熟练掌握的基本功:从几个特例,寻找普遍规律,再用特例代进去试验是否正确。因此,4处应填写chki1。在流程图11中,判断ch是空白字符串,等价于A框处理结束后没有找到空白字符。从流程图12中可以看出,循环变量i超过
或达到
1时,就说明从头到尾都找过了,仍没有找到空白字符。因此,5处可以填写
。参考答案1i<
,或其等价形式2chjKB3k<j,或其等价形式4chki15
试题二阅读以下说明和C语言函数,将应填入
处。说r
好听全球资料 返回顶部