版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章开始学习C++C++程序设计——大模型思维与实践内容导航进入C++程序设计过程程序语句大模型实践变量与常量大模型探究数值数据类型本章小结C++程序开始学习C++3【例2-1】:以下是一个简单的C++程序示例:intmain(){inta=5;intb=3;intsum;sum=a+b;return0;}最简单的C++程序main函数:程序的入口点。每个C++程序都必须有且仅有一个main函数。函数头部:intmain()“main”4个字符区分大小写函数体:花括号{}内的部分称为函数体,由一系列语句组成。语句:是构成程序的基本单位之一,它是一个可以执行的操作或指令。语句以分号结尾,一个分号结束一个语句。return语句:将控制权返回给操作系统。返回值为0表示程序正常结束。将sum=a+b;修改为sum=a/0;,程序运行时将产生错误,返回一个非0值4【例2-2】:以下程序将在屏幕上显示Hello,World!#include<iostream>usingnamespacestd;intmain(){cout<<"Hello,World!"<<endl;return0;}使用cout输出5cout<<“Hello,World!”<<endl;将信息输出到屏幕:cout是C++标准库中的一个对象,用于向标准输出设备(通常是屏幕)输出文本。“<<”用于将其后的一项内容输出到屏幕。"Hello,World!"是一个用双引号括起来的字符串,表示要输出的文本内容。双引号内的内容(包括空格和标点符号)将原样输出到控制台。“<<endl”用于输出一个换行,其中endl表示换行,也可使用字符'\n'进行换行。以下cout语句与上面代码的输出完全相同。cout<<"Hello,World!\n"多个<<的使用:在cout语句中,可以使用多个<<操作符输出多项数据。每个<<操作符都会将其后的一项内容输出。使用cout输出6例2-2比例2-1增加的两行代码:(1)#include<iostream>:预处理指令,用于包含标准输入输出流库,使得程序能够使用cout。(2)usingnamespacestd;:引入标准命名空间std,允许在程序中直接使用cout和endl等标识符。使用cout输出打个比方:编译程序将C++代码翻译为机器代码时,就像在翻译一本特殊的书。这本书里充满了各种指令和概念,就像是英语文章中的单词和句子,每个单词和句子都有其特定的含义和用途。例2-1中的所有指令,都在C++的基础语法中,所以不需要额外的库进行辅助。就像英语文章中有一些专有名词或术语可能不在日常词汇表中一样,C++语言中的某些功能(例如cout)也未内建在所有C++编译器中,需要额外的“词典”或“库”来定义和解释。#include<iostream>就像是告诉“翻译器”(在这里是C++编译器):“翻译这本书的时候,你需要包含这本特别的‘词典’——iostream。”假设有两本不同的词典包含了一些相同的单词,解释或用法不同。翻译过程中可能会产生歧义或冲突,因为翻译者不知道应该采用哪个词典中的定义。在C++中,不同的库中可能包含相同的标识符,为避免冲突,使用命名空间组织代码,它允许开发者将相关的函数、变量等放在同一个命名空间中。iostream库中的cout、cin、endl等,都定义在std命名空间中。usingnamespacestd;就像是告诉翻译者:“在接下来的翻译过程中,如果遇到一个没有明确指定来源的单词,并且这个单词在std这个命名空间中有定义,那么直接采用std中的解释。”7由于大部分C++程序都包含输入输出操作,因此编写C++程序时,可参照以下模板:#include<iostream>usingnamespacestd;intmain(){
执行逻辑的一系列语句
return0;}“执行逻辑的一系列语句”根据需要编写,其它代码可以直接复制到每个程序中。使用cout输出8期望将例2-1的计算结果输出到屏幕上,可以将代码改成如下:#include<iostream>usingnamespacestd;intmain(){inta=5;intb=3;//一行可以写两个语句intsum;sum=a+b;
cout<<"sumis:"<<sum;return0;}使用cout输出字符串"sumis:"的内容全部原样输出到屏幕上<<sum将sum的值8输出到屏幕上,不是输出三个字母“sum”。cout的最后没有endl,输出完以上内容后,不会换行。9引用std命名空间有以下两种方式:(1)使用usingnamespacestd;这条指令将整个标准命名空间std中的所有标识符都引入到当前的作用域中(主要方式)。(2)显式地使用std::前缀:每次引用标准库中的标识符时都显式地使用std::前缀。例如,std::cout表示std中的cout。#include<iostream>intmain(){std::cout<<"Hello,World!"<<std::endl;return0;}命名空间的使用10注释为代码提供了额外的说明和解释,编译器在编译过程中会完全忽略它们。C++提供了两种类型的注释:单行注释和多行注释。单行注释:单行注释以两个正斜杠字符//开始,直到该行的末尾。//这是一个单行注释intx=5;//这也是一个单行注释多行注释:多行注释以/*开始,以*/结束。这种注释可以跨越多行。/*这是一个多行注释它可以跨越多行*/intx=5;需要注意:多行注释不支持嵌套/*这是一个多行注释/*尝试嵌套的多行注释*/这是无效的*/C++注释11/*本程序使用sqrt()函数求平方根。需要包含<cmath>库。*/#include<iostream>#include<cmath>usingnamespacestd;intmain(){inta=5;cout<<"5的平方根为:"<<sqrt(a);//输出5的平方根;双引号内可以包含中文return0;}C++注释【例2-3】:使用多行注释和单行注释解释代码内容导航进入C++程序设计过程程序语句大模型实践变量与常量大模型探究数值数据类型本章小结C++程序开始学习C++13
C++提供了多种类型的语句,包括声明语句、赋值语句、控制流语句等C++中的语句都必须以分号(;)结尾,标志着语句结束。简单的语句有:
①声明语句:用于声明变量、函数、类等。例如:intx;//声明一个整型变量voidfunc();//声明一个函数②表达式语句:执行某个操作或计算。例如:
x=10;//赋值表达式语句
y=x+5;//另一个赋值表达式语句③空语句:仅由一个分号构成,表示什么也不做。通常用于占位或循环中需要空操作时。例如:
;//空语句程序语句14一个语句可以占多行
书写语句时,通常情况一个语句占一行,然而,有些语句较长或者因为其它原因,开发者可以将其拆分为多行书写。例如:
以下赋值语句由于表达式较长(实际中可能更长),所以分成了两行书写:
result=2*3+5/2
+(52-3)/3;程序语句15一行可以书写多个语句程序的一行可以包含多个语句,只要每个语句都以分号结尾。intx,y,z;x=1;y=2;z=3;//在同一行中书写了4个语句空格的使用在语句中,两个连续的标识符之间需要加空格(可以加一个或多个)以进行分隔,一个标识符中间不允许加空格将其分开在其它元素(如运算符和操作数)之间是否添加空格,取决于编程者的个人习惯或团队的编码规范。inta=0;//等于号前后有空格,推荐做法intb=0;//int和b之间需要空格,其它位置可以不加空格程序语句16缩进与对齐
C++中,缩进和对齐本身并不影响程序的编译和执行,因为编译器会忽略空白字符,包括空格、制表符和换行符。以下代码虽然难以阅读,但是可以正常执行:intmain(){intresult=2*3+5/2+(52-3)/3;cout<<result;return0;}注释的位置在C++中,空格所在的位置都可以插入注释。通常情况下,多行注释单独占据若干行(不会在那些行上书写C++语句),单行注释占据整行或者与C++语句书写在同一行,但位于C++语句的后面。程序语句17编程风格掌握C++程序语句的结构和书写风格对于编写高质量、易于维护的代码至关重要。通过合理使用空格和注释,程序员可以提高代码的可读性和可维护性。但在实际编程中,经常可见风格混乱的代码:程序语句18编程风格建议:①
每行只写一条语句,避免将多条语句合并为一行。②
花括号{}之中的内容缩进4个空格,或者使用tab键缩进。③
使用注释解释代码的含义和用途。程序语句内容导航进入C++程序设计过程程序语句大模型实践变量与常量大模型探究数值数据类型本章小结C++程序开始学习C++20变量是存储数据值的地方,它们允许程序在执行过程中存储、修改和访问数据。变量由变量名、值以及存储单元构成,其中:变量名是程序员为变量指定的唯一标识符,程序使用它唯一地识别和访问对应的变量。变量值是变量存储的具体数据存储单元是计算机中的一块内存,可能占用1B、2B、4B等,用于存放变量的值,下图使用方框表示变量需要占据一块存储空间。变量21
变量定义语句的格式:类型变量名[=初始化值][,变量名[=初始化值]...];类型:指定变量的数据类型。数据类型决定了变量可以存储的数据种类,如int表示整数,double表示双精度浮点数,char表示字符等。变量名:紧跟类型之后的是变量名(类型与变量名中间需要有至少一个空格),变量名和后面提到的常量名、函数名、类名等,统称为标识符。C++标识符由一串字符组成,取名规则为:标识符只能由英文字母、数字和下画线组成,并以英文字母或下画线开头。标识符不能是C++保留关键字,如int、double等。标识符区分大小写,因此sum和Sum是不同的标识符。初始值:可选,允许在变量定义的同时给变量赋一个初始值。逗号及其它变量名:可选,如果存在,表示一个语句可以定义多个变量。变量doubleprice;inta=3;intb,c,d=5;intx=10,y=20,z;
22C++要求所有变量都必须先定义再使用,否则编译时会提示“标识符未定义”的错误。变量inta;a=3;intsum;Sum=3;sum=3;intsum;√╳╳23常量是程序中不可变的值,可以分为字面常量、符号常量和const常变量。字面常量:直接以值的形式出现在代码中等。整数常量:如100、020(0开头为八进制常量)、0xA(0x或0X开头为十六进制常量)
等。浮点数常量:如3.14、-0.001、1.2e-3(科学计数法)等。
字符常量:用单引号括起来的单个字符,如'a'、'\n'(换行符)等。字符串常量:用双引号括起来的字符序列,如"Hello,World!"、"a"、""(双引号内无字符,为空字符串)等。常量24符号常量:也称为宏常量,通过#define预处理指令来定义。与字面常量相比,符号常量提高了代码的可读性和可维护性。#definePI3.14159intmain(){doubleradius=5.0;cout<<PI*radius*radius;//使用符号常量PI}常量编译前被预处理器替换为3.1415925const常变量const常变量是C++中推荐使用的一种常量表示方式。与符号常量不同,const常变量在编译时由编译器处理,它们具有类型,并且必须在声明时初始化。constdoublepi=3.14159;const常变量提供了比符号常量更好的类型检查。常量内容导航进入C++程序设计过程程序语句大模型实践变量与常量大模型探究数值数据类型本章小结C++程序开始学习C++27整数在数学中用于表示没有小数部分的数,常用的整型有:int类型用4个字节(32位二进制)存储表示的范围为-231到231
–1(即从-2,147,483,648到2,147,483,647,为2*109量级)。longlong类型使用8个字节(64位二进制)存储表示的范围从-263到263-1,为9*1018量级。例如:inta=123456789;//该整数为108量级,可以使用int型变量存储longlongb=1234567890123456;//该整数为1015量级,需要longlongshort、unsignedint等类型short为短整型,使用2个字节存储unsignedint为无符号整型,可简写为unsigned,存储的整数全部为非负数。整型28整型常量默认为int类型,例如常量2为int类型,以4个字节存储。可以在常量后加后缀指定类型,例如:35u(后缀U或u表示unsigned类型)、35LL(后缀LL或ll表示longlong类型)。整型数在计算机中一般用补码表示,二进制数的最高位(第1位)是符号位:0表示正数,1表示负数。整型29以8位二进制整数为例简单解释补码的概念:8位二进制整数占用8位(1字节),二进制数字为:补码000000000000000100000010......011111111000000010000001......11111111第1位为符号位0表示正数1表示负数012......127-128-127......-12+1=3126+1=127127+1=-128100+100=负数当正数运算的结果超出最大值时,将得到负数,称为“溢出”。30实型又称浮点型,包括float、double、longdouble等。只能存储有限的二进制位,因此只能表示有限精度的实数。C++中常用的实型有:double类型:双精度类型以8个字节存储提供十进制15-16位有效数字的精度表示范围为10-307-10308是C++中最常用的浮点数类型。float类型:称为单精度类型以4个字节存储提供十进制6-7位有效数字的精度表示范围为10-38-1038。
实型31日常使用的浮点数,不会超出10-38-1038的表示范围,但是有效数字很容易超出6-7位,从而需要使用double类型存储。floatf=12345.6;//有效数字为6位,可以使用float类型存储doubled=1234567890.1234;//有效数字为14位,不能使用float类型存储,需要double类型实型常量默认为double类型,例如3.2为double类型,以8个字节存储。可以加后缀f指定为float类型,例如2.5f。实型内容导航进入C++程序设计过程程序语句大模型实践变量与常量大模型探究数值数据类型本章小结C++程序开始学习C++33C++程序设计的过程包括三大核心组成部分:输入、数据处理、以及结果输出。输入在C++中,与用户交互、从外部(如键盘)获取数据到程序内部的过程,主要依赖于输入流对象cin。输入语法格式为:
cin>>变量名1
[>>变量名2……];这里,变量名1、变量名2代表程序中已经声明的变量,其类型应与用户期望输入的数据类型相匹配。若需要输入一个整数,则变量名应该是一个整型变量(如inta);若需输入一个浮点数,则应为浮点型变量(如doubleb)。输入输出34【例2-4】:从键盘输入一个整数,存储到age变量中。#include<iostream>usingnamespacestd;intmain(){intage;
cin>>age;//从键盘读取整数并赋值给变量agereturn0;}输入输出35输出C++使用输出流对象cout向标准输出(通常是屏幕)发送数据。cout与<<运算符结合使用,可以输出常量、变量的值,甚至是表达式的计算结果。输出语法格式:
cout<<数据项1
[<<数据项2……];其中,数据项1、数据项2可以是双引号括起来的字符串、变量、表达式等。如果希望在同一行输出多个项,只需连续使用<<运算符即可。输入输出36【例2-5】:从键盘输入一个整数,并输出多项数据。#include<iostream>usingnamespacestd;intmain(){intnumber=10;doublepi=3.14159;cout<<"请输入一个数字:";cin>>number;cout<<"数字:"<<number<<",圆周率:"<<pi<<endl;return0;}输入输出37
在C++编程中,赋值语句用于给变量分配或更新值。赋值语句可以将右侧表达式的值赋给左侧的变量。其基本语法如下:
变量=表达式;“变量”代表将要被赋值的变量“表达式”代表产生值的任何有效表达式。执行赋值语句时,表达式首先被计算,然后将计算结果存储在指定的变量中。示例:doublea;a=5.5;//将5.5赋值给aa=a*3;//使用变量a和3的乘积更新a的值赋值语句38【例2-6】在军训期间,教官要求所有学员必须排成一个由m行n列组成的方阵。请编写一个程序,输入行数m和列数n,然后输出该方阵中的总人数。【示例】假设输入的行数m为3,列数n为4,则程序应输出12。【思考过程】1.存储数据首先,我们需要存储以下数据:行数(m):表示方阵的行数,类型为int。intm;用于存储行数。列数(n):表示方阵的列数,类型为int。intn;用于存储列数。总人数:表示方阵中的总人数,类型为int。inttotalPeople;用于存储计算得到的总人数2.输入数据我们需要从用户那里获取行数m和列数n。可以使用cin输入语句来实现:cin>>m;cin>>n;3.计算总人数总人数可以通过简单的乘法运算计算得到。计算结果存储在totalPeople变量中:totalPeople=m*n;4.输出结果最后,我们需要输出计算得到的总人数,可以使用cout输出语句来实现:cout<<totalPeople<<endl;应用实例39#include<iostream>usingnamespacestd;intmain(){intm,n,totalPeople;cout<<"请输入方阵的行数m:"<<endl;cin>>m;cout<<"请输入方阵的列数n:"<<endl;cin>>n;totalPeople=m*n;cout<<"方阵中的总人数是:"<<totalPeople<<endl;return0;}示例代码40【例2-7】请编写一个程序计算圆的面积。假设圆周率pi取值为3.14,且圆的半径不超过100米,半径可包含两位小数(即精确到厘米)。程序应提示用户输入半径,并输出计算得到的圆的面积。【示例】假设输入的半径为10米,则程序应输出314平方米。【思考过程】1.存储数据首先,我们需要存储以下数据:圆周率pi:取值为3.14,类型为double(或float)。doublepi=3.14;半径r:用户输入的圆的半径,类型为double(或float)。doubler;面积:计算得到的圆的面积。因为圆半径可能为99.99,包含4位有效数字,pi有3位有效数字,计算面积可能得到4*2+3=11位有效数字,float类型变量不能精确存储(其精度最多6到7位),只能使用double类型。doublearea;2.输入数据cin>>r;3.计算面积:圆的面积可以通过公式area=pi*r^2计算得到。计算结果存储在
area变量中:area=pi*r*r;4.输出结果cout<<area<<endl;应用实例不要写成:area=pi*r^2;41#include<iostream>usingnamespacestd;intmain(){
doublepi=3.14;
doubler,area;
cout<<"请输入圆的半径:"<<endl;
cin>>r;
area=pi*r*r;
cout<<"圆的面积是:"<<area<<"平方米"<<endl;
return0;}示例代码内容导航进入C++程序设计过程程序语句大模型实践变量与常量大模型探究数值数据类型本章小结C++程序开始学习C++43C++程序设计是一个系统化的过程,涵盖问题分析、算法设计、代码实现、编译运行以及调试修改等多个环节。1.问题分析在编写程序前,需对问题进行全面分析,明确程序的核心需求。具体步骤如下:①输入的数据:确定程序需要接收哪些数据(如整数、浮点数、字符串等),以及数据的范围和精度要求。②运算逻辑:设计解决问题的算法,明确数据如何被处理(如加法、排序等)。③输出的结果:确定程序最终需要输出的内容(如结果值、状态信息等)。程序设计过程442.算法设计算法设计是程序设计的基础,它像一份“解题说明书”,教会我们如何用计算机的基本动作(如比较、计算、存储)一步步解决复杂问题。例如,让计算机交换两个变量a和b的值,算法可如下设计:①首先定义第3个变量c作为临时变量②将a赋给c。③将b赋给a。④将c赋给b。经过以上4个步骤,即实现了a和b的交换。程序设计过程453.编写C++程序C++程序由一个或多个源文件(cpp文件)组成,每个源文件包含程序的实现代码。源文件是程序员使用文本编辑器或集成开发环境(IDE)编写的纯文本文件:文本编辑器:如Notepad++、VSCode等,适合编写简单程序,但不适合初学者入门。集成开发环境(IDE):如VisualStudio、Code::Blocks等,提供代码编辑、编译、调试等一站式功能。推荐使用VisualStudio。算法设计完毕后,即可使用以上工具编写C++源代码,并保存为cpp文件。程序设计过程464.编译与链接编译器将C++源代码(cpp文件)转换为机器可识别的目标文件(.obj或.o文件),链接器将目标文件与库文件(如标准库)链接,生成可执行文件(.exe文件)。在VisualStudio中,点击“生成解决方案”按钮,IDE会自动完成编译和链接,生成可执行文件。5.运行与测试在VisualStudio中,点击“开始执行(不调试)”按钮直接运行程序,输入测试数据并得到结果。可以运行多次,使用不同的输入数据验证程序的正确性。6.
修改代码代码中可能存在错误,导致编译、链接或者运行出错:语法错误:如漏写分号、括号不匹配等,编译器会提示错误位置。逻辑错误:如算法设计不合理,导致输出结果出错。运行时错误:如除以零等错误,将导致程序崩溃,弹出错误提示框。发现错误后,需要返回到第2步修改代码,再次执行从编写、编译到测试的步骤。程序设计过程内容导航进入C++程序设计过程程序语句大模型实践变量与常量大模型探究数值数据类型本章小结C++程序开始学习C++48如何有效地向大模型或编程助手提问?针对C++知识点疑问的提问对C++的某个知识点存在疑问时,构建一个清晰、具体的提问至关重要。一个有效的提问应包含以下几个要素:明确知识点:首先,明确指出感到困惑的具体知识点,如“main函数的返回值”或“int类型的表示范围”。具体疑问点:接着,阐述在该知识点上的具体疑问,比如“main函数的返回值0有什么意义?”或“int类型的表示范围最大是多少?”。已尝试的解答(可选):如果可能,简述已尝试的解答方法或查阅的资料,这有助于大模型提供更精准的帮助。
示例:我在学习C++时,对main函数的返回值有疑问。main函数的返回值0有什么意义?能否返回其它值,例如返回1?大模型交互问答49针对编程题解答思路的提问面对编程题时,可能需要的是解题的整体思路或特定步骤的指引。向大模型提问时,应注意以下几点:问题描述:简要描述题目的要求,包括输入输出格式、限制条件等。当前难点:明确指出你在解题过程中遇到的具体难题或卡点,比如“不知道如何开始设计算法”或“不知道该选择哪个数据类型”。期望帮助:说明你希望得到的帮助类型,是整体思路的引导,还是某个具体步骤的解答。我正在尝试解决一个C++编程题,题目要求输入两个整数,计算它们的最大公约数。我现在的难点是:不知道该使用什么公式进行计算,或者要使用什么语句进行计算。应该是什么思路?上述的提问要素与模板,不能覆盖到所有可能的情况。在实践过程中,可以根据需要修改其中的内容,并尝试不同的提问是否得到不同的答案,在提问的过程中锻炼自己的问题分析能力。大模型交互问答50智能编程助手,可以在开发者进行编码工作时,提供行级/函数级实时续写、注释生成代码等功能。实时续写编程助手的实时续写功能利用了机器学习模型,经过训练后,能够根据开发人员已经编写的代码和当前的编程环境来预测接下来可能的代码。左图中,在C++新文件中第1行输入#符号时,编程助手根据常见的编程模式提示可能想要包含的头文件iostream。图中,#号后的竖线为光标,表示目前还只输入了一个字符,#号后的字符“include<iostream>”目前是灰色状态,表示这些代码仅仅只是建议,还不是代码的一部分,可以接受建议,该行
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年1月试卷8年级(数学)期末易错压轴题型(31易错+14压轴)(专项训练)(原卷版)
- 2026年重庆市中考英语试卷真题及答案详解(精校打印版)
- JJF(鄂) 182-2026 电学法热阻测试仪校准规范
- 2026年消防安全防范措施方案
- 测量施工方案
- 2026年审计问题整改工作方案及措施
- 2026年修理厂保养活动方案策划
- 2026年课堂教学流程或板书设计方法
- 2026年科技公司市场部工作计划书
- 2026年酒店新年营销活动策划书
- 36英尺动力双体船水翼的开发与优化:技术、性能与创新实践
- JG/T 478-2015建筑用穿墙防水对拉螺栓套具
- 2025九江银行笔试题目及答案
- 武汉遗体捐献协议书模板
- 锂电池、新能源汽车火灾事故灭火救援处置
- 2025年高考历史一轮复习“近代中国革命史”核心考点梳理
- 处方书写规范培训课件
- 人事管理制度及工作流程
- 《铁路技术管理规程》(普速铁路部分)
- 2025年牢牢坚守廉洁与廉政职业底线专题课件
- 国家开放大学《企业信息管理》形考任务1-4答案
评论
0/150
提交评论