蓝桥杯cc省赛试题及答案解析
蓝桥杯第七届cc初赛试题及答案

蓝桥杯第七届cc初赛试题及答案蓝桥杯第七届CC初赛试题及答案1. 选择题1.1 以下哪个选项是C语言中定义数组的正确方式?A) int array[10];B) int array[];C) int [10] array;D) int array=10;答案:A1.2 以下哪个关键字用于定义一个结构体?A) structB) unionC) enumD) typedef答案:A1.3 在C语言中,哪个运算符用于取地址?A) *B) &C) %D) #答案:B2. 填空题2.1 在C语言中,关键字________用于定义一个函数。
答案:void2.2 如果一个变量的值是10,那么表达式sizeof(&variable)的结果是________。
答案:4(或根据系统不同,可能是8)2.3 在C语言中,________运算符用于定义一个指针。
答案:*3. 编程题3.1 编写一个C语言程序,计算并输出100以内所有偶数的和。
答案:```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}printf("Sum of even numbers from 1 to 100 is: %d\n", sum);return 0;}```3.2 编写一个C语言程序,实现字符串的反转。
答案:```c#include <stdio.h>#include <string.h>void reverseString(char *str) {int len = strlen(str);for (int i = 0; i < len / 2; i++) {char temp = str[i];str[i] = str[len - i - 1];str[len - i - 1] = temp;}}int main() {char str[] = "Hello, World!";reverseString(str);printf("Reversed string: %s\n", str);return 0;}```4. 简答题4.1 请解释C语言中指针和引用的区别。
第十一届蓝桥杯大赛软件类省赛第三场 CC++

第十一届蓝桥杯大赛软件类省赛第三场C/C++大学B组第十一届蓝桥杯大赛软件类省赛第三场C/C++大学B组【考生须知】考试开始后,选手首先下载题目,并使用考场现场公布的解压密码解压试题。
考试时间为4小时。
考试期间选手可浏览自己已经提交的答案,被浏览的答案允许拷贝。
时间截止后,将无法继续提交或浏览答案。
对同一题目,选手可多次提交答案,以最后一次提交的答案为准。
选手必须通过浏览器方式提交自己的答案。
选手在其它位置的作答或其它方式提交的答案无效。
试题包含“结果填空”和“程序设计”两种题型。
结果填空题:要求选手根据题目描述直接填写结果。
求解方式不限。
不要求源代码。
把结果填空的答案直接通过网页提交即可,不要书写多余的内容。
程序设计题:要求选手设计的程序对于给定的输入能给出正确的输出结果。
考生的程序只有能运行出正确结果才有机会得分。
注意:在评卷时使用的输入数据与试卷中给出的示例数据可能是不同的。
选手的程序必须是通用的,不能只对试卷中给定的数据有效。
对于编程题目,要求选手给出的解答完全符合GNU C/C++标准,不能使用诸如绘图、Win32API、中断调用、硬件操作或与操作系统相关的API。
代码中允许使用STL类库。
注意:main函数结束必须返回0注意:所有依赖的函数必须明确地在源文件中#include<xxx>,不能通过工程设置而省略常用头文件。
所有源码必须在同一文件中。
调试通过后,拷贝提交。
提交时,注意选择所期望的编译器类型。
第十一届蓝桥杯大赛软件类省赛第三场1第十一届蓝桥杯大赛软件类省赛第三场C/C++大学B组试题A:数青蛙本题总分:5分【问题描述】“一只青蛙一张嘴,两只眼睛四条腿。
两只青蛙两张嘴,四只眼睛八条腿。
三只青蛙三张嘴,六只眼睛十二条腿。
……二十只青蛙二十张嘴,四十只眼睛八十条腿。
”请问上面这段文字,如果完全不省略,全部写出来,从1到20只青蛙,总共有多少个汉字。
约定:数字2单独出现读成“两”,在其他数里面读成“二”,例如“十二”。
第三届蓝桥杯预赛真题及详细答案

第三届蓝桥桥杯预赛真题及详细答案一、微生物增殖假设有两种微生物X 和YX出生后每隔3分钟分裂一次(数目加倍),Y出生后每隔2分钟分裂一次(数目加倍)。
一个新出生的X,半分钟之后吃掉1个Y,并且,从此开始,每隔1分钟吃1个Y。
现在已知有新出生的X=10, Y=89,求60分钟后Y的数目。
如果X=10,Y=90 呢?本题的要求就是写出这两种初始条件下,60分钟后Y的数目。
题目的结果令你震惊吗?这不是简单的数字游戏!真实的生物圈有着同样脆弱的性质!也许因为你消灭的那只Y 就是最终导致Y 种群灭绝的最后一根稻草!请忍住悲伤,把答案写在“解答.txt”中,不要写在这里!答案:0 和94371840(此题比较简单就不写程序了,以下均有程序)二、古堡算式福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式:ABCDE * ? = EDCBA他对华生说:“ABCDE应该代表不同的数字,问号也代表某个数字!”华生:“我猜也是!”于是,两人沉默了好久,还是没有算出合适的结果来。
请你利用计算机的优势,找到破解的答案。
把ABCDE 所代表的数字写出来。
答案写在“解答.txt”中,不要写在这里!参考答案:21978参考程序:#include<stdio.h>void main(){int k,t1 ,t;for(k=10234;k<50000;k++){bool flag[10]={0};t=k;t1=0;while(t){if(flag[t%10])break ;flag[t%10] = true ;t1 = t1*10 + t%10 ;t /= 10 ;}if( t==0 && t1%k==0){printf("%d * %d = %d\n",k,t1/k,t1);}}三、比酒量有一群海盗(不多于20人),在船上比拼酒量。
过程如下:打开一瓶酒,所有在场的人平分喝下,有几个人倒下了。
第三届全国软件大赛决赛C本科真题与答案详析

