宁波市第26届中小学生程序设计竞赛初中组初赛试题.docx
《宁波市第26届中小学生程序设计竞赛初中组初赛试题.docx》由会员分享,可在线阅读,更多相关《宁波市第26届中小学生程序设计竞赛初中组初赛试题.docx(14页珍藏版)》请在冰豆网上搜索。
![宁波市第26届中小学生程序设计竞赛初中组初赛试题.docx](https://file1.bdocx.com/fileroot1/2022-11/15/01dbe92f-0a59-4439-adf5-2f2aa03e739b/01dbe92f-0a59-4439-adf5-2f2aa03e739b1.gif)
宁波市第26届中小学生程序设计竞赛初中组初赛试题
宁波市第26届中小学生程序设计竞赛
初中组初赛试题
一.选择题(每题1.5分,共30分。
每小题只有唯一一个正确答案)
1.二进制数(1011101)2与下列哪个十六进制数相同
(A)(5D)16(B)(B5)16(C)(5B)16(D)(D5)16
2.每个不同的二进制数可以表示一种颜色,赤、橙、黄、绿、青、蓝、紫这7种颜色,最少需要几位二进制数来表示?
(A)8(B)7(C)4(D)3
3.以下运算结果为False的是
(A)(5>=5)or(5>4)and(5<4)(B)not(‘a’<’b’)or(5>=4)and(7<7)
(C)falae4)and(5>=5)
4.Pascal源程序的扩展名是(A)pas(B)pascal(C)psc(D)p
5.计算机的中央处理器的组成部件是
(A)控制器和存储器(B)存储器和运算器
(C)控制器和运算器(D)控制器、存储器和运算器
6.宁波市中小学生程序设计竞赛自从首届举办以来,除了其中有一届因举办时间从下半年调整到次年的上半年而没有举行外,每年举办一次。
首届宁波市中小学生程序设计竞赛是哪一年举办的?
(A)1987年(B)1986年(C)1985年(D)1984年
7.下列有关数组这种数据结构的描述正确的是
(A)数据查找、修改和插入都很高效(B)数据查找、修改和插入都不够高效
(C)数据查找和修改不够高效,数据插入高效(D)数据查找和修改高效,数据插入不够高效
8.在宁波市中小学生程序设计竞赛上机复赛中,阅卷老师会批改以下的哪些(个)文件
(A)只批改选手的源程序文件(B)只批改选手编译生成的可执行文件
(C)先批改选手的源程序文件,如果找不到会批改可执行文件
(D)先批改选手的可执行文件,如果找不到会批改源程序文件
9.在FreePascl编程时,你写了以下的程序
varn:
longint;
begin
assign(input,'a.txt');reset(input);//输入文件重定向到a.txt文件
read(n);
close(input);//关闭输入文件
end.
运行时该程序时,返回如右图所示的错误信息,
这是由于
(A)输入的值与变量n不匹配
(B)源程序存在2号语法错误
(C)当前目录下找不到输入文件(D)Pascal编译器没有正确安装
10.以下哪些(个)行为是不符合青少年网络文明公约的:
(A)相信绝大多数网友是真诚的,随意与网友约会(B)沉溺于网络游戏,影响学习
(C)上电脑课时下载大量迷幻类、穿越类的小说,以便晚上睡觉躲被窝看(D)以上都是
11.有以下的程序:
vars:
string;
begin
readln(s);
writeln(s[0]);
end.
该程序运行时,输入如下的一行数据按回车键后,
12345678901234567890123456789012345678901234567890123456789012345
输出为(A)1(B)65(C)ASCII码为65的字符“A”(D)0
12.以下不属于Pascal基本数据类型的是
(A)integer(B)boolean(C)char(D)string
13.在Pascal程序中,以下变量名称正确的是
(A)2011nb(B)nb-2011(C)begin(D)nb2011_cz
14.以下程序段结构总体上看是属于哪个基本结构
s:
=0;
fori:
=1to10do
ifimod2=0then
s:
=s+1;
writeln(s);
(A)顺序结构(B)选择结构(C)循环结构(D)混合结构
15.以数组f:
array[0..12]来存储散列(hash)表,散列函数为h(x)=xmod13,当发生冲突时,使用二次探查法来解决冲突。
即当发现冲突时,依次尝试以下的位置:
h(x),h(x)+12,h(x)-12,h(x)+22,h(x)-22,h(x)+32,h(x)-32,…。
当在散列表中依次存储26,36,13,18,39,3,0时,0存储在数组f的第几个位置?
(A)0(B)1(C)4(D)12
16.以下哪个流程图符号是代表输入/输出框?
(A)(B)(C)(D)
17.进行在线游戏时,①用户登录;②进入在线游戏网;③选择游戏伙伴、开始游戏;④选择游戏室。
正确的次序是
(A)①②④③(B)②①④③(C)①②③④(D)②①③④
18.计算中一般是以补码(二进制)来存储整数的。
其中最高位为0表示正数,为1表示负数,其它各位表示整数的绝对值,如果为正数则把值直接化为二进制,为负数则化为二进制后各位取反再在最低位加1,如下表所示5的补码为00000101,-5的补码为11111011。
请问补码为11111000的是整数
5
-5
符号位0
数值0000101
符号位1
数值0000101
取反1111010
加一1111011
5的补码00000101
-5的补码11111011
(A)-8(B)8(C)-120(D)248
19.为了加快网页下载的速度,网页上的图片文件的扩展名一般为
(A)bmp和jpg(B)jpg和gif(C)bmp和gif(D)三个都可以
20.在Windows操作系统中,当某个应用程序无任何响应时,通过以下哪个操作可以终止该应用程序的运行
(A)单击“关闭”按钮(B)单击“最小化”按钮
(C)按Alt+F4键(D)按Ctrl+Alt+Delete键
二.问题求解(每题5分,共10分)
1.有三个正整数x,y和z,它们相加之和等于201,且x≤y≤z。
问有几种方案?
2.在4行4列的表格中放有16枚硬币(每格1枚硬币),以1表示正面朝
上,0表示反面朝上。
1次翻硬币是指,要么把某一行整行反转(原来正面朝
上的变为反面朝上,原来反面朝上的变为正面朝上了),要么把某一列整列反
转。
原来的硬币状态如右图所示(图中有7枚硬币正面朝上,9枚硬币反面朝
上),经若干次整行、整列的翻转后,最多可以使多少枚硬币正面朝上?
使最多枚硬币正面朝上时最少需要翻几次?
三.阅读程序,求程序运行输出结果(每题8分,共32分)
第1题:
programcz2011_1;
varn,i,c:
longint;ave,s:
extended;
输入:
5
7376839177
f:
array[1..10000]oflongint;
begin
read(n);ave:
=0;
fori:
=1tondobegin
read(f[i]);
ave:
=ave+f[i];
end;
ave:
=ave/n;s:
=0;c:
=0;
fori:
=1tondobegin
iff[i]=c+1;
s:
=s+(f[i]-ave)*(f[i]-ave);
end;
s:
=s/n;
writeln(ave:
0:
2,'',c,'',s:
0:
2);
end.
第2题:
programcz2011_2;
varn,i,x,p,s:
longint;
begin
read(n,x);
输入:
192
s:
=0;p:
=1;
fori:
=1tondobegin
p:
=p*x;
s:
=s+p;
end;
writeln(s);
end.
第3题:
programcz2011_3;
constmaxn=100000;
var
f:
array[1..maxn]oflongint;
stack:
array[1..maxn,1..2]oflongint;
n,i,j,h,t,last,x,s:
longint;
begin
read(n);
fori:
=1tondoread(f[i]);
stack[1,1]:
=1;stack[1,2]:
=n;
last:
=2;
whilelast>1dobegin
last:
=last-1;
h:
=stack[last,1];t:
=stack[last,2];
i:
=h;j:
=t;x:
=f[h];
whileiwhile(i=j-1;
ifif[i]:
=f[j];i:
=i+1;
end;
while(ix)doi:
=i+1;
ifif[j]:
=f[i];j:
=j-1;
end;
end;
f[i]:
=x;
if(hstack[last,1]:
=h;stack[last,2]:
=i-1;last:
=last+1;
end;
if(i+1stack[last,1]:
=i+1;stack[last,2]:
=t;last:
=last+1;
end;
end;
s:
=f[2]-f[1];
fori:
=3tondos:
=s+f[i]-f[i-1];
writeln(s);
输入2:
10
40364729253522421358
输入1:
3
201030
end.
第4题:
programcz2011_4;
varn,a,b,c,d:
longint;
procedurematric(vara,b,c,d:
longint;n:
longint);
vara1,b1,c1,d1,a2,b2,c2,d2,a3,b3,c3,d3:
longint;
begin
ifn=1thenbegina:
=0;b:
=1;c:
=1;d:
=1;exit;end;
matric(a1,b1,c1,d1,ndiv2);
matric(a2,b2,c2,d2,ndiv2);
a3:
=a1*a2+b1*c2;
b3:
=a1*b2+b1*d2;
c3:
=c1*a2+d1*c2;
d3:
=c1*b2+d1*d2;
ifnmod2=1thenbegin
a:
=b3;b:
=a3+b3;c:
=d3;d:
=c3+d3;
end
elsebegin
a:
=a3;b:
=b3;c:
=c3;d:
=d3;
end;
end;
begin
输入1:
3
输入2:
11
read(n);
ifn<3thenwriteln
(1)
elsebegin
matric(a,b,c,d,n-2);
writeln(c+d);
end;
end.
四.程序填空(前5空每空2分,后6空每空3分,共28分)
第1题:
幻方
把1至n*n的正整数填在n行n列的正方形图内,
使每一行、每一列和二条对角线上n个数之和都相等。
这样的方阵图叫做幻方。
如右图所示是一个3行3列的
幻方。
下面的程序生成一个n行n列的幻方。
生成幻方的
方法是:
法1.如果n为奇数,第一个数1填入第1行中间,
下一个数填入的位置为:
(1)如果已填的数的个数为n的倍数,则填入下一行;