蓝桥杯准备训练(lesson2 ,c++)
3.1 字符型
char //character的缩写
在键盘上可以敲出各种字符,如: a , q , @ , # 等,这些符号都被称为字符,字符是⽤单引号括
起来的,如: ‘a’ , ‘b’ , ‘@’ 。为了能说明这些字符,给他们抽象出⼀种类型,就是字符型,C
语⾔中就是 char 。
ASCII编码
我们知道在计算机中所有的数据都是以⼆进制的形式存储的,那这些字符在内存中分别以什么样的⼆进制存储的呢?如果我们每个⼈⾃⼰给这些字符中的每个字符编⼀个⼆进制序列,这个叫做编码,为了⽅便⼤家相互通信,不造成混乱,后来美国国家标准学会(ANSI)出台了⼀个标准 ASCII 编码,C语⾔中的字符就遵循了 ASCII 编码的⽅式。

参考:https://zh.cppreference.com/w/cpp/language/ascii
我们不需要记住所有的ASCII码表中的数字,使⽤时查看就可以,不过我们最好能掌握⼏组特殊的数据:
• 字符 A~Z 的ASCII码值从 65~90
• 字符 a~z 的ASCII码值从 97~122
• 对应的⼤⼩写字符(a和A)的ASCII码值的差值是 32
• 数字字符 0~9 的ASCII码值从 48~57
• 换⾏ \n 的ASCII值是: 10
• ASCII码值从0~31 这32个字符是不可打印字符,⽆法打印在屏幕上观察
#include<iostream>
using namespace std;
int main()
{char c1 = 'Q';cout << c1 << endl;char c2 = 81;cout << c2 << endl;//这⾥的81是字符Q的ASCII码值,也是可以正常打印的return 0;
}
3.2 整形
整型类型是对所有整数的抽象,为了能对整数形成统⼀的类型标识,就有整型;
在 C 和 C++ 中 整型被分为四⼤类: short 、 int 、 long 、 long long 。
short [int]//短整型
int//整型
long [int]//⻓整型
long long [int] //更⻓的整型
3.3 浮点型
浮点型式对所有实数(⼩数)的抽象,为了能对实数进⾏统⼀的类型标识,就有了浮点型。
浮点型有三种:
float//单精度浮点型
double//双精度浮点型
long double//更⻓的双精度浮点型
#include<iostream>
using namespace std;
int main()
{char c = 'a';short s = -10;int i = -10;long l = -10;long long ll = -10;float k = 3.14f;double d = 3.14;long double ld = 3.14;return 0;
}
在C/C++中⼩数的书写形式:
3.14;//编译器会默认识别为double类型
3.14f;//编译器会默认识别为float类型
1e5;//这种写法是科学计数法的形式,意思是1.0*10^5
1e5+10;//1*100000+10 == 100010
1.23e5+10; //1.23*100000+10 = 123010
3.4 布尔类型
C++有⼀种类型叫: bool (布尔类型),布尔类型的变量的值可以是 true 或 false ,这种类型
类型的变量专⻔⽤来表⽰真或假的。当然在C和C++中,0表⽰假,⾮0表⽰真,有时候不使⽤ bool 类型也能表达相同的逻辑。
//代码1
#include <iostream>
using namespace std;
int main()
{bool flag = true;if (flag)printf("I like C++!\n");return 0;
}
//代码2
#include <iostream>
using namespace std;
int main()
{int flag = 0;cin >> flag; //如果输⼊⾮零的值,flag就表⽰真if (flag)printf("I like C++!\n");return 0;
}
3.5 signed 与 unsigned
signed 和 unsigned 关键字修饰字符型和整型类型的。
signed 关键字,表⽰⼀个类型带有正负号,包含负值;⽐如:温度、银⾏存款。
unsigned 关键字,表⽰该类型不带有正负号,只能表⽰零和正整数,⽐如:年龄。
有了 signed 和 unsigned 的修饰,字符和整型类型其实更加丰富,可以有以下这些:
//字符型
char
signed char//有符号的字符类型
unsigned char //⽆符号的字符类型//短整型
short [int]
[signed] short [int]//有符号的短整型
unsigned short [int]//⽆符号的短整型//整型
int
[signed] int//有符号的整型
unsigned [int]//⽆符号的整型//⻓整型
long [int]
[signed] long [int] //有符号的⻓整型
unsigned long [int] //⽆符号的⻓整型//更⻓的整型
long long [int]
[signed] long long [int]//有符号的
unsigned long long [int]//⽆符号的
对于 int 类型,默认是带有正负号的,也就是说 int 等同于 signed int 。
由于这是默认情况,关键字 signed ⼀般都省略不写,但是写了也不算错。
signed int a; //等同于int a,⼀般不写signed
int 类型也可以不带正负号,只表⽰⾮负整数。这时就必须使⽤关键字 unsigned 声明变量。
unsigned int a; // unsigned int:⽆符号整数类型
变量声明为 unsigned 的好处是,同样⻓度的内存能够表⽰的最⼤整数值,增⼤了⼀倍。
⽐如,16位的 signed short int 的取值范围是: -32768~32767 ,最⼤是 32767 ;⽽
unsigned short int 的取值范围是: 0~65535 ,最⼤值增⼤到了 65535 。32位的 signed
int 的取值范围可以参看 climits 中给出的定义。
下⾯的定义是Dev-C++环境中, climits 中相关定义,其实如果仔细看 climits 中也是包含的
limits.h 。
#define SHRT_MIN (-32768)//有符号16位整型的最⼩值
#define SHRT_MAX 32767//有符号16位整型的最⼤值
#define USHRT_MAX 0xffffU//⽆符号16位整型的最⼤值
#define INT_MIN (-2147483647 - 1)//有符号整型的最⼩值
#define INT_MAX 2147483647//有符号整型的最⼤值
unsigned int ⾥⾯的 int 可以省略,所以上⾯的变量声明也可以写成下⾯这样。
unsigned a;
字符类型 char 也可以设置 signed 和 unsigned 。
signed char c;// 范围为 -128 到 127
unsigned char c;// 范围为 0 到 255
3.6 数据类型⻓度
每⼀种数据类型都有⾃⼰的⻓度,使⽤不同的数据类型,能够创建出⻓度不同的变量,变量⻓度的不同,存储的数据范围就有所差异。
3.6.1 sizeof 操作符
sizeof 是⼀个关键字,也是操作符,专⻔是⽤来计算特定数据类型的⻓度的,单位是字节。
sizeof 操作符的操作数可以是类型,也可是变量名或者表达式, sizeof 的操作数如果不是类
型,是表达式的时候,可以省略掉后边的括号的。
sizeof( 类型 )
sizeof 表达式
sizeof 的计算结果是 size_t 类型的, size_t 指的是⽆符号整数(该类型包含了所有可能的
unsigned int , unsigned long , unsigned long long 等类型,具体是取决于编译器
的)。
#include <iostream>
using namespace std;
int main()
{int a = 10;cout << sizeof(a) << endl;cout << sizeof a << endl;//a是变量的名字,可以省略掉sizeof后边的(),但不建议去掉cout << sizeof(int) << endl;return 0;
}
3.6.2 各数据类型⻓度
#include <iostream>
using namespace std;
int main()
{cout << sizeof(char) << endl;cout << sizeof(bool) << endl;cout << sizeof(short) << endl;cout << sizeof(int) << endl;cout << sizeof(long) << endl;cout << sizeof(long long) << endl;cout << sizeof(float) << endl;cout << sizeof(double) << endl;cout << sizeof(long double) << endl;return 0;
}
在DevC++下的输出:
1
1
2
4
4
8
4
8
16
该如何理解这些数据类型的⻓度呢?其实我们使⽤这些数据类型可以向内存申请空间(就是创建变
量),不同的数据类型⼀次性申请的空间⼤⼩是有差异的。你可以这样理解:

