- level 1:语法基础课
第 1 讲 C++ 入门及简单的顺序结构
- 2023-8-2 16:12:11 @
编程是一种控制计算机的方式,和我们平时双击打开文件、关机、重启没有任何区别。
一、软件环境
- 软件的安装与使用 DEV C++ 保姆级安装教程、 VS Code 安装教程
- 训练的评测与提交 XAZXOJ
二、编写一个简单的 C++ 程序——手速练习
如果想借助计算机解决实际问题,就要设计计算机程序并让计算机执行
#include <bits/stdc++.h> // 万能头文件
using namespace std; // 命名空间
int main() // 程序入口
{
cout << "Hello,World!" << endl; // 换行
return 0; // 程序正常结束
}
三、语法基础
-
变量的定义(变量代表了一个存储单元,其中的值是可以改变的)
常用变量类型及范围:
(1)布尔型 bool:true == 1 / false == 0 <1 Byte>
(2)字符型 char:'a',' ','\n' <1 Byte>
(3)整型 int:-2^31 ~ +2^31 - 1 -2147483648 ~ 2147483647 <4 Byte>
(4)浮点型:
a. 单精度浮点数 float:1.23,2.5,1.235e2,6 ~ 7 位有效数字 <4 Byte> 数据范围:-3.4e38 ~ 3.4e38
b. 双精度浮点数 double:15 ~ 16 位有效数字 <8 Byte> 数据范围:-1.7e308 ~ 1.7e308
(5)长整型 long long:-2^63 ~ +2^63 - 1 <8 Byte>
(6)长浮点型 long double:18 ~ 19 位有效数字 <16 / 12 / 8 Byte> 数据范围:-3.4e4932 ~ 1.1e4932
存储单位:1 Byte = 8 bit,带宽 10 Mbps
单位换算:B KB MB GB TB 2^10 = 1024
变量必须先定义后使用。不能重名,见名知意。
变量定义的方式:
#include <bits/stdc++.h> using namespace std; int main() { int a = 2; int b, c = a, d = 10 / 2; float e = 2.3, f = 1; double g = 1.235e2; bool h = true, i = false; char j = 'a', k = 'b'; long long l = 100000000000LL; long double m = 1.234567891234567891; return 0; }
-
输入输出
整数的输入输出:
#include <bits/stdc++.h> using namespace std; int main() { int a, b; // 定义两个变量 cin >> a >> b; // 输入 cout << a << endl << b; cout << a + b << ' ' << a * b << endl; // 输出 return 0; }
运行结果:
AC:Accepted
WA:Wrong Answer
CE:Compiler Error 编译错误
TLE:Time Limit Error 超时
MLE:Memory Limit Error 超内存
SF / RE:Segmentation Fault / Runtime Error 数组越界
输入输出多个不同类型的变量:scanf printf
printf()输出保留小数
#include <bits/stdc++.h> using namespace std; int main() { int a, b; float c, d; char e, f; double g, h; long long i, j; long double k; scanf("%d%d", &a, &b); scanf("%f%f", &c, &d); printf("a + b = %d\na * b = %d\n", a + b, a * b); printf("%.2f %.3f", c, d); // 保留n位小数输出 scanf("%c%c", &e, &f); // 会读入空格 cin >> e >> f; // 不会读入空格 scanf("%lf%lf", &g, &h); printf("%lf %lf", g, h); scanf("%lld%lld", &i, &j); printf("%lld %lld", i, j); scanf("%Lf", &k); printf("%Lf", k); /* int bool: %d float: %f double: %lf char: %c long long: %lld long double: %Lf */ return 0; }
-
表达式
整数的加减乘除四则运算:+ - * / %
/:5 / 2 = 2 隐性转换
%:5 % 2 = 1
5 % -2 = 1 -5 % 2 = -1
取余数,和数学中的余数定义(0 ≤ 余数 ≤ 除数)不同,结果取决于前面数的正负,只能整数
故判断一个整数是否为奇数时最好写成
if (i % 2 != 0)
#include <bits/stdc++.h> using namespace std; int main() { int a = 6 + 3 * 4 / 2 - 2; cout << a << endl; int b = a * 10 + 5 / 2; cout << b << endl; cout << 23 * 56 - 78 / 3 << endl; return 0; }
变量的自增、自减运算:a++ ++a a-- --a
#include <bits/stdc++.h> using namespace std; int main() { int a = 1; int b = a ++ ; cout << a << ' ' << b << endl; int c = ++ a; cout << a << ' ' << c << endl; return 0; }
简写运算:+= -= *= /= %=
浮点数(小数)的运算:
不同变量做运算时发生隐式类型转换:朝向精度高的类型转换
#include <bits/stdc++.h> using namespace std; int main() { float x = 1.5, y = 3.2; cout << x * y << ' ' << x + y << endl; cout << x - y << ' ' << x / y << endl; return 0; }
变量的强制类型转换 显性转换:
#include <bits/stdc++.h> using namespace std; int main() { float x = 123.12; int y = (int)x; // 向 0 取整 cout << x << ' ' << y << endl; int a = 97; char c = (char)a; cout << c << endl; char b = 'A'; cout << (char)(b + 32) << endl; return 0; }
ASCII 码表(American Standard Code for Information Interchange):
常用字符的 ASCII 值:'A' 65,'a' 97,'0' 48,' ' 32
-
顺序结构
(1) 输出第二个整数
#include <bits/stdc++.h> using namespace std; int main() { int a, b, c; cin >> a >> b >> c; cout << b << endl; return 0; }
(2) 计算 (a + b) * c 的值
#include <bits/stdc++.h> using namespace std; int main() { int a, b, c; cin >> a >> b >> c; cout << (a + b) * c << endl; return 0; }
(3) 带余除法
#include <bits/stdc++.h> using namespace std; int main() { int a, b; cin >> a >> b; int c = a / b, d = a % b; cout << c << ' ' << d << endl; return 0; }
(4) 求反三位数
#include <bits/stdc++.h> using namespace std; int main() { int n; cin >> n; int a = n % 10; n = n / 10; int b = n % 10; n = n / 10; int c = n; cout << a << b << c << endl; return 0; }
(5) 交换两个整数
#include <bits/stdc++.h> using namespace std; int main() { int a = 3, b = 4; int t = a; a = b; b = t; cout << a << ' ' << b << endl; return 0; }
(6) 输出菱形
#include <bits/stdc++.h> using namespace std; int main() { char c; cin >> c; cout << " " << c << endl; cout << " " << c << c << c << endl; cout << c << c << c << c << c << endl; cout << " " << c << c << c << endl; cout << " " << c << endl; return 0; }
备注:
-
变量名的二义性:max x1
-
用万能头时不能定义变量名 y1 y0 j0 j1 time等保留字
-
sizeof()用于计算数据类型所占的字节数
-
整型溢出
-
常用函数 abs(x) max(x, y) min(x, y) swap(x, y) pow(x, y) rand() ceil()
-
long long
范围: ~ ,unsigned long long
范围: ~ ,在数据范围为 时,要用
ULL
,否则会溢出失真。
5 comments
-
limingyu LV 3 @ 2024-10-19 9:37:08
反三位数好复杂
-
2024-10-16 19:38:48@
c++诗人?
🍋 1 -
2024-10-9 19:53:39@
C++太好玩啦😄
👀 6🍋 4 -
2024-10-5 16:03:43@
我丢,震惊我三百年
-
2023-10-24 20:05:59@
看不懂555
😄 1
- 1