第三届“蓝桥杯”全国软件专业人才设计与创业大赛全国总决赛C/C++程序设计本科组比赛选手须知:●比赛时间为4小时(9:00-13:00)。
●参赛选手切勿在提交的代码中书写“XX”、“考号”,“院校名”等身份信息或其它与竞赛题目无关的内容,否则成绩无效。
●试题包含三种类型:“结果填空”、“代码填空”与“程序设计”,总计100分。
结果填空:5分代码填空:16分程序设计:19+27+33= 79分结果填空题:要求参赛选手根据题目描述直接填写结果。
求解方式不限。
不要求源代码。
把结果填空的答案存入【XX+XX文件夹】下对应题号的“解答.txt”中即可。
代码填空题:要求参赛选手在弄清给定代码工作原理的基础上填写缺失的部分,使得程序逻辑正确、完整。
所填写的代码不超过一条语句(即中间不能出现分号)。
把代码填空的答案(仅填空处的答案,不包括题面已存在的代码)存入【XX+XX文件夹】下对应题号的“解答.txt”中即可。
程序设计题目:要求选手设计的程序对于给定的输入能给出正确的输出结果。
选手的程序只有能运行出正确结果的时候才有机会得分。
注意:在评卷时使用的输入数据与试卷中给出的实例数据可能是不同的。
选手的程序必须是通用的,不能只对试卷中给定的数据有效。
对每个编程题目,要求选手把所有函数写在一个文件中。
调试好后,存入与【XX+XX 文件夹】下对应题号的“解答.txt”中即可。
相关的工程文件不要拷入。
对于编程题目,要求选手给出的解答完全符合ANSI C++标准,不能使用诸如绘图、Win32API、中断调用、硬件操作或与操作系统相关的API。
代码中允许使用STL类库,但不能使用MFC或ATL等非ANSI c++标准的类库。
例如,不能使用CString类型(属于MFC类库)。
1.结果填空(满分5分)题目在【XX+XX文件夹】下对应题号的“题目.rar”中,请先解压该文件。
解压密码以考场公布为准。
把答案存入【XX+XX文件夹】下对应题号的“解答.txt”中即可。
第三届蓝桥杯预赛真题及详细答案

int sum = 0;
for(int i=0; i<6; i++)if(x[i][c]) sum++;
return sum;
}
void show(int x[][6])
{
for(int i=0; i<6; i++)
{
for(int j=0; j<6; j++) printf("%2d", x[i][j]);
如图【1.jpg】表示了分块乘法的原理。可以把大数分成多段(此处为2段)小数,然后用小数的多次运算组合表示一个大数。可以根据int的承载能力规定小块的大小,比如要把int分成2段,则小块可取10000为上限值。注意,小块在进行纵向累加后,需要进行进位校正。
以下代码示意了分块乘法的原理(乘数、被乘数都分为2段)。
printf("\n");
}
printf("\n");
}
void f(int x[][6], int r, int c);
void GoNext(int x[][6], int r, int c)
{
if(c<6)
_______________________; //填空
else
f(x, r+1, 0);
f(a,n+1);
i-- ;
}
}
void main(){
int a[3]={0};
for(int i=4;i<=20;i++){
a[0] = i ;
f(a,1);
}
}
四、奇怪的比赛
某电视台举办了低碳生活大奖赛。题目的计分规则相当奇怪:
2017年第八届蓝桥杯CC++B组省赛题目解析

2017年第⼋届蓝桥杯CC++B组省赛题⽬解析⼀、购物单⼩明刚刚找到⼯作,⽼板⼈很好,只是⽼板夫⼈很爱购物。
⽼板忙的时候经常让⼩明帮忙到商场代为购物。
⼩明很厌烦,但⼜不好推辞。
这不,XX⼤促销⼜来了!⽼板夫⼈开出了长长的购物单,都是有打折优惠的。
⼩明也有个怪癖,不到万不得已,从不刷卡,直接现⾦搞定。
现在⼩明很⼼烦,请你帮他计算⼀下,需要从取款机上取多少现⾦,才能搞定这次购物。
取款机只能提供100元⾯额的纸币。
⼩明想尽可能少取些现⾦,够⽤就⾏了。
你的任务是计算出,⼩明最少需要取多少现⾦。
以下是让⼈头疼的购物单,为了保护隐私,物品名称被隐藏了。
-----------------**** 180.90 88折**** 10.25 65折**** 56.14 9折**** 104.65 9折**** 100.30 88折**** 297.15 半价**** 26.75 65折**** 130.62 半价**** 240.28 58折**** 270.62 8折**** 115.87 88折**** 247.34 95折**** 73.21 9折**** 101.00 半价**** 79.54 半价**** 278.44 7折**** 199.26 半价**** 12.97 9折**** 166.30 78折**** 125.50 58折**** 84.98 9折**** 113.35 68折**** 166.57 半价**** 42.56 9折**** 81.90 95折**** 131.78 8折**** 255.89 78折**** 109.17 9折**** 146.69 68折**** 139.33 65折**** 141.16 78折**** 154.74 8折**** 59.42 8折**** 85.44 68折**** 293.70 88折**** 261.79 65折**** 11.30 88折**** 268.27 58折**** 128.29 88折**** 251.03 8折**** 208.39 75折**** 128.88 75折**** 62.06 9折**** 225.87 75折**** 12.89 75折**** 34.28 75折**** 62.16 58折**** 129.12 半价**** 218.37 半价**** 289.69 8折--------------------需要说明的是,88折指的是按标价的88%计算,⽽8折是按80%计算,余者类推。
第八届蓝桥杯c组试题及答案

