当前位置:文档之家› 宁波市第25届中小学生程序设计竞赛(初中试题及答案)

宁波市第25届中小学生程序设计竞赛(初中试题及答案)

宁波市第25届中小学生程序设计竞赛初中组初赛试题一、选择题(每题1.5分,共30分。

每小题只有唯一一个正确答案)1、在宁波市中小学生程序设计比赛复赛(上机编程)时,以下不能使用的编程语言是:(A)Turbo Pascal (B)Free Pascal (C)C (D)C++2、在Free Pascal中按功能键F7或F4时,以下叙述正确的是:(A)F4逐条语句执行(包括子程序),F7运行至光标位置(B)F7逐条语句执行(包括子程序),F4运行至光标位置(C)F4逐条语句执行(不包括子程序),F7运行至光标位置(D)F7逐条语句执行(不包括子程序),F4运行至光标位置3、使用高级语言编写的程序称之为:(A)源程序(B)编辑程序(C)编译程序(D)链接程序4、如果自己的程序进入了死循环,应当按什么键终止?(A)Ctrl+C (B)Ctrl+D (C)Alt+C (D)Alt+D5、参加宁波市中小学生程序设计比赛复赛(上机编程)时,以下哪种行为是允许的?(A)访问互联网或局域网(B)使用U盘或光盘(C)使用自带的草稿纸(D)考试时发现机器有问题,举手示意监考人员处理6、参加宁波市中小学生程序设计比赛复赛(上机编程)时,你有一个程序被判0分。

你发现程序其实是正确的,但存在以下问题,提出申诉,以下哪个申诉会被接受?(A)源程序文件名和存放源程序的目录名错误(B)只是存放源程序的目录名错误,源程序文件名是正确的(C)存放源程序的目录名正确,源程序文件名是错误的(D)根据比赛规则,以上申斥都不会被接受7、在Free Pascal语言,以下关于各种数据类型占内存空间大小的描述错误的是:(A)每个integer型占2个字节(B)每个longint型占4个字节(C)每个boolean型占2个字节(D)每个extended型占10个字节8、使用数组逐层保存完全二叉树结构,则以下叙述正确的是:(A)逻辑结构为完全二叉树,物理结构为数组(B)物理结构为完全二叉树,逻辑结构为数组(C)逻辑结构和物理结构均为完全二叉树(D)逻辑结构和物理结构均为数组9、关键码相同的二个元素,原来在排在前面的还能保证排在前面,这种排序算法我们称它是稳定的。

冒泡排序、选择排序、插入排序、快速排序中,一般意义上是稳定的有几种:(A)1 (B)2 (C)3 (D)410、在Free Pascal中编辑当前源程序时,可以使用快捷键Ctrl+F7增加调试程序时监视的变量,但如果不小心错按为Ctrl+F6时,会将当前源程序窗口隐藏起来。

此时,可以使用菜单命令“Windows/List”调出Windows List对话框,在该对话框中选中隐藏的当前正在编辑的源程序,然后按下面哪个命令按钮可以显示当前正在编辑的源程序?(A)Ok (B)Not Hide (C)Show (D)Delete11、当n>=10000时,以下四个程序段运行后count的值最大的是:count:=0;while n>=1 do beginfor j:=1to n docount:=count+1;n:=n div2;end;count:=0;fori:=1 to n do beginm:=trunc(n/i);for j:=1to m docount:=count+1;end;(A)(B)count:=0;k:=trunc(sqrt(n));forj:=1 to k do beginfor i:=1to j*j docount:=count+1;end;count:=0;n:=4*n;k:=trunc(sqrt(n));forj:=1 to k do beginfor i:=1to j docount:=count+1;end;(C)(D)12、结构化程序设计的三种基本控制结构为顺序结构、选择结构和循环结构,以下说法正确的是:(A)三种结构都是基本结构,内部不能再有其它结构(B)三种结构都是基本结构,内部除了允许嵌套同一种结构外,不能再有其它结构(C)选择结构和循环结构内部可以嵌套有其它结构,顺序结构不可以嵌套其它结构(D)三种结构内部都可以嵌套其它结构13、以下属于计算机的基本指令的是:(A)数值和逻辑运算指令(B)存储和输入输出指令(C)控制和转移指令(D)以上都是14、以下属于汉字输出时使用的编码的是:(A)国标码(B)区位码(C)字形码(D)五笔字形15、以下存储介质中,一般说来存取速度最快的是:(A)硬盘(B)内存(C)U盘(D)光盘16、HTTP协议的默认端口是:(A)8080 (B)80 (C)25 (D)1517、有二个图像A和B,其中A比B能更好地表现图像的色彩和层次,B在放大或缩小时不易失真,那么A和B应该属于:(A)位图、位图(B)矢量图、位图(C)位图、矢量图(D)矢量图、矢量图18、用来描述网页中的文本、图像、超链接和表格等基本元素的语言是:(A)BASIC (B)Pascal (C)FrontPage (D)HTML19、标准ASCII码最多能表示的字符个数是:(A)128 (B)64 (C)256 (D)820、下列属于信息的是:(A)《宁波日报》(B)数码相机(C)2010年温歌华冬奥会实况直播(D)音乐光盘二.问题求解(每题5分,共10分)1、一副扑克牌除去大小王外,有52张牌。

其中有黑桃(Spade)、红心(Heart)、方块(Diamond)、梅花(Club)四种花色,每种花色点数从小到大各有13张,它们是:2、3、4、5、6、7、8、9、10、J、Q、K、A。

