当前位置:文档之家› 宁波市第27届中小学生程序设计竞赛小学组初赛试题分析

宁波市第27届中小学生程序设计竞赛小学组初赛试题分析

宁波市第27届中小学生程序设计竞赛小学组初赛试题分析
宁波市第27届中小学生程序设计竞赛小学组初赛试题分析

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

小学组初赛试题

●●所有答案都必须写在答题纸上,写在试卷上无效●●

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

1)乐乐在记事本里打了“Happy Birthday!”,则它们在计算机内存储时采用的编码是:()。A)区位码 B)ASCII码 C)字形码D)条形码

分析:这题考的是对于计算机内存储编码的了解,选B

2)乐乐经常听MP3,由此他也学到了一些有关MP3的知识。下列有关MP3的信息中不正确的是:()。

A)表达同一首乐曲时,MP3格式的文件大小比 WAVE 格式要小得多。

B)MP3 声音是一种声音数字化之后经过压缩和编码技术处理得到的声音格式。

C)MP3 音乐所采用的声音数据压缩编码的标准是 JPEG 。

D)MP3 之所以得以流行,是因为 MP3 声音的质量好,存储容量小,便于传输与存储。

分析:显然JPEG是图片,而不是音乐,选C

3)下图所示是一个16×16点阵的发光LED字幕模块,假如使用1表示点发光、0表示点熄灭,那么这个发光LED字幕模块如果要在计算机内部完整地保存,在不进行压缩的前提下,最少需要的存储空间是:()。

A)8Byte

B)32Byte

C)8KB

D)32KB

分析:显然它可以用256位来存储,而一字节有8位,选B

4)在计算机系统中,数值一律用补码来表示(存储)。主要原因:使用补码,可以将符号位和其它位统一处理;同时,减法也可按加法来处理。那么在PASCAL系统中,-15用byte变量类型存储在计算机内,其二进制编码为:()。

A)10001111 B)00001111 C)11110000 D)11110001

分析:先确定符号位,因为它是负数,所以符号位为1,15转为二进制为1111,所以原码为10001111,在首尾两个1不变,其余取反,结果是11110001,选D

5)十进制数2012.25用二进制数表示的结果是:()。

A)(11111010101.1)2 B)(11111011100.01)2

C)(1111001000.01)2 D)(11111001000.1)2

分析:2012/2=1006 0

1006/2=503 0

503/2=251 (1)

251/2=125 (1)

125/2=62 (1)

62/2=31 0

31/2=15 (1)

15/2=7 (1)

7/2=3 (1)

3/2=1 (1)

1/2=0 (1)

所以(2012)10=(11111011100)2

0.25*2=0.5 0

0.5*2=0 (1)

所以(0。25)10=(0.01)2

即(2012。25)10=(11111011100.01)2,选B

6)乐乐在参加信息学奥赛的学习过程中,想在因特网上与他人进行即时讨论、交流,则下列工具中最适合的是:()。

A)E-mail(电子邮件) B)BBS(电子公告栏) C)QQ D)博客(Weblog)

分析:由“即时”可知是QQ,选C

7)下列不属于程序设计三种基本控制结构的是:()。

A)顺序结构 B)递归结构 C)分支结构 D)循环结构

分析:程序设计三种基本控制结构是顺序结构、分支结构和循环结构,故B不是,选B

8)胡老师发送电子邮件时失败了,根据下图所示信息,导致发送失败最有可能的原因是:()。A)主题错误 B)没有附件 C)收件人地址错误 D)邮件正文太少

分析:这题考的是邮箱地址的格式,正确的应该是…@….com,所以很明显地址错了,选C

9)下面是乐乐对计算机的一些操作,能有效预防计算机病毒侵入的是:()。

①对下载的文件马上杀毒②打开QQ上陌生人信息中的链接补丁

③及时升级杀毒软件和病毒防火墙④及时修复系统漏洞⑤随意打开来历不明的邮件

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

分析:看到②中的“陌生人”三字以及⑤中的“随意”二字,就知道②⑤不是的,选B

10)设A=B=D=true,C=false,以下逻辑运算表达式值为真的是:()。

A)( not A and B ) or ( C and D ) B)( A or B or D ) and C

C)not A and ( B or C or D ) D)( A and B and C ) or D

分析:这题考的是对于逻辑运算的掌握,其中not的优先级最高,and第二,or第三,另外not 是取反,and是有一个false结果就是false,否则是true,而or是有一个true结果就是true,否则是false,举A为例子,先代入(not true and true) or (false and true),先算not true,结果为false,再算两个括号里的,都是false and true,结果为false,最后false or false,结果还是false,同理得B和C的结果也是false,只有D为true,选D

11)下列文件扩展名为图片格式的是:()。

A).doc B).jpg C).txt D).swf

分析:.doc是文档的扩展名,.jpg是图片的扩展名,.txt是文本的扩展名,.swf是动画的扩展名,选B

12)高度为n的均衡二叉树是指:如果去掉最低层叶结点及相应的树枝,它的每一层都将达到“满”的状态,即除了最底下一层的节点,其它各层所有节点都有两个儿子。在这里,树高等于叶结点的最大深度(根结点的深度为0)。下图为一棵深度为2的均衡二叉树。

如果某均衡的二叉树共有256个结点,则该树的树高为:()。

A) 6 B) 7 C)8 D) 9

分析:根据题目可以知道一棵均衡二叉树若有N各节点,则树高为[log2N],其中[a]指小于等于a的最小整数,把数据带入得树高为8,选C

13)已知队列中依次存在下列元素(13,2,11,34,41,77,5,7,18,26,15),若第一个出队列的元素是13,则第五个出队列的元素是:()。

A) 5 B) 41 C) 77 D) 13

分析:因为第一个出队的是13,所以第五个出队的就是第五个数即41,选B

14)在一次运动会上,某组 6 位选手的百米成绩(单位:秒)分别是“ 14.1 、 12.3 、 11.2 、14.8 、 13.9 、 11.0 ”,若使用冒泡排序法将该组的成绩按第一名、第二名、第三名……的顺序排序,则第一趟冒泡后的顺序是:()。

A) 12.3 11.2 14.1 11.0 13.9 14.8

B) 12.3 11.2 14.8 13.9 11.0 14.1

C) 14.1 12.3 11.2 14.8 13.9 11.0

D) 11.0 14.1 12.3 11.2 14.8 13.9

分析:冒泡排序是将相邻的两个数进行比较,从题目可知要从小到大排,具体过程见表格,选D 次数数列交换情况

开始14.1 12.3 11.2 14.8 13.9 11.013.9>11.0,要进行交换

第1次14.1 12.3 11.2 14.8 11.0 13.9 14.8>11.0,要进行交换

第2次14.1 12.3 11.2 11.0 14.8 13.9 11.2>11.0,要进行交换

第3次14.1 12.3 11.0 11.2 14.8 13.9 12.3>11.0,要进行交换

第4次14.1 11.0 12.3 11.2 14.8 13.9 14.1>11.0,要进行交换

结束11.0 14.1 12.3 11.2 14.8 13.9 交换结束

15)上题中的六位选手成绩,通过纯粹的冒泡排序进行处理,则6个成绩排序结束,数据进行两两交换的总次数为()次。

A) 8 B) 10 C)12 D)14

分析:这题其实就是让你求原序列中逆序对的个数,其中逆序对是指在a数列中,ai>aj但i<j的一对数,因为原序列中逆序对有4+2+1+2+1+0=10对,所以要交换10次,选B

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

