蓝桥杯模拟题含本科高职javacc++731 23621.docx

上传人:b****7 文档编号:9551175 上传时间:2023-02-05 格式:DOCX 页数:32 大小:28.93KB
下载 相关 举报
蓝桥杯模拟题含本科高职javacc++731 23621.docx_第1页
第1页 / 共32页
蓝桥杯模拟题含本科高职javacc++731 23621.docx_第2页
第2页 / 共32页
蓝桥杯模拟题含本科高职javacc++731 23621.docx_第3页
第3页 / 共32页
蓝桥杯模拟题含本科高职javacc++731 23621.docx_第4页
第4页 / 共32页
蓝桥杯模拟题含本科高职javacc++731 23621.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

蓝桥杯模拟题含本科高职javacc++731 23621.docx

《蓝桥杯模拟题含本科高职javacc++731 23621.docx》由会员分享,可在线阅读,更多相关《蓝桥杯模拟题含本科高职javacc++731 23621.docx(32页珍藏版)》请在冰豆网上搜索。

蓝桥杯模拟题含本科高职javacc++731 23621.docx

蓝桥杯模拟题含本科高职javacc++73123621

1.竞赛规则及样题(JAVA、C/C++)3

1.1.组别3

1.2.时长3

1.3.形式3

1.4.参赛选手机器环境3

1.5.题目形式4

1.6.涉及知识4

1.7.评分5

2.2011模拟c语言本科5

2.1.代码填空(满分2分)6

2.2.代码填空(满分3分)6

2.3.代码填空(满分3分)6

2.4.代码填空(满分5分)6

2.5.代码填空(满分6分)6

2.6.代码填空(满分9分)7

2.7.代码设计(满分5分)8

2.8.代码设计(满分11分)8

2.9.代码设计(满分18分)9

2.10.代码设计(满分20分)9

3.2011模拟java本科9

3.1.代码填空(满分2分)10

3.2.代码填空(满分3分)10

3.3.代码填空(满分4分)10

3.4.代码填空(满分5分)11

3.5.代码填空(满分6分)11

3.6.代码填空(满分9分)12

3.7.代码设计(满分5分)13

3.8.代码设计(满分11分)13

3.9.代码设计(满分18分)14

3.10.代码设计(满分20分)14

4.2011模拟c语言高职14

4.1.代码填空(满2分)15

4.2.代码填空(满分3分)15

4.3.代码填空(满分3分)15

4.4.代码填空(满分6分)15

4.5.代码填空(满分7分)16

4.6.代码填空(满分10分)16

4.7.程序设计(满分15分)16

4.8.程序设计(满分9分)17

4.9.程序设计(满分12分)17

4.10.程序设计(满分20分)18

5.2011模拟java高职18

5.1.代码填空(满分3分)18

5.2.代码填空(满分4分)19

5.3.代码填空(满分3分)19

5.4.代码填空(满分5分)19

5.5.代码填空(满分2分)20

5.6.代码填空(满分9分)20

5.7.代码填空(满分4分)20

5.8.程序设计(满分15分)21

5.9.程序设计(满分9分)21

5.10.程序设计(满分20分)21

5.11.程序设计(满分9分)22

1.竞赛规则及样题(JAVA、C/C++)

1.1.组别

竞赛分为:

高职高专c/c++,高职高专java,本科c/c++,本科java共4个组别。

每位选手只能参加其中一个组别的竞赛。

1.2.时长

4小时,全程封闭。

1.3.形式

全程机考。

选手机器通过局域网连接到各个分赛区的竞赛服务器。

以服务器-浏览器方式发放试题、提交结果。

1.4.参赛选手机器环境

●机器配置

X86兼容机器,内存不小于1G,硬盘不小于60G

WindowsNT内核系统(WindowsXP,Windows2000等)

●c/c++开发环境:

VisualC++6.0(英文,精简版)

支持ANSIC++标准

支持STL

不支持MFC,ATL类库

