网站大量收购独家精品文档,联系QQ:2885784924

信息学校内选拔赛试题.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
信息学校内选拔赛试题

信息学竞赛选拔赛试题 (满分100分,时间120分钟) 一、选择题(15分): 1.十进制数2003等值于二进制数( )。 A. 0100000111 B. C. 110000111 D. 11111010011 E. 1111010011 2.已知数组中A中,每个元素A(I,J)在存贮时要占3个字节,设I从1变化到8,J从1变化到10,分配内存时是从地址SA开始连续按行存贮分配的。 试问:A(5,8)的起始地址为(   ) A.SA+141  B. SA+180  C. SA+222  D. SA+225 3.将 5 个数的序列排序,不论原先的顺序如何,最少都可以通过( )次比较,完成从小到大的排序。 A. 6 B. 7 C. 8 D. 9 E. 10 4.在 Pascal 语言中,表达式 (21 xor 2)的值是( ) A. 441 B. 42 C.23 D.24 E.25 5.在顺序表(2,5,7,10,14,15,18,23,35,41,52)中,用二分法查找12,所需的关键码比较的次数为( )  A.2  B.3  C.4  D.5 二、数学问题及算法分析: 1.(5分)一棵二叉树的前序遍历和中序遍历分别如下,画出该二叉树。 前序遍历:ABCDEFGHIJ 中序遍历:CBEDAGHFJI 2. (5分)在印度,有这么一个古老的传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针。印度教的主神梵天在创造世界的时候,在其中一根针上从下到上地穿好了由大到小的64片金片,这就是所谓的汉诺塔。不论白天黑夜,总有一个僧侣在按照下面的法则移动这些金片:一次只移动一片,不管在哪根针上,小片必须在大片上面。僧侣们预言,当所有的金片都从梵天穿好的那根针上移到另外一根针上时,世界就将在一声霹雳中消灭,而梵塔、庙宇和众生也都将同归于尽。不管这个传说的可信度有多大,我们先来做题! 给定A、B、C三根足够长的细柱,在A柱上放有2n个中间有孔的圆盘,共有n个不同的尺寸,每个尺寸都有两个相同的圆盘,注意这两个圆盘是不加区分的(下图为n=3的情形)。现要将这些圆盘移到C柱上,在移动过程中可放在B柱上暂存。要求: (1)每次只能移动一个圆盘;(2)A、B、C三根细柱上的圆盘都要保持上小下大的顺序; 任务:设An为2n个圆盘完成上述任务所需的最少移动次数,对于输入的N,写出An的解析式。 3. (10分)打水问题 有N个人在一个水龙头前排队接水,每个人接水的时间Ti是互不相等的。找到一种这N个人排队接水的顺序,使他们平均等待的时间达到最小。 请写出这道题的解题思路。 4. (10分)合并果子 在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过n-1次合并之后,就只剩下一堆了。多多在合并果子时总共消耗的体力等于每次合并所耗体力之和。 因为还要花大力气把这些果子搬回家,所以多多在合并果子时要尽可能地节省体力。假定每个果子重量都为1,并且已知果子的种类数和每种果子的数目,你的任务是设计出合并的次序方案,使多多耗费的体力最少,并输出这个最小的体力耗费值。 例如有3种果子,数目依次为1,2,9。可以先将 1、2堆合并,新堆数目为3,耗费体力为3。接着,将新堆与原先的第三堆合并,又得到新的堆,数目为12,耗费体力为 12。所以多多总共耗费体力=3+12=15。可以证明15为最小的体力耗费值。 对给定的果子的堆数和每堆果子的果子数目,请写出该题的解题思路。. 三、程序阅读(30分): 1. program ex2; var i,j,n:longint; b:array [0..31] of 0..1; begin n=1999; i:=0; while n0 do begin b[i]:=n mod 2; i:=i+1; n:=n div 2 end; for j:=i-1 downto 0 do write(b[j]); end. 输出: 2. program primenumber; var flag :boolean; n,sum,i,j,p :integer; rec :array[1..25] of integer; begin n:=100; sum:=0; for i:=1 to n do begi

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档