1、乐乐邀请了班上15位同学参加他的生日派对,他买了一些棒棒糖分给同学吃,这些棒棒糖正好平分给15位同学。生日那天有3位同学临时有事没来。这样,这些棒棒糖就被12位同学平分了,因此这些同学比原来计划多分了1颗棒棒糖。问:乐乐买的棒棒糖数量是颗。分析:设共有X颗棒棒糖,由题意得X÷15+1=X÷12,得X=60,所以乐乐买了60颗棒棒糖

2、有一次,韩信带领1500名将士与楚王大将李锋交战。苦战一场,楚军不敌,败退回营,韩信部下也死伤将近五百人。在韩信整顿兵马返回大本营路上,忽有后军来报,说有楚军骑兵追来。韩信见来敌不足五百骑,便急速点兵迎敌。他命令将士3人一排,结果多出2名;接着命令将士5人一排,结果多出4名;他又命令将士7人一排,结果又多出5名。韩信马上向将士们宣布:我军至少有名勇士,以众击寡,一定能打败敌人。

分析:设我军共有X人,因为3人一排多2人,5人一排多4人,所以3人或5人一排少1人,即X=15K-1(K为正整数),因为X≥1000,所以K≥67,经尝试当K=69即X=1034时,X最小且符合7人一排多5人,所以我军至少有1034名勇士

三.阅读程序并写出运行结果(6+8+8+10=32分):

1.program test1;

var a,b,n:longint;

begin

readln(n);

a:=0;

b:=0;

repeat

a:=a+1;

b:=b+a;

until b>=n;

writeln(a);

end.

输入1:

5

输出1:

输入2:

50

输出2:

分析:这题是让你求出最小的a,使前a个正整数的和不小于n,因为1+2=3<5,1+2+3=6>5,所以第一空填3,同理第二空填10

2.program test2;

var a,b,f:integer;

function gd(m,n:integer):integer;

begin

if n=0 then gd:=m

else gd:=gd(n,m mod n);

end;

begin

readln(a,b);

f:=gd(a,b);

writeln(f)

end.

输入1:

6 27

输出1:

输入2:

56 72

输出2:

分析:一看函数名就可知此题是求最大公约数,用的是辗转相除法,所以分别填3和8

3.program test3;

var

i,j,k,n:integer;

a:array[1..100]of boolean;

begin

read(n);

for i:=1 to n do a[i]:=true;

for i:=1 to n do

begin

j:=i;

while j<=n do

begin

a[j]:=not(a[j]);

j:=j+i;

end;

end;

for i:=1 to n do

if a[i]=true then write('0',' ')

else write('1',' ');

end.

输入:8

输出:

分析:这题是求出1到n每个数的约数个数的奇偶性,偶数则输出0,否则输出1,又因为只有完全平方数的约数个数是奇数,所以这题又变为1到n中是完全平方数的输出1,否则输出0,故答案是1 0 0 1 0 0 0 0

4.program test4;

var a,b:array[1..1000] of integer;

i,j,t,h,n,e:integer;

begin

readln(n);

for i:=1 to n do a[i]:=i;

a[1]:=1;h:=2;t:=n;b[1]:=1;e:=n;

for i:=2 to n do

begin

for j:=1 to 2 do

begin

if h=e+1 then

begin

e:=e-i+1;

break

end;

inc(t);

a[t]:=a[h];

inc(h);

end;

b[a[h]]:=i;inc(h);

end;

for i:=1 to n do

write(b[i],' ');

end.

输入:10

输出:

分析:这是一道类似于约瑟夫的问题,从排头到排尾1、2、3报数,报到1就出队,不同之处在于每次报到排位之后重新从排头开始报数,具体不在此模拟,答案是1 5 7 2 9 6 3 10 8 4

四.程序填空(前5空每空2分,后6空每空3分,共28分)

神舟九号飞船(以下简称神九)(计划发射中)是一艘载人宇宙飞船,是中国“神舟”号系列飞船之一。担负此次任务的飞行乘组将由3名航天员组成。神舟九号是中国的第一个宇宙实验室项目921-2计划的组成部分。根据任务计划,神舟九号飞船将于今年6月至8月择机发射,与在轨运行的天宫一号目标飞行器进行载人交会对接。航天员将进入天宫一号工作和生活,开展相关空间科学实验,在完成预定任务后返回地面。对接过程中,将实现航天员手控交会对接,全面验证交会对接技术。

神舟九号主要有以下职能:

第一,用做货运飞船。用于搭载水,食物,推进剂和试验设备。

第二,用做紧急逃生飞船(救生船)。

第三,进行载人空间对接。

神舟九号将搭载大量的物品进入太空进行空间实验,其中有两大问题需要同学们帮忙解决。

1.【物品身份识别】

为了提高装载物品的效率与准确性,科学家们采用了人工智能装载技术——机器通过对物品上的条码扫描来确定物品的身份,然后来确定是否需要装载。为了确保读入条码的无误,在条码后面增设了一位作为校验位。通过一系列计算之后若计算结果与末尾校验位上的数值相同即为读入条码准确,反之重读。

校验位计算公式方法如下:

(1)代码位置序号

代码位置序号是指包括校验码在内的,由右至左的顺序号(校验码的代码位置序号为1)。

(2)计算步骤

校验码的计算步骤如下:

a、从代码位置序号2开始,所有偶数位上的数字代码求和。

b、将步骤a的和乘以3。

c、从代码位置序号3开始,所有奇数位的数字代码求和。

d、将步骤b与步骤c的结果相加。

e、用大于或等于步骤d所得结果且为10的最小整数倍的数减去步骤d所得结果即为所求校

验码的值。

步骤举例说明(其中的x表示校验位数字)

(1)自右向左顺序编号位置序号 13 12 11 10 9 8 7 6 5 4 3 2 1

代码 9 7 8 7 5 6 4 0 0 1 4 5 X

(2)从序号2开始求出偶数位数字之和 5+1+0+6+7+7=26 ①

(3)①式中的结果26乘以3 26×3=78 ②

(4)从序号3开始求出奇数位数字之和4+0+4+5+8+9=30 ③

(5)将②式和③式中的结果相加 78+30=108 ④

(6)用大于或等于④式中108且为10最小整数倍的数减去④式结果。即:110-108=2,其差即为所求校验码的值校验码X=2

输入说明,输入13个数,为商品扫描器读入值,中间用空格隔开。

输出说明,第一行包含一个整数,表示校验位计算值。第二行输出true或false,表示商品扫描器读入是否正确。

【输入样例1】

9 7 8 7 5 6 4 0 0 1 4 5 2

【输出样例1】

2

true

【输入样例2】

9 7 8 7 5 6 4 0 0 1 4 5 3

【输出样例2】

2

false

请按上述说明将下列程序补充完整。

var d:array[1..13] of 0..9;

i,s:integer;

begin

for i:=13 downto 1 do read(d[i]);

readln;

for ①do {由第9行的i:=3 to 13,可以推出这空填i:=2 to 12}

if i mod 2=0 then s:=②;{由第9行的s+d[i],可以推出这空填s+d[i]}s:= ③;{根据题意偶数位数字之和还要乘3,填s*3}

for i:=3 to 13 do if ④then s:=s+d[i];{由第7行的i mod 2=0,可以推出这空填i mod 2=1}

s:=s mod 10;

if s<>0 then s:=10-s;

writeln(s);

if ⑤then write('true'){判断校验码是否正确,填s=d[1]}

else write('false');

end.

2.【物品选择】

