杨校老师竞赛课堂之C++语言GESP一级笔记

发布于:2025-09-01 ⋅ 阅读:(13) ⋅ 点赞:(0)

考试大纲

GESP一级考试大纲

  • 计算机基础与编程环境

  • 计算机历史

  • 变量的定义与使用

  • 基本数据类型(整型、浮点型、字符型、布尔型)

  • 输入与输出(cin与cout、scanf与printf)

  • 基本运算(算术运算、关系运算、逻辑运算)

  • 基本控制结构(顺序结构、选择结构、循环结构)

一、计算机基础与编程环境

二、基本数据类型

数据类型分类 具体类型 存储范围 / 特点 关键说明
整数类型 int 范围:
-2147483648~2147483647,
简记为 - 2×10⁹~2×10⁹或 - 2³¹~2³¹-1
用于存储常规整数
long long 范围:
-9223372036854775808~9223372036854775807,
简记为 - 9×10¹⁸~9×10¹⁸或 - 2⁶³~2⁶³-1
用于存储较大整数
实数类型 float 存储 6~7 位有效数字 精度较低,适用于对精度要求不高的场景
double 存储 15~16 位有效数字 精度较高,日常实数存储常用
布尔类型 bool 仅存储 false(0)或 true(1),所有非 0 数据放入后均变为 1 用于表示逻辑判断结果
字符类型 char 仅存储单个字符,用单引号引起来;本质是 ASCII 码(整数) 1. 字符与 ASCII 码对应:0-9 对应 48-57,a-z 对应 97-122,A-Z 对应 65-90
2. 字符 0 转数字 0:字符 0 - '0'
字符串类 string 存储 1 个字符串(一串字符),用双引号引起来,下标从 0 开始 string 类变量不能用 scanf 输入、printf 输出

三、变量

(一)变量定义

  • 一般形式:数据类型 变量名 1, 变量名 2; 例:int a, b; // 定义两个 int 类型变量 a 和 b

(二)变量命名规则

  1. 由字母、数字、下划线任意组合而成,数字不能在开头

  2. 区分大小写(如 a 与 A 是不同变量名)

  3. 不能是关键词(如 int、class、return、for 等)

  4. 同一括号内定义的变量不能重名

(三)变量赋值

  • 赋值方式:变量名 = 数据;

  • 执行过程:将 “=” 右边的数据赋值给左边的变量,多次赋值保留【最后一次】结果 例:int x; x = 5; x = 8; // 最终 x 的值为 8

四、输入与输出

(一)输入方式

输入类型 语法格式 关键说明
C++ 输入(cin) 1. 单个变量:cin >> 变量名;
2. 多个变量:cin >> 变量名 1 >> 变量名 2;
1. 输入数据按 “>>” 方向自左向右依次存储到变量
2. 多个数据可用空格或换行隔开
3. 错误写法:cin >> a >> " " >> b;(输入中不能加引号内容)
4. 输入前必须提前定义变量
C 语言输入(scanf) scanf ("输入格式", & 变量名 1, & 变量名 2...);
(头文件:<cstdio>)
1. 格式化参数:
int 用 % d,
long long 用 % lld,
float 用 % f,
double 用 % lf,
char 用 % c,
字符数组用 % s(字符串名前不加 &)
2. 特殊格式:
%2d(数字宽度 2,不足补空格)、
%02d(数字宽度 2,不足补 0)
3. 变量名前必须加 &(取地址符),
string 类变量不可用

(二)输出方式

输出类型 语法格式 关键说明
C++ 输出(cout) 1. 单个变量:cout << 变量名;
2. 多个变量(空格分隔):cout << 变量名 1 << " " << 变量名 2;
3. 多个变量(换行分隔):cout << 变量名 1 << endl << 变量名 2;
1. 变量数据按 “<<” 方向自左向右依次输出
2. 格式化输出需加头文件<iomanip>:
- 保留小数:cout <<fixed << setprecision (位数) << 数据;
- 控制整数宽度(补空格):cout <<setw (位数) << 数据;
C 语言输出(printf) printf ("输出格式", 变量名 1, 变量名 2...);
(头文件:<cstdio>)
1. 格式化参数与 scanf 一致,变量名前不加 &
2. 特殊字符:
\n(换行)
\t(相当于 4 个空格)
\\(输出 \)
\"(输出")
\'(输出 ')
%%(输出 %)
3. string 类变量不可用

