大学生程序设计竞赛试题(正式赛)
大学生程序设计竞赛样题
附件2 :大学生程序设计竞赛样题(更多样题参见172.24.10.6)Description著名的哥德巴赫猜想是:每个不小于6的偶数都可以表示为两个奇素数之和。
例如,16=3+13=5+11。
下面需要你来编程验证一下哥德巴赫猜想是否正确。
Input在输入的若干行数据中,每行仅有一个偶数N(6<=N<=2000000000)。
Output你需要输出N行数据,每行以升序输出两个素数,这两个素数的和等于输入中的那个偶数,如果有多种选择,输出乘积最大的,例如N==16时,输出511,而不是313。
当你发现偶数N不能拆分成两个素数时,请立刻放下手中的程序,直接到A9找校长,因为你和大连东软信息学院都将名垂青史。
Sample Input61620Sample Output3 35 117 13C语言答案供参考:#include<stdio.h>#include<math.h>int is_prime(int n){int m=sqrt(n);int i;for(i=2;i<=m;++i)if(n%i==0) return 0;return 1;}void main(){int n;while(scanf("%d",&n)!=EOF){int m=n/2;if(m%2==0) --m;while(1){if(is_prime(m)&&is_prime(n-m)){printf("%d %d\n",m,n-m);break;}else m-=2;}}}。
程序设计大赛试题及答案
试题1、数学黑洞(程序文件名maths.c/maths.cpp)【问题描述】任给一个4位正整数,其各位数位上的数字不全相同,将数字重新组合成一个最大的数与最小的数相减,重复这个过程,最多7步,必得6174。
对任给的4位正整数(各位数位上的数字不全相同),编程输出掉进黑洞的步数。
【输入】一行,一个4位正整数n(1000< n<9999)【输出】掉进黑洞的步数输入1234输出32、进制转换(程序文件名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输出3773、分数线划定(程序文件名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)。
数据保证选手的报名号各不相同。
山东科技大学第二届ACM程序设计大赛试题
山东科技大学第二届ACM程序设计大赛试题册试题共14页,题目共计12道山东科技大学第二届ACM 程序设计大赛试题册Problem A 简单计算Description给出n 个十进制的数,找出这n 个数的二进制表示中1的个数最少的数。
Input输入的第一行为一个正整数T (1≤T ≤20),代表测试数据组数。
对于每组测试数据,输入的第一行为一个正整数n (1≤n ≤10000),第二行为n个正整数A 1、A 2、…、A n (1≤A i ≤109),每个数之间以空格分隔。
Output每组数据输出一行,先输出数据组数,再输出二进制中含1最少的数,如果存在多个数符合条件,输出最小的那个。
具体输出格式见样例输出。
Sample Input Sample Output山东科技大学第二届ACM 程序设计大赛试题册Problem B 关键字搜索Description我们的新网站具有了全新的搜索功能,使用了2个通配符“*”和“?”,其中“*”表示0或者多个小写字母,“?”代表1个字母。
当我们输入一个关键字的时候,我们在不确定的地方就使用通配符。
我们在数据库里面有多条记录,每条记录都是由小写字母组成,现在给出一个关键字,你能告诉我数据库里面有多少条与关键字相匹配的记录吗?例如: 如果关键字是j*y*m*y?,那么jiyanmoyu ,jyanmoyu ,jymyu 都是相匹配的记录。
Input第一行输入一个T (T ≤20),表示有T 组测试数据。
对于每组测试数据,第一行是输入的关键字,接下是数据库里面的所有记录的条数n ,1≤n ≤10000,每条记录的长度不超过50个小写字母。
Output对于每组测试数据,输出与关键字相匹配的总记录条数,占一行。
Sample Input Sample Output山东科技大学第二届ACM 程序设计大赛试题册Problem C 正方形Description在二维坐标轴内给出四个点,这四个点能否构成一个正方形。
大学程序设计大赛试题答案
大学程序设计大赛试题答案一、选择题1. 在C++中,下列哪个关键字用于定义常量?A. staticB. volatileC. constD. mutable答案:C2. 以下关于Python中的列表(list)说法正确的是:A. 列表是不可变的序列类型。
B. 列表不支持添加元素。
C. 列表可以包含不同类型的元素。
D. 列表的元素不能被删除。
答案:C3. 在Java中,关于异常处理的描述,以下哪项是正确的?A. try块中必须跟catch块。
B. catch块可以捕获所有类型的异常。
C. finally块可以用于执行清理操作,无论是否发生异常都会执行。
D. throw关键字用于声明一个可能抛出的异常类型。
答案:C4. 以下关于数据库事务的描述,哪项是错误的?A. 事务具有原子性。
B. 事务具有一致性。
C. 事务具有隔离性。
D. 事务不具备持久性。
答案:D5. 在HTML5中,用于创建交互式内容的标签是:A. <canvas>B. <svg>C. <iframe>D. <audio>答案:A二、填空题1. 在JavaScript中,可以使用________函数来获取字符串的长度。
答案:length2. 在Python中,使用________关键字可以遍历字典中的所有键。
答案:keys()3. SQL语句中,用于删除表中所有记录但保留表结构的命令是________。
答案:TRUNCATE TABLE4. 在C语言中,使用________关键字可以定义一个指针变量。
答案:*(星号)5. 正则表达式中,\d表示匹配一个________字符。
答案:数字三、编程题1. 题目描述:编写一个程序,输入一个整数n,输出n的阶乘。
C++代码示例:```cpp#include <iostream>using namespace std;int factorial(int n) {if (n <= 1) {return 1;} else {return n * factorial(n - 1);}}int main() {int n;cin >> n;cout << factorial(n) << endl;return 0;}```2. 题目描述:编写一个Python程序,实现一个简单的计算器,支持加、减、乘、除功能。
acm程序设计大赛试题
acm程序设计大赛试题ACM(Association for Computing Machinery)程序设计大赛是一项面向大学生的编程竞赛,旨在提高参赛者在算法和数据结构方面的能力。
每年都会举办多个级别的比赛,包括区域赛、国家赛和世界总决赛。
ACM程序设计大赛试题通常涵盖广泛的计算机科学和编程知识,包括但不限于以下几个方面:1. 算法和数据结构,试题可能涉及各种经典算法和数据结构的应用,如排序、查找、图论、动态规划、贪心算法等。
参赛者需要能够理解这些算法的原理和实现方法,并能够根据问题的要求选择合适的算法进行解题。
2. 编程语言和编程技巧,参赛者需要熟练掌握至少一种编程语言,通常是C++、Java或Python。
他们需要能够使用该语言进行编程,实现算法和数据结构的代码,并能够处理输入输出、异常处理等编程任务。
此外,熟练掌握一些编程技巧,如优化算法、调试代码等也是非常重要的。
3. 数学和逻辑思维,ACM程序设计大赛试题可能涉及一些数学和逻辑问题,如数论、组合数学、概率统计等。
参赛者需要具备基本的数学知识,并能够将其应用到解题过程中。
4. 实际问题的建模和解决,ACM程序设计大赛试题通常基于实际问题,参赛者需要能够将问题抽象为计算机可解决的形式,并设计出高效的算法和数据结构进行求解。
这需要参赛者具备一定的问题建模和解决能力。
5. 时间和空间复杂度分析,参赛者在解决问题时需要考虑算法的时间和空间复杂度。
他们需要能够分析算法的运行时间和所需内存,并根据比赛规则和问题要求选择合适的算法以保证程序的效率。
总的来说,ACM程序设计大赛试题要求参赛者具备扎实的计算机科学和编程基础,能够独立思考和解决复杂的问题。
参赛者需要在规定的时间内完成试题,并保证程序的正确性和效率。
通过参加ACM程序设计大赛,参赛者能够提升自己的编程能力和解决问题的能力,同时也能够与其他优秀的程序员交流和学习。
2023全国大学生程序设计竞赛题目
2023全国大学生程序设计竞赛题目今年的全国大学生程序设计竞赛将于2023年举行。
本次竞赛将囿于程序设计领域,旨在考察参赛选手的编程能力、解决问题的能力以及团队合作精神。
以下是本次比赛的几道题目,希望能够为参赛选手提供一些思路和挑战。
题目一:图书管理系统设计一个图书管理系统,能够实现以下功能:1. 图书录入:包括图书的基本信息(书名、作者、出版社等)以及库存数量。
2. 图书查询:根据关键词(书名、作者等)进行图书查询,并显示图书的详细信息。
3. 借书与还书:实现图书的借出和归还功能,并更新库存数量。
4. 图书推荐:根据用户的借阅历史推荐相关图书。
题目二:火车票订购系统设计一个火车票订购系统,能够实现以下功能:1. 火车线路与时刻表:提供火车线路和时刻表信息,包括出发地、目的地、经停站点和到达时间等。
2. 站点查询:根据出发地和目的地查询经停该站点的火车。
3. 车票预订:用户选择出发地、目的地和乘车日期后,系统显示可用车次和余票数量,并支持用户预订车票。
4. 订单管理:用户可以查看自己的订单信息,包括已购车票的详细信息和订单状态。
题目三:智能家居控制系统设计一个智能家居控制系统,能够实现以下功能:1. 设备控制:包括灯光、温度、窗帘等设备的远程控制。
2. 定时任务:用户可以设置定时任务,如定时开关灯光、调节室内温度等。
3. 情景模式:用户可以设置情景模式,如影院模式、就寝模式等,系统将根据用户的设置自动调节设备状态。
4. 能耗统计:系统能够记录和展示各个设备的能耗,以便用户了解和管理家庭的能源消耗。
以上是本次竞赛的几道题目,希望参赛选手能够根据自己的技能和经验,在规定时间内完成这些挑战。
祝愿大家在比赛中取得好成绩,展现自己优秀的程序设计和解决问题的能力!。
大学生程序设计竞赛试题(正式赛)
中原工学院第一届大学生程序设计竞赛正式比赛试题主办:中原工学院教务处学生处校团委计算机学院承办:中原工学院计算机学院地点:计算机学院实验中心406实验室时间:2010年4月11日【试题一】兔子【题目描述】兔子具有很强的繁殖能力。
一对成年兔子每个月可以繁殖一对小兔子,而一对小兔子经过m个月之后,就会长成一对成年兔子。
通过分析,我们可以看出:若m=2的时候,每个月兔子的对数构成了一个Fibonacci数列。
但是,若m<>2,这个问题看起来就不那么简单了。
你的任务是计算:假定初始只有一对兔子,那么,经过d个月之后,共有多少对兔子?可以假定,在此阶段没有任何兔子死亡。
【输入】输入包括多组测试数据。
每组测试数据的一行中包括2个整数m(1<=m<=10),d(1<=d<=30)。
当测试数据遇到一行中有两个0时,即m=d=0,测试数据结束。
【输出】针对每组测试数据,在每一行输出经过d个月后共有多少对兔子。
【输入样例】2 33 50 0【输出样例】59【试题二】网页浏览器【题目描述】Mozilla Firefox是一个自由的,开放源码的网页浏览器,适用于Windows, Linux 和MacOS X等平台。
Firefox火狐校园大使是Mozilla开源社区项目的一部分,针对在校的高年级本科生和研究生以及众多技术爱好者,在校园中推广开源项目和开放技术,让更多的开发人员受益于Mozilla的开放技术和免费资源。
你很荣幸得到了这样一个机会,为Firefox编写一个重要的导航模块。
正如上图所示,导航模块要接受用户的后退、前进、进入用户输入的网址以及清空浏览记录等操作。
【输入】为了简化问题,用户所有的操作都以字符的形式从标准输入读入。
每一行描述一个操作,各操作的格式和功能如下所示:操作功能back 如果当前页面不是第一个页面,则跳到到前一个页面,并输出这个页面的网址forward 如果当前页面不是最后一个页面,则跳到到后一个页面,并输出这个页面的网址url 网址跳转到用户输入的网址(网址不含空格)clear 清空浏览记录(当前页面除外)exit 退出浏览器浏览器启动时默认进入中原工学院的主页” ”【输出】对于每一个需要输出网址的操作,输出对应的网址。
第二届河南省ACM竞赛(正式赛)课件
第二届河南省大学生程序设计竞赛主办:河南省计算机学会承办:河南师范大学计算机与信息技术学院(正式赛试题)地点:河南师范大学计算机与信息技术学院时间:2009年5月17日【试题一】Dr.Kong的机器人Dr.Kong设计了一个可以前进或后退机器人,该机器人在每个位置i会得到一个移动步数的指令Ki (i=1,2…N),聪明的机器人自己会判断是要前进Ki步还是后退Ki步。
例如:给定指令序列(3 3 1 2 5),表示机器人在第1个位置时,可以前进3步到第4个位置,此时后退是不起作用的,出界;机器人在第2个位置时,可以前进3步到第5个位置,此时后退是不起作用的,出界;机器人在第3个位置时,可以前进1步到第4个位置,也可以后退1步到第2个位置等等。
你认为,对给定的两个位置A,B, 聪明的机器人从A位置走到B位置至少要判断几次?【标准输入】第一行: M表示以下有M组测试数据(0<M<=8)接下来每组有两行数据头一行:N A B ( 1≤N≤ 50, 1≤A,B≤N )下一行: K1 K2…..Kn ( 0<=Ki<=N )【标准输出】输出有M行,第i行为第i组测试数据的最少判断次数, 若无法到达,则输出-1。
【样例】【试题二】奇特的艺术品Dr.Kong设计了一件艺术品,该艺术品由N个构件堆叠而成,N个构件从高到低按层编号依次为1,2,……,N。
艺术品展出后,引起了强烈的反映。
Dr.Kong观察到,人们尤其对作品的高端部分评价甚多。
狂热的Dr.Kong一激动,对组成该艺术品的N个构件重新组合,比如:把第6层到第12层的构件搬下来,想一想,然后整体放到剩下构件的第7层下面;过一会儿,又把第2层到第9层的构件搬下来,整体放到剩下构件的第1层下面等等。
于是,Dr.Kong在进行了连续若干次“搬来搬去”后,还是这N个构件,又诞生了一件新的艺术品。
编程:请输出新的艺术品最高十层构件的编号。
【标准输入】第一行: N K表示构件的总数和“搬来搬去”的总次数第2~K+1行:A B C 表示要搬动的构件(即从第A层到第B层)整个放在第C层下面;如果C等于0,则要搬动的构件将放到最高层。
程序设计大赛试题及答案()
试题1、数学黑洞(程序文件名maths.c/maths.cpp)【问题描述】任给一个4位正整数,其各位数位上的数字不全相同,将数字重新组合成一个最大的数与最小的数相减,重复这个过程,最多7步,必得6174。
对任给的4位正整数(各位数位上的数字不全相同),编程输出掉进黑洞的步数。
【输入】一行,一个4位正整数n(1000< n<9999)【输出】掉进黑洞的步数输入1234输出32、进制转换(程序文件名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输出3773、分数线划定(程序文件名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)。
数据保证选手的报名号各不相同。
百度之星程序设计大赛总决赛试题
附决赛题目:俄罗斯游戏中共有七种方块,每种方块都由四个方格组成,如下图所示,七种方块分别编号为1~7。
游戏中,每次落下一个方块,落到一个宽度为10格的槽中。
方块的下部一旦碰到槽的底部,或槽中已有的方块,就不能再移动。
方块落下不动后,如果有某些行因落下的方块而填满,这些行将被消去。
方块下落前,你可以控制方块的左右移动和旋转,以将其放在合适的位置。
你对方块的所有移动和旋转操作在下落前(槽外)就计算完毕,然后直接下落到底,下落过程中不能再做操作。
如果方块刚刚落下后顶部高度大于17行,游戏结束--即使此时有些行可以消除。
交互方式你的程序应当包含tetris_lib.h,并连接相应的库文件。
库中的两个重要函数是:void StartGame(int* t1, int* t2);int Step(int r, int l, int* next);你的程序应该首先调用StartGame,其中t1和t2表示前两个方块的编号(t2对应于传统游戏中的"下一个方块")。
接下来,你的程序每次可以使用Step函数下落一个方块,返回消去的行数。
r表示旋转方式(r=0, 1, 2, 3分别表示顺时针旋转0度、90度、180度、270度),l表示方块在旋转后的最左边一格的列编号(从左到右依次为1, 2, …, 10),而next表示方块落下后新的下一个方块编号(0代表没有下一个方块,下一次Step调用后库将自动终止你的程序)。
你的程序不应自行终止。
关于自测的提示调用StartGame函数时,库将从标准输入中读入若干行,每行包括一个整数,表示方块的编号。
你可以利用这一点对你的程序进行测试。
程序运行结束后,测试库将把结束原因和得分显示在标准输出中。
库中还有两个函数可以用于自测:void SetLog(const char* filename);void Snapshot();如果需要测试库记录程序的行为,请在调用StartGame之前调用SetLog函数。
大一acm竞赛试题及答案
大一acm竞赛试题及答案一、选择题(每题5分,共20分)1. 下列哪个算法的时间复杂度为O(n^2)?A. 快速排序B. 归并排序C. 插入排序D. 冒泡排序答案:C2. 在C++中,下列哪个关键字用于定义类?A. structB. classC. unionD. enum答案:B3. 下列哪个数据结构适合用于实现稀疏矩阵?A. 顺序存储B. 链式存储C. 压缩存储D. 散列存储答案:C4. 在图论中,下列哪个算法用于寻找最短路径?A. 深度优先搜索B. 广度优先搜索C. 迪杰斯特拉算法D. 弗洛伊德算法二、填空题(每题5分,共20分)1. 在二叉树的遍历算法中,______遍历会先访问根节点。
答案:前序2. 哈希表的冲突解决方法之一是______。
答案:链地址法3. 在数据库中,用于实现一对多关系的表结构是______。
答案:外键4. 动态规划算法的核心是______。
答案:状态转移方程三、编程题(每题30分,共60分)1. 编写一个函数,实现对一个整数数组进行排序,并返回排序后的数组。
答案:```pythondef sort_array(arr):arr.sort()return arr```2. 编写一个函数,实现计算给定整数n的阶乘。
答案:```pythondef factorial(n):if n == 0:return 1return n * factorial(n - 1)```四、算法题(每题30分,共30分)1. 给定一个整数数组,请设计一个算法找出数组中第二大的数。
答案:```pythondef find_second_max(nums):first_max = second_max = float('-inf')for num in nums:if num > first_max:second_max = first_maxfirst_max = numelif num > second_max and num != first_max:second_max = numreturn second_max```。
c语言程序设计比赛试题及答案
c语言程序设计比赛试题及答案一、选择题(每题2分,共20分)1. 下列哪个选项是C语言中的合法整数常量?A. 0x1AB. 01AC. 0b1010D. 1.23答案:A2. C语言中,哪个关键字用于定义一个函数?A. structB. intC. voidD. return答案:B3. 下列哪个选项是C语言中正确的注释方式?A. // 这是注释B. /* 这是注释 */C. //* 这是注释D. /* 这是注释答案:B4. C语言中,哪个运算符用于求两个数的和?A. +B. -C. *D. /答案:A5. 在C语言中,哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A6. C语言中,哪个关键字用于定义一个枚举类型?A. structB. unionC. enumD. typedef答案:C7. 下列哪个选项是C语言中合法的变量名?A. 2variableB. variable2C. _variableD. variable$2答案:B8. 在C语言中,哪个关键字用于定义一个指针?A. intB. floatC. charD. *答案:D9. C语言中,哪个函数用于将字符串复制到另一个字符串?A. strcpyB. strcatC. strcmpD. strlen答案:A10. 在C语言中,哪个函数用于计算字符串的长度?A. strcpyB. strcatC. strcmpD. strlen答案:D二、填空题(每题2分,共20分)1. C语言中,用于定义一个整型数组的关键字是________。
答案:int2. C语言中,用于定义一个字符型数组的关键字是________。
答案:char3. C语言中,用于定义一个浮点型数组的关键字是________。
答案:float4. C语言中,用于定义一个双精度浮点型数组的关键字是________。
答案:double5. C语言中,用于定义一个字符串的关键字是________。
程序设计比赛试题
程序设计比赛试题最少钱币数:【问题描述】这是一个古老而又经典的问题。
用给定的几种钱币凑成某个钱数,一般而言有多种方式。
例如:给定了6种钱币面值为2、5、10、20、50、100,用来凑15元,可以用5个2元、1个5元,或者3个5元,或者1个5元、1个10元,等等。
显然,最少需要2个钱币才能凑成15元。
你的任务就是,给定若干个互不相同的钱币面值,编程计算,最少需要多少个钱币才能凑成某个给出的钱数。
【要求】【数据输入】输入可以有多个测试用例。
每个测试用例的第一行是待凑的钱数值M(1<=M<=2000,整数),接着的一行中,第一个整数K (1<=K<=10)表示币种个数,随后是K个互不相同的钱币面值Ki(1<=Ki<=1000)。
输入M=0时结束。
【数据输出】每个测试用例输出一行,即凑成钱数值M最少需要的钱币个数。
如果凑钱失败,输出“Impossible”。
你可以假设,每种待凑钱币的数量是无限多的。
【样例输入】156 2 5 10 20 50 10011 2【样例输出】2 ImpossibleFeli的生日礼物【问题描述】Felicia的生日是11月1日(和Kitty是同一天生的哦)。
于是Feli请来Kitty一起过生日。
Kitty带来了最新款的“Kitty猫”玩具准备送给Feli,不过她说,这份礼物可不是白送的。
Feli要帮她一个忙,才能够得到心仪已久的玩具。
Kitty说,“Kitty猫”玩具已经卖出了n!个,n<=10^100*_*,Kitty想知道确切的数字,而不是无聊的“一个数加个感叹号”。
Feli听了大吃一惊。
要知道,算出n!是一个无比艰巨的任务。
Feli告诉Kitty,就算Feli算出n!,Kitty也看不下去,因为当n=20时,计算机的长整型已经存不下了(Kitty只能接受1-9之间的数字)。
于是Kitty说,你只要告诉我n!最后一位非0的数就可以了。
大学生程序设计大赛试题
试题 2 在二维字符阵列中寻找指定的字符串。 输入:前两行分别指示字符矩阵的宽 w 和高 h(1<=w<=80 且 1<=h<=80)。接下来的 h 行每行 w 个字
符便是字符矩阵的内容,再下面的 1 行为要寻找的字符串的数目 n(n<10),其后的 n 行便是要 寻找的字符串,每个字符串不会超过 20 个字符。 输出:n 行,每行保存 1 个字符串的位置。位置的格式形如(1,2)->(2,6),意为该字符串首字母在字符矩 阵中的位置是第 1 列 2 行,尾字母在字符矩阵中的位置是第 2 列 6 行。 备注:如果某个字符串在字符阵列中出现多次,则只记录任意一个出现位置即可。字符串出现的形式 可能是水平、竖直、向前、向后和斜向。输出的位置顺序应该与输入中的字符串出现顺序一致。 区分字符的大小写。
3
试题 4 在计算机辅助设计(CAD)中,有一个经典问题:消除隐藏线(被其它图形遮住的线段)。你需要 设计一个软件,帮助建筑师绘制城市的侧视轮廓图。为了方便处理,限定所有的建筑物都是矩形的, 而且全部建立在同一水平面上。每个建筑物用一个三元组表示(Li, Hi, Ri)其中 Li 和 Ri 分别是建 筑物 i 的左右边缘坐标,Hi 是建筑物 i 的高度。 下面左图中的建筑物分别用如下三元组表示: (1,11,5),(2,6,7),(3,13,9),(12,7,16),(14,3,25),(19,18,22),(23,13,29),(24,4,28) 下面右图中的城市侧视轮廓线用如下的序列表示: (1,11,3,13,9,0,12,7,16,3,19,18,22,3,23,13,29,0)
编写程序,读入一组-231 至 231-1 之间的数值,输出对应的外星球数值表示。
程序设计大赛试题及答案
试题1、数学黑洞(程序文件名)【问题描述】任给一个4位正整数,其各位数位上的数字不全相同,将数字重新组合成一个最大的数与最小的数相减,重复这个过程,最多7步,必得6174。
对任给的4位正整数(各位数位上的数字不全相同),编程输出掉进黑洞的步数。
【输入】一行,一个4位正整数n(1000< n<9999)【输出】掉进黑洞的步数输入1234输出32、进制转换(程序文件名)【问题描述】任给一个十进制整数n,及正整数m(m<=16且m≠10), 将n转换成m进制并输出。
【输入】一行,两个整数n,m(0 ≤ n ≤ 500000,2 ≤ m ≤ 16,且m≠10),中间用一个空格隔开,其中n 表示十进制数。
【输出】转换后的数【输入输出样例】输入255 8输出3773、分数线划定(程序文件名)【问题描述】公务员选拔工作正在 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)。
数据保证选手的报名号各不相同。
【输出】第一行,有两个整数,用一个空格隔开,第一个整数表示面试分数线;第二个整数为进入面试的选手的实际人数。
c语言程序设计大赛初赛试题及答案
c语言程序设计大赛初赛试题及答案一、选择题(每题2分,共10分)1. 下列哪个选项是C语言中的关键字?A. intB. floatC. stringD. array答案:A2. C语言中,用于定义一个整型变量的关键字是?A. intB. charC. floatD. double答案:A3. 下列哪个选项不是C语言的标准输入输出函数?A. printfB. scanfC. coutD. getchar答案:C4. 在C语言中,下面哪个选项是正确的字符串定义?A. char str[] = "Hello";B. char str[] = {"Hello"};C. char str[] = 'Hello';D. char str[] = "Hello";答案:A5. 下列哪个选项是C语言中正确的注释方式?A. // This is a commentB. /* This is a comment */C. //* This is a commentD. /* This is a comment */答案:B二、填空题(每题3分,共15分)1. 在C语言中,定义一个整型数组可以使用关键字_________。
答案:int2. C语言中,_________函数用于输出字符串。
答案:printf3. C语言中,_________函数用于从标准输入读取一个字符。
答案:getchar4. C语言中,_________关键字用于定义一个函数。
答案:void5. C语言中,_________关键字用于定义一个结构体。
答案:struct三、编程题(每题10分,共20分)1. 编写一个函数,计算并返回两个整数的和。
```cint add(int a, int b) {return a + b;}```答案:```cint add(int a, int b) {return a + b;}```2. 编写一个程序,读取用户输入的两个整数,然后输出它们的乘积。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中原工学院第一届大学生程序设计竞赛正式比赛试题主办:中原工学院教务处学生处校团委计算机学院承办:中原工学院计算机学院地点:计算机学院实验中心406实验室时间:2010年4月11日【试题一】兔子【题目描述】兔子具有很强的繁殖能力。
一对成年兔子每个月可以繁殖一对小兔子,而一对小兔子经过m个月之后,就会长成一对成年兔子。
通过分析,我们可以看出:若m=2的时候,每个月兔子的对数构成了一个Fibonacci数列。
但是,若m<>2,这个问题看起来就不那么简单了。
你的任务是计算:假定初始只有一对兔子,那么,经过d个月之后,共有多少对兔子?可以假定,在此阶段没有任何兔子死亡。
【输入】输入包括多组测试数据。
每组测试数据的一行中包括2个整数m(1<=m<=10),d(1<=d<=30)。
当测试数据遇到一行中有两个0时,即m=d=0,测试数据结束。
【输出】针对每组测试数据,在每一行输出经过d个月后共有多少对兔子。
【输入样例】2 33 50 0【输出样例】59【试题二】网页浏览器【题目描述】Mozilla Firefox是一个自由的,开放源码的网页浏览器,适用于Windows, Linux 和MacOS X等平台。
Firefox火狐校园大使是Mozilla开源社区项目的一部分,针对在校的高年级本科生和研究生以及众多技术爱好者,在校园中推广开源项目和开放技术,让更多的开发人员受益于Mozilla的开放技术和免费资源。
你很荣幸得到了这样一个机会,为Firefox编写一个重要的导航模块。
正如上图所示,导航模块要接受用户的后退、前进、进入用户输入的网址以及清空浏览记录等操作。
【输入】为了简化问题,用户所有的操作都以字符的形式从标准输入读入。
每一行描述一个操作,各操作的格式和功能如下所示:浏览器启动时默认进入中原工学院的主页” .cn”【输出】对于每一个需要输出网址的操作,输出对应的网址。
每个网址恰好占一行,不要有多余的字符(包括空格和换行)。
详细格式可以参考输入输出样例。
【输入样例】url /url .1backbackbackforwardclearurlforwardbackbackexit【输出样例】/.cn//【试题三】茶商【题目描述】一位茶叶商人从南方收购了n吨新茶,由于产地偏僻不通铁路,茶商准备先沿水路运到武汉,再发往全国各地销售。
码头上只有m条规格不同的小货船,每条船都不足以装载全部茶叶。
各船的最大载重量分别为w[i]吨,需f[i]费用(1<=i<=m)。
当然,由于茶商是老主顾,而且货船还可以搭载其他货物,因此船主比较客气,声称可以装一部分货物,按实际装多少货物计费(例如,只装了1/3载重,则费用也为1/3)。
请问,茶商应该选择哪些货船,使得费用最低?【输入】输入包括多组测试数据。
每组测试数据的第一行为2个非负整数n和m,其含义如题目描述所示。
接下来的m行,每行有两个非负整数w[i]和f[i],代表每条船的最大载重量和费用。
当测试数据遇到一行中有两个-1时,测试数据结束。
所有的整数不超过1000。
【输出】针对每组测试数据,在每一行输出一个唯一的整数,表示茶商所需要的最少运费(运算过程中可以采用浮点数,输出最终结果时取整)。
【输入样例】15 37 24 35 230 325 1824 1515 10-1 -1【输出样例】621【试题四】中原工学院网络系统【题目描述】虽然中原工学院的网络安全已经做得非常完善,但是天有不测风云,学校内部网络系统的一台服务器意外感染了一种新型病毒。
为了避免更大的损失,管理员必须采取紧急措施遏制病毒的蔓延。
中原工学院内部网络系统共有n台服务器,这n台服务器使用m条电缆互相连接。
为了描述方便,我们给服务器编号1到n。
初始时,1号服务器感染了病毒。
每隔一分钟,病毒便会从已感染病毒的服务器扩散到所有与之直接相连的服务器上。
中原工学院的网络系统设计得非常坚固,即使要切断电缆也非常困难。
管理员只能在初始时切断一根电缆。
为了让整个网络系统尽可能晚地全部被病毒感染,他应该切断哪根电缆?【输入】输入包含多组数据。
每组数据的第一行是两个整数n和m (2≤n≤200, 1≤m≤n*(n-1)/2),其含义如上面所描述。
接下来m行每行两个整数a, b (1≤a, b≤n),表示服务器a和服务器b有电缆直接连接。
任意两台服务器间至多有一根电缆相连。
输入数据以n=m=0结束。
【输出】对每组数据输出最晚多少分钟之后整个网络系统被感染。
如果切断某根电缆后病毒永远不会传播到某些服务器,那么输出”Great”。
【输入样例】4 51 22 33 44 11 34 41 22 33 41 30 0【输出样例】2Great【试题五】高速公路【题目描述】某国共有n个城市(n不超过200),有些城市之间直接有一条高速公路相连,高速公路都是双向的,总共有m条。
每条高速公路都有自己的载重限制,即载重最大值。
通过车辆的载重不能超过公路的载重限制。
如今我们想了解的是,从某一起点城市出发,到达目标城市,车辆最多能带多重的货物。
【输入】输入的第一行为两个整数n和m。
以下有m行,每行三个整数描述一条公路,分别是首尾相连的城市以及载重限制。
然后是一个整数k,即问题个数。
接下来k行描述k个问题,每行两个整数表示起点城市和目标城市。
问题数不超过100。
【输出】输出包括k行,每行对应一个问题,输出从起点到目标的最大载重量。
如果两城市间无路径则输出-1。
【输入样例】3 31 2 1002 3 1001 3 5021 32 3【输出样例】100100【试题六】大学校区【题目描述】当前,中原工学院共有四个校区:北校区(North)、南校区(South)、西校区(West)和东校区(信商新区)(East),每一个校区都有若干个建筑物,如公园、广场、科研院所、实验中心、礼堂等,每个建筑物之间都有一定的距离,因此,在平时的教学和生活中,教师和学生都会经常面临这样的问题:在同一个校区或不同校区之间,从一个地点到另一个地点往来的需要。
现在,他们需要找到从出发点S到目的地T的一条最短路径,以便节省时间,你能帮助他们吗?假设任两个建筑物之间至多存在一条直接相连的道路,并且都有具体的长度。
【输入】输入的第一行是一个正整数C,表示下面测试案例数目。
在每一种测试例中,第一行的正整数N(0<N≤100)表示道路的数目,其后的N行:第i行表示第i(1≤i≤N)条道路的起点S i和终点T i及其之间的距离D i(0≤D i≤100),第N+1行表示教师或学生的出发地S与目的地T,你必须帮找出他们从出发地S到目的地T之间的最短路径。
每个校区分别使用North、South、West和East,每一个建筑物名称用长度不超出100个小写字符(a-z)串表示。
【输出】输出应包括C行,每行对应一个测试例,输出从起点到目的地的最短距离。
如果两地点间无路径则输出-1。
系统没有多余的内存空间可利用。
【输入样例】12South.litang b 2b West.guangchang 100b South.litang【输出样例】2【试题七】Faulty Odometer【Description】You are given a car odometer which displays the miles traveled as an integer. The odometer has a defect, however: it proceeds from the digit 3 to the digit 5, always skipping over the digit 4. This defect shows up in all positions (the one's, the ten's, the hundred's, etc.). For example, if the odometer displays 15339 and the car travels one mile, odometer reading changes to 15350 (instead of 15340).【Input】Each line of input contains a positive integer in the range 1..999999 which represents an odometer reading. (Leading zeros will not appear in the input.) The end of input is indicated by a line containing a single 0. You may assume that no odometerreading will contain the digit 4.【Output】Each line of input will produce exactly one line of output, which will contain: the odometer reading from the input, a colon, one blank space, and the actual number of miles traveled by the car.【Sample Input】15250【Sample output】15: 13250: 198【试题八】Sorting AlgorithOne of the fundamental problem of computer science is ordering a list of items .there’re a plethora of solutions to this problem , known as sorting algorithms. Some sorting algorithms are simple and intuitive, such as bubble sort. Others, such as the heap sort are not so simple, but produce lightening-fast results.In the following is a list of some sorting algorithms. Of course, I can’t tell you how to implement them here. You must use your own knowledge.Bubble sortHeap sortInsertion sortMerge sortQuick sortSelection sortShell sort……My business here is to give you some numbers, and to sort them is your business. Attention, I want the smallest number at the top of the sorted list.【Input】The input will consist of series data sets. Each data set has two parts. The first part contains two non-negative integers, n(1≤n≤100,000)and m(1≤m≤n),representing the total of numbers you will get and interval of the output sorted list . The second part contains n positive integers. I am sure that each integer in this part will be less than 2,000,000,000.The input is terminated by a line with two zeros.【Output】For one data set, you should output several numbers in ONE line. After you get the sorted list, you should output the first number of each m numbers, and you should print exact ONE space between two adjacent numbers. And please make sure that there should NOT be any blank line between outputs of two adjacent data sets .【Sample Input】8 2357186420 0【Sample output】1 3 5 7。