黑马程序员匠心之作|C++教程从0到1入门编程,学习编程不再难_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili​www.bilibili.com
f2d3523914fd56f0db4ddf5f79df4330.png

1.1 第一个C++程序

#include<iostream>
using namespace std;

int main()
{ 
	cout << "hello C++" << endl;

	system("pause");

	return 0;

}

ad442d651dd61b7f149976b570ce156f.png

1.2 程序的注释

1、单行注释:"//"

2、多行注释:"/" ......"*/"

1.3 变量

作用:给一段指定的内存空间起名,方便操作这段内存

语法:数据类型 变量名 = 变量初始值;如 int a = 10;

1.4 常量

作用:用于记录程序中不可更改的数据

1、#define 宏常量:#define 常量名 常量值(通常在文件上方定义)

#include<iostream>
using namespace std;

#define Day 7//注意,后面不能加",",否则报错

int main()
{ 
	cout << "一周总共有:"<<Day << "天" << endl;
	system("pause");
	return 0;
}

efb015cc4999559ecf030e002d01187f.png

2、const修饰的变量:const 数据类型 常量名 = 常量值(在变量前加const,不可修改)

1.5 关键字

作用:关键字是C++中预先保留的单词(标识符)

19394adc5921ddf36f8f37dd8d76025f.png

1.6 标识符命名规则

作用:给标识符(变量、常量)命名时,有一套自己的规则

1、标识符不能是关键字。

2、标识符只能由 字母、数字、下划线(不能有空格)

3、第一个字符必须为 字母或下划线(不能为数字)

4、标识符中字母区分大小写

2数据类型

C++规定在创建一个变量或常量时,必须要指定相应的数据类型,否则无法分配内存

2.1 整型

bceebb63af53af943212cb196c289a44.png
区别,占用内存空间不同

2.2 sizeof 关键字

作用:利用sizeof可以统计数据类型所占内存大小

语法:sizeof(数据类型/变量)

#include<iostream>
using namespace std;

#define Day 7//注意,后面不能加",",否则报错

int main()
{ 
	
	//整型:short(2)、int(4)、long(2)、long long(8)

	short num1 = 10;
	cout << "short占用内存空间为:" << sizeof(num1) << endl;
	//cout << "short占用内存空间为:" << sizeof(short) << endl;//效果相同
	system("pause");

	return 0;
}

f8d3ba1a3f9fa68b74a9e87fad390066.png

2.3 实型(浮点型)

作用:用于表示小数

浮点型变量分为两种:单精度float、双精度double

默认情况下,输出一个小数,会显示6位有效数字

847458515fe647db6148dc23def5daff.png
区别在于表示的有效数字范围不同

如float f1 = 3.14f;(‘默认’为双精度double,加‘f’则为float单精度)

如float f2 = 3e2;//3 * 10^2,科学计数法

2.4 字符型

作用:用于显示单个字符

语法:char ch = 'a';(注意,‘单引号’,而且里面只能由一个字符)

(1)C和C++中字符变量只占用1个字节

(2)字符型变量不是把字符本身放到内存中存粹,而是将对应的ASCII编码放入存储单元

(3)字符型变量对应的ASCII编码:cout << (int)ch <<endl;

2.5 转义字符

作用:用于表示一些不能显示出来的ASCII字符

现阶段我们常用:‘n’换行、‘’反斜线字符、‘t’水平指标(TAB)

2.6字符串型

作用:用于表示一串字符

语法:

1、C风格:char 变量名[] = “字符串值”

如:char str1[] = "hello world";//注意添加中括号‘[ ]’,注意后面用双引号,区别字符型

2、C++风格:string 变量名 = “字符串值”

如:string str2 = "hello world";//注意,需要 #include<string> 的头文件

2.7 布尔类型 bool

作用:不二数据类型代表真或假的值

占用1个字节。true(真,1)、false(假,0)

2.8 数据的输入

作用:用于从键盘获取数据

关键字:cin

语法:cin >> 变量

#include<iostream>
using namespace std;

#define Day 7//注意,后面不能加",",否则报错

int main()
{ 
	int a = 0;				//赋初值,注意变量类型
	cout << "请给整型变量a赋值:" << endl;
	cin >> a;				//注意,右方向
	cout << "整型变量a = :" << a << endl;
	
	system("pause");

	return 0;
}

ca33b57fe0adda82c227ae9e7fe5047e.png
#include<iostream>
using namespace std;
#include<string>//包含字符串的头文件

#define Day 7//注意,后面不能加",",否则报错

