蓝桥杯系列---class1

🌈个人主页:羽晨同学
💫个人格言:“成为自己未来的主人~”

我们今天会再开一个系列,那就是蓝桥杯系列,我们会从最基础的开始讲起,大家想要备战明年蓝桥杯的,让我们一起加油。
工具安装
DevC++安装和使用的教程大家可以在B站上找找,我们这里就不多说了。
第一个C++程序
基础程序
#include <iostream>
using namespace std;
int main()
{cout<<"hello world"<<endl;return 0;
}

上面是一个基础的C++程序,下面是这个程序所打印出来的结果。
这个程序看似很简单,但是这个当中也包含着很多部分,有头文件,命名空间,main函数,输出等等。
main函数
main函数是程序的入口,C++程序不管有多少行代码,都是从main函数开始执行的,main函数也被叫做“主函数”。main前面的int 表示的main函数在执行结束的时候会返回一个整数类型的值,而在main函数的最后写return 0,就表示正常运行结束,那么我们就返回0
这里有几个重点:
- main函数是程序的入口
- main函数有且仅有一个
- 一个项目可以有多个.cpp文件,但是有且只能有一个main函数,因为程序的入口只有一个。
关于函数,我们后面会详细的进行讲解。
字符串
在C语言当中,使用单引号括起来一个字符,表示字符字面值,'a','n',使用双引号括起来的多个字符表示一个字符串,比如:“asdasd”,字符串可以有一个或者多个字符,也可以没有任何字符,“”表示空字符串。
上面程序代码中的“hello world”就是一个字符串。
在C++的STL中又引入了string来表示字符串,功能更加强大,C语言不支持,后期我们也会进行详细的说明。
头文件
前面的代码中,我们所写到的
#include <iostream>
就是在包含头文件,头文件的名字叫做iostream,使用#include <>的形式进行包含,iostream文件中的io指的是输入(进入程序的信息,简单理解就是可以给程序输入数据)和输出(从程序中输出的信息,简单理解就是程序会打印数据在屏幕上)。
在C++程序中要完成输入和输出的操作会涉及到iostream文件中的多个定义,所以就要包含这个头文件的,比如:代码中cout是输出流对象,就是用来完成数据输出的,就需要包含头文件。
除了iostream这个头文件以外,C++还有哪些头文件呢?
C++的编译器自带了很多的头文件,每个头文件都支持一组特定的工具。
C++库函数相关头文件:C++ 标准库标头 - cppreference.com
https://zh.cppreference.com/w/cpp/header
在代码中如果使用了某个头文件中的定义,就得包含对应的头文件。
需要注意下面几点:
在C语言中头文件的拓展名是.h,但是C++中的语法发生了一些变化,对老式C的头文件保留了拓展名.h,但是C++自己的文件没有拓展名了。
这里是C语言的一些头文件。
C 标准库头文件 - cppreference.com
https://zh.cppreference.com/w/c/header有些C语言的头文件被转换成了C++头文件,这些文件名被重命名,去掉了.h拓展名,并在文件名的前面加上了前缀c,表示来自于C语言,例如,C语言中的math.h,在C++中变成了cmath。当然还得注意的是,有时候头文件的C语言版本和C++版本相同,而有时候,新版本做了一些修改。
头文件的命名约定:

cin和cout初始
cout<<"hello world"<<endl;
这句代码是上面的项目中最重要的一个代码,其他所有的代码都是编写这句代码。
代码中的cout是标准输出流对象(针对控制台,也就是屏幕),其实还有标准输入流对象(针对的是键盘)cin。
cout是告诉程序把后面双引号中的内容打印到标准输出设备(屏幕)上,双引号中的内容可以替换的。
#include <iostream>
using namespace std;
int main()
{int num;cin>>num;cout<<num<<endl;return 0;
}
- cin和cout是全局的流对象,cin负责输入数据,cout负责输出数据
- endl是C++中一个特殊的操作符,效果是换行和刷新缓存区 ,使用时必须包含在iostream头文件当中。
- <<是流插入运算符,和cout配合使用,>>是流提取操作符,和cin配合使用。
- 使用C++输入输出更方便,不需要像printf/scanf那样,需要手动控制格式,C++的输入输出可以自动识别变量类型
#include <iostream>
using namespace std;
int main()
{int num;float a;cin>>a;cin>>num;cout<<a<<endl;cout<<num<<endl;return 0;
}
名字空间
using namespace std;这句代码的意思是;使用命名空间std(名字空间也叫做命名空间。)
为了理解什么是命名空间,我们来看下的一幅图,秒懂。

