haihongyuan.com
海量文库 文档专家
全站搜索:
您现在的位置:首页 > 小学教育 > 学科竞赛学科竞赛

26届市小学生程序设计竞赛小学组初赛试题

发布时间:2013-11-09 08:45:24  

2011年宁波市第26届中小学生程序设计竞赛 小学组 初赛试题

宁波市第26届中小学生程序设计竞赛

小学组 初赛试题

一.选择题(每题2分,共30分。每小题只有唯一一个正确答案)

1.二进制数(1011101)2的值是

(A)94 (B)93 (C)62 (D)61

2.每个不同的二进制数可以表示一种颜色,赤、橙、黄、绿、青、蓝、紫这7种颜色,最少需要几位二进制数来表示?

(A)3 (B)4 (C)7 (D)8

3.以下运算结果为False的是

(A)not(5>5) (B)(5>=4) and (7<7)

(C)not(false) (D)(5<4) or (5>=5)

4. Pascal源程序的扩展名是(A)p (B)psc (C)pas (D)pascal

5. 计算机的中央处理器的组成部件是

(A)控制器和存储器 (B)存储器和运算器

(C)控制器和运算器 (D)控制器、存储器和运算器

6.宁波市中小学生程序设计竞赛自从首届举办以来,除了其中有一届因举办时间从下半年调整到次年的上半年而没有举行外,每年举办一次。首届宁波市中小学生程序设计竞赛是哪一年举办的?

(A)1984年 (B)1985年 (C)1986年 (D)1987年

7.已知一维数组定义a:array[1..100]of longint;每个元素占4个字节地址。已知a[1]的开始地址为为第10000个字节处,问a[11]的开始地址是第几个字节:

(A)10010 (B)10011 (C)10040 (D)10044

8. 在宁波市中小学生程序设计竞赛上机复赛中,阅卷老师会批改以下的哪些(个)文件

(A)先批改选手的源程序文件,如果找不到会批改可执行文件

(B)先批改选手的可执行文件,如果找不到会批改源程序文件

(C)只批改选手编译生成的可执行文件 (D)只批改选手的源程序文件

9. 以下哪些(个)行为是不符合青少年网络文明公约的:

(A)相信绝大多数网友是真诚的,随意与网友约会 (B)沉溺于网络游戏,影响学习

(C)上电脑课时下载大量迷幻类、穿越类的小说,以便晚上睡觉躲被窝看 (D)以上都是

第 1 页 共 8 页

2011年宁波市第26届中小学生程序设计竞赛 小学组 初赛试题

10. 在Free Pascl编程时,你写了以下的程序

var n:longint;

begin

assign(input,'a.txt');reset(input);//输入文件重定向到a.txt文件

read(n);

close(input);//关闭输入文件

end.

运行时该程序时,返回如右图所示的错误信息,

这是由于

(A)当前目录下找不到输入文件“a.txt”

(B) 源程序存在2号语法错误

(C)输入的值与变量n不匹配 (D)Pascal编译器没有正确安装

11. 有以下的程序:

var s:string;

begin

readln(s);

writeln(s[1]);

end.

该程序运行时,输入如下的“ABC”后按回车键,输出为

(A)1 (B)字符“A” (C)字符“A”的ASCII码65 (D)字符串“ABC”

12.宁波市程序设计竞赛使用的Free Pascal2.0.4中integer型数据的是表示范围是

(A)-32768~32767 (B)约正负21亿之间 (C)0~65536 (D)不一定

13. 在Pascal程序中,以下变量名称正确的是

(A)begin (B)2011xx (C)hello (D)array

14. 以下程序段结构 总体上 看是属于哪个基本结构

for i:=1 to 10 do

if i mod 2=0 then

s:=s+1;

(A)顺序结构 (B)循环结构 (C)选择结构 (D)树型结构

15. 进行在线游戏时,①用户登录;②进入在线游戏网;③选择游戏伙伴、开始游戏;④选择游戏室。正确的次序是

(A)①②④③ (B)②①④③ (C)①②③④ (D)②①③④

