c++基础

第一节 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

posted @ 2020-01-13 19:03  Aeterna_Gungnir  阅读(138)  评论(0编辑  收藏  举报