蓝桥杯训练题C语言

article/2025/9/18 14:51:16

开学后就很少抽空写写题了,所以这次只有几道题目和大家分享一下了。

有些真题也有些VIP基础题,想和大家分享一下。(有些是仿的其他博主的代码,,,,因为有些确实难(呜呜呜~))

不多说,上代码

1.时间转换

给定一个以秒为单位的时间t,要求用“<H>:<M>:<S>”的格式来表示这个时间。

<H>表示时间,<M>表示分钟,而<S>表示秒,它们都是整数且没有前导的“0”。

例如,若t=0,则应输出是“0:0:0”;若t=3661,则输出“1:1:1”。

一种解法:计算步骤为 时(t/3600)->分(t%3600/60)->秒(t%3600%60)

#include<stdio.h>
int main()
{int t,h,m,s;scanf("%d",&t);h=t/3600;m=(t%3600)/60;s=((t%3600)%60);printf("%d:%d:%d",h,m,s);return 0;
}

钟另一种解法:计算步骤 秒(满60秒钟清零,分钟加1)->分(满60分钟清零,时加1)->时

#include<stdio.h>
int main()
{int h=0,m=0,s=0,i,n;scanf("%d",&n);for(i=0;i<n;i++){s++;if(s==60){m++;s=0;}if(m==60){h++;m=0;}}printf("%d:%d:%d",h,m,s);return 0;
}

2.字符串对比

给定两个仅由大写字母或小写字母组成的字符串(长度介于1到10之间),它们之间的关系是以下4中情况之一:

  1:两个字符串长度不等。比如 Beijing 和 Hebei

  2:两个字符串不仅长度相等,而且相应位置上的字符完全一致(区分大小写),比如 Beijing 和 Beijing

  3:两个字符串长度相等,相应位置上的字符仅在不区分大小写的前提下才能达到完全一致(也就是说,它并不满足情况2)。比如 beijing 和 BEIjing

  4:两个字符串长度相等,但是即使是不区分大小写也不能使这两个字符串一致。比如 Beijing 和 Nanjing

  编程判断输入的两个字符串之间的关系属于这四类中的哪一类,给出所属的类的编号。

易错:一定要区分3和4,不注意会将4误判成3,所以写代码一定要严谨,加上排除3的前提条件。

#include<stdio.h>
#include<string.h>
int main()
{char a[2][100];int i,n,k=0,m;scanf("%s%s",a[0],a[1]);for(i=0;a[0][i]!=0;i++){if(strlen(a[0])==strlen(a[1])&&a[0][i]-a[1][i]!=32&&a[1][i]-a[0][i]!=32&&a[1][i]!=a[0][i]){printf("4");return 0;}	}if(strlen(a[0])!=strlen(a[1])){printf("1");return 0;}else if(strcmp(a[0],a[1])==0){printf("2");return 0;}else {printf("3");return 0;}
}

3.矩阵乘法

给定一个N阶矩阵A,输出A的M次幂(M是非负整数)

  例如:

  A =

  1 2

  3 4

  A的2次幂

  7 10

  15 22

强调:矩阵运算中   1.矩阵的0次幂为单位矩阵(对角线全为1,其余全为0)

                                2.矩阵的1次幂为原矩阵(矩阵本身)

                                3.矩阵a的m次幂=(a的m-1次幂)*矩阵a

                                步骤:a的第1行的第一个元素乘以b中第1列的第一个元素,a的第1行的第二个元素乘以b中第1列的第二个元素,结果相加存入c的第1行第1列,a的第1行的第1个元素乘以b中第二列的第1个元素,a的第二行的第二个元素乘以b中第二列的第二个元素,结果相加存入c的第1行第2列.。。。。a[i][k]*b[k][j]结果存入c[i][j]。

a的第i行和b的每一列相乘。

 

 

#include<stdio.h>
int main()
{int N,M,i,j,k,p,n=0;long long c[50][50],a[50][50],b[50][50];scanf("%d %d",&N,&M);for(i=0;i<N;i++){for(j=0;j<N;j++){scanf("%d",&a[i][j]);b[i][j]=a[i][j];}}if(M<=1){for(i=0;i<N;i++){for(j=0;j<N;j++){if(M==0){if(i==j)a[i][j]=1;else a[i][j]=0;printf("%d ",a[i][j]);}else printf("%d ",a[i][j]);}printf("\n");}}else {for(p=0;p<M-1;p++){for(i=0;i<N;i++){for(j=0;j<N;j++){for(k=0;k<N;k++){n+=a[i][k]*b[k][j];}c[i][j]=n;n=0;}}for(i=0;i<N;i++){for(j=0;j<N;j++){	if(p==M-2)printf("%lld ",c[i][j]);else b[i][j]=c[i][j];}if(p==M-2)printf("\n");}}}return 0;
}

4.矩形交面积

平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴。

对于每个矩形,我们给出它的一对相对顶点的坐标,请你编程算出两个矩形的交的面积。

注意:题中只说明给出相对顶点的坐标,但是并没有明确说是哪两个(左下右上还是左上右下),所以要分多种考虑。给出下面分析:

 