第八届蓝桥杯c组试题及答案第八届蓝桥杯C组试题及答案1. 单项选择题1.1 以下哪个选项是C语言中声明一个整型数组的正确方式?A. int array[10];B. int [10] array;C. int array[];D. int array=10;1.2 正确答案是 A。
2. 程序填空题2.1 请在以下程序中填入缺失的代码,以实现计算并输出1到100之间所有奇数的和。
```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 1) {sum += i;}}printf("Sum of odd numbers: %d\n", sum);return 0;}```2.2 缺失的代码是 `if (i % 2 == 1) {`。
3. 程序改错题3.1 以下程序旨在计算并输出1到100之间所有偶数的和,但存在错误,请找出并修正错误。
```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}printf("Sum of even numbers: %d\n", sum);return 0;}```3.2 错误在于程序的目的是计算奇数的和,但代码计算的是偶数的和。
要修正这个问题,需要将 `if (i % 2 == 0)` 更改为 `if (i % 2 != 0)`。
4. 编程题4.1 编写一个程序,实现以下功能:从用户输入一个整数n,然后输出n的阶乘。
```c#include <stdio.h>long long factorial(int n) {if (n == 0) return 1;return n * factorial(n - 1);}int main() {int n;printf("Enter a number: ");scanf("%d", &n);printf("Factorial of %d is %lld\n", n,factorial(n));return 0;}```4.2 以上程序正确实现了题目要求的功能。
2019第十届蓝桥杯省赛CC++大学B组试题+题解

2019第⼗届蓝桥杯省赛CC++⼤学B组试题+题解第⼗届蓝桥杯省赛C/C++⼤学B组试题+题解第⼗届蓝桥杯⼤赛软件类省赛C/C++ ⼤学 B 组考⽣须知考试开始后,选⼿⾸先下载题⽬,并使⽤考场现场公布的解压密码解压试 题。
考试时间为 4 ⼩时。
考试期间选⼿可浏览⾃⼰已经提交的答案,被浏览的 答案允许拷贝。
时间截⽌后,将⽆法继续提交或浏览答案。
对同⼀题⽬,选⼿可多次提交答案,以最后⼀次提交的答案为准。
选⼿必须通过浏览器⽅式提交⾃⼰的答案。
选⼿在其它位置的作答或其它 ⽅式提交的答案⽆效。
试题包含“结果填空”和“程序设计”两种题型。
结果填空题:要求选⼿根据题⽬描述直接填写结果。
求解⽅式不限。
不要 求源代码。
把结果填空的答案直接通过⽹页提交即可,不要书写多余的内容。
程序设计题:要求选⼿设计的程序对于给定的输⼊能给出正确的输出结果。
考⽣的程序只有能运⾏出正确结果才有机会得分。
注意:在评卷时使⽤的输⼊数据与试卷中给出的⽰例数据可能是不同的。
选⼿的程序必须是通⽤的,不能只对试卷中给定的数据有效。
对于编程题⽬,要求选⼿给出的解答完全符合 GNU C/C++ 标准,不能使 ⽤诸如绘图、Win32API、中断调⽤、硬件操作或与操作系统相关的 API。
代码中允许使⽤ STL 类库。
注意: main 函数结束必须返回 0注意: 所有依赖的函数必须明确地在源⽂件中 #include ,不能通过 ⼯程设置⽽省略常⽤头⽂件。
所有源码必须在同⼀⽂件中。
调试通过后,拷贝提交。
提交时,注意选择所期望的编译器类型。
试题 A: 组队本题总分:5 分作为篮球队教练,你需要从以下名单中选出 1 号位⾄ 5 号位各⼀名球员, 组成球队的⾸发阵容。
每位球员担任 1 号位⾄ 5 号位时的评分如下表所⽰。
请你计算⾸发阵容 1 号位⾄ 5 号位的评分之和最⼤可能是多少?【答案提交】这是⼀道结果填空的题,你只需要算出结果后提交即可。
本题的结果为⼀ 个整数,在提交答案时只填写这个整数,填写多余的内容将⽆法得分。
c蓝桥杯试题及答案

