【C++】GESP 一级手册

系列文章目录

学习路线:C++从入门到NOI学习路线

学习大纲:C++全国青少年信息学奥林匹克竞赛(NOI)入门级-大纲



前言

CCF编程能力等级认证,英文名Grade Examination of Software Programming(以下简称GESP),由中国计算机学会发起并主办。

GESP是全国唯一打通CSP-J/S(全国青少年信息学奥林匹克竞赛和CSP初赛)的编程能力等级认证。

通过GESP认证,学生可以获得免考CSP-J/S初赛的机会,大大提高了参加更高水平编程竞赛的机会和优势‌。此外,GESP的考试大纲与CSP-J/S的大纲基本吻合。

一、GESP 一级标准

1. 知识点详述

(1)了解计算机的基本构成(CPU,内存,I/O 设备等),了解 Windows、Linux等操作系统基本概念和常见操作,了解计算机的历史及在现代社会中的常见应用。

(2)熟悉集成开发环境使用(例如 Dev C++):创建文件、编辑文件、保存文件、编译、解释、调试。

(3)掌握基础的 cin 语句、scanf 语句、cout 语句、printf 语句,赋值语句等。

(4)掌握标识符、关键字、常量、变量、表达式的概念。

(5)掌握常量与变量的命名、定义、作用、初始化与赋值以及变量的自加与自减运算。

(6)掌握基础算术表达式:加、减、乘、除、整除、求余。

(7)掌握逻辑运算与(&&)、或(||)、非(!)。

(8)掌握关系运算:大于、大于等于、小于、小于等于、等于、不等于。

(9)掌握基础的数据类型的定义和使用(整型、实数型、字符型、布尔型)。

(10)掌握顺序结构程序的编写。

(11)掌握分支结构程序的编写,掌握 if 语句、if-else 语句、switch 语句,了解三目运算。

(12)掌握循环结构程序的编写,掌握 for、while、do-while 循环语句的使用以及continue 语句和 break 语句在循环中的应用。

(13)理解程序的注释和调试的概念。

2. 考核目标

学生通过计算机基础知识的学习,了解计算机的构成与操作,以及计算机的发展历程。通过编程基础知识以及语句的掌握,可以独立完成简单功能的顺序结构、分支结构、循环结构的程序。

3. 知识块

在这里插入图片描述

4. 知识点描述

编号 知识块 知识点
1 计算机基础知识 计算机的软硬件组成、常见操作、发展历程。
2 集成开发环境 创建文件、编辑文件、保存文件、编译、解释、调试。
3 结构化程序设计 顺序结构、分支结构、循环结构。
4 程序的基本语句 cin 语句、scanf 语句、cout 语句、printf 语句、赋值语句、复合语句、if 语句、switch 语句、for 语句、while 语句、do while 语句。
5 程序的基本概念 标识符、关键字、常量、变量、表达式的概念。常量与变量的命名、定义、作用。程序的注释。
6 基本运算 算术运算、逻辑运算、关系运算、变量自增与自减运算、三目运算、位运算。
7 基本数据类型 整数型: int,long long、实数型: float,double、字符型: char、布尔型: bool

5. 题型分布

单选题 判断题 编程题
15道(2分/道) 10道(2分/道) 2道(25分/道)

二、计算机基础知识

1.计算机的发展历程

1.1计算机发展的五个阶段划分

代别 年代 逻辑(电子)元件 应用范围
第一代 1946-1958 真空电子管 科学计算、军事研究
第二代 1959-1964 晶体管 数据处理、事物处理
第三代 1965-1970 小规模集成电路 工业控制的各个领域
第四代 1971-至今 大规模、超大规模集成电路 各个领域
第五代 现代 智能计算机系统 人工智能

