初识C++语言(1)

news2024/9/21 10:44:43

目录

C++语言简介

C++ 语言概述

C++ 语言的特点

语言简洁紧凑,使用灵活方便       

运算符丰富       

数据结构丰富         

结构化语言         

生成的代码质量高         

可移植性强         

C++程序结构

C++语言系统的使用

一.启动Dev-C++

 二、新建源程序

三、 保存源程序到硬盘

四、编译、运行

五、调试程序 

总结


C++语言简介

       信息学奥林匹克竞赛是一项益智性的竞赛活动,核心是考查选手的智力和使用计算机解题的能力,选手首先应针对竞赛题目的要求构建数学模型,进而构造出计算机可以接受的算法,之后编写出计算机能够执行的程序。程序设计是信息学竞赛的基本功,选手参与竞赛活动的第一步是熟练掌握一门程序设计语言,目前竞赛中允许使用的程序设计语言有C语言、C++语言、Pascal。

C++ 语言概述

C++由美国AT&T贝尔实验室的本贾尼·斯特劳斯特卢普博士在20世纪80年代初期发明并实现(最初这种语言被称作“C with Classes”带类的C)。开始,C++是作为C语言的增强版出现的,从给C语言增加类开始,不断的增加新特性。

今天C++已成为世界主流编程语言之一。

C++ 语言的特点

语言简洁紧凑,使用灵活方便       

 C++语言一共只有32个关键字和9种控制语句,程序书写自由,主要用小写字母表示。

运算符丰富       

 C++语言的运算符包含的范围很广泛,共有34个运算符。

数据结构丰富         

C++语言的数据类型有:整型、实型、字符型、数组类型等等

结构化语言         

结构化语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。

生成的代码质量高         

C++语言在代码效率方面可以和汇编语言相媲美。

可移植性强         

C++语言编写的程序很容易进行移植,在一个环境下运行的程序不加修改或少许修改就可以在完全不同的环境下运行。

C++程序结构

在介绍C++语言程序的结构之前,我们先来看一个简单的例子:

在屏幕上输出“Hello World!”。

#include<iostream>      //使用cin,cout,须调用iostream 库,否则编译出错
#include<cstdlib>         // 使用system( )调用cstdlib库
using namespace std;  //在C语言中要省略,例如在VC++和TC++中
int main()                      //有的C语言可用void main(),例如TC++和VC++
{
	cout<<"Hello  World!"<<endl;   //输出"Hello World!" 
	return 0;                  //结束整个程序
}
运行结果:
   Hello World!

【说明】:

1、以“//”开头为注释行,“//”后的内容用以对语句进行说明,输入程序时可以不输入。                       

2、#include<iostream> 告诉编译器的预处理器将输入输出流的标准头文件(iostream)包括在本程序中。 这个头文件包括了C++中定义的基本标准输入输出程序库的声明。                                         

3、using namespace std 使用std(标准)名字空间的意思。所谓的名字空间是标准C++中的一种机制,用来 控制不同类库的冲突问题。使用它可以在不同的空间内使用相同名字的类或者函数。                                                                                                                                                         

4、int main( ) 这一行为主函数(main function)的起始声明。main()是所有C++程序的运行的起始 点。不管它是在代码的开头,结尾还是中间,此函数中的代码总是在程序开始运行时第 一个被执行。所有C++程序都必须有一个main(),int main()前int在Dev  C++中可省略, 在TC++和VC++中最好保留。 main后面跟了一对圆括号( ),表示它是一个函数。C++中所有函数都跟有一对圆 括号( ),括号中可以有一些输入参数。注意,圆括号中即使什么都没有也不能省略。 如例题中显示,主函数main()中的内容,由一对花括号{ }括起来。                                                                       

5、cout << "Hello World!"<<endl 这个语句在本程序中最重要。 cout是一个输出语句,告诉计算机把引号之间的字符 串送到标准的输出设备(屏幕)上。cout 的声明在头文件iostream中,所以要想使用cout 必须将头文件iostream包括在程序开始处。endl是C++语言的换行控制符,表示内容输出 后换行显示后续的内容。                                                                                                 

 6、system("pause")          在4.99以前版本的Dev-C++环境下,为了查看程序运行结果,需要在main函数的return 0语句前加上:system("pause"); 这样程序运行到该语句时,结果显示屏幕将会停留,让大家有时间看程序的输出结果,否则结果显示屏幕将会一闪而过。在4.99之后的版本可不必加该语句,运行结束后结果显示屏幕将自动停留。                                                                         

