C++基础入门级别

C++基础入门

1 C++初识

1.1第一个C++程序

代码格式:

#include<iostream>//头文件

using namespace std;//使用标准文库

int main()

{

cout<<"hello world"<<endl;//cout 输出 endl 换行

system("pause");//屏幕暂停

return 0;

}

1.2注释

1.单行注释:// 行代码说明 放在代码上方或一条语句后面

2.多行注释:/* …*/ 段代码说明 放在代码上面

1.3变量

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

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

1.4常量

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

C++定义常量的两种方式(与c相同)

1.#define 宏常量:#define 常量名 常量值

  • 通常在文件上方定义,表示一个常量

2.const修饰的变量 const 数据类型 常量名=常量值

  • 通常在变量定义前加const,修饰该变量为常量不可修改

示例:

#include<iostream>
using namespace std;
//宏定义不可修改 
#define Day 7
int main()
{
    //Day为常量修改会报错 
cout<<"一周共有:"<<Day<<"天"<<endl;

//const修饰的变量为常量 
const int a=10;
cout<<a<<endl; 
system ("pause") ;
return 0;
     } 

1.5关键字

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

  • 在定义变量或者常量时,不要用关键字

C++关键字如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SZqGhsoo-1617370508935)(C:\Users\徐老帅哥\AppData\Roaming\Typora\typora-user-images\image-20210301110328008.png)]

1.6标识符命名规则

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

  • 标识符不能是关键字
  • 标识符只能由字母、数字、下划线组成
  • 第一个字符必须为下划线或字母
  • 标识符中字母区分大小写

建议:给标识符命名时,争取做到见名知章的效果,方便自己和他人阅读(英语基础要扎实)

2 数据类型

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

2.1整型

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hz034ccR-1617370508954)(C:\Users\徐老帅哥\AppData\Roaming\Typora\typora-user-images\image-20210301112325673.png)]

短整型的取值范围是(-32768–32767) 超过则数据溢出从头开始

整型大小比较:short<int<=long(windows-4字节;linus-8字节)<=long long

2.2sizeof关键字

作用:利用sizeof关键字可以统计数据类型所占大小

语法:sizeof(整型类型 / 变量)(/或者)

示例:

#include<iostream>
using namespace std;
int main()
{
	cout<<"short占用空间内存为:" <<sizeof(short)<<endl; 
	cout<<"int占用空间内存为:" <<sizeof(int)<<endl; 
	
	long a=10;
	cout<<"long占用空间内存为:" <<sizeof(a)<<endl; 
	cout<<"long long用空间内存为:" <<sizeof(long long)<<endl; 
	
	system ("pause") ;
	return 0;
 } 

2.3实型

作用:用于表示小数

浮点型变量分为两类:

1.单精度float

2.双精度double

两者区别在于表示的有效数字不同。默认情况下输出一个小数会显示出6位有效数字

数据类型 占用空间 有效数字范围
float 4字节 7位有效数字
double 8字节 15-16位有效数字

float a=3.214f;(最好带f表示float)

科学计数法:3e2= 3* 10*10(10的平方)

2.4字符型

作用:字符型变量用于显示单个字符

语法:char ch = 'a';

注意1:在显示字符型变量时,用单引号将字符括起来,不要用单引号

注意2:单引号内只能有一个字符,不可以是字符串

C和C++中的字符型变量只占用一个字节。

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

char ch=‘a’;(a:97 ; A:65)

cout<<(int)ch<<endl;

output:97

ASCII表

image-20210301120014245

image-20210301120225285[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XWIeXiOz-1617370508965)(C:\Users\徐老帅哥\AppData\Roaming\Typora\typora-user-images\image-20210301120342895.png)]

image-20210301120501576

2.5转义字符

作用:用于表示一些不能显示出来的**ASCII字符(c语言为/n)

现阶段常用:\n(换行) \ \(代表一个反斜杠\) \t(水平制表(HT)跳到下一个TAB 8个字符位置)

对齐 \t

示例:

#include<iostream>
using namespace std;
int main()
{
	cout<<"aaaa\t helloworld"<<endl;
	cout<<"aa\t helloworld"<<endl;
	cout<<"aaaaaa\t helloworld"<<endl;
	return 0;
}