神舟九号将搭载三名航天员进入天宫一号进行为期十几天的空间科学实验和生活,这在我国航天史上是前所未有的。它需要搭载水,食物,推进剂和试验设备等进入太空。由于火箭燃料费用很高,飞船的空间与载重能力又有限。所以科学家必须选择最有必要带入太空进行本次试验的物品进行装载。科学家通过一段时间的研究分析,对带入太空的物品测定了三个参数:体积V、重量W、必要度K。如甲物品必要度为50,乙物品的必要度为30,那么火箭搭载甲、乙物品所取得的必要度为80。现在科学家需要设计一个程序,在给定飞船所能搭载物品最大体积与最大重量的情况下,选择合适的物品进行搭载以取得最大搭载必要度总和。(注:物品不能进行分割。所搭载物品体积之和、重量之和分别不能超过飞船所能搭载物品最大体积与最大重量)输入说明,第一行包含两个数,依次表示飞船所能搭载物品的最大体积和最大载重量,第二行包含一个整数,表示可供选择的物品数量N(不超过99),第三行至第2+N行每行三个整数,依次表示每个物品的体积(<50000)、重量(<50000) 和必要度(<50000)。

输出说明,包含一个整数,表示所能达到的最大必要度总和。

【样例输入】

320 350

4

160 40 120

80 110 240

220 70 310

40 400 220

【样例输出】

550

请按上述说明将下列程序补充完整。

var

i,j,n:integer;

tw,tv,maxk,temp_v,temp_w,temp_k:real;

b,temp:array[1..100]of integer;

v,w,k:array[1..100]of real;

begin

readln(tv,tw);

①;{这空很简单,填readln(n)}

for i:=1 to n do readln(v[i],w[i],k[i]);

maxk:=0;

for i:=1 to 100 do b[i]:=0;

while ②do{这句是判断是否还有取的办法,在其余几空填出后进行模拟,这样不难得出这空应该填b[n+1]=0}

begin

i:=1;

while b[i]=1 do inc(i);

b[i]:=1;

for ③do b[j]:=0;{由上文可知,它每次都是从前面开始更新的,所以加上理解可以得出这空应填i:=1 to i-1}

temp_v:=0;temp_w:=0; ④;{由前面可知,填temp_k:=0}

for j:=1 to n do

if ⑤then{由上文可知,1表示取,0表示不取,填b[j]=1}

begin

temp_w:=temp_w+w[j];

temp_v:=temp_v+v[j];

temp_k:=temp_k+k[j]

end;

if (temp_v maxk) then

begin

⑥;{这空是为了更新maxk的最大值,填maxk:=temp_k}

for j:=1 to n do

temp[j]:=b[j];

end;

end;

writeln(maxk:0:0);

end.

分析:这题中取物的方法比较特别,用了类似二进制的方法

宁波市第22届中小学生计算机程序设计竞赛决赛试题

宁波市第22届中小学生计算机程序设计竞赛决赛试题 (小学组) 考生须知: 1、考试时间为150分钟,满分300分。 2、考生不得携带任何存储设备。 3、考试开始前,请先确定D盘内容不会被还原,如有问题请监考老师解决。 4、上机考试时要随时注意保存程序。 5、每题都必须提交源程序和编译后的可执行程序(程序的命名办法见每题中的规定), 且必须存放到指定的文件夹内(放错位置的视为无效)。测试时,以源程序为准。 6、考试结束后,不得关机,否则后果自负。 试题一:最小数(100分) (源程序名:或或,编译后可执行程序名:) 【问题描述】 给定一个正整数n,请去掉其中的m个数字,使其剩下的数字按原先从左到右的相对次序组成一个新数,但该新数的值必须尽可能的小。 【输入】 输入文件中只有一行,共2个整数,分别是n和m的值,中间用一个空格分隔。 【输出】 输出文件中只有一行,该行只有一个整数,它是从n中去掉m个数字后所能得到的最小新数(注:如果新数的最高位是零,输出时请去掉这些零)。

【数据限制】 本题共有10组测试数据,每组10分,共100分。 50%的数据, 10≤n≤*109,另外50%的数据n不超过240位; 所有的数据m的值都小于n的位数。 试题二:等式(100分) (源程序名:或或,编译后可执行程序名:) 【问题描述】 有一个未完成的等式:1 2 3 4 5 6 7 8 9=N 当给出整数N的具体值后,请你在2,3,4,5,6,7,8,9这8个数字的每一个前面,或插入一个运算符号“+”号,或插入一个运算符号“-”号,或不插入任何运算符号,使等式成立,并统计出能使等式成立的算式总数,若无解,则输出0。 例如:取N为108时,共能写出15个不同的等式,以下就是其中的二个算式: 1+23+4+56+7+8+9=108 123-45+6+7+8+9=108 【输入】输入文件中只有1个数,即整数N的值。 【输出】输出文件只有一行,该行只有1个数,表示能使等式成立的算式总数。 【数据限制】 本题共有10组测试数据,每组10分,共100分,对于所有的n,-30000≤n≤1000000 试题三:旅行(100分) (源程序名:或或,编译后可执行程序名:) 【问题描述】 某趟列车的最大载客容量为V人,沿途共有n个停靠站,其中始发站为第1站,终点站

C语言程序设计竞赛题及其答案

数学与统计学院 第三届计算机程序设计竞赛题 竞赛需知: 1、答案必须写在答题纸上。 2、程序采用C/JAVA/VB/VFP语言实现均可。 3、考虑到各种因素,程序的键盘输入和结果输出可以用伪代码或者自然语言表示。但是必 须说明输入变量和输出变量。 4、题目最好能用完整、正确的语言程序来解决问题,如确实无法编写完整语言程序的,可 以写出程序主要框架和流程,必要时可以用伪代码或者自然语言描述算法(程序)。 一、玫瑰花数(20分) 如果一个四位数等于它的每一位数的4次方之和,则称为玫瑰花数。例如: + + 1634+ =, 4^4 4^3 4^6 4^1 编程输出所有的玫瑰花数。 #include void main() { int i,j,k,l,m; for(i=999;i<=9999;i++) { j=i/1000; k=i%10; l=i/100-10*j; m=i/10-100*j-10*l; if(i==j*j*j*j+k*k*k*k+l*l*l*l+m*m*m*m) printf("%d\n",i); } } 二、菱形图案(20分) 对给定的奇数n,编程打印菱形图案。 输入样例: 7 输出样例: * *** ***** ******* ***** *** * #include #include void main() {

