【免费下载】蓝桥杯C组试题及答案
蓝桥杯c c 省赛试题及答案解析
2016蓝桥杯c-c++B组省赛试题及解析第一题煤球数目有一堆煤球,堆成三角棱锥形。
具体:第一层放1个,第二层3个(排列成三角形),第三层6个(排列成三角形),第四层10个(排列成三角形),....如果一共有100层,共有多少个煤球?请填表示煤球总数目的数字。
注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。
答案:171700#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);return 0;}第二题生日蜡烛某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛。
现在算起来,他一共吹熄了236根蜡烛。
请问,他从多少岁开始过生日party的?请填写他开始过生日party的年龄数。
注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。
答案:26#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 ++)sum += i;if( sum == 236){printf("start : %d end : %d\n",start,end); }}}return 0;}第三题凑算式B DEFA + --- + ------- = 10C GHI(如果显示有问题,可以参见【图】)这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。
第八届蓝桥杯JavaC组国(决)赛真题
第⼋届蓝桥杯JavaC组国(决)赛真题解题代码部分来⾃⽹友,如果有不对的地⽅,欢迎各位⼤佬评论题⽬1、数位和题⽬描述数学家⾼斯很⼩的时候就天分过⼈。
⼀次⽼师指定的算数题⽬是:1+2+ (100)⾼斯⽴即做出答案:5050!这次你的任务是类似的。
但并⾮是把⼀个个的数字加起来,⽽是对该数字的每⼀个数位作累加。
这样从1加到100的“和”是:901从10加到15是:21,也就是:1+0+1+1+1+2+1+3+1+4+1+5,这个⼝算都可以出结果的。
按这样的“加法”,从1加到1000是多少呢? 请通过浏览器提交该结果。
当然,我们并不期望你能像⾼斯⼀样,发现数字背后深奥的秘密,只要请计算机帮忙,⼀切都easy!注意:你需要提交的是⼀个整数,不要填写任何多余的内容(⽐如:说明性⽂字)答案:13501public class _01数位和 {public static void main(String[] args) {int sum = 0;String str = "";for(int i = 1;i <= 1000;i++){str += i;}char[] arr = str.toCharArray();for(int i = 0;i < arr.length;i++){sum += arr[i]-'0';}System.out.println(sum);}}题⽬2、数字划分题⽬描述w星球的长⽼交给⼩明⼀个任务:1,2,3…16 这16个数字分为两组。
要求:这两组数字的和相同,并且,两组数字的平⽅和也相同,并且,两组数字的⽴⽅和也相同。
请你利⽤计算机的强⼤搜索能⼒解决这个问题。
并提交1所在的那个分组的所有数字。
这些数字要从⼩到⼤排列,两个数字间⽤⼀个空格分开。
即类似:1 4 5 8 … 这样的答案。
注意,只提交这⼀组数字,不要填写任何多余的内容。
笨笨有话说:只要⼀个组的成员确定了,另⼀个组的成员也就确定了。
蓝桥杯cc省赛试题及答案解析
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;
第四题
快速排序
排序在各种场合经常被用到。
快速排序是十分常用的高效率的算法。
其思想是:先选一个“标尺”,
第八届蓝桥杯c语言C组试题及答案
第八届蓝桥杯c语言C组试题及答案第八届蓝桥杯C语言C组试题及答案1. 单项选择题1.1 以下哪个选项是C语言中合法的变量名?A. 2variableB. variable2C. variable-2D. variable2_1.2 正确答案是 B. variable2。
2. 多项选择题2.1 下列哪些是C语言中合法的赋值语句?A. int a = 10;B. int b = "10";C. int c = 10.0;D. int d = 10;2.2 正确答案是 A. int a = 10; D. int d = 10。
3. 程序填空题3.1 请在下面的程序中填入正确的代码,使其能够输出“Hello, World!”。
```c#include <stdio.h>int main() {printf("_____");return 0;}```3.2 填入的代码是 "Hello, World!"。
4. 程序阅读题4.1 阅读以下程序,并回答问题。
```c#include <stdio.h>int main() {int a = 10;int b = 20;if (a < b) {printf("%d", a);} else {printf("%d", b);}return 0;}```4.2 程序输出的结果是 10。
5. 编程题5.1 编写一个C语言程序,实现以下功能:输入一个整数n,输出n的阶乘。
5.2 程序代码如下:```c#include <stdio.h>long long factorial(int n) {if (n == 0) return 1;return n * factorial(n - 1); }int main() {int n;scanf("%d", &n);printf("%lld", factorial(n)); return 0;}```。
2024十五届蓝桥省赛C++真题(附解析)
2024年第十五届蓝桥省赛中级组C++真题(附解析)一、选择题(选择题严禁使用程序验证,选择题不答或答错都不扣分)1、定义 char a[]="hello\nworld",执行 cout<<a,输出结果是( )A、helloworldB、 helloworldC、hellonworldD、hello\nworld解析:\n输出时会换行2、(11001010)2+(F8)16的结果是( )。
A、(11001010)2B、(701)8 C、(1C2)16 D、(452)10解析:(11001010)2值为202 (F8)16值为248 和为450,转为16进制为C、(1C2)163、表达式4%12 的结果是( )。
A、0B、4C、3 D、12解析:4%12 ,为求4除以12的余数,结果为44、下列选项中,逻辑表达式的值始终与 B的真假无关的是( )。
A、(!A || B) && AB、(A || B) && (!A && B)C、(A && !A)||BD、(A || B) && (A || !B)解析:D,如果A为真,该语句一定为真,如果A为假,不管B的值是否为真,该语句的值都为假,所以与B的真假无关5、运行下面程序,输出结果是()。
1.int a[6] = {16, 8, 32, 10, 9, 21};2.int func(int L, int R, int d) {3.if (L > R)4.return 0;5.int sum = 0, m = a[L], index = L;6.for (int i = L + 1; i <= R; i++) {7.if (m < a[i]) {8. m = a[i];9. index = i;10. }11. }12.int lt = func(L, index - 1, d + 1);13.int rt = func(index + 1, R, d + 1);14.return lt + rt + d * m;15.}16.int main() {17. cout << func(0, 5, 1);18.return 0;19.}A、196B、197C、198D、199解析:A ,当func 函数被调用时,它首先检查L 是否大于R,这是递归的基本情况。
2016蓝桥杯c语言c组试题及答案
2016蓝桥杯c语言c组试题及答案2016蓝桥杯C语言C组试题及答案一、选择题(每题2分,共10题,满分20分)1. 下列关于C语言的描述中,错误的是()。
A. C语言是一种高级编程语言B. C语言可以直接操作硬件C. C语言具有可移植性D. C语言支持面向对象编程答案:D2. 在C语言中,用于定义一个结构体的关键字是()。
A. structB. unionC. enumD. typedef答案:A3. 下列关于数组的描述中,正确的是()。
A. 数组的下标从1开始B. 数组的下标从0开始C. 数组的元素类型必须相同D. 数组的大小在定义后不能改变答案:C4. 在C语言中,用于实现循环结构的关键字有()。
A. for, while, do-whileB. for, if, switchC. for, while, switchD. if, while, do-while答案:A5. 下列关于指针的描述中,错误的是()。
A. 指针可以存储地址B. 指针可以存储值C. 指针可以作为函数的参数D. 指针可以指向函数答案:B6. 在C语言中,用于定义函数的关键字是()。
A. intB. voidC. returnD. function答案:B7. 下列关于C语言预处理指令的描述中,错误的是()。
A. #include用于包含头文件B. #define用于定义宏C. #if用于条件编译D. #else用于定义变量答案:D8. 在C语言中,用于实现文件操作的函数库是()。
A. stdio.hB. stdlib.hC. string.hD. math.h答案:A9. 下列关于C语言中变量作用域的描述中,正确的是()。
A. 全局变量可以被所有函数访问B. 局部变量可以被所有函数访问C. 静态变量的生命周期是程序的整个运行过程D. 静态变量的作用域是整个程序答案:A10. 在C语言中,用于实现字符串操作的函数库是()。
第九届蓝桥杯JavaC组省赛真题
第九届蓝桥杯JavaC组省赛真题解题代码部分来⾃⽹友,如果有不对的地⽅,欢迎各位⼤佬评论题⽬1、哪天返回题⽬描述⼩明被不明势⼒劫持。
后被扔到x星站再⽆问津。
⼩明得知每天都有飞船飞往地球,但需要108元的船票,⽽他却⾝⽆分⽂。
他决定在x星战打⼯。
好⼼的⽼板答应包⾷宿,第1天给他1元钱。
并且,以后的每⼀天都⽐前⼀天多2元钱,直到他有⾜够的钱买票。
请计算⼀下,⼩明在第⼏天就能凑够108元,返回地球。
要求提交的是⼀个整数,表⽰第⼏天。
请不要提交任何多余的内容。
package Lqb;public class Text27 {public static void main(String[] args) {int money=1;int dayMoney=1;int day=1;System.out.println("第 "+day+" 天:"+"⼯资:"+dayMoney+" "+money);while(money<108){dayMoney+=2;money+=dayMoney;day++;System.out.println("第 "+day+" 天:"+"⼯资:"+dayMoney+" "+money);}}}题⽬2、猴⼦分⾹蕉题⽬描述5只猴⼦是好朋友,在海边的椰⼦树上睡着了。
这期间,有商船把⼀⼤堆⾹蕉忘记在沙滩上离去。
第1只猴⼦醒来,把⾹蕉均分成5堆,还剩下1个,就吃掉并把⾃⼰的⼀份藏起来继续睡觉。
第2只猴⼦醒来,重新把⾹蕉均分成5堆,还剩下2个,就吃掉并把⾃⼰的⼀份藏起来继续睡觉。
第3只猴⼦醒来,重新把⾹蕉均分成5堆,还剩下3个,就吃掉并把⾃⼰的⼀份藏起来继续睡觉。
第4只猴⼦醒来,重新把⾹蕉均分成5堆,还剩下4个,就吃掉并把⾃⼰的⼀份藏起来继续睡觉。
16年蓝桥杯c语言试题及答案
16年蓝桥杯c语言试题及答案16年蓝桥杯C语言试题及答案1. 题目一:编写一个程序,计算并输出100以内所有正整数的和。
答案:```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {sum += i;}printf("%d\n", sum);return 0;}```2. 题目二:编写一个程序,输入一个整数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;scanf("%d", &n);printf("%lld\n", factorial(n));return 0;}```3. 题目三:编写一个程序,判断输入的年份是否为闰年。
答案:```c#include <stdio.h>int isLeapYear(int year) {if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {return 1;}return 0;}int main() {int year;scanf("%d", &year);if (isLeapYear(year)) {printf("Yes\n");} else {printf("No\n");}return 0;}```4. 题目四:编写一个程序,实现字符串反转。
答案:```c#include <stdio.h>#include <string.h>void reverseString(char *str) {int length = strlen(str);for (int i = 0; i < length / 2; i++) { char temp = str[i];str[i] = str[length - i - 1];str[length - i - 1] = temp;}}int main() {char str[100];scanf("%s", str);reverseString(str);printf("%s\n", str);return 0;}```5. 题目五:编写一个程序,实现两个整数的交换。
蓝桥杯c-c++省赛试题及答案解析
2016蓝桥杯c-c++B组省赛试题及解析第一题煤球数目有一堆煤球,堆成三角棱锥形。
具体:第一层放1个,第二层3个(排列成三角形),第三层6个(排列成三角形),第四层10个(排列成三角形),....如果一共有100层,共有多少个煤球?请填表示煤球总数目的数字。
注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。
答案:171700#include<stdio.h>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);return 0;}第二题生日蜡烛某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛。
现在算起来,他一共吹熄了236根蜡烛。
请问,他从多少岁开始过生日party的?请填写他开始过生日party的年龄数。
注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。
答案:26#include<stdio.h>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 ++)sum += i;if( sum == 236){printf("start : %d end : %d\n",start,end);}}}return 0;}第三题凑算式B DEFA + --- + ------- = 10C GHI(如果显示有问题,可以参见【图1.jpg】)这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。
第八届蓝桥杯决赛试题-C大学-C组
第八届蓝桥杯决赛试题-C大学-C组2017年决赛C/C++大学C组考生须知:●考试开始后,选手首先下载题目,并使用考场现场公布的解压密码解压试题。
●考试时间为4小时。
时间截止后,提交答案无效。
●在考试强制结束前,选手可以主动结束考试(需要身份验证),结束考试后将无法继续提交或浏览答案。
●选手可浏览自己已经提交的答案。
被浏览的答案允许拷贝。
●对同一题目,选手可多次提交答案,以最后一次提交的答案为准。
●选手切勿在提交的代码中书写“姓名”、“考号”,“院校名”等与身份有关的信息或其它与竞赛题目无关的内容,否则成绩无效。
●选手必须通过浏览器方式提交自己的答案。
选手在其它位置的作答或其它方式提交的答案无效。
●试题包含三种类型:“结果填空”、“代码填空”与“程序设计”。
结果填空题:要求选手根据题目描述直接填写结果。
求解方式不限。
不要求源代码。
答案直接通过网页提交即可。
不要书写多余的内容。
代码填空题:要求选手在弄清给定代码工作原理的基础上,填写缺失的代码,使得程序逻辑正确。
所填写的代码不超过一条语句(即中间不能出现分号)。
把答案(仅填空处的答案,不包括题面已存在的代码或符号)直接通过网页提交。
不要书写多余的内容(比如注释)。
使用ANSI C/ANSI C++ 标准,不要依赖操作系统或编译器提供的特殊函数。
程序设计题目:要求选手设计的程序对于给定的输入能给出正确的输出结果。
考生的程序只有能运行出正确结果才有机会得分。
注意:在评卷时使用的输入数据与试卷中给出的示例数据可能是不同的。
选手的程序必须是通用的,不能只对试卷中给定的数据有效。
要求选手给出的解答完全符合ANSI C++标准,不能使用诸如绘图、Win32API、中断调用、硬件操作或与操作系统相关的API。
代码中允许使用STL类库,但不能使用MFC或ATL等非ANSI C++标准的类库。
例如,不能使用CString类型(属于MFC类库)。
注意: main函数必须返回0注意: 所有依赖的函数必须明确地在源文件中#include ,不能通过工程设置而省略常用头文件。
第三届蓝桥杯——蓝桥杯c语言本科组(带答案)
于是,两人沉默了好久,还是没有算出合适的结果来。
请你利用计算机的优势,找到破解的答案。
把ABCDE所代表的数字写出来。
答案写在“解答.txt”中,不要写在这里!
3.
有一群海盗(不多于20人),在船上比拼酒量。过程如下:打开一瓶酒,所有在场的人平分喝下,有几个人倒下了。再打开一瓶酒平分,又有倒下的,再次重复......直到开了第4瓶酒,坐着的已经所剩无几,海盗船长也在其中。当第4瓶酒平分喝下后,大家都倒下了。
#include <cstdio>
int main()
{
long int X=10, Y=90;
for(int k=1; k<=120; k++)//半分钟一个单位
{
if(k%2==1) Y -= X;//因为X出生半分钟后就要吃Y,尔后没1分钟要吃Y,所以永远都是奇数个半分钟的时候吃Y,又因为此时X不会增长(题目为了减小讨论的复杂度),所以直接减X数量即可。
14 10 6 2
15 11 7 3
16 12 8 4
下面的代码实现的功能就是要把一个方阵顺时针旋转。
void rotate(int* x, int rank)
{
int* y = (int*)malloc(___________________); //填空
for(int i=0; i<rank * rank; i++)
{
GoNext(x,r,c);
return;
}
int rr = GetRowStoneNum(x,r);
int cc = GetColStoneNum(x,c);
if(cc>=3) //本列已满
第六届蓝桥杯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、⽆穷分数⽆穷的分数,有时会趋向于固定的数字。
蓝桥杯c试题及答案
蓝桥杯c试题及答案蓝桥杯是中国最具影响力的计算机科学大赛之一,旨在发掘和培养计算机科学和信息技术领域的优秀人才。
每年,数以万计的学生参加这个激烈的竞赛,争夺奖金和荣誉。
在这里,我将向大家介绍几道经典的蓝桥杯C试题及其答案,希望能对大家有所帮助。
试题一:编写一个C程序,求解两个整数的最大公约数。
```c#include <stdio.h>int gcd(int a, int b){if(b == 0)return a;elsereturn gcd(b, a%b);}int main(){int a, b;printf("请输入两个整数:");scanf("%d %d", &a, &b);printf("最大公约数为:%d", gcd(a, b));return 0;}```试题二:编写一个C程序,判断一个给定的整数是否为素数。
```c#include <stdio.h>#include <math.h>int isPrime(int n){int i;if(n <= 1)return 0;for(i=2; i<=sqrt(n); i++){if(n % i == 0)return 0;}return 1;}int main(){int n;printf("请输入一个整数:");scanf("%d", &n);if(isPrime(n))printf("%d是素数", n);elseprintf("%d不是素数", n);return 0;}```试题三:编写一个C程序,实现二分查找算法。
```c#include <stdio.h>int binarySearch(int arr[], int left, int right, int target){ if(left <= right){int mid = left + (right - left) / 2;if(arr[mid] == target)return mid;if(arr[mid] < target)return binarySearch(arr, mid+1, right, target);return binarySearch(arr, left, mid-1, target);}return -1;}int main(){int arr[] = {2, 4, 6, 8, 10, 12};int target = 6;int n = sizeof(arr)/sizeof(arr[0]);int result = binarySearch(arr, 0, n-1, target);if(result == -1)printf("未找到%d", target);elseprintf("找到%d,索引为%d", target, result);return 0;}```以上是三道经典的蓝桥杯C试题及其解答。
C语言程序设计竞赛试题参考答案
C语言程序设计竞赛试题参考答案第七届“蓝桥杯”全国软件与信息技术专业人才大赛清远职业技术学院选拔赛《C语言程序设计》参考答案1.标题:年龄巧合(填空题,20分)答案: 19882.标题:海盗分金币(填空题,20分)答案: 31293.标题:啤酒和饮料(填空题,20分)答案: 114.标题:兔子繁殖(程序填空,20分)(1) i=1;i<=38;i++(2) f3=f1+f2(3) f1=f2(1) f2=f35.题目:杨辉三角(编程题 20分)代码如下:#include#includeint main(){int i,j,k,n;static int a[50][50];printf("Input lines\",&n);scanf("%d",&n);a[1][1]=a[2][1]=a[2][2]=1;for(i=3;i<=n;i++)for(j=1;j<=i;j++)a[i][j]=a[i-1][j-1]+a[i-1][j];for(i=1;i<=n;i++){for (k=1;k<=n-i;k++)printf(" ");for(j=1;j<=i;j++)printf("%2d ",a[i][j]);printf("\");}getch();return 1;}1-3题参考代码1、代码如下:#includeint main(void){int a, b, c, d;int age;int year;for(a=0; a<=2; a++){for(b=0; b<=9; b++){for(c=0; c<=9; c++){for(d=0; d<=9; d++){age = a+b+c+d;year = 2014-(a*1000+b*100+c*10+d);if(age == year){printf("%d%d%d%d ",a,b,c,d); }}}}}2、代码如下:#includeint main(void){for(int i=1; i<100000; i++){ int x = i;if((x+1)%5 != 0) continue;x = (x+1)/5 * 4;if((x+1)%5 != 0) continue;x = (x+1)/5 * 4;if((x+1)%5 != 0) continue;x = (x+1)/5 * 4;if((x+1)%5 != 0) continue;x = (x+1)/5 * 4;if((x+1)%5 != 0) continue;x = (x+1)/5 * 4;if(x>=1000 &&x<=1999)printf("%d",i);}return 1;}return 1;}3、代码如下:#includeint main(void){int x,y;for(x=0; x<=100; x++){for(y=0; y<=100; y++){if(23*x + 19*y == 823)if(x<y)< bdsfid="173" p=""></y)<> printf("%d %d\",x, y);}}return 1;}。
第七届蓝桥杯省赛c组试题及答案
第七届蓝桥杯省赛c组试题及答案第七届蓝桥杯省赛C组试题及答案1. 题目一:计算圆周率要求:编写一个程序,使用蒙特卡洛方法计算圆周率π的近似值。
解答:```pythonimport randomdef calculate_pi(num_samples):inside_circle = 0for _ in range(num_samples):x, y = random.random(), random.random()if x*x + y*y <= 1:inside_circle += 1return 4 * inside_circle / num_samplesprint(calculate_pi(1000000))```2. 题目二:字符串反转要求:编写一个函数,实现字符串反转的功能。
解答:```pythondef reverse_string(s):return s[::-1]print(reverse_string("hello"))```3. 题目三:寻找最大子数组和要求:给定一个整数数组,请找出其最大子数组和。
解答:```pythondef max_subarray_sum(nums):max_sum = nums[0]current_sum = nums[0]for num in nums[1:]:current_sum = max(num, current_sum + num)max_sum = max(max_sum, current_sum)return max_sumprint(max_subarray_sum([-2, 1, -3, 4, -1, 2, 1, -5, 4])) ```4. 题目四:判断回文链表要求:给定一个链表,判断其是否为回文结构。
解答:```pythonclass ListNode:def __init__(self, value=0, next=None):self.val = valueself.next = nextdef is_palindrome(head):fast = slow = headprev = Nonewhile fast and fast.next:fast = fast.next.nextnext_node = slow.nextslow.next = prevprev = slowslow = next_nodeif fast:slow = slow.nextleft = headright = prevwhile left and right:if left.val != right.val: return Falseleft = left.nextright = right.nextreturn True# 示例链表构建和调用node1 = ListNode(1)node2 = ListNode(2)node3 = ListNode(2)node4 = ListNode(1)node1.next = node2node2.next = node3node3.next = node4print(is_palindrome(node1))```5. 题目五:二叉树的镜像要求:请完成一个函数,实现二叉树的镜像。
蓝桥杯软件大赛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.标题: 马虎的算式小明是个急性子,上小学的时候经常把老师写在黑板上的题目抄错了。
蓝桥杯试题C语言答案-推荐下载
for(a=0;a<2;a++) for(b=0;b<2;b++) for(c=0;c<2;c++) for(d=0;d<2;d++) for(e=0;e<2;e++) { if(a&&!b) continue; if(b&&c||!b&&!c) continue; if(c&&!d||!c&&d) continue; if(!d&&!e) continue; if(e&&(!a||!d)) continue; printf("%d%d%d%d%d",a,b,c,d,e); } return 0;
} 2、某侦察队接到一项紧急任务,要求在 A、B、C、D、E、F 六个队员中尽可能 多地挑若干人,但有以下限制条件: 1)A 和 B 两人中至少去一人; 2)A 和 D 不能一起去; 3)A、E 和 F 三人中要派两人去; 4)B 和 C 都去或都不去; 5)C 和 D 两人中去一个; 6)若 D 不去,则 E 也不去。 试编写一个程序,输出问应当让哪几个人去?
} return 0; } 3、警察局抓住了 A、B、C、D 四名盗窃嫌疑犯,其中只有一人是小偷。在审问 时,A 说:“我不是小偷”; B 说:“C 是小偷”;C 说:“小偷肯定是 D”;D 说:“C 在冤枉好人”。 现在已经知道这四人中有三人说的是真话,一人说的是假话。请问到底谁是小 偷? 提示:设 4 个变量 a,b,c,d,为 0 时表示不是小偷,为 1 时表示是小偷,用四 重循环穷举 a,b,c,d 可能的取值的组合, 对每一种组合判断其是否符合题目中给出的约束。最后结论:C 是小偷。 #include<stdio.h> int main() { int a,b,c,d; for(a=1;a>=0;a--) for(b=1;b>=0;b--)/*1:是小偷 0:不是小偷*/ for(c=1;c>=0;c--) for(d=1;d>=0;d--) {
第十届蓝桥杯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)。
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电,力根通保据过护生管高产线中工敷资艺设料高技试中术卷资,配料不置试仅技卷可术要以是求解指,决机对吊组电顶在气层进设配行备置继进不电行规保空范护载高与中带资负料荷试下卷高问总中题体资,配料而置试且时卷可,调保需控障要试各在验类最;管大对路限设习度备题内进到来行位确调。保整在机使管组其路高在敷中正设资常过料工程试况中卷下,安与要全过加,度强并工看且作护尽下关可都于能可管地以路缩正高小常中故工资障作料高;试中对卷资于连料继接试电管卷保口破护处坏进理范行高围整中,核资或对料者定试对值卷某,弯些审扁异核度常与固高校定中对盒资图位料纸置试,.卷保编工护写况层复进防杂行腐设自跨备动接与处地装理线置,弯高尤曲中其半资要径料避标试免高卷错等调误,试高要方中求案资技,料术编试交写5、卷底重电保。要气护管设设装线备备置敷4高、调动设中电试作技资气高,术料课中并3中试、件资且包卷管中料拒含试路调试绝线验敷试卷动槽方设技作、案技术,管以术来架及避等系免多统不项启必方动要式方高,案中为;资解对料决整试高套卷中启突语动然文过停电程机气中。课高因件中此中资,管料电壁试力薄卷高、电中接气资口设料不备试严进卷等行保问调护题试装,工置合作调理并试利且技用进术管行,线过要敷关求设运电技行力术高保。中护线资装缆料置敷试做设卷到原技准则术确:指灵在导活分。。线对对盒于于处调差,试动当过保不程护同中装电高置压中高回资中路料资交试料叉卷试时技卷,术调应问试采题技用,术金作是属为指隔调发板试电进人机行员一隔,变开需压处要器理在组;事在同前发一掌生线握内槽图部内 纸故,资障强料时电、,回设需路备要须制进同造行时厂外切家部断出电习具源题高高电中中源资资,料料线试试缆卷卷敷试切设验除完报从毕告而,与采要相用进关高行技中检术资查资料和料试检,卷测并主处且要理了保。解护现装场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。
格子中输出
StringInGrid 函数会在一个指定大小的格子中打印指定的字符串。 要求字符串在水平、垂直两个方向上都居中。 如果字符串太长,就截断。 如果不能恰好居中,可以稍稍偏左或者偏上一点。
下面的程序实现这个逻辑,请填写划线部分缺少的代码。
#include <stdio.h> #include <string.h>
立方尾不变
有些数字的立方的末尾正好是该数字本身。 比如:1,4,5,6,9,24,25,....
请你计算一下,在 10000 以内的数字中(指该数字,并非它立方后的数值), 符合这个特征的正整数一共有多少个。
请提交该整数,不要填写任何多余的内容。
三羊献瑞
观察下面的加法算式:
祥瑞生辉 + 三羊献瑞 ------------------三羊生瑞气
比如: 1+2+3+...+10*11+12+...+27*28+29+...+49 = 2015 就是符合要求的答案。
请你寻找另外一个可能的答案,并把位置靠前的那个乘号左边的数字提交(对于示例,就 是提交 10)。
注意:需要你提交的是一个整数,不要填写任何多余的内容。 #include <stdio.h> #include<windows.h>
} int main() { char s[] = "4725873285783245723"; printf("%d\n",f(s,0,strlen(s))); return 0; }
你能读懂他的思路吗? 请填写划线部分缺失的代码。
注意:只填写缺少的部分,不要填写已有代码或任何多余内容。
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电,力根通保据过护生管高产线中工敷资艺设料高技试中术卷资,配料不置试仅技卷可术要以是求解指,决机对吊组电顶在气层进设配行备置继进不电行规保空范护载高与中带资负料荷试下卷高问总中题体资,配料而置试且时卷可,调保需控障要试各在验类最;管大对路限设习度备题内进到来行位确调。保整在机使管组其路高在敷中正设资常过料工程试况中卷下,安与要全过加,度强并工看且作护尽下关可都于能可管地以路缩正高小常中故工资障作料高;试中对卷资于连料继接试电管卷保口破护处坏进理范行高围整中,核资或对料者定试对值卷某,弯些审扁异核度常与固高校定中对盒资图位料纸置试,.卷保编工护写况层复进防杂行腐设自跨备动接与处地装理线置,弯高尤曲中其半资要径料避标试免高卷错等调误,试高要方中求案资技,料术编试交写5、卷底重电保。要气护管设设装线备备置敷4高、调动设中电试作技资气高,术料课中并3中试、件资且包卷管中料拒含试路调试绝线验敷试卷动槽方设技作、案技术,管以术来架及避等系免多统不项启必方动要式方高,案中为;资解对料决整试高套卷中启突语动然文过停电程机气中。课高因件中此中资,管料电壁试力薄卷高、电中接气资口设料不备试严进卷等行保问调护题试装,工置合作调理并试利且技用进术管行,线过要敷关求设运电技行力术高保。中护线资装缆料置敷试做设卷到原技准则术确:指灵在导活分。。线对对盒于于处调差,试动当过保不程护同中装电高置压中高回资中路料资交试料叉卷试时技卷,术调应问试采题技用,术金作是属为指隔调发板试电进人机行员一隔,变开需压处要器理在组;事在同前发一掌生线握内槽图部内 纸故,资障强料时电、,回设需路备要须制进同造行时厂外切家部断出电习具源题高高电中中源资资,料料线试试缆卷卷敷试切设验除完报从毕告而,与采要相用进关高行技中检术资查资料和料试检,卷测并主处且要理了保。解护现装场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。
//填空
奇妙的数字
小明发现了一个奇妙的数字。它的平方和立方正好把 0~9 的 10 个数字每个用且只用了 一次。 你能猜出这个数字是多少吗?
请填写该数字,不要填写任何多余的内容。
加法变乘法
我们都知道:1+2+3+ ... + 49 = 1225 现在要求你把其中两个不相邻的加号变成乘号,使得结果为 2015
int main() { StringInGrid(20,6,"abcd1234");
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电,力根通保据过护生管高产线中工敷资艺设料高技试中术卷资,配料不置试仅技卷可术要以是求解指,决机对吊组电顶在气层进设配行备置继进不电行规保空范护载高与中带资负料荷试下卷高问总中题体资,配料而置试且时卷可,调保需控障要试各在验类最;管大对路限设习度备题内进到来行位确调。保整在机使管组其路高在敷中正设资常过料工程试况中卷下,安与要全过加,度强并工看且作护尽下关可都于能可管地以路缩正高小常中故工资障作料高;试中对卷资于连料继接试电管卷保口破护处坏进理范行高围整中,核资或对料者定试对值卷某,弯些审扁异核度常与固高校定中对盒资图位料纸置试,.卷保编工护写况层复进防杂行腐设自跨备动接与处地装理线置,弯高尤曲中其半资要径料避标试免高卷错等调误,试高要方中求案资技,料术编试交写5、卷底重电保。要气护管设设装线备备置敷4高、调动设中电试作技资气高,术料课中并3中试、件资且包卷管中料拒含试路调试绝线验敷试卷动槽方设技作、案技术,管以术来架及避等系免多统不项启必方动要式方高,案中为;资解对料决整试高套卷中启突语动然文过停电程机气中。课高因件中此中资,管料电壁试力薄卷高、电中接气资口设料不备试严进卷等行保问调护题试装,工置合作调理并试利且技用进术管行,线过要敷关求设运电技行力术高保。中护线资装缆料置敷试做设卷到原技准则术确:指灵在导活分。。线对对盒于于处调差,试动当过保不程护同中装电高置压中高回资中路料资交试料叉卷试时技卷,术调应问试采题技用,术金作是属为指隔调发板试电进人机行员一隔,变开需压处要器理在组;事在同前发一掌生线握内槽图部内 纸故,资障强料时电、,回设需路备要须制进同造行时厂外切家部断出电习具源题高高电中中源资资,料料线试试缆卷卷敷试切设验除完报从毕告而,与采要相用进关高行技中检术资查资料和料试检,卷测并主处且要理了保。解护现装场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。
隔行变色
Excel 表的格子很多,为了避免把某行的数据和相邻行混淆,可以采用隔行变 色的样式。 小明设计的样式为:第 1 行蓝色,第 2 行白色,第 3 行蓝色,第 4 行白色,.... 现在小明想知道,从第 21 行到第 50 行一共包含了多少个蓝色的行。
请你直接提交这个整数,千万不要填写任何多余的内容。
int f(char s[], int begin, int end) { int mid; if(end-begin==1) return s[begin] - '0'; mid = (end+begin) / 2; return ____________________________________;
void StringInGrid(int width, int height, const char* s) { int i,k; char buf[1000]; strcpy(buf, s); if(strlen(s)>width-2) buf[width-2]=0; printf("+"); for(i=0;i<width-2;i++) printf("-"); printf("+\n"); for(k=1; k<(height-1)/2;k++){ printf("|"); for(i=0;i<width-2;i++) printf(" "); printf("|\n"); } printf("|"); printf("%*s%s%*s",_____________________________________________); // 填空