7、return 0       主函数main( )的返回语句,一般是函数的最后一条可执行语句。main()函数末尾使用return语句时,数值0表示程序顺利结束,其他数表示有异常。在后面的例子中你会看到C++程序都以类似的语句结束。                                                                                                             

在C++中,语句的分隔是以分号“;”为分隔符的,分行写代码只是为了更方便人阅读。

C++语言系统的使用

       Dev-C++是一个可视化集成开发环境,可以用此软件实现C/C++程序的编辑、预处理/编译/链接、运行和调试。现在介绍Dev-C++常用的一些基本操作,每一位同学都要掌握。

一.启动Dev-C++

1. 鼠标点击任务栏中的“开始”按钮,选“程序”菜单项,然后选“程序”下的子菜单项“Bloodshed Dev-C++”项,显示该项下的子菜单。          2. 方法一:单击”Dev-C ++”菜单项,即可启动Dev-C ++集成开发工具。(如图所示)                                                                                     方法二:直接双击桌面上的Dev-C++的图标。                                                                                   

 二、新建源程序

1)从主菜单选择“文件” 〉“新建” 〉“源代码”即可(如图所示)。

图5

2).此时屏幕右下侧出现一片白色区域,称为“源程序编辑区域” ;可以在此输入程序。如图所示。

注意:       1.必须在英文输入环境下编辑程序(如果你当前能在程序编辑区输入中文,说明你是在中文输入环境下。为了输入程序,你必须切换到英文输入环境下)。                                                                                                                                                                                      2.在4.99以前的版本的Dev-C++环境下,为了查看程序运行结果,需要在main函数的return语句前加上:system("pause")或getchar( ),这样程序运行到该语句时,结果显示屏幕将会停留,让大家有时间看程序的输出结果。否则结果显示屏幕将会一闪而过。在4.99之后的版本可不必加该语句,运行结束后结果显示屏幕将自动停留。

三、 保存源程序到硬盘

        一个好的习惯是创建了一个新程序后,在还未输入代码之前先将该程序保存到硬盘某个目录下,然后在程序的编辑过程中经常性地保存程序,以防止机器突然断电或者死机。要保存程序,只需从主菜单选择“文件”—〉”保存”就可以将文件保存到指定的硬盘目录。如图所示。

       此时会弹出一个对话框。在此你需要指定文件要存放的磁盘目录(例如: D:\temp),自定文件名称(例如:ex1)以及保存类型。在点击右下角的保存按钮后,在D盘上的temp目录下将会出现一个名为ex1.cpp的源文件。

四、编译、运行

编译:从主菜单选“运行”—〉“编译运行”或快捷键“F9”,如图。如果程序中存在词法、语法等错误,则编译过程失败。 

                                   

编译器会在屏幕右下角的“Compile Log”标签页中显示错误信息,如图所示,并且将源程序相应的错误行标成红色底色。

五、调试程序 

1.设置程序断点                                                                                                                                                                                                         

       通过预处理、编译和链接的程序仅仅是该程序中没有词法和语法等错误,而无法发现程序深层次的问题(譬如算法不对导致结果不正确)。当程序运行出错时,需要找出错误原因。仔细读程序来寻找错误固然是一种方法,但是有时光靠读程序已经解决不了问题,此时需要借助于程序调试(Debug)手段。这是一种有效的排错手段,每一位同学都需要掌握。                                                   如果想让程序运行到某一行前能暂停下来,就需要将该行设成断点。具体方法是在代码所在行行首单击,该行将被加亮。默认的加亮颜色是红色。                                                                                如果想取消不让某行代码成为断点,则在代码行首再次点击即可。

2.运行程序                                                                                                                                                                                                             

        设置断点后,此时程序运行进入debug状态。要想运行程序,就不能使用主菜单“Execute”->“Run”,而是需要用主菜单“Debug”—〉“Debug”(或者按快捷键F8),如图所示。

3.单步执行程序                                                                                                                                                                                                         

     要想运行蓝色底色的代码,可以使用图14所示的“Next Step( F7)”、“Step Into(Shift F7)”、“Continue(Ctrl F7)”,“Run to Cursor(Shift F4)”等(具体含义见下面的介绍)。在学习函数之前,一般用的是Next Step和Continue。学习函数后,还会用到Step Into。                                                                                                                                                                                              4.设置watch窗口                                                                                                                                                                                                 

       在调试程序时,可能要看程序运行过程中变量的值,以检测程序对变量的处理是否正确,可以在调试时通过调试菜单下的添加变量(Add Watch)窗口来增加变量watch,新增的变量将会显示在最左边Explore的Debug页中。如果左边Explore中的当前页不是Debug页,则可以点击Debug标签使之成为当前页。