int i,j,k; int n; scanf("%d",&n); for(i=0;i #include void main() { int i,j,x,y; float r; int a,b,count=0; printf("请输入矩阵的行列i,j:"); scanf("%d%d",&i,&j); printf("请输入圆心的坐标点及半径x,y,r:"); scanf("%d%d%f",&x,&y,&r); for(a=0;a

程序设计大赛致辞稿(精选多篇)

程序设计大赛致辞稿(精选多篇) 第二届涂鸦大赛领导致辞稿 各位老师、亲爱的同学们: 大家,下午好: 很高兴今天下午能够与大家相聚于校园文化广场,同时也很期待大家的涂鸦作品新鲜出炉,在这里,我想对在场的每一位同学说三句话。 我的第一句话:你们都是好样的。为什么这样讲?因为我觉得现在站在赛场上的,那些手拿笔墨纸砚的同学们,你们是勇敢与自信的;那些胸前挂着工作牌的同学们以及背后默默地工作者们,你们辛苦了;那些走在文化广场能停下脚步观看本次活动的同学们,我也要感谢你们的大力支持。 我的第二句话呢,我想谈一下我对涂鸦的认识。涂鸦,它起源于20世纪60年代美国的费城和宾夕法尼亚州的graffiti。听说制作者将自己的绰号以及自家门牌号之类涂绘于墙面等介质上,后来扩大到汽车、火车和车站站台等不同表面上做graffiti,墙不再是唯一的介质。而今,我们现在所在的现场是我院第二届涂鸦大赛现场,我认为本届“我的生活我涂鸦”第二届涂雅大赛不仅增强了我院大学生的创新意识和创新素养,而且激发了青年学生的创意资源与成果,引导大学生以创造的激情、创新的思

维、创意的形式描绘了我们多彩的交院生活,为搭建大学生创意能力的培养平台、为营造良好的校园文化氛围发挥了重要作用。 下面是我的最后一句话:预祝第二届涂鸦大赛取得圆满成功。 谢谢大家 全文结束》》xx程序设计大赛通讯稿 为进一步加强学校教学质量工程建设,提高学生的创造力及运用计算机技术解决实际问题的综合能力,培养学生的创新思维与合作精神,激发广大同学学习程序设计的热情与兴趣,xx年11月26日由淮南师范学院教务处主办,计算机与信息工程系承办,院计算机协会协办的第二届程序设计大赛在校图书馆六楼举行。本次比赛的组委会主任xxx老师,副主任xxx老师、xx老师,大赛组委会成员xx老师、xx老师、xx老师和组委会秘书xx老师出席了本次比赛。本次比赛的选手是来自我院各届学生共计77人。 本次比赛是以c语言和java语言为主要程序设计语言,共计5题,比赛时长为三小时,比赛强调参赛者计算机程序设计的专业素质,重点考察参赛者程序设计语言、计算理论等相关知识及综合应用能力。每人在规定时间内答题数量最多的人胜出,相同答题数量以最快完成答题的胜出,比赛过程中,选手们热情高涨,信心足地将一个个难题攻克,到了比赛的中间阶段,有的选手在为自己未能编出的程序而绞尽脑汁,有的

大学生程序设计竞赛

关于举办中南大学第八届大学生程序设计竞赛的通知 各二级单位: ACM国际大学生程序设计竞赛(ACM/ICPC:ACM International Collegiate Programming Contest)是由国际计算机界历史悠久、颇具权威性的组织ACM学会主办,是世界上公认的规模最大、水平最高的国际大学生程序设计竞赛。 为培养和激励我校大学生的创造力、团队合作精神以及在计算机程序开发过程中的创新意识,为湖南省及ACM国际大学生程序设计竞赛(ACM/ICPC)做好选拔工作,并促进“ACM国际大学生程序设计竞赛”、“湖南省大学生程序设计竞赛”活动在我校的开展,经研究决定,举办中南大学第八届大学生程序设计竞赛。 一、参赛对象 所有全日制在校本科生均可组队参赛。参赛队伍每队3名正式队员,每支队伍可取1个有特色的名称,名称自定。 二、比赛规则 1、竞赛试题:11题(中文题5道、英文题6道)。 2、比赛时间:5小时。 3、每支队伍使用一台计算机,竞赛所用编程语言为C、C++、Java,操作系统为Windows。 4、竞赛时,允许参赛队员携带源代码、参考书、手册、字典等纸质参考资料,不准携带任何电子工具和电子媒质资料。 5、试题的解答通过网络提交,每一次提交会被判为正确或者错误,判决结果会及时通知参赛队伍。 6、正确解答一道题及一道题以上的队伍有资格参加排名。如果多支队伍解题数目相同,则根据总用时加入惩罚时间进行排名。从竞赛开始到试题解答被判定为正确为止所花的时间为每道试题的用时,其间每一次错误提交将被加罚20分钟,未正确解答的试题不计时。 7、参赛队员有权通过提交解释请求,针对题目描述中的不明确或错误的部分提问。如果裁判确认题目中确实存在不明确或错误的部分,将会通告所有参赛队伍进行声明或更正。 8、在竞赛中,参赛队员不得和同组成员或竞赛组委会指定工作人员以外的人交谈。 9、本次比赛将邀请部分校外队伍过来参赛,校外队伍不参与评奖,供大家交流学习。 三、奖项设置 大赛设一等奖、二等奖、三等奖三个奖励等级,由学校颁发证书。其中,一等奖、二等奖和三等奖数额分别按照实际参赛队数目的10%、15%和20%设置。 四、队伍选拔 凡是获得一等奖、二等奖的队伍均可报名参加ACM集训队暑期集训及选拔,以备战湖南省大学生计算机程序设计竞赛和 ACM/ICPC各项赛事。 五、报名事项及比赛时间安排 此次比赛采用网络报名,带学生证参赛的方式。各参赛队请于2014年4月3日至4月15日登录ACM比赛报名系统 (https://www.doczj.com/doc/3d12669527.html,/bm/)注册账号并报名参赛。 参赛队员均可申请加入校赛的官方交流和通知群:168549267,申请时请注明专业班级、姓名。报名截止后参赛队伍名单将在QQ群、中南大学ACM官网(https://www.doczj.com/doc/3d12669527.html,/)上公布。 参赛队员可以参考参赛指南(https://www.doczj.com/doc/3d12669527.html,/csuacm/8th-csucpc-help/)进行赛前相关训练。 竞赛宣讲会时间:2014年4月13日14:30,地点:校本部民主楼小礼堂。 热身赛时间:2014年4月19日(周六)15:00—17:00,地点:新校区综合实验楼4楼(注:请务必参加热身赛)。 正式比赛时间:2014年4月20日(周日)9:00—14:00,地点:新校区综合实验楼4楼。 颁奖及试题讲解时间:2014年4月20日(周日)14:30,地点:新校区教学楼。 本科生院 2014年4月3日附件信息 关闭页面

江北区第九届中小学生计算机程序设计竞赛

江北区第九届中小学生计算机程序设计竞赛 比赛时间:2016年1月9日下午13:30—16:00 题目一览 注意: 一、关于竞赛中编程语言使用的规定参照中国计算机学会公布的《关于NOI系列赛编程语言使用限制的规定》。 二、评测环境为windows。

1.数列(s.pas/cpp/c) 【问题描述】 有一列数:1,1,3,8,22,60,164,448……其中的前三个数是1,1,3,从第四个数起每个数都是这个数前面两个数之和的2倍。那么,你可以很容易地得到这个数列中的第K个数是多少。 【输入s.in】 只有一行,一个数k,表示要询问的是数列中的第k个数。 【输出s.out】 只有一行,一个数n,表示数列中的第k个数的值是n。 【输入样例】 5 【输出样例】 22 【数据规模】 30%的数据,1<=k<=8 100%数据,1<=k<=45

2.伙伴(friend.pas/cpp/c) 【问题描述】 近来,程序社团开始“创客”——用程序来开发一种“找伙伴的数字游戏”。这个伙伴游戏将玩家分为A和B二组。每组每个玩家可以得到一个数字号码。 游戏规则是这样的:A组里的每个人的数字与B组里每个人的数字进行“数字配对”——即加法运算,若运算的结果恰巧是B组内其他玩家手捏的数字号码,那么游戏就可以累计一个分值,这个分值就是B组内这个“恰巧”的数字号码。当然,在B组内“恰巧”的数字号码可能不止一个,游戏允许再次累计。 比如加法运算后的“恰巧”的数字是3,而B组内共有2个玩家捏有此数字,那么本组就可以得到6分。 你是游戏的开发者之一,你需要迅速计算出找伙伴游戏的最终得分。 【输入friend.in】 第一行有二个数字n和m,分别表示A组和B组的人数。 第二行有n个整数ai,每个整数之间有一个空格,表示n个玩家手中的数字号码。 第三行有m个整数bi,每个整数之间有一个空格,表示m个玩家手中的数字号码。 【输出friend.out】 只有一行,一个数字s,表示游戏的最终分数。 【输入样例1】 3 3

ACM国际大学生程序设计竞赛指南

ACM国际大学生程序设计竞赛指南 2008年09月29日星期一 01:01 一、ACM竞赛介绍及规则 ACM/ICPC(国际大学生程序设计竞赛)是由ACM(Association for Computing Machinery,美国计算机协会)组织的年度性竞赛,始于1970年,是全球大学生计算机程序能力竞赛活动中最有影响的一项赛事。ACM/ICPC采用赛区选拔的方式产生参加世界决赛学校的资格,2001年,来自全球超过25个地区1141所大学的2362支队伍参加了第26届ACM/ICPC的赛区竞赛。在2002年3月,来自世界各地的约60支队伍,200多名选手参加了夏威夷总决赛的角逐。可以说,ACM国际大学生程序设计竞赛是参赛选手展示计算机才华的广阔舞台,是著名大学计算机教育成果的直接体现,是信息企业与世界顶尖计算机人才对话的最好机会。在过去十几年中,世界著名信息企业 APPLE、AT&T、MICROSOFT和IBM分别担任了竞赛的赞助商。中国大陆高校从1996年开始参加ACM/ICPC亚洲预赛,前五届 ACM/ICPC亚洲区选拔赛在上海设有赛区,由上海大学主办。2002年,第六届ACM/ICPC亚洲预赛将该在北京设赛区,由清华大学主办。第七届竞赛将于2002年10月在清华园拉开帷幕,预计将有超过60所国内外著名大学的上百支队伍参加本次竞赛(这也是北京工业大学首次参加此项赛事)。 ACM 竞赛规定,教练是参赛队伍所代表学校的正式教师,每支队伍最多由三名参赛队员组成,每支队伍中至少有两名参赛队员必须是未取得学士学位或同等学历的学生,取得学士学位超过两年,或进行研究生学习超过两年的学生不符合参赛队员的资格,任何参加过两次决赛的学生不得参加地区预赛或者世界决赛。 二、竞赛组织 竞赛在由各高等院校派出的3人一组的队伍间进行,分两个级别。参赛队应首先参加每年9月至11月在世界各地举行的“区域竞赛(regional contest)”。各区域竞赛得分最高的队伍自动进入第二年3月在美国举行的“决赛(final contest)”,其它的高分队伍也有可能被邀请参加决赛。每个学校有一名教师主管队伍,称为“领队”(faculty advisor),他负责选手的资格认定并指定或自己担任该队的教练(coach)。每支队伍最多由三名选手(contestant)组成,每个选手必须是正在主管学校攻读学位并已读完至少一半时间的学生。每支队伍最多允许有一名选手具有学士学位,已经参加两次决赛的选手不得再参加区域竞赛。 三、竞赛形式与评分办法 竞赛进行5个小时,一般有6—8道试题,由同队的三名选手使用同一台计算机协作完成。当解决了一道试题之后,将其提交给评委,由评委判断其是否正确。若提交的程序运行不正确,则该程序将被退回给参赛队,参赛队可以进行修改后再一次提交该问题。程序运行不正确是指出现以下4种情况之一: (1)运行出错(run-time error); (2)运行超时〔time-limit exceeded); (3)运行结果错误(wrong answer); (4)运行结果输出格式错误(presentation error)。 竞赛结束后,参赛各队以解出问题的多少进行排名,若解出问题数相同,按照总用时的长短排名。总用时为每个解决了的问题所用时间之和。一个解决了的问题所用的时间是竞赛开始到提交被接受的时间加上该问题的罚时(每次提交通不过,罚时20分钟)。没有解决的问题不记时。美国英语为竞赛的工作语言。竞赛的所有书面材料(包括试题)将用美国英语写出,区域竞赛中可以使用其它语言。总决赛可以使用的程序设计语言包括pascal,c,c++及java,也可以使用其它语言。具体的操作系统及语言版本各年有所不同。 四、竞赛奖励情况 总决赛前十名的队伍将得到高额奖学金:第一名奖金为12000美元,第二名奖金为6000美元,第三名奖金为3000美元,第四名至第十名将各得到l500美元。除此之外还将承认北美冠军、欧洲冠军、南太平洋冠军及亚洲冠军 五、关于竞赛的题型分析

大学生计算机编程大赛活动策划书

大学生计算机编程大赛活动策划书导读:本文是关于大学生计算机编程大赛活动策划书,希望能帮助到您! 为推进学院素质教育,提高大学生的科学素养,拓展我院学生的综合素质,丰富大学生的校园文化生活,营造浓郁的学术、科技氛围,进一步培养学生的创新意识、创新精神和创新能力。软件协会开展以“勤奋学习,创新实践”为主题的大学生计算机编程大赛。主要内容如下: 一、大赛宗旨 旨在培养和激励高校学生的创造力、团队合作精神以及在软件开发过程中的创新能力。同时此次大赛将视为对明年的省高校杯的一次演练,提高广大学生开展计算机软件设计的兴趣和能力,,给广大在计算机程序设计方面有特长的同学提供展示才能的舞台。通过参赛,检验学生在压力下进行开发的能力,展示其创新能力,为加强校内同学间的交流和相互学习提供机会。 二、参赛对象参赛者均为广东科贸职业学院信息工程系在校学生。 三、参赛形式和报名方法1.本次竞赛采取团队报名的形式 2、参赛团队填写报名表(报名电子表发送到信工系各班团支书)。 3、由各班团支书负责统一收集参赛团队报名表,并在规定的报名时间内将本班参赛者报名表交到负责人处,逾期不收。

其他详细信息可留意软件协会官方博客: 四、比赛方式及要求1、本次竞赛的内容是根据拟定项目或者根据现实需要自行设计一个项目参与本次大赛项目评比。 2、比赛时间为三个星期,参赛团队须在规定时间内完成。 3、比赛期间选手可以翻阅相关的工具书。 4、参赛者应尊重自己的劳动成果,严禁将自己的作品拿给他人抄袭,严禁抄袭他人的作品。(违反此条例者,将追究其相关责任) 5、比赛期间不局限于参赛者使用何种技术体系,不局限于使用何种开发工具及操作系统。 项目评比参考: ?项目的稳定性、项目的实用性 ?项目使用的技术框架及开发平台 ?项目代码编写的标准及是否强壮 结果评定:比赛排名根据项目评比的成绩的总和得出。 五、活动时间安排 3、项目评比:12月下旬 (注:以上时间和地点安排可根据实际情况另行更改) 六、奖项设置一等奖(1名):500元、荣誉证书 二等奖(1名):300元、荣誉证书 优胜奖(若干):大赛精美纪念品注:本次竞赛奖项设置为证书和物质奖励 1、本次竞赛安排如有变动,另行通知。 2、本次大赛未尽事项的解释权归属广东科贸职业学院软件协

宁波市第25届中小学生计算机程序设计竞赛复赛试题(小学组)

中小学生计算机程序设计竞赛复赛试题(小学组) 题目一览 关于竞赛中不同语言使用限制的说明 一.关于使用Pascal语言与编译结果的说明 1.对于Pascal语言的程序,当使用IDE和fpc编译结果不一致时,以fpc的编译结果为准。 2.允许使用数学库(uses math子句),以及ansistring。但不允许使用编译开关(最后测试时pascal的范围检查开关默认关闭:{$R-,Q-,S-}),也不支持与优化相关的选项。 3.本次比赛允许使用64位整数类型:int64或qword。 1. 折纸(folding) 【题目描述】 小猪上幼儿园的时候,报名参加了折纸兴趣小组。他表现出了极大的热情,折出了n件折纸作品。他的作品只有3种,分别是长方形、正方形和三角形。 小猪很想知道他的n件折纸的周长之和。 【输入】 输入文件folding.in的第一行只有一个整数n,表示共有n件作品。 接下来n行,每行有若干个以空格分隔的整数,表示一件作品的情况。其中第一个整数k (k=1或2或3),表示小猪制作的这件作品的类型,1表示长方形,2表示正方形,3表示三 a b c 三边长度分别为 a,b,c的三角形, 周长为a+b+c 相邻边长度分别为a和b 的长方形,周长为2a+2b b 形,周长为4a a a

角形。 如果k为1,后面会跟二个正整数a和b,表示长方形的二条相邻边的长度分别为a和b; 如果k为2,后面会跟一个正整数a,表示正方形的四条边的长度均为a。 如果k为3,后面会跟三个正整数a、b和c,表示三角形三条边的长度分别为a、b和c(输入数据保证a,b,c能构成三角形,不需验证)。 【输出】 输出文件folding.out中仅有一行,该行只有一个整数,表示所有作品的周长之和。【样例输入】 3 1 2 3 2 4 3 6 7 8 【样例输出】 47 【样例说明】 共有3件作品: 第一件作品:二条相邻边长度分别为2和3的长方形; 第二件作品:边长为4的正方形; 第三件作品:三条边长度分别为6、7、8的三角形。 这3件作品的周长分别为10、16、21,它们的周长之和为47。 【数据规模】 50%的数据,1≤n≤50,所有边长为不超过100正整数。 100%的数据,1≤n≤100000,所有边长为不超过100000的正整数。 2. 方格稿纸(paint)

程序设计大赛试题及答案

试题 1、数学黑洞(程序文件名maths.c/maths.cpp) 【问题描述】 任给一个4位正整数,其各位数位上的数字不全相同,将数字重新组合成一个最大的数与最小的数相减,重复这个过程,最多7步,必得6174。对任给的4位正整数(各位数位上的数字不全相同),编程输出掉进黑洞的步数。 【输入】 一行,一个4位正整数n(1000< n<9999) 【输出】 掉进黑洞的步数 输入 1234 输出 3 2、进制转换(程序文件名conver.c/conver.cpp) 【问题描述】 任给一个十进制整数n,及正整数m(m<=16且m≠10), 将n转换成m进制并输出。 【输入】 一行,两个整数n,m(0 ≤ n ≤ 500000,2 ≤ m ≤ 16,且m≠10),中间用一个空格隔开,其中n 表示十进制数。 【输出】 转换后的数 【输入输出样例】 输入 255 8 输出 377 3、分数线划定(程序文件名score.c/score.cpp) 【问题描述】 公务员选拔工作正在 A 市如火如荼的进行。为了选拔优秀人才,A 市对所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试。面试分数线根据计划录取人数的150%划定,即如果计划录取m名公务员,则面试分数线为排名第m*150%(向下取整)名的选手的分数,而最终进入面试的选手为笔试成绩不低于面试分数线的所有选手。现在就请你编写程序划定面试分数线,并输出所有进入面试的选手的报名号和笔试成绩。 【输入】 第一行,两个整数n,m(5 ≤ n ≤ 5000,3 ≤ m ≤ n),中间用一个空格隔开,其中n 表示报名参加笔试的选手总数,m 表示计划录取的人数。输入数据保证m*150%向下取整后小于等于n。 第二行到第 n+1 行,每行包括两个整数,中间用一个空格隔开,分别是选手的报名号k(1000 ≤ k ≤ 9999)和该选手的笔试成绩s(1 ≤ s ≤ 100)。数据保证选手的报名号各不相同。 【输出】 第一行,有两个整数,用一个空格隔开,第一个整数表示面试分数线;第二个整数为进入面试的选手的实际人数。 从第二行开始,每行包含两个整数,中间用一个空格隔开,分别表示进入面试的选手的报名号和笔试成绩,按照笔试成绩从高到低输出,如果成绩相同,则按报名号由小到大的顺序输出。 【输入输出样例】 输入 6 3 1000 90 3239 88 2390 95 7231 84 1005 95 1001 88

2018年西门子杯中国智能制造挑战赛

2018年“西门子杯”中国智能制造挑战赛 (原全国大学生工业自动化挑战赛) 连续过程设计开发赛项决赛竞赛细则 一、总则 1.以公平、公正、公开为原则,以参赛队现场实施效果为考核标准。 2.全国竞赛组委会以甲方的身份发布工程项目招标需求,各参赛队以乙方的身份,根据甲方提出的 要求,进行项目方案设计,并以工程承包商的身份进入比赛现场实施。全国竞赛组委会将组织专家就项目方案设计、系统开发和现场实施等三个方面,对参赛队的系统设计方案和实施效果进行综合考察。 3.项目方案设计内容: (1)系统分析,包括需求分析、对象特性分析、安全分析等。 (2)控制系统设计,包括开车顺序、控制回路、控制PI&D图、控制算法、安全联锁、人机界面等。 (3)控制系统组成,包括控制器、IO卡件、通讯网络等。 (4)系统实施说明,包括系统连接、系统安装、系统组态、系统整定、系统调试、系统投运等。 (5)经济效益分析,包括产能、耗能、安全、环保等。 4.项目方案实施内容: (1)在SIMATIC S7-400 PLC上,完成硬件组态和控制程序开发;在SIMATIC WINCC上,完成监控画面组态与开发;建立PLC和WINCC之间的通讯连接。 (2)系统调试,包括控制器参数整定、故障排除、系统投运等。 (3)系统验收,包括项目方案设计书、现场实施报告,接受甲方对系统性能的评估。 5.全国竞赛组委会和决赛组委会只保证比赛设备正常可用,比赛现场不再对硬件组态、程序下载等 基础问题作技术支持。参赛队需要自行分析解决问题,全国竞赛组委会将此作为比赛考核内容之一。

6.参赛队需要自行携带电脑,作为系统的上位机,并自己负责设备的连接。全国竞赛组委会和决赛 组委会不再提供备用机。 7.决赛环节由“现场实施”与“方案答辩”两部分组成。 8.正式比赛期间,指导教师不得进入比赛现场。如有不听规劝者,将取消其所带领参赛队的比赛资 格。原则上不允许以任何原因离开赛场,如有特殊原因,需要边裁或巡检陪同。 9.在现场比赛过程中,主裁宣读完注意事项之后十五分钟内,指导教师可以通过手机通话的方式(只 能通话,不能视频、拍照)与参赛队员进行远程交流和指导,十五分钟后,所有参赛队员关闭手机。 二、决赛规则 1.各参赛队针对比赛题目自主构思控制方案,完成系统设计、控制算法及程序开发,并于指定日期 和地点参加决赛的现场比赛。 2.决赛环节由“现场实施”与“方案答辩”两部分组成(高职组只有上机,没有答辩,满分80分)。 分值分配如下: 3.“现场实施”环节包括:接线、系统实现(含WINCC画面组态与方案的调试实施)等,其中接线 分值5分、WINCC画面组态分值5分、方案调试实施分值70分(第一阶段30分,第二阶段40分)。 4.决赛报到的参赛队需在赛前参与抽签,以决定现场比赛的组别和顺序。 5.参赛队员须经大赛志愿者检录后进入赛场。如发现有冒名顶替者,将取消该参赛队的比赛资格。 【现场实施】 6.参赛队员全部入场后,主裁宣读比赛注意事项,并分发具体任务要求(赛题与竞赛规则)。主裁宣 读比赛注意事项期间,参赛队员不得进行任何操作。 7.“现场实施”环节总的时间为4小时(240分钟)。 8.主裁宣读完注意事项之后十五分钟内,参赛队员可以通过手机寻求场外指导教师的帮助,十五分 钟后,统一关闭手机。 9.接来下是接线环节,该环节总共40分钟,要求将PCS 7远程IO中的AI模块与SMPT-1000的仪 表测量输出模块进行接线,并确保通讯正常(至少确保一路TI1101能够接入到PCS 7远程IO中)。

重庆理工大学程序设计大赛选拔试题

程序提交方法,务必看清楚步骤! 1、在编写源代码时,读写的文件均不应有目录信息,而必须用“文件名.扩展名”的形式。例如:fp=fopen(“sentence.in”,”r”)或fp=fopen(“estdout.pc2”,”w”) 2、双击桌面上的“程序设计大赛”快捷键,弹出如下对话框,在Name和password编辑框均输入:team+对号,如对号为1的,用户名和密码均为team1 3、在输入Name和password后,点击login登录,出现如下对话框: 在problem下拉列表框选择自己要提交哪个问题的源代码→在language下拉列表框选择自己编写程序所用的语言→在Main file下拉列表框选择自己源代码文件→点击Test按钮,若无错误,则进行下一步→点击submit按钮提交!本次测试的题目名字和源程序文件名一致,源程序的扩展名若为cpp,则language 应选择Microsoft C++,源程序的扩展名若为java,则language应选择Java. 提交后系统会给出一个结果

例如: Yes正确(简单称ac) No-Compilition Error 为编译错误简单称(ce) No-Run-time Error 运行中意外终止(RE)(也有可能是格式错误)No-time-limit Exceeded程序运行超时(TLE) No-Wrong Answer 答案错误 No-Excessive Out put 程序输出结果超出pc^2所能检测的范围 No-Output Format Error 格式错误 No-Other-Contact Staff 其他未知错误

2012年宁波市第27届中小学生计算机程序设计竞赛 小学组 初赛试题

2012年宁波市第27届中小学生计算机程序设计竞赛小学组初赛试题 小学组初赛试题 ●●所有答案都必须写在答题纸上,写在试卷上无效●● 一、选择题(每题2分,共30分。每小题只有唯一一个正确答案) 1)乐乐在记事本里打了“Happy Birthday!”,则它们在计算机内存储时采用的编码是:()。 A )区位码 B )ASCII 码 C )字形码 D )条形码 2)乐乐经常听MP3,由此他也学到了一些有关MP3的知识。下列有关MP3的信息中不正确的是:()。 A )表达同一首乐曲时,MP3格式的文件大小比WAVE 格式要小得多。 B )MP3声音是一种声音数字化之后经过压缩和编码技术处理得到的声音格式。 C )MP3音乐所采用的声音数据压缩编码的标准是JPEG 。 D )MP3之所以得以流行,是因为MP3声音的质量好,存储容量小,便于传输与存储。 3)下图所示是一个16×16点阵的发光LED 字幕模块,假如使用1表示点发光、0表示点熄灭,那么这个发光LED 字幕模块如果要在计算机内部完整地保存,在不进行压缩的前提下,最少需要的存储空间是:()。 A )8Byte B )32Byte C )8KB D )32KB 4)在计算机系统中,数值一律用补码来表示(存储)。主要原因:使用补码,可以将符号位和其他位统一处理;同时,减法也可按加法来处理。那么在PASCAL 系统中,-15用byte 变量类型存储在计算机内,其二进制编码为:()。 A )10001111 B )00001111 C )11110000 D )11110001 5)十进制数2012.25用二进制数表示的结果是:()。 A )(11111010101.1)2 B )(11111011100.01)2 C )(1111001000.01)2 D )(11111001000.1)2 6)乐乐在参加信息学奥赛的学习过程中,想在因特网上与他人进行即时讨论、交流,则下列工具中最适合的是:()。 A )E-mail (电子邮件) B )BBS (电子公告栏) C )QQ D )博客(Weblog ) 7)下列不属于程序设计三种基本控制结构的是:()。 A )顺序结构 B )递归结构 C )分支结构 D )循环结构 8)胡老师发送电子邮件时失败了,根据下图所示信息,导致发送失败的最有可能的原因是:()。 A )主题错误 B )没有附件 C )收件人地址错误 D )邮件正文太少 9)下面是乐乐对计算机的一些操作,能有效预防计算机病毒侵入的是:()。①对下载的文件马上杀毒②打开QQ 上陌生人信息中的链接补丁 ③及时升级杀毒软件和病毒防火墙④及时修复系统漏洞⑤随意打开来历不明的邮件 A )①②③ B )①③④ C )②③⑤ D )③④⑤ 10)设A=B=D=true,C=false,以下逻辑运算表达式值为真的是:()。 A )(not A and B )or ( C and D )B )(A or B or D )and C C )not A and (B or C or D )D )(A and B and C )or D 11)下列文件扩展名为图片格式的是:()。 A ).doc B ).jpg C ).txt D ).swf

