敏敏国际论坛's Archiver

张敏 发表于 2005-5-3 00:41

第十届全国青少年信息学奥林匹克联赛初赛试题

一、选择一个正确答案代码(A/B/C/D/E)填入每题的挂号内<br>1.美籍匈牙利数学家 冯•诺依曼 对计算机科学发展所做出的贡献是:( )<br> &nbsp;A、提出理想计算机数学模型,成为计算机科学理论基础<br> &nbsp;B、是世界上第一个编写计算机程序的人<br> &nbsp;C、提出存储程序工作原理,并设计出第一台具有存储程序功能的计算机EDVAC<br> &nbsp;D、采用集成电路作为计算机的主要功能部件<br> &nbsp;E、指出计算机性能将以每两年翻一番的速度向前发展<br>2.下列哪个不是CPU(中央处理单元)( &nbsp;)<br> &nbsp;A、Intel Itanium<br> &nbsp;B、DDR SDRAM<br> &nbsp;C、AMD Athlon64<br> &nbsp;D、AMD Opteron<br> &nbsp;E、IBM Power 5<br>3、下列网络中常用的名字缩写对应的中文解释错误的是( )<br> &nbsp;A、WWW(World Wide Web):万维网<br> &nbsp;B、URL(Uinform Resource Locator):统一资源定位器<br> &nbsp;C、HTTP(Hypertext Transfer Protocol):超文本传输协议<br> &nbsp;D、FTP &nbsp;(File Transfer Protocol):快速传输协议<br> &nbsp;E、TCP (Transfer Control Protocol):传输控制协议<br>4、下面哪个部件对于个人桌面电脑的正常运行不是必需的( )<br> &nbsp;A、cpu<br> &nbsp;B、显卡(图形卡)<br> &nbsp;C、光驱<br> &nbsp;D、主板<br> &nbsp;E、内存<br>5、下列哪个软件属于操作系统软件( )<br> &nbsp;A、Microsoft Word<br> &nbsp;B、金山词霸<br> &nbsp;C、Foxmail<br> &nbsp;D、WinRAR<br> &nbsp;E、Red Hat Linux<br>6、下列哪个不是计算机存储设备( )、<br> &nbsp;A、文件管理器<br> &nbsp;B、内存<br> &nbsp;C、高速缓存<br> &nbsp;D、硬盘<br> &nbsp;E、U盘<br>7、下列说法中错误的是( )<br> &nbsp;A、CPU的基本功能就是执行指令<br> &nbsp;B、CPU访问内存的速度快于访问高速缓存的速度<br> &nbsp;C、CPU的主频是指CPU在1秒内完成的指令周期数<br> &nbsp;D、在一台计算机内部,一个内存地址编码对应唯一的一个内存单元<br> &nbsp;E、数据中线的宽度决定了一次传递数据量的大小<br>8、彩色显示器所显示的五彩斑斓的色彩,是由红色,蓝色和( )色混合而成的<br> &nbsp;A、紫色 &nbsp; &nbsp;B、白色 &nbsp; C、黑色 &nbsp; D、绿色 &nbsp; E、橙色<br>9、用静电吸附磨粉后转移到纸张上,是那种输出设备的工作方式( )<br> &nbsp;A、针式打印机<br> &nbsp;B、喷墨打印机<br> &nbsp;C、激光打印机<br> &nbsp;D、笔式绘图仪<br> &nbsp;E、喷墨绘图仪<br>10、一台计算机如果要利用电话线上网,就必须配置能够对数字信号和模拟信号进行互相转换的设备,这种设备是( )<br> &nbsp;A、调制解调器<br> &nbsp;B、路由器<br> &nbsp;C、网卡<br> &nbsp;D、网关<br> &nbsp;E、网桥<br>11、下列哪个不是数据库软件的名称( )<br> &nbsp;A、MYSQL<br> &nbsp;B、SQL Sever<br> &nbsp;C、Oracle<br> &nbsp;D、金山影霸<br>E、Foxpro<br>12、下列哪个程序设计语言不支持面向对象的程序设计方法( )<br> &nbsp;A、C++<br> &nbsp;B、Object Pascal<br> &nbsp;C、C<br> &nbsp;D、Smalltalk<br> &nbsp;E、Java<br>13、由3个a,1个b和2个c构成的所有字符串中,包含子串“abc”的共有( )个<br> &nbsp;A、20 &nbsp; B、8 &nbsp; C、16 &nbsp; D、12 &nbsp; E、24<br>14、某车站呈狭长形,宽度只能容下一台车,并且只有一个出入口。已知某时该车站站台为空,从这一时刻开始出入记录为:“进出进进出进进进出出进出”。假设车辆入站的顺序为1,2,3……,则车辆出站的顺序为( )<br> &nbsp;A、1,2,3,4,5<br> &nbsp;B、1,2,4,5,7<br> &nbsp;C、1,3,5,4,6<br> &nbsp;D、1,3,5,6,7<br> &nbsp;E、1,3,6,5,7<br>15、二叉树T,已知其前序遍历序列为1 2 4 3 5 7 6,中序遍历序列为4 2 1 5 7 3 6,其后序遍历序列为<br> &nbsp;A、4 2 5 7 6 3 1<br> &nbsp;B、4 2 7 5 6 3 1<br> &nbsp;C、4 2 7 5 3 6 1<br> &nbsp;D、4 7 2 3 5 6 1<br> &nbsp;E、4 5 2 6 3 7 1<br>16、满二叉树的叶节点为N,则它的节点总数为( )<br> &nbsp;A、N<br> &nbsp;B、2N<br> &nbsp;C、2N-1<br> &nbsp;D、2N+1<br> &nbsp;E、2^N-1<br>17、十进制2004等于八进制数( )<br> &nbsp;A、3077<br> &nbsp;B、3724<br> &nbsp;C、2766<br> &nbsp;D、4002<br> &nbsp;E、3755<br>18、(2004)10 +(32)16的结果是( )<br> &nbsp;A、(2036)10<br> &nbsp;B、(2054)16<br> &nbsp;C、(4006)10<br> &nbsp;D、(100000000110)2<br> &nbsp;E、(2036)16<br>19、在下图,从端点( )出发存在一条路径可以遍历图中的每条边一次,而且仅遍历一次<br><br><br><br><br><br><br><br><br><br><br><br>20、某大学计算机专业的必修课及期先修课程如下表所示:<br>课程<br>代号 C0 C1 C2 C3 C4 C5 C6 C7<br>课程<br>名称 高等<br>数学 程序<br>设计<br>语言 离散<br>数学 数据<br>结构 编译<br>技术 操作<br>系统 普通<br>物理 计算<br>机原<br>理<br>先修<br>课程 C0,C1 C1,C2 C3 C3,C7 C0 C6<br>请判断下列课程安排哪个是不合理的( )<br> &nbsp;A、C0,C6,C7,C1,C2,C3,C4,C5<br> &nbsp;B、C0,C1,C2,C3,C4,C6,C7,C5<br> &nbsp;C、C0,C1,C6,C7,C2,C3,C4,C5<br> &nbsp;D、C0,C1,C6,C7,C5,C2,C3,C4<br> &nbsp;E、C0,C1,C2,C3,C6,C7,C5,C4<br><br>二、问题求解(5分一题,共10分)<br>1、一个家具公司生产桌子和椅子。现有113个单位的木材。每张桌子要使用20个单位的木材,售价是30元;每张椅子要用16个单位的木材,售价是20元。使用已有的木材生产桌椅(不一定要用光木材)做多可以买_____元钱。<br>2、75名儿童去游乐场玩。他们可以骑旋转木马,坐滑行轨道,乘宇宙飞船。已知其中20人这三种东西都玩过,55人至少玩过其中两种。若每玩一样的费用为5元,游乐场总共收入700,可知有_____名儿童没有玩过其中任何一种。<br><br>三、阅读程序(8’一题,共32’)<br>1、------------------------------------------- <br>program program1;<br>Var<br> a,b,c,d,e:integer;<br> begin<br> &nbsp; a:=79 ; b:=34; c:=57;d:=0 ; e:=-1;<br> &nbsp; if (ac) then d:=d+e<br> &nbsp; else if (d+10 &nbsp; &nbsp;else d:=e-a;<br> &nbsp; writeln(d);<br> end.<br>输出:_____________________。<br>2、-------------------------------------------<br>program program2;<br>var<br> i,j:integer;<br> str1,str2:string;<br>begin<br> str1:=\'pig-is-stupid\';<br> str2:=\'clever\';<br> str1[1]:=\'d\'; str1[2]:=\'o\';<br> i:=8;<br> for j:=1 to 6 do begin<br> &nbsp; &nbsp; str1[i]:=str2[j];inc(i);<br> end;<br> writeln(str1);<br>end.<br>输出:_____________________。<br>3、-------------------------------------------<br>program program3;<br>var<br> u:array[0..3] of integer;<br> a,b,c,x,y,z:integer;<br>begin<br> read(u[0],u[1],u[2],u[3]);<br> a:=u[0]+u[1]+u[2]+u[3]-5;<br> b:=u[0]*(u[1]-u[2] div u[3]+8);<br> c:=u[0]*u[1] div u[2] * u[3];<br> x:=(a+b+2)*3-u[(c+3) mod 4];<br> y:=(c*100-13) div a div (u[b mod 3]*5);<br> if ((x+y) mod 2=0) then z:=(a+b+c+x+y) div 2;<br> z:=(a+b+c-x-y)*2;<br> writeln(x+y-z);<br> read(a);<br>end.<br>输出:_____________________。<br>4、-------------------------------------------<br>program program4 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;;<br>var c:array[1..2] of string[200];<br> &nbsp; s:array[1..10] of integer;<br> &nbsp; m,n,i:integer &nbsp; ;<br>procedure numara;<br>var cod:boolean;<br> &nbsp;i,j,nr:integer;<br>begin<br> for j:=1 to n do begin<br> &nbsp; &nbsp; &nbsp; nr:=0;cod:=true;<br> &nbsp; &nbsp; &nbsp; for i:=1 to m do<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if c[i,j]=\'1\' then begin<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if not cod then begin<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; cod:=true;inc(s[nr]);nr:=0;<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; end<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;end<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;else begin<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if &nbsp;cod then begin<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;nr:=1;cod:=false ;<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; end<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; else inc(nr);<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;end;<br> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if not cod then inc(s[nr]);<br> &nbsp; &nbsp; &nbsp; end;<br> end;<br> begin<br> &nbsp; &nbsp; readln(m,n);<br> &nbsp; &nbsp; for i:=1 to m do readln(c[i]);<br> &nbsp; &nbsp; numara;<br> &nbsp; &nbsp; for i:=1 to m do<br> &nbsp; &nbsp; &nbsp; &nbsp; if s[i] <>0 then write(i,\' \',s[i],\' \');<br> read(i);<br> end.<br>输出:_____________________。<br><br>四、完善程序(共28分)<br>1、三角形内切圆的面积<br>题目描述:给出三角形三边的边长,求此三角形内切圆的面积。<br><br>输入:三个正实数a、b、c(满足三角形三边关系),表示三角形三边边长。<br>输出:三角形内切圆的面积,结果四舍五入到小数点后2位<br>输入样例: 3 4 5<br>输出样例: 3.14<br>程序:①②③④⑤<br>PROGRAM PROGRAM1;<br>VAR<br> &nbsp; &nbsp;A,B,C,R,S,T:REAL;<br>BEGIN<br> &nbsp; &nbsp; READ(A,B,C);<br> &nbsp; &nbsp; &nbsp;S :=( &nbsp;① &nbsp;)/2;<br> &nbsp; &nbsp; &nbsp;T:= &nbsp;② &nbsp;(S*(S-A)*(S-B)*(S-C));<br> &nbsp; &nbsp; &nbsp;R:=T/S;<br> &nbsp; &nbsp; &nbsp;WRITELN(3.1415927 * R * &nbsp;③ &nbsp; :0: &nbsp;④ &nbsp;;<br>END.<br><br>2..Joseph<br>题目描述:<br>原始的Joseph问题的描述如下:有n个人围坐在一个圆桌周围,把这n个人依次编号为1,……,n。从编号是1 的人开始报数,数到m个人出列,然后从出列的下一个人重新开始报数,数到第m个人又出列,……,如此反复直到所有的人全部出列为止。比如当n=6,m=5的时候,出列的顺序依次是5,4,6,2,3,1。<br>现在的问题是:假设有k个好人和k个坏人。好人的编号是1到k,坏人的编号是k+1到2k。我们希望求出m的最小值,使得最先出列的k个人都是坏人。<br>输入:<br>仅有的一个数字是k (0输出:<br>使得最先出列的k个人都是坏人的m的最小值。<br>输入样例:<br>4<br>输出样例:<br>30<br>程序:<br>program progaram1;<br>var<br> i,k,m,start:longint;<br> find:boolean;<br>function check(remain:integer):boolean;<br>var result:integer;<br>begin<br> result:=____(1)____ mod remain;<br> if ____(2)____ then begin<br>start:=result; check:=true;<br> end<br> else check:=false;<br>end;<br>begin<br> find:=false;<br> read(k);<br> m:=k;<br> while ____(3)____ do begin<br>find:=true; start;=0;<br>for i:=0 to k-1 do <br> if (not check(____(4)____)) then begin<br> &nbsp; &nbsp;find:=false; break;<br> end;<br>inc(m);<br> end;<br> writeln(____(5)____);<br>end.<br>参考答案<br>一、1.C &nbsp; 2.B &nbsp; &nbsp;3.D &nbsp; &nbsp;4.C &nbsp; &nbsp; &nbsp;5.E &nbsp; &nbsp; 6.A &nbsp; &nbsp;7.B &nbsp; &nbsp; &nbsp;8.D &nbsp;9.C &nbsp;10.A &nbsp; <br><br>11.D &nbsp;12.C &nbsp; 13.D &nbsp; 14E &nbsp;15.B &nbsp;16.C &nbsp;17.B &nbsp;18.D &nbsp;19.E &nbsp;20.D <br><br>二、1.160元 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;2.10人 <br><br>三、 1.-80       2.Dog-is-clever <br><br> &nbsp; &nbsp; 3 . 263 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;4 . &nbsp;1 &nbsp;12588 &nbsp;2 &nbsp; 12337 &nbsp;3 &nbsp; 12339 <br><br>四、 &nbsp;1 . a+b+c &nbsp; &nbsp;SQRT &nbsp;R &nbsp; 2 <br><br> &nbsp; 2 . &nbsp;start+m-1 &nbsp; &nbsp;result>=k &nbsp; &nbsp;not(find) &nbsp; 2*k-I &nbsp; m-1<br>

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.