南海中小学信息学复赛模拟试题.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE 南海中小学信息学复赛模拟试题 要求: 在3小时之内上机完成; 试题保存在D:\TEXT\文件夹内,并编译成EXE文件,第一至四题分别以T1、T2、T3、T4为原文件名和编译文件名(第一题20分,第二题20分,第三题30分,第四题30分,共100分)。 一、输出如下图形 1 4 9 16 64 49 36 25 81 100 121 144 256 225 196 169 二、工农兵问题 ??? 小王,小张和小李中一位是工人,一位是农民,一位是战士。现在知道小李比战士年龄大,小王和农民不同岁,农民比小张年龄小。请你想一想,谁是工人,谁是农民,谁是战士 三、传说中有一个残暴的国王,喜欢杀戮百姓。有一次,他抓到30个百姓并要一一杀掉。在这30个百姓中间有一个聪明人,他站出来对国王说:“请国王大发慈悲,赦免二人不死。”国王问:“赦免哪二人不死?”那个聪明人回答说:“我们30个人围成一圈,从1开始报数,凡数到5的人就拉出去杀掉。剩下的人继续从1开始报数,循环反复,直到剩下两个人为止,这两个人被赦免。” 国王一听很有意思,采纳了聪明人的建议,赦免了两个人,而那个聪明人就是其中之一。请你设计一个程序,由计算机判断聪明人要站在什么位置,才能躲过这一场屠杀。 【问题分析】 首先,设百姓的人数为M人,设数到N的人被杀掉。 用数组A(M)存放M个人是否还在圈中的信息。其中, A(I)=1 表示第I个人还在圈中。 A(I)=0 表示第I个人已被杀掉。 开始时,数组A中所有的元素都是1,表示每个人都站在圈中。 用K=K+A(I)来实现报数功能,因为只有还在圈中的人才能使K的值增加。 用变量D来记录出圈的人数,当D=M时,表示所有的人都出圈了。最后出圈的两个人就是被赦免的人。 四、语言问题。 在一次国际会议上,甲、乙、丙、丁四人在一个会议小组中讨论,交谈时发生了语言障 碍,在中、英、法、日4种语言中,每人只会两种。可惜选不出一种大家都会的语言。于是: (1) 只有一种语言有三个人会; (2) 甲会日语,丁不会日语,但能互相交谈; (3) 乙不会日语,但甲和丙交谈时,要请他当翻译; (4) 乙、丙、丁三人想互相交谈,却找不到三人都会的语言; (5) 没人既能用日语,又能用法语交谈。 问:甲、乙、丙、丁各会什么语言? 【问题分析】 如果用习惯方法处理,4个人每人会两种语言要用8重循环才能穷举。这样处理,不但 速度会让人难于接受,体现各种条件的逻辑表达式也会及其复杂,所以要改变数学模型。 我们用一个表格来表示4个人对语言的掌握情况,表格中用1表示某人会某种语言,用 0表示不会。   1 2 3 4 中 英 法 日 1 甲 1 0 0 1 2 乙 1 0 1 0 3 丙 0 1 1 0 4 丁 1 1 0 0 我们把甲、乙、丙、丁四人编号为1,2,3,4。中、英、法、日四种语言也编号为1, 2,3,4。这样,我们就可以用一个二维数组A(4,4)存放问题的解答了。A(I,J)=0表示第I 个人不会第J种语言。A(I,J)=1表示第I个人会第J种语言。 以适当的方法可以把A数组各种可能的赋值穷举出来,然后进行逻辑判断,排除不合 题意的组合,找出解答。 每一个人都只会两种语言,从这四种语言中选出两种的组合有(1,2),(1,3),(1,4), (2,3),(2,4),(3,4)六种。 由条件(5)可以知道(3,4)这种组合是不合题 意的,所以每个人掌握的两种语言只 能是余下的五种组合中的一种。 建立数组X(5,2)存放这5种组合。 X(I,1)存放第I种组合中某人会的第一种语言 X(I,2)存放第I种组合中某人会的第二种语言 这样,列举某人掌握语言的各种情况时(也就是给二维数组A的某一行赋值时),用从 1到5的一个循环即可。例如,列举丁掌握语言的情况用下面的程序段: FOR D=1 TO 5 A(4, X(D,1))=1: A(4, X(D,2))=1 …… NEXT D 我们再对题目进行一些分析,看看能否把穷举的范围缩小一些。 由条件(2)知道甲会日语,所以甲只能取(1,4),(2,4)两种组合。 由条件(3)知道乙不会日语,所以乙只能取(1,3),(1,4)两种组合。 由条件(2)知道丁不会日语,所以丁只能取(1,2),(1,3),(2,3)三种组合。 下边的程序中,除了数组之外,

文档评论(0)

考试资料大全 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档