蓝桥杯第六届C语言真题汇总
C程序设计第六届竞赛试题1
![C程序设计第六届竞赛试题1](https://img.taocdn.com/s3/m/75e9d748767f5acfa0c7cd03.png)
第六届c程序设计竞赛试题试题一素数问题走进世博园某信息通信馆,参观者将获得前所未有的尖端互动体验,一场充满创想和喜悦的信息通信互动体验秀将以全新形式呈现,从观众踏入展馆的第一步起,就将与手持终端密不可分,人类未来梦想的惊喜从参观者的掌上展开。
在等候区的梦想花园中,参观者便开始了他们奇妙的体验之旅,等待中的游客可利用手机等终端参加互动小游戏,与梦想剧场内的虚拟人物Kr Kong进行猜数比赛。
当屏幕出现一个整数x时,若你能比Kr Kong更快的发出最接近它的素数答案,你将会获得一个意想不到的礼物。
例如:当屏幕出现22时,你的回答应该是23;当屏幕出现8时,你的回答应是7;若x本身是素数,则回答x;若接近x的素数有两个时,则回答大于它的素数。
标准输入第一行:N 要竞猜的整数个数接下来有N行,每行只有一个正整数x标准输出输出有N行,每行是对应x的最接近它的素数。
约束条件1<=N<=5 1<=x<=1000样例输入382325样例输出72323#include<stdio.h>#include<math.h>void main(){int prime(int m);int N,i,a[5];int compare1,compare2;while(N<1||N>5){scanf("%d",&N);if(N<1||N>5)printf("输入有误请重新输入:\n"); }for(i=0;i<N;i++){scanf("%d",&a[i]);}printf("\n");for(i=0;i<N;i++){if(prime(a[i]))printf("%d\n",a[i]);else{compare1=a[i];compare2=a[i];while(1){compare1=compare1+1;if(prime(compare1))break;}while(1){compare2=compare2-1;if(prime(compare2))break;}if(compare1-a[i]<a[i]-compare2)printf("%d\n",compare1);else if(compare1-a[i]>a[i]-compare2)printf("%d\n",compare2);else if(compare1-a[i]==a[i]-compare2)printf("%d\n",compare1);elseprintf("error!\n");}}printf("\n");}int prime(int m){int i,n;if(m==1)return 0;n=sqrt(m);for(i=2;i<=n;i++)if(m%i==0){return 0;}return 1;}试题二救灾投放物质问题灾区已经非常困难,灾民需要帐篷、衣物、食品和血浆。
蓝桥杯c c 省赛试题及答案解析
![蓝桥杯c c 省赛试题及答案解析](https://img.taocdn.com/s3/m/1b8a55cffe4733687f21aa13.png)
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的数字,不同的字母代表不同的数字。
蓝桥杯历届c语言试题及答案
![蓝桥杯历届c语言试题及答案](https://img.taocdn.com/s3/m/c9dfe758366baf1ffc4ffe4733687e21af45ff22.png)
蓝桥杯历届c语言试题及答案蓝桥杯历届C语言试题及答案1. 问题描述编写一个程序,实现对给定整数数组进行排序的功能。
2. 输入格式第一行包含一个整数N,表示数组中元素的数量。
第二行包含N个整数,表示数组中的元素。
3. 输出格式输出排序后的数组。
4. 样例输入```53 14 1 5```5. 样例输出```1 1 3 4 5```6. 答案```c#include <stdio.h>#include <stdlib.h>void swap(int *a, int *b) {int temp = *a;*a = *b;*b = temp;}int partition(int arr[], int low, int high) { int pivot = arr[high];int i = (low - 1);for (int j = low; j <= high - 1; j++) {if (arr[j] < pivot) {i++;swap(&arr[i], &arr[j]);}}swap(&arr[i + 1], &arr[high]);return (i + 1);}void quickSort(int arr[], int low, int high) { if (low < high) {int pi = partition(arr, low, high);quickSort(arr, low, pi - 1);quickSort(arr, pi + 1, high);}}int main() {int N;scanf("%d", &N);int arr[N];for (int i = 0; i < N; i++) { scanf("%d", &arr[i]);}quickSort(arr, 0, N - 1);for (int i = 0; i < N; i++) { printf("%d ", arr[i]);}return 0;}```。
蓝桥杯大题总结(历届比赛共40多大题)
![蓝桥杯大题总结(历届比赛共40多大题)](https://img.taocdn.com/s3/m/dfdc0833580216fc700afd62.png)
常用算法题目1.算法是这样的,如果给定N个不同字符,将这N个字符全排列,最终的结果将会是N!种。
如:给定A、B、C三个不同的字符,则结果为:ABC、ACB、BAC、BCA、CAB、CBA一共3!=3*2=6种情况。
public class AllPermutation{public static void main(String[] args){//使用递归完成全排列char[] source=new char[]{'A','B','C'};char[] result=new char[source.length];allPermutation(0,source,result);}/**** @param index当前考虑的数的下标(从0开始)* @param source* @param result*/public static void allPermutation(int index,char[] source,char[] result){//当源数据中只有一个字符时,将该字符加入结果数组,并输出if(source.length==1){result[index]=source[0];show(result);return ;}for(int i=0;i<result.length-index;i++){result[index]=source[i];char[] newSource=getNewSource(source,source[i]);allPermutation(index+1, newSource,result);}}public static void show(char[] result){System.out.println(result);}/*** 生成去掉指定字符的新源数据数组* @param source 原来的源数据数组* @param c 指定去掉的字符* @return*/public static char[] getNewSource(char[] source,char c){ char[] newSource=new char[source.length-1];for(int i=0,j=0;i<source.length;i++){if(source[i]!=c){newSource[j]=source[i];j++;}}return newSource;}}2.串的简单处理串的处理在实际的开发工作中,对字符串的处理是最常见的编程任务。
蓝桥杯试题C语言答案
![蓝桥杯试题C语言答案](https://img.taocdn.com/s3/m/673bcbb284868762caaed578.png)
1、A、B、C、D、E五名学生有可能参加计算机竞赛,根据下列条件判断哪些人参加了竞赛:(1)A参加时,B也参加;(2)B和C只有一个人参加;(3)C和D或者都参加,或者都不参加;(4)D和E中至少有一个人参加;(5)如果E参加,那么A和D也都参加。
00110 c、d#include<stdio.h>int main(){int a,b,c,d,e; /*0表示不参加, 1表示参加.*/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也不去。
试编写一个程序,输出问应当让哪几个人去?#include<stdio.h>int main(){int a,b,c,d,e,f;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--)for(e=1;e>=0;e--)for(f=1;f>=0;f--){if(a+b>=1&&a+d!=2&&a+e+f==2&&b==c&&c+d==1&&(d+e==0||d==1))printf("a=%d,b=%d,c=%d,d=%d,e=%d,f=%d",a,b,c,d,e,f);}return 0;}3、警察局抓住了A、B、C、D四名盗窃嫌疑犯,其中只有一人是小偷。
蓝桥c语言的试题及答案
![蓝桥c语言的试题及答案](https://img.taocdn.com/s3/m/38ac657b6ad97f192279168884868762cbaebb57.png)
蓝桥c语言的试题及答案1. 以下哪个选项是C语言中的合法标识符?A. 2variableB. variable2C. intD. variable$答案:B2. 在C语言中,一个整型变量占用的字节数是多少?A. 1B. 2C. 4D. 8答案:C3. 下列哪个选项是C语言中正确的字符串字面量?A. "Hello, World!"B. 'Hello, World!'C. "Hello, World!"D. "Hello, World!"答案:A4. 在C语言中,下列哪个关键字用于定义函数?A. structB. intC. voidD. return答案:B5. 以下哪个选项是C语言中正确的数组声明?A. int arr[5] = {1, 2, 3, 4, 5};B. int arr[] = {1, 2, 3, 4, 5};C. int arr[5] = {1, 2, 3};D. int arr[] = {1, 2, 3, 4, 5, 6};答案:A6. 下列哪个选项是C语言中正确的指针声明?A. int *ptr;B. int *ptr = 0;C. int ptr = 0;D. int *ptr = 5;答案:A7. 在C语言中,下列哪个选项是正确的文件包含指令?A. #include <stdio.h>B. #include "stdio.h"C. #include <stdio.h>D. #include "stdio.h"答案:A8. 下列哪个选项是C语言中正确的条件语句?A. if (x > 0) { ... }B. if x > 0 { ... }C. if (x > 0) ...;D. if x > 0 ...;答案:A9. 在C语言中,下列哪个选项是正确的循环语句?A. for (int i = 0; i < 10; i++) { ... }B. for (int i = 0; i <= 10; i--) { ... }C. for (int i = 0; i < 10; i++) ...;D. for (int i = 0; i < 10; i--) { ... }答案:A10. 下列哪个选项是C语言中正确的函数定义?A. int main() { ... }B. int main() { ... }C. void main() { ... }D. int main(void) { ... }答案:D。
2015年第六届蓝桥杯软件类省赛真题_C大学C组
![2015年第六届蓝桥杯软件类省赛真题_C大学C组](https://img.taocdn.com/s3/m/34bd717da98271fe910ef9c8.png)
for(i=0; i<N; i++){
a[i][0] = 1;
a[i][i] = 1;
}
for(i=1; i<N; i++){
for(j=1; j<i; j++) ___________________________;
}
for(i=0; i<N; i++){
1/2 1/3 1/10 1/15
1/2 1/4 1/5 1/20
1/2 1/4 1/6 1/12
再例如,
输入:
5
程序应该输出:
1/2 1/3 1/12 1/21 1/28
1/2 1/4 1/6 1/21 1/28
1/2 1/4 1/7 1/14 1/28
1/2 1/4 1/8 1/12 1/24
1/2 1/4 1/9 1/12 1/18
for(j=0; j<=i; j++) printf("%-5d", a[i][j]);
printf("\n");
}
return 0;
}
C大学C组
2_题目
1/1 + 1/2 + 1/3 + 1/4 + ... 在数学上称为调和级数。
它是发散的,也就是说,只要加上足够多的项,就可以得到任意大的数字。
但是,它发散的很慢:
前1项和达到 1.0
前4项和才超过 2.0
前83项的和才超过 5.0
那么,请你计算一下,要加多少项,才能使得和达到或超过 15.0 呢?
请填写这个整数。
注意:只需要填写一个整数,不要填写任何多余的内容。比如说明文字。
蓝桥杯c语言历年试题及答案
![蓝桥杯c语言历年试题及答案](https://img.taocdn.com/s3/m/46617ae6b8d528ea81c758f5f61fb7360b4c2bdc.png)
蓝桥杯c语言历年试题及答案蓝桥杯C语言历年试题及答案1. 题目:求两个整数的最大公约数(GCD)。
答案:可以使用辗转相除法(欧几里得算法)来求解两个整数的最大公约数。
2. 题目:编写一个函数,实现字符串的反转。
答案:可以使用双指针法,一个指针指向字符串的开头,另一个指向字符串的结尾,然后交换这两个指针所指向的字符,直到两个指针相遇。
3. 题目:计算一个整数数组中所有元素的和。
答案:遍历数组中的每个元素,并将它们累加到一个变量中。
4. 题目:判断一个整数是否是素数。
答案:如果一个数大于1,且除了1和它本身外,不能被其他自然数整除,则它是素数。
5. 题目:实现一个函数,计算一个整数的阶乘。
答案:可以使用递归或循环来实现。
递归方法中,n的阶乘等于n 乘以(n-1)的阶乘。
6. 题目:编写一个程序,实现字符串的去重。
答案:可以使用哈希表来存储已经出现过的字符,遍历字符串时,如果字符未出现过,则将其添加到结果字符串中。
7. 题目:实现一个函数,计算数组中每个元素出现的次数。
答案:可以使用哈希表来存储每个元素及其出现的次数。
8. 题目:编写一个程序,实现二分查找算法。
答案:二分查找算法的基本思想是将数组分为两部分,取中间元素与目标值比较,如果相等,则找到目标值;如果目标值小于中间元素,则在左半部分继续查找;如果目标值大于中间元素,则在右半部分继续查找。
9. 题目:实现一个函数,计算一个整数的各位数字之和。
答案:可以使用循环,每次取整数的最后一位数字,然后将其加到一个变量中,并将整数除以10。
10. 题目:编写一个程序,实现快速排序算法。
答案:快速排序算法是一种分治法策略,通过选择一个基准值,将数组分为两部分,一部分包含小于基准值的元素,另一部分包含大于基准值的元素,然后递归地对这两部分进行快速排序。
以上是蓝桥杯C语言历年试题及答案的示例。
蓝桥杯训练试题及答案
![蓝桥杯训练试题及答案](https://img.taocdn.com/s3/m/a4bc4024326c1eb91a37f111f18583d048640f67.png)
蓝桥杯训练试题及答案1. 单项选择题请从以下选项中选择最符合题意的答案。
(1) 以下哪个选项是Python语言的解释器?A. JavaB. Node.jsC. PythonD. Ruby答案:C(2) 在HTML中,用于定义最重要的标题的标签是什么?A. <h1>B. <h6>C. <p>D. <div>答案:A2. 多项选择题请从以下选项中选择所有符合题意的答案。
(1) 以下哪些是数据结构中的基本概念?A. 栈B. 队列C. 树D. 循环答案:A, B, C(2) 在JavaScript中,哪些关键字用于声明变量?A. varB. letC. constD. function答案:A, B, C3. 判断题请判断以下陈述是否正确。
(1) 在C语言中,数组的索引从1开始。
答案:错误(2) 在数据库中,主键用于唯一标识表中的每条记录。
答案:正确4. 填空题请根据题目要求填写适当的内容。
(1) 在Python中,用于定义函数的关键字是____。
答案:def(2) 在HTML中,用于插入图片的标签是____。
答案:<img>5. 简答题请简要回答以下问题。
(1) 什么是算法的时间复杂度?答案:算法的时间复杂度是指算法执行时间随输入规模增长的变化趋势,通常用大O表示法来描述。
(2) 请简述面向对象编程的三大特性。
答案:面向对象编程的三大特性包括封装性、继承性和多态性。
6. 编程题请编写一个函数,实现将输入的字符串反转。
(1) 编程语言:Python答案:```pythondef reverse_string(s):return s[::-1]```(2) 编程语言:JavaScript答案:```javascriptfunction reverseString(s) {return s.split('').reverse().join('');}```。
蓝桥杯c语言试题
![蓝桥杯c语言试题](https://img.taocdn.com/s3/m/9196435acd7931b765ce0508763231126fdb776b.png)
蓝桥杯c语言试题蓝桥杯是中国著名的计算机科学与技术大赛,每年都吸引着众多C 语言爱好者和程序设计师的参与。
C语言作为一种被广泛使用的编程语言,也成为了蓝桥杯的重点考察内容之一。
在本文中,我们将介绍一道蓝桥杯C语言试题,并提供解答思路和示例代码。
题目描述:给定一个正整数n(1 <= n <= 1000),请编写一个程序,找出1到n之间所有能被3或5整除的数的和。
解答思路:为了求解给定数n范围内能被3或5整除的数的和,我们可以使用循环和判断语句来筛选出满足条件的数,并进行累加求和。
具体步骤如下:1. 初始化一个变量sum,用于存储满足条件的数的和。
2. 使用循环遍历1到n之间的所有数,可以使用for循环或while循环。
3. 在循环中,使用if语句判断当前数是否能够被3或5整除。
4. 若当前数可以被3或5整除,将该数累加到sum中。
5. 循环结束后,输出sum的值,即为满足条件的数的和。
示例代码:```c#include <stdio.h>int main() {int n;printf("请输入一个正整数n:");scanf("%d", &n);int sum = 0;for (int i = 1; i <= n; i++) {if (i % 3 == 0 || i % 5 == 0) {sum += i;}}printf("1到%d之间所有能被3或5整除的数的和为:%d\n", n, sum);return 0;}```通过以上示例代码,我们可以实现对给定数n范围内能被3或5整除的数的求和。
在程序运行时,用户需输入一个正整数n,程序将输出1到n之间能被3或5整除的数的和。
总结:本文介绍了一道蓝桥杯C语言试题,并提供了解答思路和示例代码。
使用循环和判断语句,可以轻松实现对给定数范围内能被指定数值整除的数的求和。
蓝桥杯第六届c语言试题及答案
![蓝桥杯第六届c语言试题及答案](https://img.taocdn.com/s3/m/7d7ac8a2710abb68a98271fe910ef12d2af9a986.png)
蓝桥杯第六届c语言试题及答案蓝桥杯第六届C语言试题及答案1. 选择题1.1. 以下哪个选项是C语言中的关键字?A. intB. integerC. varD. string答案: A1.2. C语言中,以下哪个运算符用于取模运算?A. %B. /C. *D. -答案: A2. 填空题2.1. 在C语言中,用于定义一个整型变量的关键字是____。
答案: int2.2. C语言中,用于数组定义的关键字是____。
答案: array3. 编程题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 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[] = "Hello, World!";reverseString(str);printf("Reversed string: %s\n", str);return 0;}```4. 简答题4.1. 简述C语言中指针的概念及其用途。
蓝桥杯试题答案(C语言)
![蓝桥杯试题答案(C语言)](https://img.taocdn.com/s3/m/0c7668f0f705cc17552709b3.png)
1、亲密数:假设有a、b两个数,若a的所有因子之和等于b,b的所有因子之和等于a,并且a不等于b,则称a和b是一对亲密数。
如284和220就是一对亲密数。
#include<stdio.h>int main(){int a,b,i,n;for(a=1;a<=10000;a++){for(b=0,i=1;i<=a/2;i++)if(a%i==0)b+=i;for(n=0,i=1;i<=b/2;i++)if(b%i==0)n+=i;if(n==a&&a!=b&&a<b)printf("%d-%d\n",a,b);}return0;}2、世纪末的星期:曾有邪教称1999年12月31日是世界末日。
当然该谣言已经不攻自破。
还有人称今后的某个世纪末的12月31日䊵如果是星期一则会....有趣的是任何一个世纪末的年份的12月31日都不可能是星期一!!于是“谣言制造商”又修改为星期日......1999年的12月31日是星期五,请问,未来哪一个离我们最近的一个世纪末年即xx99年的12月31日正好是星期天,即星期日请回答该年份,只写这个4位整数,不要写12月31等多余信息#include<stdio.h>int main(){long days=5;/*1999年的最后一天为周5,把下一年加上5天对7取余为0的,则是周日*/int i=2000;for(;;)/*无循环终止条件,可以利用break语句终止循环*/{if(i%4==0&&i%100!=0||i%400==0){days=days%7+366;}else{days=days%7+365;}if(days%7==0&&i%100==99){printf("%d",i);break;}i++;}return0;}3、马虎的算式:小明是个急性子,上小学的时候经常把老师写在黑板上的题目抄错了。
蓝桥杯试题C语言答案
![蓝桥杯试题C语言答案](https://img.taocdn.com/s3/m/20af0ec1cc17552706220811.png)
1、A、B、C、D、E五名学生有可能参加计算机竞赛,根据下列条件判断哪些人参加了竞赛:(1)A参加时,B也参加;(2)B和C只有一个人参加;(3)C和D或者都参加,或者都不参加;(4)D和E中至少有一个人参加;(5)如果E参加,那么A和D也都参加。
00110 c、d#include<stdio.h>int main(){int a,b,c,d,e; /*0表示不参加, 1表示参加.*/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也不去。
试编写一个程序,输出问应当让哪几个人去?#include<stdio.h>int main(){int a,b,c,d,e,f;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--)for(e=1;e>=0;e--)for(f=1;f>=0;f--){if(a+b>=1&&a+d!=2&&a+e+f==2&&b==c&&c+d==1&&(d+e==0||d==1))printf("a=%d,b=%d,c=%d,d=%d,e=%d,f=%d",a,b,c,d,e,f);}return 0;}3、警察局抓住了A、B、C、D四名盗窃嫌疑犯,其中只有一人是小偷。
第六届蓝桥杯JavaC组省赛真题——详细答案对照(包含垒骰子)
![第六届蓝桥杯JavaC组省赛真题——详细答案对照(包含垒骰子)](https://img.taocdn.com/s3/m/2b3c0795b8d528ea81c758f5f61fb7360b4c2bd8.png)
第六届蓝桥杯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语言试题及答案](https://img.taocdn.com/s3/m/b2e52a9fc9d376eeaeaad1f34693daef5ff71362.png)
蓝桥杯第六届c语言试题及答案蓝桥杯第六届C语言试题及答案1. 题目一:字符串反转编写一个函数,实现字符串的反转。
```c#include <stdio.h>#include <string.h>void reverseString(char* str) {int len = strlen(str);char temp;for (int i = 0; i < len / 2; i++) {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;}```答案:函数`reverseString`通过交换字符串的前后字符来实现反转功能。
2. 题目二:计算阶乘编写一个函数,计算并返回一个非负整数的阶乘。
```c#include <stdio.h>unsigned long long factorial(int n) {if (n == 0) return 1;unsigned long long result = 1;for (int i = 1; i <= n; i++) {result *= i;}return result;}int main() {int number = 5;printf("Factorial of %d is %llu\n", number,factorial(number));return 0;}```答案:函数`factorial`通过一个循环计算给定数字的阶乘。
3. 题目三:寻找最大值编写一个函数,找出一个整数数组中的最大值。
2023年蓝桥杯语言高职真题附加答案
![2023年蓝桥杯语言高职真题附加答案](https://img.taocdn.com/s3/m/68540bfd294ac850ad02de80d4d8d15abe2300be.png)
模拟c语言高职注意:本套模拟题重要模拟命题形式与考核范围。
真实竞赛题旳数量、难度也许与此套模拟题有差异。
阐明:本试卷包括两种题型: “代码填空”与“程序设计”。
填空题规定参赛选手在弄清给定代码工作原理旳基础上填写缺失旳部分, 使得程序逻辑对旳、完整。
所填写旳代码不多于一条语句(即不能出现分号)。
编程题规定选手设计旳程序对于给定旳输入能给出对旳旳输出成果。
注意:在评卷时使用旳输入数据与试卷中给出旳实例数据也许是不一样旳。
选手旳程序必须是通用旳, 不能只对试卷中给定旳数据有效。
1.代码填空(满2分)形如: “abccba”, “abcba”旳串称为回文串, 下列代码判断一种串与否为回文串。
请补充空白旳部分。
char buf[] = "abcde11edcba";int x = 1;for(int i=0; i<strlen(buf)/2; i++)if(__buf[i]!=buf[strlen(buf)-1-i]_________________){x = 0;break;}printf("%s\n", x ? "是":"否");2.代码填空(满分3分)下列代码把一种二进制旳串转换为整数。
请填写缺乏旳语句;char* p = "0";int n = 0;for(int i=0;i<strlen(p); i++){n = ___n+(p[i]-48)*pow(2,strlen(p)-1-i)_______________;}printf("%d\n", n);3.代码填空(满分3分)假设a,b,c是3个互不相等旳整数。
下列代码取出它们中居中旳数值, 记录在m中。
其中旳swap()函数可以互换两个变量旳值。
请完善代码。
if(a>b) swap(&a, &b);if(b>c) swap(&b, &c);__if(a>b) swap(&a,&b)____________________;int m = b;4.代码填空(满分6分)下面函数旳目旳是求出某个日期是该年度旳第几天。
第六届蓝桥杯省赛C++B组生命之树
![第六届蓝桥杯省赛C++B组生命之树](https://img.taocdn.com/s3/m/602ab72cabea998fcc22bcd126fff705cd175c55.png)
第六届蓝桥杯省赛C++B组⽣命之树通过理解题意注意是要任意两点要有连线,不⼀定是直接相连,说⽩了就是求哪个连通块权值⼤。
很简单的树形dp计算,但是要注意是从叶节点往上,来求出结果,如果从顶到底,只能计算出以第⼀个搜索为根的最⼩,但是答案不⼀定包括你第⼀个搜索的根,所以只能采⽤从下到上的⽅法,这样把所有⼦节点的值均为正值的加起来,再加上⾃⼰的值即可。
最后遍历所有节点,求得如果取某节点为根(根也要在S⾥⾯),则最⼤值是多少,由于答案必要有⼀个节点,所以遍历所有根即可得到答案,如果不遍历则若所有节点权值均为负数,答案本应该是最⼩的负数,但实际上会输出根的权值。
AC代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;const ll INF = 0x3f3f3f3f3f3f3f3f;vector<int> vec[100005];ll dp[100005];int score[100005];ll ans = -INF;int DP(int now, int fa){dp[now] = score[now];for(int i = 0; i < vec[now].size(); i++){if(vec[now][i] == fa)continue;DP(vec[now][i], now);dp[now] += max(0ll, dp[vec[now][i]]);}}int main(){int n;scanf("%d", &n);for(int i = 1; i <= n; i++)scanf("%d", &score[i]);int u, v;for(int i = 0; i < n - 1; i++){scanf("%d %d", &u, &v);vec[v].push_back(u);vec[u].push_back(v);}DP(1, 0);for(int i = 1; i <= n; i++)ans = max(ans, dp[i]);printf("%lld\n", ans);return0;}。
蓝桥杯第六届C语言真题汇总
![蓝桥杯第六届C语言真题汇总](https://img.taocdn.com/s3/m/47747692fc0a79563c1ec5da50e2524de518d0b0.png)
蓝桥杯第六届C语言真题汇总1、奖券数目有些人很迷信数字,比如带“4”的数字,认为和“死”谐音,就觉得不吉利。
虽然这些说法纯属无稽之谈,但有时还要迎合大众的需求。
某抽奖活动的奖券号码是5位数(10000-99999),要求其中不要出现带“4”的号码,主办单位请你计算一下,如果任何两张奖券不重号,最多可发出奖券多少张。
请提交该数字(一个整数),不要写任何多余的内容或说明性文字。
2、星系炸弹在X星系的广袤空间中漂浮着许多X星人造“炸弹”,用来作为宇宙中的路标。
每个炸弹都可以设定多少天之后爆炸。
比如:阿尔法炸弹2015年1月1日放置,定时为15天,则它在2015年1月16日爆炸。
有一个贝塔炸弹,2014年11月9日放置,定时为1000天,请你计算它爆炸的准确日期。
请填写该日期,格式为 yyyy-mm-dd 即4位年份2位月份2位日期。
比如:2015-02-19请严格按照格式书写。
不能出现其它文字或符号。
if(year%4==0||(year%100==0&&year%400!=0)) 3、三羊献瑞观察下面的加法算式:祥瑞生辉+ 三羊献瑞-------------------三羊生瑞气(如果有对齐问题,可以参看【图1.jpg】)其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字。
请你填写“三羊献瑞”所代表的4位数字(答案唯一),不要填写任何多余内容。
4、格子中输出StringInGrid函数会在一个指定大小的格子中打印指定的字符串。
要求字符串在水平、垂直两个方向上都居中。
如果字符串太长,就截断。
如果不能恰好居中,可以稍稍偏左或者偏上一点。
下面的程序实现这个逻辑,请填写划线部分缺少的代码。
#include#includevoid 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<="" printf("-");="">for(k=1; k<(height-1)/2;k++){printf("|");for(i=0;iprintf("|\n");}printf("|");printf("%*s%s%*s",_____________________________________________); //填空printf("|\n");for(k=(height-1)/2+1; k<="" p="">printf("|");for(i=0;iprintf("|\n");printf("+");for(i=0;i<="" printf("-");="">}int main(){StringInGrid(20,6,"abcd1234");return 0;}对于题目中数据,应该输出:+------------------+| || abcd1234 || || |+------------------+(如果出现对齐问题,参看【图1.jpg】)注意:只填写缺少的内容,不要书写任何题面已有代码或说明性文字。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、奖券数目有些人很迷信数字,比如带“4”的数字,认为和“死”谐音,就觉得不吉利。
虽然这些说法纯属无稽之谈,但有时还要迎合大众的需求。
某抽奖活动的奖券号码是5位数(10000-99999),要求其中不要出现带“4”的号码,主办单位请你计算一下,如果任何两张奖券不重号,最多可发出奖券多少张。
请提交该数字(一个整数),不要写任何多余的内容或说明性文字。
2、星系炸弹在X星系的广袤空间中漂浮着许多X星人造“炸弹”,用来作为宇宙中的路标。
每个炸弹都可以设定多少天之后爆炸。
比如:阿尔法炸弹2015年1月1日放置,定时为15天,则它在2015年1月16日爆炸。
有一个贝塔炸弹,2014年11月9日放置,定时为1000天,请你计算它爆炸的准确日期。
请填写该日期,格式为 yyyy-mm-dd 即4位年份2位月份2位日期。
比如:2015-02-19请严格按照格式书写。
不能出现其它文字或符号。
if(year%4==0||(year%100==0&&year%400!=0)) 3、三羊献瑞观察下面的加法算式:祥瑞生辉+ 三羊献瑞-------------------三羊生瑞气(如果有对齐问题,可以参看【图1.jpg】)其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字。
请你填写“三羊献瑞”所代表的4位数字(答案唯一),不要填写任何多余内容。
4、格子中输出StringInGrid函数会在一个指定大小的格子中打印指定的字符串。
要求字符串在水平、垂直两个方向上都居中。
如果字符串太长,就截断。
如果不能恰好居中,可以稍稍偏左或者偏上一点。
下面的程序实现这个逻辑,请填写划线部分缺少的代码。
#include <stdio.h>#include <string.h>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",_______________________ ______________________); //填空printf("|\n");for(k=(height-1)/2+1; k<height-1; k++){printf("|");for(i=0;i<width-2;i++) printf(" ");printf("|\n");}printf("+");for(i=0;i<width-2;i++) printf("-"); printf("+\n");}int main(){StringInGrid(20,6,"abcd1234");return 0;}对于题目中数据,应该输出:+------------------+| || abcd1234 || || |+------------------+(如果出现对齐问题,参看【图1.jpg】)注意:只填写缺少的内容,不要书写任何题面已有代码或说明性文字。
5、九数组分数1,2,3...9 这九个数字组成一个分数,其值恰好为1/3,如何组法?下面的程序实现了该功能,请填写划线部分缺失的代码。
#include <stdio.h>void test(int x[]){int a = x[0]*1000 + x[1]*100 + x[2]*10 + x[3];int b = x[4]*10000 + x[5]*1000 + x[6]*100 + x[7]*10 + x[8];if(a*3==b) printf("%d / %d\n", a, b);}void f(int x[], int k){int i,t;if(k>=9){test(x);return;}for(i=k; i<9; i++){{t=x[k]; x[k]=x[i]; x[i]=t;}f(x,k+1);_________________________________________ ____ // 填空处}}int main(){int x[] = {1,2,3,4,5,6,7,8,9};f(x,0);return 0;}注意:只填写缺少的内容,不要书写任何题面已有代码或说明性文字。
6、加法变乘法我们都知道:1+2+3+ ... + 49 = 1225现在要求你把其中两个不相邻的加号变成乘号,使得结果为2015比如:1+2+3+...+10*11+12+...+27*28+29+...+49 = 2015就是符合要求的答案。
请你寻找另外一个可能的答案,并把位置靠前的那个乘号左边的数字提交(对于示例,就是提交10)。
注意:需要你提交的是一个整数,不要填写任何多余的内容。
7、牌型种数小明被劫持到X赌城,被迫与其他3人玩牌。
一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张。
这时,小明脑子里突然冒出一个问题:如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序,自己手里能拿到的初始牌型组合一共有多少种呢?请填写该整数,不要填写任何多余的内容或说明文字。
8、移动距离X星球居民小区的楼房全是一样的,并且按矩阵样式排列。
其楼房的编号为1,2,3...当排满一行时,从下一行相邻的楼往反方向排号。
比如:当小区排号宽度为6时,开始情形如下:1 2 3 4 5 612 11 10 9 8 713 14 15 .....我们的问题是:已知了两个楼号m和n,需要求出它们之间的最短移动距离(不能斜线方向移动)输入为3个整数w m n,空格分开,都在1到10000范围内w为排号宽度,m,n为待计算的楼号。
要求输出一个整数,表示m n 两楼间最短移动距离。
例如:用户输入:6 8 2则,程序应该输出:4再例如:用户输入:4 7 20则,程序应该输出:5资源约定:峰值内存消耗 < 256MCPU消耗 < 1000ms请严格按要求输出,不要画蛇添足地打印类似:“请您输入...”的多余内容。
所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。
注意: main函数需要返回0注意: 只使用ANSI C/ANSI C++ 标准,不要调用依赖于编译环境或操作系统的特殊函数。
注意: 所有依赖的函数必须明确地在源文件中#include <xxx>,不能通过工程设置而省略常用头文件。
提交时,注意选择所期望的编译器类型。
9、垒骰子赌圣atm晚年迷恋上了垒骰子,就是把骰子一个垒在另一个上边,不能歪歪扭扭,要垒成方柱体。
经过长期观察,atm 发现了稳定骰子的奥秘:有些数字的面贴着会互相排斥!我们先来规范一下骰子:1 的对面是 4,2 的对面是 5,3 的对面是 6。
假设有 m 组互斥现象,每组中的那两个数字的面紧贴在一起,骰子就不能稳定的垒起来。
atm想计算一下有多少种不同的可能的垒骰子方式。
两种垒骰子方式相同,当且仅当这两种方式中对应高度的骰子的对应数字的朝向都相同。
由于方案数可能过多,请输出模 10^9 + 7 的结果。
不要小看了 atm 的骰子数量哦~「输入格式」第一行两个整数 n mn表示骰子数目接下来 m 行,每行两个整数 a b ,表示 a 和 b 数字不能紧贴在一起。
「输出格式」一行一个数,表示答案模 10^9 + 7 的结果。
「样例输入」2 11 2「样例输出」544「数据范围」对于 30% 的数据:n <= 5对于 60% 的数据:n <= 100对于 100% 的数据:0 < n <= 10^9, m <= 36资源约定:峰值内存消耗 < 256MCPU消耗 < 2000ms请严格按要求输出,不要画蛇添足地打印类似:“请您输入...”的多余内容。
所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。
注意: main函数需要返回0注意: 只使用ANSI C/ANSI C++ 标准,不要调用依赖于编译环境或操作系统的特殊函数。
注意: 所有依赖的函数必须明确地在源文件中#include <xxx>,不能通过工程设置而省略常用头文件。
提交时,注意选择所期望的编译器类型。