南海区青少年信息学奥林匹克竞赛初赛试题小学乙组.docx
《南海区青少年信息学奥林匹克竞赛初赛试题小学乙组.docx》由会员分享,可在线阅读,更多相关《南海区青少年信息学奥林匹克竞赛初赛试题小学乙组.docx(10页珍藏版)》请在冰豆网上搜索。
![南海区青少年信息学奥林匹克竞赛初赛试题小学乙组.docx](https://file1.bdocx.com/fileroot1/2023-6/23/9b7c5948-6bdc-46f2-abfd-98512856a00e/9b7c5948-6bdc-46f2-abfd-98512856a00e1.gif)
南海区青少年信息学奥林匹克竞赛初赛试题小学乙组
2007年南海区青少年信息学奥林匹克竞赛初赛试题
(小学乙组,两小时完成)
◆ ◆请将正确答案在答卷上填写,在本试题卷上答题无效◆◆
一、选择题:
(选出每题正确的一个答案代码,填在括号内,每题1分,共20分)
1. 当(A>=Band(B>=C的取值为true时,则表达式A的值是()。
A、trueB、falseC、1D、0
2. 如果要用变量TiZhong来存放体重数据,则该变量应说明为下面哪一种类型?
()
A、integerB、booleanC、charD、real
3. 与(100101002对应的无符号十进制数是()。
A、128B、148C、186D、236
4. 表达式4+3MOD8*3的运算结果为()。
A、13B、16C、19D、21
5. 已知堆栈中连续存放有5个数,即依次将1,3,5,7,9放入一个堆栈中,然后将这些数出栈,它的出栈顺序是()。
A、35791B、13579
C、97531D、19375
6. 表达式length(‘BCDBCD’-abs(-2的值是()。
A、10BCDBCDB、-10BCDBCDC、16D、4
7. 对于以下的程序段,变量max的值在循环体中被改变的次数是()。
max:
=0;
fort1:
=1to6do
begin
ifw>maxthenmax:
=w;
readln(w
end;
(输入的数是:
254530805079)
A、6B、5C、3D、2
8. 要随机产生一系列5~20范围内的整数,可用的表达式是()。
A、trunc(5+15*randomB、16+trunc(5*random
C、5+trunc(15*randomD、5+trunc(16*random
9. 执行过程val(‘12.53’,a,b后,a中的值为()。
A、12.53B、1C、0D、5
10. 下列关于队列的叙述,错误的是()。
A、可以用数组实现队列操作
B、可以通过读数语句,将堆栈存放到队列中
C、队列操作的特点是“先进先出,后进后出”
D、队列的元素可以是任何类型
11. 把一个大于1的自然数N分成两个不为0的自然数之和(3+5与5+3看作是同一种分法,一共有多少种分法?
用Pascal语言表达为()。
A、Ndiv2B、2*N-1C、2*(n+1-1D、2*N+1
12. 下列关于数组的叙述,正确的是()。
A、下标是数组元素
B、数组中的下标不能是表达式
C、一个N×N的二维数组A,其元素个数与2个有N个元素的一维数组B相同
D、数组元素存放的都是同一种类型的数据
13. 将一组数1,3,5,7,9依次存放入数组P的1,2,3,4,5号元素中,则P[p[2]+1]的值是()。
A、3B、5C、7D、9
14. 十进制数127转换成二进制数是()。
A、11111111B、01111111C、10000000D、11111110
15. 英文字母A的ASCII码为65,英文大写字母D的ASCII码为()。
A、50B、66C、52D、68
16. 当要将实型变量b中的数四舍五入取整数,并赋值给一个整型变量a时,下列哪个语句是正确的()。
A、a:
=trunc(bB、a:
=int(bC、a:
=b-trunc(bD、a:
=round(b
17. 在字符串‘ababacbabcbdecced’中出现次数最多的字母出现了()次。
A、6B、5C、4D、3
18. 当程序执行语句“readln(A,B,C”时,至少要从键盘输入数据的个数是()。
A、2个B、3个C、5个D、不用输入。
19. 下列逻辑表达式中其值为false的是()。
A、‘a’<‘R’B、‘THERE’>‘THE’
C、‘1’<=‘H’D、-3mod8=-3
20. 已知每个integer类型的数需要用2个字节的空间存放,则以下说明的数组需要在内存中开辟多少字节的空间?
()
varnl:
array[1..2,11..50]ofinteger;
A、100B、160C、200D、84
二、基础填空题:
(将正确的答案填在横线上,第1~2题每小题4分,第3~4题每小题5分,共18分)
1.已知数组value中连续存放着15个数,如果采用顺序查找法,则查找一个数的平均比较次数是。
2.假设有一组数,以下列的形式存放在二维数组A中:
134556
226463
348626
663232
521534
如果这一数组的最小下标为(1,1,即第一个下标变量为A[1,1],若已知:
X=2,Y=3,Z=1,则A[A[Y,4]-1,A[Z,X]]的值为。
3.3只空瓶可以换一瓶汽水,小明买了10瓶汽水,他最多可以喝到瓶汽水。
4.已知一组数存在这样的规律:
从第二个数开始,每个数都是前一个数的3倍多1。
如果用f(n)表示第n个数,那么该数与前一个数的关系可表示为:
f(n=(n>=2.
三、写运行结果:
(每小题6分,共30分)
1.
programex1;
Vari,max:
integer;
A:
array[1..10]ofinteger;
Begin
Fori:
=1to10doread(a[i];
Max:
=a[1];
Fori:
=2to10do
Ifa[i]>maxthenmax:
=a[i];
Writeln(max;
End.
输入:
-11624678–18-61534
输出:
4.
programex4;
varzs,cj:
real;
rs:
1..100;
begin
zs:
=0;
forrs:
=1to5do
begin
read(cj;
zs:
=zs+cj
end;
writeln(‘pj=’,zs/5:
1:
1;
end.
输入:
9576836990
输出:
2.
programex2;
varst,new1:
string;
x,len:
integer;
begin
readln(st;
readln(x;
len:
=length(st;
new1:
=copy(st,len-x+1,x+copy(st,1,len-x;
writeln(new1;
end.
输入:
CDCABBADBB
5
输出:
5.
programex5;
vark,p:
integer;
pen:
array[1..20]ofreal;
pen2:
real;
begin
fork:
=1to5doread(pen[k];
fork:
=1to4do
forp:
=k+1to5do
ifpen[k]>pen[p]then
begin
pen2:
=pen[k];pen[k]:
=pen[p];
pen[p]:
=pen2
end
fork:
=1to5do
write(pen[k]:
0:
2,‘’;
end.
输入:
5.434.4613.464312.590
输出:
3、programex3;
Varx,s,n,t1:
longint;
begin
readln(n;
x:
=n;s:
=0;
repeat
s:
=s+xmod10;
x:
=xdiv10;
untilx=0;
write(s;
end.
输入:
48375
输出:
四、完善程序(每空2分,共22分)
1.输出1~100中所有的素数。
[程序清单]
Vari,j:
integer;
F:
Boolean;
Begin
Fori:
=2to100do
Begin
①
Forj:
=2to②do
If③then
begin
f:
=false;
break;
end;
If④thenwrite(i,’’;
End;
End.
2.编程求出所有的不超过6位数的完全平方数。
每行输出6个。
每个数占8位场宽。
(注:
4是2的平方,所以4是一个完全平方数。
[程序清单]
Vari,t:
longint;
Begin
Write(1:
8;①
Fori:
=2to999do
Begin
t:
=t+1;
②
定义Definition
If
被2整除规律:
一个整数最后一位是0或偶数(Evennumber),这也是偶数的定义。
被3整除规律:
一个数所有数位相加之和(即数字和)是3的倍数。
被4整除规律:
一个数最后2位数是00或者能整除4。
如312,200,532,616,908,724
被5整除规律:
一个整数最后一位是0或5.
被6整除规律:
一个整数能同时被2和3整除。
被7整除规律:
一个整数的个位数字截去,再从余下的数中,减去个位数的2倍,如果差是7的倍数。
65~被8整除规律:
一个整数最后3位数是000或者能整除8.
被9整除规律:
一个整数所有数位相加之和(即数字和)是9的倍数。
被10整除规律:
最后一位为0.
输入样例
被11整除规律:
若一个整数的奇位数字之和与偶位数字之和的差能被11整除(0,或11的倍数),则这个数能被11整除。
11的倍数检验法也可用上述检查7的“割尾法”处理!
过程唯一不同的是:
倍数不是2而是1
8
[被13整除规律:
若一个整数的个位数字截去,再从余下的数中,加上个位数的4倍,如果差是13的倍数,则原数能被13整除。
如果差太大或心算不易看出是否13的倍数,就需要继续上述「截尾、倍大、相加、验差」的过程,直到能清楚判断为止。
vart,jms,ln:
integer;
en:
string;
begin
readln(en;
ln:
=①;
②;
fort:
=③tolndo
if(ord(en[t]>64and(ord(en[t]<91then④;
writeln(jms
end.
五、编写程序(10分)
[问题描述]:
仔细观察这个N=5的矩阵,
23456
34567
45678
5 6789
6 78910
请根据这个规律生成N行N列的矩阵。
[输入格式]:
N(N<20)
[输出格式]:
输出N行N列的矩阵,矩阵中每个元素占4个场宽。
[输入样例]:
3
[输出样例]:
234
345
456