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

蓝桥杯准备训练(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的缩写在键盘上可以敲出各种字符&#xff0c;如&#xff1a; a &#xff0c; q &#xff0c; &#xff0c; # 等&#xff0c;这些符号都被称为字符&#xff0c;字符是⽤单引号括 起来的&#xff0c;如&#xff1a; ‘a’ &#xff0c; ‘b’ &…...

【力扣】2094.找出3为偶数

思路 方法一&#xff1a;使用Set集合 1.首先是三层for循环&#xff0c;遍历&#xff0c;并且遇到不满足的情况&#xff0c;便跳过&#xff0c;继续计算。不如前导为0,以及遍历同一个数组下标的情况 2.使用Set集合来确保答案是唯一的&#xff0c;使用桶来标记也是可以的 3.但是…...

利用红黑树封装map,和set,实现主要功能

如果不知道红黑树是什么的时候可以去看看这个红黑树 思路 首先我们可以把封装分为两个层面理解&#xff0c;上层代码就是set,和map&#xff0c;底层就是红黑树 就相当于根据红黑树上面套了两个map,set的壳子&#xff0c;像下面这张图一样 对于map和set&#xff0c;map里面存…...

网络(TCP)

目录 TCP socket API 详解 套接字有哪些类型&#xff1f;socket有哪些类型&#xff1f; 图解TCP四次握手断开连接 图解TCP数据报结构以及三次握手&#xff08;非常详细&#xff09; socket缓冲区以及阻塞模式详解 再谈UDP和TCP bind(): 我们的程序中对myaddr参数是这样…...

CSS 选择器的优先级

一、基本概念 CSS 选择器的优先级决定了在样式冲突时&#xff0c;哪个样式规则将被应用到 HTML 元素上。通过理解 CSS 选择器的优先级&#xff0c;可以更好地控制网页元素的样式&#xff0c;避免样式冲突。 二、优先级计算规则 1. 内联样式 内联样式具有最高的优先级。 &l…...

留学生数学辅导作业随机过程高等线性代数概率论微积分优化统计

针对留学生数学辅导作业中的随机过程、高等线性代数、概率论、微积分、优化以及统计等科目&#xff0c;以下是一些详细的辅导建议和资源概述&#xff1a; 一、随机过程 概念理解&#xff1a; 随机过程是研究随机现象随时间演变的数学分支。它涉及概率论和数理统计的知识&#…...

移动机器人课程建图实验-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。通常&…...

小家电出海,沃丰科技助力保障售后服务的及时性与高效性

随着全球化步伐的加快&#xff0c;小家电行业也逐渐迈向国际市场&#xff0c;面向全球消费者提供服务。然而&#xff0c;跨国界的销售和服务挑战也随之而来&#xff0c;尤其是售后服务的及时性与高效性成为了企业亟需解决的问题。沃丰科技凭借其全渠道在线客服、工单系统和视频…...

vscode 如何支持点击跳转函数,以C++为例,Python等其它编程语言同理,Visual Studio Code。

VScode(Visual Studio Code)按住Ctrl鼠标左键&#xff0c;没法跳转到对应的函数怎么办。 如下图所示 1、点击有四个小方块的图标 2、输入C&#xff08;如果你的编程语言是C&#xff0c;其它的就输其它的&#xff09; 3、找到C Extension&#xff08;其它编程语言&#xff0…...

创建子类对象时,会创建父类对象吗

一、查询网上的结论&#xff1a; 创建子类对象时&#xff0c; 会先调用子类构造方法对子类对象进行初始化&#xff0c;子类构造方法的第一行又会调用父类构造方法对父类进行初始化(不会创建父类对象&#xff0c; 但是会在子类对象的内存空间中开辟一块被包含的内存空间存储父类…...

华为、华三交换机纯Web下如何创关键VLANIF、操作STP参数

华为交换机WEB操作 使用的是真机S5735&#xff0c;目前主流的版本都适用&#xff08;V1R5~V2R1的就不在列了&#xff0c;版本太老了&#xff0c;界面完全不一样&#xff0c;这里调试线接的console口&#xff0c;电脑的网络接在ETH口&#xff09; 「模拟器、工具合集」复制整段内…...

MongoDB分片集群架构实战

分片集群架构 分片简介 分片&#xff08;shard&#xff09;是指在将数据进行水平切分之后&#xff0c;将其存储到多个不同的服务器节点上的一种扩展方式。分片在概念上非常类似于应用开发中的“水平分表”。不同的点在于&#xff0c;MongoDB本身就自带了分片管理的能力&#…...

架构 | 调优 - [zookeeper]

INDEX 0 实际使用的 zoo.cfg1 基础知识1.1 官网文档1.2 日志相关配置1.3 tick 时间 0 实际使用的 zoo.cfg ### 时间配置 ### 一个tick&#xff08;滴答&#xff09;的毫秒数&#xff0c;时间单位&#xff0c;可以认为是心跳时间 tickTime2000 ### follower 连接 leader 并与之…...

威联通-004 安装photoview相册应用Docker镜像

文章目录 前言准备MariaDB 10phpMyAdminphotoview 安装步骤1.安装MariaDB 10和phpMyAdmin2.初始安装MariaDB 103.进入phpMyAdmin添加账户4.手动下载photoview的Docker库注意&#xff1a;安装 phpMyAdmin 报错5.配置photoview6.容器安装成功之后进入photoview注意&#xff1a;这…...

Github clone 的时候出现Error in the HTTP2 framing layer错误

解决方案 github鉴权认证&#xff0c;打开gitbash&#xff0c;并输入 ssh-keygen -t rsa -C "emailicjs.cc" 执行后会在 .ssh 目录生产两个文件&#xff1a;id_rsa&#xff08;私有密钥&#xff09;和id_rsa.pub&#xff08;公开密钥&#xff09; 直接默认回车执行…...

SpringBoot中@Import和@ImportResource和@PropertySource

1. Import Import注解是引入java类&#xff1a; 导入Configuration注解的配置类&#xff08;4.2版本之前只可以导入配置类&#xff0c;4.2版本之后也可以导入普通类&#xff09;导入ImportSelector的实现类导入ImportBeanDefinitionRegistrar的实现类 SpringBootApplication…...

OpenCV 简介与安装方法

大家好啊&#xff0c;我是董董灿。 如果你在做计算机视觉相关的工作&#xff0c;肯定少不了使用 OpenCV 库。 在《计算机视觉专栏》的传统计算机视觉部分&#xff0c;我曾经使用 OpenCV 进行了很多图像的处理&#xff0c;比如边缘检测。 刚好最近在整理一份文稿&#xff0c;…...

pycharm基本库安装的几种方法

1、pycharm基本库安装的几种方法 1&#xff09;一次性设置下载源 cmd窗口&#xff08;管理员方式&#xff09;.输入以下命令&#xff1a; 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编不过&#xff0c;导致的崩溃 记录一些ubuntu崩溃的过程。 目前只有一个&#xff0c;以后遇到都放在这里&#xff0c;以提醒自己。 前言 如果从10000年看现在的linux&#xff0c;不是说不完美&#xff0c;而是糟透了。 linux的版本号&#xf…...

数学建模选MATLAB还是Python?

选择MATLAB还是Python进行数学建模&#xff0c;取决于多个因素&#xff0c;包括你的具体需求、个人偏好、项目要求以及你已有的技能。以下是一些考虑因素&#xff1a; 1. 易用性&#xff1a; • MATLAB&#xff1a;对于数学和工程问题&#xff0c;MATLAB提供了一个非常直观和…...

8051项目代码流程图工具选择与应用指南

1. 流程图工具概述接手一个大型8051项目时&#xff0c;快速理解代码结构是每个嵌入式工程师都会面临的挑战。我在处理遗留代码时&#xff0c;第一件事就是寻找合适的流程图工具来可视化程序逻辑。市面上确实存在多种能够解析C51代码并生成流程图的软件&#xff0c;但选择时需要…...

Unity安装配置全链路排坑指南:从下载到首建成功

1. 这不是“装个软件”那么简单&#xff1a;Unity安装背后的真实战场很多人点开Unity官网&#xff0c;看到那个醒目的“Download”按钮&#xff0c;下意识觉得&#xff1a;“不就是点几下、选个路径、等十分钟&#xff1f;”——我带过三届Unity方向的实习团队&#xff0c;每年…...

SQL Server报错注入原理与实战:从错误机制到WAF绕过

1. 报错注入不是“碰运气”&#xff0c;而是对SQL Server错误机制的精准利用很多人一听到“报错注入”&#xff0c;第一反应是“得看目标网站开不开错误提示”“得撞运气看有没有报错回显”。这种理解停留在表层&#xff0c;甚至会误导初学者放弃深入——其实恰恰相反&#xff…...

C#与Unity 3D构建100ms级工业数字孪生系统

1. 这不是“3D大屏”&#xff0c;而是产线工控级实时映射“数字孪生监控”这六个字&#xff0c;现在被贴在太多PPT封面上了——三维建模、粒子特效、旋转飞入的UI动效&#xff0c;配上“智能决策”“预测性维护”的标语&#xff0c;看起来很美。但真正跑在车间里的产线监控系统…...

因果叙事、劳动分层与协作秩序

因果叙事、劳动分层与协作秩序人类社会中的许多结构&#xff0c;并不建立在“真实”之上&#xff0c;而建立在“可协作”之上。因果&#xff0c;便是其中最重要的结构之一。世界本身或许只有连续的关联&#xff0c;并不存在天然清晰、边界分明的因果链。但大规模协作无法直接运…...

神作《盲视》,最硬核的反人类科幻,二十年前预言了AI的冰冷本质

哎呀好久不更新了&#xff0c;半夜睡不着起来随便写点&#xff0c;免得账号被回收了。《盲视》是是加拿大科幻作家彼得沃茨的一部硬科幻经典&#xff0c;入围雨果奖、轨迹奖、坎贝尔奖。但它也是一本阅读门槛很高阅读体验很差的小说。其不适感一部分来自它晦涩的文风和叙事方式…...

MultiHighlight插件深度解析:JetBrains IDE智能代码高亮实战指南

MultiHighlight插件深度解析&#xff1a;JetBrains IDE智能代码高亮实战指南 【免费下载链接】MultiHighlight Jetbrains IDE plugin: highlight identifiers with custom colors &#x1f3a8;&#x1f4a1; 项目地址: https://gitcode.com/gh_mirrors/mu/MultiHighlight …...

2026 年 5 月消防刷题不提分?高质量刷题工具实测指南

2026 年消防设施操作员考试侧重实操应用与智慧消防&#xff0c;题型灵活性大幅提升&#xff0c;超 68% 考生面临刷题量大但分数停滞的困境。核心痛点集中在&#xff1a;消防设施操作员模拟题质量差、与真题命题逻辑不符&#xff08;相似度低于 62%&#xff09;、消防设施操作员…...

2026年如何向 GPT-5.5 提问,拿到更高质量的技术解释和方案

摘要&#xff1a; 2026年的工具生态正在从“追大模型”转向“讲效率、讲成本、讲合规”。本文结合当前小模型高效化、国产工具崛起、多模型聚合的趋势&#xff0c;分享一套面向 GPT-5.5 的高质量提问方法&#xff0c;帮助开发者和普通用户更快拿到清晰、可执行、可落地的技术答…...

yolo26 语义分割特征融合:全网首发--使用 ERM 模块改进 Neck 多尺度特征融合能力 ✨

1. 工程简介 🚀 本工程基于 Ultralytics 框架扩展,面向语义分割与 YOLO 系列模型改进实验。核心特点是通过切换 yaml 配置文件,即可快速完成不同网络结构的训练、对比与验证,无需为每个模型单独编写训练脚本。 当前已支持的主要模型家族 🧩 语义分割模型:UNet、UNet+…...