第七届蓝桥杯大赛CC++大学C组省赛真题.docx

上传人:b****7 文档编号:8796286 上传时间:2023-02-01 格式:DOCX 页数:11 大小:36.26KB
下载 相关 举报
第七届蓝桥杯大赛CC++大学C组省赛真题.docx_第1页
第1页 / 共11页
第七届蓝桥杯大赛CC++大学C组省赛真题.docx_第2页
第2页 / 共11页
第七届蓝桥杯大赛CC++大学C组省赛真题.docx_第3页
第3页 / 共11页
第七届蓝桥杯大赛CC++大学C组省赛真题.docx_第4页
第4页 / 共11页
第七届蓝桥杯大赛CC++大学C组省赛真题.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

第七届蓝桥杯大赛CC++大学C组省赛真题.docx

《第七届蓝桥杯大赛CC++大学C组省赛真题.docx》由会员分享,可在线阅读,更多相关《第七届蓝桥杯大赛CC++大学C组省赛真题.docx(11页珍藏版)》请在冰豆网上搜索。

第七届蓝桥杯大赛CC++大学C组省赛真题.docx

第七届蓝桥杯大赛CC++大学C组省赛真题

第七届蓝桥杯大赛个人赛省赛(软件类)

C/C++大学C组

一、

试题

1、报纸页数

X星球日报和我们地球的城市早报是一样的,

都是一些单独的纸张叠在一起而已。

每张纸印有4版。

比如,某张报纸包含的4页是:

5,6,11,12,

可以确定它应该是最上边的第2张报纸。

我们在太空中捡到了一张X星球的报纸,4个页码分别是:

1125,1126,1727,1728

请你计算这份报纸一共多少页(也就是最大页码,并不是用了几张纸哦)?

请填写表示总页数的数字。

注意:

你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。

2、煤球数目

有一堆煤球,堆成三角棱锥形。

具体:

第一层放1个,

第二层3个(排列成三角形),

第三层6个(排列成三角形),

第四层10个(排列成三角形),

....

如果一共有100层,共有多少个煤球?

请填表示煤球总数目的数字。

注意:

你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。

3、平方怪圈

如果把一个正整数的每一位都平方后再求和,得到一个新的正整数。

对新产生的正整数再做同样的处理。

如此一来,你会发现,不管开始取的是什么数字,

最终如果不是落入1,就是落入同一个循环圈。

请写出这个循环圈中最大的那个数字。

请填写该最大数字。

注意:

你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。

4、打印方格

小明想在控制台上输出mxn个方格。

比如10x4的,输出的样子是:

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

|||||||||||

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

|||||||||||

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

|||||||||||

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

|||||||||||

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

(如果显示有问题,可以参见【图1.jpg】)

以下是小明写的程序,请你分析其流程,填写划线部分缺少的代码。

 

#include

//打印m列,n行的方格

voidf(intm,intn)