是不是秒懂,在C++当中,变量、函数和类都是大量存在的,这些变量、函数、类的名称如果都存在于全局作用域当中,会造成命名冲突,使用名字空间的目的就是对标识符的名称进行隔离,以避免命名冲突或名字污染,namespace 关键字的出现就是针对这种问题的。
std是C++标准库的名字空间名,C++将标准库的定义实现都放在了这个命名空间里面,当我们需要使用标准库中的内容的时候,就需要加上,using namespace std;当有了这句代码的时候,表示名字空间std中信息都是可见可用的,比如,cin,cout,endl
命名空间也是可以自己定义的。当使用using namespace std的时候,我们直接就将整个命名空间完全展开了,这个其实是有点简单粗暴的,所以,我们也可以写成下面这样子。
#include <iostream>
int main()
{int num;float a;std::cin>>a;std::cin>>num;std::cout<<a<<std::endl;std::cout<<num<<std::endl;return 0;
}
这种写法在竞赛中很少用,但是在企业软件开发中是很常用的,这样写可以更好的避免命名冲突的问题。
注释
C++中的注释主要有两种形式,单行注释//和多行注释 /**/
注释是对代码进行解释的问题,良好的注释风格是非常重要的。
单行注释
#include <iostream>
int main()
{int num;float a;std::cin>>a;std::cin>>num;
// std::cout<<a<<std::endl;std::cout<<num<<std::endl;return 0;
}
多行注释
#include <iostream>
int main()
{/*int num;float a;std::cin>>a;std::cin>>num;std::cout<<a<<std::endl;std::cout<<num<<std::endl;return 0;*/
}
在DevC++中的快捷方式是Ctrl + /
练习
我们在每篇文章的末尾给大家准备了关于这节知识点的几道题目,大家可以用来练一下手:
练习一:hello world
B2002 Hello,World! - 洛谷 | 计算机科学教育新生态
https://www.luogu.com.cn/problem/B2002
#include<iostream>
using namespace std;
int main()
{cout<<"Hello,World!";return 0;
}
练习二,打印飞机
1003-小飞机_牛客竞赛语法入门班顺序结构习题
https://ac.nowcoder.com/acm/contest/18839/1003
#include<iostream>
using namespace std;
int main()
{cout<<" ** "<<endl;cout<<" ** "<<endl;cout<<"************"<<endl;cout<<"************"<<endl;cout<<" * * "<<endl;cout<<" * * ";return 0;
}
练习三 第二个整数
B2003 输出第二个整数 - 洛谷 | 计算机科学教育新生态
https://www.luogu.com.cn/problem/B2003
#include<iostream>
using namespace std;
int main()
{int n1,n2,n3;cin>>n1>>n2;cout<<n2;return 0;
}
cin遇到空格就结束了,所以,就用三个变量来接收数据
练习四,字符三角形
B2005 字符三角形 - 洛谷 | 计算机科学教育新生态
https://www.luogu.com.cn/problem/B2005
#include<iostream>
using namespace std;
int main()
{char a;cin>>a;cout<<" "<<a<<endl;cout<<' '<<a<<a<<a<<endl;cout<<a<<a<<a<<a<<a<<endl;return 0;
}
好了,今天的内容就到这里,我们明天再见。

