Acwing-语法基础练习

发布时间:2024年01月23日

目录

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

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 整数类型:取值范围是(-2^{31})-(2^{31}-1)

float 单精度浮点数: 有6-7位有效数字,也可以使用科学计数法表示如:1.489e31.489*10^{3}

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

不常见类型:

long long : 是int类型的扩展版,表示范围为(-2^{63})-(2^{63}-1)

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;
} 

结果:

文章来源:https://blog.csdn.net/weixin_63010525/article/details/135761432
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。