有哪些比较好的大学生C语言竞赛编程题或者比较分级的竞赛(本科生和研究生都可以参加)?

1: C语言竞赛有很多编程题。你可以在北京大学的ACM在线评估系统JudgeOnline上做,它可以检查你的代码是否正确。

网址:/JudgeOnline/

你可以注册一个账号,这个账号会保存你每次提交的正确代码。上面的题很多,范围很广,各种难度的题。当然,也有一些来自其他大学的评委,比如上海交通大学。

2.ACM/ICPC (acm国际大学生程序设计竞赛)是第一个有成绩的竞赛。当然还有全国大学生编程大赛。每年,一些网站和组织也会举办编程比赛。比如百度近几年举办的百度之星编程大赛,也是很有影响力的。给定示例问题的第一个示例是对ACM的详细介绍。样题是我们学校一个节目比赛的初试题,比较简单。(另外,ACM程序大赛也可以用C++编程,本科生和研究生都可以参加。)

3.一些简单的ACM样题(因为是国际比赛,ACM题都是E,下面部分是翻译的)

H-acm规则

描述

ACM/ICPC(ACM international collegiate programming contest)是由ACM(美国计算机协会计算机械协会)组织的一年一度的竞赛,始于1976。是全球大学生计算机编程能力竞赛中最具影响力的赛事,被公认为全球规模最大、规格最高的大学生编程竞赛。是参赛选手展示计算机才华的广阔舞台,是名牌大学计算机教育成果的直接体现,也是信息企业与世界顶尖计算机人才对话的最佳机会。ACM/ICPC通过分组选拔的方式获得了参加世界总决赛的资格。2006年,来自全球超过25个地区的1141所大学的2362支队伍参加了第26届ACM/ICPC赛区比赛。2002年3月,来自世界各地的大约60支队伍和200多名选手参加了在夏威夷举行的决赛。

在ACM/ICPC的比赛中,使用了自动判题系统,不仅减轻了ACM/ICPC比赛组织者的负担,也使比赛更加公平公正。因为在比赛中,比赛成员可以看到自己的排名,使得比赛更加透明。

ACM/ICPC竞赛排名如下:

1:问题最多的队伍排名第一。

2.如果解决问题的团队数量相同,总时间最少的团队排名第一。

注:在比赛过程中,每道试题的时间将从比赛开始直到试题解答被判定正确为止。在此期间,每错一次操作将被罚款20分钟,答对的试题不算。那么解决所有问题所花费的时间和惩罚时间加起来就是:团队所花费的总时间。

现在,您需要编写一个程序来对团队进行排名(假设不超过200个团队)。

投入

多行测试数据,每行包含各队的比赛信息。

各队比赛信息格式如下:

字符串n m表示队伍名称、解题次数和总花费时间(其中:队伍名称为长度不超过30的字符串,解题次数为1…10之间的整数,惩罚时间的范围不超过int的范围)。

当输入end时,意味着输入结束。

输出

根据排名输出各队的比赛信息。

每个竞赛队占一行。

每行的格式是:

字符串n m表示解决队名问题所用的总时间。

示例输入

amstl 3 65

达诺尼奥2 50

卢特丹3 60

结束

示例输出

卢特丹3 60

amstl 3 65

达诺尼奥2 50

我想我需要一个船屋。

描述

弗雷德最近正在考虑在路易斯安那州买一块地来盖房子。在调查土地的过程中,弗雷德发现,由于密西西比河的侵蚀,路易斯安那州的土地每年会减少50平方英里。弗雷德打算在那里度过余生,所以他不希望自己的房子在有生之年被河水侵蚀。现在他需要知道自己是否会被河水侵蚀。

在做了更多的调查后,弗雷德了解到这里的土地是沿着河岸被侵蚀成半圆形的。这个以(0,0)为圆心的半圆被X轴分为上下两部分,X轴下面是河流,上面是河岸。第一年年初,半圆为0,说明河堤没有被侵蚀。(半圆如下图所示)

投入

第一行的正整数n表示需要计算多少组数据。在下面的n行中,每一行包含两个实数X和Y,表示弗雷德所考虑的房子在以(0,0)为原点的坐标系中的位置。y是以英里为单位的非负数。

输出

计算在哪一年弗雷德在X和Y的房子会被河水侵蚀。对应于输入数据,以如下形式输出您的计算结果:“财产n:该财产将在z年开始侵蚀”,其中n是第n组数据,z是您计算的开始侵蚀的年数。最后输出一句“输出结束。”表示计算结束。

示例输入

2

1.0 1.0

25.0 0.0

示例输出

财产1:该财产将在1年开始侵蚀。

财产2:该财产将在第20年开始侵蚀。

输出结束。

暗示

房子的位置不会正好在半圆边界上,无论是室内还是室外。

您提交的程序的计算输出将由系统自动判断。您的结果应该完全符合输出要求,包括字母大小写,标点符号和空格。包括最后一行的语句也应该完全匹配。

所有给出的数据都以英里为单位。

F-N!的计算

描述

n!= N×(N-1)×(N-2)×(N-3)×N....

投入

第一行输入正整数m,表示下面要计算多少个n!

下一行以m个正整数开始(1 ≤ N ≤ 11,m ≤ 9)。

输出

输出这m个正整数的阶乘结果,每行一个。

示例输入

1

2

示例输出

1

2

120

I-垂直直方图

描述

编写一个程序,从输入文件中读取四行大写(即全部大写字母)文本输入(每行不超过72个字符),并打印一个垂直直方图,显示每个字母(但不包括空格、数字或标点)在全部大写输入中出现的次数。严格按照所示格式设置输出。

投入

*第1行..4:四行大写文本,每行不超过72个字符。

输出

*第1行..:带有星号和空格的几行,后跟一行由空格分隔的大写字母。不要在任何一行的末尾打印不需要的空白。不要打印任何前导空行。

示例输入

那只敏捷的棕色狐狸跳过了那只懒狗。

这是一个测试您的

直方图程序。

你好!

示例输出

*

*

* *

* * * *

* * * *

* * * * * *

* * * * * * * * * *

* * * * * * * * * * * * *

* * * * * * * * * * * * * * * * * *

* * * * * * * * * * * * * * * * * * * * * * * * * *

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

J- white赢了?还是黑的赢?

描述

Cinderalla最近迷上了玩五子棋。但是和其他朋友玩的时候,她总是输,所以她想用电脑来帮助她判断哪一方赢了这场比赛。为了简单起见,我们先去掉一些规则。我们认为只要棋盘的一边有五个相连的棋子,哪一方获胜就确定了。你的任务是写一个程序来判断我们给的游戏哪一方赢。

投入

只有一组输入数据。第一行有两个正整数m,n(5 ≤ m,n ≤ 10),分别代表棋盘的行数和列数。以下2*n+1行是棋盘的描述,由“+”、“-”和“|”组成,其中“*”

输出

只有一组输出数据。如果白棋赢了,就输出白棋赢!,如果黑棋赢了,输出黑棋赢!

示例输入

5 10

+-+-+-+-+-+-+-+-+-+-+

| |*| | | | | | | | |

+-+-+-+-+-+-+-+-+-+-+

| | |*|#| | | | | | |

+-+-+-+-+-+-+-+-+-+-+

| | |#|*|#|#| | | | |

+-+-+-+-+-+-+-+-+-+-+

| | | | |*|#| | | | |

+-+-+-+-+-+-+-+-+-+-+

| | | | | |*| | | | |

+-+-+-+-+-+-+-+-+-+-+

示例输出

白棋赢了!

暗示

给定国际象棋游戏的一方必须赢。