五、基本运算

(一)算术运算

  • 运算符:+(加)、-(减)、*(乘)、/(除)、%(取余)

  • 特殊规则:

    • 两个整数相除结果为整数(如 5/2=2),常用于平均分配场景

    • “%” 仅适用于整数,结果为余数(如 5%2=1)

    • 优先级:*、/、% 高于 +、-

(二)关系运算

  • 运算符:>(大于)、<(小于)、>=(大于等于)、<=(小于等于)、==(等于)、!=(不等于)

  • 运算结果:逻辑值(真为 1,假为 0)

  • 例:10>5 结果为 1(真),10==5 结果为 0(假)

(三)逻辑运算

运算符 含义 运算规则
&& 并且(逻辑与) 全真才真,一假则假 3>2 && 5>4 结果为 1(真)
|| 或者(逻辑或) 全假才假,一真则真 3>5 || 5>4 结果为 1(真)
! 不是(逻辑非) 非真即假,非假即真 !(3>5) 结果为 1(真)
  • 否定规则:

    • !(条件 1 && 条件 2) = ! 条件 1 || ! 条件 2

    • !(条件 1 || 条件 2) = ! 条件 1 && ! 条件 2

六、基本控制结构

(一)顺序结构

  • 特点:按代码顺序自上而下执行,每行按运算符优先级执行

  • 生活示例:起床→穿衣→洗漱→吃饭

(二)选择结构

结构类型 语法格式 执行逻辑
单分支(if) if (判断条件){
满足条件执行的语句;
}
条件成立则执行大括号内语句,不成立则忽略
双分支(if-else) if (判断条件){
满足条件执行的语句;
}else{
不满足条件执行的语句;
}
条件成立执行 if 内语句,不成立执行 else 内语句;if 和 else 有且只有一个执行
多分支(if-else if-else) if (判断条件 1){
语句 1;
} else if (判断条件 2){
语句 2;
}...else{
语句 n;
}
依次判断条件,满足某一条件则执行对应语句,执行后结束结构;可无 else
条件运算(三目运算符) 表达式 1 ? 表达式 2 : 表达式 3; 相当于双分支 if-else,表达式 1 成立则取表达式 2 结果,否则取表达式 3 结果;可直接赋值
例:int max = a>b ? a : b;(求 a 和 b 的最大值)
switch 结构 switch (表达式){
case 常量 1: 语句 1; break;
case 常量 2: 语句 2; break;
...
default: 语句 n;
}
1. 表达式仅能判断整型或字符型
2. 依次匹配 case 常量,匹配成功则执行对应语句,直到 break 结束;无匹配则执行 default
3. 缺少 break 会继续执行后续 case 语句

(三)循环结构

循环类型 语法格式 适用场景 执行逻辑
while 循环 while (判断条件){
重复执行的语句(循环体);
}
重复次数不确定的场景 1. 判断条件成立,执行循环体
2. 循环体执行后,再次判断条件,直到条件不成立结束循环
for 循环 for (表达式 1; 表达式 2; 表达式 3){
重复执行的语句(循环体);
}
重复次数确定、枚举区间的场景 1. 先执行表达式 1(初始化)
2. 判断表达式 2(循环条件),成立则执行循环体
3. 执行表达式 3(更新),再回到步骤 2;不成立则结束循环
4. 三个表达式均可省略,但可能导致死循环

(四)循环控制语句

语句 功能
continue; 跳过本次循环剩余语句,直接进入下一次循环判断 for (int i=1;i<=5;i++){if (i==3) continue; cout<<i;}
// 输出 1 2 4 5
break; 立即跳出当前循环,结束循环执行 for (int i=1;i<=5;i++){if (i==3) break; cout<<i;}
// 输出 1 2
return 0; 直接结束整个程序(通常用于 main 函数) 循环中遇到 return 0;,程序直接终止


网站公告

今日签到

点亮在社区的每一天
去签到