- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)