程序设计竞赛常用算法

常用算法设计方法 要使计算机能完成人们预定的工作,首先必须为如何完成预定的工作设计一个算法,然后再根据算法编写程序。计算机程序要对问题的每个对象和处理规则给出正确详尽的描述,其中程序的数据结构和变量用来描述问题的对象,程序结构、函数和语句用来描述问题的算法。算法数据结构是程序的两个重要方面。 算法是问题求解过程的精确描述,一个算法由有限条可完全机械地执行的、有确定结果的指令组成。指令正确地描述了要完成的任务和它们被执行的顺序。计算机按算法指令所描述的顺序执行算法的指令能在有限的步骤内终止,或终止于给出问题的解,或终止于指出问题对此输入数据无解。 通常求解一个问题可能会有多种算法可供选择,选择的主要标准是算法的正确性和可靠性,简单性和易理解性。其次是算法所需要的存储空间少和执行更快等。 算法设计是一件非常困难的工作,常用的算法设计方法主要有迭代法、穷举搜索法、递推法、递归法、贪婪法、回溯法、分治法、动态规划法等。 一、迭代法 迭代法是用于求方程或方程组近似根的一种常用的算法设计方法。设方程为f(x)=0,用某种数学方法导出等价的形式x=g(x),然后按以下步骤执行:(1)选一个方程的近似根,赋给变量x0; (2)将x0的值保存于变量x1,然后计算g(x1),并将结果存于变量x0; (3)当x0与x1的差的绝对值还大于指定的精度要求时,重复步骤(2)的计算。 若方程有根,并且用上述方法计算出来的近似根序列收敛,则按上述方法求得的x0就认为是方程的根。上述算法用C程序的形式表示为: 【算法】迭代法求方程的根 { x0=初始近似根; do { x1=x0; x0=g(x1); /*按特定的方程计算新的近似根*/ } while ( fabs(x0-x1)>Epsilon); prin tf(“方程的近似根是%f\n”,x0); } 具体使用迭代法求根时应注意以下两种可能发生的情况: (1)如果方程无解,算法求出的近似根序列就不会收敛,迭代过程会变成死循环,因此在使用迭代算法前应先考察方程是否有解,并在程序中对迭代的次数给予限制; (2)方程虽然有解,但迭代公式选择不当,或迭代的初始近似根选择不合理,也会导致迭代失败。 【举例】求方程X2-X-1=0的正根,误差<0.05 解:(1)建立迭代公式 由于X=X2-1