运行结果:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fK9Fecrj-1617370508979)(C:\Users\徐老帅哥\AppData\Roaming\Typora\typora-user-images\image-20210301141211480.png)]

2.6字符串型

作用:用于表示一串字符

两种风格

1.C版本:char 变量名[ ] = "字符串值"

示例:

int main()
{
	char str1[]="hello world";
	cout<<str1<<endl;
	
	system("pause");
	
	return 0;
 } 

注意:C风格的字符串要用双引号括起来

2.C++风格:要加 #include 头文件

string 变量名 = “字符串值”

示例:

string str2="hello world";

2.7布尔类型 bool

作用:布尔数据类型代表真或假的值

bool类型只有两个值:

  • true----真 (本质是1)
  • false—假(本质是0)

bool类型只占一个字节大小

示例:

int main(){
	
	//1.创建bool数据类型 
	bool flag = true;//true代表假 
	cout<<flag<<endl;
	
	flag = false;//false代表假 
	cout<<flag<<endl;
	
	//2.查看bool类型所占内存 
	cout<<"bool所占空间大小为 :"<<sizeof(bool)<<endl;
	
	system("pause");
	return 0; 

}

2.8数据的输入

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

关键字:cin

语法:cin>> 变量

示例:

int main(){
	//1.整型
	int a=0;
	cout<<"请输入一个整型:"<<endl;
	cin>>a;
	cout<<"整型 a ="<<a<<endl; 
	
	//2.浮点型
	float f=0;
	cout<<"请输入一个浮点型:"<<endl;
	cin>>f;
	cout<<"float="<<f<<endl;
	
	//3.字符型
	char ch='a';
	cout<<"请输入一个字符型:"<<endl;
	cin>>ch;
	cout<<"char="<<ch<<endl;
	
	//4.字符串型 
	string str1="as";
	cout<<"请输入一个字符串型:"<<endl;
	cin>>str1;
	cout<<"str1="<<str1<<endl;
	
	//5.bool类型 
	bool flag=false;
	cout<<"请给布尔类型赋值:" <<endl;
	cin>>flag;//非0都为真值 
	cout<<"布尔类型的值为:" <<flag<<endl;	
	return 0;
} 

3 运算符

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

运算符类型 作用
算术运算符 用于处理四则运算
赋值运算符 用于将表达式的值赋给变量
比较运算符 用于表达式比较,并返回一个真值或假值
逻辑运算符 用于根据表达式的值返回真值或假值

3.1算术运算符

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XvkclO2i-1617370508985)(C:\Users\徐老帅哥\AppData\Roaming\Typora\typora-user-images\image-20210302122921934.png)]

注意:

1.a++:先传递a的值再将a+1

2.两个数相除为0,不能取模 %

3.两个小数不可以做取模运算

4.只有整型变量才可以进行取模运算

3.2赋值运算符

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YARk3VXU-1617370509095)(C:\Users\徐老帅哥\AppData\Roaming\Typora\typora-user-images\image-20210302124458953.png)]

3.3比较运算符

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HzQvZev7-1617370509102)(C:\Users\徐老帅哥\AppData\Roaming\Typora\typora-user-images\image-20210302124408833.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KXNt0zSW-1617370509110)(C:\Users\徐老帅哥\AppData\Roaming\Typora\typora-user-images\image-20210302124329441.png)]

3.4逻辑运算符

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

逻辑运算有以下符号

运算符 术语 示例 结果
!a 如果a为假,则!a为真;反之相反
&& a&&b 如果a,b都为真,则结果为真;否则为假
|| a||b a,b其中一个为真,则结果为真

C++中除了0都为真;

4 程序流程结构

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

  • 顺序结构:程序按顺序进行,不发生跳转
  • 选择结构:依据条件是否满足,有选择的执行相应的功能
  • 循环结构:依据条件是否满足,循环多次执行某段代码

4.1选择结构

4.1.1 if语句

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iNf57Idw-1617370509116)(C:\Users\徐老帅哥\AppData\Roaming\Typora\typora-user-images\image-20210302154148717.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6dhCwO6O-1617370509121)(C:\Users\徐老帅哥\AppData\Roaming\Typora\typora-user-images\image-20210302155704547.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TqrG8Y1h-1617370509126)(C:\Users\徐老帅哥\AppData\Roaming\Typora\typora-user-images\image-20210302155553534.png)]