帮助文档(英文,chm格式)

BorlandC++3.1(精简版)

●Java开发环境

JDK1.5

EclipseHeliosforJavaSE

JCreator2.0

API帮助文档(英文,中文,chm格式)

1.5.题目形式

竞赛题目完全为客观题型,选手所提交程序的运行结果为主要评分依据。

(1)填空题

题目为若干具有一定难度梯度、分值不等的结果填空题或代码完善填空题。

●结果填空题

题目描述一个具有确定解的问题。

要求选手对问题的解填空。

●代码填空题

题目描述一个具有确定解的问题。

题目同时给出解决该问题的代码,但其中有缺失部分。

要求选手读懂代码逻辑,对其中的空缺部分补充代码,使整段代码完整。

(2)编程题

题目为若干具有一定难度梯度、分值不等的编程题目。

这些题目的要求明确、答案客观。

题目一般要用到标准输入和输出。

要求选手通过编程,对给定的标准输入求解,并通过标准输出按题目要求的格式输出解。

一般题目的难度主要集中于对算法的设计和逻辑的组织上。

理论上,考生不可能通过猜测或其它非编程的手段获得问题的解。

1.6.涉及知识

●Java高职高专组

解题所涉及的知识:

基本语法、面向对象、网络编程、接口、集合、IO、多线程、内部类、异常。

(数据结构、swing等图形界面不涉及,不涉及html、JSP、Tomcat、开源框架等web开发方面,不涉及JDBC、SQL等数据库编程方面)

解题允许使用的特性:

JDK1.5支持的全部特性

●Java本科组

解题所涉及的知识:

Java高职高专组全部知识+数据结构(高校《数据结构》教材中出现的经典结构,及其通过组合、变形、改良等方法创造出的变种)

解题允许使用的特性:

同java高职高专组

●c/c++高职高专组

解题所涉及的知识:

结构、数组、指针、标准输入输出、文件操作

(在代码填空中不会出现c++知识,不会出现ANSIC之外的windowsAPI调用)

解题允许使用的特性:

选手可以使用c风格或c++风格或混合风格解答编程大题。

允许使用ANSIC++特性。

允许使用STL类库。

(不允许使用MFC类库,ATL类库)

●c/c++本科组

解题所涉及的知识:

c/c++高职高专组全部知识+递归、函数指针、位运算

解题允许使用的特性:

同c/c++高职高专组

1.7.评分

结果填空题:

答案唯一。

程序填空题:

按选手填写的代码代入程序中能否得出正确结果为判据。

编程大题:

主要以选手所提交的程序的运行结果为依据(大于90%);同时会参考选手程序的编码风格、逻辑性、可读性等方面(小于10%)。

2.2011模拟c语言本科

注意:

本套模拟题主要模拟命题形式与考核范围。

真实竞赛题的数量、难度可能与此套模拟题有差异。

说明:

本试卷包含两种题型:

“代码填空”与“程序设计”。

填空题要求参赛选手在弄清给定代码工作原理的基础上填写缺失的部分,使得程序逻辑正确、完整。

所填写的代码不多于一条语句(即不能出现分号)。

编程题要求选手设计的程序对于给定的输入能给出正确的输出结果。

注意:

在评卷时使用的输入数据与试卷中给出的实例数据可能是不同的。

选手的程序必须是通用的,不能只对试卷中给定的数据有效。

2.1.代码填空(满分2分)

下列代码,把一个2位整数交换十位与个位的位置。

请填写缺失的代码。

例如:

当x=95时,返回59。

intswitch_num(intx)

{

inta=x/10;

intb=x%10;

return______b*10+a____________;

}

2.2.代码填空(满分3分)

下列代码把一个二进制的串转换为整数。

请填写缺少的语句;

char*p="1010110001100";

intn=0;