高级语言程序设计课程如何培养学生的问题求解能力

高级语言程序设计课程如何培养学生的问题求解能力 孙志岗 语言基础教研室,空间计算技术研究中心 摘要:教育的根本目标之一是培养学生的问题求解能力。本文结合作者在高级语言程序设计课程中的经验和构想,探讨如何培养学生的问题求解能力。文章总结了基于培养“自学、自主、自信、自乐”四个必备素质为目标的一系列教学方法,打破常规,启发学生独立自主、乐于创新、大胆实践,从而锻炼学生的问题求解能力。 关键词:问题求解;高级语言程序设计课程建设 0.引言 Gagné说过:“教育的中心目标就是教会人们思考,运用他们的理性,成为更好的问题解决者。”[1]现行的中国教育体系中,也强调培养问题求解能力,但实际中更注重的是知识的传授,和应用已有的知识解决已知问题(已经知道解决方法的问题)的能力。这种思路应用在中学教育还情有可原,但对高等教育来说,创造新知识、解决未知问题的能力才是教育的根本目标。因为大学的职责就是为社会培养具有这种能力的人才。 本科教育阶段,因为学生的专业知识结构尚未建立,基础知识比较薄弱,似乎应该以学习知识为主,不宜揠苗助长,去培养创新性的问题求解能力。但作者认为,本科阶段才是培养问题求解能力的最佳时机。这时的学生刚走出枯燥的高考,满怀憧憬地想走入全新的求学之路,其热情与求知欲都是空前的。他们虽然可能无知,但是也无畏,可以不受束缚地去迎接挑战、开拓创新。本文总结了作者在针对本科生的“高级语言程序设计”课程中的教学经验和新的构想,探讨如何培养学生的问题求解能力。 1.培养问题求解能力的根本途径 什么是问题求解能力?Jonassen总结了Gagné、Bloom、Merrill的观点和其它一些传统看法,认为: “问题求解必定包括各种各样的认知成分,如命题、概念、规则和原理(领域性知识),但它同时也包括学习者的结构性知识(信息网络、语义地图、概念网络和心智模式)、拓展技能(建构、辩论、分析和推理)、元认知技能(设定目标、收集认知资源、评价先前知识、评价进展、校正错误)。此外,问题求解还包括动机/态度因素(付出的努力、坚持性、有目的的投入),当然也包括自我知识(阐明先前知识、社会文化知识、个人策略、认知偏见/弱点)。”[2][3][4] 作者认为,结合当前实际情况,该能力可以定义为:面对一个新问题,运用所有资源将其解决的能力。“新问题”可能对所有人都是新问题,比如各种尚未解决的科学问题;也可能只对自己是新问题,比如尚未学过排序的学生面对排序问题。无论是哪种问题,其解决途径都是阅读资料,运用储备的知识,发挥智力与经验,再加上一点点运气和灵感,只不过前者的难度更高、结果更不确定。 求解能力是“教”不会,“学”不会,只能“练”会的。求解是一个复杂且综合的过程,口口相传的课堂教学无法表现其精髓,只可能教授求解知识和一点片面的求解经验。真正的求解能力是在求解的实践中锻炼、体会出来的。因此,教学中培养求解能力的根本途径是引出问题,激励学生的主动性,让学生自己动手解决问题。此过程能有效实施的关键是培养学生的四个必备素质:“自学、自主、自信、自乐”。

