Acwing-语法基础练习

目录

[1. 非常基础的C++ (面向程序) 框架](#1. 非常基础的C++ (面向程序) 框架)

[2. 一些基础数据类型](#2. 一些基础数据类型)

3.变量的输入输出

4.ACWing题库-第1题:A+B

5.四则运算(只整理一部分较难的)

6.数据类型转换

寒假自学用,记录Acwing题目。

语言:C++


1. 非常基础的C++ (面向程序) 框架

复制代码
#include <iostream>  //头文件 

using namespace std;  //使用std命名空间,解决命名冲突 

int main()  //程序入口(函数入口) 
{  

	cout<<"Hello World!"<<endl;  //程序主体
	
	return 0;  //最后返回0
}

2. 一些基础数据类型

常见类型:

bool 布尔类型: False(0) , True(1,或除了0外的值)

char 字符: 'c', 'a' , '\n' 使用单引号括住

int 整数类型:取值范围是

float 单精度浮点数: 有6-7位有效数字,也可以使用科学计数法表示如:1.489e3

double 双精度浮点数: 有15-16位有效数字

不常见类型:

long long : 是int类型的扩展版,表示范围为

long double: 是double类型的扩展版,有18-19位有效数字

复制代码
#include <iostream>  //头文件 

using namespace std;  //使用std命名空间,解决命名冲突 

int main()  //程序入口(函数入口) 
{  

	/*
	int %d
	float %f   %.2f(保留两位小数)
	double %lf
	char %c
	long long %lld
	*/

	//变量类型定义
	 int a , b = 1 , c = b;
	 
	 float d = 1.2 ,e = 2 , f = 2.567;
	 
	 bool g = true , h = false;
	 
	 long long i = 10000000LL ;  //在数值后面添加LL 或者 ll 都表示long long 类型 
	 //long long i = 10000000ll ; 
	 
	 long double j = 12345.6;
	
	return 0;
}

以下是菜鸟 网站中给出的数据类型表格:


3.变量的输入输出

在所有算法比赛中,所有能够用cin cout 表示的语句均可以使用scanf printf 语句替换,反之则不一定。原因在于cin cout效率较低,容易超时

cin 输入不会读入空格,而scanf输入会读入空格。

cin输入后跟大于号'>>'

cout输出后跟小于号'<<'

复制代码
#include <iostream>

using namespace std;

int main(){
	
	int a,b; //定义2个整型变量 
	
	cin >> a >> b;  //输入a,b 

	cout << a+b << endl ;  //输出  endl起到结尾换行的作用 
	cout << ' ' << endl ;  //输出 空格
	cout << a*b ; 	

	return 0;
}

scanf 输入

printf 输出

复制代码
#include <iostream>
#include <cstdio>  //如果要使用scanf printf输入输出,最好加上此头文件
#include <cmath>  //对数进行开方,需要引入cmath库头文件 

using namespace std;

int main(){
	
	int a,b;  //定义整型变量 
	float c,d; //定义单精度浮点变量 
	
	scanf("%d,%d",&a,&b); //不要忘记取地址符号&
	
	printf("a+b = %d\n",a+b);
	printf("a*b = %d",a*b);
	
	scanf("%f,%f",&c,&d);
	printf("c+d = %.2f\n",c+d); //%.2f表示单精度浮点数保留小数点后两位
	printf("c*d = %.3f\n",c*d); 
	printf("c^0.5 = %.2f",sqrt(c));
	
	
	return 0;
} 

定义字符型char数据:

复制代码
#include <iostream>
#include <cstdio>  //如果要使用scanf printf输入输出,最好加上此头文件

using namespace std;

int main(){

	char a,b; //定义字符型变量 
	
	scanf("%c%c",&a,&b); //%c%c会读入空格,但是%d不会读入空格
	printf("%c+%c",a,b); 
	
	return 0;
} 

4.ACWing题库-第1题:A+B

> 输入两个整数,求这两个整数的和是多少。

输入格式

> 输入两个整数A,B ,用空格隔开

输出格式

> 输出一个整数,表示这两个数的和

数据范围

> 0≤A,B≤10e8

代码:

复制代码
#include <iostream>
using namespace std;

int main(){
    int a,b;
    
    cin>>a>>b;
    cout<<a+b<<endl;
    
    return 0;
}

已通过测试。


5.四则运算(只整理一部分较难的)

>除法运算

复制代码
#include <iostream>
#include <cstdio>
#include <cmath>

using namespace std;

int main(){
	
	cout << 5 / 3 << endl;  //整除,结果为1
	cout << 5.0 / 3.0 << endl ;  //结果为浮点数
	
	cout << 5 % 3 << endl;  //取余,结果的符号只取决于被除数的符号
	cout << -5 % 3 << endl; //并且取余操作只能应用于整数类型 且除数不能为0
	
	return 0;
} 

>自增,自减运算

复制代码
#include <iostream>
#include <cstdio>

using namespace std;

int main(){
	
	int a = 2;
	int c = a ++; //a先将原本的值赋给c,再自增1 
	printf("a = %d,c = %d\n",a,c);
	
	
	int b = 2;
	int d = ++ b; //b先自增1,再将增加后的值赋给d 
	printf("b = %d,d = %d",b,d);
	
	return 0;
} 

看看输出结果:


6.数据类型转换

分为隐性转换显式转换

int 和 float、double可以进行转换,但是浮点类型转换为int类型时需要向下取整。

int 类型和char类型可以通过ASCII码表相互转换

ASCII码转换表链接:ASCII码一览表,ASCII码对照表 (biancheng.net)

复制代码
#include <iostream>
#include <cstdio>

using namespace std;

int main(){
	
	char c='A' ; 
	cout << (int)c <<endl; //将字符类型转换为整数类型 
	
	int a = 66;
	cout << (char)a << endl; //将整数类型转换为字符类型 
	
	char ch = 'C';
	cout << (char)(ch+30) << endl; //使用字符类型做运算 
	
	return 0;
} 

结果:

相关推荐
爱学习的小鱼gogo1 小时前
python 矩阵中寻找就接近的目标值 (矩阵-中等)含源码(八)
开发语言·经验分享·python·算法·职场和发展·矩阵
红纸2811 小时前
Subword算法之WordPiece、Unigram与SentencePiece
人工智能·python·深度学习·神经网络·算法·机器学习·自然语言处理
CUMT_DJ2 小时前
从零复现论文(1)——通感一体化实现协作基站分配与资源分配(CBARA)策略
算法·通感一体化
tt5555555555552 小时前
CSDN 教程:C++ 经典字符串与栈算法题逐行详解
c++·算法·哈希算法
周杰伦fans2 小时前
C++ 中的 `::` 全局作用域符
开发语言·c++
_dindong2 小时前
基础算法:滑动窗口
数据结构·学习·算法·leetcode·力扣
bkspiderx3 小时前
C++设计模式之行为型模式:状态模式(State)
c++·设计模式·状态模式
Voyager_43 小时前
图像处理踩坑:浮点数误差导致的缩放尺寸异常与解决办法
数据结构·图像处理·人工智能·python·算法
会开花的二叉树3 小时前
分布式文件存储 RPC 服务实现
c++·分布式·网络协议·rpc
文艺倾年3 小时前
【八股消消乐】手撕分布式协议和算法(基础篇)
分布式·算法