第 2 页 共 8 页

2011年宁波市第26届中小学生程序设计竞赛 小学组 初赛试题

二.问题求解(每题5分,共10分)

1.有三个正整数x,y和z,它们相加之和等于21,且x≤y≤z。显然x=1,y=1,z=19是一组解,x=5,y=6,z=11是另一组解。请问共有几组解呢?

2.在四行四列的表格中放有16枚硬币(每格1枚硬币),以1表示正面朝 上,0表示反面朝上。一次翻硬币是指,要么把某一行整行反转,要么把某一

列整列反转。某一行或某一列反转后,这一行上原来正面朝上的全变为反面朝上,原来反面朝上的全变为正面朝上了。

原来的硬币状态如右图所示(图中有7枚硬币正面朝上,9枚硬币反面朝上),经若干次整行、整列的翻转后,右图中最多可以使多少枚硬币正面朝上?使最多枚硬币正面朝上时最少需要翻几次?

三.阅读程序,求程序运行输出结果(每题8分,共32分)

第1题:

program xx2011_1;

var n,i,c:longint; ave,s:extended;

f:array[1..10000]of longint;

begin

read(n); ave:=0;

for i:=1 to n do begin

read(f[i]);

ave:=ave+f[i];

end;

ave:=ave/n; c:=0;

for i:=1 to n do

if f[i]<ave then c:=c+1;

writeln(ave:0:2,' ',c);

end.

第2题:

program xx2011_2;

var n,i,x,p,s:longint;

begin

read(n,x);

s:=0;p:=1;

for i:=1 to n do begin 第 3 页 共 8 页

2011年宁波市第26届中小学生程序设计竞赛 小学组 初赛试题

p:=p*x;

s:=s+p;

end;

writeln(s);

end.

第3题:

program xx2011_3;

const maxn=100000;

var

f:array[1..maxn]of longint;

stack:array[1..maxn,1..2]of longint;

n,i,j,h,t,last,x,s:longint;

begin

read(n);

for i:=1 to n do read(f[i]);

stack[1,1]:=1;stack[1,2]:=n;

last:=2;

while last>1 do begin

last:=last-1;

h:=stack[last,1];t:=stack[last,2];

i:=h;j:=t;x:=f[h];

while i<j do begin

while (i<j) and (f[j]<x) do j:=j-1;

if i<j then begin

f[i]:=f[j];i:=i+1;

end;

while (i<j) and (f[i]>x) do i:=i+1;

if i<j then begin

f[j]:=f[i];j:=j-1;

end;

end;

f[i]:=x;

if (h<i-1) then begin

stack[last,1]:=h;stack[last,2]:=i-1;last:=last+1; end;

if (i+1<t) then begin

stack[last,1]:=i+1;stack[last,2]:=t;last:=last+1; end;

第 4 页 共 8 页

2011年宁波市第26届中小学生程序设计竞赛 小学组 初赛试题

end;

s:=f[2]-f[1];

for i:=3 to n do s:=s+f[i]-f[i-1];

writeln(s);

end.

第4题:

program xx2011_4;

var n,a,b,c,d:longint;

procedure matric(var a,b,c,d:longint;n:longint);

var a1,b1,c1,d1,a2,b2,c2,d2,a3,b3,c3,d3:longint;

begin

if n=1 then begin a:=0;b:=1;c:=1;d:=1;exit;end; matric(a1,b1,c1,d1,n div 2);

matric(a2,b2,c2,d2,n div 2);

a3:=a1*a2+b1*c2;

b3:=a1*b2+b1*d2;

c3:=c1*a2+d1*c2;

d3:=c1*b2+d1*d2;

if n mod 2=1 then begin

a:=b3;b:=a3+b3;c:=d3;d:=c3+d3;

end

else begin

a:=a3;b:=b3;c:=c3;d:=d3;

end;

end;

begin

read(n); if n<3 then writeln(1)

else begin

matric(a,b,c,d,n-2);

writeln(c+d);

end;

end.

第 5 页 共 8 页