首届全国中医药院校大学生程序设计竞赛试题

Problem A: 序列的混乱程度 Time limit:1s Memory limit:128MB Description 有一个长度为n的正整数序列,一个序列的混乱程度定义为这个序列的最大值和最小值之差。请编写一个程序,计算一个序列的混乱程度。 Input 输入的第一行为一个正整数T(T<=1000),表示一共有T组测试数据。 每组测试数据的第一行为一个正整数n(1<=n<=1000),代表这个序列的长度。第二行为n 个正整数,代表这个序列。序列中元素的大小不会超过1000。 Output 对于每个测试数据,输出一行包含一个正整数,代表对应序列的混乱程度。 Sample Input 2 5 1 2 3 4 5 5 1 9 2 4 8 Sample Output 4 8

Problem B: 随机数 Time limit:1s Memory limit:128MB Description 有一个rand(n)的函数,它的作用是产生一个在[0,n)的随机整数。现在有另外一个函数,它的代码如下: int random(int n,int m) { return rand(n)+m; } 显而易见的是函数random(n,m)可以产生任意范围的随机数。现在问题来了,如果我想要产生范围在[a,b)内的一个随机数,那么对应的n,m分别为多少? Input 输入的第一行为一个正整数T(T<=1000),表示一共有T组测试数据。 对于每组测试数据包含两个整数a,b(a<=b)。 Output 对于每组测试数据,输出一行包含两个整数n和m,两个整数中间有一个空格分隔。 Sample Input 2 0 5 1 4 Sample Output 5 0 3 1