1.2重要时间节点

  1. 早期机械计算器
  • 帕斯卡加法器 (1642):法国数学家布莱兹·帕斯卡设计了一种名为Pascaline的机械计算器,能够执行加减法操作,并且可以处理进位问题。这是最早的机械式十进制计算器之一。
  • 莱布尼茨步进轮计算器 (1673):德国哲学家和数学家戈特弗里德·威廉·莱布尼茨发明了Step Reckoner,这是一种改进版的机械计算器,可以完成乘除运算。他还提出了二进制系统的思想,这在后来的计算机科学中起到了重要作用。
  1. 19世纪的自动计算装置
  • 差分机设计 (1822):英国数学家查尔斯·巴贝奇开始设计差分机,旨在自动化数值表的制作,以减少人为错误。尽管他在有生之年未能完成一台完整的机器,但他的工作为后续计算机的发展奠定了基础。
  • 分析机概念 (1837):巴贝奇进一步构思了分析机,这是一个更为复杂的装置,具备输入输出设备、存储器以及中央处理器,这些特性使得它可以被视为现代计算机的原型。阿达·洛芙莱斯(Ada Lovelace)为其编写了算法,她因此被认为是世界上第一位程序员。
    电动与模拟计算机
  • 电动制表机 (1890):美国统计学家赫尔曼·何乐礼(Herman Hollerith)开发了用于人口普查数据处理的穿孔卡片系统和电动制表机,大大加快了数据处理的速度。这个发明最终促成了IBM公司的成立。(注意这里纠正为1890年)
  • 模拟计算机 (1930s):范内瓦·布什(Vannevar Bush)在美国麻省理工学院建造了微分分析仪,一种大型机械模拟计算机,用来解决复杂的数学方程。这类机器在二战期间用于导弹轨迹计算等方面。
  1. 第一代电子计算机
  • ABC计算机 (1937-1942):由约翰·阿塔纳索夫(John Atanasoff)和克利福德·贝瑞(Clifford Berry)在美国爱荷华州立大学制造的第一台电子数字计算机Atanasoff-Berry Computer (ABC),它使用二进制数和布尔逻辑来进行计算,但是并没有实现可编程性,所以通常ENIAC被认为是第一台实用的电子计算机。
  • Z3计算机 (1941):康拉德·楚泽(Konrad Zuse)在德国柏林研制成功Z3,这是第一台完全可编程的机电式计算机,采用二进制浮点运算,通过打孔胶片来输入程序。
  • ENIAC (1946):宾夕法尼亚大学的约翰·普雷斯珀·埃克特(J. Presper Eckert)和约翰·莫奇利(John Mauchly)领导团队完成了ENIAC的建造,它是世界上第一台通用电子数字计算机,使用了大约18,000个真空管,主要用于军事弹道计算。
  1. 存储程序计算机与晶体管时代
  • EDVAC报告 (1945):匈牙利裔美国数学家约翰·冯·诺依曼(John von Neumann)发表了《First Draft of a Report on the EDVAC》,在这份文档中他提出了“存储程序”的概念,即指令和数据都可以存储在同一内存中,这一思想成为了所有现代计算机架构的基础,也就是现代计算机的冯·诺依曼结构。
  • UNIVAC I (1951):由埃克特和莫奇利创建的Eckert-Mauchly Computer Corporation生产了世界上第一台商用大型计算机Universal Automatic Computer I (UNIVAC I),它被用来预测美国总统选举结果并在政府和商业领域广泛应用。
  • 晶体管 (1947) 和晶体管计算机 (1953):贝尔实验室的研究人员威廉·肖克利(William Shockley)、约翰·巴丁(John Bardeen)和沃尔特·布拉顿(Walter Brattain)共同发明了晶体管,这项技术随后迅速应用于计算机制造中,取代了体积庞大且易损的真空管,极大提高了计算机的可靠性和效率。
  1. 集成电路和个人电脑革命
  • 集成电路 (1958):杰克·基尔比(Jack Kilby)在德州仪器公司和罗伯特·诺伊斯(Robert Noyce)在仙童半导体公司分别独立发明了集成电路,这种小型化的电子组件将多个晶体管和其他元件集成在一个芯片上,开启了微型化的新时代。
  • 个人电脑革命 (1970s):随着Intel推出微处理器(如Intel 4004),个人电脑开始出现,包括MITS Altair 8800、Apple II、Commodore PET等早期机型,它们改变了人们对于计算机的看法,让非专业人士也能接触到计算技术。

1.3重要人物

  1. 艾伦·图灵(1912年—1954年),英国数学家、逻辑学家,被称为“人工智能之父”。

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

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

2.计算机的构成与操作

计算机系统由硬件系统和软件系统组成。 前者是借助电、磁、光、机械等原理构成的各种物理部件的有机组合,是系统赖以工作的实体。后者是各种程序和文件,用于指挥全系统按指定的要求进行工作。

在这里插入图片描述

2.1 冯·诺依曼式的计算机体系结构

数学家冯·诺依曼提出了计算机制造的三个基本原则,即采用二进制逻辑、程序存储执行以及计算机由五个部分组成(运算器、控制器、存储器、输入设备、输出设备),这套理论被称为冯·诺依曼体系结构。

在这里插入图片描述

冯-诺依曼的存储程序思想:把计算过程描述为由许多命令按一点顺序组成的程序,然后把程序和数据一起输入计算机,计算机对已存入的程序和数据处理后,输出结果。

