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

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

🌈个人主页:羽晨同学

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

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

工具安装

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;
}

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

相关文章:

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

&#x1f308;个人主页&#xff1a;羽晨同学 &#x1f4ab;个人格言:“成为自己未来的主人~” 我们今天会再开一个系列&#xff0c;那就是蓝桥杯系列&#xff0c;我们会从最基础的开始讲起&#xff0c;大家想要备战明年蓝桥杯的&#xff0c;让我们一起加油。 工具安装 DevC…...

NanoLog起步笔记-1

nonolog起步笔记-1 背景与上下文写在前面Nanolog与一般的实时log的异同现代log的一般特性Nanolog的选择 背景与上下文 因为工作中用到了NanoLog。有必要研究一下。 前段时间研究了许多内容&#xff0c;以为写了比较详实的笔记&#xff0c;今天找了找&#xff0c;不仅笔记没找到…...

汽车车牌标记支持YOLO,COCO,VOC三种格式标记,4000张图片的数据集

本数据集支持YOLO&#xff0c;COCO&#xff0c;VOC三种格式标记汽车车牌&#xff0c;无论是新能源汽车还是油车都能识别标记&#xff0c;该数据集一共包含4000张图片 数据集分割 4000总图像数 训练组 70&#xff05; 2800图片 有效集 20&#xff05; 800图片 测…...

leetcode33.搜索旋转排序数组

整数数组 nums 按升序排列&#xff0c;数组中的值 互不相同 。 在传递给函数之前&#xff0c;nums 在预先未知的某个下标 k&#xff08;0 < k < nums.length&#xff09;上进行了 旋转&#xff0c;使数组变为 [nums[k], nums[k1], ..., nums[n-1], nums[0], nums[1], ..…...

Ansible自动化运维(三)playbook剧本详解

Ansible自动化运维这部分我将会分为五个部分来为大家讲解 &#xff08;一&#xff09;介绍、无密钥登录、安装部署、设置主机清单 &#xff08;二&#xff09;Ansible 中的 ad-hoc 模式 模块详解&#xff08;15&#xff09;个 &#xff08;三&#xff09;Playbook 模式详解 …...

通过PS和Unity制作2D动画之二:IK的使用

一、IK的概念 IK&#xff1a;Inverse Kinematics&#xff0c;反向动力学。 &#xff08;1&#xff09;正向动力学 在骨骼动画中&#xff0c;构建骨骼的方法被称为正向动力学。它的表现形式是&#xff1a;子骨骼&#xff08;关节&#xff09;的位置根据父骨骼&#xff08;关节…...

图像边缘检测原理和常用检测算子及MATLAB实现

一、边缘和边缘检测的概念 图像边缘是指图像中灰度值发生急剧变化的地方&#xff0c;这些变化通常对应于图像中物体的轮廓、边界或纹理的突变处。在数字图像处理中&#xff0c;边缘是图像的一个重要特征&#xff0c;它包含了关于物体形状、位置和大小等关键信息。 边缘检测是数…...

企业经营数据分析系统:提升决策能力的利器

搭建企业经营数据分析系统是当今企业绕不开的话题&#xff0c;企业想要在竞争激烈的市场当中突围而出&#xff0c;需要对于企业内部的各种数据了然于胸&#xff0c;同时对于外部的数据也有敏锐的把握能力&#xff0c;因此企业构建自身的经营性数据分析系统就显得尤其重要。作为…...

【49】AndroidStudio构建其他人开发的Android项目

(1)做Android软件开发&#xff0c;通常会看一些其他人开发的项目源码&#xff0c;当将这些项目的源码通过git clone到本地之后&#xff0c;用AndroidStudio进行打开时&#xff0c;通常会遇到一些环境配置的问题。本文即用来记录在构建他人开发项目源代码这一过程中遇到的一些常…...

Oracle 数据库中SERIALLY_REUSABLE包是一种特殊的包类型

