当前位置: 首页 > news >正文

一篇搞定蓝桥杯 C/C++ 基础知识点

本文介绍在参加蓝桥杯等算法竞赛时新手小白需要掌握的C/C++知识,很多新手小白不清楚需要学到什么程度,希望本文对你们有帮助

注:不包含STL和类;

一、数据类型

1.整形 (int)
包括长整型(long,long long); 关于int,在做题时,主要考虑会不会溢出的问题。一般数据在10的9次方,(2³¹−1)以内都适合。

2.浮点型(float,double)
分别对应单精度和双精度

3.字符型(char)
用于存放字符,给char类型赋值时需要使用单引号''

4.空类型void
不需要返回值的函数使用

5.布尔型(bool
值为true/false,这里特别提醒,bool常被忽略,在竞赛中对于简化判断函数帮助很有用

6.数组
掌握遍历,查找,修改元素,求数组长度即可

7.结构体struct
创建,初始化,访问结构体成员,结构体数组,构造函数与析构函数
补充:在竞赛中指针的使用不是必须的,且用指针完成的题目完全可用其他替代,所以不是必学项。

二、操作符

1.算术操作符(+,-,*,/,%
%只能用于整数

2.赋值操作符(=,+=,-=,*=,/=,%=

3.自增 / 自减操作符(++,--
注意先加减再使用或是先使用再加减

4.关系操作符(==,!=,>,<,>=,<=
注意区分===,新手经常忘记导致题目无法通过

5.逻辑操作符(&&,||,!
利用这类操作符不要创建太复杂的表达式

6.位操作符(&,^,~,<<,>>
位操作符是蓝桥杯常考,属于十分重要的操作符,对优化算法有很大帮助,应该掌握得十分熟练。但大部分同学对这部分刚好不了解或是不熟练。需要尤其重视,且需要提前了解二进制,八进制以及十六进制。

7.三目操作符(?
可用于优化条件判断

8.sizeof操作符
求字节大小
代码示例如下:

sizeof(int);// 4个字节sizeof(arr);//数组总字节sizeof(arr)/sizeof(arr[0])//数组长度

9.类型转换操作符
代码示例如下:

(int)3.14;// C 风格强转static_cast<int>(3.14);// C++ 风格

操作符优先级也要掌握

三、C/C++输入输出

1.cin/cout
大多数情况使用,方便

2.printf/scanf
在要求控制输出格式的题目中使用
注意占位符对应

3.getchar()/putchar()
读取/输出单个字符
注:不会忽略空白字符
处理含空格字符串的函数之一

4.fgets(first,len,stdin)/fputs(first,stdout)
fputs用的不多
fgets最多读长度-1个字符,会把回车\n一起读进数组,自动补\0,也是处理带空格字符串的一种方法

四、条件判断与循环

1.if else
2.switch
3.while
4.for
5.do-while
6.break,continue

这一章节的内容是重中之重,我认为大家可以在这一章节花多一点时间,这样后面的章节学习起来也会更轻松。不只是刷简单的语法题,还有循环嵌套,条件嵌套等

五、函数

自定义函数

常见操作:
函数定义
函数声明
传值调用与传址调用
函数重载(简单使用即可)
函数递归:建议大家做多相关题目,对于后续算法学习有重要帮助

常用函数

1.sqrt()----<cmath>
开平方函数
2.pow(x,y)----<cmath>
次方函数(计算x的y次方并返回)
3.ceil()----<cmath>
浮点数向上取整函数
4.floor()----<cmath>
浮点数向下取整函数
5.memset(first,'c',len)----<cstring>
设置数组内容函数
first为初始地址
'c'为要设置的字符
len为设置的长度
可用于初始设置字符数组或修改字符数组内容
注:memset也可用于清零其他类型数组
6.memcpy(first,source,len)----<cstring>
拷贝数组内容函数
first为目标数组初始地址
source为源数据地址
len为拷贝数据的字节个数
注:5与6函数的长度都是以字节为单位
7.strcpy(s1,s2)----<cstring>
拷贝字符数组专用函数
将s2赋值给s1
注:专门用于拷贝字符数组,且一次性完全复制,而memcpy可拷贝任何类型,且可指定长度
8.strcat(first,second)----<cstring>
字符串拼接函数
将second地址的字符串拼接到first地址的字符串上
注:原字符串要预留足够空间,防止越界
9.isupper()/islower()----<cctype>
判断大小写函数
结果为真返回非零数,为假返回’0’
10.toupper()/tolower()----<cctype>
转换大小写函数
11.isdigit()----<cctype>
判断数字字符函数
结果为真返回非零数,为假返回’0’
12.strstr(first,second)----<cstring>
查找子串函数
找到子串 → 返回子串第一次出现的地址
没找到 → 返回 NULL
13.swap(a,b)----<utility>
交换函数
交换两个同类型变量的值
14.max()/min()----<algorithm>
最大最小值函数
可放第三个参数cmp自定义比较标准
15.sort(a,b,cmp)----<algorithm>
排序函数
cmp是比较标准,支持自定义比较方式
a是起始地址
b是结束地址
默认升序
sort函数十分推荐大家掌握

注:<bits/stdc++.h>是竞赛中常用的万能头文件,比较方便。
但是在工程开发中不能使用,所以大家最好还是要记忆每一个库函数原来的头文件

六、string

作为C++独有的,放在一起总结
头文件<string>
基本操作:
1.初始化s="haha"
2.字符串拼接s1+s2
3.访问s[i]
4.长度s.size()
5.输入cin>>s
6.插入s.insert(first,str)
first为要插入的下标位置
str为要插入的字符串
7.查找s.find()
有三种形式
s.find(‘字符’)
s.find(“子串”)
s.find(内容, 起始位置)
代码示例如下:

string s="ababa";// 从下标 2 开始找字符 'a'intpos=s.find('a',2);// 结果:4

找到了:返回第一次出现的下标
没找到:返回string::npos(实际就是 -1)
8.截取字串substr()
有两种形式

// 写法1:从 pos 开始,截取 len 个字符s.substr(pos,len);// 写法2:从 pos 开始,一直截取到字符串末尾s.substr(pos);

9.特殊输入getline(cin,s)
在string中处理带空格的字符串
还有第二种形式getline(cin,s,'c')
最后一个位置为用户自定义的结束字符
10.迭代器(string::iterator it;
s.begin() → 指向第一个字符
s.end() → 指向最后一个字符的下一个位置
常用于遍历
代码示例如下:

string s="abcd";// 定义迭代器从头遍历到尾for(string::iterator it=s.begin();it!=s.end();it++){cout<<*it<<" ";}

string相关函数

1.stoi()/stol()
stoi:字符串转 int
stol: 字符串转 long
2.stod()/stof()
stod:字符串转double
stof:字符串转float
3.数字转字符串to_string()
4.字符反转reverse(first,last)

补充

范围for
语法:

for(单个元素类型 变量名:要遍历的数组名){// 循环体}

可以结合auto关键字使用,方便遍历数组

intarr[]={1,2,3,4,5};// auto 自动推导为 intfor(autox:arr){cout<<x<<" ";//自动打印数组全部元素}

浮点数四舍五入
1.round()
优点:正负数都支持
2.强转+0.5
代码示例如下:

doublea=3.14;doubleb=3.67;intres1=(int)(a+0.5);// 3intres2=(int)(b+0.5);// 4

需要了解的ASCII码

  • '0'= 48
  • 'A'= 65 递增
  • 'a'= 97 递增
  • 大小写差32

总结:

以上是蓝桥杯竞赛入门必备的 C/C++ 基础知识点啦~ 作为第一次写博客的新手,难免有疏漏,请大家见谅。祝愿备战竞赛的小伙伴们夯实基础、顺利通关,一起加油呀~

http://www.jsqmd.com/news/449201/

相关文章:

  • HBuilder X 的下载与初识HTML5页面
  • 2026年中国遗嘱继承律所电话查询推荐:权威联系与使用指引 - 品牌推荐
  • [KV存储]从零构建高性能 KV 存储网络层
  • 学术写作的“变形记”:书匠策AI如何让论文“改头换面”却“灵魂不变”
  • 2026年免费降AI率网站合集,毕业生必备收藏
  • 南昌极简门制造企业哪家好用,性价比高的品牌推荐 - 工业品牌热点
  • 学术写作的“智能调音师”:书匠策AI如何让论文摆脱机械感,奏响原创乐章
  • 互联网大厂Java求职者面试全攻略:技术深度与精彩代码案例
  • 聊天系统 / 即时通讯(IM)技术文档
  • SQL 语句大全:最全面的语法格式指南
  • nodejs 网上商城商铺小程序多商家
  • 2026年特色泡菜选购指南,特色湘西姑娘泡菜实力强不强看这里 - mypinpai
  • springboot基于web的积分制零食自选销售平台的设计与实现(源码+文档+调试+vue+前后端分离)
  • 需要频繁修改文件、批量修改文档,或需要更灵活的时间设置怎么办?
  • python环境搭建
  • OpenClaw 深度解析(六):节点、Canvas 与子 Agent
  • AI推广联系哪家公司?哪家公司豆包推广做得专业? - 品牌2026
  • 2026年不容错过!最新口碑好的短视频获客老牌公司大揭秘,抖音运营公司/抖音代运营团队,短视频获客老牌公司排行榜 - 品牌推荐师
  • 帝国cms为什么[!--writer--]不能在列表中调用?EmpireCMS
  • 帝国cms安装界面不能正常显示EmpireCMS
  • 2026年科技企业孵化器指南:这些机构助力创新项目落地,科技政策申报/企业孵化服务,科技企业孵化器品牌口碑排行 - 品牌推荐师
  • OpenClaw Skills 机制总结
  • 豆包的广告推广要怎么做?哪家公司可以做?怎么联系? - 品牌2026
  • 豆包上怎么出现自己的公司?哪家公司可以做豆包推广? - 品牌2026
  • 284_尚硅谷_反射的相关函数和转换
  • 怎么抓取MySQL执行的命令?
  • 2026 Claw 生态 AI Agent 全解析:5 款工具选型对比 + 部署避坑指南
  • 六.Uboot MMC与文件命令
  • 帝国cms投稿功能在哪开启或关闭?EmpireCMS
  • 283_尚硅谷_反射基本介绍和示意图