NOI1992【信息技术】.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
NOI92 试题 第一题:文章排版 把一段文章按要求排版文章的输入方式为:由键盘输入一个以回车符结束的文章(最大长度2000个字符)。 排版时以单词为基本单位。单词由不含空格的任意字符组成,是长度小于20 个字符的串。空格符是分隔单词的唯一字符,在输入时连续的空格符在处理时应首先化简为单个空格。 在排版前应先输入排版后每行的字符数N,排版后将整理好的文章按行输出。 输出时应保证不将一个完整的单词截断,并且要求输出的总行数最小。 将每个不足N个字符的行用空格符补足,填充空格符的方式有以下3种: 1.将填充的空格符置于每行的末尾,并要求每行的起始为单词。 2.将填充的空格符置于每行的起始,并要求每行的末尾为单词。 3.将填充的空格符尽可能平均分配在每行中,并保证每行的起始和末尾均为单词。 试编程对输入的一段文阐分别完成上述三个要求。 第二题:逻辑表达式 由英文字符和符号和符号~、*、+、()组成逻辑表达式,英文字母表示变 量,变量有两种可能的取值,False或True;~、*、+。括号()可改变表达式的运算次序,且可以嵌套。 逻辑“非”运算的公式如下表: A ~A TRUE FALSE FALSE TRUE ? 逻辑“与”和逻辑“或”的运算公式如下表: A B A*B A+B FALSE FALSE FLASE FLASE FALSE TRUE FLASE TRUE TRUE FALSE FALSE TRUE TRUE TRUE TRUE TRUE 两个逻辑表达式等价,当且仅当两个公式中相同名字的变量取任何一种值时两 个公式的值都相同。如: A*(B+C) 与 A*B+A*C 等价 A*(~A+B) 与 A*B 等价 (~A+A)*BC 与 B+C 等价 A*B+A*~B 与 A 等价 而: A+B 与 A*B 不等价 A*B+~C 与 A*E+~F 不等价 现要求你编程解决下列问题: 任务1 用键盘输入一个逻辑表达式,判断这个表达式的合法性; 任务2 将键盘输入的表达式化简,化简的表达式为 a1*a2*…*aN+b1**b2*…*bM+…+x1*x2*…*xL 其中ai、bj、…xk(i=1,2,…n; j=1,2,…m; k=1,2,…1)表示一个变量或一个变量的逻辑非; 任务3 将任务2中的化简的表达式化为最简形式。所谓最简有如下两个条件: (1)表达式中的"+"号最少; (2)满足的条件下"+"号最少。 第三题:无根树 无根树与通常所说的树(有根树)很相似,它包括有节点和枝,但不含有根。 无根树节点间只有相邻关系,而不存在父子节点的关系。如图3.3-1所示,是一棵有7个节点的无根树;以图3.3-1的A为根节点得到图3.3-2所示的有根树,以图3.3-1的B为根节得到图3.3-3所示的有根树,但从无根树的角度看,图3.3-1、图3.3-2、图3.3-3是结构相同的无根树,同时无根树的结构与节点的名称无关。 有根树可以以字符串的形式表示,其递归表示方法为: 根节点(子树1 子树2 子树3……) 如图3.3-2,图3.3-3的有根树可分别表示为A(B(CF(EGD)))和B(ACF(EGD)),需要注意的是,由于子树的表示顺序可以不同,所以一棵有根树可以有多种表示方法,如图3.3-3由可表示为B(F(EGD)CA)和B(ACF(DEG))等。 表示无根树时,可以以它的任一节点为根节点,将其看作有根树从而可以利用 有根树的字符串表示形式来表示无根树。 任务1 由键盘读入一个字符串表示的无根树,无根树的各节点的名称用互不 相同的大写英文字母表示。则用户输入一个节点的名称,程序应能够输出一种以该节点为根节点的字符串形式。 程序输出无根树的子符串形式时,各个节点的名称无关紧要,所有节点都以P 表示,以后的各种输出了也采用这种方式。 例如: 用户输入无根树的字符串形式:A(B(CD(EF))) 指定的根节点为:D 输出P(P(PP)PP)P(PP(PP)P)P(PPP(PP)) 任务2 输入两个串表示的无根树,判断其结构是否一样。注意与节点名称无关,只考虑结构。 任务3 输入无根树的总枝 N(1≤N≤11),输出所有枝数为N的互不相同的无根树,并记录总数。以字符串形式输出:例如,N=5时,共有6种不同结构的无根树。 第四题:电子锁 某机要部门安装了电子锁。M工作人员每人发一张磁卡,卡上有开锁的密码特征。为了确保安全,规定至少要有N个人同时使用各自的磁卡才能将锁打开。 现在需要你计算一下,电子锁上至少要有多少种特征,每个人的磁卡上至少有几个特征。如果特征的编号以小写字符表示,将每个人的磁卡的特征编号打印出来。要求输出的电子锁的总特征数量最少。 为了使问题简单,M与N的上下限为 3≤M≤7,1≤N≤4 M与N由键盘输入,工作人

文档评论(0)

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档