c蓝桥杯试题及答案蓝桥杯试题及答案蓝桥杯是中国最具影响力和参与度最高的计算机科学和信息技术竞赛,是由中国科学院计算技术研究所创办的全国性高校计算机能力大赛。
本文将为大家介绍蓝桥杯试题的一些特点以及提供一些参考答案。
一、蓝桥杯试题的特点蓝桥杯试题旨在考察学生的计算机编程水平和创新能力,题目类型多样,难度适中。
以下是一些蓝桥杯试题的常见特点:1. 综合性:蓝桥杯试题通常会综合多个知识点,考察学生对于不同知识的综合运用能力。
例如,一道试题可能结合了数据结构、算法和编程语言等多个方面的知识。
2. 实践性:蓝桥杯试题注重学生的实践能力,会设计一些需要编程实现的题目,以此来考察学生的编程能力和解决实际问题的能力。
3. 创新性:蓝桥杯试题鼓励学生的创新思维,会提供一些开放性的问题,让学生自由发挥,展现自己的创造力。
4. 考察面广:蓝桥杯试题的题目涵盖了计算机科学和信息技术的各个方面,包括但不限于数据结构、算法、网络编程、人工智能等。
二、蓝桥杯试题参考答案示例以下是一些蓝桥杯试题的参考答案示例,供大家参考:1. 编程题题目描述:请编写一个程序,实现输入一个整数n,输出1到n之间的所有偶数。
参考答案:```pythonn = int(input("请输入一个整数n:"))for i in range(1, n+1):if i % 2 == 0:print(i)```2. 算法题题目描述:有一个整数数组,请实现一个算法,找出数组中两个数的和等于给定目标值的所有组合,返回这些组合。
参考答案:```pythondef find_combinations(nums, target):result = []for i in range(len(nums)-1):for j in range(i+1, len(nums)):if nums[i] + nums[j] == target:result.append((nums[i], nums[j]))return resultnums = [2, 4, 6, 8, 10]target = 12print(find_combinations(nums, target))```3. 开放性题题目描述:设计一个应用程序,实现手机定位功能并展示当前位置的地图。
第五届蓝桥杯程序设计大赛省赛题目及答案

第五届省赛1.一个串的子串是指该串的一个连续的局部。
如果不要求连续,则可称为它的子序列。
比如对串: "abcdefg" 而言,"ab","abd","bdef" 等都是它的子序列。
特别地,一个串本身,以及空串也是它的子序列。
对两个串而言,可以有许多的共同的子序列,我们关心的是:它们所共同拥有的长度最大的子序列是多长。
以下代码实现了这个问题的求解。
请填写划线部分缺失的代码。
注意:只填写划线部分缺少的内容,不要填写任何多余的符号或注释、说明等。
例如,不要填写已经给出的小括号。
inline max(int a, int b){return a>b?a:b;}int f(char* x, char* y){if(strlen(x)==0) return 0;if(strlen(y)==0) return 0;if(*x == *y) return f(x+1, y+1) + 1;return max( ______________________ );//处理字符串}int main(){printf("%d\n", f("ac","abcd")); //2printf("%d\n", f("acebbcde1133","xya33bc11de")); //5return 0;}f(x+1,y),f(x,y+1)2.历史上有许多计算圆周率pai的公式,其中,格雷戈里和莱布尼茨发现了下面的公式:pai = 4*(1-1/3+1/5-1/7 ....)参见【图1.png】这个公式简单而优美,但美中不足,它收敛的太慢了。
如果我们四舍五入保留它的两位小数,那么:累积了1项和是:4.00累积了2项和是:2.67累积了3项和是:3.47。
第六届蓝桥杯JavaC组省赛真题——详细答案对照(包含垒骰子)

第六届蓝桥杯JavaC组省赛真题——详细答案对照(包含垒骰⼦)A、隔⾏变⾊Excel表的格⼦很多,为了避免把某⾏的数据和相邻⾏混淆,可以采⽤隔⾏变⾊的样式。
⼩明设计的样式为:第1⾏蓝⾊,第2⾏⽩⾊,第3⾏蓝⾊,第4⾏⽩⾊,....现在⼩明想知道,从第21⾏到第50⾏⼀共包含了多少个蓝⾊的⾏。
请你直接提交这个整数,千万不要填写任何多余的内容。
题解:package demo;public class demo {public static void main(String[] args) {int color = 0;for (int i = 21; i <= 50; i++) {if (i % 2 != 0) {color++;}}System.out.println(color);}}B、⽴⽅尾不变有些数字的⽴⽅的末尾正好是该数字本⾝。
⽐如:1,4,5,6,9,24,25,....请你计算⼀下,在10000以内的数字中(指该数字,并⾮它⽴⽅后的数值),符合这个特征的正整数⼀共有多少个。
请提交该整数,不要填写任何多余的内容。
题解:int count = 0;for (int i = 1; i <= 10000; i++) {String x = i + "";String cudb = cudb(i) + "";// 切割⽴⽅数最后相应⼏位String y = cudb.substring(cudb.length() - x.length());// 判断是否相同if (y.equals(x)) {count++;}}System.out.println(count);}/*** @param x* @return*/public static long cudb(int x) {return (long)Math.pow(x, 3);}}C、⽆穷分数⽆穷的分数,有时会趋向于固定的数字。
2016第七届蓝桥杯大赛CC 大学C组省赛真题详解

}
}
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; i<N; i++) printf("%d ", a[i]);
第七届蓝桥杯大赛个人赛省赛(软件类)
C/C++大学C组
一、
试题
1、报纸页数
X星球日报和我们地球的城市早报是一样的,
都是一些单独的纸张叠在一起而已。每张纸印有4版。
比如,某张报纸包含的4页是:5,6,11,12,
可以确定它应该是最上边的第2张报纸。
我们在太空中捡到了一张X星球的报纸,4个页码分别是:
1125,1126,1727,1728
请你计算这份报纸一共多少页(也就是最大页码,并不是用了几张纸哦)?
请填写表示总页数的数字。
注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。
2、煤球数目
有一堆煤球,堆成三角棱锥形。具体:
第一层放1个,
第二层3个(排列成三角形),
第三层6个(排列成三角形),
第四层10个(排列成三角形),
+---+---+---+---+---+---+---+---+---+---+
| | | | | | | | | | |
+---+---+---+---+---+---+---+---+---+---+
蓝桥杯软件大赛c真题及参考答案

