GESP计算机等级考试一级认证C++知识点

目录

1. 计算机基础知识

计算机的硬件组成

CPU(中央处理单元):

内存(Memory):

操作系统

Windows:

Linux:

重要人物

计算机发展历程

2. 集成开发环境(IDE)使用

Dev C++ 使用步骤

3. 程序基本语句

输入输出语句

赋值语句

4. 结构化程序设计

顺序结构

分支结构

循环结构

5. 程序的基本概念

标识符

关键字

常量与变量

程序注释

6. 基本运算

算术运算

逻辑运算

关系运算

比较运算符

自增与自减

三目运算

7. 基本数据类型

整数类型

实数类型

字符型

布尔型

常见的易错点:

一、变量与数据类型

二、基本语法结构

三、控制结构

四、运算与表达式

五、其他常见错误


1. 计算机基础知识

计算机的硬件组成

CPU(中央处理单元):
  • 执行指令并控制计算机的各个部分。分为 算术逻辑单元(ALU),执行算术与逻辑运算;控制单元(CU),控制计算机的运算顺序和流程;寄存器,存储数据和指令。
  • 时钟频率:CPU 每秒钟执行指令的数量,单位通常为 GHz。时钟频率越高,CPU 处理速度越快。
内存(Memory):
  • RAM(随机存取存储器):运行时的数据存储区,用于存放程序和数据,访问速度快,但断电会丢失数据。
    • ROM(只读存储器):存储系统固件,数据在断电后不丢失。

    • 缓存(Cache):存储 CPU 最近使用过的数据,速度比 RAM 快,用于提高 CPU 性能。

  • I/O 设备(输入输出设备):

  • 输入设备:如键盘、鼠标、扫描仪等,用于向计算机输入数据。
  • 输出设备:如显示器、打印机、扬声器等,用于输出计算机的处理结果。

操作系统

Windows:
  • 图形化界面的操作系统,支持多任务、多线程操作,广泛应用于桌面计算机。具有 任务管理器、资源管理器 等工具,帮助用户管理计算机资源。
Linux:
  • 开放源代码的操作系统,支持命令行和图形界面。广泛应用于服务器、嵌入式系统和超大规模计算中。常用的发行版包括 Ubuntu、CentOS、Debian 等。
重要人物
  • 艾伦·图灵(1912年—1954年),英国数学家、逻辑学家,被称为“人工智能之父”。

  • 冯·诺依曼(1903年—1957年),出生于匈牙利的美籍犹太人,是20世纪最著名的数学家之一,理论计算机科学和博弈论的奠基者,常被誉为“计算机之父”。

  • 克劳德·香农(1916年—2001年),美国数学家和密码学家,是“信息论之父”。

计算机发展历程
  • 从第一代电子计算机(ENIAC) 到 第四代(微型计算机) 和 现代的智能设备,计算机技术经历了从机械计算到电子计算、从批处理系统到多任务处理的飞跃。


2. 集成开发环境(IDE)使用

Dev C++ 使用步骤
  • 创建文件:
  1. 打开 Dev C++,点击“文件”->“新建”->“源代码”来创建新的 C++ 文件。

  2. 默认情况下,文件的扩展名应为 .cpp

  • 编辑文件:

  1. 在代码编辑窗口中编写代码,Dev C++ 提供了代码高亮、自动补全等功能,可以帮助提高编程效率。

  • 保存文件:

  1. 编辑完毕后,点击“文件”->“保存”,选择保存路径和文件名。确保文件保存为 .cpp 格式。
  • 编译:

  1. 点击“执行”->“编译”或者快捷键 F9,Dev C++ 会将代码编译成可执行文件(.exe 文件),如果存在错误,编译器会显示错误信息。
  • 调试:

  1. 使用 Dev C++ 提供的调试工具,逐行执行代码,查看变量值、堆栈信息,帮助定位程序中的逻辑或运行时错误。

3. 程序基本语句

输入输出语句
  • cin(C++ 输入):

  • int x;
    cout << "Enter an integer: ";
    cin >> x;  // 从标准输入读取一个整数并赋值给 
  • scanf(C 输入):

  • int x;
    printf("Enter an integer: ");
    scanf("%d", &x);  // 从标准输入读取一个整数
  • cout(C++ 输出):

  • int x = 10;
    cout << "The value of x is: " << x << endl;  // 输出到标准输出
  • printf(C 输出):

  • int x = 10;
    printf("The value of x is: %d\n", x);  // 输出到标准输出
赋值语句
  • 赋值操作:将一个变量的值赋给另一个变量。


4. 结构化程序设计

顺序结构
  • 顺序结构是最简单的程序结构,它按照代码书写的顺序依次执行每一行代码。没有跳转或重复,只是线性地从上到下执行。每个语句在前一个语句完成后立即执行

分支结构

if 语句:

if (condition) {
    // 执行这段代码
}
​

if-else 语句:

if (condition) {
    // 条件为真时执行这段代码
} else {
    // 条件为假时执行这段代码
}
​

switch 语句:

switch (expression) {
    case value1:
        // 当 expression 的值等于 value1 时执行这段代码
        break;
    case value2:
        // 当 expression 的值等于 value2 时执行这段代码
        break;
    default:
        // 当 expression 的值不匹配任何 case 时执行这段代码
}
​

循环结构
  • for 循环:用于已知次数的循环。

  • while 循环:适用于条件判断后执行。

  • do-while 循环:保证循环体至少执行一次。

    do {
        // 先执行这段代码
    } while (condition);
    ​
  • continue 和 break:

    • continue:跳过当前循环的剩余部分,进入下一次循环。

    • break:直接退出当前循环。


5. 程序的基本概念

标识符
  • 标识符:变量名、函数名等程序中用来标识对象的名称。规则:只能包含字母、数字和下划线,且不能以数字开头。

关键字
  • 关键字:语言保留的词,具有特殊意义,不能作为标识符。例如:intifelsefor 等。

常量与变量
  • 常量:定义后值不可改变的量。可以使用 const 关键字声明常量。

  • 变量:定义后值可以改变的量。

程序注释
  • 单行注释:// 注释内容

  • 多行注释:/* 注释内容 */


6. 基本运算

算术运算
  • 算术运算符用于执行基本的数学运算。它们包括:

    1. +:加法

    2. -:减法

    3. *:乘法

    4. /:除法(对于整数,结果将被截断为整数)

    5. %:取模(求余数),仅适用于整数类型

逻辑运算
  • 逻辑运算符用于组合多个条件表达式。主要的逻辑运算符是:

    1. &&:逻辑与(AND),所有条件都必须为真,结果才为真

    2. ||:逻辑或(OR),只要有一个条件为真,结果就为真

    3. !:逻辑非(NOT),反转条件的真假性

关系运算
  • 比较运算符

    比较运算符用于比较两个值,并返回一个布尔值 (true 或 false)。常见的比较运算符有:

    1. == :等于

    2. != :不等于

    3. > : 大于

    4. < : 小于

    5. >= : 大于或等于

    6. <= : 小于或等于

自增与自减
  • 自增 (++) 和自减 (–) 运算符用于将变量的值增加或减少1。它们可以出现在变量之前(前置)或之后(后置)。前置运算符先修改再使用,而后置运算符则是先使用再修改。

  • 在这里插入图片描述

三目运算
  • 三目运算符:(condition) ? (true_expression) : (false_expression)

    int a = 10, b = 20;
    int max = (a > b) ? a : b;
    cout  << max << endl; //20
    

condition:一个表达式,其结果必须可以转换为布尔值(true 或 false)。 true_expression:如果 condition 的结果为 true,则计算并返回这个表达式的值。 false_expression:如果 condition 的结果为 false,则计算并返回这个表达式的值。

7. 基本数据类型

整数类型
  • int:常用的整数类型,通常占用 4 字节。

  • long long:用于存储大整数,通常占用 8 字节。

实数类型
  • float:单精度浮点数,通常占用 4 字节。

  • double:双精度浮点数,通常占用 8 字节。

字符型
  • char:存储单个字符,通常占用 1 字节。

布尔型

bool:用于存储 truefalse,通常占用 1 字节。

常见的易错点:

一、变量与数据类型

  1. 忘记指定变量类型

    • 错误示例

      a = 5; // 忘记指定变量a的类型
    • 正确做法

      int a = 5; // 明确指定变量a为整数类型
    • 易错分析:在C++中,变量在声明时必须指定其类型,否则编译器无法识别变量的数据类型,从而导致编译错误。

  2. 混淆变量类型

    • 错误示例:

      string a = 5; // 尝试将整数赋值给字符串类型变量
    • 正确做法:

      int a = 5; // 整数类型变量
      string b = "5"; // 字符串类型变量,内容为数字字符
    • 易错分析:不同类型的变量之间不能直接赋值,除非通过类型转换。整数和字符串是两种完全不同的数据类型,不能直接相互赋值。

  3. 变量名使用不规范

    • 错误示例:

      int if = 10; // 使用关键字作为变量名
    • 正确做法:

      int num = 10; // 使用合法的变量名
    • 易错分析:C++中有一些保留的关键字,如ifelsefor等,这些关键字不能作为变量名使用。变量名只能包含字母、数字和下划线,且不能以数字开头。

二、基本语法结构

  1. 语句书写错误

    • 错误示例:

      int a = 5 // 忘记在语句末尾使用分号
    • 正确做法:

      int a = 5; // 每条语句的末尾必须加分号
    • 易错分析:在C++中,每条语句的末尾都需要用分号结束,否则编译器会报错。

  2. 括号使用不当

    • 错误示例:

      cout << "Hello" << endl // 忘记在函数调用时使用括号
    • 正确做法:

      cout << "Hello" << endl; // 正确使用括号调用函数
    • 易错分析:函数调用时,需要在函数名后加上括号,即使函数没有参数,括号也不能省略。