1、SERIALLY_REUSABLE 包概述 在 Oracle 数据库中&#xff0c;SERIALLY_REUSABLE包是一种特殊的包类型。这种包的目的是为了更有效地利用内存&#xff0c;特别是在高并发环境下。当一个会话调用SERIALLY_REUSABLE包中的过程或函数时&#xff0c;该包的状态&#xff08;包括变量…...

css基础记录

基础 选择器 复合选择器 后代选择器 div p {}; 类似如上,找到div中所有的后代,注意是所有的后代 子代选择器 > div > a 只选择div的儿子中有a的 并集选择器 用逗号,分隔 p,div,span,h1 { … } 一般一行写一个 CSS元素显示模式 分为块元素,行内元素 块元素 特点…...

Python后端 -- 万字长文全面解析Django框架

自从2005年诞生以来&#xff0c;Django因其“开发速度快、安全性高”的特点迅速成为许多开发者的首选。无论是小型的个人项目&#xff0c;还是大型的企业应用&#xff0c;Django都能游刃有余地满足需求。我们将从Django的基础知识带你全面掌握Django&#xff0c;从基础知识到高…...

el-thee懒加载删除某条数据 ,el-thee懒加载重置,el-thee刷新某个节点

一、懒加载的tree已经全部展开&#xff0c;外部点击删除的时候不需要重新展开点击获取下一层数据 <template> <el-treeref"tree":data"treeData":props"defaultProps"render-after-expandhighlight-currentlazy:expand-on-click-node&q…...

【PyQt5教程 四】Qt Designer 样式表(styleSheet)实现基本小部件的自定义动态效果和资源浏览器背景添加方法

目录 一、成果演示&#xff1a; 二、样式表的使用方法: &#xff08;1&#xff09;样式表语法和属性&#xff1a; &#xff08;2&#xff09;样式表代码示例&#xff1a; &#xff08;3&#xff09;伪类和状态&#xff1a; &#xff08;4&#xff09;复合选择器&#xff…...

【git】--- 通过 git 和 gitolite 管理单仓库的 SDK

在编程的艺术世界里,代码和灵感需要寻找到最佳的交融点,才能打造出令人为之惊叹的作品。而在这座秋知叶i博客的殿堂里,我们将共同追寻这种完美结合,为未来的世界留下属于我们的独特印记。【git】--- 通过 git 和 gitolite 管理单仓库的 SDK 开发环境一、安装配置 gitolite二…...

计算机网络之NAT、代理服务、内网穿透、内网打洞

个人主页&#xff1a;C忠实粉丝 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 C忠实粉丝 原创 计算机网络之NAT、代理服务、内网穿透、内网打洞 收录于专栏【计算机网络】 本专栏旨在分享学习计算机网络的一点学习笔记&#xff0c;欢迎大家在评论区交流讨论…...

2024-金盾信安杯线上赛 WP

Misc 大赛宗旨 记事本打开&#xff0c;一眼零宽隐写 B 神工具一把梭&#xff0c;得到一串 base 编码 base64 解码得到 flag flag 值&#xff1a;flag{5d5555fa-1303-4b43-8eef-d6ea7c64c361} esab 根据题目 esab 可以发现这正是 base 的逆向&#xff0c;所以可以先逆向一下…...

MySQL 基础架构

MySQL的基础架构主要由三大核心部分构成&#xff0c;以下是详细的解析&#xff1a; 一、连接层 连接层是客户端与MySQL数据库之间的桥梁&#xff0c;主要负责通信和身份验证&#xff0c;确保数据交换的安全与稳定。具体来说&#xff0c;它负责以下任务&#xff1a; 建立连接…...

汽车升级到底应不应该设置“可取消“功能

最近&#xff0c;汽车OTA&#xff08;Over-the-Air&#xff09;升级频频成为车主讨论的热点。有些车主反映&#xff0c;一些升级增加了实用功能&#xff0c;而另一些却让体验变得复杂甚至带来不便。于是&#xff0c;大家不禁发问&#xff1a;汽车升级功能究竟应不应该允许“可取…...