#include<stdio.h>
double min(double a,double b)
{if(a<b)return a;else return b;
}
double max(double a,double b)
{if(a>b)return a;else return b;
}
int main()
{double x1,y1,x2,y2,x3,y3,x4,y4,area,a1,a2,b1,b2;scanf("%lf%lf %lf%lf %lf%lf %lf%lf",&x1,&y1,&x2,&y2,&x3,&y3,&x4,&y4);a1=max(min(x1,x2),min(x3,x4));a2=min(max(x1,x2),max(x3,x4));b1=max(min(y1,y2),min(y3,y4));b2=min(max(y1,y2),max(y3,y4));if(a2>a1 && b2>b1)printf("%.2lf",(a2-a1)*(b2-b1));else printf("0.00");return 0;
}

5.时间显示

输入一个毫秒值例如

46800999

要求输出

13:00:00

缺位补0

注意:设置时钟时一定要设置当时钟到达24时清零的动作,因为题目中给出的毫秒不一定是在一整天毫秒时间内(24小时->毫秒),可能存在不止一天的情况,但是题目只要求输出一天内的时、分、秒,所以要对时钟进行设置。

#include<stdio.h>
int main()
{int h=0,m=0,s=0,n,i;scanf("%d",&n);n/=1000;//转为秒for(i=0;i<n;i++){s++;if(s==60)//进位分钟{s=0;m++;} if(m==60)//进位时钟{m=0;h++;}if(h==60)//时钟设置{h=0;}}printf("%.2d:%.2d:%.2d",h,m,s);//输出各为两位的时间数字return 0;
}

6.门牌制作

小蓝要为一条街的住户制作门牌号。这条街一共有2020位住户,门牌号从1到2020编号。

小蓝制作门牌的方法是先制作0到9这几个数字字符,最后根据需要将字符粘贴到门牌上,

例如门牌1017需要依次粘贴字符1、0、1、7,即需要1个字符0,2个字符1,1个字符7。

请问要制作所有的1到2020号门牌,总共需要多少个字符2?

分析:对数进行分解,从个位、十位、百位....进行提取去判断是否为2,是则被记录,否则不做处理。

#include<stdio.h>
int main()
{int i,j,k=0;for(i=1;i<2021;i++){j=i;while(j){if(j%10==2)k++;j/=10;}}printf("%d",k);
} 

在参考其他博主代码的基础上增加了些自己的见解,希望对大家的学习有用。 


http://chatgpt.dhexx.cn/article/imGKURHL.shtml

相关文章

蓝桥杯研究生c语言试题答案,蓝桥杯试题C语言答案.doc

蓝桥杯试题C语言答案.doc 下载提示(请认真阅读)1.请仔细阅读文档&#xff0c;确保文档完整性&#xff0c;对于不预览、不比对内容而直接下载带来的问题本站不予受理。 2.下载的文档&#xff0c;不会出现我们的网址水印。 3、该文档所得收入(下载内容预览)归上传者、原创作者&am…

蓝桥杯 C语言 试题 历届试题 格子刷油漆

试题 历届试题 格子刷油漆 问题描述   X国的一段古城墙的顶端可以看成 2*N个格子组成的矩形&#xff08;如下图所示&#xff09;&#xff0c;现需要把这些格子刷上保护漆。 你可以从任意一个格子刷起&#xff0c;刷完一格&#xff0c;可以移动到和它相邻的格子&#xff08;…

蓝桥杯 C语言 试题 历届试题 网络寻路

试题 历届试题 网络寻路 问题描述 X 国的一个网络使用若干条线路连接若干个节点。节点间的通信是双向的。某重要数据包&#xff0c;为了安全起见&#xff0c;必须恰好被转发两次到达目的地。该包可能在任意一个节点产生&#xff0c;我们需要知道该网络中一共有多少种不同的转发…

蓝桥杯 C语言 试题 算法训练 审美课

试题 算法训练 审美课 问题描述   《审美的历程》课上有n位学生&#xff0c;帅老师展示了m幅画&#xff0c;其中有些是梵高的作品&#xff0c;另外的都出自五岁小朋友之手。老师请同学们分辨哪些画的作者是梵高&#xff0c;但是老师自己并没有答案&#xff0c;因为这些画看上…

C语言课程设计——25道蓝桥杯练习题

文章目录 一、基础练习1.fib数列题目解题思路解题代码解法一(简单递推)&#xff1a;时间复杂度O(n)解法二(矩阵快速幂)&#xff1a;时间复杂度O(logn) 2.闰年判断题目解题思路解题代码 3. 数列特征题目解题思路解题代码 4.查找整数题目解题思路解题代码解法一&#xff1a;C风格…

蓝桥杯C语言程序设计真题

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、真题总结 前言 下面是蓝桥杯历年的真题希望对大家有用 一、真题 1&#xff0c;隔行变色 Excel表的格子很多&#xff0c;为了避免把某行的数据和相邻行混…

2022年第十三届蓝桥杯大赛C组真题C/C++解析(上)

