C++最简单的学习笔记!新人良药!

第一章、C++的初步认识

一、最简单的C++程序

例1:输出一行字符串:“this is a C++ program.”程序如下:

#include"stdafx.h"

#include<iostream>     //包含头文件iostream

using namespace std;   //使用命名空间std

void main() {

cout << "this is a C++ program.";

}

例2:求a+b的值,程序如下:

#include"stdafx.h"

#include<iostream>

using namespace std;

void main() {

int a, b;

int sum;

cout << "请输入两个数:";

cin >>a >> b;

sum = a + b;

cout << "a + b = " <<sum << endl;

}

例3:给两个数x和y,求两个数的大者。

#include"stdafx.h"

#include<iostream>

using namespace std;

int max(int a, int b) {

return a>b? a: b;

}

void main() {

int x, y;

cout << "请输入两个数:";

cin >>x >> y;

cout << "你输入的两个数的最大值为:" <<max(x, y) << endl;

}

例4:包含类的C++程序:

#include<iostream>

using namespace std;

struct student

{private:

int num;

int score;

public:

void setdata(){

cin>>num;

cin>>score;

}

void display(){

cout<<"num="<<num<<endl;

cout<<"score="<<score<<endl;

}

};

student stu1,stu2;

int main(){

stu1.setdata();

stu2.setdata();

stu1.display();

stu2.display();

return 0;

}

类中包含两个成员:数据和函数。分别称为数据成员和成员函数。(包括私有的和公用的)

类:把一组数据和有权调用这些数据的函数封装在一起形成的数据结构。它可以体现数据的封装性和信息隐藏。(具有“类”类型特征的变量称为“对象”)

二、C++程序的构成与书写形式

1、C++程序的构成:一个程序单位或多个程序单位。

2、一个程序单位的组成:预处理命令、全局声明部分、函数(每个程序中必须有且只有一个主函数)。文件可以缺少某些部分。

3、函数的组成:函数首部和函数体(包括局部声明部分和执行部分)。

4、语句:声明语句和执行语句。

5、C++和程序总是从main函数开始执行。

6、类是C++新增的重要的数据类型,它可以实现面向对象设计方法中的封装、信息隐藏、继承、派生、多态等功能。

7、C++程序的书写格式自由。

8、记得加上必要的注释。

三、C++程序的编写与实现

运行过程如下:

1、用C++ 语言编写程序(源程序)。

2、对源程序进行编译(以源程序文件为单位分别编译)。它的作用是对源程序进行词法检查和语法检查。

3、将目标文件连接(生成.exe文件)。

4、运行程序。

5、分析运行结果。

02

第二章、数据类型与表达式

一、C++的数据类型

数据:计算机处理的对象,它是以某种特定的形式存在的。

数据结构:数据的组织形式。

C++可以使用的数据类型如下:

(1)、整型:long int、int、short int

(2)、整型的存储方式为二进制数形式存储。

(3)、在整型符号和字符型符号前面可以加修饰符signed或unsigned。

(4)、浮点型:float、double、long double.

一、常量

    数值常量:也叫常数。常量无unsigned型。其中有整数、浮点数。

字符常量:普通字符常量:用单撇号括起来的一个字符。(只能包含一个字符,区分大小写、撇号是定界符,不属于字符常量的一部分)。

转义字符常量:以“\”开头的字符序列。

字符数据是以ASCII码存储的,存储形式与整数的存储形式类似。

例2.1 将字符赋给整型变量:

#include "stdafx.h"

#include<iostream>

using namespace std;

int main()

{

int i, j;

i = 'A';

j = 'B';

cout <<i << ' ' <<j << endl;

    return 0;

}

     字符串常量:用双撇号括起来的部分。

    符号常量:就是C语言中宏定义的常量。

二、变量

标识符:用来标识变量、符号常量、函数、数组、类型等实体名字的有效字符序列。它只能由字母、数字和下划线3种字符组成、且第一个字符不能是数字。

定义变量:变量类型 变量名表列(一个或多个变量名的序列)

C++要求对变量做强制定义的目的是:

(1)、凡未被事先定义的,不作为变量名,这就能保证程序中变量名使用得正确。

(2)、每一个变量被指定义为一确定类型,在编译时就能为其分配相应的存储单元。

(3)、指定每一变量属于一个特定的类型,这就便于在编译时,据此检查该变量所进行的运算是否合法。

允许对变量进行初始化。

常变量:在定义变量时,前面加上const。这样的变量在程序运行期间值不能改变。(又称只读变量)

三、逗号运算符与逗号表达式

逗号表达式:又称顺序求值运算符。其一般形式是:表达式1,表达式2

例如:a=2,3*6

03

第三章、程序设计初步

一、面向过程的程序设计和算法