三、控制结构

  1. 条件语句(if-else)逻辑错误

    • 错误示例:

      char a = '5';
      if (a == 5) { // 字符类型与整数类型比较,逻辑错误
          cout << "等于5" << endl;
      } else {
          cout << "不等于5" << endl;
      }
    • 正确做法:

      char a = '5';
      if (a == '5') { // 字符类型与字符类型比较
          cout << "等于5" << endl;
      } else {
          cout << "不等于5" << endl;
      }
    • 易错分析:在条件判断中,要确保比较的类型一致。字符类型与整数类型不能直接比较,应该使用相同的类型进行比较。

  2. 循环语句(for、while)条件错误

    • 错误示例:

      for(int i = 1; i <= 5; i++) { // 意图是输出1到10的数字,但条件设置为i <= 5
          cout << i << endl;
      }
    • 正确做法:

      for(int i = 1; i <= 10; i++) { // 正确设置循环条件为i <= 10
          cout << i << endl;
      }
    • 易错分析:在设置循环条件时,要仔细考虑循环的起始值、终止值和步长,确保循环能够正确执行并满足需求。

四、运算与表达式

  1. 运算符优先级混淆

错误示例:

  • int a = 3 + 2 * 4; // 意图是(3 + 2) * 4,但由于运算符优先级问题,实际计算结果为3 + (2 * 4)

  • 正确做法:

  • int a = (3 + 2) * 4; // 使用括号明确运算顺序

易错分析:在表达式中,不同运算符的优先级是不同的。如果不了解运算符的优先级,可能会导致表达式计算结果与预期不符。因此,在使用运算符时,要注意其优先级,必要时使用括号明确运算顺序。

  1. 算术运算溢出或精度丢失

    • 错误示例(溢出):

      int a = 2147483647; // int类型的最大值
      int b = a + 1; // 溢出,结果未定义
    • 正确做法(避免溢出):

      long long a = 2147483647; // 使用更大范围的数据类型
      long long b = a + 1; // 正确计算结果
    • 错误示例(精度丢失):

      float a = 0.1f;
      float b = 0.2f;
      if (a + b == 0.3f) { // 由于浮点数精度问题,这个判断可能不成立
          cout << "相等" << endl;
      } else {
          cout << "不相等" << endl;
      }
    • 正确做法(处理精度问题):

      float a = 0.1f;
      float b = 0.2f;
      const float EPSILON = 1e-6; // 定义一个很小的数作为误差范围
      if (fabs(a + b - 0.3f) < EPSILON) { // 使用fabs函数计算绝对值,并比较是否在误差范围内
          cout << "相等" << endl;
      } else {
          cout << "不相等" << endl;
      }
    • 易错分析:在进行算术运算时,要注意数据类型的范围。对于大数运算,应使用更大范围的数据类型(如long long)来避免溢出。对于浮点数运算,由于浮点数的表示方式存在精度问题,因此在进行比较时不能直接使用==运算符,而应该使用一个很小的数(如EPSILON)作为误差范围进行判断。

五、其他常见错误

  1. 注释使用不当

    • 错误示例:

      // 这是一个注释
      int a = 5 // 注释后忘记加分号
    • 正确做法:

      // 这是一个注释
      int a = 5; // 注释后保持代码完整性
    • 易错分析:注释是帮助理解代码的工具,但不应影响代码的正确性。在添加注释时,要确保注释后的代码仍然完整且正确。

  2. 文件操作错误

    • 错误示例

      (在IDE中):

      • 忘记保存文件就运行程序。

      • 文件名或路径错误,导致无法找到文件。

    • 正确做法:

      • 在编辑完代码后,及时保存文件。

      • 确保文件名和路径正确无误,与代码中指定的文件名和路径一致。

    • 易错分析:在使用集成开发环境(IDE)进行

### GESP 一级 C++ 考试备考资料学习资源 #### 官方试卷下载 官方提供了GESP C++ 一级2023年12月的试卷下载服务,此试卷是GESP(全球教育和技能计划)认证考试的一部分,特别适合C++编程语言的初学者级别。通过下载并研究这些试卷,考生能够更好地了解考试的形式、题型以及难度水平[^2]。 #### 知识点总结 对于准备参加GESP C++ 一级考试的学生来说,掌握基本的数据类型是非常重要的基础之一。此外,《GESP C++ 一级知识点总结》文档指出,在C++中同样适用的是`printf`和`scanf`这两个来自C语言风格的输入输出函数,它们分别负责格式化的输出和输入操作[^3]。 #### 编程练习平台 为了提高实际编码能力,建议利用在线编程环境如LeetCode、Codeforces等来进行针对性训练。这类平台上通常会有许多针对不同层次的学习者设计的小挑战或竞赛活动,有助于巩固所学的知识点,并适应真实的编程场景需求。 #### 社区交流和支持 加入专门讨论GESP或其他相关技术话题的论坛或QQ群组也是不错的选择。在这里不仅可以找到更多优质的复习材料分享,还能其他正在备考的同学互动交流心得经验,共同进步成长。 ```cpp // 示例代码展示如何使用 printf 和 scanf 函数 #include <cstdio> int main() { int number; printf("请输入一个整数: "); scanf("%d", &number); printf("您输入的整数是:%d\n", number); return 0; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值