第四届蓝桥杯软件大赛c/C++本科B组真题1.题目标题: 高斯日记大数学家高斯有个好习惯:无论如何都要记日记。
他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。
这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢?高斯出生于:1777年4月30日。
在高斯发现的一个重要定理的日记上标注着:5343,因此可算出那天是:1791年12月15日。
高斯获得博士学位的那天日记上标着:8113请你算出高斯获得博士学位的年月日。
提交答案的格式是:yyyy-mm-dd, 例如:1980-03-21请严格按照格式,通过浏览器提交答案。
注意:只提交这个日期,不要写其它附加内容,比如:说明性的文字。
# include <stdio.h>int isLeap(int y);int nday(int y, int m, int d);void ymd(int n);int main(void){int n = 8113;int yb = 1777, mb = 4, db = 30; //birthn = n - 1 + nday(yb, mb, db);int yp, np; //printfor(int i = yb; n > 0; i++) {yp = i;np = n;if(isLeap(i)) n -= 366;else n -= 365;}printf("%d-", yp);ymd(np);return 0;}int nday(int y, int m, int d){int n = 0;int a[2][12] = {{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}};for(int i = 0; i < (m - 1); i++) n += a[isLeap(y)][i];n += d;return n;}void ymd(int n){int a[2][12] = {{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}};int mp, dp;for(int i = 0; n > 0; i++) {dp = n; mp = i;n -= a[isLeap(i)][i]; }printf("%d-%d\n", mp + 1, dp);}int isLeap(int y){if((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0)) return 1;else return 0;}最后答案1799-07-162.标题: 马虎的算式小明是个急性子,上小学的时候经常把老师写在黑板上的题目抄错了。
蓝桥杯试题及答案

蓝桥杯试题及答案蓝桥杯是面向全国高校计算机专业学生的程序设计竞赛,由工业和信息化部人才交流中心主办,旨在提高学生的编程能力、算法设计能力以及团队合作能力。
以下是一份蓝桥杯试题及答案的示例,供参考。
### 蓝桥杯程序设计竞赛试题及答案#### 题目一:求最大公约数题目描述:给定两个正整数 a 和 b,请编写一个程序计算它们的最大公约数(GCD)。
输入格式:输入包含两个整数 a 和 b,用空格分隔。
输出格式:输出 a 和 b 的最大公约数。
样例输入:```24 36```样例输出:``````答案:```c#include <stdio.h>int gcd(int a, int b) {while (b != 0) {int temp = b;b = a % b;a = temp;}return a;}int main() {int a, b;scanf("%d %d", &a, &b);printf("%d\n", gcd(a, b));return 0;}```#### 题目二:字符串反转题目描述:编写一个程序,实现对输入的字符串进行反转。
输入格式:输入一个字符串。
输出格式:输出反转后的字符串。
样例输入:```Hello World```样例输出:`````ldrow olleH```答案:```c#include <stdio.h>#include <string.h>int main() {char str[1000];scanf("%s", str);int len = strlen(str);for (int i = len - 1; i >= 0; i--) { printf("%c", str[i]);}return 0;}```#### 题目三:二分查找题目描述:在一个已排序的数组中,使用二分查找算法找出一个特定元素的位置。
第十二届蓝桥杯2021年省赛真题(CC++大学B组)

