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

ops/2024/12/12 16:22:37/

🌈个人主页:羽晨同学

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

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

工具安装

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.ppmy.cn/ops/141281.html

相关文章

Ubuntu安装grafana

需求背景&#xff1a;管理服务器&#xff0c;并在线预警&#xff0c;通知 需求目的&#xff1a; 及时获取服务器状态 技能要求&#xff1a; 1、ubuntu 2、grafana 3、prometheus 4、node 步骤&#xff1a; 一、grafana安装 1、准备系统环境&#xff0c;配置号网络 2、…

第二章、数值

无符号和有符号整数 显式转换时&#xff0c;底层二进制值不变&#xff0c;只是应用层解释不一样隐式转换时&#xff0c;基本所有运算符都是把其中的有符号转为无符号&#xff0c;底层二进制值不变扩展时&#xff0c;无符号高位补0, 有符号高位补符号位&#xff0c;举个3bit的i…

TikTok无网络黑屏原因及解决方法

TikTok运营中最常见的问题就是出现黑屏和“Something went wrong”“No internet connection”等字样&#xff0c;这时TikTok往往已经无法正常使用&#xff0c;大大影响运营流程。那么这种情况是什么原因&#xff0c;又有什么解决办法&#xff1f; 一、无网络黑屏原因 1.‌地理…

Scala隐式转换

//隐式转换:编译器自动滴&#xff0c;把数据类型从A->B //有可能成功&#xff0c;也可能会失败object test1118 {def getAge(): Double {18.5}// implicit 隐式转换// 函数名字不重要// 重要的是&#xff1a;参数类型和返回类型!!// 隐式函数&#xff1a;implicit修饰的函数…

Python | 数据可视化中常见的4种标注及示例

在Python的数据可视化中&#xff0c;标注&#xff08;Annotation&#xff09;技术是一种非常有用的工具&#xff0c;它可以帮助用户更准确地解释图表中的数据和模式。在本文中&#xff0c;将带您了解使用Python实现数据可视化时应该了解的4种标注。 常见的标注方式 文本标注箭…

【Sentinel Go】新手指南、流量控制、熔断降级和并发隔离控制

随着微服务的流行&#xff0c;服务和服务之间的稳定性变得越来越重要。Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件&#xff0c;主要以流量为切入点&#xff0c;从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开…

蓝桥杯我来了

最近蓝桥杯报名快要截止了&#xff0c;我们学校开始收费了&#xff0c;我们学校没有校赛&#xff0c;一旦报名缴费就是省赛&#xff0c;虽然一早就在官网上报名了&#xff0c;但是一直在纠结&#xff0c;和家人沟通&#xff0c;和朋友交流&#xff0c;其实只是想寻求外界的支持…

过载与简单:理解感知

通常情况下&#xff0c;最好的设计是使用最少设计技巧的设计。这是为什么&#xff1f;这一切都是关于人类大脑是如何工作的&#xff0c;它决定了观众对媒体的反应、感受情绪和做出决定。 注意。我们被海量的信息轰炸。不间断地处理所有这些信号会降低我们大脑的注意力。根据微…