2019l蓝桥杯c语言高职真题附加答案

发布 2022-02-28 19:38:28 阅读 1593

2011 模拟 c语言高职。

注意:本套模拟题主要模拟命题形式与考核范围。真实竞赛题的数量、难度可能与此套模拟题有差异。

说明:本试卷包含两种题型:“**填空”与“程序设计”。

填空题要求参赛选手在弄清给定**工作原理的基础上填写缺失的部分,使得程序逻辑正确、完整。所填写的**不多于一条语句(即不能出现分号)。

编程题要求选手设计的程序对于给定的输入能给出正确的输出结果。注意:在评卷时使用的输入数据与试卷中给出的实例数据可能是不同的。

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

形如:“abccba”,“abcba”的串称为回文串,下列**判断一个串是否为回文串。请补充空白的部分。 strlen从1开始。

char buf abcde11edcba";

int x = 1;

for(int i=0; i if(__buf[i]!=buf[strlen(buf)-1-i

printf("%s", x ? 是":"否");

下列**把一个二进制的串转换为整数。请填写缺少的语句;

char* p = 1010110001100";

int n = 0;

for(int i=0;i

printf("%d", n);

假设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;

下面函数的目的是求出某个日期是该年度的第几天。试完善之。

如果传入:year=1980,month=1, day=1

则返回 1如果传入:year=1980,month=2, day=1

则返回 32

int getdayofyear(int year, int month, int day)

int days [2][12]=,31,28,31,30,31,30,31,31,30,31,30,31}};

int flag =(year%4==0 &&year%100!=0) |year%400 ==0 ? 1 : 0;

flag=1,表示是闰年,flag=0,表示非闰年。

int sum = day ;

for(int i=0;isum +=days[flag][i];

return sum;

计算3个a,2个b可以组成多少种排列的问题(如:aaabb, aabba)是《组合数学》的研究领域。但有些情况下,也可以利用计算机计算速度快的特点通过巧妙的推理来解决问题。

下列的程序计算了m个a,n个b可以组合成多少个不同排列的问题。请完善它。

int f(int m, int n)

if(m==0 ||n==0) return 1;

return __f(m,n-1)+f(m-1,n)_;递归。

a+b)的n次幂的展开式中各项的系数很有规律,对于n=2,3,4时分别是:1 2 1, 1 3 3 1,1 4 6 4 1。这些系数构成了著名的杨辉三角形:

下列的程序给出了计算第m层的第n个系数的计算方法,试完善之(m,n都从0算起)。

int f(int m, int n)

从键盘输入一个整数(1~20)

则以该数字为矩阵的大小,把1,2,3…n*n 的数字按照顺时针螺旋的形式填入其中。例如:

输入数字2,则程序输出:

输入数字3,则程序输出:

输入数字4, 则程序输出:

#include <>

int main()

int n,j;

int a[20][20]=;

loop: printf("输入0--20:");

int l,h,i=1,x=1;//l是行,h是列,x代表第几圈。

scanf("%d",&n);

for(x=1;x<(n+3)/2;x++)

for(i=0;i

goto loop;

从键盘输入一个日期,格式为yyyy-m-d

要求计算该日期与2023年10月1日距离多少天。

例如:用户输入了:1949-10-2

程序输出:1

用户输入了:1949-11-1

程序输出:31

当你输入信用卡号码的时候,有没有担心输错了而造成损失呢?其实可以不必这么担心,因为并不是一个随便的信用卡号码都是合法的,它必须通过luhn算法来验证通过。

该校验的过程:

1、从卡号最后一位数字开始,逆向将奇数位等等)相加。

2、从卡号最后一位数字开始,逆向将偶数位数字,先乘以2(如果乘积为两位数,则将其减去9),再求和。

3、将奇数位总和加上偶数位总和,结果应该可以被10整除。

例如,卡号是:5432123456788881

则奇数、偶数位(用红色标出)分布:5432123456788881

奇数位和=35

偶数位乘以2(有些要减去9)的结果:1 6 2 6 1 5 7 7,求和=35。

最后35+35=70 可以被10整除,认定校验通过。

请编写一个程序,从键盘输入卡号,然后判断是否校验通过。通过显示:“成功”,否则显示“失败”。

比如,用户输入:356827027232780

程序输出:成功。

任意一个5位数,比如:34256,把它的各位数字打乱,重新排列,可以得到一个最大的数:65432,一个最小的数23456。

求这两个数字的差,得:41976,把这个数字再次重复上述过程(如果不足5位,则前边补0)。如此往复,数字会落入某个循环圈(称为数字黑洞)。

比如,刚才的数字会落入:[82962, 75933, 63954, 61974] 这个循环圈。

请编写程序,找到5位数所有可能的循环圈,并输出,每个循环圈占1行。其中5位数全都相同则循环圈为 [0],这个可以不考虑。循环圈的输出格式仿照:

其中数字的先后顺序可以不考虑。

#include <>

#include <>

void blackhole(int a);

int sort(int p,int len,int flag);

int i,j;

int r[100]=;

int main()

printf("请输入一个五位数");

scanf("%d",&i);

blackhole(i);

return 0;

void blackhole(int a)

int s**e=a;

static int t=0;

int flag=0;

int s=0;

int p[5];

int len=0;

for(i=0;i

if(flag==0)

for(i=0;ip[i]=a%10;

a/=10;

int max=sort(p,len,1);

int min=sort(p,len,0);

blackhole(max-min);

else

int sort(int p,int len,int flag)

int temp;

2019l蓝桥杯c语言高职真题附加答案

2011蓝桥杯大赛模拟c语言试题 形如 abccba abcba 的串称为回文串,下列 判断一个串是否为回文串。请补充空白的部分。char buf abcde11edcba int x 1 for int i 0 i if buf i buf strlen buf 1 i printf s x 是 ...

蓝桥杯2023年C语言真题

标题1 啤酒和饮料。啤酒每罐2.3元,饮料每罐1.9元。小明买了若干啤酒和饮料,一共花了82.3元。我们还知道他买的啤酒比饮料的数量少,请你计算他买了几罐啤酒。注意 答案是一个整数。请通过浏览器提交答案。不要书写任何多余的内容 例如 写了饮料的数量,添加说明文字等 标题2 切面条。一根高筋拉面,中间...

2023年蓝桥杯 第2届 预赛高职C语言真题解析

小李年初在银行存款1千元 一年定期 他计划每年年底取出100元救助失学儿童。假设银行的存款利率不变,年利率为3 年底利息自动计入本金。下面的 计算5年后,该账户上有多少存款。试填写缺失的 double money 1000 int n 5 int i for i 0 i printf f a ret...