第⼗⼆届蓝桥杯2021年省赛真题(CC++⼤学B组)第⼗⼆届蓝桥杯 2021年省赛真题 (C/C++ ⼤学B组)这次的难度⽐上次⼤,主要表现在数据量⼤。
填空题的后两道⽐较难。
⼤雪莱up主A 空间(进制转换)本题总分:5 分(√)问题描述⼩蓝准备⽤ 256MB 的内存空间开⼀个数组,数组的每个元素都是 32 位⼆进制整数,如果不考虑程序占⽤的空间和维护内存需要的辅助空间,请问256MB 的空间可以存储多少个 32 位⼆进制整数?答案提交这是⼀道结果填空的题,你只需要算出结果后提交即可。
本题的结果为⼀个整数,在提交答案时只填写这个整数,填写多余的内容将⽆法得分。
256 * 1024 * 1024* 8 / 32答案67108864B 卡⽚(模拟)本题总分:5 分(√)问题描述⼩蓝有很多数字卡⽚,每张卡⽚上都是数字 0 到 9。
⼩蓝准备⽤这些卡⽚来拼⼀些数,他想从 1 开始拼出正整数,每拼⼀个,就保存起来,卡⽚就不能⽤来拼其它数了。
⼩蓝想知道⾃⼰能从 1 拼到多少。
例如,当⼩蓝有 30 张卡⽚,其中 0 到 9 各 3 张,则⼩蓝可以拼出 1 到 10,但是拼 11 时卡⽚ 1 已经只有⼀张了,不够拼出 11。
现在⼩蓝⼿⾥有 0 到 9 的卡⽚各 2021 张,共 20210 张,请问⼩蓝可以从 1拼到多少?提⽰:建议使⽤计算机编程解决问题。
答案提交这是⼀道结果填空的题,你只需要算出结果后提交即可。
本题的结果为⼀个整数,在提交答案时只填写这个整数,填写多余的内容将⽆法得分。
思路构造专门的判定函数check。
代码#include<cstdio>#include<iostream>using namespace std;int s[10];bool check(int x){while(x){int t=x%10;x/=10;if(--s[t]<0) return false; //不够了}return true;}int main(){for(int i=0;i<10;i++){s[i]=2021;}for(int i=1;;i++){if(!check(i)) {cout<<i-1<<endl;return 0;}}return 0;}C 直线(枚举)本题总分:10 分问题描述在平⾯直⾓坐标系中,两点可以确定⼀条直线。
蓝桥杯第十一届CC++B组省赛真题整理

蓝桥杯第⼗⼀届CC++B组省赛真题整理蓝桥杯第⼗⼀届C/C++ B组省赛真题整理试题A: 门牌制作解法:模拟【问题描述】⼩蓝要为⼀条街的住户制作门牌号。
这条街⼀共有2020位住户,门牌号从1到2020编号。
⼩蓝制作门牌的⽅法是先制作О到9这⼏个数字字符,最后根据需要将字符粘贴到门牌上,例如门牌1017需要依次粘贴字符1、0、1、7,即需要1个字符0,2个字符1,1个字符7。
请问要制作所有的1到2020号门牌,总共需要多少个字符2?【答案提交】这是⼀道结果填空的题,你只需要算出结果后提交即可。
本题的结果为⼀个整数,在提交答案时只填写这个整数,填写多余的内容将⽆法得分。
#include<iostream>using namespace std;int ans;void count(int x){while(x){if(x%10==2) ans++;x/=10;}}int main(){for(int i=1;i<=2020;i++) count(i);cout<<ans<<endl;return 0;}答案:624试题B: 既约分数解法:枚举+gcd【问题描述】如果⼀个分数的分⼦和分母的最⼤公约数是1,这个分数称为既约分数。
例如,3/4,5/2,1/8,7/1都是既约分数。
请问,有多少个既约分数,分⼦和分母都是1到2020之间的整数(包括1和2020)?【答案提交】这是⼀道结果填空题,你只需要算出结果后提交即可。
本题的结果为⼀个整数,在提交答案时只填写这个整数,填写多余的内容将⽆法得分。
#include<iostream>using namespace std;int ans;int gcd(int a,int b){return b==0?a:gcd(b,a%b);}int main(){for(int i=1;i<=2020;i++)for(int j=1;j<=2020;j++)if(gcd(i,j)==1) ans++;cout<<ans<<endl;return 0;}答案:2481215试题C: 蛇形填数解法:模拟【问题描述】如下图所⽰,⼩明⽤从1开始的正整数“蛇形”填充⽆限⼤的矩阵。
第十二届蓝桥杯大赛软件赛省赛第二场CC++大学A组题解