int main()
{ 
	string str = "hello";								//赋初值,注意变量类型
	cout << "请给字符串 str赋值" << endl;
	cin >> str;								//注意,右方向
	cout << "字符串str = " << str << endl;
	
	system("pause");

	return 0;
}

ca6e8f512a2f5d9ebac5159f55e0a8e7.png

3运算符

作用:用于执行代码的运算

91742a4892b909163205a481a67395d5.png

3.1算术运算符

作用:用于处理四则运算

e29e6300ddced98cd8fb5cd851c2fb32.png

3.2 赋值运算符

作用:用于将表达式的赋值给变量

2c6a65f78a318398ce0393d9ced3621a.png

3.3 比较运算符

作用:用于表达式的比较,并返回一个真值或假值

51d55123af434e1663a76ff55648e723.png

3.4 逻辑运算符

作用:用于根据表达式的值返回真值或假值

b7afb6154f19b9975f3b26953e935589.png

4程序流程结构

C/C++支持最基本的三种运行结构:顺序结构、选择结构、循环结构

4.1 选择结构

4.1.1 if 语句

作用:执行满足条件的语句

三种形式:

1、单行格式 if 语句

c5a3de5dc19270035c6e0e2ba0cd6820.png
单行格式 if 语句
#include<iostream>
using namespace std;
#include<string>//包含字符串的头文件

#define Day 7//注意,后面不能加",",否则报错

int main()
{ 
	//选择结构 单行if语句
	//用户输入分数,如果分数大于600,视为考上一本,在屏幕上输出

	//1、用户输入分数
	int score = 0;
	cout << "请输入一个分数:" << endl;
	cin >> score;
	//2、打印用户输入的分数
	cout << "您输入的分数为:" << score << endl;
	//3、判断分数是否大于600,若大于,则输出
	if (score > 600)
	{
		cout << "恭喜您考上了一本大学" << endl;
	}
	
	system("pause");

	return 0;
}

523b2e5fd94a83252a5a40c13f5aed73.png

2、多行格式 if 语句

2a746df1f4fa4db0abec2de59c599a26.png
多行格式 if 语句

3、多条件的 if 语句

8cf71f8935a070d2cb34c744d514577c.png
多条件的 if 语句

4、嵌套if语句:在 if 语句中,可以嵌套使用 if 语句,达到更精确的条件判断

如下面第三个需求:

c1c013b83967829cd82275359c8f1fb8.png

5、三只小猪谁最重,例题(有bug,不能出现相等)

f96d5b5f41afed56081b481a90123738.png
#include<iostream>
using namespace std;

int main()
{ 
	//1、用户输入三只小猪的体重
	int A = 0; int B = 0; int C = 0;
	cout << "请输入A猪的重量(KG):" << endl;
	cin >> A;
	cout << "请输入B猪的重量(KG):" << endl;
	cin >> B;
	cout << "请输入C猪的重量(KG):" << endl;
	cin >> C;
	//2、先判断A和B谁重,若A重,A与C比较,若A重,则A最重
	//3、先判断A和B谁重,若A重,A与C比较,若C重,则C最重
	//3、先判断A和B谁重,若B重,B与C比较,若B重,则B最重
	//3、先判断A和B谁重,若B重,B与C比较,若C重,则C最重
	cout << "A猪重:" << A << endl;
	cout << "B猪重:" << B << endl;
	cout << "C猪重:" << C << endl;
	if (A > B)
	{
		if (A > C)
		{
			cout << "A猪最重:" << endl;
		}
		else
		{
			cout << "C猪最重:" << endl;
		}
	}
	else
	{
		if (B > C)
		{
			cout << "B猪最重:" << endl;
		}
		else
		{
			cout << "C猪最重:" << endl;
		}
	}
	
	system("pause");

	return 0;
}

b82ed314dd5834b099d1f0552e8fbd39.png

4.1.2 三目运算符

作用:通过三目运算符实现简单的判断

语法:表达式1 ?表达式2 :表达式3

解释:

若表达式1为真,执行表达式2,并返回表达式2的结果

若表达式1为假,执行表达式3,并返回表达式3的结果

#include<iostream>
using namespace std;

int main()
{ 
	//创建三个变量 a b c
	//将a和b作比较,将变量大的赋值给变量c

	int a = 10; int b = 20; int c = 0;

	c = (a > b ? a : b);//a>b若为真,取a,若为假,取b
	(a > b ? a : b) = 100;//a和b谁赋值通过a>b来判断

	cout << "a = " << a << endl;
	cout << "b = " << b << endl;
	
	system("pause");

	return 0;
}

edd57b9dc293791014b3912c54d9abf5.png

4.1.3 switch语句

作用:执行多条件分支语句

语法:

d2152cf0bb743883959cfa2805f80b06.png

4.2 循环结构

4.2.1 while循环语句

作用:满足循环条件,执行循环语句

语法:while( 循环条件 ){ 循环语句 }

ca2650c6c1b7de68f9dfc25481a5fc7d.png

练习:猜数字

cda2447527c44911ef8b943f7de13a95.png
#include<iostream>
using namespace std;
//time系统时间头文件包含
#include<ctime>

int main()
{
	//添加随机数种子,利用当前系统时间生成随机数,防止每次随机数都一样
	srand((unsigned int)time(NULL));
	//1、系统生成随机数
	int player = 0;
	int num = rand() % 100 + 1;	//rand()%100生成一个0~99的随机数(伪随机)
	cout << num << endl;
	//2、玩家进行猜测
	while (1)
	{
		cout << "请输入您的猜测值(整数)" << endl;
		cin >> player;
		//3、判断玩家猜测
		if (num == player)
		{
			//4、猜对,退出
			cout << "猜对了,您太棒了" << endl;
			break;
		}
		else
		{
			//5、猜错,提示猜的结果是过大或国小,重新返回2
			if (num > player)
			{
				cout << "猜测值偏小,加油" << endl;
			}
			else
			{
				cout << "猜测值偏大,加油" << endl;
			}
		}
	}
		
	system("pause");

	return 0;
}

6d43307b0070db70a1e4521084484cc0.png

4.2.2 do...while循环语句

作用:满足循环条件,执行循环语句

语法:do { 循环语句 } while ( 循环条件 );

be900599acb8a82a28f7582df326c53f.png

练习:水仙花数

da94c880c62929b0a95543a9f29a0002.png
#include<iostream>
using namespace std;

int main()
{
	//水仙花数
	//1、打印所有三位数
	int num = 100;
	do
	{
		//2、从所有三位数中找到水仙花数
		int a = num % 10;	//个位
		int b = num/10 %10;	//十位
		int c = num/100;	//百位
		if (a*a*a + b*b*b + c*c*c == num)
		{

			cout << num << endl;
		}
		
		num++;
	} while (num < 1000);
			
	system("pause");

	return 0;
}

ecff970bd8d8387a12310133ead31ad3.png

4.2.3 for 循环语句

作用:满足循环条件,执行循环语句

语法:for(起始表达式;条件表达式;末尾循环体){ 循环语句;}

例题:敲桌子

84d0f23eb3b48eef458bf40c3c6e8ea0.png
#include<iostream>
using namespace std;

int main()
{
	//敲桌子
	for (int i = 1; i < 101; i++)
	{
		//个位数7,十位数7,7的倍数
		if (i%10 == 7 || i/10%10 ==7 || i%7 ==0)
		{
			cout << "敲桌子" << endl;
		}
		else
		{
			cout << i << endl;
		}
	}
			
	system("pause");

	return 0;
}

4.2.4 嵌套循环

作用:在循环体嵌套一层循环,解决一些实际问题

7a5db687b92dd5c828936f6182b0f114.png
#include<iostream>
using namespace std;

int main()
{
	//利用嵌套循环实现星图
	for (int i = 0; i < 10; i++)
	{
		//外层执行一次,内层执行一周
		for (int j = 0; j < 10; j++)
		{
			cout << "* " ;			//”*+空格“
		}
		cout << endl;				//回车换行
	}
			
	system("pause");

	return 0;
}

例题:乘法口诀表

6ebd246c81805bcee870509cc963876e.png
#include<iostream>
using namespace std;

int main()
{
	//乘法口诀表
	for (int i = 1; i < 10; i++)
	{
		for (int j = 1; j <= i; j++)		//打印的列数小于行数!!!
		{
			int product = i * j;
			cout << j << "*" << i << "=" << product <<" ";
		}
		cout << endl;
	}
			
	system("pause");

	return 0;
}

4.3 跳转语句

4.3.1 break语句

作用:用于跳出选择结构或者循环结构

使用时机:

1、出现在 switch 条件语句中,作用是终止 case 并跳出 switch

2、出现在循环语句中,作用是跳出当前的循环语句

4、出现在嵌套循环中,跳出最近的内层循环语句

4.3.2 continue语句

作用:在循环语句中,跳过本次循环中余下尚未执行的语句,继续执行下一个循环

d54e93e170a0101b48c28e19534c2479.png
只输出偶数

4.3.3 goto 语句

作用:可以无条件跳转语句

语法:goto 标记;

解释:如果标记的名称存在,执行到 goto 语句时,会跳转到标记的位置

1cf9d0d27230fc4c7309ec2668a7b2a8.png

1-4章结束

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