系列文章目录
学习路线: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重要时间节点
- 早期机械计算器
- 帕斯卡加法器 (1642):法国数学家布莱兹·帕斯卡设计了一种名为Pascaline的机械计算器,能够执行加减法操作,并且可以处理进位问题。这是最早的机械式十进制计算器之一。
- 莱布尼茨步进轮计算器 (1673):德国哲学家和数学家戈特弗里德·威廉·莱布尼茨发明了Step Reckoner,这是一种改进版的机械计算器,可以完成乘除运算。他还提出了二进制系统的思想,这在后来的计算机科学中起到了重要作用。
- 19世纪的自动计算装置
- 差分机设计 (1822):英国数学家查尔斯·巴贝奇开始设计差分机,旨在自动化数值表的制作,以减少人为错误。尽管他在有生之年未能完成一台完整的机器,但他的工作为后续计算机的发展奠定了基础。
- 分析机概念 (1837):巴贝奇进一步构思了分析机,这是一个更为复杂的装置,具备输入输出设备、存储器以及中央处理器,这些特性使得它可以被视为现代计算机的原型。阿达·洛芙莱斯(Ada Lovelace)为其编写了算法,她因此被认为是世界上第一位程序员。
电动与模拟计算机 - 电动制表机 (1890):美国统计学家赫尔曼·何乐礼(Herman Hollerith)开发了用于人口普查数据处理的穿孔卡片系统和电动制表机,大大加快了数据处理的速度。这个发明最终促成了IBM公司的成立。(注意这里纠正为1890年)
- 模拟计算机 (1930s):范内瓦·布什(Vannevar Bush)在美国麻省理工学院建造了微分分析仪,一种大型机械模拟计算机,用来解决复杂的数学方程。这类机器在二战期间用于导弹轨迹计算等方面。
- 第一代电子计算机
- 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个真空管,主要用于军事弹道计算。
- 存储程序计算机与晶体管时代
- 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)共同发明了晶体管,这项技术随后迅速应用于计算机制造中,取代了体积庞大且易损的真空管,极大提高了计算机的可靠性和效率。
- 集成电路和个人电脑革命
- 集成电路 (1958):杰克·基尔比(Jack Kilby)在德州仪器公司和罗伯特·诺伊斯(Robert Noyce)在仙童半导体公司分别独立发明了集成电路,这种小型化的电子组件将多个晶体管和其他元件集成在一个芯片上,开启了微型化的新时代。
- 个人电脑革命 (1970s):随着Intel推出微处理器(如Intel 4004),个人电脑开始出现,包括MITS Altair 8800、Apple II、Commodore PET等早期机型,它们改变了人们对于计算机的看法,让非专业人士也能接触到计算技术。
1.3重要人物
-
艾伦·图灵(1912年—1954年),英国数学家、逻辑学家,被称为“人工智能之父”。
-
冯·诺依曼(1903年—1957年),出生于匈牙利的美籍犹太人,是20世纪最著名的数学家之一,理论计算机科学和博弈论的奠基者,常被誉为“计算机之父”。
-
克劳德·香农(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直接交换信息的是主存。
- 内存和CPU一起构成了计算机的主机部分,它存储的信息可以被CPU直接访问。内存由半导体存储器组成,存取速度较快,但一般容量较小。内存中含有很多的存储单元,每个单元可以存放1个8位的二进制数,即1个字节(Byte,简称“B”)。
内存中的每个字节各有一个固定的编号,这个编号称为地址。CPU在存取存储器中的数据时是按地址进行的。所谓存储器容量指存储器中所包含的字节数,通常用KB、MB、GB、TB和PB作为存储器容量单位。它们之间的关系为:
1KB=1024B 1MB=1024KB 1G=1024MB 1TB=1024GB 1PB=1024 TB。