总结

还没有下载的小伙伴们可以私我拿到免费安装包,和我一起学习C++吧。

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

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

相关文章

【观察】甲骨文:用“SQL”实现AI的“融会贯通”,打通应用落地的“最后一公里”...

从2022年的ChatGPT&#xff0c;到2024年的Sora&#xff0c;生成式AI和大模型技术正以不可思议的发展速度颠覆着我们的认知。刚刚过去的一年&#xff0c;国内的“百模大战”更让大模型站上了市场“风口”&#xff0c;通过更为泛化的能力&#xff0c;赋予了千行万业数智化无限的想…

ChatGPT提问获取高质量答案的艺术PDF下载书籍推荐分享

ChatGPT高质量prompt技巧分享pdf&#xff0c; ChatGPT提问获取高质量答案的艺术pdf。本书是一本全面的指南&#xff0c;介绍了各种 Prompt 技术的理解和利用&#xff0c;用于从 ChatGPTmiki sharing中生成高质量的答案。我们将探讨如何使用不同的 Prompt 工程技术来实现不同的目…

aws sap认证考试如何轻松通过

如何高效备考AWS SAP (Solutions Architect Professional) 认证? AWS SAP认证是AWS认证体系中难度最高的认证之一,要通过这个考试确实需要下一番功夫。但通过合理规划和有效准备,你可以提高通过的几率。以下是一些建议: 评估起点 首先诚实地评估自己的AWS知识水平和实践经验。…

聚鼎科技:装饰画未来前景好不好

在这个快速变化的时代&#xff0c;装饰画作为家居装饰和艺术表达的一种形式&#xff0c;其未来前景备受各界关注。随着人们审美的多元化和居住环境的个性化需求增长&#xff0c;装饰画逐渐从传统领域延伸到更加广阔的生活空间。 装饰画的市场潜力不容小觑。现代社会对美的追求日…

重塑肌肤DNA!华贝甄选解锁生命活力密码

在探索生命奥秘与健康的征途中&#xff0c;华贝甄选携手前沿干细胞科技&#xff0c;为您开启一场前所未有的健康革命。我们深知&#xff0c;生命的活力源自细胞的不懈更新与修复&#xff0c;而干细胞&#xff0c;正是这场生命奇迹的钥匙。 【重塑内分泌平衡&#xff0c;焕发自…

spring boot的学习--Springboot的Web开发(3)

1. 简介 1.1 创建springboot应用,选中我们需要的模块 1.2 springBoot已经默认将这些场景配置好了,只需要在配置文件中指定少量配置就可以运行起来 1.3 自己编写业务代码 顺便回顾下上一篇的自动装配 这个场景SpringBoot帮我们配置了什么&#xff1f;能不能修改&#xff1f;能修…

vue 搭建 pinia

文章目录 环境设置存储读取数据【 storeToRefs】借助storeToRefs将store中的数据转为ref对象&#xff0c;方便在模板中使用【getters】当state中的数据&#xff0c;需要经过处理后再使用时&#xff0c;可以使用getters配置【$subscribe】通过 store 的 $subscribe() 方法侦听 s…

韦尔股份:深蹲起跳?

利润大增7倍&#xff0c;是反转信号还是回光返照&#xff1f; 今天我们聊聊光学半导体龙头——韦尔股份。 上周末&#xff0c;韦尔股份发布半年业绩预告&#xff0c;预计上半年净利润13至14亿&#xff0c;同比增幅高达 754%至 819%。 然而&#xff0c;回首 2023 年它的净利仅 …

代码随想录算法训练营第二十九天

452. 用最少数量的箭引爆气球 这道题目我原本的想法是只要当前的气球半径范围在已有的箭头能够击穿的气球半径内就可以实现 但是 箭射出去的地方是一个值 而不是一个范围 因此有相同的重叠范围的许多气球并一定都有相同的值&#xff0c;因此这种方法不可取 这题的主要局部最…

『Django』自带的后台

