2016蓝桥杯C语言算法题

合集下载

蓝桥比赛练习C语言[5篇]

蓝桥比赛练习C语言[5篇]

蓝桥比赛练习C语言[5篇]第一篇:蓝桥比赛练习C语言时间限制:1.0s 内存限制:256.0MB1闰年判断问题描述给定一个年份,判断这一年是不是闰年。

当以下情况之一满足时,这一年是闰年: 1.年份是4的倍数而不是100的倍数; 2.年份是400的倍数。

其他的年份都不是闰年。

输入格式输入包含一个整数y,表示当前的年份。

输出格式输出一行,如果给定的年份是闰年,则输出yes,否则输出no。

说明:当试题指定你输出一个字符串作为结果(比如本题的yes 或者no,你需要严格按照试题中给定的大小写,写错大小写将不得分。

样例输入2013 样例输出no 样例输入2016 样例输出yes 数据规模与约定1990 <= y <= 2050。

本题的C参考代码如下:1.#include2.int main()3.{4.int y;5.scanf(“%d”, &y);6.if(y%4==0 && y%100!=0 || y%400==0)7.printf(“yes”);8.else9.printf(“no”);10.return 0;11.} 2.01字串问题描述对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。

它们的前几个是:00000 00001 00010 00011 00100 请按从小到大的顺序输出这32种01串。

输入格式本试题没有输入。

输出格式输出32行,按从小到大的顺序每行一个长度为5的01串。

样例输出00000 00001 00010 00011 本题的C参考代码如下:1.#include2.int main()3.{4.int i, j, k, l, m;5.for(i = 0;i <= 1;++i)6.for(j = 0;j <= 1;++j)7.for(k = 0;k <= 1;++k)8.for(l = 0;l <= 1;++l)9.for(m = 0;m <= 1;++m)10.printf(“%d%d%d%d%dn”, i, j, k, l, m);11.return 0;12.}3.字母图形问题描述利用字母可以组成一些美丽的图形,下面给出了一个例子:ABCDEFG BABCDEF CBABCDE DCBABCD EDCBABC 这是一个5行7列的图形,请找出这个图形的规律,并输出一个n行m列的图形。

2016-蓝桥杯-省赛-C语言大学A组全部真题

2016-蓝桥杯-省赛-C语言大学A组全部真题

第七届蓝桥杯大赛个人赛省赛真题(软件类)C/C++ 大学A组考生须知:●考试开始后,选手首先下载题目,并使用考场现场公布的解压密码解压试题。

●考试时间为4小时。

时间截止后,提交答案无效。

●在考试强制结束前,选手可以主动结束考试(需要身份验证),结束考试后将无法继续提交或浏览答案。

●选手可浏览自己已经提交的答案。

被浏览的答案允许拷贝。

●对同一题目,选手可多次提交答案,以最后一次提交的答案为准。

●选手切勿在提交的代码中书写“姓名”、“考号”,“院校名”等与身份有关的信息或其它与竞赛题目无关的内容,否则成绩无效。

●选手必须通过浏览器方式提交自己的答案。

选手在其它位置的作答或其它方式提交的答案无效。

●试题包含三种类型:“结果填空”、“代码填空”与“程序设计”。

结果填空题:要求选手根据题目描述直接填写结果。

求解方式不限。

不要求源代码。

把结果填空的答案直接通过网页提交即可,不要书写多余的内容。

代码填空题:要求选手在弄清给定代码工作原理的基础上填写缺失的部分,使得程序逻辑正确、完整。

把代码填空的答案(仅填空处的答案,不包括题面已存在的代码或符号)直接通过网页提交即可,不要书写多余的内容。

使用ANSI C/ANSI C++ 标准,不要依赖操作系统或编译器提供的特殊函数。

程序设计题目:要求选手设计的程序对于给定的输入能给出正确的输出结果。

考生的程序只有能运行出正确结果才有机会得分。

注意:在评卷时使用的输入数据与试卷中给出的示例数据可能是不同的。

选手的程序必须是通用的,不能只对试卷中给定的数据有效。

对于编程题目,要求选手给出的解答完全符合ANSI C++标准,不能使用诸如绘图、Win32API、中断调用、硬件操作或与操作系统相关的API。

代码中允许使用STL类库。

注意: main函数结束必须返回0注意: 所有依赖的函数必须明确地在源文件中#include <xxx>,不能通过工程设置而省略常用头文件。

所有源码必须在同一文件中。

蓝桥杯 c 试题及答案

蓝桥杯 c 试题及答案

蓝桥杯 c 试题及答案蓝桥杯是中国著名的信息技术竞赛,被誉为“程序员的奥林匹克”。

每年举办的蓝桥杯分为初赛和复赛两个阶段,覆盖了大学生、高中生和中学生等多个年龄段。

本文将为大家介绍蓝桥杯 C 试题及答案,希望能对参赛者有所帮助。

一、试题概述蓝桥杯 C 试题是蓝桥杯竞赛中的一道编程题目,通常难度较大,需要对编程语言有一定的掌握和理解。

该题目主要涉及算法、数据结构、编程思想等方面的知识,要求选手提交一个能够运行的程序,并输出符合题目要求的结果。

二、题目要求蓝桥杯 C 试题通常以具体的问题场景为背景,要求选手使用编程语言解决实际的问题。

试题要求选手根据题目描述,编写相应的程序代码,并在规定的时间内提交答案。

三、解题思路解决蓝桥杯 C 试题首先需要仔细阅读题目要求和描述,理解问题的背景和具体需求。

在编写程序时,需要灵活运用所学的算法和数据结构知识,合理选择合适的数据类型和数据结构来解决问题。

解题思路可以从以下几个方面展开:1. 根据题目描述建立适当的数据模型;2. 分析题目需求,确定解题思路;3. 编写代码实现解题思路;4. 测试代码,确保程序运行正确。

四、参考答案由于蓝桥杯竞赛的试题内容每年都有所变化,因此无法提供具体的参考答案。

但是,在参加蓝桥杯之前,可以通过学习历年的蓝桥杯 C 试题,了解题型和解题方法,提高自己的编程能力。

在备战蓝桥杯时,可以参考以下几点建议:1. 多做练习题,熟悉各种题型;2. 学习常用的算法和数据结构,如排序、查找、树、图等;3. 加强对编程语言的掌握,熟悉常用的语法和函数库;4. 参加类似的编程比赛,提高解题速度和编码能力;5. 与他人讨论、交流,学习他人的解题思路和方法。

总之,蓝桥杯 C 试题及答案是参赛者备战蓝桥杯竞赛的重要参考资料。

希望本文的介绍能够对参赛者有所帮助,并祝愿大家在蓝桥杯竞赛中取得好成绩!。

2016蓝桥杯C语言算法题

2016蓝桥杯C语言算法题
{
return -1;
}
//判断是否有某个学生的学号或名字等于data,如果有,函数返回该学生在student数组中的序号,否则返回-
for(i=0;i<n;i++)
{
if(!strcmp(data,student[i].name)||!strcmp(data,student[i].num))
return i;
输入输出样例
样例输入
769
样例输出
7 6 9
*/
#include <stdio.h>
void getResult(int num)
{
//出口
if(num<10)
{
printf("%d ",num);
return ;
}
//递归
getResult(num/10);
printf("%d ",num%10);
}
main()
{
int n;
scanf("%d",&n);
getResult(n);
printf("\n");
return 0;
}
/*
算法训练 薪水计算
问题描述
编写一个程序,计算员工的周薪。薪水的计算是以小时为单位,如果在一周的时间内,员工工作的时间不超过40 个小时,那么他/她的总收入等于工作时间乘以每小时的薪水。如果员工工作的时间在40 到50 个小时之间,那么对于前40 个小时,仍按常规方法计算;而对于剩余的超额部分,每小时的薪水按1.5 倍计算。如果员工工作的时间超过了50 个小时,那么对于前40 个小时,仍按常规方法计算;对于40~50 个小时之间的部分,每小时的薪水按1.5 倍计算;而对于超出50 个小时的部分,每小时的薪水按2 倍计算。请编写一个程序,输入员工的工作时间和每小时的薪水,然后计算并显示他/她应该得到的周薪。

蓝桥c语言的试题及答案

蓝桥c语言的试题及答案

蓝桥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。

蓝桥杯算式问题c语言

蓝桥杯算式问题c语言

蓝桥杯算式问题c语言
在蓝桥杯算式问题中,要求我们编写一个C语言程序,计算给定的算式,并输出结果。

题目描述:
输入格式:一行字符串,表示算式,长度不超过500。

输出格式:一个整数,表示算式的结果。

若算式有误,则输出error。

算式中可能出现的字符:
数字:0-9
运算符:+,-,*,/
括号:(,)
算式中的空格可以忽略。

算式的处理过程:
1、将中缀表达式转换为后缀表达式。

2、计算后缀表达式的值。

解题思路:
1、中缀表达式转后缀表达式:
先定义一个栈来存储运算符和左括号。

从左到右扫描中缀表达式,若遇到数字,直接输出;若遇到运算符,则将其与栈顶运算符比较,如果栈顶优先级高于等于当前运算符,则将栈顶运算符输出,直到栈顶运算符优先级小于当前运算符,或者栈顶为左括号,再将当前运算符压入栈中;若遇到左括号,则将其压入栈中;若遇到右括号,则将
栈中左括号之前的运算符全部输出,左括号弹出栈。

2、后缀表达式求值:
定义一个栈来存储数字。

从左到右扫描后缀表达式,若遇到数字,则直接压入栈中;若遇到运算符,则弹出栈顶两个元素进行计算,并将结果压入栈中;若遇到非法字符,则输出error。

最后栈中剩下的元素即为表达式的值。

蓝桥杯c语言试题及答案

蓝桥杯c语言试题及答案

蓝桥杯c语言试题及答案蓝桥杯C语言试题及答案一、选择题(每题2分,共10分)1. 在C语言中,以下哪个是正确的字符常量?A. 'A'B. "A"C. 123D. 0x41答案:A2. 下面哪个是C语言中的合法变量名?A. 2variableB. variable-nameC. _variableD. variable#name答案:C3. 以下哪个语句可以正确地声明一个整型数组?A. int array[10] = {0, 0, ...};B. int array[] = {0, 1, 2, ...};C. int array = {0, 1, 2, ...};D. int array[10] = {0};答案:D4. C语言中,以下哪个是正确的字符串字面量?A. "Hello World"B. 'Hello World'C. "Hello\nWorld"D. "Hello" "World"答案:A5. 以下哪个是C语言中的逻辑运算符?A. &&B. ||C. !D. All of the above答案:D二、填空题(每空2分,共10分)6. 在C语言中,表示逻辑与的运算符是______。

答案:&&7. 一个C语言程序的执行是从______函数开始的。

答案:main8. 在C语言中,用于定义一个结构体的关键字是______。

答案:struct9. 以下代码段的输出结果是______。

```cint a = 5, b = 10;printf("%d", b % a);```答案:010. 当一个C语言程序中包含多个文件时,通常使用______预处理指令来包含头文件。

答案:#include三、简答题(每题5分,共10分)11. 请简述C语言中指针的概念。

2016第七届蓝桥杯大赛CC大学C组省赛真题详解

2016第七届蓝桥杯大赛CC大学C组省赛真题详解

2016第七届蓝桥杯⼤赛CC⼤学C组省赛真题详解第七届蓝桥杯⼤赛个⼈赛省赛(软件类)C/C++ ⼤学C组⼀、试题 (2)1、报纸页数 (2)2、煤球数⽬ (2)3、平⽅怪圈 (2)4、打印⽅格 (2)5、快速排序 (4)6、凑算式 (5)7、寒假作业 (6)8、冰雹数 (6)9、卡⽚换位 (7)10、密码脱落 (9)⼆、我的作答 (10)1、2852 (10)2、171700 (10)3、145 (10)4、for(col=0; col5、swap(a,p,j) (10)6、32990530 (10)7、4(猜的) (10)8、代码 (10)9、 (10)10、代码 (10)⼀、试题1、报纸页数X星球⽇报和我们地球的城市早报是⼀样的,都是⼀些单独的纸张叠在⼀起⽽已。

每张纸印有4版。

⽐如,某张报纸包含的4页是:5,6,11,12,可以确定它应该是最上边的第2张报纸。

我们在太空中捡到了⼀张X星球的报纸,4个页码分别是:1125,1126,1727,1728请你计算这份报纸⼀共多少页(也就是最⼤页码,并不是⽤了⼏张纸哦)?请填写表⽰总页数的数字。

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

2、煤球数⽬有⼀堆煤球,堆成三⾓棱锥形。

具体:第⼀层放1个,第⼆层3个(排列成三⾓形),第三层6个(排列成三⾓形),第四层10个(排列成三⾓形),....如果⼀共有100层,共有多少个煤球?请填表⽰煤球总数⽬的数字。

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

3、平⽅怪圈如果把⼀个正整数的每⼀位都平⽅后再求和,得到⼀个新的正整数。

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

如此⼀来,你会发现,不管开始取的是什么数字,最终如果不是落⼊1,就是落⼊同⼀个循环圈。

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

请填写该最⼤数字。

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

4、打印⽅格⼩明想在控制台上输出m x n 个⽅格。

C语言的蓝桥杯习题及解析1

C语言的蓝桥杯习题及解析1

输入一个正整数n,输出n!的值。

其中n!=1*2*3*…*n。

算法描述n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法。

使用一个数组A来表示一个大整数a,A[0]表示a的个位,A[1]表示a的十位,依次类推。

将a乘以一个整数k变为将数组A的每一个元素都乘以k,请注意处理相应的进位。

首先将a设为1,然后乘2,乘3,当乘到n时,即得到了n!的值。

输入格式输入包含一个正整数n,n<=1000。

输出格式输出n!的准确值。

样例输入10样例输出3628800*/#include<stdio.h>#include<string.h>#define MAX 3000int main(){int a[MAX],i,j,n;int c=0; //进位int s;memset(a,0,sizeof(a));scanf("%d",&n);a[0]=1;for(i=2;i<=n;i++) //乘数{for(j=0;j<MAX;j++){s=a[j]*i+c;a[j]=s%10;c=s/10;}}for(i=MAX-1;i>=0;i--) //从第一个不为零的开始break;for(j=i;j>=0;j--){printf("%d",a[j]);}return 0;}BASIC-29 高精度加法/*问题描述输入两个整数a和b,输出这两个整数的和。

a和b都不超过100位。

算法描述由于a和b都比较大,所以不能直接使用语言中的标准数据类型来存储。

对于这种问题,一般使用数组来处理。

定义一个数组A,A[0]用于存储a的个位,A[1]用于存储a的十位,依此类推。

同样可以用一个数组B来存储b。

计算c = a + b的时候,首先将A[0]与B[0]相加,如果有进位产生,则把进位(即和的十位数)存入r,把和的个位数存入C[0],即C[0]等于(A[0]+B[0])%10。

蓝桥杯c语言试题

蓝桥杯c语言试题

蓝桥杯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语言试题及答案

蓝桥杯专科组c语言试题及答案蓝桥杯专科组C语言试题及答案1. 单项选择题(1) 在C语言中,下列哪个选项是正确的字符串定义方式?A. char str[] = "Hello";B. char str[] = 'Hello';C. char str[] = {"Hello"};D. char str[] = "Hello";答案:A(2) 下列关于C语言函数的描述中,错误的是?A. 函数可以没有返回值。

B. 函数可以有多个返回值。

C. 函数可以有默认参数。

D. 函数可以有不定数量的参数。

答案:C2. 程序填空题请在空白处填入正确的代码,以实现以下功能:计算并输出1到100之间所有偶数的和。

#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. 编程题编写一个C语言程序,实现以下功能:接受用户输入的两个整数,输出它们的和。

#include <stdio.h>int main() {int num1, num2, sum;printf("Enter two integers: ");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("The sum is: %d\n", sum);return 0;}4. 简答题(1) 请简述C语言中指针的概念。

答案:在C语言中,指针是一种变量,它存储了另一个变量的内存地址。

16年蓝桥杯c语言试题及答案

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. 题目五:编写一个程序,实现两个整数的交换。

16届蓝桥杯题目解析

16届蓝桥杯题目解析

16届蓝桥杯题目解析
蓝桥杯是中国最大的IT技能大赛,吸引了来自全国各地的优秀青年才俊参与。

在第16届蓝桥杯中,共有多个题目涉及各种编程语言和算法知识。

以下是对其中
几个题目的简要解析。

1. 编程题:数列求和
这道题目要求编写程序,计算给定的数列前n项和。

我们可以使用循环遍历这
个数列并累加每一项的值,最后得到总和。

要注意处理边界情况,如当n为负数或零时的处理。

2. 算法题:最小生成树
该题目要求使用Prim或Kruskal算法求解给定无向图的最小生成树。

这需要熟
悉图的概念和相关算法。

Prim算法通过不断选择与当前生成树相连的最小权值边
来构建最小生成树,而Kruskal算法则通过将边按权值排序后逐步添加到生成树中,直至生成树包含了所有顶点。

3. 程序设计题:HTML标签解析
这个题目要求编写程序,解析给定的HTML代码,并输出标签的层级及其内容。

我们可以利用栈来实现这个任务,在遍历HTML代码过程中,我们可以根据
出现的尖括号判断当前是否遇到了标签的开始或结束,并利用栈来保存标签的层级关系。

4. 企业级应用题:仓储管理系统
这个题目考察的是设计一个完整的仓储管理系统。

我们需要考虑系统的架构、
数据库设计、用户权限管理以及各种会计和库存管理的功能模块。

对于这样的题目,需要综合运用数据库知识和软件工程的设计原则来完成。

总的来说,第16届蓝桥杯的题目涵盖了各类算法和软件开发的知识点,从简单的编程题到复杂的系统设计题都有涉及。

参赛者需要广泛掌握各种编程语言和算法知识,才能在比赛中取得好成绩。

蓝桥杯b组c语言历年题目

蓝桥杯b组c语言历年题目

蓝桥杯b组c语言历年题目全文共四篇示例,供读者参考第一篇示例:蓝桥杯是中国面向大学生的计算机科学与编程竞赛,设立了不同级别的组别和不同的题目形式,其中B组是C语言编程的比赛,考察参赛选手对于C语言编程的理解和应用能力。

参加B组比赛需要具备一定的编程基础和C语言知识,适合有一定编程经验的大学生参与。

历年来,蓝桥杯B组的C语言题目围绕着各种不同的主题展开,涵盖了计算机科学与编程的各个方面,从基础的数据结构和算法到高级的计算机网络和操作系统等内容,题目设计丰富多样,旨在考察参赛选手的编程能力和创新思维。

以下是部分历年蓝桥杯B组的C语言题目:1. 编写一个程序,实现一个简单的计算器功能,支持加减乘除运算,并能够处理输入错误的情况。

2. 设计一个程序,实现一个简单的俄罗斯方块游戏,要求具备显示界面和键盘控制功能。

3. 编程实现一个简单的网络聊天程序,要求实现客户端和服务器端的通信功能,支持实时消息传输。

4. 设计一个程序,模拟实现一个简单的操作系统,包括进程管理、文件系统和内存管理等功能。

5. 编写一个程序,实现一个简单的图形界面,包括按钮、文本框和标签等控件,能够响应用户的操作。

这些题目涵盖了C语言编程中的各个方面,要求选手具备良好的编程基础和解决问题的能力,能够独立完成编程任务并提供有效的解决方案。

蓝桥杯B组的C语言题目旨在培养参赛选手的编程能力和创新思维,帮助他们提升对计算机科学和编程的理解和实践能力。

参加蓝桥杯B组比赛不仅可以锻炼参赛选手的编程技能,还可以拓宽他们的视野,了解计算机科学与技术领域的最新动态和发展趋势。

通过参加蓝桥杯的比赛,参赛选手可以结识志同道合的朋友,与他们共同探讨问题,交流经验,共同进步。

第二篇示例:蓝桥杯是中国首个面向大学生的计算机程序设计和算法竞赛,有A、B、C、D四个组别,其中B组使用C语言进行比赛。

蓝桥杯B组的比赛题目涵盖了C语言的基础知识、算法和数据结构等方面,旨在考察参赛选手的编程能力和解决问题的能力。

蓝桥杯试题答案(C语言)

蓝桥杯试题答案(C语言)

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、马虎的算式:小明是个急性子,上小学的时候经常把老师写在黑板上的题目抄错了。

第九届蓝桥杯校内选拔赛16级试题

第九届蓝桥杯校内选拔赛16级试题

第九届蓝桥杯校内选拔赛C语言组16级学生试题班级_ _ __ 姓名_ _ 学号_ _ 成绩_注意事项:●开始答题前请首先在桌面上创建一个文件夹,命名为学号+姓名,例如“1010001张三”●答题时在刚创建的文件夹下创建本题题号命名的文件夹。

例如第一题:“01”●本次考试时间为两小时三十分钟●每题20分,考核具体得分时除运算结果外,需要比较程序的结构与运行效率。

●考试结束后,请将此文件填好个人信息,保存至考试文件夹。

然后将考试文件夹整体压缩后上传到教师机。

●如有任何疑问,请询问监考教师1、求表达式的值求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。

例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制。

例如输入n=5,a=2则计算2+22+222+2222+22222并输出如果输入n=4,a=1则计算1+11+111+11112、求数字的位数给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。

例如输入32145则输出该数为5位数 5 4 1 2 3(逆序输出每一位)3、打印出如下图案(菱形)*************************4、分解数字的立方任何一个自然数m的立方均可写成m个连续奇数之和。

例如:1^3=12^3=3+53^3=7+9+114^3=13+15+17+19输出样例:输入: 4输出:4^3=13+15+17+195、猜年龄美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学。

他曾在1935~1936年应邀来中国清华大学讲学。

一次,他参加某个重要会议,年轻的脸孔引人注目。

于是有人询问他的年龄,他回答说:“我年龄的立方是个4位数。

我年龄的4次方是个6位数。

这10个数字正好包含了从0到9这10个数字,每个都恰好出现1次。

”请你编程实现计算他当时到底有多年轻,并输出他的年龄。

6、核桃的数量小张是软件项目经理,他带领3个开发组。

蓝桥杯2016年c语言试题及答案

蓝桥杯2016年c语言试题及答案

蓝桥杯2016年c语言试题及答案蓝桥杯2016年C语言试题及答案1. 单选题- 1.1 以下哪个选项是C语言中合法的变量名?- A. 2variable- B. variable2- C. variable_2- D. variable-2- 答案:C- 1.2 C语言中,以下哪个关键字用于定义一个函数?- A. class- B. function- C. def- D. int- 答案:D2. 多选题- 2.1 在C语言中,哪些运算符用于算术运算?- A. %- B. +- C. -- D. *- 答案:A, B, C, D- 2.2 以下哪些选项是C语言中合法的循环语句?- A. for- B. while- C. do-while- D. repeat-until- 答案:A, B, C3. 填空题- 3.1 在C语言中,用于定义一个整型变量的关键字是 ________。

- 答案:int- 3.2 如果一个函数没有返回值,应该使用 ________ 关键字来定义。

- 答案:void4. 简答题- 4.1 请解释C语言中指针的概念。

- 答案:- 指针是一种数据类型,它存储了另一个变量的内存地址。

通过指针,程序可以间接访问和修改变量的值。

- 4.2 描述C语言中数组和指针的关系。

- 答案:- 数组名在大多数情况下可以作为指向数组首元素的指针使用。

数组的每个元素可以通过指针偏移量来访问。

5. 编程题- 5.1 编写一个C语言程序,计算并输出100以内所有奇数的和。

- 答案:```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i < 100; i += 2) {sum += i;}printf("Sum of odd numbers from 1 to 99 is: %d\n", sum);return 0;}```- 5.2 编写一个C语言函数,实现字符串反转的功能。

蓝桥杯c语言练习题

蓝桥杯c语言练习题

蓝桥杯c语言练习题精品文档蓝桥杯c语言练习题啤酒每罐2.3元,饮料每罐1.9元。

小明买了若干啤酒和饮料,一共花了82.3元。

我们还知道他买的啤酒比饮料的数量少,请你计算他买了几罐啤酒。

注意:答案是一个整数。

请通过浏览器提交答案。

不要书写任何多余的内容。

标题2:切面条一根高筋拉面,中间切一刀,可以得到2根面条。

如果先对折1次,中间切一刀,可以得到3根面条。

如果连续对折2次,中间切一刀,可以得到5根面条。

那么,连续对折10次,中间切一刀,会得到多少面条呢,答案是个整数,请通过浏览器提交答案。

不要填写任何多余的内容。

标题3:李白打酒话说大诗人李白,一生好饮。

幸好他从不开车。

一天,他提着酒壶,从家里出来,酒壶中有酒2斗。

他边走边唱:无事街上走,提壶去打酒。

逢店加一倍,遇花喝一斗。

1 / 25精品文档这一路上,他一共遇到店5次,遇到花10次,已知最后一次遇到的是花,他正好把酒喝光了。

请你计算李白遇到店和花的次序,可以把遇店记为a,遇花记为b。

则:babaabbabbabbbb 就是合理的次序。

像这样的答案一共有多少呢,请你计算出所有可能方案的个数。

注意:通过浏览器提交答案。

答案是个整数。

不要书写任何多余的内容。

标题4:史丰收速算史丰收速算法的革命性贡献是:从高位算起,预测进位。

不需要九九表,彻底颠覆了传统手算!速算的核心基础是:1位数乘以多位数的乘法。

其中,乘以7是最复杂的,就以它为例。

因为,1/是个循环小数:0.142857...,如果多位数超过 142857...,就要进1 同理,2/7,/7, .../也都是类似的循环小数,多位数超过 n/7,就要进n 下面的程序模拟了史丰收速算法中乘以7的运算过程。

乘以的个位规律是:偶数乘以2,奇数乘以2再加5,都只取个位。

乘以的进位规律是:2 / 25精品文档满 142857 (1)满85714 (2)满28571 (3)满71428 (4)满14285 (5)满57142... 进6请分析程序流程,填写划线部分缺少的代码。

蓝桥杯c 试题及答案

蓝桥杯c 试题及答案

蓝桥杯c 试题及答案蓝桥杯是中国著名的计算机竞赛,由中国计算机学会主办,每年举办一次。

其中,C语言组是比赛的一个重要环节,考察选手对于C语言程序设计的理解和应用能力。

以下是蓝桥杯C语言组试题及答案的整理,供参赛选手参考和学习。

第一题:找素数题目描述:请编写一个程序,计算给定范围内的素数个数,并输出结果。

输入:输入两个正整数n和m(1 <= n, m <= 1000,n <= m),表示要计算的范围。

输出:输出一个整数,表示该范围内的素数个数。

样例输入:2 10样例输出:4解题思路:素数是指只能被1和自身整除的整数,根据这个定义,我们可以使用一个循环来判断每个数是否为素数。

具体实现时,首先需要判断一个数n是否为素数,可以从2开始将n除以每个数,若能整除则说明n 不是素数;反之,则n是素数。

将这个判断的逻辑封装成一个函数,然后在给定的范围内遍历每个数,统计出素数的个数即可。

代码实现:```c#include <stdio.h>int isPrime(int n) {if (n <= 1) {return 0;}for (int i = 2; i * i <= n; i++) {if (n % i == 0) {return 0;}}return 1;}int countPrimes(int n, int m) {int count = 0;for (int i = n; i <= m; i++) {if (isPrime(i)) {count++;}}return count;}int main() {int n, m;scanf("%d %d", &n, &m);int result = countPrimes(n, m);printf("%d\n", result);return 0;}```参考答案如上所示,该程序通过调用判断素数的函数,并在给定范围内进行循环判断,最终输出结果。

2016第七届蓝桥杯大赛CC 大学C组省赛真题详解

2016第七届蓝桥杯大赛CC  大学C组省赛真题详解
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; 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个(排列成三角形),
+---+---+---+---+---+---+---+---+---+---+
| | | | | | | | | | |
+---+---+---+---+---+---+---+---+---+---+
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
输入格式:输入为一个字符串,每个字符都是’0’或’1’,字符串的长度不超过32。
输出格式:输出一个整数。
输入输出样例
样例输入
1101
样例输出
13
*/
#include <stdio.h>
#include <math.h>
#include <string.h>
#define MaxSize 32
void print2Return10(char str[])
}
main()
{
int n;
scanf("%d",&n);
getResult(n);
printf("\n");
return 0;
}
/*
算法训练 薪水计算
问题描述
编写一个程序,计算员工的周薪。薪水的计算是以小时为单位,如果在一周的时间内,员工工作的时间不超过40 个小时,那么他/她的总收入等于工作时间乘以每小时的薪水。如果员工工作的时间在40 到50 个小时之间,那么对于前40 个小时,仍按常规方法计算;而对于剩余的超额部分,每小时的薪水按1.5 倍计算。如果员工工作的时间超过了50 个小时,那么对于前40 个小时,仍按常规方法计算;对于40~50 个小时之间的部分,每小时的薪水按1.5 倍计算;而对于超出50 个小时的部分,每小时的薪水按2 倍计算。请编写一个程序,输入员工的工作时间和每小时的薪水,然后计算并显示他/她应该得到的周薪。
gets(str);
print2Return10(str);
return 0;
}
/*
算法训练 数位分离
问题描述
编写一个程序,输入一个1000 以内的正整数,然后把这个整数的每一位数字都分离出来,并逐一地显示。
输入格式:输入只有一行,即一个1000以内的正整数。
输出格式:输出只有一行,即该整数的每一位数字,之间用空格隔开。
}
return -1;
}
void solve(tstudent student[], int n, int m)
{
char x[21], y[21];
int i,a,b;
for (i=0; i<m; i++)
{
//输入两个人的信息X、Y。通过调用findstudent函数判断这两个人能否成为舞伴
scanf("%s %s",x,y);
for(i=0;i<n;i++)
{
scanf("%s %s %c",student[i].name,student[i].num,&student[i].sex);
}
}
int findstudent(tstudent student[], int n, char* data)
{
int i;
if (data == NULL)
输入格式
第一行一个整数n(2<=n<=1000),表示学生人数。接下来的n行每行依次包含一名新生的姓名、学号、性别,分别用一个空格隔开。
之后的一行是一个整数m(1<=m<=1000),表示询问的数目。接着的m行每行包含两个信息(姓名或学号),保证两个信息不属于同一人,中间用一个空格隔开。
输出格式
对于每个询问输出一行,如果两人可以共舞,输出一个大写字母‘Y’,否则输出一个大写字母‘N’。
输入格式:输入只有一行,包括一个整数和一个实数,分别表示工作时间和每小时薪水。
输出格式:输出只有一个实数,表示周薪,保留小数点后2位。
输入输出样例
样例输入
40 50
样例输出
2000.00
*/
#include <stdio.h>
main()
{
int time;
float money,sum;
scanf("%d%f",&time,&money);
if(time<=40)
{
sum=time*money;
printf("%.2f\n",sum);
}
else
{
time-=40;
if(time<=10)
{
sum=time*money*1.5+40*money;
printf("%.2f\n",sum);
/*
算法训练 新生舞会
问题描述
新生舞会开始了。n名新生每人有三个属性:姓名、学号、性别。其中,姓名用长度不超过20的仅由大小写字母构成的字符串表示,学号用长度不超过10的仅由数字构成的字符串表示,性别用一个大写字符‘F’或‘M’表示。任意两人的姓名、学号均互不相同。换言之,每个人可被其姓名或学号唯一确定。给出m对两人的信息(姓名或学号),判断他们是否能共舞。两人能共舞的充要条件为两人性别相异。
#include <string.h>
#define MaxSize 1000+5
typedef struct
{
char name[21];
char num[21];
char sex;
}tstudent;
void readdata(tstudent student[], int n)
{
int i;
//输入N个学生的信息
if((a=findstudent(student,n,x))!=-1&&(b=findstudent(student,n,y))!=-1)
{
if(student[a].sex!=student.sex)
printf("Y\n");
else
printf("N\n");
}
else
{
printf("N\n");
sum = sum*i;
while(sum%10==0)
sum=sum/10;
if(sum/100>0)
sum=sum%100;
}
printf("%d",sum%10);
return 0;
}
/*
算法训练 进制转换
问题描述
编写一个程序,输入一个二进制的字符串(长度不超过32),然后计算出相应的十进制整数,并把它打印出来。
struct tstudent
{
char name[21];
char num[21];
char sex;
};
void readdata(tstudent student[], int n)
{
输入N个学生的信息
}
int findstudent(tstudent student[], int n, char* data)
if(!num)
return 0;
while(num)
{
i=num%10;
if(i||flag)
{
if(!flag)
{
number=i;
}
else
{
number=number*10+i;
}
flag=1;
}
num/=10;
}
return number;
}
main()
{
int n,m;
scanf("%d%d",&n,&m);
输入格式:输入只有一个整数n。
输出格式:输出只有一个整数,即n! 最右边的那个非0的数字。
输入输出样例
样例பைடு நூலகம்入
6
样例输出
2
*/
#include<stdio.h>
int main(void)
{
int n;
int i;
int sum=1;
scanf("%d",&n);
for(i=n;i>=1;i--)
{
{
scanf("%c",&ch);
printResult(str,ch);
}
return 0;
}
/*
算法训练 阶乘
问题描述
一个整数n的阶乘可以写成n!,它表示从1到n这n个整数的乘积。阶乘的增长速度非常快,例如,13!就已经比较大了,已经无法存放在一个整型变量中;而35!就更大了,它已经无法存放在一个浮点型变量中。因此,当n比较大时,去计算n!是非常困难的。幸运的是,在本题中,我们的任务不是去计算n!,而是去计算n!最右边的那个非0的数字是多少。例如,5! = 1*2*3*4*5 = 120,因此5!最右边的那个非0的数字是2。再如:7! = 5040,因此7!最右边的那个非0的数字是4。请编写一个程序,输入一个整数n(n<=100),然后输出n! 最右边的那个非0的数字是多少。
输入输出样例
样例输入
769
样例输出
7 6 9
*/
#include <stdio.h>
void getResult(int num)
{
//出口
if(num<10)
{
printf("%d ",num);
return ;
}
//递归
getResult(num/10);
printf("%d ",num%10);
输入格式:输入只有一行,包括两个整数,中间用空格隔开。
输出格式:输出只有一行,即相应的结果。
输入输出样例
样例输入
435 754
样例输出
199
相关文档
最新文档