**今天给大家带来2022年,第十三届蓝桥杯大赛的真题解析**
转眼间,距离考试已经过去很长时间了,今天解元给大家解析一下,有问题欢迎大家指点
:笑:
下面进入正题
前言
考试已经结束,有的同学可能对于这次考试不太理想,本以为能靠填空题能得省三,可谁知道填空题只有两道。希望大家调整好心态,去迎接更大的挑战。
话不多说,直接上题解
填空题
1.排列字母
这一题送分题,口算都能算出,明显是用ASCII排序的,因为字符在内存中存储情况就是用ASCII,所以直接比大小就ok。下面我用程序的方法给大家写出来
#include<stdio.h>
#include<string.h>
#include<assert.h>
void String_sore(char arr[], const int len)
{
assert(arr);
int i=0 , j =0;
char ret ;
for (i = 0; i < len; i++)
{
for (j = 0; j < len - i; j++)
{
if (arr[j] > arr[j + 1])
{
ret = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = ret;
}
}
}
for (i = 0; i < len; i++)
{
printf("%c", arr[i]);
}
}
int main()
{
char arr[] = { "WHERETHEREISAWILLTHEREISAWAY" };
int len = strlen(arr);
String_sore(arr, len);
return 0;
}
我用的是冒泡排序的基本思想,如果大家有更好的方法,欢迎在评论区讨论
———————————————————————————————————————
2.特殊时间
哈哈,我实在想不出代码的方式:脸红:
大家有不同见解欢迎讨论
编程题
1.纸张尺寸
1.1纸张大小代码
#include<stdio.h>
int main()
{
int x = 1189, y = 841;//定义边长分别为1189和841,为大小A0
int n=0;
scanf("A%d", &n);//输入想要求找的纸张(A0||A2||...)
while (n)//判断循环几次
{
if (x > y)
{
x = x / 2;
}
else
{
y = y / 2;
}
n--;//n要自减一下哦,直到while判断为假,跳出循环体
}
x > y ? printf("%d\n%d", x, y) : printf("%d\n%d", y, x);//因为题目中的输出案例长边总在上面,所以加了个三目操作符
return 0;
}
2.求和
2.1求和代码
#include<iostream>
using namespace std;
int main()
{
long long a, b, n, i, k = 0, sum = 0;//定义所有用到的变量
cin >> n;
for (i = 0; i < n; i++)//在这个循环体内完成求和
{
cin >> b;
k += sum * b;
sum += b;
}
cout << k;
return 0;
}
3.数位排序
3.1数位排序代码
#include <stdio.h>
#include <stdlib.h>
int arr[1000007];//这里定义全局变量是把内存开辟到了静态区,如果使用局部变量的话,会把栈区撑爆
int Modulo_except(int n)
{
int z = 0;
while (n)
{
z += n % 10;
n /= 10;
}
return z;
}
int cmp(const void* e1, const void* e2) //比较排序数据中两个元素的函数
{
int* pe1= (int*)e1;
int* pe2 = (int*)e2;
if (Modulo_except(*pe1) != Modulo_except(*pe2))
{
return Modulo_except(*pe1) - Modulo_except(*pe2);
}
else
return *pe1 - *pe2;
}
int main()
{
int i, n, m;
scanf("%d %d", &n, &m);
for (i = 0; i <= n; i++)
{
arr[i] = i;//现将i自增的值赋值给数组arr中
}
qsort(arr, n + 1, sizeof(arr[0]),cmp);//因为i<=n,所以为n+1
printf("%d", arr[m]);
return 0;
}
结语
剩下五题就等《2022年第十三届蓝桥杯大赛C组真题C/C++解析(下)》,大家快快关注我O。
看到这里还不三连