for(inti=0;i

{

n=__________________;

}

printf("%d\n",n);

2.3.代码填空(满分3分)

假设a,b,c是3个互不相等的整数。

下列代码取出它们中居中的数值,记录在m中。

其中的swap()函数可以交换两个变量的值。

请完善代码。

if(a>b)swap(&a,&b);

if(b>c)swap(&b,&c);

______________________;

intm=b;

2.4.代码填空(满分5分)

计算3个A,2个B可以组成多少种排列的问题(如:

AAABB,AABBA)是《组合数学》的研究领域。

但有些情况下,也可以利用计算机计算速度快的特点通过巧妙的推理来解决问题。

下列的程序计算了m个A,n个B可以组合成多少个不同排列的问题。

请完善它。

intf(intm,intn)

{

if(m==0||n==0)return1;

return_______________________;

}

2.5.代码填空(满分6分)

此段代码的意图是把一个缓冲区中的整数重新排列,使得所有负数都在正数的左边。

请分析其工作流程,补充缺失的代码。

voidreorder(int*pData,intlen)

{

if(pData==NULL||len==0)return;

int*pBegin=pData;

int*pEnd=____________;

while(pBegin

{

if(*pBegin<0)

{

pBegin++;

__________;

}

if(*pEnd>=0)

{

pEnd--;

___________;

}

inttemp=*pBegin;

*pBegin=*pEnd;

*pEnd=temp;

}

}

intmain(intargc,char**argv)

{

inta[]={1,2,3,-5,-4,5,9,-8,-1};

reorder(a,9);

for(inti=0;i<9;i++)printf("%d",a[i]);

printf("\n");

return0;

}

2.6.代码填空(满分9分)

给定一个字符串,其含有的字符各不相同。

程序输出该字符串的所有排列(全排列)情形。

例如:

给定字符串“xyz”,则程序输出:

xyz

xzy

yxz

yzx

zyx

zxy

试完善程序中空缺的部分。

voidf(char*str,intlen,intn)

{

inti;

chartmp;

char*p=(char*)malloc(__________);

if(n==len-1){

printf("%s\n",str);

}else{

for(i=n;i

strcpy(p,str);

tmp=*(str+n);

*(str+n)=*(str+i);

*(str+i)=tmp;

_______________;

strcpy(str,p);

}

}

free(p);

}

intmain(intargc,char**argv)

{

charstr[]="xyz";

f(str,3,0);

printf("\n");

return0;

}

2.7.代码设计(满分5分)

625这个数字很特别,625的平方等于390625,刚好其末3位是625本身。

除了625,还有其它的3位数有这个特征吗?

请编写程序,寻找所有这样的3位数:

它的平方的末3位是这个数字本身。

输出结果中,从小到大,每个找到的数字占一行。

比如那个625就输出为:

625

2.8.代码设计(满分11分)

某游戏规则中,甲乙双方每个回合的战斗总是有一方胜利,一方失败。

游戏规定:

失败的一方要把自己的体力值的1/4加给胜利的一方。

例如:

如果双方体力值当前都是4,则经过一轮战斗后,双方的体力值会变为:

5,3。

现在已知:

双方开始时的体力值甲:

1000,乙:

2000。

假设战斗中,甲乙获胜的概率都是50%

求解:

双方经过4个回合的战斗,体力值之差小于1000的理论概率。

2.9.代码设计(满分18分)

整数的分划问题。

如,对于正整数n=6,可以分划为:

6

5+1

4+2,4+1+1

3+3,3+2+1,3+1+1+1

2+2+2,2+2+1+1,2+1+1+1+1

1+1+1+1+1+1+1

现在的问题是,对于给定的正整数n,编写算法打印所有划分。

用户从键盘输入n(范围1~10)

程序输出该整数的所有划分。

2.10.代码设计(满分20分)

一个N位的十进制正整数,如果它的每个位上的数字的N次方的和等于这个数本身,则称其为花朵数。

例如:

当N=3时,153就满足条件,因为1^3+5^3+3^3=153,这样的数字也被称为水仙花数(其中,“^”表示乘方,5^3表示5的3次方,也就是立方)。

当N=4时,1634满足条件,因为1^4+6^4+3^4+4^4=1634。

当N=5时,92727满足条件。

实际上,对N的每个取值,可能有多个数字满足条件。

程序的任务是:

求N=21时,所有满足条件的花朵数。

注意:

这个整数有21位,它的各个位数字的21次方之和正好等于这个数本身。

如果满足条件的数字不只有一个,请从小到大输出所有符合条件的数字,每个数字占一行。

因为这个数字很大,请注意解法时间上的可行性。

要求程序在3分钟内运行完毕。

 

3.2011模拟java本科

注意:

本套模拟题主要模拟命题形式与考核范围。

真实竞赛题的数量、难度可能与此套模拟题有差异。

说明:

本试卷包含两种题型:

“代码填空”与“程序设计”。

填空题要求参赛选手在弄清给定代码工作原理的基础上填写缺失的部分,使得程序逻辑正确、完整。

所填写的代码不多于一条语句(即不能出现分号)。

编程题要求选手设计的程序对于给定的输入能给出正确的输出结果。

注意:

在评卷时使用的输入数据与试卷中给出的实例数据可能是不同的。

选手的程序必须是通用的,不能只对试卷中给定的数据有效。

3.1.代码填空(满分2分)

在ABCDEF六人中随机抽取3人中奖,要求中奖人不能重复。

请完善以下代码:

publicclassMyTest

{

publicstaticvoidmain(String[]args)

{

Vectora=newVector();

for(chari='A';i<='F';i++)a.add(""+i);

for(intk=0;k<3;k++)

{

intd=____________________________;

System.out.println(a.remove(d));

}

}

}

3.2.代码填空(满分3分)

不同进制的数值间的转换是软件开发中很可能会遇到的常规问题。

下面的代码演示了如何把键盘输入的3进制数字转换为十进制。

试完善之。

BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));

