第11届全国少年信息学奥林匹克联赛初赛试题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第11届全国少年信息学奥林匹克联赛初赛试题相关的知识,希望对你有一定的参考价值。
NOIP2005第十一届普及组初赛试题一.选择一个正确答案代码(A/B/C/D/E),填入每题的括号内(每题1.5分, 共30分)
1. 在字符串“ababacbabcbdecced”中出现次数最多的字母出现了( )次。
A. 6 B. 5 C. 4 D. 3 E. 2
2. 设全集I = a, b, c, d, e, f, g, h,集合A = a, b, c, d, e, f,B = c, d, e,C = a, d,那么集合C B A ~ Ç Ç 为( )。
A. c, e B. d, e C. e D. c, d, e E. d, f
3. 和十进制数23的值相等的二进制数是( d )。
A. 10110 B. 11011 C. 11011 D. 10111 E. 10011
4. 完全二叉树的结点个数为11,则它的叶结点个数为( )。
A. 4 B.3 C.5 D. 2 E. 6
5. 平面上有五个点A(5, 3), B(3, 5), C(2, 1), D(3, 3), E(5, 1)。以这五点作为完全图G 的顶点,每两点之间的直线距离是图G 中对应边的权值。以下哪条边不是图G 的最小生成树中的边( )。
A. AD B. BD C. CD D. DE E. EA
6. Intel的首颗16 位处理器是( )。
A. 8088 B. 80386 C. 80486 D. 8086 E. Pentium
7. 处理器A 每秒处理的指令数是处理器B 的2 倍。某一特定程序P 分别编译为处理器A和处理器B 的指令,编译结果处理器A 的指令数是处理器B 的4 倍。已知程序P 在处理器A 上执行需要1 个小时,那么在输入相同的情况下,程序P 在处理器B 上执行需要( )小时。
A. 4 B. 2 C. 1 D. 1 / 2 E. 1 / 4
8. 以下哪个不是计算机的输出设备( d)。
A. 音箱B. 显示器C. 打印机D. 扫描仪E. 绘图仪
9. 下列活动中不属于信息学奥赛的系列活动的是( e )。
A. NOIP B. NOI C. IOI D. 冬令营E. 程序员等级考试
10. 以下断电之后仍能保存数据的是( a )。
A. 硬盘B. 寄存器C. 显存D. 内存E. 高速缓存
11. 以下哪个软件不是即时通信软件( d )。
A. 网易泡泡B. MSN Messenger C. Google Talk D. 3DS Max E. QQ
12. 下列关于高级语言的说法错误的是( )。
A. Fortran是历史上的第一个面向科学计算的高级语言
B. Pascal和C都是编译执行的高级语言
C. C++是历史上的第一个支持面向对象的语言
D. 编译器将高级语言程序转变为目标代码
E. 高级语言程序比汇编语言程序更容易从一种计算机移植到另一种计算机上
13. 下列设备不具有计算功能的是( e )。
A. 笔记本电脑B. 掌上电脑C. 智能手机
D. 电子计算器E. 液晶显示器
14. 常见的邮件传输服务器使用( e )协议接收邮件。
A. HTTP B. SMTP C. TCP D. FTP E. POP3
15. 下列浏览器中,由微软公司开发的浏览器是( a )。
A. Internet Explore B. Netscape C. Opera D. Firefox E. Mozilla
16. 一位艺术史学家有20000 幅真彩色图像,每幅图像约占3M空间。如果将这些图像以位图形式保存在CD 光盘上(一张CD 光盘的容量按600M计算),大约需要( c )张CD光盘。
A. 1 B. 10 C. 100 D. 1000 E. 10000
17. 设A = true,B = false,C = false,D = true,以下逻辑运算表达式值为真的是( a )。
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 ∧ )
18. (3725)8 + (B)16的运算结果是( )。
A. (3736)8 B. (2016)10 C. (1111110000)2 D. (3006)10 E. (7B0)16
19. 二叉树T的宽度优先遍历序列为A B C D E F G H I,已知A是C的父结点,D 是G 的父结点,F 是I 的父结点,树中所有结点的最大深度为3(根结点深度设为0),可知F的父结点是( )。
A. 无法确定B. B C. C D. D E. E
20. 设栈S的初始状态为空,元素a, b, c, d, e, f, g依次入栈,以下出栈序列不可能出现的是( )。
A. a, b, c, e, d, f, g B. b, c, a, f, e, g, d C. a, e, d, c, b, f, g
D. d, c, f, e, b, a, g E. g, e, f, d, c, b, a
二.问题求解(请在空格处填上答案,每空5分,共10分)
1. 将数组32, 74, 25, 53, 28, 43, 86, 47中的元素按从小到大的顺序排列,每次可以交换任意两个元素,最少需要交换次。
2. 有3 个课外小组:物理组,化学组和生物组。今有张、王、李、赵、陈5 名同学,已知张、王为物理组成员,张、李、赵为化学组成员,李、赵、陈为生物组成员。如果要在3 个小组中分别选出3 位组长,一位同学最多只能担任一个小组的组长,共有种选择方案。
三.阅读程序(共4题,每题8分,共计32 分)
==================PASCAL语言==================
1. Var
a, b: Integer;
Begin
Read(a);
b := (a * (a * a)) + 1;
If b Mod 3 = 0 Then b := b Div 3;
If b Mod 5 = 0 Then b := b Div 5;
If b Mod 7 = 0 Then b := b Div 7;
If b Mod 9 = 0 Then b := b Div 9;
If b Mod 11 = 0 Then b := b Div 11;
If b Mod 13 = 0 Then b := b Div 13;
If b Mod 15 = 0 Then b := b Div 15;
WriteLn((100 * a - b) Div 2);
End.
输入: 10
输出:
2.Var
Str: String; i: Integer;
Begin
Str := 'Today-is-terrible!';
For i := 7 To 11 Do
If Str = ' - ' Then Str[i - 1] := 'x';
For i:=13 DownTo 1 Do
If Str = 't' Then Str[i + 1] := 'e';
WriteLn(Str);
End.
输出:
3. 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
输出:
4.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 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]);
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 Do Write(Chr(i + Ord('a')));
WriteLn;
End.
输入:zzyzcccbbbaaa
输出:
四.完善程序(前4空,每空2分,后5空,每空4分,共28分)
==================PASCAL语言==================
1.判断质数
题目描述:
给出一个正整数,判断这个数是否是质数。
输入:
一个正整数n(1 ≤ n ≤ 10000)。
输出:
如果n是质数,输出”YES”;否则,输出”NO”。
输入样例:
10
输出样例:
NO
程序:
Var
①: Integer;
Begin
Read(n);
If n = 2 Then WriteLn( ② )
Else If ( ③ ) Or (n Mod 2 = 0) Then WriteLn('no')
Else Begin
i := 3;
While i * i <= n Do Begin
If ④ Then Begin
WriteLn('no'); exit;
End;
i := i + 2;
End;
WriteLn('yes');
End;
End.
2.木材加工
题目描述:
木材厂有一些原木,现在想把这些木头切割成一些长度相同的小段木头(木头有可能有剩余),需要得到的小段的数目是给定的。当然,我们希望得到的小段越长越好,你的任务是计算能够得到的小段木头的最大长度。木头长度的单位是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);
If right < len Then right := len;
End;
Inc(right); ③;
While ④ < right Do Begin
mid :=(left + right) Div 2;
If ⑤ Then right := mid
Else left := mid;
End;
WriteLn(left);
End.
NOIP2005第十一届普及组初赛试题参考答案
一. 选择一个正确答案代码(A/B/C/D/E),填入每题的括号内 (每题1.5分,多选无分, 共30 分)
题号 1 2 3 4 5 6 7 8 9 10
选择 B A D E D D D D E A
题号 11 12 13 14 15 16 17 18 19 20
选择 D C E E A C D B C E
二.问题解答 (每题5分,共10分)
1. 答: 5
2. 答: 11
三. 阅读程序,并写出程序的正确运行结果:(每题8分,共32分)
(1) 程序的运行结果是: 499
(2) 程序的运行结果是: Today-ix-terrible!
(3) 程序的运行结果是: -7452
(4) 程序的运行结果是: zzzaaabbbcccy
四.根据题意, 将程序补充完整 (前4空,每空2分,后5空,每空4分,共28分)
1.
① n, i (或者 i, n)
② 'YES'
③ n = 1 (或者 n – 1 = 0)
④ n mod i = 0
2.
① num + len[i] div t
② num >= k
③ left := 0
④ left + 1
⑤ not isok(mid) (或者 isok(mid) = false) 参考技术A 第十一届全国青少年信息学奥林匹克联赛初赛试题
( 普及组 p 语言 二小时完成 )
●● 全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效 ●●
一.选择一个正确的答案代码(A/B/C/D/E),填入括号内(每题1.5分,共30分)
1.在字符串“ababacbabcbdecced”中出现次数最多的字母出现了( )次。
A.6 B.5 C.4 D.3 E.2
2.设全集I=a,b,c,d,e,f,g,h,集合A=a,b,c,d,e,f,B=c,d,e,C=a,d,那么集合A∩B∩~C为( )。
A.c,e B.d,e C.e D.c,d,e E.d,f
3.和十进制数23的值相等的二进制数是( )。
A.10110 B.11011 C.11011 D.10111 E.10011
4.完全二叉树的交点个数为11,则它的叶结点个数为( )。
A.4 B.3 C.5 D.2 E.6
5.平面上有五个点A(5,3),B(3,5),C(2,1),D(3,3),E(5,1)。以这五点作为完全图G的顶点,每两点之间的直线距离是图G中对应边的权值。以下哪条边不是图G的最小生成树中的边( )。
A.AD B.BD C.CD D.DE E.EA
6.Intel的首颗16位处理器是( )。
A.8088 B.80386 C.80486 D.8086 E.Pentium
7.处理器A每秒处理的指令时处理器B的2倍。某一特定程序P分别编译为处理器A和处理器B的指令,编译结果处理器A的指令数是处理器B的4倍。已知程序P在处理器A上执行需要1个小时,那么在输入相同的情况下,程序P在处理器B上执行需要( )小时。
A.4 B.2 C.1 D.1/2 E.1/4
8.以下哪个不是计算机的输出设备( )。
A.音箱 B.显示器 C.打印机 D.扫描仪 E.绘图仪
9.下列活动中不属于信息学奥赛的系列活动的是( )。
A.NOIP B.NOI C.IOI D.冬令营 E.程序员等级考试
10.以下断电之后仍能保存数据的是( )。
A.硬盘 B.寄存器 C.显存 D.内存 E.高速缓存
11.以下哪个软件不是及时通信软件( )。
A.网易泡泡 B.MSN Messenger C.Google Talk D.3DS Max E.QQ
12.下列关于高级语言的说法错误的是( )。
A.Fortan是历史上的第一个面向科学计算的高级语言
B.Pascal和C都是编译执行的高级语言
C.C++是历史上的第一个支持面向对象的语言
D.编译器将高级语言程序转变为目标代码
E.高级语言程序比汇编语言程序更容易从一种计算机移植到另一种计算机上
13.下列设备不具有计算功能的是( )。
A.笔记本电脑 B.掌上电脑 C.智能手机 D.电子计算机 E.液晶显示器
14.常见的邮件传输服务器使用( )协议接收邮件。
A.HTTP B.SMTP C.TCP D.FTP E.POP3
15.下列浏览器中,由微软公司开发的浏览器是( )
A.Internet Explore B.Netcape C.Opera D.Firefox E.Mozilla
16.一位艺术史学家有2000幅真彩色图像,每幅图像约占3M空间。如果将这些图像以位图形式保存在CD光盘上(一张CD光盘的容量按600M计算),大约需要( )张CD光盘。
A.1 B.10 C.100 D.1000 E.10000
17.设A=true,B=false,C=false,D=true,以下逻辑运算表达式值为真的是( )。
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)
18.(3725)8+(B)16的运算结果是( )。
A.(3736)8 B.(2016)10 C.(1111110000)2 D.(3006)10 E.(7B0)16
19.二叉树T的宽度优先遍历序列为A B C D E F G H I,已知A是C的父交点,D是G的父交点,F是I的父交点,数中所有结点的最大深度为3,(根结点深度设为0),可知F的父结点是( )。
A.无法确定 B.B C.C D.D E.E
20.设栈S的初始状态为空,元素a,b,c,d,e,f,g依次入栈,以下出栈序列不可能出现的是()。
A.a,b,c,e,d,f,g B.b,c,a,f,e,g,d C.a,e,d,c,b,f,g
D.d,c,f,e,b,a,g E.g,e,f,d,c,b,a
二.问题求解(请在空格处填上答案,每空5分,共10分)
1.将数组32,74,25,53,28,43,86,47中的元素按从小到大的顺序排列,每次可以交换任意两个元素,最少需要交换___次。
2.有3个课外小组:物理组,化学组和生物组。今有张、王、李、赵、陈、5名同学,已知张、王为物理组成员,张、李、赵为化学组成员,李、赵、陈为生物组成员。如果要在3个小组分别选出3位组长,一位同学最多只能担任一个小组的组长,共有___种选择方案。
三.阅读程序(共4题,每题8分,共计32分)
1. var
a,b : integer;
begin
read(a);
b:=(a*(a*a))+1;
if b mod 3 = 0 then b := b div 3;
if b mod 5 = 0 then b := b div 5;
if b mod 7 = 0 then b := b div 7;
if b mod 9 = 0 then b := b div 9;
if b mod 11 = 0 then b := b div 11;
if b mod 13 = 0 then b := b div 13;
if b mod 15 = 0 then b := b div 15;
writeln((100*a-b) div 2);
end.
输入:10
输出:_____
2. var
str : string;
i : integer;
begin
str := 'Today-is-terrible!';
for i := 7 to 11 do
if str[i] = '-' then str[i-1] := 'x';
for i := 13 downto 1 do
if str[i] = 't' then str[i+1] := 'e';
writeln(str);
end.
输出:_____
3. 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] := r[r[0] div p mod 2];
writeln(r[0] - r[1]);
end.
输入:100 7 3
输出:_____
4. 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空,每空2分,后5空,每空4分,共28分)
1.判断质数
题目描述:
给出一个正整数,判断这个数是否是质数。
输入:
一个正整数n(1 ≤ n ≤ 10000)。
输出:
如果n是质数,输出"YES";否则,输出"NO"。
输入样例:
10
输出样例:
NO
程序:
var
① : integer;
begin
read(n);
if n = 2 then writeln( ② )
else if ( ③ ) or (n mod 2 = 0) then writeln('NO')
else begin
i := 3;
while i * i <= n do begin
if ④ then begin
writeln('NO'); exit;
end;
i := i + 2;
end;
writeln('YES');
end;
end.
2.木材加工
题目描述:
木材厂有一些原木,现在想把这些木头切割成一些长度相同的小段木头(木头有可能有剩余),需要得到的小段的数目是给定的。当然,我们希望得到的小段越长越好,你的任务是计算能够得到的小段木头的最大长度。木头长度的单位是cm。原木的长度都是正整数,我们要求得到的小段木头的长度也是正整数。
输入:
第一行是两个正整数N和K(1 ≤ N ≤ 100000,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.
第十一届全国青少年信息学奥林匹克联赛初赛试题 普及组参考答案
一. 选择一个正确答案代码(A/B/C/D/E),填入每题的括号内 (每题1.5分,多选无分, 共30 分)
题号 1 2 3 4 5 6 7 8 9 10
选择 B A D E D D B D E A
题号 11 12 13 14 15 16 17 18 19 20
选择 D C E E A C D B C E
二.问题解答 (每题5分,共10分)
1. 答: 5
2. 答: 11
三. 阅读程序,并写出程序的正确运行结果:(每题8分,共32分)
(1) 程序的运行结果是: 499
(2) 程序的运行结果是: Today-ix-terrible!
(3) 程序的运行结果是: -7452
(4) 程序的运行结果是: zzzaaabbbcccy
四.根据题意, 将程序补充完整 (前4空,每空2分,后5空,每空4分,共28分)
C 语言
=================
1.
① n, i (或者 i, n)
② 'YES'
③ n == 1 (或者 n – 1 == 0)
④ n % i == 0 (或者 !n % i)
2.
① num + len[i] / t
② num >= k
③ left = 0
④ left + 1
⑤ !isok(mid) (或者 isok(mid) == 0) 参考技术B 一、选择一个正确答案代码(A/B/C/D/E)填入每题的挂号内
1.美籍匈牙利数学家 冯·诺依曼 对计算机科学发展所做出的贡献是:( )
A、提出理想计算机数学模型,成为计算机科学理论基础
B、是世界上第一个编写计算机程序的人
C、提出存储程序工作原理,并设计出第一台具有存储程序功能的计算机EDVAC
D、采用集成电路作为计算机的主要功能部件
E、指出计算机性能将以每两年翻一番的速度向前发展
2.下列哪个不是CPU(中央处理单元)( )
A、Intel Itanium
B、DDR SDRAM
C、AMD Athlon64
D、AMD Opteron
E、IBM Power 5
3、下列网络中常用的名字缩写对应的中文解释错误的是( )
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):传输控制协议
4、下面哪个部件对于个人桌面电脑的正常运行不是必需的( )
A、CPU
B、显卡(图形卡)
C、光驱
D、主板
E、内存
5、下列哪个软件属于操作系统软件( )
A、Microsoft Word
B、金山词霸
C、Foxmail
D、WinRAR
E、Red Hat Linux
6、下列哪个不是计算机存储设备( )
A、文件管理器
B、内存
C、高速缓存
D、硬盘
E、U盘
7、下列说法中错误的是( )
A、CPU的基本功能就是执行指令
B、CPU访问内存的速度快于访问高速缓存的速度
C、CPU的主频是指CPU在1秒内完成的指令周期数
D、在一台计算机内部,一个内存地址编码对应唯一的一个内存单元
E、数据中线的宽度决定了一次传递数据量的大小
8、彩色显示器所显示的五彩斑斓的色彩,是由红色,蓝色和( )色混合而成的
A、紫色 B、白色 C、黑色 D、绿色 E、橙色
9、用静电吸附磨粉后转移到纸张上,是那种输出设备的工作方式( )
A、针式打印机
B、喷墨打印机
C、激光打印机
D、笔式绘图仪
E、喷墨绘图仪
10、一台计算机如果要利用电话线上网,就必须配置能够对数字信号和模拟信号进行互相转换的设备,这种设备是( )
A、调制解调器
B、路由器
C、网卡
D、网关
E、网桥
11、下列哪个不是数据库软件的名称( )
A、mysql
B、SQL Sever
C、Oracle
D、金山影霸
E、Foxpro
12、下列哪个程序设计语言不支持面向对象的程序设计方法( )
A、C++
B、Object Pascal
C、C
D、Smalltalk
E、Java
13、由3个a,1个b和2个c构成的所有字符串中,包含子串“abc”的共有( )个
A、20 B、8 C、16 D、12 E、24
14、某车站呈狭长形,宽度只能容下一台车,并且只有一个出入口。已知某时该车站站台为空,从这一时刻开始出入记录为:“进出进进出进进进出出进出”。假设车辆入站的顺序为1,2,3……,则车辆出站的顺序为( )
A、1,2,3,4,5
B、1,2,4,5,7
C、1,3,5,4,6
D、1,3,5,6,7
E、1,3,6,5,7
15、二叉树T,已知其前序遍历序列为1 2 4 3 5 7 6,中序遍历序列为4 2 1 5 7 3 6,其后序遍历序列为
A、4 2 5 7 6 3 1
B、4 2 7 5 6 3 1
C、4 2 7 5 3 6 1
D、4 7 2 3 5 6 1
E、4 5 2 6 3 7 1
16、满二叉树的叶节点为N,则它的节点总数为( )
A、N
B、2N
C、2N-1
D、2N+1
E、2^N-1
17、十进制2004等于八进制数( )
A、3077
B、3724
C、2766
D、4002
E、3755
18、(2004)10 +(32)16的结果是( )
A、(2036)10
B、(2054)16
C、(4006)10
D、(100000000110)2
E、(2036)16
19、在下图,从端点( )出发存在一条路径可以遍历图中的每条边一次,而且仅遍历一次
20、某大学计算机专业的必修课及期先修课程如下表所示:
请判断下列课程安排哪个是不合理的( )
A、C0,C6,C7,C1,C2,C3,C4,C5
B、C0,C1,C2,C3,C4,C6,C7,C5
C、C0,C1,C6,C7,C2,C3,C4,C5
D、C0,C1,C6,C7,C5,C2,C3,C4
E、C0,C1,C2,C3,C6,C7,C5,C4
二、问题求解(5分一题,共10分)
1、一个家具公司生产桌子和椅子。现有113个单位的木材。每张桌子要使用20个单位的木材,售价是30元;每张椅子要用16个单位的木材,售价是20元。使用已有的木材生产桌椅(不一定要用光木材)最多可以卖_____元钱。
2、75名儿童去游乐场玩。他们可以骑旋转木马,坐滑行轨道,乘宇宙飞船。已知其中20人这三种东西都玩过,55人至少玩过其中两种。若每玩一样的费用为5元,游乐场总共收入700,可知有_____名儿童没有玩过其中任何一种。
三、阅读程序(8分一题,共32分)
1、-------------------------------------------
program program1;
Var
a,b,c,d,e:integer;
begin
a:=79 ; b:=34; c:=57;d:=0 ; e:=-1;
if (a<c) or (b>c) then d:=d+e
else if (d+10<e) then d:=e+10
else d:=e-a;
writeln(d);
end.
输出:_____________________。
2、-------------------------------------------
program program2;
var
I,j:integer;
str1,str2:string;
begin
str1:='pig-is-stupid';
str2:='clever';
str1[1]:='d'; str1[2]:='o';
I:=8;
for j:=1 to 6 do begin str1[I]:=str2[j]; inc(I); end;
writeln(str1);
end.
输出:_____________________。
3、-------------------------------------------
program program3;
var
u:array[0..3] of integer;
a,b,c,x,y,z:integer;
begin
read(u[0],u[1],u[2],u[3]);
a:=u[0]+u[1]+u[2]+u[3]-5;
b:=u[0]*(u[1]-u[2] div u[3]+8);
c:=u[0]*u[1] div u[2] * u[3];
x:=(a+b+2)*3-u[(c+3) mod 4];
y:=(c*100-13) div a div (u[b mod 3]*5);
if ((x+y) mod 2=0) then z:=(a+b+c+x+y) div 2;
z:=(a+b+c-x-y)*2;
writeln(x+y-z);
read(a);
end.
输出:_____________________。
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 begin
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.
输出:_____________________。
四、完善程序(共28分)
1、三角形内切圆的面积
题目描述:给出三角形三边的边长,求此三角形内切圆的面积。
输入:三个正实数a、b、c(满足三角形三边关系),表示三角形三边边长。
输出:三角形内切圆的面积,结果四舍五入到小数点后2位
输入样例: 3 4 5
输出样例: 3.14
程序:①②③④⑤
PROGRAM PROGRAM1;
VAR
A,B,C,R,S,T:REAL;
BEGIN
READ(A,B,C);
S :=( ① )/2;
T:= ② (S*(S-A)*(S-B)*(S-C));
R:=T/S;
WRITELN(3.1415927 * R * ③ :0: ④ ;
END.
2..Joseph
题目描述:
原始的Joseph问题的描述如下:有n个人围坐在一个圆桌周围,把这n个人依次编号为1,……,n。从编号是1 的人开始报数,数到m个人出列,然后从出列的下一个人重新开始报数,数到第m个人又出列,……,如此反复直到所有的人全部出列为止。比如当n=6,m=5的时候,出列的顺序依次是5,4,6,2,3,1。
现在的问题是:假设有k个好人和k个坏人。好人的编号是1到k,坏人的编号是k+1到2k。我们希望求出m的最小值,使得最先出列的k个人都是坏人。
输入:
仅有的一个数字是k (0<K<14)。
输出:
使得最先出列的k个人都是坏人的m的最小值。
输入样例:
4
输出样例:
30
程序:
program progaram1;
var
I,k,m,start:longint;
find:boolean;
function check(remain:integer):boolean;
var result:integer;
begin
result:=____(1)____ mod remain;
if ____(2)____ then begin
start:=result; check:=true;
end
else check:=false;
end;
begin
find:=false;
read(k);
m:=k;
while ____(3)____ do begin
find:=true; start;=0;
for I:=0 to k-1 do
if (not check(____(4)____)) then begin find:=false; break; end;
inc(m);
end;
writeln(____(5)____);
end.
求第十二届全国青少年奥林匹克信息学联赛(普及组PASCAL语言)复赛试题
求第十二届全国青少年奥林匹克信息学联赛(普及组PASCAL语言)复赛试题
根据回答满意程度追加悬赏分!
联赛复赛试题
(NOIP2006普及组)
竞赛时间:2006年11月18日 下午1:30-4:30
试题名称
random
Happy
count
sequence
目录
random
Happy
count
sequence
输入文件名
random.in
happy.in
count.in
sequence.in
输出文件名
random.out
happy.out
count.out
sequence.out
试题类型
非交互式程序题
非交互式程序题
非交互式程序题
非交互式程序题
附加文件
无
无
无
无
时限
1秒
1秒
1秒
1秒
关于竞赛中不同语言使用限制的说明
一.关于使用Pascal语言与编译结果的说明
1.对于Pascal语言的程序,当使用IDE和fpc编译结果不一致时,以fpc的编译结果为准。
2.允许使用数学库(uses math子句),以及ansistring。但不允许使用编译开关(最后测试时pascal的范围检查开关默认关闭:$R-,Q-,S-),也不支持与优化相关的选项。
二.关于C++语言中模板使用的限制说明
1.允许使用的部分:
标准容器中的布尔集合,迭代器,串,流。
相关的头文件:
2.禁止使用的部分:
序列:vector,list,deque
序列适配器:stack, queue, priority_queue
关联容器:map, multimap, set, multiset
拟容器:valarray
散列容器:hash_map, hash_set, hash_multimap, hash_multiset
所有的标准库算法
相关头文件:
1.明明的随机数
(random.pas/c/cpp)
【问题描述】
明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。
【输入文件】
输入文件random.in 有2行,第1行为1个正整数,表示所生成的随机数的个数:
N
第2行有N个用空格隔开的正整数,为所产生的随机数。
【输出文件】
输出文件random.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
2.开心的金明
(happy.pas/c/cpp)
【问题描述】
金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N元钱就行”。今天一早金明就开始做预算,但是他想买的东西太多了,肯定会超过妈妈限定的N元。于是,他把每件物品规定了一个重要度,分为5等:用整数1~5表示,第5等最重要。他还从因特网上查到了每件物品的价格(都是整数元)。他希望在不超过N元(可以等于N元)的前提下,使每件物品的价格与重要度的乘积的总和最大。
设第j件物品的价格为v[j],重要度为w[j],共选中了k件物品,编号依次为j1,j2,……,jk,则所求的总和为:
v[j1]*w[j1]+v[j2]*w[j2]+ …+v[jk]*w[jk]。(其中*为乘号)
请你帮助金明设计一个满足要求的购物单。
【输入文件】
输入文件happy.in 的第1行,为两个正整数,用一个空格隔开:
N m
(其中N(<30000)表示总钱数,m(<25)为希望购买物品的个数。)
从第2行到第m+1行,第j行给出了编号为j-1的物品的基本数据,每行有2个非负整数
v p
(其中v表示该物品的价格(v<=10000),p表示该物品的重要度(1~5))
【输出文件】
输出文件happy.out只有一个正整数,为不超过总钱数的物品的价格与重要度乘积的总和的最大值(<100000000)。
【输入样例】
1000 5
800 2
400 5
300 5
400 3
200 2
【输出样例】
3900
3.Jam的计数法
(count.pas/c/cpp)
【问题描述】
Jam是个喜欢标新立异的科学怪人。他不使用阿拉伯数字计数,而是使用小写英文字母计数,他觉得这样做,会使世界更加丰富多彩。在他的计数法中,每个数字的位数都是相同的(使用相同个数的字母),英文字母按原先的顺序,排在前面的字母小于排在它后面的字母。我们把这样的“数字”称为Jam数字。在Jam数字中,每个字母互不相同,而且从左到右是严格递增的。每次,Jam还指定使用字母的范围,例如,从2到10,表示只能使用b,c,d,e,f,g,h,i,j这些字母。如果再规定位数为5,那么,紧接在Jam数字“bdfij”之后的数字应该是“bdghi”。(如果我们用U、V依次表示Jam数字“bdfij”与“bdghi”,则U,且不存在Jam数字P,使U)。你的任务是:对于从文件读入的一个Jam数字,按顺序输出紧接在后面的5个Jam数字,如果后面没有那么多Jam数字,那么有几个就输出几个。
【输入文件】
输入文件counting.in 有2行,第1行为3个正整数,用一个空格隔开:
s t w
(其中s为所使用的最小的字母的序号,t为所使用的最大的字母的序号。w为数字的位数,这3个数满足:1≤s≤26, 2≤w≤t-s )
第2行为具有w个小写字母的字符串,为一个符合要求的Jam数字。
所给的数据都是正确的,不必验证。
【输出文件】
输出文件counting.out 最多为5行,为紧接在输入的Jam数字后面的5个Jam数字,如果后面没有那么多Jam数字,那么有几个就输出几个。每行只输出一个Jam数字,是由w个小写字母组成的字符串,不要有多余的空格。
【输入样例】
2 10 5
bdfij
【输出样例】
bdghi
bdghj
bdgij
bdhij
befgh
4.数列
(sequence.pas/c/cpp)
【问题描述】
给定一个正整数k(3≤k≤15),把所有k的方幂及所有有限个互不相等的k的方幂之和构成一个递增的序列,例如,当k=3时,这个序列是:
1,3,4,9,10,12,13,…
(该序列实际上就是:30,31,30+31,32,30+32,31+32,30+31+32,…)
请你求出这个序列的第N项的值(用10进制数表示)。
例如,对于k=3,N=100,正确答案应该是981。
【输入文件】
输入文件sequence.in 只有1行,为2个正整数,用一个空格隔开:
k N
(k、N的含义与上述的问题描述一致,且3≤k≤15,10≤N≤1000)。
【输出文件】
输出文件sequence.out 为计算结果,是一个正整数(在所有的测试数据中,结果均不超过2.1*109)。(整数前不要有空格和其他符号)。
【输入样例】
3 100
【输出样例】
981 参考技术A 我参加了比赛~只对了1道半!!!!狂晕.....
1.明明的随机数
(random.pas/c/cpp)
【问题描述】
明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。
【输入文件】
输入文件random.in 有2行,第1行为1个正整数,表示所生成的随机数的个数:
N
第2行有N个用空格隔开的正整数,为所产生的随机数。
【输出文件】
输出文件random.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
2.开心的金明
(happy.pas/c/cpp)
【问题描述】
金明今天很开心,家里购置的新房就要领钥匙了,新房里有一间他自己专用的很宽敞的房间。更让他高兴的是,妈妈昨天对他说:“你的房间需要购买哪些物品,怎么布置,你说了算,只要不超过N元钱就行”。今天一早金明就开始做预算,但是他想买的东西太多了,肯定会超过妈妈限定的N元。于是,他把每件物品规定了一个重要度,分为5等:用整数1~5表示,第5等最重要。他还从因特网上查到了每件物品的价格(都是整数元)。他希望在不超过N元(可以等于N元)的前提下,使每件物品的价格与重要度的乘积的总和最大。
设第j件物品的价格为v[j],重要度为w[j],共选中了k件物品,编号依次为j1,j2,……,jk,则所求的总和为:
v[j1]*w[j1]+v[j2]*w[j2]+ …+v[jk]*w[jk]。(其中*为乘号)
请你帮助金明设计一个满足要求的购物单。
【输入文件】
输入文件happy.in 的第1行,为两个正整数,用一个空格隔开:
N m
(其中N(<30000)表示总钱数,m(<25)为希望购买物品的个数。)
从第2行到第m+1行,第j行给出了编号为j-1的物品的基本数据,每行有2个非负整数
v p
(其中v表示该物品的价格(v<=10000),p表示该物品的重要度(1~5))
【输出文件】
输出文件happy.out只有一个正整数,为不超过总钱数的物品的价格与重要度乘积的总和的最大值(<100000000)。
【输入样例】
1000 5
800 2
400 5
300 5
400 3
200 2
【输出样例】
3900
3.Jam的计数法
(count.pas/c/cpp)
【问题描述】
Jam是个喜欢标新立异的科学怪人。他不使用阿拉伯数字计数,而是使用小写英文字母计数,他觉得这样做,会使世界更加丰富多彩。在他的计数法中,每个数字的位数都是相同的(使用相同个数的字母),英文字母按原先的顺序,排在前面的字母小于排在它后面的字母。我们把这样的“数字”称为Jam数字。在Jam数字中,每个字母互不相同,而且从左到右是严格递增的。每次,Jam还指定使用字母的范围,例如,从2到10,表示只能使用b,c,d,e,f,g,h,i,j这些字母。如果再规定位数为5,那么,紧接在Jam数字“bdfij”之后的数字应该是“bdghi”。(如果我们用U、V依次表示Jam数字“bdfij”与“bdghi”,则U,且不存在Jam数字P,使U)。你的任务是:对于从文件读入的一个Jam数字,按顺序输出紧接在后面的5个Jam数字,如果后面没有那么多Jam数字,那么有几个就输出几个。
【输入文件】
输入文件counting.in 有2行,第1行为3个正整数,用一个空格隔开:
s t w
(其中s为所使用的最小的字母的序号,t为所使用的最大的字母的序号。w为数字的位数,这3个数满足:1≤s≤26, 2≤w≤t-s )
第2行为具有w个小写字母的字符串,为一个符合要求的Jam数字。
所给的数据都是正确的,不必验证。
【输出文件】
输出文件counting.out 最多为5行,为紧接在输入的Jam数字后面的5个Jam数字,如果后面没有那么多Jam数字,那么有几个就输出几个。每行只输出一个Jam数字,是由w个小写字母组成的字符串,不要有多余的空格。
【输入样例】
2 10 5
bdfij
【输出样例】
bdghi
bdghj
bdgij
bdhij
befgh
4.数列
(sequence.pas/c/cpp)
【问题描述】
给定一个正整数k(3≤k≤15),把所有k的方幂及所有有限个互不相等的k的方幂之和构成一个递增的序列,例如,当k=3时,这个序列是:
1,3,4,9,10,12,13,…
(该序列实际上就是:30,31,30+31,32,30+32,31+32,30+31+32,…)
请你求出这个序列的第N项的值(用10进制数表示)。
例如,对于k=3,N=100,正确答案应该是981。
【输入文件】
输入文件sequence.in 只有1行,为2个正整数,用一个空格隔开:
k N
(k、N的含义与上述的问题描述一致,且3≤k≤15,10≤N≤1000)。
【输出文件】
输出文件sequence.out 为计算结果,是一个正整数(在所有的测试数据中,结果均不超过2.1*109)。(整数前不要有空格和其他符号)。
【输入样例】
3 100
【输出样例】
981本回答被提问者采纳
以上是关于第11届全国少年信息学奥林匹克联赛初赛试题的主要内容,如果未能解决你的问题,请参考以下文章
第二十四届全国青少年信息学奥林匹克联赛初赛 普及组C++语言试题
求(NOIP2005、2006)第十一届、十二届全国青少年信息学奥林匹克联赛初赛普及组答案.
2012第十八届全国青少年信息学奥林匹克联赛(NOIP2012)初赛提高组答案