int main(){
	
	int score=0;
	cout<<"请输入高考分数:"<<endl;
	cin>>score;
    //注意从大到小判断
	if(score>650)
	cout<<"恭喜你考上清华"<<endl;
	else if(score>500)
	cout<<"恭喜你考上一本"<<endl;
	else if(score>400)
	cout<<"恭喜你考上本科"<<endl;
	else
	cout<<"继续努力" <<endl;
	
	system("pause");
	
	return 0; 
	
} 

if语句可以多层嵌套

练习案例:三只小猪称体重

有三只小猪ABC,请分别输入三只小猪的体重,并且判断哪只小猪最重?

代码示例:

#include<iostream>
using namespace std;
int main(){
	
	int a=0,b=0,c=0;
	cout<<"请输入三只小猪的体重"<<endl;
	
	cin>>a;
	cin>>b;
	cin>>c;
	//a和b比  两种情况  最大的和c比两种情况  一共4种情况 
	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; 
	
} 
4.1.2 三目运算符

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

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

解释:

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

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

示例:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ew3sXN2x-1617370509131)(C:\Users\徐老帅哥\AppData\Roaming\Typora\typora-user-images\image-20210302162455647.png)]

4.1.3 switch语句

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

语法:

swith(表达式)
    
{
    
    case 结果1:执行语句;break;
    
    case 结果2:执行语句;break;
    ...
    default   :执行语句;break;
    
}

if和switch的区别:

switch缺点,判断时候只能是整型或字符型,不可以是一个区间

switch优点,结构清晰,执行效率高

示例:(电影评分)

int main(){
	
	int score=0;
	cout<<"请输入电影评分:" <<endl;
	cin>>score;
	switch(score)
	{
		case 10 :cout<<"很棒!"<<endl;break;
		case 9 :cout<<"很棒!"<<endl;break;
		case 8 :cout<<"不错!"<<endl;break;
		case 6 :cout<<"还行!"<<endl;break;
		case 5 :cout<<"还好!"<<endl;break;
		default :cout<<"烂片!"<<endl;break; 
	}
	
	system("pause");
	return 0; 
} 

4.2 循环结构

4.2.1while循环语句

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tz1KmMNv-1617370509137)(C:\Users\徐老帅哥\AppData\Roaming\Typora\typora-user-images\image-20210302174109984.png)]

注意:在执行语句时避免死循环 while(1)

练习:猜数字

案例描述:系统会随机生成一个1到100的数字,玩家进行猜测,如果猜错提示玩家数字过大或过小,如果猜对恭喜玩家胜出。

#include<iostream>
#include<cstdlib>//srand头文件 
using namespace std;
#include<ctime>
int main(){
//	添加随机数种子 作用利用当前系统时间生成随机数,防止每次随机数一样 
	srand ((unsigned int)time(NULL));
//	1.系统生成随机数
	int num = rand() %100 +1;//rand()%100+1生成1-100的随机数
//	2.玩家进行猜测
	int value=0;
//	3.判断玩家猜测
//	猜对   退出游戏
//	猜错   提示猜的结果   过大或过小    重新返回第2步 
	while(1)
	{
		cin>>value;
		if(value>num)
		cout<<"太大了"<<endl;
		else if(value<num)
		cout<<"太小了"<<endl;
		else
		{
			cout<<"恭喜答对了就是:"<<num<<endl;break;
		 } 
	}
	system("pause");
	return 0; 
} 
4.2.2do…while语句

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HDWPb5Dz-1617370509141)(C:\Users\徐老帅哥\AppData\Roaming\Typora\typora-user-images\image-20210302184950231.png)]

练习案例:水仙花数

案例描述:水仙花数是一个3位数,它的每个位上的数字的3次幂之和等于它本身

例如:13+53+3^3=153

请利用do…while语句,求出所有3位数中的水仙花数

int main(){
	int num=2;

	do{
	int a=0;
	int b=0;
	int c=0;
	
	a=num/100;
	b=num%100/10;
	c=num%100%10;
	
	if(a*a*a+b*b*b+c*c*c == num)
		{
			cout<<num<<endl;
		}
		num
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值