第一节 C++编程基础
C++在语法结构上和QBASIC有着很大的区别,QBASIC语言适合大多数初学者使用,初学者在学习时不用关心变量的定义,程序的结构等诸多的细节,甚至QBASIC编程环境可以帮初学者将程序进行标准化和有一定的改错能力,让初学者可以顺利的学习程序设计的知识。但是QBASIC毕竟只是一种入门性语言,目前已经基本没有任何实用价值。对于即将进入中学的学生,将要学习的就是C++程序设计。而C++语言无论从结构要求上,还是语法的严格性上和QBASIC都有着巨大的差别。
下面简单列出C++程序的基本结构和相关语法说明。
一、C++的程序结构
【例1】分析下面的程序的功能:
#include //“包含命令”,向程序提供输入输出所需的一些信息
using namespace std; //“使用标准的命名空间”
int main()
{
cout<<“This is a C++ program.”; //输出This is a C++ program.
cout<<endl; //输出回车
system(“pause”); //DOS屏幕处于等待状态
return 0; //结束主函数并将值返回值
}
【例2】 分析下面的程序的功能:
#include
using namespace std;
int main()
{
int x,y,sum; //声明(定义)变量x,y,sun为整型数
cout<<"Input first integer: x="; //输出(显示)提示信息
cin>>x; //从键盘上输入一个整数并存储在变量x中
cout<<"Input second integer: y="; //显示提示信息
cin>>y; //从键盘上输入变量y的值
sum=x+y; //求x,y的和并存储在变量sum中
cout<<"Sum is "<<sum<<endl; //输出结果
system("pause");
return 0;
}
【例3】 输入两个整数a和b,输出其中较大的一个数。
#include
using namespace std;
int max(int a,int b) //自定义函数
{
If (a>b)
return a;
else
return b;
}
int main()
{
int a,b,m;
cout<<"Input a,b:";
cin>>a>>b;
m=max(a,b); //函数调用语句
cout<<"max="<<m<<endl;
system("pause");
return 0;
}
通过以上例题,可以看出C++程序的结构有以下特点:
(1)C++程序由一个或多个函数组成(即函数是C++程序的基本构成单位)
其中必须有且只能有一个主函数main(),程序从主函数开始执行,由主函数来调用其它函数。被调用的其它函数可以是系统提供的库函数,也可以是用户自定义的函数。例如,例3的C++程序就是由主函数main()和用户自定义函数max()组成的。
(2)C++函数组成
① 函数说明部分:函数类型、函数名、函数参数(函数参数类型,函数参数名)
函数类型为函数返回值的类型,函数参数可以没有,也可以有多个。
② 函数体{}:变量定义和执行语句两部分。
(3)语句和数据说明以分号结束,分号是C++语句的必要组成部分。例如:int z;
(4)程序书写规则
① 同一层语句同列书写。同一层次的开花括号最好与对应的闭括号在同一列上。
② 内层语句缩进两个字符的位置。
③ 函数定义第一列书写。
(5)C++输入/输出通过流cin和cout来实现的
例如: cin>>a>>b; 用来输入变量a和b的值。
又例如: cout<<“max=”<<m<<endl; 用来输出变量m的值。
(6)严格区分字母的大小写
例如:int a,A; 表示定义两个不同的变量a、A。
(7)注释
① /* 注释内容 */ ② // 注释内容(单行注释)
它表示从此开始到本行结束为注释内容。例如://说明变量x,y,sun为整型数
(8)编译预处理命令
以“#”开头的行称为编译预处理命令。例如:#include
二、C++的数据类型及变量定义
除了完整的程序结构的要求外,C++对数据类型的要求更加严格,不在C++程序中,未定义过的变量,是无法在程序中直接使用的。而C++也对变量的类型进行了严格的归类。下面列出主要的数据类型和其数值范围。1.710-380~1.710380
类型
类型标示
字节
数值范围
短整型
short int
2
-32768~32767
整型
int
4
-2147483648~2147483647
长整型
long int
4
-2147483648~2147483647
字符型
char
1
-128~127
单精度型
float
8
-3.41038~3.41038
双精度型
double
8
-1.710380~1.710380
在把握了上面这些类型后,就可以定义不同的变量用来满足程序的使用需求。定义形式如下:
int a;
long int b;
float f;
int shu1,shu2,shu3;
均是可以的。
三、C++的输入/输出语句
在程序设计中,最最基础的就是输入输出命令。在C++中对输入输出语句都相应的做了简化。如输入语句cin,就是可以从键盘上得到一个值存储在指定的变量中。它的使用形式如下:
int a;
cin>>a;
或
int a,b;
cin>>a>>b;
然后可以再利用输入进来的值,进行相关运算。
而输出语句cout,就是可以将相应的值或字符等数据输出到屏幕上,它的使用形式如下:
int a;
a=100;
cout<<a*100;
四、C++的算术运算符
C++和其他的语言一样有几个极其重要的算术运算符,但是这些运算符有着重要的特点。
符 号
说明
加法运算,如3+2
减法运算,如3-2
乘法运算,如3*2
/
除法运算,如3/2
%
取余运算,如3%2。因为为取余运算,所以%左右两边的数据必须为整数
这其中需要特殊说明的是,除法运算符,“/”。因为在C++中没有单独的整除符号,所有在处理整除时,采取一个特殊的方法,即:两个整数相除的结果为整数。如5/3的结果值为1,舍去小数部分。但是,如果除数或被除数中有一个为负值,则舍入的方向是不固定的。例如,-5/3在有的C++系统上得到的结果为-1,有的C++系统则给出结果-2。但多数编译系统采取“向零取整”的方法,即5/3的值等于1,-5/3的值为-1,取整后向零靠拢。
(特别需要说明的是,在DEV-C++中就是采取这种向零靠拢的形式,请各位选手一定注意。)
【例4】
#include
#include
using namespace std;
int main(int argc, char *argv[])
{
int n;
n=5/3;
cout<<n;
system("PAUSE");
return EXIT_SUCCESS;
}
在例4中,我们求的是5/3,因为5和3都是整数,且n的类型也为整数,所有输出的n值为1。如果采取下面的变化,将n的类型改为float类型(实数)。则因为上面阐述的除法规则,得到的n值仍然为1。如【例5】所示。
【例5】
#include
#include
using namespace std;
int main(int argc, char *argv[])
{
float n;
n=5/3;
cout<<n<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}
但是,如果我们需要除的值为实数时,该如何处理呢?这就需要改变“/”号两边的值的类型,达到这样的变化。如【例6】所示。
【例6】
#include
#include
using namespace std;
int main(int argc, char *argv[])
{
float n;
n=5/3.0;
cout<<n<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}
只是将5/3改为了5/3.0,看起来好像没什么变化,但是实质上,数据的类型就改变了。造成的结果也就不同。
上面举出了C++中的基本运算符,在C++中不但有这些其他语言中有类似的运算符,还有两个很有C++代表意义的运算符,就是自加运算符(++)和自减运算符(–)。
++和–是C++很有特点的运算符号,一个变量使用自加或自减运算符很类似于对这个变量做一次+1或-1的运算,如i++;很类似于i=i+1;但是有不完全相同,++或–符号可以放在变量之前也可以放在变量之后,但是具体操作起来的效果有着很大的不同。
【例7】
#include
#include
using namespace std;
int main(int argc, char *argv[])
{
int x,y;
int m,n;
x=1;
y=1;
m=x++;
n=++y;
cout<<m<<endl<<n<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}
输出的结果是m的值为1,而n的值为2,但是如果我们增加x和y值的显示会发现x和y的值都变成了2。这就能够体现出自加(或自减)运算符放在变量前后的区别。放在变量前,代表要先进行自加(或自减),再给左面的变量赋值;而放在变量后面时,则需要先把变量的值提取出来给“=”号左边的变量赋值,然后再对自加(或自减)变量做加(或减)的操作。
但如果自加或自减运算符作为一个单独的语句来使用,则其效果是完全一致的。如下:
x=1;
y=1;
x++;
y++;
cout<<x<<endl<<y<<endl;
这样的使用就只相当于最基本的x=x+1;y=y+1;的使用了。
五、C++的文件操作
C++的文件操作,要比QBASIC方便的多,它的读取路径和存储.cpp文件的路径一致。需要说明一下,如果采用新建工程的方法的话,则默认和工程文件所在目录一致。所以建议新建工程并保存.cpp文件后,关闭整个DEV-C++环境,再打开.cpp文件进行操作,这样就不会因为目录问题对文件的读取操作有任何的影响了。
在C++对文件的操作要定义文件操作命令,且需要引用fstream头文件。
【例8】
#include
#include
using namespace std;
ifstream fin(“file.in”);
ofstream fout(“file.out”);
int main(int argc, char *argv[])
{
int x,y;
int m,n;
fin>>x>>y>>m>>n;
fout<<x+1<<endl<<y+1<<endl<<m+1<<endl<<n+1<<endl;
return EXIT_SUCCESS;
}
在【例8】中,将默认的iostream调用改为了fstream的调用,这是因为文件的读写命令是包含在fstream头文件中的,而如果程序中不使用cin或cout就可以不用调用iostream了。在例题中通过
ifstream fin(“file.in”);
ofstream fout(“file.out”);
两句语句定义了两个类似与cin和cout的命令fin和fout,并且把这两个命令和输入文件”file.in”及输出文件”file.out”相关联。输入文件应该和例题的.cpp文件在同一个目录下,而输出文件也会出现在相同目录中。而关联后的fin和fout命令的使用几乎完全和cin及cout类似。
————————————————
版权声明:本文为CSDN博主「fatship」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/fatship/article/details/85244353