2019年大学生程序设计大赛策划书

2019年大学生程序设计大赛策划书 一、活动名主题 “华为”杯程序设计大赛 二、举办单位 策划主办单位:华为技术有限公司 协办单位:(排名不分先后)华中科技大学、武汉大学、武汉理工大学 三、活动时间 20xx年x月x日-x月xx日 四、参赛资格 ●本次大赛面向武汉三所目标高校在校全日制本科及以上学历学生(毕业时间在20xx年x月xx日之后)。 ●初赛以个人为单位,性别、专业不限;预计800人;

●在华为官方的网站注册报名,报名成功后获得参赛资格,只有在报名期间进行网上注册后才能参与比赛。 五、竞赛流程 第一阶段:报名参赛(5月10日—5月24日) l参赛选手阅读参赛注意事项,确认协议内容,在华为官方的 网站上注册简历,获得参赛资格的选手以个人身份参赛。 第二阶段:初赛(6月1日8:00—6月1日12:00) l网吧集中测试(集中招聘机试流程) 1.5月30日18:00前,通过邮件、短信和电话的形式通知通过简历筛选的学生初赛场地、机试场次、时间、所需证件及注意事项; 2.1日当天,学生凭身份证刷卡签到,并获取自己的登录账号 与密码。

3.学生按安排的批次进行入座考试,机试全程为30分钟,逾时将视为不及格。全程考试属封闭式测试,不得翻阅网页及手机,完全独立完成整个测试过程。一旦发现翻阅行为,一律视为作弊,将会被取消参赛资格。 4.考试成绩按照答案正确率与用时两个维度进行评价,在追求准确的同时对学生们的编程效率也作出了要求。 第三阶段:软件训练营(6月2日9:00—6月2日16:00) l1日晚将通过邮件、短信与电话的形式,邀请通过初赛的18 位学生参加为期6个小时的软件训练营-敏捷开发的训练课程,本课程主要是针对学生编程思维进行的引导式更新,课程内容比较灵活多变,动手环节较多,较有吸引力。 l中午学生将统一在华为A2食堂进行就餐。 l完成培训的学生将会收到华为武研所办法的“敏捷技能拥有者”的荣誉证书和决赛工具包(题目+小贴士+输出文件)。 l培训后,同学将会自主组成6个三人组进行接下来的决赛。每两个三人组将会由一位导师(业务部门提供的业务骨干)进行指导,

宁波市第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+D 5、参加宁波市中小学生程序设计比赛复赛(上机编程)时,以下哪种行为是允许的?(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)4 10、在Free Pascal中编辑当前源程序时,可以使用快捷键Ctrl+F7增加调试程序时监视的变

相关主题
文本预览
相关文档 最新文档