在上述52张中任取5张,取得炸弹(four of a kind,即四张点数相同的牌加一张另外点数的牌)的取法数有13*48=624种;取得辅鲁(full house,即三张点数相同另加二张点数相同牌)的取法数有多少种?请注意,二种取法中,只要有一张牌花色不同或点数不同,这二种取法就是不同的。

2、有若干堆硬币,甲乙二人参加游戏,游戏规则如下:(1)由甲开始,二人轮流取硬币,每次取时只能从某一堆中取若干个硬币,可以把该堆硬币全部取完,最少可以只取一个硬币,但不能不取硬币。

(2)最后取完最后一个硬币的人为胜者。

比如一开始有二堆硬币,第一堆1枚,第二堆2枚,有几种取法:(1)甲取第一堆1枚,乙取第二堆1枚,甲取第二堆1枚,甲获胜!(2)甲取第一堆1枚,乙取第二堆2枚,乙获胜!(3)甲取第二堆1枚,乙取第一堆1枚,甲取第二堆1枚,甲获胜!(4)甲取第二堆1枚,乙取第二堆1枚,甲取第一堆1枚,甲获胜!(5)甲取第二堆2枚,乙取第一堆1枚,乙获胜!显然,当甲先取第二堆1枚时,甲能获胜!当甲采取其它取法时,当乙取对时,甲会失败的。

但如果一开始二堆硬币数都为2枚,则甲无论在哪一堆中取多少个,乙可以在另外一堆中取同样多个,乙获胜,甲失败。

现在有四堆硬币,第1堆有1枚硬币,第2堆有2枚硬币,第3堆有4枚硬币,第4堆有5枚硬币。

问甲先取,在大家都使用最佳方法的情况下,甲能否获胜?如果甲能获胜,请写出第一次在第几堆取多少枚硬币才能获胜?如果不能获胜,则只要写上“No”。

三.阅读程序,求程序运行输出结果(每题8分,共32分)第1题:Program cz2010_1;var a,b,c,d,n,i,j:longint;find:boolean;f:array[0..19]of longint;beginn:=-1;i:=1;while n<19 do begini:=i+1;find:=false;for j:=2 to trunc(sqrt(i)) doif i mod j=0 then beginfind:=true;break;end;if not find then beginn:=n+1;f[n]:=i;end;end;readln(a,b,c,d);n:=n+1;a:=((f[a]*f[b]-f[c]*f[d]) mod n+n) mod n;b:=((f[b]* f[c]-f[d]* f[a]) mod n+n) mod n;c:=((f[c]* f[d]-f[a]* f[b]) mod n+n) mod n;d:=((f[d]* f[a]-f[b]* f[c]) mod n+n) mod n;writeln(a,' ',b,' ',c,' ',d);end.【输入】:2 3 5 7【输出】:______________第2题:Program cz2010_2;var a:array[1..30]of char;s,n,i,x,y,z:longint;c:char;begins:=0;readln(x,y);while not eoln do beginread(c);if c<='9' thens:=s*x+ord(c)-ord('0')elses:=s*x+ord(c)-ord('A')+10;end;readln;write(s,’ ‘);n:=0;while s>0 do beginn:=n+1;z:=s mod y;if z>9 thena[n]:=chr(z-10+ord('A'))elsea[n]:=chr(z+ord('0'));s:=s div y;end;for i:=n downto 1 do write(a[i]);writeln;【输入2】:16133A2B【输出2】:____________________【输入1】:72126【输出1】:____________________end.第3题:Program cz2010_3;var fu,a,num,b,tot,k,n:longint;shu:boolean;c:char;beginnum:=0;a:=0;fu:=1;shu:=false;b:=0;while not(eoln) do begin //当一行输入未结束时read(c);if c='-' then fu:=-1else if (c<='9') and (c>='0') then beginval(c,k);num:=10*num+k;shu:=true;endelse if shu then beginshu:=false;if (fu=1) and (num>0) then inc(a);if fu=-1 then inc(b);inc(tot,num*fu);inc(n);num:=0;fu:=1;end;end;if shu then beginshu:=false;if (fu=1) and (num>0) then inc(a);if fu=-1 then inc(b);inc(n); inc(tot,num*fu);num:=0;fu:=1;end;writeln(tot/n:0:3,' ',a,' ',b);close(input);close(output);end.【输入】54hiy-24 51【输出】____________第4题:Program cz2010_4;var f:array[1..46]of longint;a:array[1..100]of longint;x,y,z,i,j,n,count:longint;function find(i,h,x:longint):longint;var m:longint;beginif i<3 then exit(0);m:=h+f[i-1]-1;count:=count+1;if x=a[m] then exit(m);if x<a[m] then exit(find(i-1,h,x))else exit(find(i-2,m+1,x));end;beginf[1]:=1;f[2]:=1;for i:=3 to 46 do f[i]:=f[i-1]+f[i-2];readln(n,x,y,z);for i:=1 to n do a[i]:=3*i-1;i:=1;while f[i]-1<n do inc(i);for j:=n+1 to f[i]-1 do a[j]:=maxlongint;count:=0;j:=find(i,1,x);writeln(j,' ',count);count:=0;j:=find(i,1,y);writeln(j,' ',count);count:=0;j:=find(i,1,z);writeln(j,' ',count);end.【输入】8 14 7 17【输出】___________________________四.程序填空(第1题每空2分,第2题每空3分,共28分)1、多项式乘法二个只含有一个未知数x的多项式相乘,得到的结果也是含有未知数x的多项式。

相关主题