C++奥赛培训第一课

[日期:2019-05-28] 作者:信息技术 次浏览 [字体: ]

解读第一个C++程序

1

2

3

4

5

6

7

#include<iostream>

using namespace std;

int main()

{

    cout<<"Nice to meet you!"<<endl;

    return 0;

}

与学习C语言一样,开头一定先给大家介绍一下C++,看看第一个简单的C++程序到底长什么样子,初步了解C++,请看如下代码:

这个程序执行后的效果就是在屏幕上打印Nice to meet you!这句话。

下面来给大家做一个简单解剖:

首先程序第一行,文件包含,包含iostream的标准库

第二行,声明使用std(标准)命名空间

第三~七行,一个C++程序有且仅有一个的主函数体,花括号内的cout<<"Nice to meet you!"<<endl;意思是像屏幕打印一句话即

1

Nice to meet you!

 然后换行,注意花括号要成对出现。

其中,return 0表示结束整个程序。

好了,到现在大家已经简单对它有一个了解,可能大家会有其他的困惑,但请大家不要着急,麻雀虽小五脏俱全,即便一个很简单的程序,也包含许多知识,为了使入门顺利,我们会尽量沿着一条主干路线学习,详细的知识后面会详细展开。

C++中的输入输出

C++程序中程序的输入输出,除了完全兼容C的写法,即使用printf和scanf函数来实现以外,C++也有自己的一套输入输出流(这里提到的流是指从某种IO设备上读入或写出的字符序列,习惯称之为“流”。)C++中的输入输出流分别用cin和cout来表示,使用之前需要调用标准库iostream,即也要开头加一句#include<iostream>,下面给大家展示如何使用cin和cout

1. cout输出流的使用

cout输出流需要搭配<<输出操作符来使用,如输出语句:

cout<<"Hello";

即会在屏幕上显示字符串Hello

本质上,是将字符串"Hello"插入到cout对象里,并以cout对象作为返回值返回,因此你还可以用<<在后面连续输出多个内容,如:

1

cout<<"Hello"<<" www.dotcpp.com";

屏幕上将显示Hello www.dotcpp.com

大家可以自行上机学习试验!

额外的,提到cout,最常用到的还有endl操纵符,可以直接将它插入到cout里,起输出换行的效果

如:

1

cout<<"Hello"<<endl<<"www.dotcpp.com"<<endl;

屏幕上会显示:

1

2

Hello

www.dotcpp.com


请新同学务必上机试验,尝试使用cout输出

2. cin输入流的使用

接收一个数据之前,都要先定义一个与之类型一致的变量,用来存放这个数据,然后利用cin搭配>>输入操作符,来接收用户从键盘的输入,如代码:

1

2

3

4

5

6

7

8

9

10

#include<iostream>

using namespace std;

int main()

{

    int a;

    cout<<"input number:"<<endl;

    cin>>a;

    cout<<"Get "<<a<<endl;

    return 0;

}

程序运行后,结果如下:

1

2

3

input number:

24

Get 24


同样的,cin也可以连续接收多个变量,如:

1

2

int a,b;

cin>>a>>b;

请大家通过亲自敲代码上机试验cin和cout的使用方法!

通过上述学习,相信大家都已经初步掌握了C++中输入输出的使用方法,可能略有不习惯,例如不需要指定输入或输出的变量类型,这源于cin和cout本身是一个类,而非函数、甚至关键字,大家务必清楚这一点。而随着今后不断深入的学习,大家会慢慢明白原因。

C++中的常用数据类型

C++中的数据类型,常用的有int、char、float、double分别表示整形、字符型、单精度和双精度实数类型,例如下面一段C++程序:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

#include<iostream>

using namespace std;

int main()

{

    int num;//学生学号

    char sex;//性别

    double score1;//科目一成绩

    double score2;//科目二成绩

    double score3;//科目三成绩

    cout<<"Please input student's ID‘M’ or ‘W’score1score2 and score3"<<endl;

    cin>>num>>sex>>score1>>score2>>score3;

    cout<<"ID:"<<num<<" "<<sex<<" Total score is:"<<score1+score2+score3<<endl;//输出该学生信息及总成绩

    return 0;

}

运行结果如下



上面为大家演示了int、char、doule几种类型的使用方法。

在C++中,数据类型都是先声明,再使用。不过在用cin和cout输入和输出数据时,不需要手动控制数据类型就可以使用,大家注意上机试验。

C++中的运算符和表达式

算数运算符(+、-、*、/、%)

自增自减运算符(++、--)

赋值运算符(=)

关系运算符(>、< 、>=、<=、!=、==)

逻辑运算符(&&、||、!)

等等

将一个三位整数的个位、十位和百位数字拆分并输出,我们可以C++如下实现:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

#include<iostream>

using namespace std;

int main()

{

    int a;//待判断的这个三位数

    int ge;//三位数中的个位

    int shi;//三位数中的十位

    int bai;//三位数中的百位

    cin>>a;

    ge = a%10;

    shi = a%100/10;

    bai = a/100;

    cout<<ge<<" "<<shi<<" "<<bai<<endl;

    return 0;

}

 

1509529855474710.png

C++的运算符、表达式和变量系统是很复杂的,我们下节课再做详细探讨!

接下来,我们来解决几道数学中的难题,或许你知道用数学方法解答它们的过程,但是你却计算不出结果,利用计算机编程会让它们变的如此简单!

思考数学解题思路,然后复制程序到C++中,看看运行结果!

1.求满足不等式1+1/2+1/3+…+1/n5的最小的n值。

#include <iostream>

using namespace std;

int main()

{

         int i=0;

         float s=0;

         while(s<5)

         {

                   ++i;

                   s+=1.0/i;

         }

         cout<<i;

         return 0;

}

2.求19921992的乘积的末两位数是多少?

#include <iostream>

using namespace std;

int main()

{

         int a=1,t=0;

         do

         {

                   ++t;

                   a=(a*92)%100;

         }

         while(t!=1992);

         cout<<a<<endl;

         return 0;

}

3.假设今天是星期日,那么过ab天后是星期几?(0<a<1000<b<10000

#include <cstdio>

using namespace std;

int main()

{

         int a,b,n,i;

         scanf("%d%d",&a,&b);

         n=1;

         for (i=1;i<=b;i++)

         n=n*a%7;

         switch(n)

         {

                   case 0:printf("Sunday");break;

                   case 1:printf("Monday");break;

                   case 2:printf("Tuesday");break;

                   case 3:printf("Wednesday");break;

                   case 4:printf("Thursday");break;

                   case 5:printf("Friday");break;

                   case 6:printf("Saturday");break;    

         }

         return 0;

}