绍兴市少儿信息学复赛样卷

文档属性

名称 绍兴市少儿信息学复赛样卷
格式 zip
文件大小 33.0KB
资源类型 教案
版本资源 通用版
科目 信息技术(信息科技)
更新时间 2010-11-07 16:44:00

文档简介

绍兴县实验小学信息学竞赛初赛试卷(一)
姓名__________ 成绩____________
一.选择一个正确的答案代码(A/B/C/D/E),填入括号内。
1、和十进制数23的值相等的二进制数是(D)。
A.10110 B.11011 C.11011 D.10111 E.10011
2、Linux是一种(C)。
A. 绘图软件 B. 程序设计语言 C. 操作系统 D. 网络浏览器
3、完全二叉树的结点个数为4 * N + 3,则它的叶结点个数为(B)。
A. 2 * N B. 2 * N - 1 C. 2 * N + 1 D. 2 * N - 2
E. 2 * N + 2
4、下列网络中常用的名字缩写对应的中文解释错误的是(D)
A、WWW(World Wide Web):万维网
B、URL(Uinform Resource Locator):统一资源定位器
C、HTTP(Hypertext Transfer Protocol):超文本传输协议
D、FTP (File Transfer Protocol):快速传输协议
E、TCP (Transfer Control Protocol):传输控制协议
5、下列说法中错误的是(A)
A、CPU的基本功能就是执行指令
B、CPU访问内存的速度快于访问高速缓存的速度
C、CPU的主频是指CPU在1秒内完成的指令周期数
D、在一台计算机内部,一个内存地址编码对应唯一的一个内存单元
E、数据中线的宽度决定了一次传递数据量的大小
6、下列浏览器中,由微软公司开发的浏览器是(A)
A.Internet Explore B.Netcape C.Opera D.Firefox E.Mozilla
7、Intel的首颗64 位处理器是(E)。
A. 8088 B. 8086 C. 80386 D. 80486 E. Pentium
8、一位艺术史学家有20000 幅1024 * 768 的真彩色图像,如果将这些图像以位图形式保存在CD 光盘上(一张CD 光盘的容量按600 M计算),大约需要(C)张CD光盘。
A. 1 B. 10 C. 100 D. 1000 E. 10000
9、断电后计算机信息依然存在的部件为(C )
A、寄存器 B、ram存储器 C、rom存储 D、运算器
10、系统软件中最重要的是(A)
A、 操作系统 B、语言处理程序 C、工具软件 D、数据库管理系统
11、设A=true,B=false,C=false,D=true,以下逻辑运算表达式值为真的是(B)。
A.(A∧B)∨(C∧D) B.((A∧B)∨C)∧D C.A∧((B∨C)∧D)
D.(A∧(B∨C))∨D E.(A∨B)∧(C∧D)
12、下列哪个不是数据库软件的名称(D)
A、MYSQL
B、SQL Sever
C、Oracle
D、金山影霸
E、Foxpro
13、在Pascal语言中,表达式 (21 xor 2)的值是(C)
A. 441 B. 42 C.23 D.24
14、(2010)16 + (32)8的结果是(A)。
A. (8234)10 B. (202B)16
C. (20056)8 D. (100000000110)2
15、设栈S的初始状态为空,元素a, b, c, d, e 依次入栈,以下出栈序列不可能出现的有(C)。
A. a, b, c, e, d B. b, c, a, e, d
C. a, e, c, b, d D. d, c, e, b, a
二、问题求解。
1、平面上有三条平行线,每条直线上分别有2,3,4个点,且不同直线上的三个点都不在同一条直线上。问用这些点为顶点,能组成多少个不同四边形?
2、取火柴游戏的规则如下:一堆火柴有N根,A、B两人轮流取出。每人每次可以取1 根或2 根,最先没有火柴可取的人为败方,另一方为胜方。如果先取者有必胜策略则记为1,先取者没有必胜策略记为0。当N 分别为100,200,300,400,500 时,先取者有无必胜策略的标记顺序为(回答应为一个由0 和/或1 组成的字符串)。
D( 1 ) = 1
D( 4 ) = 1
D( 7 ) = 1
.........
三、阅读程序,并写出运行结果。
1. var
a, b, c, p, q : integer;
r : array[0..2] of integer;
begin
read(a, b, c);
p := a div b div c;
q := b - c + a + p;
r[0] := a * p div q * q;
r[1] := r[0] * (r[0] - 300);
if (3 * q - p mod 3 <= r[0]) and (r[2] = r[2]) then
r[1] := r[r[0] div p mod 2]
else r[1] := q mod p;
writeln(r[0] - r[1]);
end.
输入:100 7 3
输出:-7452
2.Program ex302;
const
m:array[0..4] of integer=(2,3,5,7,13);
var
i,j:integer;
t: longint;
begin
for i:=0 to 4 do
begin
t:=1;
for j:=1 to m[i]-1 do
t:=t*2;
t:=(t*2-1)*t;
write (t,' ');
end;
writeln;
end.
输出:6 28 496 8128 33550336
3、 var
str : string;
len,i,j : integer;
nchr : array[0..25] of integer;
mmin : char;
begin
mmin := 'z';
readln(str); len := length(str);
i := len;
while i>= 2 do begin
if str[i - 1] < str[i] then break; dec(i);
end;
if i = 1 then begin
writeln('No result!'); exit;
end;
for j := 1 to i - 2 do write (str[j] < mmin) then
fillchar(nchr,sizeof(nchr),0);
for j := i to len do begin
if (str[j] > str[i - 1]) and (str[j] < mmin) then
mmin := str[j];
inc(nchr[ord(str[j]) - ord('a')]);
end;
dec(nchr[ord(mmin) - ord('a')]);
inc(nchr[ord(str[i - 1]) - ord('a')]);
write(mmin);
for i := 0 to 25 do
for j := 1 to nchr[i] do
write(chr(i + ord('a')));
writeln;
end.
输入:zzyzcccbbbaaa
输出:_____
4、program program4 ;
var c:array[1..2] of string[200];
s:array[1..10] of integer;
m,n,i:integer ;
procedure numara;
var cod:boolean;
i,j,nr:integer;
begin
for j:=1 to n do begin
nr:=0;cod:=true;
for i:=1 to m do
if c[i,j]='1' then begin
if not cod then begin
cod:=true;inc(s[nr]);nr:=0;
end
end
else begin
if cod then begin
nr:=1;cod:=false ;
end
else inc(nr);
end;
if not cod then inc(s[nr]);
end;
end;
begin
readln(m,n);
for i:=1 to m do readln(c[i]);
numara;
for i:=1 to m do
if s[i] <>0 then write(i,' ',s[i],' ');
read(i);
end.
输出:_____________________。
四、完善程序:
1.木材加工
题目描述:
木材厂有一些原木,现在想把这些木头切割成一些长度相同的小段木头(木头有可能有剩余),需要得到的小段的数目是给定的。当然,我们希望得到的小段越长越好,你的任务是计算能够得到的小段木头的最大长度。木头长度的单位是cm。原木的长度都是正整数,我们要求切割得到的小段木头的长度也是正整数。
输入:
第一行是两个正整数N和K(1 ≤ N ≤ 10000,1 ≤ K ≤ 10000),N是原木的数目,K是需要得到的小段的数目。接下来的N行,每行有一个1到10000之间的正整数,表示一根原木的长度。
输出:
输出能够切割得到的小段的最大长度。如果连1cm长的小段都切不出来,输出”0”。
输入样例:
3 7
232
124
456
输出样例:
114
程序:
var
n, k : integer;
len : array [1..10000] of integer;
i, left, right, mid : integer;
function isok(t : integer) : boolean;
var
num, i : integer;
begin
num := 0;
for i := 1 to n do begin
if num >= k then break;
num := ① ;
end;
if ② then isok := true
else isok := false;
end;
begin
readln(n, k);
right := 0;
for i := 1 to n do begin
readln(len[i]);
if right < len[i] then right := len[i];
end;
inc(right);
③ ;
while ④ < right do begin
mid := (left + right) div 2;
if ⑤ then right := mid
else left := mid;
end;
writeln(left);
end.
2、由键盘输入一个奇数 P (P<100,000,000),其个位数字不是5,求一个整数 S,使 P×S = 1111...1 ( 在给定的条件下,解 S 必存在)。要求在屏幕上依次输出以下结果:
(1)S 的全部数字。除最后一行外,每行输出 50 位数字。 (2) 乘积的数字位数。
例1:输入p=13,由于13*8547=111111,则应输出(1)8547,(2)6
例2:输入p=147,则输出结果应为(1)755857898715041572184429327286470143613
(2)42,即等式的右端有42个1。
程序:
program ex402;
var
p,a,b,c,t,n:longint;
begin
while (true) do
begin
writeln ('Input p, the last digit is 1 or 3 or 7 or 9:');
readln(p);
if (p mod 2<>0)and(p mod 5<>0) then
⑥ ; {如果输入的数符合要求,结束循环 }
end;
a:=0; n:=0;
while (abegin
a:=a*10+1; inc(n);
end;
t:=0;
repeat
b:=a div p;
write(b:1);
inc(t);
if ( ⑦ ) then writeln;
c:= ⑧ ; a:= ⑨ inc(n);
until c<=0;
dec(n);
writeln; writeln('n=', ⑩ );
end.绍兴市少儿信息学复赛样卷
(满分400分,150分钟完成)
命题人:周学东
第一题 拆分整数(源程序名:sx0801.pas)
问题描述
输入一个正整数N,如果N是偶数,则拆分N的各个数字相加求和;如果N是奇数,则拆分N的各个数字相乘求积。
输入文件
输入文件sx0801.in:只 有1行,1个正整数N.
输出文件
输出文件sx0801.out 也是一行,1个正整数,表示运算的结果。
样例
输入:126 
输出:9
第二题 明明的随机数(源程序名:sx0802.pas)
问题描述
明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。
输入文件
输入文件sx0802.in 有2行,第1行为1个正整数,表示所生成的随机数的个数:
N
第2行有N个用空格隔开的正整数,为所产生的随机数。
输出文件
输出文件sx0802.out 也是2行,第1行为1个正整数M,表示不相同的随机数的个数。第2行为M个用空格隔开的正整数,为从小到大排好序的不相同的随机数。
样例
输入:
10
20 40 32 67 40 20 89 300 400 15
输出:
8
15 20 32 40 67 89 300 400
第三题 求位数及"0"的个数(源程序名:sx0803.pas)
问题描述
输入一个正整数N(N≤50),已知数列A1,A2,A3,……,An分别为2004,20042004,200420042004,……,20042004……2004。问:A1+A2+A3+……+An的精确值S中有多少位数?S当中有多少个"0"?
输入文件
输入文件sx0803.in:只有一行,一个正整数N。
输出文件
输出文件sx0803.out:只有一行,二个正整数,中间用空格隔开,表示和s的位数、s中0的个数。
样例
输入:2          
输出:8 4
第四题 扫雷(源程序名:sx0804.pas)
问题描述
有一种简单的扫雷游戏:在n行2列的方格棋盘上,左列某些方格内埋有地雷,而右列每个方格中都有一个数字(0~3),第I格的数字表示:左列第I-1、I、I+1格(即:上、中、下三)格中埋雷的总数。如下所示:左图是初始状态,右图是扫雷完成状态(插小旗的方格内有雷)。
你的任务是:根据右列的数字分析出左列格子中的地雷(0表示无雷,1表示有雷),并且统计出左列格子中地雷的总数。
输入文件
输入文件sx0804.in:第一行,一个整数N(2≤N≤40),第二行有N个数字(以空格相隔),表示右列格子中的数字。
输出文件
输出文件sx0804.out:第一行是N个0、1数字(没有空格相隔),表示左列每格中有无地雷。第二行一个整数,表示地雷总数。
样例:
输入:
7          
   1 2 3 2 2 2 2       
输出:0111011
5
同课章节目录