{

introw;

intcol;

for(row=0;row

for(col=0;col

printf("+\n");

for(col=0;col

printf("|\n");

}

printf("+");

_____________________________;//填空

printf("\n");

}

intmain()

{

f(10,4);

return0;

}

注意:

仅仅填写划线部分缺少的内容,不要添加任何已有内容或说明性文字。

5、快速排序

排序在各种场合经常被用到。

快速排序是十分常用的高效率的算法。

其思想是:

先选一个“标尺”,

用它把整个队列过一遍筛子,

以保证:

其左边的元素都不大于它,其右边的元素都不小于它。

这样,排序问题就被分割为两个子区间。

再分别对子区间排序就可以了。

下面的代码是一种实现,请分析并填写划线部分缺少的代码。

 

#include

voidswap(inta[],inti,intj)

{

intt=a[i];

a[i]=a[j];

a[j]=t;

}

intpartition(inta[],intp,intr)

{

inti=p;

intj=r+1;

intx=a[p];

while

(1){

while(i

while(a[--j]>x);

if(i>=j)break;

swap(a,i,j);

}

______________________;

returnj;

}

voidquicksort(inta[],intp,intr)

{

if(p

intq=partition(a,p,r);

quicksort(a,p,q-1);

quicksort(a,q+1,r);

}

}

intmain()

{

inti;

inta[]={5,13,6,24,2,8,19,27,6,12,1,17};

intN=12;

quicksort(a,0,N-1);

for(i=0;i

printf("\n");

return0;

}

 

注意:

只填写缺少的内容,不要书写任何题面已有代码或说明性文字。

6、凑算式

BDEF

A+---+-------=10

CGHI

(如果显示有问题,可以参见【图1.jpg】)

这个算式中A~I代表0~9的数字,不同的字母代表不同的数字。

比如:

6+8/3+952/714就是一种解法,

5+3/1+972/486是另一种解法。

这个算式一共有多少种解法?

注意:

你提交应该是个整数,不要填写任何多余的内容或说明性文字。

7、寒假作业

现在小学的数学题目也不是那么好玩的。

看看这个寒假作业:

□+□=□

□-□=□

□×□=□

□÷□=□

(如果显示不出来,可以参见【图1.jpg】)

每个方块代表1~13中的某一个数字,但不能重复。

比如:

6+7=13

9-8=1

3*4=12

10/2=5

以及:

7+6=13

9-8=1

3*4=12

10/2=5

就算两种解法。

(加法,乘法交换律后算不同的方案)

你一共找到了多少种方案?

 

请填写表示方案数目的整数。

注意:

你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。

8、冰雹数

任意给定一个正整数N,

如果是偶数,执行:

N/2

如果是奇数,执行:

N*3+1

生成的新的数字再执行同样的动作,循环往复。

通过观察发现,这个数字会一会儿上升到很高,

一会儿又降落下来。

就这样起起落落的,但最终必会落到“1”

这有点像小冰雹粒子在冰雹云中翻滚增长的样子。

比如N=9

9,28,14,7,22,11,34,17,52,26,13,40,20,10,5,16,8,4,2,1

可以看到,N=9的时候,这个“小冰雹”最高冲到了52这个高度。

输入格式:

一个正整数N(N<1000000)

输出格式:

一个正整数,表示不大于N的数字,经过冰雹数变换过程中,最高冲到了多少。

例如,输入:

10

程序应该输出:

52

再例如,输入:

100

程序应该输出:

9232

资源约定:

峰值内存消耗<256M

CPU消耗<1000ms

请严格按要求输出,不要画蛇添足地打印类似:

“请您输入...”的多余内容。

所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。

注意:

main函数需要返回0

注意:

只使用ANSIC/ANSIC++标准,不要调用依赖于编译环境或操作系统的特殊函数。

注意:

所有依赖的函数必须明确地在源文件中#include,不能通过工程设置而省略常用头文件。

提交时,注意选择所期望的编译器类型。

9、卡片换位

你玩过华容道的游戏吗?

这是个类似的,但更简单的游戏。

看下面3x2的格子

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

|A|*|*|

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

|B||*|

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

在其中放5张牌,其中A代表关羽,B代表张飞,*代表士兵。

还有一个格子是空着的。

你可以把一张牌移动到相邻的空格中去(对角不算相邻)。

游戏的目标是:

关羽和张飞交换位置,其它的牌随便在哪里都可以。

输入格式:

输入两行6个字符表示当前的局面

输出格式:

一个整数,表示最少多少步,才能把AB换位(其它牌位置随意)

例如,输入:

*A

**B

程序应该输出:

17

再例如,输入:

AB

***

程序应该输出:

12

 

资源约定:

峰值内存消耗<256M

CPU消耗<1000ms

请严格按要求输出,不要画蛇添足地打印类似:

“请您输入...”的多余内容。

所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。

注意:

main函数需要返回0

注意:

只使用ANSIC/ANSIC++标准,不要调用依赖于编译环境或操作系统的特殊函数。

注意:

所有依赖的函数必须明确地在源文件中#include,不能通过工程设置而省略常用头文件。

提交时,注意选择所期望的编译器类型。

10、密码脱落

X星球的考古学家发现了一批古代留下来的密码。

这些密码是由A、B、C、D四种植物的种子串成的序列。

仔细分析发现,这些密码串当初应该是前后对称的(也就是我们说的镜像串)。

由于年代久远,其中许多种子脱落了,因而可能会失去镜像的特征。

你的任务是:

给定一个现在看到的密码串,计算一下从当初的状态,它要至少脱落多少个种子,才可能会变成现在的样子。

输入一行,表示现在看到的密码串(长度不大于1000)

要求输出一个正整数,表示至少脱落了多少个种子。

例如,输入:

ABCBA

则程序应该输出:

0

再例如,输入:

ABECDCBABC

则程序应该输出:

3

资源约定:

峰值内存消耗<256M

CPU消耗<3000ms

请严格按要求输出,不要画蛇添足地打印类似:

“请您输入...”的多余内容。

所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。

注意:

main函数需要返回0

注意:

只使用ANSIC/ANSIC++标准,不要调用依赖于编译环境或操作系统的特殊函数。

注意:

所有依赖的函数必须明确地在源文件中#include,不能通过工程设置而省略常用头文件。

提交时,注意选择所期望的编译器类型。

二、我的作答

1、2852

2、171700

3、145

4、for(col=0;col

5、swap(a,p,j)

6、32990530

7、4(猜的)

8、代码

#include"stdio.h"

main()

{

longintn,k;

scanf("%ld",&n);

k=n;

while(n!

=1)

{

if(n%2==0)

n=n/2;

else

n=n*3+1;

if(n>k)

k=n;

}

printf("%ld",k);

return0;

}

9、

10、代码

#include"stdio.h"

#include

main()

{

inti,n;

charst[1000];

gets(st);

i=strlen(st);

for(n=0;st[n]!

=st[i-1];n++);

printf("%d",n);

return0;

}

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

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

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

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