蓝桥杯软件赛系列---lesson1

news2025/1/9 14:40:07

🌈个人主页:羽晨同学

💫个人格言:“成为自己未来的主人~” 

我们今天会再开一个系列,那就是蓝桥杯系列,我们会从最基础的开始讲起,大家想要备战明年蓝桥杯的,让我们一起加油。

工具安装

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.comicon-default.png?t=O83Ahttps://zh.cppreference.com/w/cpp/header

在代码中如果使用了某个头文件中的定义,就得包含对应的头文件。

需要注意下面几点:

在C语言中头文件的拓展名是.h,但是C++中的语法发生了一些变化,对老式C的头文件保留了拓展名.h,但是C++自己的文件没有拓展名了。

这里是C语言的一些头文件。

C 标准库头文件 - cppreference.comicon-default.png?t=O83Ahttps://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;	
} 
  1. cin和cout是全局的流对象,cin负责输入数据,cout负责输出数据
  2. endl是C++中一个特殊的操作符,效果是换行和刷新缓存区 ,使用时必须包含在iostream头文件当中。
  3. <<是流插入运算符,和cout配合使用,>>是流提取操作符,和cin配合使用。
  4. 使用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! - 洛谷 | 计算机科学教育新生态icon-default.png?t=O83Ahttps://www.luogu.com.cn/problem/B2002

#include<iostream>
using namespace std;
int main()
{
  cout<<"Hello,World!";
  return 0;
}

练习二,打印飞机

1003-小飞机_牛客竞赛语法入门班顺序结构习题icon-default.png?t=O83Ahttps://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 输出第二个整数 - 洛谷 | 计算机科学教育新生态icon-default.png?t=O83Ahttps://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 字符三角形 - 洛谷 | 计算机科学教育新生态icon-default.png?t=O83Ahttps://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;
}

好了,今天的内容就到这里,我们明天再见。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2255105.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【0x01】HCI_Inquiry_Complete事件详解

目录 一、事件概述 二、事件格式及参数 2.1. HCI_Inquiry_Complete事件格式 2.2. 参数 三、HCI_Inquiry_Complete事件触发机制 3.1. 基于查询命令完成的触发 3.2. 受查询环境和设备状态影响的触发 3.3. 与蓝牙协议栈内部逻辑相关的触发 四、事件处理流程 4.1. 事件接…

安防视频监控平台Liveweb视频汇聚管理系统管理方案

智慧安防监控Liveweb视频管理平台能在复杂的网络环境中&#xff0c;将前端设备统一集中接入与汇聚管理。国标GB28181协议视频监控/视频汇聚Liveweb平台可以提供实时远程视频监控、视频录像、录像回放与存储、告警、语音对讲、云台控制、平台级联、磁盘阵列存储、视频集中存储、…

shell脚本实战案例

文章目录 实战第一坑功能说明脚本实现 实战第一坑 实战第一坑&#xff1a;在Windows系统写了一个脚本&#xff0c;比如上面&#xff0c;随后上传到服务&#xff0c;执行会报错 原因&#xff1a; 解决方案&#xff1a;在linux系统touch文件&#xff0c;并通过vim添加内容&…

波特图方法

在电路设计中&#xff0c;波特图为最常用的稳定性余量判断方法&#xff0c;波特图的根源是如何来的&#xff0c;却鲜有人知。 本章节串联了奈奎斯特和波特图的渊源&#xff0c;给出了其对应关系和波特图相应的稳定性余量。 理论贯通&#xff0c;不在于精确绘…

在ensp进行IS-IS网络架构配置

一、实验目的 1. 理解IS-IS协议的工作原理 2. 熟练ensp路由连接配置 二、实验要求 需求&#xff1a; 路由器可以互相ping通 实验设备&#xff1a; 路由器router6台 使用ensp搭建实验坏境&#xff0c;结构如图所示 三、实验内容 R1 u t m sys undo info en sys R1 #设…

vxe-table 键盘操作,设置按键编辑方式,支持覆盖方式与追加方式

vxe-table 全键盘操作&#xff0c;按键编辑方式设置&#xff0c;覆盖方式与追加方式&#xff1b; 通过 keyboard-config.editMode 设置按键编辑方式&#xff1b;支持覆盖方式编辑和追加方式编辑 安装 npm install vxe-pc-ui4.3.15 vxe-table4.9.15// ... import VxeUI from v…

MNIST数据集_CNN

前言 提醒&#xff1a; 文章内容为方便作者自己后日复习与查阅而进行的书写与发布&#xff0c;其中引用内容都会使用链接表明出处&#xff08;如有侵权问题&#xff0c;请及时联系&#xff09;。 其中内容多为一次书写&#xff0c;缺少检查与订正&#xff0c;如有问题或其他拓展…

【Flink】Flink Checkpoint 流程解析

Flink Checkpoint 流程解析 Checkpoint 流程解析 Flink Checkpoint 流程解析Checkpint 流程概括Checkpoint 触发流程解析 (Flink 1.20)任务启动后 JobManager 开始定期对任务执行 CheckpointJobManager 使用 CheckpointCoordinator 触发 CheckpointCheckpointCoordinator 初始化…