2.2 哈佛结构

哈佛结构是一种将程序指令存储和数据存储分开的存储器结构。哈佛结构是一种并行体系结构,它的主要特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个独立的存储器,每个存储器独立编址、独立访问。

在这里插入图片描述

3.计算机硬件系统

硬件系统主要由中央处理器、存储器、输入输出控制系统和各种外部设备组成。

3.1 中央处理器

中央处理器(Central Processing Unit,简称CPU)作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。

中央处理器主要包括两个部分,即控制器、运算器,其中还包括高速缓冲存储器及实现它们之间联系的数据、控制的总线。

运算器是指计算机中进行各种算术和逻辑运算操作的部件, 其中算术逻辑单元是中央处理核心的部分。

控制器由程序状态寄存器PSR,系统状态寄存器SSR, 程序计数器PC,指令寄存器等组成,其作为“决策机构”,主要任务就是发布命令,发挥着整个计算机系统操作的协调与指挥作用。

3.2 图形处理器

图形处理器(Graphics Processing Unit,GPU),又称显示核心(display core),显示芯片(display chip),视觉处理器(video processor),是一种用于处理图像和图形运算工作的协处理器 ,广泛应用在个人电脑、工作站和一些移动设备(如智能手机、平板电脑等)。

3.3 存储器

存储器是用来存储程序和各种数据信息的记忆部件。存储器可分为主存储器(简称主存或内存)和辅助存储器(简称辅存或外存)两大类。和CPU直接交换信息的是主存。

  1. 内存和CPU一起构成了计算机的主机部分,它存储的信息可以被CPU直接访问。内存由半导体存储器组成,存取速度较快,但一般容量较小。内存中含有很多的存储单元,每个单元可以存放1个8位的二进制数,即1个字节(Byte,简称“B”)。
    在这里插入图片描述

内存中的每个字节各有一个固定的编号,这个编号称为地址。CPU在存取存储器中的数据时是按地址进行的。所谓存储器容量指存储器中所包含的字节数,通常用KB、MB、GB、TB和PB作为存储器容量单位。它们之间的关系为:
1KB=1024B 1MB=1024KB 1G=1024MB 1TB=1024GB 1PB=1024 TB。

### 关于GESP 4级的相关信息 #### GESP概述 GESP 是由中国计算机学会(CCF)主办的一项编程能力等级认证项目,旨在评估个人的编程技能水平。该认证体系覆盖多个级别和多种编程语言,适用于不同年龄段的学习者[^1]。 #### GESP 4级考试大纲概览 虽然目前未提供具体的四级考试大纲内容,但从整体框架来看,GESP 的各级别通常会基于前一级别的基础上增加难度并扩展知识点范围。以下是可能涉及的内容领域: - **高级数据结构** 学员需掌握更复杂的数据结构应用,例如链表、栈、队列以及二叉树等基本操作[^4]。 - **算法基础** 包括但不限于递归函数的设计与实现、排序算法(如快速排序、归并排序)、查找算法(如二分法)。这些都将是考核的重点部分[^2]。 - **面向对象初步概念** 如果所选语言支持OOP特性,则可能会考察类定义及其成员属性方法声明等内容;对于C++而言尤其如此。 - **文件处理** 掌握简单的文本读写功能也是必要环节之一,在实际问题解决过程中经常需要用到外部存储设备交互技术。 #### 报名流程及相关事项说明 关于如何参与GESP四层测试活动的具体安排如下所示: - **官方渠道注册**: 所有希望参加的人士均应访问中国计算机学会官方网站完成在线报名手续,并按照指引缴纳相应费用[^3]. - **时间节点关注**: 不同批次之间的开放日期有所差异,请务必留意最新公告以便及时获取准确的时间节点信息. - **备考资源利用**: 官方文档中提到每一轮次之前都会公布详细的指导手册供参考学习之用,建议充分利用此类材料做好充分准备. ```python # 示例代码展示:假设这是针对某项特定任务编写的 Python 函数 def process_data(input_file, output_file): try: with open(input_file, 'r') as file_in: data = file_in.readlines() processed_data = [] for line in data: # 对每一行执行必要的转换逻辑 cleaned_line = line.strip().upper() # 示例操作:去除空白符并将字符转为大写 processed_data.append(cleaned_line) with open(output_file, 'w') as file_out: file_out.writelines(processed_data) except Exception as e: print(f"Error during processing: {e}") ``` 上述脚本片段仅用于演示目的,展示了有关文件输入/输出的基本技巧,这类主题很可能成为第四阶段测验的一部分。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

明月别枝惊鹊丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值