zoukankan      html  css  js  c++  java
  • 1993年高级程序员下午试题2

    [说明]

    流程图的功能是对预处理后的正文进行排版输出。

    假定:预处理后的正文存放在字符串 S 中,S 由连续的单词组成,单词由连续的英文字母组成。在预处理过程中已产生以下信息:

    变量 NW 存放正文中单词的个数,数组元素 SL(1)存放正文中第 1 个单词在S中的字符位置,SN(1) 存放正文中第 1 个单词的长度。规定 S 中的字符位置从 1 开始计数,每个字符占一个位置。字符串S中的某个单词可用如下的子串形式来存取:

    S( 单词起始位置:单词终止位置 )

    并规定在对字符串( 或子串 )赋值时,赋值号两端的字符串( 或子串 )长度必须相等。

    排版输出的要求如下:

    (1)每行输出 80 个字符;

    (2)一个单词不能输出在两行中;

    (3)除最后一行外,所有输出行既要左对齐又要右对齐。即每行的第一个字符必须是某个单词的第一个字母,最后一个字符必须是某个单词的最后一个字母;

    (4)单词之间必须有 1 个或 1 个以上的空格;

    (5)最后一行只须左对齐,且单词之间均只有一个空格;

    (6)使字格尽可能地均匀分布在单词之间,即同一行中相邻的单词间的空格数最多相差 1。

    假定正文中至少有两个以上单词,每个单词的长度均小于 40。此外,流程图中省略了数据的输入部分。图中「W」表示不超过W的最大整数。

    [问题1] 

    填充流程图中的 ①~⑥,使之成为完整的流程图。 

    [问题2] 

    图中的“输出末行”框未经细化。如果将图中的虚线部分复制到“输出末行”框上,那么复制部分应作怎样的修改?可用图中所标的 a,b,…,j来回答,例如 a 改成 1→I :删除 b。

    [问题3]

    如将图中开始部分的 SN(1)→LN 改成 0→LN;2→I 改成 1→I,则修改后的流程图是否正确。

    [流程图] 

     

     

     

    答案

    [问题1]

    ① LN+1+SN(1)→LN1  ② LN1→LN  ③ ≥  ④ <  ③ K+1+LNW+SN(J) ⑥SN(1)→LN
    [问题2]

    删去f,g,h框,将e改成K+1+SN(J)→K
    [问题3]

    不正确

  • 相关阅读:
    SQL Server 备份方案
    Azure 学习笔记
    SEO – 大杂烩
    Asp.net core 学习笔记之 Tag Helper
    读取注册表
    DOM学习历程-3
    inno setup给控制的那边加图标
    C++生成exe安装到别人那边无法使用缺少dll
    inno setup 最后
    inno setup
  • 原文地址:https://www.cnblogs.com/djcsch2001/p/2099571.html
Copyright © 2011-2022 走看看