**今天给大家带来2022年&#xff0c;第十三届蓝桥杯大赛的真题解析**转眼间&#xff0c;距离考试已经过去很长时间了&#xff0c;今天解元给大家解析一下&#xff0c;有问题欢迎大家指点 :笑: 下面进入正题 前言填空题1.排列字母2.特殊时间 编程题1.纸张尺寸1.1纸张大小代码 2.…

pthread+Windows环境搭建

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 为什么会要用到pthread库&#xff1f;一、pthread库下载二、使用步骤1.创建VS工程2.设置环境变量2.1动态载入2.2静态载入 三、结语 为什么会要用到pthread库&#x…

pthread_cond_timedwait函数使用

1 函数原型 #include <pthread.h>int pthread_cond_timedwait(pthread_cond_t *restrict cond,pthread_mutex_t *restrict mutex,const struct timespec *restrict abstime); int pthread_cond_wait(pthread_cond_t *restrict cond,pthread_mutex_t *restrict mutex); …

Pthread线程基础学习

后面会尝试使用冰搜和goole搜索来学习技术&#xff0c;互联网上知识的学习也是符合二八定律的&#xff0c;既然如此&#xff0c;我们何不去选择最好的文章呢。 文章参考&#xff1a; https://randu.org/tutorials/threads/ http://www.yolinux.com/TUTORIALS/LinuxTutorialPosi…

pthread 线程创建

1.1代码 #include <pthread.h> #include <stdio.h> #include <unistd.h>static int my_thread_func (void *data) {while(1){sleep(1);} }main() {pthread_t tid;int ret;// 1.创建接收线程ret pthread_create(&tid, NULL,my_thread_func, NULL);if(ret…

C语言pthread.h运用

线程概念 什么是多线程&#xff0c;提出这个问题的时候&#xff0c;我还是很老实的拿出操作系统的书&#xff0c;按着上面的话敲下“为了减少进程切换和创建开销&#xff0c;提高执行效率和节省资源&#xff0c;我们引入了线程的概念&#xff0c;与进程相比较&#xff0c;线程…

linux pthread头文件,pthread t 头文件_uint8 t 头文件_pthread t 头文件

多线程是多任务处理的一种特殊形式,多任务处理允许让电脑同时运行两个或两个以上的程序。一般情况下,两种类型的多任务处理:基于进程和基于线程。 多线程程序包含可以同时运行的两个或多个部分。这样的程序中的每个部分称为一个线程,每个线程定义了一个单独的执行路径。 本…

Day 55 Linux 线程控制语句pthread_exit pthread_join pthread_detach pthread_cancel 线程属性

目录 1. 线程控制语句 1.1pthread_exit函数 1.2pthread_join函数 1.3pthread_detach函数 1.4pthread_cancel函数 控制原语对比 2. 线程属性 2.1线程属性初始化 2.2线程的分离状态 2.3线程使用注意事项 1. 线程控制语句 1.1pthread_exit函数 将单个当前线程退出 void…

pthread 线程基本函数

文章目录 一、int pthread_create(pthread_t *thread, pthread_attr_t *attr, void *(*start_routine)(void *), void *arg);二、int pthread_join(pthread_t tid, void **thread_return);三、int pthread_detach(pthread_t tid);四、void pthread_exit(void *retval);五、int …

pthread

POSIX线程&#xff08;POSIX threads&#xff09;&#xff0c;简称Pthreads&#xff0c;是线程的POSIX标准。该标准定义了创建和操纵线程的一整套API。在类Unix操作系统&#xff08;Unix、Linux、Mac OS X等&#xff09;中&#xff0c;都使用Pthreads作为操作系统的线程。 1、p…

线程以及pthread库的使用

一.什么是线程 你可以想象你一边听歌一边打游戏&#xff0c;如果是操作系统会怎么做呢&#xff1f;先执行 ListenMusic 再执行 PlayGame&#xff0c;还是先执行 PlayGame 再执行 ListenMusic 呢&#xff1f;好像都不太合适。为了实现这个目的&#xff0c;就需要引入线程这个概念…

多线程02---pThread简介

1.简介 pthread 是属于 POSIX 多线程开发框架。它是c语言提供的一个跨平台的多线程解决方案。由于其在iOS编程中&#xff0c;操作比较麻烦&#xff0c;一般不用&#xff0c;这里介绍仅仅作为了解。 2.pthread的使用 通过以下函数创建pthread&#xff0c;在C语言中类型的结尾…

Qt 无法识别的外部符号.无法解析的外部符号

原因: 很多博客都说了这个原因,是因为后续在自己的类中,引入Q_OBJECT , 导致vs无法自动生成 moc_XXX.cpp类似的文件, 编译时候,找不到导致的(符号链接). 他人解决办法: 看了很多博客,说用moc_xx.exe, 重新生成对应的.h头文件,一下,就可以了;有的建议重新把类添加一下,然后清…

Qt项目 无法解析的外部符号_WinMainCRTStartup

1、无法解析的外部符号_WinMainCRTStartup 在编译Qt项目的时候突然说找不到_WinMainCRTStartup函数&#xff0c;_WinMainCRTStartup是Qt的主函数。找不到可能是main函数不在工程中。 选中main.cpp点击编译 点击移除再重新添加