相关文章:
蓝桥杯系列---class1
🌈个人主页:羽晨同学 💫个人格言:“成为自己未来的主人~” 我们今天会再开一个系列,那就是蓝桥杯系列,我们会从最基础的开始讲起,大家想要备战明年蓝桥杯的,让我们一起加油。 工具安装 DevC…...
vue3+elementPlus封装的一体表格
目录结构 源码 exportOptions.js export default reactive([{label: 导出本页,key: 1,},{label: 导出全部,key: 2,}, ])index.vue <template><div class"flex flex-justify-between flex-items-end"><div><el-button-group><slot name…...
Junit5 单元测试入门
基础知识 常用注解含义 Test:标记一个方法为测试方法BeforeEach:标记的方法会在每个测试方法执行前执行AfterEach:标记的方法会在每个测试方法执行后执行BeforeAll:标记的方法会在所有测试方法执行前执行一次AfterAll࿱…...
数字信号处理-数学基础
来源哪都有,个人复习使用 一 积分 常用积分公式: 基本积分方法 凑微分法(也称第一换元法): 换元: 分部积分: 卷积 这里有动图解释: https://mathworld.wolfram.com/Convolution.html 欧拉公式 e i x…...
【Exp】# Microsoft Visual C++ Redistributable 各版本下载地址
Microsoft官方页面 https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads Redistributable 2019 X86: https://aka.ms/vs/16/release/VC_redist.x86.exe X64: https://aka.ms/vs/16/release/VC_redist.x64.exe Redistributable 201…...
Hive 分桶表的创建与填充操作详解
Hive 分桶表的创建与填充操作详解 在 Hive 数据处理中,分桶表是一个极具实用价值的功能,它相较于非分桶表能够实现更高效的采样,并且后续还可能支持诸如 Map 端连接等节省时间的操作。不过,值得注意的是,在向表写入数…...
[小白系列]Ubuntu安装教程-安装prometheus和Grafana
Docker安装prometheus 拉取镜像 docker pull prom/prometheus 配置文件prometheus.yml 在/data/prometheus/建立prometheus.yml配置文件。(/data/prometheus/可根据自己需要调整) global:scrape_interval: 15s # By default, scrape targets ev…...
Flask使用长连接
Flask使用flask_socketio实现websocket Python中的单例模式 在HTTP通信中,连接复用(Connection Reuse)是一个重要的概念,它允许客户端和服务器在同一个TCP连接上发送和接收多个HTTP请求/响应,而不是为每个新的请求/响…...
数据分析思维案例:游戏评分低,怎么办?
【面试题】 某款手游在应用市场评分相比同类型游戏处于劣势。 请分析可能的原因并给出相关建议。 【分析思路】 一、明确问题 1. 明确业务指标 定义:应用市场评分一般指某一应用在某个应用市场上线以来的总体平均评分。 除“总体平均评分”以外,部分应用…...
【学习总结|DAY012】Javabean书写练习
一、主要代码 public class Phone {public Phone() {}public Phone(String brand, int price, String color) {this.brand brand;this.price price;this.color color;}String brand;int price;String color;public String getBrand() {return brand;}public void setBrand(…...
Mac环境下brew安装LNMP
安装不同版本PHP 在Mac环境下同时运行多个版本的PHP,同Linux环境一样,都是将后台运行的php-fpm设置为不同的端口号,下面将已php7.2 和 php7.4为例 添加 tap 目的:homebrew仅保留最近的php版本,可能没有你需要的版本…...
openEuler 知:安装系统
文章目录 前言图形化安装文本方式安装 前言 本文只介绍安装过程中需要特别注意的地方,常规的内容需要参考其它文档。 图形化安装 自定义分区: 说明:anaconda 默认分区,在 OSNAME.conf 中进行了配置,openEuler 默认根…...
Zephyr 入门-设备树与设备驱动模型
学习链接:https://www.bilibili.com/video/BV1L94y1F7qS/?spm_id_from333.337.search-card.all.click&vd_source031c58084cf824f3b16987292f60ed3c 讲解清晰,逻辑清楚。 1. 设备树概述(语法,如何配置硬件,c代码如…...
点云标注软件SUSTechPOINTS的安装和使用,自测win10和ubuntu20.04下都可以用
点云标注软件SUSTechPOINTS的安装和使用 github项目源码:https://github.com/naurril/SUSTechPOINTS gitee源码以及使用教程:https://gitee.com/cuge1995/SUSTechPOINTS 首先拉取源码 git clone https://github.com/naurril/SUSTechPOINTS最好是在cond…...
etcd资源超额
集群内apiserver一直重启,重启kubelet服务后查看日志发现一下报错: Error from server: etcdserver: mvcc: database space exceeded 报错原因: etcd服务未设置自动压缩参数(auto-compact) etcd 默认不会自动 compa…...
AndroidStudio-常见界面控件
一、Button package com.example.review01import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.widget.Button import android.widget.TextViewclass Review01Activity : AppCompatActivity() {override fun onCreate(savedInstanceStat…...
网络协议(TCP/IP模型)
目录 网络初识 网络协议 协议分层 协议拆分 分层 协议分层的优势 1.封装效果 2.解耦合 TCP/IP五层模型 协议之间配合工作(详解) 网络初识 网络核心概念: 局域网:若干电脑连接在一起,通过路由器进行组网。 …...
python 清华pip镜像源报HTTP error 403
报错信息 ERROR: HTTP error 403 while getting https://mirrors.tuna.tsinghua.edu.cn/pypi/web/packages/52/79/a64937a2185b91a96cc5406e3ea58120980c725543d047e112fb3084a972/fake_useragent-2.0.0-py3-none-any.whl (from https://mirrors.tuna.tsinghua.edu.cn/pypi/we…...
swift 屏幕录制
步骤 1:导入 ReplayKit import ReplayKit步骤 2:开始录屏 let screenRecorder RPScreenRecorder.shared() // 麦克风或系统音频 screenRecorder.isMicrophoneEnabled truefunc startRecording() {guard screenRecorder.isAvailable else {print(&quo…...
通过精密时间协议(PTP)对计算机网络中的多个设备进行时间同步
PTP 模块 - 使用教程 目录 PTP 模块 - 使用教程简介第 1 步:为主时钟创建一个 PTP 时钟实例第 2 步:添加 PTP 端口第 3 步:查询 PTP 时钟或 PTP 端口的状态第 4 步:清除 FAULTY 状态第 5 步:为 PTP 事件安装处理程序第…...
态是相关,势是因果,感是具身,知是离身
态是相关,势是因果,感是具身,知是离身,用四个高度概括的词,切中了“人机环境系统智能”中态势感知四个核心维度的本质属性。我们可以结合之前的探讨,来深入拆解一下这句“十六字真言”:态是相关…...
会议纪要整理不清?如何将会议成果转化为可落地任务
身边不少HR朋友都有过纪要整理的困扰,一场会议或面谈后,花费大量时间整理,最终产出的纪要却零散杂乱,无法提炼可落地的任务,导致会议效果大打折扣。结合半年多的实测体验,整理出一套零基础也能上手的高效方…...
别再点那个小箭头了!手把手教你用自定义按钮控制ElementUI表格展开行(Vue3 + Element Plus版)
用文字按钮重构Element Plus表格交互:让展开行操作更符合用户直觉 后台管理系统中最常见的交互痛点之一,就是默认的表格展开箭头设计。当用户面对密密麻麻的数据表格时,那个小小的三角形图标往往成为操作盲区。我曾参与过一个电商后台系统的用…...
新消费品牌的详情页,不该是产品说明书
很多企业做电商页面时,会把重点放在“展示产品”上。图片要好看,卖点要完整,参数要齐全,详情页要显得丰富,品牌故事要讲出来,工艺优势要摆出来,证书、原料、产地、功能、包装、规格、适用人群&a…...
寒战1994电影完整版免费看,网盘在线观看完整版
寒战1994电影完整版免费看,转存到自己网盘后,可以网盘在线观看完整版链接:https://pan.baidu.com/s/1U7-U0Csp2BCc9NYXEHuQZw 提取码:8888操作方法:复制链接,打开百度网盘,便会自动跳转,转存到自己网盘就…...
OpenClaw用户如何通过CLI子命令快速完成Taotoken接入配置
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 OpenClaw用户如何通过CLI子命令快速完成Taotoken接入配置 对于使用OpenClaw进行AI智能体开发的开发者而言,快速接入稳定…...
Gemini 垂直行业模型路由:按意图选择不同Prompt与参数集
在AI开发社区里,不少工程师都在尝试把多个大模型接入实际项目。工具整合站点作为AI模型聚合平台,让开发者能快速对比Gemini与其他模型在不同行业场景下的表现。今天我们来聊聊如何为Gemini搭建一套垂直行业模型路由机制,根据用户意图自动选择…...
卡尔曼滤波:从原理到工程实践,掌握状态估计的核心算法
1. 从“猜”到“算”:一个工程师眼中的卡尔曼滤波 如果你在自动驾驶、机器人导航、无人机飞控或者金融数据分析等领域摸爬滚打过,那么“卡尔曼滤波”这个名字对你来说,可能既熟悉又陌生。熟悉是因为它无处不在,是解决“状态估计”…...
Windows终极HEIC预览方案:免费解锁苹果照片缩略图
Windows终极HEIC预览方案:免费解锁苹果照片缩略图 【免费下载链接】windows-heic-thumbnails Enable Windows Explorer to display thumbnails for HEIC/HEIF files 项目地址: https://gitcode.com/gh_mirrors/wi/windows-heic-thumbnails 还在为iPhone拍摄的…...
BiliBiliToolPro:解放双手的B站自动化神器,让你的账号管理从未如此轻松
BiliBiliToolPro:解放双手的B站自动化神器,让你的账号管理从未如此轻松 【免费下载链接】BiliBiliToolPro B 站(bilibili)自动任务工具,支持docker、青龙、k8s等多种部署方式。全面拥抱AI。敏感肌也能用。 项目地址:…...
