第九届全国青少年信息学奥林匹克联赛初赛试题普及组.docx
《第九届全国青少年信息学奥林匹克联赛初赛试题普及组.docx》由会员分享,可在线阅读,更多相关《第九届全国青少年信息学奥林匹克联赛初赛试题普及组.docx(11页珍藏版)》请在冰点文库上搜索。
![第九届全国青少年信息学奥林匹克联赛初赛试题普及组.docx](https://file1.bingdoc.com/fileroot1/2023-6/17/df9c8121-9060-4778-9f6d-83bf3be46d13/df9c8121-9060-4778-9f6d-83bf3be46d131.gif)
第九届全国青少年信息学奥林匹克联赛初赛试题普及组
第九届(2003年)全国青少年信息学奥林匹克联赛初赛试题
(普及组Pascal语言二小时完成
●●全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效●●
一.选择一个正确答案代码(A/B/C/D/E,填入每题的括号内(每题1.5分,共30分
1.下列计算机设备中,既是输入设备,又是输出设备的是(。
A键盘B触摸屏C扫描仪D投影仪E数字化仪
2.下列分辨率的显示器所显示出的图像,最清晰的是(。
A800*600B1024*768C640*480D1280*1024E800*1000
3.下列说法中,正确的是(。
A在内存中,可执行程序用二进制码表示,源程序用八进制表示。
B程序和数据在内存中都是用二进制码表示的。
C内存中数据的存取是以二进制位为单位的。
D中央处理器CPU执行的每条指令的长度都不同。
E一般来说,在计算机内部,中文信息用十六进制表示,英文信息用八进制表示。
4.下列说法中,错误的是(。
A程序是指令的序列,它有三种结构:
顺序、分支和循环。
B地址总线决定了中央处理器CPU所能访问的最大内存空间的大小。
C中央处理器CPU内部有寄存器组,用来存储数据。
D不同厂家生产的CPU所能处理的指令集不一定相同。
E数据传输过程中不可能会出错。
5.CPU访问内存的速度比访问下列哪个存储设备要慢(。
A寄存器B硬盘C软盘D磁带E光盘
6.下列电子邮件地址,正确的是(。
Awang@Bcai@jcc.pc.tool@rf.edu.jp
C162.105.111.22D
Ehttp:
//
7.数字图像文件可以用下列哪个软件来编辑(。
A画笔(PaintbrushB记事簿(NotepadCRecorder
DWinRAREMidiSoft
8.下列哪个软件不是操作系统软件的名字(。
AWindowsXPBDOSCLinuxDOS/2EArch/Info
9.下列哪个不是个人计算机的硬件组成部分(。
A主板B操作系统C电源D硬盘E软驱
10.图灵(AlanTuring是()。
A美国人B英国人C德国人D匈牙利人E法国人
11.第一个给计算机写程序的人是()。
AAlanMathisonTuring
BAdaLovelace
CJohnvonNeumann
DJohnMcCarthy
EEdsgerWybeDijkstra
12.十进制数2003等值于二进制数()。
A11111010011B10000011C110000111
D010000011lE1111010011
13.运算式(200810-(37238的结果是()。
A(-171510B(510C(-516D(1112E(32638
14.下列关于程序语言的叙述,不正确的是()。
A编写机器代码不比编写汇编代码容易。
B高级语言需要编译成目标代码或通过解释器解释后才能被CPU执行。
C同样一段高级语言程序通过不同的编译器可能产生不同的可执行程序。
D汇编代码可被CPU直接运行。
E不同的高级语言语法略有不同。
15.假设A=true,B=false,C=true,D=true,逻辑运算表达式A∧B∨C∧D的值是()。
AtrueBfalseC0D1ENULL
16.一个高度为h的二叉树最小元素数目是()。
A2h+lBhC2h-1D2hE2h-l
17.已知队列(13,2,11,34,41,77,5,7,18,26,15,第一个进入队列的元素是13,则第五个出队列的元素是(。
A5B41C77D13E18
18.下列关于文件的叙述,不正确的是()。
A一个可执行程序其实也是一个文件。
B文件可大可小,大的文件一张软盘装不下。
C一个文件夹下面可以有两个同名的文件,只要它们的大小不同就行了。
D文件的创建日期和最新修改日期可以在资源管理器中看到。
E某些文件的内容可以用记事本(Notepad看到。
19.活动硬盘的容量比固定硬盘的容量()。
A大B小C相等D不一定大E大致相等
20.IP地址是一个()位二进制码。
A8B16C32D64E12
二.问题求解(每题5分,共10分
1.现在市场上有一款汽车A很热销,售价是2万美元。
汽车A每加仑汽油可以行驶20英里。
普通汽车每年大约行驶12000英里。
油价是每加仑1美元。
不久我公司就要推出新款节油汽车B,汽车B每加仑汽油可以行驶30英里。
现在我们要为B制定价格(它的价格略高于A:
我们预计如果用户能够在两年内通过节省油钱把B高出A的价钱弥补回来,则他们就会购买B,否则就不会购买B。
那么B的最高价格应为 万美元。
2.无向图G有16条边,有3个4度顶点、4个3度顶点,其余顶点的度均小于3,则G至少有 个顶点。
三.阅读程序(每题8分,共32分
1.programPrograml;
var
a,x,y,okl,ok2:
integer;
begin
a:
=100:
x:
=l0;
y:
=20;
okl:
=5:
ok2:
=0;
if((x>yor((y<>20and(okl=0and(ok2<>0then
a:
=1
elseif((okl<>0and(ok2=、0then
a:
=-1
else
a:
=0;
writeln(a;
end.
输出:
2.programprogram2;
var
a,t:
string;
i,j:
integer;
begin
a:
=`morning`;
j:
=l;
fori:
=2to7do
if(a[j]
j:
=i;
j:
=j-1;
fori:
=1tojdo
write(a[i];
end.
输出:
3.programprogram3;
var
a,b,c,d,sum:
longint;
begin
read(a,b,c,d;
a:
=amod23;
b:
=bmod28;
c:
=cmod33;
sum:
=a*5544+b*14421+c*1288-d;
sum:
=sum+21252;
sum:
=summod21252;
if(sum=0then
sum:
=21252;
writeln(sum;
end.
输入:
28310223320
输出:
4.programprogram4;
var
a:
array[0..5]ofinteger;
sum,n,max,i,j,k:
integer;
cover:
array[0..22000]ofboolean;
begin
read(a[5],a[4],a[3],a[2],a[1],a[0];
if((a[5]=0and(a[3]=0and(a[1]=0then
begin
a[5]:
=a[4];a[4]:
=a[2];a[3]:
=a[0];a[2]:
=0a[0]:
=0;
end;
fori:
=0to5do
if(a[i]>10thena[i]:
=10+(a[i]mod2;
sum:
=0;
fori:
=0to5dosum:
=sum+a[i]*(6-i;
if((summod2<>0thenbegin
writeln(`Can``tbedivided.`;
exit;
end;
sum:
=sumdiv2;max:
=0;cover[0]:
=True;
fori:
=1tosum*2docover[i]:
=False;
fori:
=0to5do
begin
j:
=0;
while(j
begin
fork:
=maxdownto0do
beginif(cover[k]thencover[k+6-i]:
=True;end;
max:
=max+6-i:
j:
=j+1;
end;
end;
if(cover[sum]thenwriteln(‘Canbedivided.’
elsewriteln(‘can``tbedivided.’;
end.
输入:
479205648输入:
1000710120551输入:
20005l100
输出:
输出:
输出:
四、完善程序(第l空2分,其余每空3分,共28分
1.一元二次方程
题目描述:
方程ax^2+bx+c=0,要求给出它的实数解。
输入:
三个实数:
a、b和c是方程的三个系数(a≠0。
输出:
如果无实数解,则输出“Nosolution”;
如果有两个相等的实数解,则输出其中一个,四舍五入到小数点后面3位;
如果有两个不等的实数解,则解与解之间用逗号隔开,同样要四舍五入到小数点后3位。
输入样例:
l21
输出样例:
-1.000
程序:
programprogram41;
var
a,b,c,m:
real;
begin
read(a,b,c;
m:
=b*b-4*a*c;
if(①then
begin
write(②:
0:
3;
write(‘,’;
write((-1*b-sqrt(m/(2*a:
0:
③;
end
elseif(④then
write(⑤
elsebegin
write(‘Nosolution’;
end
end.
2.翻硬币
题目描述:
一摞硬币共有m枚,每一枚都是正面朝上。
取下最上面的一枚硬币,将它翻面后放回原处。
然后取下最上面的2枚硬币,将他们一起翻面后再放回原处。
再取3枚,取4枚……直至m枚。
然后再从这摞硬币最上面的一枚开始,重复刚才的做法。
这样一直做下去,直到这摞硬币中的每一枚又都是正面朝上为止。
例如,m为1时,翻两次即可。
m为2时,翻3次即可;m为3时,翻9次即可;m为4时,翻11次即可;m为5时,翻24次即可;…;m为30时,翻899次即可;…。
输入:
仅有的一个数字是这摞硬币的枚数m,0。
输出:
为了使这摞硬币中的每一枚又都是正面朝上所必需翻的次数。
输入样例:
30
输出样例:
899
程序:
programprograml;
varm:
integer;
functionsolve(m:
integer:
integer;
vari,t,d:
integer;
flag:
boolean;
begin
if(m=1then
so1ve:
=①
elsebegin
d:
=2*m+1;
t:
=2;
i:
=1;
flag:
=False;
repeat
if(t=1then
begin
solve:
=②
flag:
=True;
end
elseif(③then
begin
solve:
=i*m-1;
flag:
=True;
end
else
t:
=④;
i:
=i+1;
untilflag;
end
end;
begin
read(m;
if((m>0and(m<1000then
writeln(⑤;
end.