C++讲义——第一节C++基础

第一节        C++编程基础

 

C++在语法结构上和QBASIC有着很大的区别,QBASIC语言适合大多数初学者使用,初学者在学习时不用关心变量的定义,程序的结构等诸多的细节,甚至QBASIC编程环境可以帮初学者将程序进行标准化和有一定的改错能力,让初学者可以顺利的学习程序设计的知识。但是QBASIC毕竟只是一种入门性语言,目前已经基本没有任何实用价值。对于即将进入中学的学生,将要学习的就是C++程序设计。而C++语言无论从结构要求上,还是语法的严格性上和QBASIC都有着巨大的差别。

下面简单列出C++程序的基本结构和相关语法说明。

一、C++的程序结构

【例1】分析下面的程序的功能:

#include <iostream>     //“包含命令”,向程序提供输入输出所需的一些信息

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 <iostream>

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 <iostream>

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 <iostream>

 

二、C++的数据类型及变量定义

除了完整的程序结构的要求外,C++对数据类型的要求更加严格,不在C++程序中,未定义过的变量,是无法在程序中直接使用的。而C++也对变量的类型进行了严格的归类。下面列出主要的数据类型和其数值范围。1.7*10-380~1.7*10380

类型

类型标示

字节

数值范围

短整型

short int

2

-32768~32767

整型

int

4

-2147483648~2147483647

长整型

long int

4

-2147483648~2147483647

字符型

char

1

-128~127

单精度型

float

8

-3.4*1038~3.4*1038

双精度型

double

8

-1.7*10380~1.7*10380

在把握了上面这些类型后,就可以定义不同的变量用来满足程序的使用需求。定义形式如下:

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 <cstdlib>

#include <iostream>

 

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 <cstdlib>

#include <iostream>

 

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 <cstdlib>

#include <iostream>

 

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 <cstdlib>

#include <iostream>

 

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 <cstdlib>

#include <fstream>

 

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类似。

 

作业:

    将2007年北京市小学生程序设计邀请赛的第一题,用C++完成,且要求使用文件操作。

 

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值