第⼗⼆届蓝桥杯⼤赛软件赛省赛第⼆场CC++⼤学A组题解A. 双阶乘输出2021!! \bmod 10^4for 循环每次减2即可B. 格点求第⼀象限整点中,xy\leq 2021的整点个数for 循环暴⼒遍历2021\times 2021的平⾯,统计答案即可C. 整数分解求2021分解为5个正整数的有序分解⽅案数令f_{n, p}表⽰n被分解为p个正整数的有序分解⽅案数搜索或递推均可D. 城邦给定编号为1~2021的2021元完全图,定义点权为编号数码的集合的元素和(例如 : 2021的为2+0+1=3)。
定义连接两点a, b的边权为两点点权之和求 MST 边权和先暴⼒把1~2021的点权跑出来,然后所有边已知由于是提交答案题,跑 Kruskal 或者 Prim 算法均可E. 游戏给定数值n,两⼈轮流进⾏游戏。
每⼀轮可将数字n化为其因数之⼀,直到n变为1问n=20210509时的游戏⽅案数令f_d表⽰从d开始,游戏的⽅案数,初始f_1=1⽤刷表法,将d的所有倍数n,均执⾏f_n+=f_d复杂度为\displaystyle \sum_{i=1}^n \lfloor{n\over i}\rfloor\approx \sum_{i=1}^n {n\over i}=O(n\log n)期望时长为5sF. ⼩平⽅求[1,n)\cap Z中,模n意义下,平⽅严格⼩于{n\over 2}的数的个数n\leq 10^4for 循环暴⼒验证即可G. 完全平⽅数给定正整数n,求最⼩的正整数x,使得nx为完全平⽅数n\leq 10^{12}考虑到n⼤于\sqrt n的质因数最多1个否则任意两个乘起来也超过n因此优先⽤欧拉筛或埃⽒筛打出\sqrt n\leq 10^6范围内的质因数,将该部分的每个质数在n中的次数求出若次数为奇数,则x中必须出现奇数次该质数,故取1次;否则x中需为偶数次,取0次最后验证n是否仍有其他质因数,若有,则x中该质因数必须出现奇数次,同样取1次H. 负载均衡n台计算机,第i台算⼒为v_im个任务,每个在a_i时刻送达,需要消耗b_i号计算机c_i的时间与d_i的算⼒若分配任务时,计算机算⼒充⾜,必须执⾏任务,并输出剩余算⼒;否则输出-1n, m\leq 2\times 10^5考虑将任务拆成两瓣:1. a_i时到达的,消耗b_i号计算机d_i算⼒的2. a_i+c_i时到达的,消耗b_i号计算机-d_i算⼒的且第⼆个⼦任务奏效当且仅当第⼀个⼦任务奏效因此,对任务标记原来的序号i,再按时间排序;时间相同时,算⼒为负数的任务(第⼆类任务)优先维护每台计算机的剩余算⼒,按时间顺序执⾏任务当执⾏第⼀类任务时,检查算⼒是否充⾜,充⾜则执⾏当前任务,更新剩余算⼒并输出;若不充⾜,则标记当前任务原来序号i不⽣效,并且输出-1当执⾏第⼆类任务时,检查当前任务是否⽣效,若不⽣效则直接退出;否则更新算⼒复杂度为O(n\log n)I. 国际象棋规定国际象棋棋盘中,位于点(x,y)的马可以攻击8个⽅向:1. (x-2, y-1)2. (x-2, y+1)3. (x-1, y-2)4. (x-1, y+2)5. (x+1, y-2)6. (x+1, y+2)7. (x+2, y-1)8. (x+2, y+1)求n\times m的棋盘中,放置k匹马且不互相攻击的⽅案数n\leq 6, m\leq 100, k\leq 20状压 dp :预处理n_{1, S}表⽰当前⾏状态状态为S时,下⼀⾏的最⼤可选集合;n_{2, S}表⽰下两⾏最⼤可选集合;cnt_S表⽰|S|记f_{m, S, T, k}表⽰第m⾏状态为S且第(m-1)⾏状态为T时,放置了k匹马且不互相攻击的⽅案数不难得出,当且仅当S\subseteq n_{1, T}时⽅程有意义,且初始状态为f_{1, S, 0, cnt_S}=1状态转移采⽤刷表实现:将f_{m, S, T, k}刷到\forall R\subseteq (n_{1, S}\cap n_{2, T}),f_{m+1, R, S, k+|R|}答案为\displaystyle \sum_S\sum_T f_{m, S, T, k}发现第⼀维可以滚动成m\bmod 2形式,故空间复杂度为2\times 2^n\times 2^n\times k=O(k\cdot 4^n)时间复杂度为m\times 2^n\times 2^n\times k+2^n\times 2^n=O(mk\cdot 4^n),显然充⾜甚⾄加上了S\subseteq n_{1, T}的限制,根本拉不到那么⼤J. 完美序列这题题⽬是真的绕定义完美序列为:满⾜除第1个数外,所有数为前⼀个数的因数的序列。
第八届蓝桥杯c组决赛试题及答案

第八届蓝桥杯c组决赛试题及答案第八届蓝桥杯C组决赛试题及答案一、选择题1. 下列关于C语言的描述,不正确的是:A. C语言是一种高级编程语言B. C语言支持面向对象编程C. C语言支持函数式编程D. C语言具有丰富的库函数答案:B2. 在C语言中,用于定义一个结构体的关键字是:A. structB. unionC. enumD. typedef答案:A二、填空题1. 在C语言中,用于定义一个整型数组的语句是:`int array[10];`,其中数组的元素个数为____。
答案:102. 若定义了一个指针变量`int *p;`,则`*p`表示的是指针p指向的____。
答案:整型变量的值三、编程题1. 编写一个函数,计算并返回一个整数数组中的最大值。
```cint findMax(int arr[], int size) {int max = arr[0];for (int i = 1; i < size; i++) {if (arr[i] > max) {max = arr[i];}}return max;}```2. 编写一个程序,实现字符串反转的功能。
```cvoid reverseString(char* str) {int length = 0;while (str[length] != '\0') {length++;}for (int i = 0; i < length / 2; i++) {char temp = str[i];str[i] = str[length - i - 1];str[length - i - 1] = temp;}}```四、简答题1. 请简述C语言中指针和数组的关系。
答案:在C语言中,数组名可以被看作指向数组第一个元素的指针。
指针可以用于访问数组中的元素,通过指针可以遍历数组。
2. 解释C语言中的“预处理器”是什么,并给出一个使用预处理器的例子。
第十届蓝桥杯JavaC组省赛真题

