第1/14页第四届“蓝桥杯”全国软件专业人才设计与创业大赛选拔赛C/C++高职高专组考生须知:考试开始后,选手首先下载题目到本机不被还原的盘符,并使用考场现场公布的解压密码解压试题。考试时间为9:00-13:00,共4个小时。13点整时间截止时,将无法提交答案。选手因考试结束不能提交答案的,责任由选手自负。在考试强制结束前,选手可以主动结束考试(需要身份验证),结束考试后将无法继续提交或浏览答案。选手可浏览自己已经提交的答案。对同一题目,选手可多次提交答案,以最后一次提交的答案为准。选手切勿在提交的代码中书写“姓名”、“考号”,“院校名”等与身份有关的信息或其它与竞赛题目无关的内容,否则成绩无效。选手必须通过浏览器方式提交自己的答案。选手在其它位置的作答或其它方式提交的答案无效。试题包含三种类型:“结果填空”、“代码填空”与“程序设计”。结果填空题:要求选手根据题目描述直接填写结果。求解方式不限。不要求源代码。把结果填空的答案直接通过网页提交即可,不要书写多余的内容。代码填空题:要求选手在弄清给定代码工作原理的基础上填写缺失的部分,使得程序逻辑正确、完整。所填写的代码不超过一条语句(即中间不能出现分号)。把代码填空的答案(仅填空处的答案,不包括题面已存在的代码或符号)直接通过网页提交即可,不要书写多余的内容。注意选择自己使用的编译环境。使用ANSIC/ANSIC++标准,不要依赖操作系统或编译器提供的特殊函数。程序设计题目:要求选手设计的程序对于给定的输入能给出正确的输出结果。考生的程序只有能运行出正确结果才有机会得分。注意:在评卷时使用的输入数据与试卷中给出的示例数据可能是不同的。选手的程序必须是通用的,不能只对试卷中给定的数据有效。对于编程题目,要求选手给出的解答完全符合ANSIC++标准,不能使用诸如绘图、Win32API、中断调用、硬件操作或与操作系统相关的API。代码中允许使用STL类库,但不能使用MFC或ATL等非ANSIC++标准的类库。例如,不能使用CString类型(属于MFC类库)。注意:main函数需要返回0注意:所有依赖的函数必须明确地在源文件中#includexxx,不能通过工程设置而省略常用头文件。所有源码必须在同一文件中。调试通过后,拷贝提交。提交时,注意选择所期望的编译器类型。1.结果填空(满分3分)问题的描述在考生文件夹下对应题号的“题目描述.txt”中。相关的参考文件在同一目第2/14页录中。请先阅读题目,不限解决问题的方式,只要求提交结果。必须通过浏览器提交答案。题目标题:猜年龄美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学。他曾在1935~1936年应邀来中国清华大学讲学。一次,他参加某个重要会议,年轻的脸孔引人注目。于是有人询问他的年龄,他回答说:“我年龄的立方是个4位数。我年龄的4次方是个6位数。这10个数字正好包含了从0到9这10个数字,每个都恰好出现1次。”请你推算一下,他当时到底有多年轻。通过浏览器,直接提交他那时的年龄数字。注意:不要提交解答过程,或其它的说明文字。答案:182.结果填空(满分6分)问题的描述在考生文件夹下对应题号的“题目描述.txt”中。相关的参考文件在同一目录中。请先阅读题目,不限解决问题的方式,只要求提交结果。必须通过浏览器提交答案。标题:马虎的算式小明是个急性子,上小学的时候经常把老师写在黑板上的题目抄错了。有一次,老师出的题目是:36x495=?他却给抄成了:396x45=?但结果却很戏剧性,他的答案竟然是对的!!因为36*495=396*45=17820类似这样的巧合情况可能还有很多,比如:27*594=297*54假设abcde代表1~9不同的5个数字(注意是各不相同的数字,且不含0)能满足形如:ab*cde=adb*ce这样的算式一共有多少种呢?请你利用计算机的优势寻找所有的可能,并回答不同算式的种类数。满足乘法交换律的算式计为不同的种类,所以答案肯定是个偶数。答案直接通过浏览器提交。第3/14页注意:只提交一个表示最终统计种类数的数字,不要提交解答过程或其它多余的内容。答案:33.结果填空(满分8分)问题的描述在考生文件夹下对应题号的“题目描述.txt”中。相关的参考文件在同一目录中。请先阅读题目,不限解决问题的方式,只要求提交结果。必须通过浏览器提交答案。标题:振兴中华小明参加了学校的趣味运动会,其中的一个项目是:跳格子。地上画着一些格子,每个格子里写一个字,如下所示:(也可参见p1.jpg)从我做起振我做起振兴做起振兴中起振兴中华比赛时,先站在左上角的写着“从”字的格子里,可以横向或纵向跳到相邻的格子里,但不能跳到对角的格子或其它位置。一直要跳到“华”字结束。要求跳过的路线刚好构成“从我做起振兴中华”这句话。请你帮助小明算一算他一共有多少种可能的跳跃路线呢?答案是一个整数,请通过浏览器直接提交该数字。注意:不要提交解答过程,或其它辅助说明类的内容。4.结果填空(满分13分)问题的描述在考生文件夹下对应题号的“题目描述.txt”中。相关的参考文件在同一目录中。请先阅读题目,不限解决问题的方式,只要求提交结果。必须通过浏览器提交答案。标题:幻方填空第4/14页幻方是把一些数字填写在方阵中,使得行、列、两条对角线的数字之和都相等。欧洲最著名的幻方是德国数学家、画家迪勒创作的版画《忧郁》中给出的一个4阶幻方。他把1,2,3,...16这16个数字填写在4x4的方格中。如图p1.jpg所示,即:16??13163213??11?5811109??*96712?15?1415141表中有些数字已经显露出来,还有些用?和*代替。请你计算出?和*所代表的数字。并把*所代表的数字作为本题答案提交。答案是一个整数,请通过浏览器直接提交该数字。注意:不要提交解答过程,或其它辅助说明类的内容。5.代码填空(满分5分)问题的描述在考生文件夹下对应题号的“题目描述.txt”中。相关的参考文件在同一目录中。请先阅读题目,不限解决问题的方式。只要求填写缺失的代码部分,千万不要画蛇添足,填写多余的已有代码或符号。必须通过浏览器提交答案。注意选择自己使用的编译环境。题目标题:公约数公倍数第5/14页我们经常会用到求两个整数的最大公约数和最小公倍数的功能。下面的程序给出了一种算法。函数myfunc接受两个正整数a,b经过运算后打印出它们的最大公约数和最小公倍数。此时,调用myfunc(15,20)将会输出:360//交换数值voidswap(int*a,int*b){inttemp;temp=*a;*a=*b;*b=temp;}voidmyfunc(inta,intb){intm,n,r;if(ab)swap(&a,&b);m=a;n=b;r=a%b;while(r!=0){a=b;b=r;r=a%b;}printf(%d\n,b);//最大公约数printf(%d\n,______(m/b)*(n/b)*b_________);//最小公倍数}请分析代码逻辑,并推测划线处的代码,通过网页提交。注意:仅把缺少的代码作为答案,千万不要填写多余的代码、符号或说明文字!!6.代码填空(满分8分)问题的描述在考生文件夹下对应题号的“题目描述.txt”中。相关的参考文件在同一目第6/14页录中。请先阅读题目,不限解决问题的方式。只要求填写缺失的代码部分,千万不要画蛇添足,填写多余的已有代码或符号。必须通过浏览器提交答案。注意选择自己使用的编译环境。标题:三部排序一般的排序有许多经典算法,如快速排序、希尔排序等。但实际应用时,经常会或多或少有一些特殊的要求。我们没必要套用那些经典算法,可以根据实际情况建立更好的解法。比如,对一个整型数组中的数字进行分类排序:使得负数都靠左端,正数都靠右端,0在中部。注意问题的特点是:负数区域和正数区域内并不要求有序。可以利用这个特点通过1次线性扫描就结束战斗!!以下的程序实现了该目标。其中x指向待排序的整型数组,len是数组的长度。voidsort3p(int*x,intlen){intp=0;intleft=0;intright=len-1;while(p=right){if(x[p]0){intt=x[left];x[left]=x[p];x[p]=t;left++;p++;}elseif(x[p]0){intt=x[right];x[right]=x[p];x[p]=t;right--;}else{____p++_____;//填空位置}第7/14页}}如果给定数组:25,18,-2,0,16,-5,33,21,0,19,-16,25,-3,0则排序后为:-3,-2,-16,-5,0,0,0,21,19,33,25,16,18,25请分析代码逻辑,并推测划线处的代码,通过网页提交注意:仅把缺少的代码作为答案,千万不要填写多余的代码、符号或说明文字!!7.程序设计(满分5分)问题的描述在考生文件夹下对应题号的“题目描述.txt”中。相关的参考文件在同一目录中。请先阅读题目,必须通过编程的方式解决问题。注意:在评卷时使用的输入数据与试卷中给出的示例数据可能是不同的。选手的程序必须是通用的,不能只对试卷中给定的数据有效。仔细阅读程序的输入、输出要求,千万不要输出没有要求的、多余的内容,例如:“请您输入xx数据:”。建议仔细阅读示例,不要想当然!程序处理完一个用例的数据后,立即退出(return0),千万不要循环等待下一个用例的输入。程序必须使用标准输入、标准输出,以便于机器评卷时重定向。对于编程题目,要求选手给出的解答完全符合ANSIC++标准,不能使用诸如绘图、Win32API、中断调用、硬件操作或与操作系统相关的API。代码中允许使用STL类库,但不能使用MFC或ATL等非ANSIC++标准的类库。例如,不能使用CString类型(属于MFC类库)。注意:main函数结尾需要return0注意:所有依赖的函数必须明确地在源文件中#includexxx,不能通过工程设置而省略常用头文件。所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。提交时,注意选择所期望的编译器类型。标题:核桃的数量小张是软件项目经理,他带领3个开发组。工期紧,今天都在加班呢。为鼓舞士气,小张打算给每个组发一袋核桃(据传言能补脑)。他的要求是:1.各组的核桃数量必须相同2.各组内必须能平分核桃(当然是不能打碎的)3.尽量提供满足1,2条件的最小数量(节约闹革命嘛)第8/14页程序从标准输入读入:abca,b,c都是正整数,表示每个组正在加班的人数,用空格分开(a,b,c30)程序输出:一个正整数,表示每袋核桃的数量。例如:用户输入:245程序输出:20再例如:用户输入:311程序输出:38.程序设计(满分12分)问题的描述在考生文件夹下对应题号的“题目描述.txt”中。相关的参考文件在同一目录中。请先阅读题目,必须通过编程的方式解决问题。注意:在评卷时使用的输入数据与试卷中给出的示例数据可能是不同的。选手的程序必须是通用的,不能只对试卷中给定的数据有效。仔细阅读程序的输入、输出要求,千万不要输出没有要求的、多余的内容,例如:“请您输入xx数据:”。建议仔细阅读示例,不要想当然!程序处理完一个用例的数据后,立即退出(return0),千万不要循环等待下一个用例的输入。程序必须使用标准输入、标准输出,以便于机器评卷时重定向。对于编程题目,要求选手给出的解答完全符合ANSIC++标准,不能使用诸如绘图、Win32API、中断调用、硬件操作或与操作系统相关的API。代码中允许使用STL类库,但不能使用MFC或ATL等非ANSIC++标准的类库。例如,不能使用CString类型(属于MFC类库)。注意:main函数结尾需要return0注意:所有依赖的函数必须明确地在源文件中#includexxx,不能通过工程设置而省略常用头文件。所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。提交时,注意选择所期望的编译器