theme: smartblue 本文简介 点赞 关注 收藏 学会了 上一篇讲了 Django 操作 MySQL 的方法&#xff0c;讲了如何创建模型&#xff0c;如何对数据库做增删改查的操作。但每次修改数据都要写代码&#xff0c;多少有点麻烦。 有没有简单一点的方法呢&#xff1f; 有的有的&#…

kotlin Flow 学习指南 (三)最终篇

目录 前言Flow生命周期StateFlow 替代LiveDataSharedFlow其他常见应用场景处理复杂、耗时逻辑存在依赖关系的接口请求组合多个接口的数据 Flow使用注意事项总结 前言 前面两篇文章&#xff0c;介绍了Flow是什么&#xff0c;如何使用&#xff0c;以及相关的操作符进阶&#xff…

leetcode 1421 净现值查询(postgresql)

需求 表: NPV ---------------------- | Column Name | Type | ---------------------- | id | int | | year | int | | npv | int | ---------------------- (id, year) 是该表主键. 该表有每一笔存货的年份, id 和对应净现值的信息. 表: Queries ---------------------- …

Nginx -Web服务器/反向代理/负载均衡

文章目录 一、web服务1.1 nginx安装1.2 配置文件1.3 Nginx处理Web机制 二、反向代理三、负载均衡3.1 分类3.2 负载相关配置文件3.3 keepalive 提高吞吐量3.4 配置浏览器缓存 附、JMeter性能测试工具 以赛促学内容,大概率感觉会使用nginx做web服务,特对nginx做总结归纳. Nginx是…

AI in Finance 金融领域AI应用-基于DeepNLP AI App Store 真实用户评论打分和排名

AI在金融领域应用 AI in Finance 金融服务领域的AI应用和传统的金融智能应用不同。传统金融智能应用包括如风险评估 (Risk assessment), 风险管理&#xff08;Risk management), 欺诈检测 (Fraud Detection&#xff09;等等。 通用AI大模型和人工智能应用如ChatGPT&#xff0c…

PyTorch复现PointNet——模型训练+可视化测试显示

因为项目涉及到3D点云项目&#xff0c;故学习下PointNet这个用来处理点云的神经网络 论文的话&#xff0c;大致都看了下&#xff0c;网络结构有了一定的了解&#xff0c;本博文主要为了下载调试PointNet网络源码&#xff0c;训练和测试调通而已。 我是在Anaconda下创建一个新的…

香蕉派BPI-Wifi6迷你路由器公开发售

Banana Pi BPI-Wifi6 Mini 公开发售。 Banana Pi BPI-Wifi6 Mini 开源路由器采用Triductor TR6560 TR5220 wifi SOC设计&#xff0c;是一款迷你尺寸的wifi6路由器解决方案。内置高性能双核ARM Cortec A9处理器用于WIFI报文转发或智能业务处理&#xff0c;内置高性能LSW和硬件N…

最新浪子授权系统网站源码 全开源免授权版本

最新浪子授权系统网站源码 全开源免授权版本 此版本没有任何授权我已经去除授权&#xff0c;随意二开无任何加密。 更新日志 1.修复不能下载 2.修复不能更新 3.修复不能删除用户 4.修复不能删除授权 5.增加代理后台管理 6.重写授权读取文件 7.修复已经知道漏洞 源码下…

pytorch-RNN实战-正弦曲线预测

目录 1. 正弦数据生成2. 构建网络3. 训练4. 预测5. 完整代码6. 结果展示 1. 正弦数据生成 曲线如下图&#xff1a; 代码如下图&#xff1a; 50个点构成一个正弦曲线随机生成一个0~3之间的一个值&#xff08;随机的原因是防止每次都从相同的点开始&#xff0c;50个点的正弦曲…

云手机批量操作使用场景,从Amazon、TK等软件分析

云手机目前所具备的群控&#xff0c;批量操作&#xff0c;自动化等功能&#xff0c;对于电商&#xff0c;软测&#xff0c;办公&#xff0c;直播&#xff0c;营销等行业有很好的减负作用。 针对于具体的海外APP&#xff0c;云手机具体可以做哪些事情来帮助我们减轻压力&#x…

Docker拉取失败,利用github将镜像推送到阿里云

GITHUB配置 fork https://github.com/tech-shrimp/docker_image_pusher 该项目到自己的账户下。 设置环境变量&#xff0c;其路径如下图 在该项目中 .github/workflows/docker.yaml 找到 env 标签 ALIYUN_REGISTRY: "${{ secrets.ALIYUN_REGISTRY }}"ALIYUN_NAME_S…