MIT工具课第六课任务 Git基础练习题

如果您之前从来没有用过 Git&#xff0c;推荐您阅读 Pro Git 的前几章&#xff0c;或者完成像 Learn Git Branching 这样的教程。重点关注 Git 命令和数据模型相关内容&#xff1b; 相关内容整理链接&#xff1a;Linux Git新手入门 git常用命令 Git全面指南&#xff1a;基础概念…

Sui 主网升级至 V1.38.3

Sui 主网现已升级至 V1.38.3 版本&#xff0c;同时协议升级至 69 版本。请开发者及时关注并调整&#xff01; 其他升级要点如下所示&#xff1a; 协议 #20199 在共识快速路径投票中设置允许的轮次数量。 节点&#xff08;验证节点与全节点&#xff09; #20238 为验证节点…

【AI系统】低比特量化原理

低比特量化原理 计算机里面数值有很多种表示方式&#xff0c;如浮点表示的 FP32、FP16&#xff0c;整数表示的 INT32、INT16、INT8&#xff0c;量化一般是将 FP32、FP16 降低为 INT8 甚至 INT4 等低比特表示。 模型量化则是一种将浮点值映射到低比特离散值的技术&#xff0c;可…

项目文章 | RNA-seq+WES-seq+机器学习,揭示DNAH5是结直肠癌的预后标志物

肿瘤突变负荷&#xff08;TMB&#xff09;已成为预测结直肠癌&#xff08;CRC&#xff09;患者预后和对免疫治疗反应的关键生物标志物。然而&#xff0c;全外显子测序&#xff08;WES-seq&#xff09;作为TMB评估的金标准&#xff0c;成本高且耗时。此外&#xff0c;高TMB患者之…

【NLP修炼系列之Bert】Bert多分类多标签文本分类实战(附源码下载)

引言 今天我们就要用Bert做项目实战&#xff0c;实现文本多分类任务和我在实际公司业务中的多标签文本分类任务。通过本篇文章&#xff0c;可以让想实际入手Bert的NLP学习者迅速上手Bert实战项目。 1 项目介绍 本文是Bert文本多分类和多标签文本分类实战&#xff0c;其中多分…

【CSS in Depth 2 精译_069】11.3 利用 OKLCH 颜色值来处理 CSS 中的颜色问题(上)

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 第四部分 视觉增强技术 ✔️【第 11 章 颜色与对比】 ✔️ 11.1 通过对比进行交流 11.1.1 模式的建立11.1.2 还原设计稿 11.2 颜色的定义 11.2.1 色域与色彩空间11.2.2 CSS 颜色表示法 11.2.2.1 RGB…

基础算法——搜索与图论

搜索与图论 图的存储方式2、最短路问题2.1、Dijkstra算法&#xff08;朴素版&#xff09;2.2、Dijkstra算法&#xff08;堆优化版&#xff09;2.3、Bellman-Ford算法2.4、SPFA求最短路2.5、SPFA判负环2.6、Floyd算法 图的存储方式 2、最短路问题 最短路问题可以分为单源最短路…

IDEA创建Spring Boot项目配置阿里云Spring Initializr Server URL【详细教程-轻松学会】

1.首先打开idea选择新建项目 2.选择Spring Boot框架(就是选择Spring Initializr这个) 3.点击中间界面Server URL后面的三个点更换为阿里云的Server URL Idea中默认的Server URL地址&#xff1a;https://start.spring.io/ 修改为阿里云Server URL地址&#xff1a;https://star…

Git_如何更改默认路径

网上搜了一堆都不好使&#xff0c;其实可以直接使用git bash输入命令来解决 打开 Git Bash&#xff1a;首先打开 Git Bash 终端&#xff0c;这是一个类似于命令提示符的窗口&#xff0c;可在其中执行 Git 命令。设置 Git 默认存储路径&#xff1a;使用 git config 命令来修改 …

计算机毕业设计Python房价预测 房屋推荐 房价可视化 链家爬虫 房源爬虫 房源可视化 卷积神经网络 大数据毕业设计 机器学习 人工智能 AI

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…

AndroidAutoSize实战教程:今日头条屏幕适配方案详解

如何在项目中结合 AndroidAutoSize 来进行今日头条屏幕适配&#xff0c;我会具体讲解如何用 AndroidAutoSize 实现屏幕适配&#xff0c;并结合 Kotlin 代码举例分析。 通过 AndroidAutoSize 库来实现屏幕适配&#xff0c;确保在不同的屏幕尺寸、分辨率、密度下&#xff0c;应用…

【HarmonyOS】层级轮播卡片效果

【HarmonyOS】层级轮播卡片效果 一、功能效果&#xff1a; 1.上下堆叠由大到小的卡片层叠效果。 2.上层卡片可手势左右滑动&#xff0c;自动左滑动。 3.三层卡片随滑动&#xff0c;内容进行依次切换。 二、开发思路 【完整代码见章节三】 1.最上层使用swiper进行轮播效果…