面向过程的程序可以描述为:算法+数据结构。

算法的表示:自然语言、流程图、伪代码。

二、C++程序和语句

组成部分:预处理命令、声明部分、函数。

程序应该包括数据描述(由声明语句来实现)和数据操作(由执行语句来实现)。

语句:C++程序中最小的独立单位。可以分为声明语句、执行语句、空语句、复合语句、赋值语句。

三、C++的输入与输出

C++的输出和输入是用“流(stream)”的方式实现的。

在定义流对象时,系统会在内存中开辟一段缓冲区,用来暂存输入输出流的数据。在执行cout语句时,先把插入的数据顺序存放在输出缓冲区中,直到输出缓冲区满或遇到cout语句中的endl(或’\n’,ends,flush)为止,此时将缓冲区中已有的数据一起输出,并清空缓冲区。输出流中的数据在系统默认的设备(一般为显示器)输出。

在用cout输出时,用户不必通知计算机按何种类型输出,系统会自动判别输出数据的类型,使输出的数据按相应的类型输出。

在输入流与输出流中使用控制符:(加上头文件iomanip)例子如下:

double a=123.4567890123456;

cout<

cout<

cout<

cout<

cout<

测试代码如下:

#include"stdafx.h"

#include<iostream>

#include<iomanip>

using namespace std;

void main() {

double a = 123.456;

double b = 3.14159;

double c = -4754.45;

cout << setiosflags(ios::fixed) << setiosflags(ios::right) << setprecision(2);

cout <<setw(10) <<a << endl;

cout <<setw(10) <<b << endl;

cout <<setw(10) <<c << endl;

}

运行结果如下:

 使用getchar和putchar函数进行字符的输入和输出:

(1)、putchar():向终端输出一个字符。

(2)、getchar():从终端(或系统隐含指定的输入设备)输入一个字符。

用scanf和printf函数进行输入和输出:和C语言一样。

一、编写顺序结构的程序

    顺序结构的程序中的各执行语句是顺序执行的。

习题解答:

第一题:用公式PI/4=1-1/3+1/5-1/7...来计算PI的近似值(到10-7为止):

#include"stdafx.h"

#include<iostream>

#include<iomanip>

using namespace std;

void main() {

double s, t, sum;

double i;

sum = 0;

t = 1;

for (i = 1; 1 / i >= 1e-7; i += 2) {

s = t * i;

sum += 1 / s;

t = -t;

}

cout << "PI的值为:" << setprecision(9)<<4 * sum << endl;

}

 第二题:求Fibonacci数列前40个数。这个数列的特点为:第1、2个数都为1,从第3个数开始,每个数是前面两个数之和。

#include"stdafx.h"

#include<iostream>

#include<iomanip>

using namespace std;

int Fibonacci(int x) {

if (x == 1)

return 1;

if (x == 2)

return 1;

else if (x >= 3)

return Fibonacci(x - 1) + Fibonacci(x - 2);

}

void main() {

int i;

long k;

cout << "Fibonacci数列的前40个数如下:" << endl;

for (i = 1; i <= 40; i++) {

k = Fibonacci(i);

cout <<setw(10) << k;

if (i % 8 == 0)

cout << endl;

}

}

运行结果如下图:

第三题:有一对兔子, 从出生后第 3个月起每个月都生一对兔子。 小兔子长到第3个月后每个月又生一对兔子。 。  假设所有兔子都不死,问每个月的兔子总数为多少?

#include"stdafx.h"

#include<iostream>

#include<iomanip>

using namespace std;

int Fibonacci(int x) {

if (x == 1)

return 1;

if (x == 2)

return 1;

else if (x >= 3)

return Fibonacci(x - 1) + Fibonacci(x - 2);

}

void main() {

int i;

long k;

cout << "十二个月中的兔子数量如下:" << endl;

for (i = 1; i <= 12; i++) {

k = Fibonacci(i);

cout <<setw(10) << k;

if (i % 6 == 0)

cout << endl;

}

}

程序运行结果如下:

第四题:找出100-200间的全部素数:

#include"stdafx.h"

#include<iostream>

#include<iomanip>

#include<cmath>

using namespace std;

int is_primeNumber(int x) {

int i;

if (x == 1)

return 0;

if (x == 2||x==3)

return 1;

else if (x >= 4) {

for(i = 2; i <= int(sqrt(x)); i++) {

if (x%i == 0)

return 0;

}

return 1;

}

}

void main() {

int i;

int count = 0;

for (i = 100; i <= 200; i++) {

if (is_primeNumber(i) == 1) {

cout <<setw(5) << i;

count++;

if (count % 6 == 0)

cout << endl;

}

}

cout << endl;

}

对于移位密码的程序,要注意最后一位的处理。(即大于z或Z的情况)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值