1、第七届蓝桥杯大赛CC+大学C组省赛真题第七届蓝桥杯大赛个人赛省赛(软件类)C/C+ 大学C组一、试题1、报纸页数X星球日报和我们地球的城市早报是一样的,都是一些单独的纸张叠在一起而已。每张纸印有4版。比如,某张报纸包含的4页是:5,6,11,12,可以确定它应该是最上边的第2张报纸。我们在太空中捡到了一张X星球的报纸,4个页码分别是:1125,1126,1727,1728请你计算这份报纸一共多少页(也就是最大页码,并不是用了几张纸哦)?请填写表示总页数的数字。注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。2、煤球数目有一堆煤球,堆成三角棱锥形。具体:第一层放1个,第二层3个
2、(排列成三角形),第三层6个(排列成三角形),第四层10个(排列成三角形),.如果一共有100层,共有多少个煤球?请填表示煤球总数目的数字。注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。3、平方怪圈如果把一个正整数的每一位都平方后再求和,得到一个新的正整数。对新产生的正整数再做同样的处理。如此一来,你会发现,不管开始取的是什么数字,最终如果不是落入1,就是落入同一个循环圈。请写出这个循环圈中最大的那个数字。请填写该最大数字。注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。4、打印方格小明想在控制台上输出 m x n 个方格。比如 10x4的,输出的样子是:
3、+-+-+-+-+-+-+-+-+-+-+| | | | | | | | | | |+-+-+-+-+-+-+-+-+-+-+| | | | | | | | | | |+-+-+-+-+-+-+-+-+-+-+| | | | | | | | | | |+-+-+-+-+-+-+-+-+-+-+| | | | | | | | | | |+-+-+-+-+-+-+-+-+-+-+(如果显示有问题,可以参见【图1.jpg】)以下是小明写的程序,请你分析其流程,填写划线部分缺少的代码。#include /打印m列,n行的方格 void f(int m, int n) int row; int col;
4、 for(row=0; rown; row+) for(col=0; colm; col+) printf(+-); printf(+n); for(col=0; colm; col+) printf(| ); printf(|n); printf(+); _; /填空 printf(n);int main() f(10,4); return 0;注意:仅仅填写划线部分缺少的内容,不要添加任何已有内容或说明性文字。5、快速排序排序在各种场合经常被用到。快速排序是十分常用的高效率的算法。其思想是:先选一个“标尺”,用它把整个队列过一遍筛子,以保证:其左边的元素都不大于它,其右边的元素都不小于它。
5、这样,排序问题就被分割为两个子区间。再分别对子区间排序就可以了。下面的代码是一种实现,请分析并填写划线部分缺少的代码。#include void swap(int a, int i, int j) int t = ai; ai = aj; aj = t;int partition(int a, int p, int r) int i = p; int j = r + 1; int x = ap; while(1) while(ir & a+ix); if(i=j) break; swap(a,i,j); _; return j;void quicksort(int a, int p, int
6、r) if(pr) int q = partition(a,p,r); quicksort(a,p,q-1); quicksort(a,q+1,r); int main() int i; int a = 5,13,6,24,2,8,19,27,6,12,1,17; int N = 12; quicksort(a, 0, N-1); for(i=0; iN; i+) printf(%d , ai); printf(n); return 0;注意:只填写缺少的内容,不要书写任何题面已有代码或说明性文字。6、凑算式B DEFA + - + - = 10 C GHI (如果显示有问题,可以参见【图1.
7、jpg】) 这个算式中AI代表09的数字,不同的字母代表不同的数字。比如:6+8/3+952/714 就是一种解法,5+3/1+972/486 是另一种解法。这个算式一共有多少种解法?注意:你提交应该是个整数,不要填写任何多余的内容或说明性文字。7、寒假作业现在小学的数学题目也不是那么好玩的。看看这个寒假作业: + = - = = = (如果显示不出来,可以参见【图1.jpg】) 每个方块代表113中的某一个数字,但不能重复。比如: 6 + 7 = 13 9 - 8 = 1 3 * 4 = 12 10 / 2 = 5以及: 7 + 6 = 13 9 - 8 = 1 3 * 4 = 12 10
8、/ 2 = 5就算两种解法。(加法,乘法交换律后算不同的方案) 你一共找到了多少种方案?请填写表示方案数目的整数。注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。8、冰雹数任意给定一个正整数N,如果是偶数,执行: N / 2如果是奇数,执行: N * 3 + 1生成的新的数字再执行同样的动作,循环往复。通过观察发现,这个数字会一会儿上升到很高,一会儿又降落下来。就这样起起落落的,但最终必会落到“1”这有点像小冰雹粒子在冰雹云中翻滚增长的样子。比如N=99,28,14,7,22,11,34,17,52,26,13,40,20,10,5,16,8,4,2,1可以看到,N=9的时候
9、,这个“小冰雹”最高冲到了52这个高度。输入格式:一个正整数N(N1000000)输出格式:一个正整数,表示不大于N的数字,经过冰雹数变换过程中,最高冲到了多少。例如,输入:10程序应该输出:52再例如,输入:100程序应该输出:9232资源约定:峰值内存消耗 256MCPU消耗 1000ms请严格按要求输出,不要画蛇添足地打印类似:“请您输入.” 的多余内容。所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。注意: main函数需要返回0注意: 只使用ANSI C/ANSI C+ 标准,不要调用依赖于编译环境或操作系统的特殊函数。注意: 所有依赖的函数必须明确地在源文件中 #inclu
10、de , 不能通过工程设置而省略常用头文件。提交时,注意选择所期望的编译器类型。9、卡片换位你玩过华容道的游戏吗?这是个类似的,但更简单的游戏。看下面 3 x 2 的格子+-+-+-+| A | * | * |+-+-+-+| B | | * |+-+-+-+在其中放5张牌,其中A代表关羽,B代表张飞,* 代表士兵。还有一个格子是空着的。你可以把一张牌移动到相邻的空格中去(对角不算相邻)。游戏的目标是:关羽和张飞交换位置,其它的牌随便在哪里都可以。输入格式:输入两行6个字符表示当前的局面输出格式:一个整数,表示最少多少步,才能把AB换位(其它牌位置随意)例如,输入:* A*B程序应该输出:17
11、再例如,输入:A B*程序应该输出:12资源约定:峰值内存消耗 256MCPU消耗 1000ms请严格按要求输出,不要画蛇添足地打印类似:“请您输入.” 的多余内容。所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。注意: main函数需要返回0注意: 只使用ANSI C/ANSI C+ 标准,不要调用依赖于编译环境或操作系统的特殊函数。注意: 所有依赖的函数必须明确地在源文件中 #include , 不能通过工程设置而省略常用头文件。提交时,注意选择所期望的编译器类型。10、密码脱落X星球的考古学家发现了一批古代留下来的密码。这些密码是由A、B、C、D 四种植物的种子串成的序列。仔细分
12、析发现,这些密码串当初应该是前后对称的(也就是我们说的镜像串)。由于年代久远,其中许多种子脱落了,因而可能会失去镜像的特征。你的任务是:给定一个现在看到的密码串,计算一下从当初的状态,它要至少脱落多少个种子,才可能会变成现在的样子。输入一行,表示现在看到的密码串(长度不大于1000)要求输出一个正整数,表示至少脱落了多少个种子。例如,输入:ABCBA则程序应该输出:0再例如,输入:ABECDCBABC则程序应该输出:3资源约定:峰值内存消耗 256MCPU消耗 3000ms请严格按要求输出,不要画蛇添足地打印类似:“请您输入.” 的多余内容。所有代码放在同一个源文件中,调试通过后,拷贝提交该源
13、码。注意: main函数需要返回0注意: 只使用ANSI C/ANSI C+ 标准,不要调用依赖于编译环境或操作系统的特殊函数。注意: 所有依赖的函数必须明确地在源文件中 #include , 不能通过工程设置而省略常用头文件。提交时,注意选择所期望的编译器类型。二、我的作答1、28522、1717003、1454、for(col=0; colk) k=n; printf(%ld,k); return 0;9、10、代码#includestdio.h#include main() int i,n; char st1000; gets(st); i=strlen(st); for(n=0;stn!=sti-1;n+); printf(%d,n); return 0;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1