关于程序的基本要素的详细讲解(从属GESP一级内容)
本篇内容
标识符、关键字
常量、变量、表达式
命名规则
🧱 程序基本要素(Program Elements)知识点
✅ 一、C++ 程序的基本结构
C++ 程序通常由以下几部分组成:
#include <iostream> // 头文件
using namespace std; // 命名空间
int main() { // 主函数入口// 程序语句return 0; // 程序结束
}
✅ 二、关键组成要素详解
要素类别 | 说明与示例 |
头文件 |
表示引入输入输出支持 |
命名空间 |
允许简写 |
主函数 | 所有 C++ 程序的入口为 |
语句 | 每条语句如 |
注释 | 单行注释: |
分号 | 表示一条语句的结束,是 C++ 中不可或缺的语法符号 |
花括号 | 表示代码块的范围,主函数体或条件语句体需使用花括号 |
缩进与格式 | 虽非语法强制,但统一风格(如 4 空格缩进)有助于阅读与维护 |
✅ 三、关键字与标识符
📌 1. 关键字(keywords)
- • 是 C++ 保留字,具有特殊含义,不能用作变量名。
- • 常见关键字包括:
int
,return
,if
,else
,for
,while
,void
等。
📌 2. 标识符(identifiers)
- • 用于命名变量、函数、数组、类等。
- • 命名规则:
-
- • 必须由字母、数字或下划线组成,不能以数字开头。
- • 不能与关键字重名。
- • 区分大小写(如
Sum
和sum
是不同的变量)。
✅ 四、变量(Variable)
1. 变量定义
- • 变量是内存中的一个命名空间,用于存储可以在程序运行过程中改变的值。
2. 定义语法
int a = 5;
double pi = 3.14;
4. 常见数据类型
类型 | 关键字 | 示例值 | 描述 |
整型 |
|
, | 存整数 |
浮点型 |
|
| 存单精度小数 |
双精度浮点 |
|
| 精度更高 |
字符型 |
|
| 存单个字符 |
布尔型 |
|
, | 存布尔值 |
字符串 |
|
| 需引入 |
✅ 五、常量(Constant)
1. 常量定义
- • 常量的值在程序运行过程中不能被改变
2. 常量声明方式
🔹 使用 const
修饰:
const int MAX = 100;
🔹 使用 #define
宏定义:
#define PI 3.14
方法 | 是否类型检查 | 支持调试 | 推荐程度 |
| ✅ 类型安全 | ✅ 支持调试 | ✅ 推荐 |
| ❌ 无类型检查 | ❌ | ⚠️ 不推荐 |
✅ 六、表达式(Expression)
1. 表达式定义
- • 表达式是由变量、常量、运算符组成的结构,用来进行计算或赋值。
2. 表达式分类
类型 | 示例 | 功能 |
算术表达式 |
| 执行加减乘除 |
赋值表达式 |
| 将结果赋值给变量 |
逻辑表达式 |
| 返回布尔值(真或假) |
关系表达式 |
| 比较两个值是否相等 |
3. 运算符优先级
优先级 | 运算符 | 说明 |
① |
| 括号最高 |
② |
| 乘除取模 |
③ |
| 加减 |
④ |
| 比较大小或相等 |
⑤ |
, | 逻辑与(&&)优先级大于逻辑或(||) |
⑥ |
| 赋值运算 |
💡 若无括号,运算按 从左到右 的顺序进行(除赋值运算等右结合性情况)
✅ 七、示例程序
#include <iostream>
using namespace std;int main() {const double PI = 3.14;int r = 5;double area = PI * r * r;cout << "面积是:" << area << endl;return 0;
}
✅ 八、程序执行流程
- 1. 从
main()
函数的第一行开始执行; - 2. 语句按顺序逐行运行,遇到输入输出、运算、判断等语句;
- 3. 程序执行到
return 0;
时终止,返回值 0 表示正常结束。
✅ 九、典型代码模板
#include <iostream> // 引入输入输出功能
using namespace std;int main() {int a, b;cin >> a >> b; // 输入两个整数cout << "和是:" << a + b << endl; // 输出结果return 0; // 程序正常结束
}
✅ 十、常见错误类型
错误类型 | 示例 | 说明 |
忘记分号 |
| 语句必须以分号结尾 |
主函数格式错误 |
| 应为 |
错用关键字 |
|
是关键字,不能用作变量名 |
忘记包含头文件 | 使用 | 编译失败 |
变量名非法 |
| 变量不能以数字开头 |
常量赋值 |
| 常量不能被赋值 |
符号使用错误 |
| C++ 中幂运算不使用 |
变量赋值错误 |
| 写法非法,数字与变量不能连写 |
宏定义格式 |
| 宏定义不使用等号与分号 |
✅ 十一、判断题/选择题备考要点
考点 | 常见题型 |
主函数必须写成 |
,不可省略 |
标识符命名规则 | 不可以数字开头,不可与关键字同名 |
程序必须以 | 程序入口必须是主函数 |
分号缺失会如何 | 编译错误(语法不完整) |
注释语法 | 单行用 |
关键字不能用作变量名 | 如: |
常量不可赋新值 |
一经定义不可改 |
运算优先级顺序(简略) | 括号 > 乘除 > 加减 > 比较 > 逻辑 > 赋值 |
幂运算写法 | 没有 |
标识符合法性三要素 | 字母/数字/下划线组合;不能数字开头;非关键字 |
🌟 GESP C++ 一级 · 选择题
✅ 1. 【主函数 · 真题】
题目:C++ 程序的主函数应写为:
A. main()
B. start()
C. int main()
D. void Start()
答案:C
解析:主函数必须为 int main()
,是程序的入口。
✅ 2. 【变量命名 · 真题】
题目:以下变量命名中合法的是:
A. int
B. 3score
C. _age
D. return
答案:C
【出自:23年12月题4】
✅ 3. 【常量声明 · 真题】
题目:以下定义常量的写法中正确的是:
A. #define PI = 3.14;
B. const float pi = 3.14;
C. int const = 10;
D. float pi := 3.14;
答案:B
✅ 4. 【表达式结果 · 真题】
题目:表达式 5 + 6 * 2
的结果是:
A. 22 B. 17 C. 30 D. 11
答案:B
【出自:23年9月题8 相关逻辑】
✅ 5. 【程序结构 · 真题】
题目:以下关于 C++ 程序结构的描述中,正确的是:
A. 程序不需要主函数
B. 程序必须有一个且只能有一个 main()
函数
C. main()
可以省略大括号
D. 所有语句都必须以冒号结尾
答案:B
【参考:24年6月题13】
✅ 6. 【表达式类型识别】
题目:以下属于赋值表达式的是:
A. a + b * c
B. x = 10 + 5
C. x > y && y > 0
D. x != y
答案:B
✅ 7. 【优先级判断】
题目:下列表达式中括号最先执行的是:
A. a + b * c
B. a * b + c
C. a * (b + c)
D. a + b + c
答案:C
解析:括号优先级最高。
✅ 8. 【const常量 · 真题】
题目:下列语句中定义了一个值为 100 的整型常量的是:
A. int MAX = 100;
B. const int MAX = 100;
C. MAX = 100;
D. #define const MAX = 100
答案:B
✅ 9. 【错误识别】
题目:下面哪个变量定义是错误的?
A. int x1 = 0;
B. double 1num = 5.0;
C. char ch = 'A';
D. bool flag = true;
答案:B
解析:变量名不能以数字开头。
✅ 10. 【赋值表达式理解】
题目:以下关于 x = y = 10;
的说法正确的是:
A. 表达式非法 B. x
赋值失败 C. y
先赋为 10,再赋值给 x
D. 优先级错误
答案:C
解析:赋值运算符是右结合,先执行 y = 10
,再 x = y
好的,以下是按照你指定格式(有标题、有题目、有标准答案、有解析说明)整理的 程序基本要素、变量、常量、表达式模块判断题(共 10 题),结构清晰、适合教学与备考使用。
✅ GESP C++ 一级判断题
✅ 题目 1:【程序结构与主函数】
题干:C++ 程序必须包含 main()
函数,否则无法运行。( )
答案:√
解析:main()
是 C++ 程序的执行入口,缺少会导致编译失败。
✅ 题目 2:【变量命名规则】
题干:以下变量命名是合法的:int 2num = 10;
( )
答案:×
解析:变量名不能以数字开头,2num
是非法命名。
✅ 题目 3:【常量定义】
题干:使用 const int MAX = 100;
声明的常量在程序中可以重新赋值。( )
答案:×
解析:const
修饰的变量是只读常量,不能被更改,否则编译错误。
✅ 题目 4:【运算符优先级】
题干:表达式 a + b * 2
中,加法会优先于乘法执行。( )
答案:×
解析:乘法 *
优先级高于加法 +
,先计算 b * 2
。
✅ 题目 5:【宏常量格式】
题干:宏常量 #define PI 3.14
的定义中,不需要加分号或等号。( )
答案:√
解析:#define
是预处理指令,格式为 #define 名字 值
,不使用 =
和 ;
。
✅ 题目 6:【变量区分大小写】
题干:在 C++ 中,变量 Age
和 age
被视为相同变量。( )
答案:×
解析:C++ 区分大小写,Age
和 age
是两个不同的标识符。
✅ 题目 7:【变量使用前必须定义】
题干:在 C++ 中,变量可以在使用后定义。( )
答案:×
解析:C++ 是强类型语言,变量必须在使用前先声明或定义。
✅ 题目 8:【括号优先级】
题干:表达式 (a + b) * c
中,括号的运算优先级最高。( )
答案:√
解析:运算符优先级中,括号 ()
始终最高。
✅ 题目 9:【关键字不能作变量名】
题干:可以将 if
或 return
用作变量名。( )
答案:×
解析:if
和 return
是 C++ 关键字,不能作为标识符使用。
✅ 题目 10:【赋值表达式结合方向】
题干:表达式 x = y = 5;
是合法的,最终 x 和 y 都等于 5。( )
答案:√
解析:赋值运算符 =
是右结合,先执行 y = 5
,再 x = y
。