Strings=br.readLine();

intn=0;

for(inti=0;i

{

charc=s.charAt(i);

if(c<'0'||c>'2')thrownewRuntimeException("Formaterror");

n=______________________;

}

System.out.println(n);

3.3.代码填空(满分4分)

有如下程序,完成的功能为:

找出数组中的最大元素。

请填写程序的中空白,使程序运行正确。

publicclasstest

{

publicstaticvoidmain(String[]args){

intarray[]={0,34,67,90,21,-9,98,1000,-78};

System.out.println(newtest().findMax(array,0));

}

publicintfindMax(intarray[],intindex)

{

if(array==null||array.length==0)

{

return0;

}

intmax=array[0];

if(index

{

max=____________________

}

if(max

returnmax;

}

}

3.4.代码填空(满分5分)

电视台开宝箱节目:

打进电话的人可以开启一个宝箱。

箱子中有一件礼品。

礼品是iphone的机率为1/12;是mp3的机率为1/5;是洗衣粉的机率为1/2;剩余是KFC优惠券。

每次打进电话,宝箱会重置。

以下程序模拟了该抽奖过程。

请填写缺失的部分。

publicstaticvoidmain(String[]args)

{

inti=(int)Math.random()*_____________;

if(i<5){

System.out.println("恭喜中了:

iphone手机");

}elseif(i<17){

System.out.println("恭喜中了:

mp3");

}elseif(i<47){

System.out.println("恭喜中了:

洗衣粉");

}else{

System.out.println("恭喜中了:

KFC优惠券");

}

}

3.5.代码填空(满分6分)

下列代码求出一个二进制串中连续的1或连续的0出现的最大次数。

请填缺失代码。

例如:

s=“101100111100011”

则返回:

4

又例如:

s=”0111100000”

则返回:

5

publicstaticintgetMaxContinuity(Strings)

{

intmax_1=0;

intmax_0=0;

intn_1=0;//当前1连续的次数

intn_0=0;//当前0连续的次数

for(inti=0;i

{

if(s.charAt(i)=='0')

{

n_0++;

________;

}

else

{

n_1++;

_________;

}

if(n_1>max_1)max_1=n_1;

if(n_0>max_0)max_0=n_0;

}

returnmax_1>max_0?

max_1:

max_0);

}

3.6.代码填空(满分9分)

下列代码把16进制表示的串转换为3进制表示的串。

试完善之。

例如:

x=“5”

则返回:

“12”

又例如:

x=”F”

则返回:

“120”

privatestaticintgetRealValue(charx)

{

if(x>='0'&&x<='9')returnx-'0';

if(x>='a'&&x<='f')returnx-'a'+10;

if(x>='A'&&x<='F')returnx-'A'+10;

return0;

}

publicstaticStringjin_zhi_16_3(Stringx)

{

intn=0;//累加真值

for(inti=0;i

{

n=_________+getRealValue(x.charAt(i));//填空

}

Stringt="";

for(;;)

{

if(n==0)break;

t=(n%3)+t;

_____________;//填空

}

returnt;

}

3.7.代码设计(满分5分)

625这个数字很特别,625的平方等于390625,刚好其末3位是625本身。

除了625,还有其它的3位数有这个特征吗?

请编写程序,寻找所有这样的3位数:

它的平方的末3位是这个数字本身。

输出结果中,从小到大,每个找到的数字占一行。

比如那个625就输出为:

625

3.8.代码设计(满分11分)

考虑方程式:

a^3+b^3=c^3+d^3

其中:

“^”表示乘方。

a、b、c、d是互不相同的小于30的正整数。

这个方程有很多解。

比如:

a=1,b=12,c=9,d=10就是一个解。

因为:

1的立方加12的立方等于1729,而9的立方加10的立方也等于1729。

当然,a=12,b=1,c=9,d=10显然也是解。

如果不计abcd交换次序的情况,这算同一个解。

你的任务是:

找到所有小于30的不同的正整数解。

把abcd按从小到大排列,用逗号分隔,每个解占用1行。

比如,刚才的解输出为:

1,9,10,12

不同解间的顺序可以不考虑。

3.9.代码设计(满分18分)

整数的分划问题。

如,对于正整数n=6,可以分划为:

6

5+1

4+2,4+1+1

3+3,3+2+1,3+1+1+1

2+2+2,2+2+1+1,2+1+1+1+1

1+1+1+1+1+1+1

现在的问题是,对于给定的正整数n,编写算法打印所有划分。

用户从键盘输入n(范围1~10)

程序输出该整数的所有划分。

3.10.代码设计(满分20分)

一个N位的十进制正整数,如果它的每个位上的数字的N次方的和等于这个数本身,则称其为花朵数。

例如:

当N=3时,153就满足条件,因为1^3+5^3+3^3=153,这样的数字也被称为水仙花数(其中,“^”表示乘方,5^3表示5的3次方,也就是立方)。

当N=4时,1634满足条件,因为1^4+6^4+3^4+4^4=1634。

当N=5时,92727满足条件。

实际上,对N的每个取值,可能有多个数字满足条件。

程序的任务是:

求N=21时,所有满足条件的花朵数。

注意:

这个整数有21位,它的各个位数字的21次方之和正好等于这个数本身。

如果满足条件的数字不只有一个,请从小到大输出所有符合条件的数字,每个数字占一行。

因为这个数字很大,请注意解法时间上的可行性。

要求程序在3分钟内运行完毕。

 

4.2011模拟c语言高职

注意:

本套模拟题主要模拟命题形式与考核范围。

真实竞赛题的数量、难度可能与此套模拟题有差异。

说明:

本试卷包含两种题型:

“代码填空”与“程序设计”。

填空题要求参赛选手在弄清给定代码工作原理的基础上填写缺失的部分,使得程序逻辑正确、完整。

所填写的代码不多于一条语句(即不能出现分号)。

编程题要求选手设计的程序对于给定的输入能给出正确的输出结果。

注意:

在评卷时使用的

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1