【MySQL】mysql中的事务

目录 1、背景2、事务的特性3、事务之间的几种错误【1】脏读【2】不可重复读【3】幻读 4、事务中的隔离级别5、总结 1、背景 事务是存储引擎层面实现的&#xff0c;有的引擎支持事务&#xff0c;有的引擎不支持事务&#xff0c;我们常用的引擎InnoDB就支持事务&#xff0c;本文…...

QMC5883L的驱动

简介 本篇文章的代码已经上传到了github上面&#xff0c;开源代码 作为一个电子罗盘模块&#xff0c;我们可以通过I2C从中获取偏航角yaw&#xff0c;相对于六轴陀螺仪的yaw&#xff0c;qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...

Go 语言接口详解

Go 语言接口详解 核心概念 接口定义 在 Go 语言中&#xff0c;接口是一种抽象类型&#xff0c;它定义了一组方法的集合&#xff1a; // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的&#xff1a; // 矩形结构体…...

【决胜公务员考试】求职OMG——见面课测验1

2025最新版&#xff01;&#xff01;&#xff01;6.8截至答题&#xff0c;大家注意呀&#xff01; 博主码字不易点个关注吧,祝期末顺利~~ 1.单选题(2分) 下列说法错误的是:&#xff08; B &#xff09; A.选调生属于公务员系统 B.公务员属于事业编 C.选调生有基层锻炼的要求 D…...

爬虫基础学习day2

# 爬虫设计领域 工商&#xff1a;企查查、天眼查短视频&#xff1a;抖音、快手、西瓜 ---> 飞瓜电商&#xff1a;京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空&#xff1a;抓取所有航空公司价格 ---> 去哪儿自媒体&#xff1a;采集自媒体数据进…...

用机器学习破解新能源领域的“弃风”难题

音乐发烧友深有体会&#xff0c;玩音乐的本质就是玩电网。火电声音偏暖&#xff0c;水电偏冷&#xff0c;风电偏空旷。至于太阳能发的电&#xff0c;则略显朦胧和单薄。 不知你是否有感觉&#xff0c;近两年家里的音响声音越来越冷&#xff0c;听起来越来越单薄&#xff1f; —…...

return this;返回的是谁

一个审批系统的示例来演示责任链模式的实现。假设公司需要处理不同金额的采购申请&#xff0c;不同级别的经理有不同的审批权限&#xff1a; // 抽象处理者&#xff1a;审批者 abstract class Approver {protected Approver successor; // 下一个处理者// 设置下一个处理者pub…...

AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别

【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而&#xff0c;传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案&#xff0c;能够实现大范围覆盖并远程采集数据。尽管具备这些优势&#xf…...

【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)

前言&#xff1a; 双亲委派机制对于面试这块来说非常重要&#xff0c;在实际开发中也是经常遇见需要打破双亲委派的需求&#xff0c;今天我们一起来探索一下什么是双亲委派机制&#xff0c;在此之前我们先介绍一下类的加载器。 目录 ​编辑 前言&#xff1a; 类加载器 1. …...

WebRTC从入门到实践 - 零基础教程

WebRTC从入门到实践 - 零基础教程 目录 WebRTC简介 基础概念 工作原理 开发环境搭建 基础实践 三个实战案例 常见问题解答 1. WebRTC简介 1.1 什么是WebRTC&#xff1f; WebRTC&#xff08;Web Real-Time Communication&#xff09;是一个支持网页浏览器进行实时语音…...

热门Chrome扩展程序存在明文传输风险,用户隐私安全受威胁

赛门铁克威胁猎手团队最新报告披露&#xff0c;数款拥有数百万活跃用户的Chrome扩展程序正在通过未加密的HTTP连接静默泄露用户敏感数据&#xff0c;严重威胁用户隐私安全。 知名扩展程序存在明文传输风险 尽管宣称提供安全浏览、数据分析或便捷界面等功能&#xff0c;但SEMR…...