C++基础语法1
YanSS_0416 · · 个人记录
一、程序框架
#include<iostream>
using namespace std;
int main(){
return 0;
}
1.#include<iostream>//头文件
头文件在程序中起到的作用,可以理解为“完成某些任务需要携带相应的工具,而头文件就是装有工具的工具箱”。include是包含的意思,iostream即输入输出流,该头文件包含输入输出功能。
在之后的学习中,我们还会接触其他头文件。
2.using namespace std;//标准命名空间
C++的标准函数库被定义在标准命名空间 std 中,因此为了能够使用这些标准函数,我们就用这条语句来引用它。
标准命名空间在程序中起到的作用,可以理解为“防止命名冲突”,例如:1班有叫张三的,2班也有叫张三的,为了区分,我们就得说“1班张三……”、“2班张三……”,这样太累赘。如果先说“using namespace 1班”, 再说“张三……”,人家就知道指的是1班的张三了。
3.int main()//主函数
一个C++程序必须且只能有唯一的一个称为main的“主函数”,它是所有C++程序的运行的起始点。
main函数的内容由一对花括号{}括起来,称为函数体。函数体由左花括号开始,到右花括号结束,花括号总是成对使用的。
4.return 0//返回语句
return语句表明主函数main()执行结束,并返回一个值(本例中为0),这个值就是函数的返回值,这是在程序执行没有出现任何错误的情况下最常见的程序结束方式。
二、Hello World
#include<iostream>
using namespace std;
int main(){
cout<<"Hello World"<<endl;
return 0;
}
1.编译并运行程序
程序编写完成后,依此点击“运行”——“编译运行”,检查程序是否存在错误,如果没有错,则会弹出黑窗口,并显示结果。
2.程序功能
输出Hello World通常是学习编程所写的第一个程序,它所实现的功能为让计算机输出Hello World并换到下一行。
在上述程序中,cout是C++中的标准输出流,即将“Hello World”显示在计算机屏幕上;endl的作用是换行。
三、数据类型
你可能觉得输出“Hello world”这样的程序用处不大。
我们写了好几行代码,编译,运行,引入了一大堆术语,仅在屏幕显示了两个单词。但是编程作用并不仅限于这么简单的工作,为了能够进一步编写功能更丰富的程序,我们需要学会与数据打交道。
在现实生活中我们记录人的姓名用字符表示,记录人的年龄用整数表示,记录人的体重用实数表示,看来数据要分为不同的类型。
在C++中,int和long long都能够表示整数类型的数据,两者的区别在于,能够表示的数据范围,以及在计算机中所占内存空间不同。
long long能够表示的数据范围更大,且占计算机内存更多。
float和double都能够表示小数类型的数据,两者的区别在于,能够表示的数据范围、小数精度,以及在计算机中所占内存空间不同。
double能够表示的数据范围更大,能表示的小数更加精确,且占计算机内存更多。
在编写程序时,要根据具体要求,选择合适的数据类型。
四、变量与其声明
1.什么是变量?
程序都是在计算机内存中运行的,如果把计算机内存想象为一栋楼房,那么变量就是其中的一个个房间。
如下图是内存中一块区域的示意图,其中的 a、x、r 等分别表示一个变量,可以存放一个某种类型的数据。在程序运行的过程中,这些“房间”里的数据可能随时发生变化,因此我们称之为“变量”。
2.变量定义
人将各种事务、数据记在脑海中,而计算机则将各种数据记内存中,变量在程序中所起的作用就是“计算机中数据的存储位置”。
在使用变量之前,我们必须为它起一个名字,并且指明它的数据类型,这就是变量的定义。
变量名可以由字母、数字和下划线 ( _ )组成,如a、x、x2、x_2、student_name等。
但要注意区分字母的大小写,同样的字母,大写和小写代表不同的变量名,像 age、Age 和 AGE 分别表示的是不同的变量名。
变量声明的语法格式为:数据类型 变量名
如果要定义多个同一类型的变量,可以将它们缩写在同一行中。
例如:
int a;//定义一个整型变量a
float b;//定义一个浮点型变量b
char c,d;//定义两个字符型变量c、d
五、C++输入与输出
1.输入语句
C++中的输入语句为cin语句,从键盘获取数据。
输入语句的语法格式为:cin>>变量1>>变量2>>......>>变量n;
例如:
int a;//定义一个整型变量a
float b;//定义一个浮点型变量b
char c,d;//定义两个字符型变量c、d
cin>>a>>b>>c>>d;//依次输入变量a、b、c、d
2.输出语句
C++中的输出语句为cout语句,将结果输出到计算机屏幕。输出语句有以下几种格式:
输出语句格式1:cout<<具体数值/具体数值运算;
cout<<3;//输出3
cout<<3+5;//依次输出3+5的计算结果
输出语句格式2:cout<<变量/变量之间的运算;
int a;//定义整型变量a
a=5;
cout<<a;//输出变量a的值5
cout<<a+5;//输出a+5的结果
输出语句格式3:cout<<单个字符/多个字符(字符串);
cout<<'a';//输出字符a
cout<<"Hello World";//输出字符串Hello World
六、赋值语句
一个程序中往往要使用多种数据、多个变量,且它们之间还会有各种运算关系,例如,在求长方形面积的程序中,会用到长a、宽b、面积s这三个变量,并且通过公式s=a*b 进行计算。
在 s=a*b 中,我们可以这样理解变量之间的关系:
计算 a*b 的积,像这样的由变量和运算符号等所组成的式子,我们称之为表达式。
将等号“=”右边的值赋给左边的变量,即将 a*b 的积赋给了 s,我们称之为赋值语句。
赋值语句格式:
(1)变量=具体数值
(2)变量=具体数值运算
(3)变量=变量
(4)变量=变量之间的运算
int a,b;
a=1;//将1的值赋给a
b=1+3;//将1+3的运算结果4赋给b
b=a;//将a的值赋给b,b变成了1
b=a+b;//将a+b的运算结果2赋给b
七、运算符
1.基础运算符
+、-、*、/
特别注意,在C++中,两个整数类型的数据进行除法运算,只能得到商的整数部分,例如:
int a,b;
a=4;
b=3;
cout<<a/b<<endl;//计算结果为1
如果定义了两个整数类型的数据,但想计算出完整商,可以采用以下两种方法。
方法一:数据类型自动转换
int a,b;
a=4;
b=3;
cout<<a*1.0/b<<endl;//计算结果为1.33333
方法二:强制类型转换
int a,b;
a=4;
b=3;
cout<<(double)a/b<<endl;//计算结果为1.33333
2.新运算符
(1)% 求余数
int a,b,c;
a=4;
b=3;
c=a%b;
//c的计算结果为a除以b的余数1
(2)++ 自增运算符
(3)-- 自减运算符
int a,b;
a=4;
b=3;
a++;
b--;
//a++之后的结果为5,b--之后的结果2
八、C语言输入与输出
C语言和C++都是计算机编程语言,你可以将C++语言理解为C语言的plus版本,那么我们为什么还要学习C语言的输入与输出呢?主要有两个方面的原因:
(1)运行速度更快; (2)C语言在格式控制输出方面更方便。
1.头文件
#include<cstdio>
2.格式控制符
不同的数据类型对应不同的格式控制符,下表为常见数据类型所对应的格式控制符。在C语言的输入和输出语句中,都要用到格式控制符,切记数据类型要与格式控制符一致。
3.printf输出语句
(1)基本格式
printf(格式控制,输出列表);
格式控制:双引号内是与变量顺序对应的格式控制符,以及其他需要输出的符号。
地址列表:变量顺序一定和前面格式控制符对应。
例如
int a;
long long b;
float c;
double d;
char c;
cin>>a>>b>>c>>d>>e;
printf("%d%lld%f%lf%c",a,b,c,d,e);
上述代码表示分别定义了整型变量a、长整型变量b、单精度浮点型变量c、双精度浮点型变量d、字符型变量e,并将它们按照顺序输入、输出。
(2)输出时数与数之间以空格隔开
在输出语句的格式控制部分单个格式控制符之间加上空格,例如
int a;
long long b;
float c;
double d;
char c;
cin>>a>>b>>c>>d>>e;
printf("%d% lld %f %lf %c",a,b,c,d,e);
(3)输出时每个数据占一行
在输出语句的格式控制部分单个格式控制符之间加上’\n’,例如
int a;
long long b;
float c;
double d;
char c;
cin>>a>>b>>c>>d>>e;
printf("%d%\nlld\n%f\n%lf\n%c",a,b,c,d,e);
(4)输出浮点数时保留指定小数位数
在输出语句的格式控制部分加小数点和指定数字,例如
double c;
c=3.1415926;
printf("%.2lf",c);//将3.1415926保留两位小数输出
(5)输出时数据占指定宽度
在输出语句的格式控制部分加指定数字,例如
int a,b,c;
a=13;
b=159;
c=1000;
printf("%5d %5d %5d",a,b,c);//a、b、c在输出时占5各字符宽度
4.scanf输入语句
(1)基本格式
scanf(格式控制,地址列表);
格式控制:双引号内是变量输入顺序对应的格式控制符;
地址列表:&为取地址符,“&变量名”表示某个变量的地址,顺序一定和前面对应
例如
int a;
long long b;
float c;
double d;
char c;
scanf("%d%lld%f%lf%c",&a,&b,&c,&d,&e);
printf("%d% lld %f %lf %c",a,b,c,d,e);
九、练习题
基础语法之输入输出练习
1.反向输出一个三位数题解
在本题中,需要将该三位数个位、十位、百位上的数字依次求出来,并且按照个位、十位、百位的顺序输出。
例如输入的三位数n=123,则反向输出的结果为321。
求个位数字a=n%10
求十位数字b=n/10%10
求百位数字c=n/100
2.大象喝水题解
本题需要先将小圆桶的体积求出来,然后再求20升水需要多少桶。
本题用到了一个新的函数,向上取整函数ceil(x),它的作用是取大于等于x的最小整数,是一个数学函数,需要包含头文件#include<cmath>。
例如:ceil(3.14)的结果为4,ceil(3)的结果为3。
与ceil(x)函数具有类似作用的是向下取整函数floor(x),它的作用是取小于等于x的最大整数。
例如:floor(3.14)的结果为3,floor(3)的结果为3。