宁波市25届小学生计算机,宁波市第25届小学生计算机程序设计竞赛试题及答案.doc...

宁波市第25届小学生计算机程序设计竞赛试题及答案.doc

宁波市第25届中小学生程序设计竞赛小学组初赛试题一、选择题(每题2分,共30分。每小题只有唯一一个正确答案)1、在宁波市中小学生程序设计比赛复赛(上机编程)时,以下不能使用的编程语言是(A)Turbo Pascal (B)Free Pascal (C)C (D)C2、在Free Pascal中按功能键F7或F4时,以下叙述正确的是(A)F4逐条语句执行(包括子程序),F7运行至光标位置(B)F7逐条语句执行(包括子程序),F4运行至光标位置(C)F4逐条语句执行(不包括子程序),F7运行至光标位置(D)F7逐条语句执行(不包括子程序),F4运行至光标位置3、使用高级语言编写的程序称之为(A)源程序 (B)编辑程序 (C)编译程序 (D)链接程序4、如果自己的程序进入了死循环,应当按什么键终止(A)CtrlC (B)CtrlD (C)AltC (D)AltD5、参加宁波市中小学生程序设计比赛复赛(上机编程)时,以下哪种行为是允许的(A)访问互联网或局域网 (B)使用U盘或光盘 (C)使用自带的草稿纸 (D)考试时发现机器有问题,举手示意监考人员处理6、参加宁波市中小学生程序设计比赛复赛(上机编程)时,你有一个程序被判0分。你发现程序其实是正确的,但存在以下问题,提出申诉,以下哪个申诉会被接受(A)源程序文件名和存放源程序的目录名错误(B)只是存放源程序的目录名错误,源程序文件名是正确的(C)存放源程序的目录名正确,源程序文件名是错误的(D)根据比赛规则,以上申斥都不会被接受7、在Free Pascal语言,以下关于各种数据类型占内存空间大小的描述错误的是(A)每个intege型占2个字节 (B)每个longint型占4个字节(C)每个boolean型占2个字节 (D)每个extended型占10个字节8、关键码相同的二个元素,原来在排在前面的还能保证排在前面,这种排序算法我们称它是稳定的。冒泡排序、选择排序、插入排序中,一般意义上是稳定的有几种(A)1 (B)2 (C)3 (D)09、在Free Pascal中编辑当前源程序时,可以使用快捷键CtrlF7增加调试程序时监视的变量,但如果不小心错按为CtrlF6时,会将当前源程序窗口隐藏起来。此时,可以使用菜单命令“Windows/List”调出Windows List对话框,在该对话框中选中隐藏的当前正在编辑的源程序,然后按下面哪个命令按钮可以显示当前正在编辑的源程序(A)Ok (B)Not Hide (C)Show (D)Delete10、结构化程序设计的三种基本控制结构为顺序结构、选择结构和循环结构,以下说法正确的是(A)三种结构都是基本结构,内部不能再有其它结构(B)三种结构都是基本结构,内部除了允许嵌套同一种结构外,不能再有其它结构(C)选择结构和循环结构内部可以嵌套有其它结构,顺序结构不可以嵌套其它结构(D)三种结构内部都可以嵌套其它结构11、以下属于计算机的基本指令的是(A)数值和逻辑运算指令 (B)存储和输入输出指令(C)控制和转移指令 (D)以上都是12、以下属于汉字输出时使用的编码的是(A)国标码 (B)区位码 (C)字形码 (D)五笔字形13、以下存储介质中,一般说来存取速度最快的是(A)硬盘 (B)内存 (C)U盘 (D)光盘14、以下主要用来网页制作的是(A)BASIC (B)Pascal (C)FrontPage (D)HTML15、标准ASCII码最多能表示的字符个数是(A)128 (B)64 (C)256 (D)8二问题求解(每题5分,共10分)1、一副扑克牌除去大小王外,有52张牌。其中有黑桃(Spade)、红心(Heart)、方块Diamond、梅花Club四种花色,每种花色点数从小到大各有13张,它们是2、3、4、5、6、7、8、9、10、J、Q、K。 在上述52张中任取5张,取得炸弹(four of a kind,即四张点数相同的牌加一张另外点数的牌)的取法数有13*48624种;取得辅鲁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堆有2枚硬币,第2堆有4枚硬币,第3堆有5枚硬币。问甲先取,在大家都使用最佳方法的情况下,甲能否获胜如果甲能获胜,请写出第一次在第几堆取多少枚硬币才能获胜如果不能获胜,则只要写上“No”。三阅读程序,求程序运行输出结果每题8分,共32分第1题program xx2010_1;var i,j,slongint;primeboolean;begin for i2 to 20 do begin primetrue; for j2 to i-1 do if i mod j0 then begin primefalse; break; end; if prime then ss1;【输出】 end; writelns;end.第2题 Program xx2010_2;var a,b,c,d,n,i,jlongint;findboolean; farray09of longint;begin f02;f13;f25;f37;f411; f513;f617;f719;f823;f929; readlna,b,c,d; n10; afa*fb-fc*fd mod nn mod n; bfb* fc-fd* fa mod nn mod n; cfc* fd-fa* fb mod nn mod n; dfd* fa-fb* fc mod nn mod n; writelna, ,b, ,c, ,d;end.【输出】【输入】2 3 5 7第3题Program xx2010_3;var aarray130of longint; s,n,i,x,y,zlongint;cchar;begin readlnx,y; readlnz; n0;while z0 do begin nn1;anz mod 10;zz div 10;end;s0;for in downto 1 do ss*xai;writelns; n0; while s0 do begin nn1;ans mod y;ss div y; end; for in downto 1 do writeai; writeln;end.【输出】【输入】7 2126第4题Program xx2010_4;var farray146of longint; aarray1100of longint; x,y,z,i,j,n,countlongint;function findi,h,xlongintlongint;var mlongint;begin if i3 then find0 else begin mhfi-1-1; countcount1; if xam then findm else if xam then findfindi-1,h,x else findfindi-2,m1,x; end;end;begin f11;f21; for i3 to 46 do fifi-1fi-2; readlnn,x,y; for i1 to n do ai3*i-1; i1; while fi-1n do inci; for jn1 to fi-1 do ajmaxlongint; count0;jfindi,1,x; writelnj, ,count; count0;jfindi,1,y; writelnj, ,count;end.【输出】【输入】8 14 7四程序填空第1题每空2分,第2题每空3分,共28分1、人数统计有二幢高楼,已知(1)第一幢高楼的各层上男性人数与第二幢高楼的同一层上的男性人数的差;(2)第一幢高楼的各层上女性人数与第二幢高楼的同一层上的女性人数的差;求第一幢高楼的各层上总人数与第二幢高楼的同一层上的总人数的差;输入第1行二个整数n1和n2。第2行至第n11行,每行二个整数a1和b1。表示第b1层男性人数的差额为a1。第n12行至第n1n21行,每行二个整数a2和b2。表示第b2层女性人数的差额为a2。输出每行二个整数a和b,表示第b层总人数的差额为a。请注意 (1)输入时,如果某一层上二幢楼均没有男性(或女性),则不输入该层的差额情况 (2)输出时,如果某一层上二幢楼均没有人,则不输出该层的差额情况 (3)输入和输出时,均按照层数递增的次序。请将程序补充完整。【样例输入】3 21 15 26 7-5 23 4【样例说明】输入男性第1层差1,第2层差5,第7层差6 女性第2层差-5,第4层差3输出总人数第1层差1,第2层差, 第4层差3,第7层差6 【样例输出】1 10 23 46 7Program xx2010_5; var a1,a2,b1,b2,a,barray1100of longint; n1,n2,n,i,jlongint;begin readlnn1,n2; for i1 to n1 do reada1i,b1i; for i1 to n2 do reada2i,b2i; i1;j1; ; while do begin if b1ib2j then begin an ;bn ; ii1;jj1;nn1; end else if b1ib2j then begin ana1i;bnb1i; ii1;nn1; end else begin ana2j;bnb2j; jj1; nn1; end; end; while in1 do begin ana1i;bnb1i; ii1;nn1; end; while jn2 do begin ana2j;bnb2j; jj1;nn1; end; ; for i1 to n do writelnai, ,bi;end.2、表达式求值 堆栈是一种后进先出的数据结构,实际编程时,常常以数组来模拟堆栈。以下程序计算包含“”、“-”、“*”、“(”、“)”和正整数的一个表达式的值。以数组num和数组code作为二个堆栈。其中堆栈num用来存储表达式中的数值以及计算的中间结果,堆栈code用来存储表达式中的运算符号。最终结果存储在num1中,程序输出最终求得的一个整数值num1。程序逐字符扫描表达式1、如果是运算数,则直接进运算数栈num。2、如果是运算符 2.1如果当前运算符级别低于或相同于位于运算符栈顶的前一个运算符的级别,则 2.1.1 在运算数栈中出栈两次,得到a,b; 2.1.2运算符栈出栈,得运算符p; 2.1.3 将a和b在运算p下的计算结果入运算数栈; 2.1.4当前运算符继续与位于运算符栈顶的前一个运算符比较; 2.2如果当前运算符级别高于位于运算符栈顶的前一个运算符级别,则当前运算符进栈3、左括号最高级。右括号最低级 3.1因此,遇左括号时,左括号入栈;但左括号在栈内时,级别低于任何其它符号 3.2遇右括号时,一直作运算,直至遇上左括号,则简单地作左括号出栈即可,且此时右括号不进栈;为方便起见,程序会在输入的表达式前后加上一对括号。另外,输入数据保证是正确的。请将程序补充完整。【样例输入】122*3445-5*67Program xx2010_6;var sansistring; n,i,tc,tnlongint;【样例输出】600 x,yextended; numarray11001of extended; codearray11001of char;function calx,yextended;ccharextended;计算x和y在运算c下的值begin if c- then calx-y else if c then calxy else calx*y;end;function priox,ycharboolean;前一个运算符x比后一个运算符y级别高吗begin if x then priofalse else if x* then priotrue else if xandyory-then priotrue else if x-andyory-then priotrue else priofalse;end;begin readlns; ; nlengths; x0;tc0;tn0; for i1 to n do begin 逐字符扫描输入的表达式 if si0andsi9 then 第i个字符是数字 xx*10ordsi-ord0 得到连续数字表示的整数值,存储在变量x中 else begin if x0 then begin 前面已经得到正整数值,当前数字x进入数字栈 tntn1;numtnx; x0;end; if si then begin 第i个字符为左括号,入符号栈 tctc1;codetcsi;endelse if si then begin 第i个字符为右括号 while do begin tntn-1; numtn ; tctc-1; end; ; end else begin 第i个字符为,-,* while priocodetc,si do begin tntn-1; numtn ; tctc-1; end; tctc1; ; end; end; end; writeln ;end.宁波市第25届中小学计算机程序设计竞赛小 学 组 初 赛 答 案一、单项选择题(每题1.5分,共计30分)12345678910ABAADDCBA或CD1112131415DCBCA二、问题求解(共2题,每题5分,共10分)1、13*6*12*43744 2、第1堆取1枚 三、阅读程序,求程序运行输出结果(共4题,每题8分,共32分)1、8_ 2、8 4 4 6 3、69 4、5 2 1000101_ 0 4 四、程序填空(前5空,每空2分,后6空每空3分,共28分) n1 _ in1 and jn2必须有二个括号,and前后可以没有空格,前后可以再加一个括号 a1ia2j或a2ja1i b1i或b2j _ nn-1或decn或decn,1 _ ss codetc 前后可以有括号 calnumtn,numtn1,codetctctc-1或dectc或dectc,1 codetcsi num100_

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值