2009年东莞市小学生程序设计竞赛镇区选拨赛上机试题分析
- 格式:doc
- 大小:32.50 KB
- 文档页数:2
2007年东莞市小学生程序设计竞赛镇街选拨赛上机试题注意事项:1、本试题共四大题,每题100分,共400分;2、本试题全部为上机编程题,三小时完成,以测试数据测试程序的形式进行测评;3、严格按题目要求进行数据输入和结果的输出,否则将严重影响得分。
4、要求提交pascal源文件(或basic源文件)和编译后的EXE文件,以EXE 文件进行测试。
一、学生人数提交文件:student.pas / student.exe (或student.bas / student.exe)问题描述:向阳小学五年级共有N个班,每个班的人数已知,现在请你统计五年级共有多少人。
全年级的人数等于各班人数的和。
数据输入:从文件student.in,读入数据,共有N+1行,第一行为班数N(n<=20),接下来有N行,每行一个正整数,表示各班的人数(小于等于60)。
数据输出:结果输出到student.out中,只有一个数,表示全年级的人数。
输入输出样例:Student.in4364038Student.out114二、进制转换提交文件:num.pas / num.exe (或num.bas / num.exe)问题描述:信息技术课上刚学了进制转换的方法,李老师布置了一个任务:给出一个十进制数N,要你将它转换为m进制数,请编程序实现。
现在我们也来完成这个问题好吗?数据输入:从文件num.in中读入数据,文件中有二行,第一行是一个十进制正整数N(N<=3500),第二行是m(2=<m<=9), 表示要将N转换为m 进制数。
数据输出:结果输出到文件num.out中,只有一个数,就是转换后的结果。
输入输出样例:Num.in524Num.out310三、枪声问题提交文件:gan.pas / gan.exe ( 或gan.bas / gan.exe )问题描述:小明和小李同时参加了射击比赛,比赛规则是这样的,每次两人同时射击,每个人有S枚子弹进行射击,第1秒两人同时打出第一枚子弹,以后的s-1子弹可以自己根据一定的间隔时间打出,设小明后面的子弹每隔t1秒打出一枚子弹,小李后面的子弹每隔t2秒打出一枚子弹,如t1=2时,则后面子弹打出的时刻分别为4,7,10,13,…。
全国信息学奥林匹克联赛(NOIP2009)复赛提高组(请选手务必仔细阅读本页内容)注意事项:1、文件名(程序名和输入输出文件名)必须使用小写。
2、C/C++中函数main()的返回值类型必须是int,程序正常结束时的返回值必须是0。
3、全国统一评测时采用的机器配置为:CPU 1.9GHz,内存1G,上述时限以此配置为准。
各省在自测时可根据具体配置调整时限。
1.潜伏者(spy.pas/c/cpp)【问题描述】R 国和S 国正陷入战火之中,双方都互派间谍,潜入对方内部,伺机行动。
历尽艰险后,潜伏于S 国的R 国间谍小C 终于摸清了S 国军用密码的编码规则:1.S 国军方内部欲发送的原信息经过加密后在网络上发送,原信息的内容与加密后所得的内容均由大写字母‘A’-‘Z’构成(无空格等其他字符)。
2.S 国对于每个字母规定了对应的“密字”。
加密的过程就是将原信息中的所有字母替换为其对应的“密字”。
3.每个字母只对应一个唯一的“密字”,不同的字母对应不同的“密字”。
“密字”可以和原字母相同。
例如,若规定‘A’的密字为‘A’,‘B’的密字为‘C’(其他字母及密字略),则原信息“ABA”被加密为“ACA”。
现在,小C 通过内线掌握了S 国网络上发送的一条加密信息及其对应的原信息。
小C 希望能通过这条信息,破译S 国的军用密码。
小C 的破译过程是这样的:扫描原信息,对于原信息中的字母x(代表任一大写字母),找到其在加密信息中的对应大写字母y,并认为在密码里y 是x 的密字。
如此进行下去直到停止于如下的某个状态:1.所有信息扫描完毕,‘A’-‘Z’ 所有26 个字母在原信息中均出现过并获得了相应的“密字”。
2.所有信息扫描完毕,但发现存在某个(或某些)字母在原信息中没有出现。
3.扫描中发现掌握的信息里有明显的自相矛盾或错误(违反S 国密码的编码规则)。
例如某条信息“XYZ”被翻译为“ABA”就违反了“不同字母对应不同密字”的规则。
2008年东莞市小学生计算机程序设计竞赛市初赛试题说明:请将答案填在答题卡上,只交答题卡一、选择题(每题1分,共10分)1、通常一个汉字占(B )个字节。
A、1个B、2个C、3个D、4个2、下列不同的进制数中,最小的数是(D )。
A、(1101110)2B、(75)10C、(103)8D、(3B)163、蓝牙技术是一种(A )。
A、无线网络接入技术B、CPU制作工艺C、高级技术D、信息学4、IT的含义是( B )。
A、通信技术B、网络技术C、信息技术D、信息学5、CPU是(B )的简称。
A、硬盘B、中央处理器C、高级程序语言D、核心寄存器6、以下设备中,断电之后保存的数据不会丢失的是( D )。
A、内存B、寄存器C、显存D、硬盘7、一台计算机如果要利用电话线上网,就必须配置能够对数字信号和模拟信号进行互相转换的设备,这种设备是( A )A、调制解调器B、路由器C、网卡D、网关8、数字图像文件可以用下列哪个软件来编辑(C )。
A、wordB、记事簿(notepad)C、photoshopD、WinRAR9、计算机软件保护法是用来保护软件的( D )。
A、编写权B、复制权C、使用权D、著作权10、计算机病毒是( B )A、通过计算机传播的危害人体健康的一种病毒B、人为制造的能够侵入计算机系统并给计算机带来危害的程序和指令集合C、一种由于计算机元器件老化而产生的对生态环境有害的物质D、利用计算机的海量高速运算能力而制造出来的用于疾病预防的新型病毒。
二、填空题(每小题5分,共15分)1、上楼时可以一步上1级,也可以一步上2级,如有一个楼梯共有3级,则上楼梯的方法有3种,分别是:111(每步上1级),21(第一步上2级,第二步上1级),12(第一步上1级,第二步上1级)。
现有一楼梯共有12级,问共有多少种上楼的方法?2、向阳小学六年级共有3个课外小组:美术组,电脑组和音乐组。
今有张、李、赵、陈、王5名同学,已知张、王为美术组成员,张、李、赵为电脑组成员,李、赵、陈为音乐组成员。
全国计算机技术与软件专业技术资格(水平)考试2009年上半年程序员上午试卷(考试时间 9 : 00~11 : 30 共 150 分钟)1. 在答题卡的指定位置上正确写入你的姓名和准考证号,并用正规 2B 铅笔在你写入的准考证号下填涂准考证号。
2. 本试卷的试题中共有 75 个空格,需要全部解答,每个空格 1 分,满分75 分。
3. 每个空格对应一个序号,有 A、B、C、D 四个选项,请选择一个最恰当的选项作为解答,在答题卡相应序号下填涂该选项。
4. 解答前务必阅读例题和答题卡上的例题填涂样式及填涂注意事项。
解答时用正规 2B 铅笔正确填涂选项,如需修改,请用橡皮擦干净,否则会导致不能正确评分。
例题● 2009 年上半年全国计算机技术与软件专业技术资格(水平)考试日期是(88)月(89)日。
(88)A. 3 B. 4 C. 5 D. 6(89)A. 20 B. 21 C. 22 D. 23因为考试日期是“5 月 20 日”,故(88)选 C,(89)选 A,应在答题卡序号 88 下对 C 填涂,在序号 89 下对 A 填涂(参看答题卡)。
●用户打开名为“个人简历”的Word文件,通常是指(1):若再单击常用工具栏上的“(2)”按钮,可以插入表格。
(1)A.显示并打印该文件的内容 B.为该文件开设一个新的、空的文档窗口C.将该文件内容从磁盘调入内存并显示D.将该文件内容从内存中读出并显示(2)A. B. C. D.●某品牌商品销售情况表如图(a)所示。
若想按产品类别分别累计销售量,可使用分类汇总命令。
汇总的结果如图(b)所示。
在进行分类汇总前,应先对数据清单中的记录按(3)字段进行排序:选择“数据 /分类汇总”命令,并在弹出的“分类汇总”对话框中的“选定汇总项”列表框内,选择要进行汇总的(4)字段,再点击确认键。
(3)A.产品 B.销售日期 C.销售地点 D.销售量(4)A.产品 B.销售日期 C.销售地点 D.销售量●(5)是格式正确的E-mail地址。
2009年第十五届全国青少年信息学奥林匹克联赛初赛试题(普及组二小时完成)●●全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效●●一. 单项选择题(共20题,每题1.5分,共计30分。
每题有且仅有一个正确答案。
)1、关于图灵机下面的说法哪个是正确的:A) 图灵机是世界上最早的电子计算机B) 由于大量使用磁带操作,图灵机运行速度很慢。
C) 图灵机是英国人图灵发明的,在二战中为破译德军的密码发挥了重要作用。
D) 图灵机只是一个理论上的计算模型。
【分析】选择DA最早的计算机是ENIACB图灵机是计算机模型,没有运行速度,更谈不上磁带操作C图灵机是英国人阿兰图灵提出的理论,阿兰图灵本人在二战中破译德军密码系统发挥重要作用,而不是图灵机发挥作用。
2、关于计算机内存,下列说法哪个是正确的:A) 随机存储器(RAM)的意思是当程序运行时,每次具体分配给程序的内存位置是随机而不确定的。
B) 1MB内存通常是指1024*1024字节大小的内存。
C) 计算机内存严格说来包括主存(memory)、高速缓存(cache)和寄存器(register)三个部分。
D) 一般内存中的数据即使在断电的情况下也能保留2个小时以上。
【分析】选择B1MB=1024KB=1024*1024BA中RAM不是位置随机,而是随时访问,所谓“随机存取”,指的是当存储器中的消息被读取或写入时,所需要的时间与信息所在的位置无关。
C中高速缓存和寄存器的物理实现是集成在CPU中,这两部分不属于冯诺依曼体系中的五大部分的任意一个部分。
D中2秒都保留不住马上丢失3、下列关于BIOS的说法哪个是正确的:A) BIOS是计算机基本输入输出系统软件的简称。
B) BIOS包含了键盘、鼠标、声卡、显卡、打印机等常用输入输出设备的驱动程序。
C) BIOS一般由操作系统厂商来开发完成。
D) BIOS能提供各种文件拷贝、复制、删除以及目录维护等文件管理功能。
【分析】选A其实bios=Basic Input Output System。
2009年第十五届全国青少年信息学奥林匹克联赛初赛试题(普及组二小时完成)●● 全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效●●一. 单项选择题(共20题,每题1.5分,共计30分。
每题有且仅有一个正确答案。
)1、关于图灵机下面的说法哪个是正确的:A) 图灵机是世界上最早的电子计算机B) 由于大量使用磁带操作,图灵机运行速度很慢。
C) 图灵机是英国人图灵发明的,在二战中为破译德军的密码发挥了重要作用。
D) 图灵机只是一个理论上的计算模型。
【分析】选择DA最早的计算机是ENIACB图灵机是计算机模型,没有运行速度,更谈不上磁带操作C图灵机是英国人阿兰图灵提出的理论,阿兰图灵本人在二战中破译德军密码系统发挥重要作用,而不是图灵机发挥作用。
2、关于计算机内存,下列说法哪个是正确的:A) 随机存储器(RAM)的意思是当程序运行时,每次具体分配给程序的内存位置是随机而不确定的。
B) 1MB内存通常是指1024*1024字节大小的内存。
C) 计算机内存严格说来包括主存(memory)、高速缓存(cache)和寄存器(register)三个部分。
D) 一般内存中的数据即使在断电的情况下也能保留2个小时以上。
【分析】选择B1MB=1024KB=1024*1024BA中RAM不是位置随机,而是随时访问,所谓“随机存取”,指的是当存储器中的消息被读取或写入时,所需要的时间与信息所在的位置无关。
C中高速缓存和寄存器的物理实现是集成在CPU中,这两部分不属于冯诺依曼体系中的五大部分的任意一个部分。
D中2秒都保留不住马上丢失3、下列关于BIOS的说法哪个是正确的:A) BIOS是计算机基本输入输出系统软件的简称。
B) BIOS包含了键盘、鼠标、声卡、显卡、打印机等常用输入输出设备的驱动程序。
C) BIOS一般由操作系统厂商来开发完成。
D) BIOS能提供各种文件拷贝、复制、删除以及目录维护等文件管理功能。
【分析】选A其实bios=Basic Input Output System。
中小学生程序设计挑战赛初赛测试题1.1946年在美国宾夕法尼亚大学问世的 ENIAC 计算机主要由()器件组成。
[单选题] *A. 晶体管B. 电子管(正确答案)C. 小规模集成电路D. 大规模集成电路2. 下列哪一个程序设计语言不支持面向对象程序设计()。
[单选题] *A.C++B.JavaC.PHPD.C(正确答案)3. 在 C++中,要定义一个存储字符型数据的变量,其合适的数据类型是()。
[单选题] *A.char(正确答案)B.floatC.doubleD.bool4.4KB 的内存能存储()个汉字的机内码。
[单选题] *A.1024B.2048(正确答案)C.512D.40965. 下列选项中,说法错误的是()。
[单选题] *A. 算法是指解决问题的方法和步骤B. 算法的描述方法有多种C. 算法是唯一的(正确答案)D. 算法的步骤是有限的6. 下列各种基本数据类型说明符中表示单精度实型数的是()。
[单选题] *A.intB.boolC.float(正确答案)D.char7. 下列选项中,属于计算机硬件系统的是()。
[单选题] *A.IE 浏览器B.QQC.WordD. 显示器(正确答案)8. 十进制数3.75转成二进制数是()。
[单选题] *A.10.01B.11.11(正确答案)C.10.11D.11.1019. 下列选项中,能用枚举算法求解的是()。
[单选题] *A. 计算平行四边形面积B. 求100 以内的素数(正确答案)C. 求一个四位数的个位D. 将二进制转换为十进制10. 如果a,b,c 均为整型变量,其中 a=7,b=8, 执行以下语句后,变量a,b 的结果与其它几项不同的是( )。
[单选题] *A.a=a+b;b=a-b;a=a-b;B.c=a+b;a=c-a;b=c-b;C.c=a*b;a=c/a;b=c/b;D.c=a;b=c;a=b;(正确答案)11. 在 C++中,把代数式(x+1)²写成 C++表达式,正确的是()。
全国计算机技术与软件专业技术资格(水平)考试2009年下半年程序员上午试卷(考试时间 9 : 00~11 : 30 共 150 分钟)1. 在答题卡的指定位置上正确写入你的姓名和准考证号,并用正规 2B 铅笔在你写入的准考证号下填涂准考证号。
2. 本试卷的试题中共有 75 个空格,需要全部解答,每个空格 1 分,满分75 分。
3. 每个空格对应一个序号,有 A、B、C、D 四个选项,请选择一个最恰当的选项作为解答,在答题卡相应序号下填涂该选项。
4. 解答前务必阅读例题和答题卡上的例题填涂样式及填涂注意事项。
解答时用正规 2B 铅笔正确填涂选项,如需修改,请用橡皮擦干净,否则会导致不能正确评分。
例题● 2009 年下半年全国计算机技术与软件专业技术资格(水平)考试日期是(88)月(89)日。
(88)A. 9 B. 10 C. 11 D. 12(89)A. 4 B. 5 C. 6 D. 7 因为考试日期是“11 月 4 日”,故(88)选 C,(89)选 A,应在答题卡序号 88 下对 C 填涂,在序号 89 下对 A 填涂(参看答题卡)。
●在Word中,利用(1)功能按钮,可以在画好的图形内填充颜色;在单击“绘图”工具栏上的“椭圆”按钮后,再按住(2)键进行绘制可确保绘出一个圆形(1)A. B. C. D.(2)A.Shift B.Ctrl C.Alt D.Tab●在下图所示的工作表中,若学生的最终成绩等于平时成绩的30%加上考试成绩的70%,那么应在E2单元格中填写(3),并(4)拖动填充柄至E7单元格,则可自动算出这些学生的最终成绩。
(3)A.C2*30%,D2*70% B.C2*30%:D2*70%C.SUM(C2*30%,D2*70%)D.SUM(C2*70%:D2*30%)(4)A.向水平方向 B.向垂直方向C.按住Shift键向水平方向D.按住Shift键向垂直方向●“”中的gov代表的是(5)。
2002年东莞市小学生计算机程序设计竞赛复赛试题说明:请将答案填在答题卡上,只交答题卡,时间9:00--11:00。
一、选择题:(每题1分,共5分)1、市政府号召大力发展IT产业,你知道IT指什么吗?①加工业②制造业③信息技术④计算机2、鼠标是一种①存储器②输出设备③输入设备④运算器3、世界第一台电子计算机是年研制成功。
①1900 ②1946 ③1956 ④19584、字符“3”的ASCII码为51,则字符“9”的ASCII值为①56 ②9 ③57 ④58二、判断题:(每题1分,共5分,答对√、错×)1、要重启动计算机可同时按Caps Lock、Alt、Del键()2、二进制数1101对应的十进制数为13()3、将公用电脑上的系统文件或他人文件删除,这是违反公共道德标准的行为()4、只要有了杀毒软件,就不怕计算机被病毒感染()5、用pascal语言编写的程序文件扩展名是pas()三、运行结果:(每题5分,共40分)1、var A,B,C:integer;S,X1,X2,X3:real;beginreadln( A,B,C);S:=(A+B+C)/3;X1:=S-A;X2:=S-B;X3:=S-C;S:=X1*X2+X2*X3+X3*X1;Writeln( ‘S=’;S);End.输入:10,20,30输出:2、label 10;var N :integer;A:array[0..10] of integer;beginN:=10;I: = 0; k: = 0;10 I: = I + 1;k := k + I;A[I]: = k;IF I < N THEN 10write A[5];end.输出:3、var t:integer;A ,B:array[0..5]of integer;beginFOR I = 1 TO 5 doBeginREAD( A[I], B[I]);NEXT IFOR I = 1 TO 4 dot:= A[I];A[I]:=A[I+1];A[I+1]:=t;t:= B[I];B[I]:=B[I+1];B[I+1]:=t;End;Write( A[I]+B[I]);END.输入:15,25,20,15,105,25,40,10,10输出:4、var A :array[1..6] of string;FOR I = 1 TO 6 doREAD A[I];X := 0;FOR J = 1 TO 6 doIF length(A[J]) > 7 THEN X: = X + 1;Write( X);END.输入:minute,zuantai,wait fly,wait down,already fly,already down 输出:5、var I,n,m:integer;begini: = 3;n: = 1;m: = 1;IF n <> m THEN goto 10i := i + 1;n: = n + 2;M:=I+N+M;IF n := m THEN goto 10;i := i – 1; n: = n + 2;M:=I+N+M;10 writeln( ‘M=’, M);END.输出:6、var I,k :real;A:array[0..10] of integer;beginFOR I := 4 TO 20 dobeginn := I div 2 + 1;FOR K := 2 TO n doIF I div K = I / K THEN A[K]: = A[K] + 1; End;Writeln( A[2]);END.输出:7、Label 70;avr a:array[0..10] of integer;beginFOR i: = 1 TO 10 doREAD a[i];FOR i: = 1 TO 9 doFOR j := i + 1 TO 10 dobeginIF a[i] <= a[j] THEN 70;W: = a[i];a[i]: = a[j];a[j]:= w;70 End;FOR i: = 1 TO 7 doIf I mod 3 =1 thenS:= S:+ a[i] + a[i + 1];Write(‘S=’; s);END.输入:4,2,5,7,5,1,6,7,4,7输出:8、var N,M,P,I,L,J:integer;ST:array[0..10] of integer;beginN:= 10;M:= 2;FOR I := 1 TO N doST[I] = 0;FOR P := 1 TO M dobeginREAD (I, J);FOR L: = I TO N - J doif L mod I =L mod I thenST[L + J] = ST[L + J] + 1;end;FOR I: = 1 TO N doIF ST[I] = M THENbeginwrite( I); I := N;end;end.输入:2,1,3,2输出:四、程序填空:(每空2分,共50分)1、验证如下猜想:从任一大于1的自然数N开始,若N为偶数(能被2整除的数称为偶数,否则为奇数),则将其除以2,N改为商的值,若N为奇数,则将N改为3N+1。
2009年东莞市小学生程序设计竞赛镇区选拨赛上机试题分析
一、最大的数
本题目利用穷举法求和,关键在于变量类型的设置。数据范围说明:60%的M的值小于等于30000,100%
的M的值小于等于1000000000. 求和的变量S用整型能过6个点,用长整型能过10个点。
主要程序如下:
s:=0; n:=1;
s:=s+n;
while s<=m do
begin
n:=n+1;
s:=s+n;
end;
n:=n-1;
二、有趣的等式
本题的解法有很多,最简单的用穷举法同样能把题目的10测试点全部通过。由于100%的数据N小于
等于1000,所以N的3次方的值不会超过1000000000,用长整型设置数据就可以了。
那么在这里说明一下参考程序的算法。从题目中 1^3=1=1, 2^3=3+5=8, 3^3=7+9+11=27,
4^3=13+15+17+19=64我们不难发现对于不同的N(N=1,2,3……),其首个奇数加数有如下规律:
1^3:1
2^3:3
3^3:7
4^3:13
5^3:21
1+(2)=3——3+(4)=7——7+(6)=13——13+(8)=21
我们发现在每两两奇数加数的差值是一个首项为2,公差为2的等差数列,因此我们可以通过等差数列求
和公式把对于N(N=2,3,4……)的首个奇数加数求出来,进而把其他奇数列出。
主要程序如下:
k:=n*n-n+1;{K为N的首个奇数加数}
for i:=1 to n do
begin
writeln(fout,k);
k:=k+2;
end;
如果学生不会运用等差数列公式,如下程序段同样可以达到目的:
read(n);i:=1;
for a:=1to n-1o
i:=i+2*a; {I为N的首个奇数加数}
for a:=1 to n do
begin m[a]:=i;
i:=i+2;
end;
三、猴子选大王
这是一道典型的约瑟夫问题,在08小学生程序设计比赛镇初赛中第二题中出现过,算法是一样的。
用数组元素表示n个猴子,猴子有两种状态:留在圈上或者退出圆圈。我们可以用设标记的方法区分这两种
状态,以确定留在圆圈上参加报数的猴子。
建立数组b[n],其下标代表开始报数时猴子所处的位置,当数组元素b[i]的值为true时,表示猴子在
圈上,当a[i]的值为flase时,表示猴子已经退出圆圈。
设立两个计数器,分别统计报数的情况k和圆圈中剩下的猴子数s。从第i个猴子开始报数,当某个
猴子所报数为m时,将代表猴子的数组元素置flase,打印该猴子的编号,并将圆圈中的猴子数s减1,当
圆圈中剩下的猴子数为1时,程序结束。
i:=1; k:=1; s:=n;
fillchar(b,sizeof(b),true);
while s>1 do begin
inc(i);
if i>n then i:=1; {当全部猴子报数完,又从第一只猴子开始重新报数}
if b[i] then begin
inc(k);
if k>m then k:=1; {当猴子报数超过M,又从1开始重新报数}
if k=m then begin {当报数到M,则对应的猴子出队}
b[i]:=false;
dec(s);
end;
end;
end;
四、聪明的小李
这是一道典型的贪心算法的题目,由于正整数N的有效数位为240位,所以很自然地采取了字符串类
型存储N。那么如何决定哪S位被删除呢?是不是最大的S个数字呢?为了尽可能逼近目标,我们选取的
贪心策略为:每一步总是选择一个使剩下的字符串最小的字符删去,即按高位到低位的顺序搜索,若各位数
字递增,则删除最后一个数字;否则删除第一个递减区间的首字符,这样删一便形成了一个新数字串.然后回
到串首,按上述规则再删除下一个数字.重复以上过程S次为止,剩下的数字串便是问题的解了.对于可能会出
现在串首的0情况或整个数字串都是0的情况要把无用的零删去。在这里我觉得还要注意的一个地方就是
题目中并无提及删去S位后的数字的长度为 length(n)-s,因此在考虑题目的时候不需要考虑每删除一个数
字后新的数字是否首位为0,只要满足删除一个数字后新的字符串为最小即可。
参考程序如下:
for a:=1 to s do
begin
bj:=0;
c:=length(n);
for b:=1 to c-1 do
if n[b]>n[b+1] then
begin
delete(n,b,1); {搜索第一个递增区间的末字符,然后删除}
bj:=1;
break;
end;
if bj=0 then delete(n,c,1); {
end;
while (n[1]='0') and (length(n)>1) do delete(n,1,1);{删除串首可能产生的无用0}