请问大家有没有之前的蓝桥杯题?最好有C本科群的答案~ ~ ~发到我邮箱:447472614@qq.com。

注意:

这套模拟题主要是模拟命题的形式和考核的范围。真题竞赛题的数量和难度可能和这套模拟题不一样。

描述:

本文包含“代码填空”和“编程”两类题型。

填空题要求参赛选手在理解给定代码工作原理的基础上,补齐缺失的部分,使程序逻辑正确完整。在代码中填入不超过一个语句(即不能出现分号)。

编程题要求玩家设计的程序能够对给定的输入给出正确的输出结果。注意:阅卷中使用的输入数据可能与试卷中给出的示例数据不同。玩家的程序必须是通用的,不仅仅是对试卷中给出的数据有效。

代码填空(满分2分)

形状像“abccba”和“abcba”的字符串称为回文。下面的代码判断一个字符串是否是回文。请填空。

char buf[]= " abcde 11 edcba ";

int x = 1;

for(int I = 0;我& ltstrlen(buf)/2;i++)

如果(___________________)

{

x = 0;

打破;

}

printf("%s\n ",x?“是”:“否”);

用代码填空(共3项)

下面的代码将二进制字符串转换为整数。请填写缺失的语句;

char * p = " 1010110001100 ";

int n = 0;

for(int I = 0;我& ltstrlen(p);i++)

{

n = _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

}

printf("%d\n ",n);

用代码填空(共3项)

假设a,b,c是三个互不相等的整数。下面的代码取出其中的中间值,记录在m中,swap()函数可以交换两个变量的值。请完善代码。

如果(a & gtb)掉期交易。一,& ampb);

如果(b & gt掉期交易。b & amp;c);

______________________;

int m = b;

用代码填空(满分6分)

以下函数的目的是找出日期是一年中的哪一天。努力完善它。

如果传入:年=1980,月=1,日=1。

则返回1。

如果传入:年=1980,月=2,日=1。

然后回到32

int getDayOfYear(int年,int月,int日)

{

int days _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _;

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

int sum = day

for(int I = 0;我& lt月份;i++){

sum+= days[flag][I];

}

返回总和;

}

用代码填空(共7个)

计算三个A和两个B能形成多少种排列(如AAABB,AABBA)的问题是组合数学的研究领域。但在某些情况下,也可以利用计算机运算速度快的优势,通过巧妙的推理来解决问题。下面的程序计算了M A和N B可以组合成多少种不同的排列。请完善它。

int f(int m,int n)

{

if(m==0 || n==0)返回1;

返回_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _;

}

用代码填空(从10中)

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

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

下面的程序给出了计算第m层第n个系数的计算方法,并尝试改进(m和n都是从0开始计数)。

int f(int m,int n)

{

if(m==0)返回1;

if(n==0 || n==m)返回1;

返回_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _;

}

编程(满分15)

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

然后是1,2,3的数...n * n以顺时针螺旋的形式填入矩阵。例如:

输入数字2,程序输出:

1 2

4 3

输入数字3,程序输出:

1 2 3

8 9 4

7 6 5

输入数字4,程序输出:

1 2 3 4

12 13 14 5

11 16 15 6

10 9 8 7

编程(满分9分)

从键盘上输入日期,格式为yyyy-M-d m-d。

需要计算日期从1949 65438+10月1有多少天。

例如:

用户输入:1949-10-2。

程序输出:1

用户输入:1949-11-1。

程序输出:31

编程(12)

当你输入信用卡号时,你是否担心输入错误造成的损失?其实你不用这么担心,因为不是所有随机的信用卡号都是合法的,而且必须经过Luhn算法验证。

验证过程:

1,从卡号最后一位开始,加奇数(1,3,5等。)反过来。

2.从卡号的最后一位开始,偶数乘以2(如果乘积是两位数,则减9),然后求和。

3.奇数和与偶数和相加,结果应该能被10整除。

比如卡号54321234567888881。

然后奇数和偶数的分布(红色标注):543212345678881。

奇数和=35

偶数乘以2(有的减9)得1 6 2 6 1 5 7 7,和为35。

最后35+35=70能被10整除,验证视为通过。

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

比如用户输入:356827027232780。

程序输出:成功

编程(满分20分)

任何一个五位数,比如34256,都可以被打乱重新排列得到一个最大数:65432和一个最小数23456。求这两个数的差,得到:41976。对这个数字再次重复上述过程(如果少于5位数,则在前面加0)。如此往复,数字会落入一个圆圈(称为数字黑洞)。

比如刚才的数字会落入【82962,75933,63954,61974】的圈子。

请写一个程序,找出所有可能的5位数的循环,并输出,每个循环占用1行。如果所有五位数字都相同,则循环为[0],可以忽略。循环的输出格式如下所示:

[82962, 75933, 63954, 61974]

数字的顺序可以忽略。