3.7 各类型取值范围
前⾯的知识已经让我们了解到了很多的数据类型,不同的数据类型所创建的变量的⻓度是有差异的,这个⻓度差异⼜决定了,这种变量中能存储的值的⼤⼩。
其实每⼀种数据类型有⾃⼰的取值范围,也就是存储的数值的最⼤值和最⼩值的区间,有了丰富的类型,我们就可以在适当的场景下去选择适合的类型。
下⾯是不同数据类型的取值范围。

为了代码的可移植性,和⽅便记忆,需要知道某种整数类型的极限值时,经常使⽤这些速记的符号。
limits.h ⽂件中说明了整型类型的取值范围。(C++中头⽂件的名字是 )
float.h 这个头⽂件中说明浮点型类型的取值范围。(C++中头⽂件的名字是 )
⼤家对这些类型的取值范围还得⼤概知道取值范围的数量级,像 int 类型取值⼤概就
是:-2.1*109~2.1*109,这⾥就是10^9这样的数量级。
3.8 typedef
在C++中有⼀个关键字是和类型有关的,是⽤来给类型重命名的。当有⼀个类型⽐较复杂的时候,可以简化类型。 typedef 在竞赛中经常使⽤,可以提升编码速度。typedef使⽤的基本语法形式:
typedef 旧类型名 新类型名;
⽐如:
typedef unsigned int uint;
typedef long long ll;
typedef unsigned long long ull;
上⾯代码的意思是将 unsigned int 类型重命名为 uint ,使⽤ uint 创建的变量和使⽤
unsigned int 是⼀样的,其他⼏个也是⼀样的道理。
uint num1 = 0;//等价于 unsigned int num1 = 0;
ll num2 = 0; //等价于 long long num2 = 0;
ull num3 = 0; //等价于 unsigned long long num3 = 0;
3.9 课后练习
练习1:整数
链接:https://ac.nowcoder.com/acm/problem/21985
#include <iostream>
using namespace std;
int main()
{int a;cin >> a;cout << a;return 0;
}
练习2:打印字符
链接:https://www.luogu.com.cn/problem/B2018
#include <iostream>
using namespace std;
int main()
{int n = 0;cin >> n;char ch = n;cout << ch << endl;return 0;
}
练习3:倒序
链接:https://ac.nowcoder.com/acm/problem/21993
#include <iostream>
using namespace std;
int main()
{int a = 0;int b = 0;int c = 0;cin >> a >> b >> c;cout << c << " " << b << " " << a << endl;return 0;
}
练习4:整型数据类型存储空间⼤⼩
链接:http://ybt.ssoier.cn:8088/problem_show.php?pid=1016
#include <iostream>
using namespace std;
int main()
{int n = 0;short s = 0;cout << sizeof(n) << " " << sizeof(s) << endl;return 0;
}
以上就是今天所有的学习内容,由于我们从最基础开始学习,希望大家不要觉得题目太简单就直接跳过,防止与课程进度脱节。
相关文章:
蓝桥杯准备训练(lesson2 ,c++)
3.1 字符型 char //character的缩写在键盘上可以敲出各种字符,如: a , q , , # 等,这些符号都被称为字符,字符是⽤单引号括 起来的,如: ‘a’ , ‘b’ &…...
【力扣】2094.找出3为偶数
思路 方法一:使用Set集合 1.首先是三层for循环,遍历,并且遇到不满足的情况,便跳过,继续计算。不如前导为0,以及遍历同一个数组下标的情况 2.使用Set集合来确保答案是唯一的,使用桶来标记也是可以的 3.但是…...
利用红黑树封装map,和set,实现主要功能
如果不知道红黑树是什么的时候可以去看看这个红黑树 思路 首先我们可以把封装分为两个层面理解,上层代码就是set,和map,底层就是红黑树 就相当于根据红黑树上面套了两个map,set的壳子,像下面这张图一样 对于map和set,map里面存…...
网络(TCP)
目录 TCP socket API 详解 套接字有哪些类型?socket有哪些类型? 图解TCP四次握手断开连接 图解TCP数据报结构以及三次握手(非常详细) socket缓冲区以及阻塞模式详解 再谈UDP和TCP bind(): 我们的程序中对myaddr参数是这样…...
CSS 选择器的优先级
一、基本概念 CSS 选择器的优先级决定了在样式冲突时,哪个样式规则将被应用到 HTML 元素上。通过理解 CSS 选择器的优先级,可以更好地控制网页元素的样式,避免样式冲突。 二、优先级计算规则 1. 内联样式 内联样式具有最高的优先级。 &l…...
留学生数学辅导作业随机过程高等线性代数概率论微积分优化统计
针对留学生数学辅导作业中的随机过程、高等线性代数、概率论、微积分、优化以及统计等科目,以下是一些详细的辅导建议和资源概述: 一、随机过程 概念理解: 随机过程是研究随机现象随时间演变的数学分支。它涉及概率论和数理统计的知识&#…...
移动机器人课程建图实验-ROSbug汇总
问题1描述 $ rosrun robot_state_publisher robot_state_publisher [ERROR] [1733131886.474757207]: [registerPublisher] Failed to contact master at [localhost:11311]. Retrying...解决方案 这个错误信息表明 robot_state_publisher 节点无法联系到 ROS master。通常&…...
小家电出海,沃丰科技助力保障售后服务的及时性与高效性
随着全球化步伐的加快,小家电行业也逐渐迈向国际市场,面向全球消费者提供服务。然而,跨国界的销售和服务挑战也随之而来,尤其是售后服务的及时性与高效性成为了企业亟需解决的问题。沃丰科技凭借其全渠道在线客服、工单系统和视频…...
vscode 如何支持点击跳转函数,以C++为例,Python等其它编程语言同理,Visual Studio Code。
VScode(Visual Studio Code)按住Ctrl鼠标左键,没法跳转到对应的函数怎么办。 如下图所示 1、点击有四个小方块的图标 2、输入C(如果你的编程语言是C,其它的就输其它的) 3、找到C Extension(其它编程语言࿰…...
创建子类对象时,会创建父类对象吗
一、查询网上的结论: 创建子类对象时, 会先调用子类构造方法对子类对象进行初始化,子类构造方法的第一行又会调用父类构造方法对父类进行初始化(不会创建父类对象, 但是会在子类对象的内存空间中开辟一块被包含的内存空间存储父类…...
华为、华三交换机纯Web下如何创关键VLANIF、操作STP参数
华为交换机WEB操作 使用的是真机S5735,目前主流的版本都适用(V1R5~V2R1的就不在列了,版本太老了,界面完全不一样,这里调试线接的console口,电脑的网络接在ETH口) 「模拟器、工具合集」复制整段内…...
MongoDB分片集群架构实战
分片集群架构 分片简介 分片(shard)是指在将数据进行水平切分之后,将其存储到多个不同的服务器节点上的一种扩展方式。分片在概念上非常类似于应用开发中的“水平分表”。不同的点在于,MongoDB本身就自带了分片管理的能力&#…...
架构 | 调优 - [zookeeper]
INDEX 0 实际使用的 zoo.cfg1 基础知识1.1 官网文档1.2 日志相关配置1.3 tick 时间 0 实际使用的 zoo.cfg ### 时间配置 ### 一个tick(滴答)的毫秒数,时间单位,可以认为是心跳时间 tickTime2000 ### follower 连接 leader 并与之…...
威联通-004 安装photoview相册应用Docker镜像
文章目录 前言准备MariaDB 10phpMyAdminphotoview 安装步骤1.安装MariaDB 10和phpMyAdmin2.初始安装MariaDB 103.进入phpMyAdmin添加账户4.手动下载photoview的Docker库注意:安装 phpMyAdmin 报错5.配置photoview6.容器安装成功之后进入photoview注意:这…...
Github clone 的时候出现Error in the HTTP2 framing layer错误
解决方案 github鉴权认证,打开gitbash,并输入 ssh-keygen -t rsa -C "emailicjs.cc" 执行后会在 .ssh 目录生产两个文件:id_rsa(私有密钥)和id_rsa.pub(公开密钥) 直接默认回车执行…...
SpringBoot中@Import和@ImportResource和@PropertySource
1. Import Import注解是引入java类: 导入Configuration注解的配置类(4.2版本之前只可以导入配置类,4.2版本之后也可以导入普通类)导入ImportSelector的实现类导入ImportBeanDefinitionRegistrar的实现类 SpringBootApplication…...
OpenCV 简介与安装方法
大家好啊,我是董董灿。 如果你在做计算机视觉相关的工作,肯定少不了使用 OpenCV 库。 在《计算机视觉专栏》的传统计算机视觉部分,我曾经使用 OpenCV 进行了很多图像的处理,比如边缘检测。 刚好最近在整理一份文稿,…...
pycharm基本库安装的几种方法
1、pycharm基本库安装的几种方法 1)一次性设置下载源 cmd窗口(管理员方式).输入以下命令: pip config set global.index-url http://pypi.tuna.tsinghua.edu.cn/simple pip config set global.trusted-host pypi.tuna.tsinghu…...
安装更新upgrade导致ubuntu崩溃
安装更新导致ubuntu崩溃 前言uuid编不过,导致的崩溃 记录一些ubuntu崩溃的过程。 目前只有一个,以后遇到都放在这里,以提醒自己。 前言 如果从10000年看现在的linux,不是说不完美,而是糟透了。 linux的版本号…...
数学建模选MATLAB还是Python?
选择MATLAB还是Python进行数学建模,取决于多个因素,包括你的具体需求、个人偏好、项目要求以及你已有的技能。以下是一些考虑因素: 1. 易用性: • MATLAB:对于数学和工程问题,MATLAB提供了一个非常直观和…...
基于算法竞赛的c++编程(28)结构体的进阶应用
结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...
在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能
下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能,包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...
阿里云ACP云计算备考笔记 (5)——弹性伸缩
目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...
Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例
使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件,常用于在两个集合之间进行数据转移,如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model:绑定右侧列表的值&…...
UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...
微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...
GC1808高性能24位立体声音频ADC芯片解析
1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率,…...
SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)
上一章用到了V2 的概念,其实 Fiori当中还有 V4,咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务),代理中间件(ui5-middleware-simpleproxy)-CSDN博客…...
佰力博科技与您探讨热释电测量的几种方法
热释电的测量主要涉及热释电系数的测定,这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中,积分电荷法最为常用,其原理是通过测量在电容器上积累的热释电电荷,从而确定热释电系数…...
