二级考纲
计算机的存储与网络
程序设计语言的特点
流程图的概念与描述
数据类型的转换,ASCII 编码
多层分支/循环结构
常用数学函数
知识点解析
1. 计算机的存储与网络
考点:ROM(只读存储器)、RAM(随机存取存储器)、Cache(高速缓存)的区别;计算机网络的分类;TCP/IP四层模型与OSI七层模型的对比;IP地址
重点:理解存储器的特性
存储器是计算机系统中用于存储程序、数据、以及中间计算结果的硬件设备。
存储程序—内存 执行程序—CPU- 外存储器:硬盘、优盘
内存储器:ROM 和 RAM
- ROM:Read Only Memory:只读存储器
- RAM:Random Access Memory:随机存取存储器 平时说的内存:RAM 4G,8G,16G
高速缓存器Cache:位于CPU与内存之间的临时存储器(做在CPU里面的),它的容量比内存小但交换速度快。由于CPU处理数据的速度极快,内存读写跟不上,缓存就起到中间数据交换的作用,它就像CPU的办公桌。作用:预读取、临时存储数据、暂存运算结果
- 高速缓存器 > 内存速度 > 外存速度
特性 | RAM | ROM | Cache |
---|---|---|---|
存储内容 | 存储正在运行的程序和数据 | 存储计算机的固件或启动程序 | 存储 CPU 最常访问的数据或指令 |
可变性 | 可读可写 | 只读(某些类型可写) | 可读可写(动态缓存可以更新数据) |
易失性 | 易失性(电源断开后数据丢失) | 非易失性 | 非易失性(缓存中的数据在断电时丢失,但 CPU 恢复时会重新加载) |
访问速度 | 较快 | 较慢 | 非常快,远高于 RAM 和 ROM |
容量 | 容量较大 | 容量较小 | 容量非常小(通常几 KB 到几十 MB) |
计算机网络是由计算机及其他设备(如服务器、路由器、交换机等)通过通信链路连接在一起的系统,目的是为了进行数据交换、资源共享和信息传播。
计算机网络的分类,按照覆盖范围分为:广域网(WAN)、城域网(MAN)、局域网(LAN)
国际标准化组织(ISO)提出的开放系统互联参考模型(OSI-7层)已成为网络体系结构的标准(理论标准)
TCP/IP与OSI最大的不同在于:OSI是一个理论上的网络通信模型,而TCP/IP则是实际运行的网络协议。
TCP/IP中常见的协议:FTP(文件传输协议)、HTTP(超文本传输协议)、HTTPS(安全超文本传输协议)、SMTP(电子邮件协议)、POP3(邮件读取协议)、Telnet(远程终端协议)
IP地址(Internet Protocol Address)是网络中每台计算机或设备的唯一标识符。通过IP地址,设备能够在网络中相互识别并进行数据交换。
IP地址分为两大类型:IPv4 和 IPv6。
- IPv4(Internet Protocol version 4)
- IPv4地址是32位的二进制数字,通常用四个十进制数表示,每个数的范围是0到255(即8位的二进制数表示)。例如:
192.168.1.1
。 - IPv4地址的格式通常是
A.B.C.D
,其中A、B、C、D为十进制数(0到255)。 - IPv4地址由两部分组成:网络部分和主机部分。
- IPv4地址是32位的二进制数字,通常用四个十进制数表示,每个数的范围是0到255(即8位的二进制数表示)。例如:
- IPv6(Internet Protocol version 6)
- IPv6地址是128位的二进制数字,通常用八组十六进制数字表示,每组四个字符,每组之间用冒号分隔。
- 例如:2001:0db8:85a3:0000:0000:8a2e:0370:7334。
- IPv6相较于IPv4,提供了更大的地址空间,解决了IPv4地址耗尽的问题。
IP地址由四段数字组成,每段取值范围为0-255。具体两大部分组成:
- 网络部分(Network):用于识别子网或网络。
- 主机部分(Host):用于识别网络中的具体设备。
IP地址分类
IP地址分为A、B、C、D、E五类,每一类有不同的划分规则和用途。
A类IP地址,可用的A类网络有126个,每个网络能容纳1亿多个主机。一般用于大型网络。
B类IP地址,可用的B类网络有16382个,每个网络能容纳6万多个主机。一般用于中型网络。
C类IP地址 ,C类网络可达209万余个,每个网络能容纳254个主机。一般用于小型网络。
域名
用数字表示IP地址不方便记忆与使用。为此引进了字符形式的IP地址,即域名。
其格式为:主机名.机构名.网络名.最高域名
例如:www.tuling208.com其中com为顶级域名(最高层域名)、tuling208分别为二级域名,www为主机名。 常见的顶级域名有国家顶级域名(cn中国、hk香港、tw台湾、jp日本、us美国等)、通用顶级域名(edu教育机构、gov政府部门、net网络组织、com商业组织、org非盈利性组织等)
真题举例
1.(判断题)域名是由一串用点分隔的名字来标识互联网上一个计算机或计算机组的名称,
CCF 编程能力等级认证官方网站的域名是 gesp.ccf.org.cn,其中顶级域名是gesp。
正确 错误
2.IPv4版本的因特网总共有( )个A类地址网络。
A. 65000 B. 200万 C. 126 D. 128
2.程序设计语言
考点:编程语言的分类(编译型、解释型);常见高级语言(C++、Python)的特点
重点:高级语言的执行方式
编程语言分类:机器语言、汇编语言、高级语言。
(1) 机器语言:最早出现的使用二进制代码编写的计算机能直接识别的语言。
(2) 汇编语言:用一些符号代替机器指令所产生的语言。虽然汇编语言比机器语言简单,但仍属于低级语言,汇编语言与计算机体系结构有关,在编写程序前需要花大量时间熟悉机器结构。
(3) 高级语言:人类容易理解的编程语言,近似日常会话的语言。比如:C、C++、Python、Java等
高级语言中有一类叫做面向对象的语言,比如:C++、Java、C#,请注意C语言不是面向对象的。
高级语言的执行过程
计算机不能直接执行高级语言编写的源码,需要“翻译”为其能理解的机器码才能运行。这种“翻译”有两种形式:编译型、解释型
(1) 编译型,例如C++
将源码直接转换为二进制代码,生成目标程序,然后将目标程序连接成可执行的程序。
流程为:高级语言源码—编译—>目标程序—连接—>可执行程序。
(2) 解释型,例如Python
由解释程序边扫描源码,边解释,将源码逐句解释,不产生目标程序。
流程为:高级语言源码—>解释程序—>可执行程序。
真题举例
(选择题) 高级语言编写的程序需要经过以下()操作,可以生成在计算机上运行的可执行代码。
A. 编辑 B. 保存 C. 调试 D.编译
(判断题)程序员用C、C++、Python、Stratch等编写的程序能在CPU直接执行( ).
正确 错误
3.流程图
考点:流程图的符号(如开始/结束框、输入输出框、判断框)及绘制规则;
重点:能看懂流程图描述的算法逻辑
- 流程图:使用图形表示算法的思路是一种极好的方法。
- 算法描述的方法有:自然语言、流程图、伪代码、高级程序语言等。
常用的符号
真题举例
(选择题)对整型变量N,如果它能够同时被3和5整除,则输出 N是含有至少两个质因数 。如果用流程图来描述处理过
程,则输出语句应该在哪种图形框中( )。
A. 圆形框 B. 椭圆形框 C. 平行四边形框 D. 菱形框
(选择题)下列流程图的输出结果是?( )
A. 优秀 B. 良好 C. 不及格 D. 没有输出
4.ASCII 编码
考点:常见字符的ASCII编码('A'-'Z'、'a'-'z'、'0'-'9')、字符编码之间的互相转换
重点:掌握字符转整型(int c='A'
) 及反向转换
美国信息交换标准代码是美国国家标准学会(ANSI)制定的,是一种标准的单字节(8位)字符编码方案,用于表示文本的数据
字符存放到内存单元时,并不是把字符本身放到内存单元中去,而是该字符相应的ASCII编码放到存储单元中。
ASCII编码特点:
- 用一个字节(8位)表示,最高位是0,一共能表示128个字符。
- 小(大)写字母及数字0-9的编码是连续的。
- 数字0-9码值为48-57,大写字符码值为65-90,小写字母码值为97-122
- 大小写字母ASCII值相差32
- 字符按ASCII值比较大小
真题举例
如果 a 为 char 类型的变量,下列哪个表达式可以正确判断“a 是小写字母?
A.a <= a <= z
B.a - 'a' <= 'z' - 'a'
C.'a' <= a <= 'z'
D.a >= 'a' && a <= 'z'
如果 a 为 char 类型的变量,且 a 的值为'C'(已知'C'的ASCII 码为67),则执行 cout << (a + 2);
会输出( )。
A. E B. C+2 C. C2 D. 69
数据类型转换
强制类型转换:(数据类型) (表达式)
- 如果表达式是一个变量或常量,括号可以省略
隐式(自动)类型转换
5.多层分支/循环结构
考点:客观和编程题、处理复杂条件、逻辑判断
重点:循环嵌套
多层分支结构:if语句、if...else语句、switch语句的嵌套
多层循环结构:while循环、for循环的嵌套
- 执行顺序:外部循环每执行一次,内部循环会完整的执行一遍
循环嵌套注意点
- 变量名唯一性:外层用
i
,内层用j
、k
,避免名称冲突导致逻辑错误。 - 变量重新初始化:若需在内层循环中重复使用变量,确保在进入内层前正确初始化(如累加器归零)。
- break控制语句:
break
仅退出当前层循环;需跳出多层时,可使用标志变量
- 变量名唯一性:外层用
真题举例
1.下面C++代码执行后的输出是( )。
int i,j;
for (i = 0; i < 5; i++)
for (j = i; j > 0; j -= 1)
printf("%d-",j);
A. 1-2-1-3-2-1-4-3-2-1-
B. 1-2-1-3-2-1-4-3-2-1
C. 0-0-1-0-1-2-0-1-2-3-
D. 0-0-1-0-1-2-0-1-2-3
2.下图的C++程序执行后的输出是( )。
for (i=0; i<5; i++)
for (j=0; j<i; j++)
cout <<j;
A. 0010120123
B. 01012012301234
C. 001012012301234
D. 01012012301234012345
3.下面C++代码执行后将输出 0123 。( )
for (i = 0; i < 5; i++)
for (i = 0; i < i; i++)
continue;
printf("%d\n", i);
4.下面的C++代码执行后将输出18行“OK”。( )
int i,j;
for (i = 8; i > 2; i-=2)
for (j =0; j < i; j++)
printf("OK\n");
正确 错误
5.执行下面的C++代码,有关说法正确的是( )【质数是指仅能被1和它本身整除的正整数】。
int N;
cin >> N;
bool Flag = true;
for ( int i = 2; i < N; i++){
if (i * i > N)
break;
if (N % i == 0){
Flag = false;
break;
}
}
if (Flag)
cout << N << "是质数" << endl;
else
cout << N << "不是质数" << endl;
A. 如果输入正整数,上面代码能正确判断N是否为质数
B. 如果输入整数,上面代码能正确判断N是否为质数
C. 如果输入大于等于0的整数,上面代码能正确判断N是否质数
D. 如将 Flag = true 修改为 Flag = N>=2? true:false 则能判断所有整数包括负整数、0、正整数是否为质
数
6.常用数学函数
函数名 | 函数 | 作用 | 举例 |
---|---|---|---|
绝对值函数 | abs(值) | 求表达式的绝对值 | abs(3)=3 abs(-4)=4 |
最大值函数 | max(值1,值2) | 求两个表达式的最大值 | max(4,3)=4 max(3.2,5.9)=5.9 |
最小值函数 | min(值1,值2) | 求两个表达式的最小值 | min(4,3)=3 min(3.2,5.9)=3.2 |
平方根函数 | sqrt(值) | 求表达式的平方根(结果是实数) | sqrt(16)=4.0 sqrt(5)=2.236 |
随机函数 | rand/srand() | 种子函数srand(seed) rand()产生一个[0...RAND_MAX]之间的数字 |
#include<bits/stdc++.h>
using namespace std;
int main(){
srand(time(NULL));//用当前时间当seed,随机种子
for(int i=1;i<=5;i++){
//随机产生5个0-9之间的数
cout<<rand()%10<<endl;
}
return 0;
}
真题举例
(判断题)在使用C++语言编写程序时,不能使用sqrt、abs等数学函数,包含<math.h>头文件就能够使用了。
正确 错误
(判断题)表达式sqrt(9.0)的计算结果为3,且结果类型为int。
正确 错误
下列4个表达式中,答案不是整数8的是?( )
A. abs(-8) B. min(max(8, 9), 10) C. int(8.88) D. sqrt(64)
在C++代码中,执行 srand(0) 后连续两次执行 rand() 的结果相等。 ( )
正确 错误
编程练习题单
编程题要求考生独立完成包含分支、循环嵌套结构的程序,解决实际问题,如质数筛选、累加求和、图形输出等。这些题目不仅需要考生掌握语法,还需要具备分析问题和解决问题的能力。
6种题型:1、图形打印 2、分离数位 3、简单枚举 4、迭代计算 5、质数判断 6、复杂分支(闰年或时间计算)
考点 | 题目编号 | 说明 |
---|---|---|
质数判断 | P1298. 素数判断 | 打标记 |
质数判断 | P1465. 找素数 | 打标记,多组数据变量初始化 |
分离数位 | P1308. 加加乐 | 循环 |
分离数位 | P1227. 回文数 | 客观题,组合新数 |
分离数位 | T1095. 数1的个数 | 循环嵌套 |
迭代计算 | T1071. 菲波那契数 | 对应真题:P1634 小明做题 |
迭代计算 | T1029. 求阶乘的和 | 单层循环或循环嵌套 |
图形打印 | P1346. 九九乘法表 | 循环嵌套执行顺序及次数 |
图形打印 | P1734. 小 Z 的 Z 矩阵 | 观察行列变化规律 |
简单枚举 | P2044. 百马百瓦问题 | |
简单枚举 | P1031. 换钞票 | |
复杂分支 | P1093. 每月天数 | |
复杂分支 | P1097. 时间规划 | |