2011年宁波市第26届中小学生程序设计竞赛 小学组 初赛试题

四.程序填空(前5空每空2分,后6空每空3分,共28分) 第1题:幻方 把1至n*n的正整数填在n行n列的表格内,使

每一行、每一列和二条对角线上n个数之和都相等。这样 的正方形表格叫做幻方。如右图所示是一个3行3列的 幻方。

下面的程序生成一个行(列)数为奇数的幻方。如果输 入的行列数n是偶数,输出字符串“not odd number!

否则按以下的方法生成幻方: 1.第一个数1填入第一行最中间一列;

2.以后每次填下一个数时,填入的位置为:

(1)如果已填的数的个数为n的倍数,则填入下一行;

(2)否则填入上一行右一列。如果向上越界,则填至最后一行;如果向右越界,填至第一列。 生成的数字保存在二维数组a中,程序输出n行,每行n个数据。

【样例输入】

3

【样例输出】

8 1 6

3 5 7

4 9 2

请将程序补充完整。

program xx2011_5;

const maxn=1001;

var n,i,j,p:longint;

a:array[1..maxn,1..maxn]of longint;

begin

readln(n);

if n mod 2=0 then begin

writeln('not odd number!');

end;

i:=1;

②;

for p:=1 to n*n do begin

a[i,j]:=p;

if ③then i:=i+1

else begin

i:=i-1;j:=j+1;

if ④then i:=n;

第 6 页 共 8 页

2011年宁波市第26届中小学生程序设计竞赛 小学组 初赛试题

if j>n then j:=1;

end;

end;

for i:=1 to n do begin

for j:=1 to n-1 do

write(a[i,j],' ');

⑤;

end;

end.

第2题:完美覆盖

以1×2的多米诺骨牌去覆盖n×m的棋盘,当棋盘中的每一个格子都刚好被一块多米诺骨牌覆盖时,这种覆盖叫多米诺骨牌的完美覆盖。如下图所示,2行3列的棋盘,有3种完美覆盖方案。

以下程序求得n×m棋盘的完美覆盖总方案数。程序从第1行第1列开始,按照1行1列、1行2列、1行3列、…、1行m列、2行1列、2行2列、2行3列、…2行m列、…n行1列、n行2列、n行3列、…、n行m列的次序,逐格尝试各格子的不同覆盖方案。以f[i,j]=0表示第i行j列格子还没有被覆盖,以f[i,j]=1表示第i行j列格子被横向覆盖,以f[i,j]=2表示第i行j列格子被纵向覆盖,覆盖的总方案数在变量ans中求得。

请将程序补充完整。

program xx2011_6;

const maxn=100;maxm=100;

var

n,m,i,j:longint;

ans:extended;

f:array[1..maxn,1..maxm]of longint;

procedure domino(i,j:longint);

begin

if i>n then begin

⑥;

exit;

end;

if ⑦ //当前位置已经被覆盖了

if j<m then

domino(i,j+1)

else

domino(⑧);

end else begin

第 7 页 共 8 页

2011年宁波市第26届中小学生程序设计竞赛 小学组 初赛试题

if ⑨then begin f[i,j]:=1;f[i,j+1]:=1; //横向骨牌覆盖 if j<m then

domino(i,j+1)

else

domino(⑧); f[i,j]:=0;f[i,j+1]:=0;

end;

if ⑩then begin f[i,j]:=2;f[i+1,j]:=2; //纵向骨牌覆盖 if j<m then

domino(i,j+1)

else

domino(⑧); f[i,j]:=0;f[i+1,j]:=0;

end;

end;

end;

begin

read(n,m);

for i:=1 to n do

for j:=1 to m do

f[i,j]:=0; //表示当前位置处没有覆盖 ans:=0;

domino(⑾ writeln(ans:0:0);

end.

第 8 页 共 8 页

网站首页网站地图 站长统计
All rights reserved Powered by 海文库
copyright ©right 2010-2011。
文档资料库内容来自网络,如有侵犯请联系客服。zhit326@126.com