第⼗届蓝桥杯JavaC组省赛真题试题 A: 求和本题总分:5 分【问题描述】⼩明对数位中含有 2、0、1、9 的数字很感兴趣,在 1 到 40 中这样的数包括 1、2、9、10 ⾄ 32、39 和 40,共 28 个,他们的和是 574。
请问,在 1 到 2019 中,所有这样的数的和是多少?【答案提交】这是⼀道结果填空的题,你只需要算出结果后提交即可。
本题的结果为⼀个整数,在提交答案时只填写这个整数,填写多余的内容将⽆法得分//这道题没什么好说的for循环暴⼒破解public class qiuhe { //1905111public static void main(String[] args) {int count=0,temp=0;for (int i = 1; i <=2019; i++) {int b = i;temp=i;while(b!=0){int a = b%10;if(a==2 || a==0||a==1||a==9){count+=temp;break;}b/=10;}}System.out.println(count);}}试题 B: 矩形切割本题总分:5 分【问题描述】⼩明有⼀些矩形的材料,他要从这些矩形材料中切割出⼀些正⽅形。
当他⾯对⼀块矩形材料时,他总是从中间切割⼀⼑,切出⼀块最⼤的正⽅形,剩下⼀块矩形,然后再切割剩下的矩形材料,直到全部切为正⽅形为⽌。
例如,对于⼀块两边分别为 5 和 3 的材料(记为 5×3),⼩明会依次切出 3×3、2×2、1×1、1×1 共 4 个正⽅形。
现在⼩明有⼀块矩形的材料,两边长分别是 2019 和 324。
请问⼩明最终会切出多少个正⽅形?【答案提交】这是⼀道结果填空的题,你只需要算出结果后提交即可。
本题的结果为⼀个整数,在提交答案时只填写这个整数,填写多余的内容将⽆法得分。
//21个正⽅形这个纯⼿算就可以,当⼀个矩形开始切割正⽅形的时候,按照矩形的宽切割就能切割出最⼤的正⽅形,⼀直按照这个思路,然后继续切最后剩下的就是1*1的正⽅形package pany;import java.util.Scanner;public class 矩形切割 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int max = sc.nextInt();int min=sc.nextInt();int count=0,num,temp;while (true){if ( min==0){//当没有得时候就可以退出了break;}num = max/min;//看看当前长宽不变得时候有⼏个正⽅形count+=num; //把这些都加进来//替换⼀下,剪完正⽅形,之后,原来得长就变成了宽,原来的宽就成了长temp=max-min*num;//原来得长减去剪掉得⼏个宽,就是现在得宽max=min;}System.out.println(count);}}试题 C: 不同⼦串本题总分:10 分【问题描述】⼀个字符串的⾮空⼦串是指字符串中长度⾄少为 1 的连续的⼀段字符组成的串。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
if(index == 9)
{
Solve();
return ;
}
for(int i = 1 ; i<10 ; i ++)
if(!visit[i])
{
visit[i] = true; num[index] = i; dfs(index+1);
visit[i] = false;
}
}
}
int mห้องสมุดไป่ตู้in()
#include<> int main()
int start,end;
for(start = 1 ; start<236 ; start ++)
{
for( end = start ; end<236 ; end ++ )
{
int sum = 0;
for(int i = start; i<=end; i ++)
2016
第一题
煤球数目
有一堆煤球,堆成三角棱锥形。具体:
第一层放1个,
第二层3个(排列成三角形),
第三层6个(排列成三角形),
第四层10个(排列成三角形),
如果一共有100层,共有多少个煤球?
请填表示煤球总数目的数字。
注意:你提交的应该是一个整数, 不要填写任何多余的内容或说明性文字
答案:171700
{
dfs(0);
printf("%d\n",ans);
return 0;
第四题
快速排序
排序在各种场合经常被用到。
快速排序是十分常用的高效率的算法。
其思想是:先选一个“标尺”,
用它把整个队列过一遍筛子,
以保证:其左边的元素都不大于它,其右边的元素都不小于它
这样,排序问题就被分割为两个子区间。
再分别对子区间排序就可以了。
return 0;
第二题
生日蜡烛
某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相
同根数的蜡烛。
现在算起来,他一共吹熄了236根蜡烛。
请问,他从多少岁开始过生日party的?
请填写他开始过生日party的年龄数。
注意:你提交的应该是一个整数, 不要填写任何多余的内容或说明性文字。 答案:26
F面的代码是一种实现,请分析并填写划线部分缺少的代码。
#include<>void swap(int a[], int i, int j)
{
int t = a[i];
a[i] = a[j];
a[j] = t;
}
int partition(int a[], int p, int r)
{
int i = p;
{
double sum = num[0] + (double)num[1] / num[2]
(double)(num[3]*100+num[4]*10+num[5])/(num[6]*100+num[7]*10+num
[8]);
if(sum == 10)
{
ans ++;
}
}
void dfs(int index)
#include<>
int main()
{
int a[101]={0};
for(int i = 1 ; i<101 ; i ++)
a[i] = a[i-1] + i;
int ans = 0;
for(int j = 1 ; j<101 ; j ++) ans += a[j];
printf("%d\n",ans);
比如:
6+8/3+952/714就是一种解法,
5+3/1+972/486是另一种解法。
这个算式一共有多少种解法?
注意:你提交应该是个整数,不要填写任何多余的内容或说明性文字。
答案:29
#include<>
int ans = 0;
int num[10];
bool visit[10];
void Solve()
sum += i;
if( sum == 236)
{
printf("start : %d end : %d\n",start,end);
}
}
return 0;
}
第三题
凑算式
B DEF
A + --- += 10
C GHI
(如果显示有问题,可以参见【图】)
这个算式中A~I代表1~9的数字,不同的字母代表不同的数字
int j = r + 1;
int x = a[p];
while(1){
while(i<r&&a[++i]<x);