电话18065871965

邮箱qidianxingcheng@163.com

地址三明市三元区乾龙新村69幢B座2楼

2019CSP-J组初赛真题解析1-15

2022年9月17日 1,871

1.中国的国家顶级域名是(     ) 

A. .cn 

B. .ch 

C. .chn 

D. .china

背景知识

域名

英文Domain Name,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识(有时也指地理位置)。 

DNS
由于IP地址具有不方便记忆并且不能显示地址组织的名称和性质等缺点,人们设计出了域名,并通过网域名称系统(DNS,Domain Name System)来将域名和IP地址相互映射,使人更方便地访问互联网,而不用去记住能够被机器直接读取的IP地址。 


DNS的功能

在Internet早期,应用程序是通过一个本地文件进行主机名到网络地址或网络地址到主机名的转换的,在UNIX系统中,该文件为/etc/hosts。这种机制在一个主机数不多的小型网络中是可行的,但随着网络规模的扩大,这种机制在网络主机名的唯一性、/etc/hosts文件的维护以及服务器和网络负载等方面的弊端就暴露出来了。

DNS的设计解决了这些问题,它通过在网络中创建不同的区域(一个区域代表该网络中要命名资源的管理集合),并采用一个分布式数据库系统进行主机名和地址的查询。当在客户机的浏览器中键入要访问的主机名时,就会触发一个IP地址的查询请求,该请求会自动发送到默认的DNS服务器,DNS服务器就会从数据库中查询该主机名所对应的IP地址,并将找到的IP地址作为查询结果返回。浏览器获得IP地址后,就根据IP地址在Internet中定位所要访问的资源。

DNS的组成

DNS采用层次化的分布式数据结构,其数据库系统分布在因特网上不同地域的DNS服务器上,每个DNS服务器只负责整个域名数据库中的一部分信息。整个DNS系统主要由3部分组成:

① 域名空间:指定结构化的域名层次结构和相应的数据。

② 域名服务器:服务器端用于管理区域(zone)内的域名或资源记录,并负责其控制范围内所有主机的域名解析请求的程序。

③ 解析器:客户端向域名服务器提交解析请求的程序。

整个Internet的域名系统采用树形层次结构,由许多的域(domain)组成,从上到下依次为根域、顶级域、二级域及三级域等,如下图所示:

常见域名分类

1.类别域名:共有7个,也就是现在通常说的国际域名。由于Internet最初是在美国发源的,因此最早的域名并无国家标识,人们按用途把它们分为几个大类,它们分别以不同的后缀结尾:.com(用于商业公司);.net(用于网络服务);.org(用于组织协会等);.gov(用于政府部门);.edu(用于教育机构);.mil(用于军事领域);.int(用于国际组织)。

2.国别域名(地理顶级域名):共有243个国家和地区的代码。例如.CN代表中国,.UK代表英国,.US代表美国。其中.cn是中国专用的顶级域名, 其注册归CNNIC(中国互联网络信息中心)管理, 以.cn结尾的二级域名我们简称为国内域名。注册国家代码顶级域名下的二级域名的规则和政策与不同的国家的政策有关。

3.是新顶级域名注册也就是所谓的“新顶级域名”,是ICANN(互联网名称与数字地址分配机构)根据互联网发展需要,在2000年11月做出决议,从2001年开始使用的国际顶级域名,也包含7类:biz, info,name,pro,aero, coop, museum。 

知识点分类:

计算机基础与编程环境-计算机网络和Internet的基本概念

答案解析:

根据背景知识的分析可知,中国的国家顶级域名是.cn。

所以本题的正确答案应该选择A。

2.二进制数11 1011 1001 0111和01 0110 1110 1011进行逻辑与运算的结果是(     )。

A. 01 0010 1000 1011

B. 01 0010 1001 0011

C. 01 0010 1000 0001

D. 01 0010 1000 0011

解析:

背景知识:

进制

进制也就是进位计数制,是人为定义的带进位的计数方法。对于任何一种进制—X进制,就表示每一位上的数运算时都是逢X进一位。十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,x进制就是逢x进位。

我们日常生活中有很多进制的例子,例如:

 一分钟六十秒,逢六十进一,就是六十进制;

 一天二十四小时,逢二十四进一,就是二十四进制;

 一星期七天,逢七进一,就是七进制;

 一年十二个月,逢十二进一,就是十二进制;

计算机采用二进制的原因

1、技术实现简单:计算机是由逻辑电路组成,逻辑电路通常只有两个状态,开关的接通与断开,这两种状态正好可以用“1”和“0”表示。

2、简化运算规则:两个二进制数和、积运算组合各有三种,运算规则简单,有利于简化计算机内部结构,提高运算速度。

3、适合逻辑运算:逻辑代数是逻辑运算的理论依据,二进制只有两个数码,正好与逻辑代数中的“真”和“假”相吻合。

4、易于进行转换:二进制与十进制、八进制和十六进制数易于互相转换。

5、表示数据抗干扰能力强,可靠性高:因为每位数据只有高低两个状态,当受到一定程度的干扰时,仍能可靠地分辨出它是高还是低。

逻辑运算

逻辑运算又称布尔运算。布尔用数学方法研究逻辑问题,成功地建立了逻辑演算。他用等式表示判断,把推理看作等式的变换。这种变换的有效性不依赖人们对符号的解释,只依赖于符号的组合规律 。这一逻辑理论人们常称它为布尔代数。20世纪30年代,逻辑代数在电路系统上获得应用,随后,由于电子技术与计算机的发展,出现各种复杂的大系统,它们的变换规律也遵守布尔所揭示的规律(百度百科)。

常见的逻辑运算有:

  1. 与运算

“∧” 表示”与”,两个条件都成立时,结果才成立。

1 ∧ 1 = 1

1 ∧ 0 = 0

0 ∧ 1 = 0

0 ∧ 0 = 0

2. 或运算

“∨” 表示”或”,两个条件中只要有一个成立,结果就成立。

1 ∨ 1 = 1

1 ∨ 0 = 1

0 ∨ 1 = 1

0 ∨ 0 = 0

3. 非运算

“┐”表示”非”,与原逻辑状态相反。

┐1 = 0

┐ 0 =1

逻辑运算优先级:括号>非>与>或

知识点分类:

计算机基础知识-进制与进制转换

C++程序设计-基本运算-逻辑运算-与、或、非


答案解析:

根据背景知识的介绍,对题目中给出的两个二进制数进行逻辑与运算:

11 1011 1001 0111

01 0110 1110 1011

——————–

01 0010 1000 0011

运算的结果为:01 0010 1000 0011

所以本题的正确答案应该选D。

3.一个32位整型变量占用(     )个字节。

A. 32

B. 128

C. 4

D. 8

解析:

背景知识:

存储单位

在计算机内部,信息都是釆用二进制的形式进行存储、运算、处理和传输的,常用的信息存储单位如下:

位(bit)

英语Binary Digits的缩写,最小的存储单位,1个比特存储1个二进制数。

字节(Byte)

表示存储容量的基本单位,1个字节包含8个比特位,即:1Byte=8bits。

字(Word)

两个字节称为一个字,1个字包含2个字节,每个汉字的存储单位都是1个字。

千字节(KB)

英语KiloByte的缩写,1个千字节包含1024个字节,即:1KB=1024B。

兆字节(MB)

英语MegaByte的缩写,1个兆字节包含1024个千字节,即:1MB=1024KB。

千兆字节(GB)

英语GigaByte的缩写,1个千兆字节包含1024个兆字节,即:1GB=1024MB。

太字节(TB)

英语TeraByte的缩写,1个太字节包含1024个千兆字节,即:1TB=1024GB。

拍字节(PB)

英语PetaByte的缩写,1个拍字节包含1024个太字节,即:1PB=1024TB。

艾字节(EB)

英语ExaByte的缩写,1个艾字节包含1024个拍字节,即:1EB=1024PB。

泽字节(ZB)

英语ZettaByte的缩写,1个泽字节包含1024个艾字节,即:1ZB=1024EB。

整型变量

整型变量表示的是整数类型的数据,对机器而言,整数是最自然的大小。

C++中整型变量的分类有:

1.基本型:类型说明符为 int
2.短整量:类型说明符为short int或short
3.长整型:类型说明符为long int 或 long
4.无符号型:类型说明符为unsigned

知识点分类:

计算机基础与编程环境-进制的基本概念与进制转换、字节与字

答案解析:

根据背景知识的介绍,一个32位整型变量占用的字节数是:32/8=4

所以正确答案应该选C。

4.若有如下程序段,其中s、a、b、c均已定义为整型变量,且a、c均已赋值(c大于0)。

s=a; 

for (b=1; b<=c; b++) s=s-1;

则与上述程序段功能等价的赋值语句是(     )。 

A.s=a-c;

B.s=a-b;

C.s=s-c; 

D.s=b-c;

解析:

背景知识:

整型变量

整型变量表示的是整数类型的数据,对机器而言,整数是最自然的大小。

C++中整型变量的分类有:

1.基本型:类型说明符为 int
2.短整量:类型说明符为short int或short
3.长整型:类型说明符为long int 或 long
4.无符号型:类型说明符为unsigned

循环结构

循环结构是指在程序中需要反复执行某个功能而设置的一种程序结构。它由循环体中的条件,判断继续执行某个功能还是退出循环。

C++ 编程语言提供了以下几种循环类型:

  循环类型                      描述
while循环当给定条件为真时,重复语句
for循环多次执行一个语句
do…while循环除了在循环主体结尾测试条件,其他与while语句类似
嵌套循环在上述三种循环内使用一个或多个循环

知识点分类:

C++程序设计-程序基本语句-for语句,while语句,do while语句


答案解析:

根据背景知识的介绍,题目中程序段

s=a; 

for (b=1; b<=c; b++) s=s-1;

实现的功能是:

  1. 把变量a的值赋给变量s;
  2. 将表达式s=s-1循环c次;

因为s=s-1的表达式循环了c次,而变量a的值赋给变量s,相当于a减了c个1,所以与之功能等价的赋值语句应该是s=a-c

也可以通过运行程序进行验证:

首先使用题目中给出的程序段(假设变量a的值为20,变量c的值为10):

程序运行结果为:


然后使用s=a-c替换题目中给出的程序段(假设变量a的值为20,变量c的值为10):

通过两段程序运行的结果可知:

使用程序段

s=a-c

代替程序段

s=a; 

for (b=1; b<=c; b++) s=s-1;

变量s的值不变。

所以本题的正确答案应该选A。

5.设有100个已排好序的数据元素,采用折半查找时,最大比较次数为(     )

A. 7

B. 10

C. 6

D. 8

解析:

背景知识:

折半查找

也称为二分法,英语(Binary Search)。用于查找元素在已排序数组中的位置。在这种方法中,总是在数组的全部或者一部分中间搜索元素。

折半查找只能在已排序(递增或递减)的项目列表上实现。如果元素尚未排序,则需要先对它们进行排序后再进行查找。

知识点分类:

算法-基础算法-二分法

答案解析:

根据背景知识的介绍,本题中对100个已排好序的数据元素采用折半查找。思路是首先将待查记录所在范围缩小一半,然后逐步缩小,直至找到需要查找的元素。

对于有序的100个元素进行查找:

第一次比较范围缩小到50

第二次比较范围缩小到25

第三次比较范围缩小到13

第四次比较范围缩小到7

第五次比较范围缩小到4

第六次比较范围缩小到2

第七次就可以找到查找的元素。

代码实现如下:

程序运行结果如下图所示:

通过程序运行结果可知:在100个元素中查找数字99,共进行了7次查找。

所以正确答案应该选A。

6.链表不具有的特点是(    )
A. 插入删除不需要移动元素 

B. 不必事先估计存储空间
C. 所需空间与线性表长度成正比 

D. 可随机访问任一元素

解析:

背景知识:

栈(stack)

一种只在一端进行插入和删除操作的特殊线性表。插入和删除操作都作用在栈顶(Top)位置,遵循后进先出的原则。

队列(queue)

队列是一种只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作的特殊线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。

链表(list)

链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现。链表的每个元素称为一个节点,每个节点都可以存储在内存中的不同的位置。链表由一系列结点组成,结点可以在运行时动态生成。

每个结点包括两个部分:

  • 存储数据元素的数据域,用于存储元素本身的数据信息
  • 存储下一个结点地址的指针域,用于存储其直接后继的节点信息

链表分为:

1. 单链表 Single Linked List

2. 循环单链表 Circular Single Linked List

3. 双向链表 Double Linked List

4. 双向循环链表 Double Circular Linked List

向量(vector)

向量是一种对象实体, 能够容纳许多其他类型相同的元素, 向量属于STL(Standard Template Library, 标准模板库)中的一种自定义的数据类型, 可以认为向量是增强版的数组。

在C++程序中使用向量时, 需要包含头文件 vector:

#include<vector>

向量与数组相比其优点在于它能够根据需要随时自动调整自身的大小以便容下所要放入的元素。此外, 向量也提供了许多的方法来对自身进行操作。

线性表(linear list)

具有线性关系的数据存储到计算机中所使用的存储结构。一个线性表是n个具有相同特性的数据元素的有限序列。

知识点分类:

C++程序设计-STL模板应用-栈(stack)、队列(queue)、链表(list)、向量(vector)等容器


答案解析:

根据背景知识的分析可知,选项A、B、C均是链表的特点

而选项D“可随机访问任一元素”则是线性表的特点

本题的正确答案应该选D。

7.把8个同样的球放在5个同样的袋子里,允许有的袋子空着不放,问共有多少种不同的分法?(    )
提示:如果8个球都放在一个袋子里,无论是哪个袋子,都只算同一种分法。
A. 22 

B. 24 

C. 18 

D. 20

解析:

背景知识:

排列(Permutation)

从n个不同元素中,任取m(m≤n)个元素,按照一定的顺序排成一列,叫做从n个元素中取出m个元素的一个排列。

从n个不同元素中取出m(m≤n)个元素的所有排列的个数,叫做从n个不同元素中取出m个元素的排列数,用符号P(n,m)表示。

计算公式是:P(n,m)=n(n-1)(n-2)……(n-m+1)=n!/(n-m)!

n!表示n(n-1)(n-2)…1,规定0!=1。

例如:P(6,2) = 6!/(6-2)! = 6!/4! = 6*5*4*3*2*1/4*3*2*1 = 30

组合(Combination)

从n个不同元素中,任取m(m≤n)个元素并成一组,叫做从n个元素中取出m个元素的一个组合。

从n个不同元素中取出m(m≤n)个元素的所有组合的个数,叫做从n个不同元素中取出m个元素的组合数,用符号c(n,m)表示。

计算公式是:C(n,m)=P(n,m)/m!

n!表示n(n-1)(n-2)…1,规定0!=1。

例如:C(6,2) = P(6,2) / 2! = 6*5*4*3*2*1/2*1 = 15

球盒问题 

球盒问题是指把 n个球放到 m个盒子里的方案数。它是组合数学的一个非常重要的问题,常见的情况有以下8种:

1.球相同  盒不同 无空盒

2.球相同  盒不同 允许空盒

3.球不同  盒相同 无空盒

4.球不同  盒相同 允许空盒

5.球不同  盒不同 无空盒

6.球不同  盒不同 允许空盒

7.球相同  盒相同 无空盒

8.球相同  盒相同 允许空盒

知识点分类:

数学-组合数学-组合及计算公式


答案解析:

首先考虑5个袋子都不空的情况,再考虑4个袋子不空的情况,…,最后考虑只有一个袋子不空的情况(这种分法只算1种),最后把所有情况的分法相加就可以得到最终的答案。

  • 使用5个袋子装8个球有3种分法:

1+1+1+1+4 = 8

1+1+1+2+3 = 8

1+1+2+2+2 = 8

  • 使用4个袋子分8个球有5种分法:

1+1+1+5=8

1+1+2+4=8

1+1+3+3=8

1+2+2+3=8

2+2+2+2=8

  • 使用3个袋子分8个球有5种分法:

1+1+6=8

1+2+5=8

1+3+4=8

2+2+4=8

2+3+3=8

  • 使用2个袋子分8个球有4种分法:

1+7=8

2+6=8

3+5=8

4+4=8

  • 使用1个袋子分8个球有1种分法(题目提示中有说明):

8=8

所以分法共有:3+5+5+4+1 = 18 种

本题的正确答案应该选C。

8.一棵二叉树如图所示,若采用顺序存储结构,即用一维数组元素存储该二叉树中的结点(根结点的下标为1,若某结点的下标为i ,则其左孩子位于下标2i处、右孩子位于下标2i+1处),则该数组的最大下标至少为(      )。

A. 6

B. 10

C. 15

D. 12

解析:

背景知识:

二叉树

叉树(Binary Tree)是n(n>=0)个结点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根节点和两棵互不相交的、分别称为根节点的左子树和右子树的二叉树组成。

满二叉树

在一棵二叉树中。如果所有分支结点都存在左子树和右子树,并且所有叶子都在同一层上,这样的二叉树称为满二叉树。

完全二叉树

对一棵具有n个结点的二叉树按层编号,如果编号为i(1<=i<=n)的结点与同样深度的满二叉树中编号为i的结点在二叉树中位置完全相同,则这棵二叉树称为完全二叉树。

知识点分类:

数据结构-简单树-二叉树的定义及其基本性质


答案解析:

根据题目描述和背景知识可知:采用顺序存储结构,用一维数组元素存储该二叉树中的结点。根结点的下标为1,若某结点的下标为i ,则其左孩子位于下标2i处、右孩子位于下标2i+1处。当二叉树为满二叉树时,最大元素的下标最大,位置在树的最右分枝的端结点上,下标为15,如下图所示:

本题的正确答案应该选C。

9.100以内最大的素数是(    )。
A. 89 

B. 97 

C. 91 

D. 93

解析:

背景知识:

素数

素数一般指质数(prime number)。质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。

合数

指在大于1的整数中除了能被1和本身整除外,还能被其他数(0除外)整除的数。

质数性质

  • 质数p的约数只有两个:1和p。
  • 初等数学基本定理:任一大于1的自然数,要么本身是质数,要么可以分解为几个质数之积,且这种分解是唯一的。
  • 质数的个数是无限的。
  • 质数的个数公式π(n)是不减函数。
  • 若n为正整数,在n的2次方到(n+1)的2次方 之间至少有一个质数。
  • 若n为大于或等于2的正整数,在n到n!之间至少有一个质数。
  • 若质数p为不超过n(n大于等于4)的最大质数,则p>n/2 。

知识点分类:

数学-初等数论-整除、因数、倍数、指数、质数、合数、同余等概念


答案解析:

根据背景知识的介绍,本题可以用排除法:

A 89 是质数;

B 97 是质数;

C 91 可以被13整除,是合数;

D 93 可以被3整除,是合数;

而97>89

本题的正确答案应该选C。

10. 319和377的最大公约数是( )。
A. 27 

B. 33 

C. 29 

D. 31

解析:

背景知识:

最大公约数

最大公约数(greatest common divisor,简写为gcd),指两个或多个整数共有因子中最大的一个。

求最大公约数方法

1.质因数分解法

原理:

质因数:如果一个数的因数是质数,这个因数就是它的质因数。

分解质因数:把一个合数用质因数相乘的形式表示出来,叫作分解质因数。

具体步骤如下:

  1. 把需要比较的两个或多个整数进行质因数分解;
  2. 提取分解出的全部公有质因数;
  3. 将第2步中提取的公有质因数连乘就可以得到这几个数的最大公约数。

例如求24和30的最大公约数。

第一步:分解24和30;

24=2X2X2X3

30=2X3X5

第二步:24和60的公有质因数为2、3;

第三步:24和30的最大公约数为:2X3=6。

2.辗转相除法

原理:

辗转相除法, 又名欧几里德算法(Euclidean algorithm),求两个正整数之最大公因子的算法。
设两数为a、b(b<a),用gcd(a,b)表示a,b的最大公约数,r=a mod b 为a除以b以后的余数,k为a除以b的商,即a÷b=k…….r。辗转相除法即是要证明gcd(a,b)=gcd(b,r)。

具体步骤如下:
1.令c=gcd(a,b),则设a=mc,b=nc;
2.根据前提可知r =a-kb=mc-knc=(m-kn)c;
3.根据第二步结果可知c也是r的因数。
可以断定m-kn与n互质【否则,可设m-kn=xd,n=yd,(d>1),则m=kn+xd=kyd+xd=(ky+x)d,则a=mc=(ky+x)dc,b=nc=ycd,故a与b最大公约数成为cd,而非c,与前面结论矛盾】
从而可知gcd(b,r)=c,继而gcd(a,b)=gcd(b,r)。

3.更相减损法

原理:

更相减损术是出自《九章算术》的一种求最大公约数的算法。《九章算术》是中国古代的数学专著,其中的“更相减损术”可以用来求两个数的最大公约数,即“可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也。以等数约之。”

具体步骤如下:
1:任意给定两个正整数;判断它们是否都是偶数。若是,则用2约简;若不是则执行第二步;
2:以较大的数减较小的数,接着把所得的差与较小的数比较,并以大数减小数。继续这个操作,直到所得的减数和差相等为止;
则第一步中约掉的若干个2与第二步中等数的乘积就是所求的最大公约数。
其中所说的“等数”,就是最大公约数。

知识点分类:

数学-初等数论-整除、因数、倍数、指数、质数、合数、同余等概念

答案解析:

本题采用质因数分解法进行求解:

319=11X29

377=13X29

两个整数的公有质因数只有29,所以它们最大公约数是29。

本题的正确答案应该选C。

11.新学期开学了,小胖想减肥,健身教练给小胖制定了两个训练方案。
方案一:每次连续跑3公里可以消耗300千卡(耗时半小时);
方案二:每次连续跑5公里可以消耗600千卡(耗时1小时)。
小胖每周周一到周四能抽出半小时跑步,周五到周日能抽出一小时跑步。
另外,教练建议小胖每周最多跑21公里,否则会损伤膝盖。
请问如果小胖想严格执行教练的训练方案,并且不想损伤膝盖,每周最多通过跑步消耗多少千卡?(   )
A. 3000 

B. 2500 

C. 2400 

D. 2520

解析:

背景知识:

枚举法 

枚举法是利用计算机运算速度快,精确度高的特点,对要解决问题的所有可能情况,一个不漏地进行检验,从中找出符合要求的答案,因此枚举法是通过牺牲时间来换取答案的全面性。在进行归纳推理时,如果逐个考察了某类事件的所有可能情况,因而得出一般结论,那么这结论是可靠的,这种归纳方法叫做枚举法。

枚举法的特点

枚举法的主要特点有:
1、得到的结果肯定是正确的;
2、可能做了很多的无用功,浪费了宝贵的时间,效率低下;
3、通常会涉及到求极值(如最大,最小,最高,最重等);
4、数据量大的话,可能会造成时间崩溃。

知识点分类:

算法-入门算法-枚举法


答案解析:

设方案1执行x天,方案2执行y天

根据题目描述可得以下不等式:

3x+5y<=21

x+y<=7

y<=3

题目要求计算每周最多通过跑步消耗多少千卡,就是求300x+600y的最大值。

通过枚举法可得最优方案为x=2、y=3;此时300x+600y为2400。

本题的正确答案应该选C。

12.—副纸牌除掉大小王有52张牌,四种花色,每种花色13张。
假设从这52张牌中随机抽取13张纸牌,则至少(   )张牌的花色一致。
A. 4 

B. 2 

C. 3 

D. 5 

解析:

背景知识:

抽屉原理

抽屉原理又被称为鸽巢原理,也称为狄利克雷抽屉原理、鸽笼原理。抽屉原理是由德国著名的数学家狄利克雷提出的。

抽屉原理的一般含义为:“如果每个抽屉代表一个集合,每一个苹果就可以代表一个元素,假如有n+1或多于n+1个元素放到n个集合中去,其中必定至少有一个集合里有两个元素。” 抽屉原理有时也被称为鸽巢原理(“如果有五个鸽子笼,养鸽人养了6只鸽子,那么当鸽子飞回笼中后,至少有一个笼子中装有2只鸽子”),它是组合数学中一个重要的原理。

原理1:

把多于n个的物体放到n个抽屉里,则至少有一个抽屉里的东西不少于两件。 

原理2:

把多于m*n(m乘以n)个的物体放到n个抽屉里,则至少有一个抽屉里有不少于m+1的物体。

原理3:

把无穷多件物体放入n个抽屉,则至少有一个抽屉里有无穷个物体。

狄利克雷简介

德国著名数学家。对数论、数学分析和数学物理有突出贡献,是解析数论的创始人之一。1805年2月13日生于迪伦,1859年5月5日卒于格丁根。中学时曾受教于物理学家G.S.欧姆;1822~1826年在巴黎求学,深受J.-B.-J.傅里叶的影响。回国后先后在布雷斯劳大学、柏林军事学院和柏林大学任教27年,对德国数学发展产生巨大影响。1839年任柏林大学教授,1855年接任C.F.高斯在格丁根大学的教授职位。狄利克雷是高斯的学生和继承人,对高斯的算术研究十分喜爱,狄利克雷的数论讲义是高斯算术研究的进一步发展,数论讲义后来对许多数学家都产生了巨大的影响。

知识点分类:

数学-组合数学


答案解析:

根据背景知识中抽屉原理,把4种花色看做4个抽屉,最差情况为:

抽出12张纸牌,每个抽屉3张(相同花色的纸牌都是3张),那么再任意抽出一张纸牌,无论放入哪个抽屉,都有一种花色的纸牌数量是4张。

也可以使用抽屉原理的平均分配方法:

13/4=3余1

剩余的1张纸牌一定要放入一个抽屉,所以必然有一个抽屉的纸牌数量为4。

本题的正确答案应该选A。

13.—些数字可以颠倒过来看,例如0、1、8颠倒过来还是本身,6颠倒过来是9, 9颠倒过来看还是6,其他数字颠倒过来都不构成数字。
类似的,一些多位数也可以颠倒过来看,比如106颠倒过来是901。假设某个城市的车牌只由5位数字组成,每一位都可以取0到9。
请问这个城市最多有多少个车牌倒过来恰好还是原来的车牌?(   )
A. 60 

B. 125 

C. 75 

D. 100

解析:

背景知识:

乘法原理

完成一件事需要分成n个步骤,做第一步有m1种不同的方法,做第二步有m2种不同的方法,……,做第n步有mn种不同的方法。那么完成这件事共有 N=m1×m2×m3×…×mn 种不同的方法,乘法原理是数学概率方面的基本原理。

排列(Permutation)

从n个不同元素中,任取m(m≤n)个元素,按照一定的顺序排成一列,叫做从n个元素中取出m个元素的一个排列。

从n个不同元素中取出m(m≤n)个元素的所有排列的个数,叫做从n个不同元素中取出m个元素的排列数,用符号P(n,m)表示。

计算公式是:P(n,m)=n(n-1)(n-2)……(n-m+1)=n!/(n-m)!

n!表示n(n-1)(n-2)…1,规定0!=1。

例如:P(6,2) = 6!/(6-2)! = 6!/4! = 6*5*4*3*2*1/4*3*2*1 = 30

组合(Combination)

从n个不同元素中,任取m(m≤n)个元素并成一组,叫做从n个元素中取出m个元素的一个组合。

从n个不同元素中取出m(m≤n)个元素的所有组合的个数,叫做从n个不同元素中取出m个元素的组合数,用符号c(n,m)表示。

计算公式是:C(n,m)=P(n,m)/m!

n!表示n(n-1)(n-2)…1,规定0!=1。

例如:C(6,2) = P(6,2) / 2! = 6*5*4*3*2*1/2*1 = 15

知识点分类:

数学-组合数学


答案解析:

根据题目的要求:城市的车牌只由5位数字组成,每一位都可以取0到9。

因为要求车牌倒过来恰好还是原来的车牌,所以可以分为3组来分析:

  • 车牌的第一位和第五位

第一位必须是数字0,1,6,8,9中的一个

当第一位为0时,第五位必须为0;

当第一位为1时,第五位必须为1;

当第一位为6时,第五位必须为9;

当第一位为8时,第五位必须为8;

当第一位为9时,第五位必须为6;

第一位和第五位的组合一共有5

  • 车牌的第二位和第四位

第二位必须是数字0,1,6,8,9中的一个

当第二位为0时,第四位必须为0;

当第二位为1时,第四位必须为1;

当第二位为6时,第四位必须为9;

当第二位为8时,第四位必须为8;

当第二位为9时,第四位必须为6;

第二位和第四位的组合也有5

  • 车牌的第三位

第三位必须是数字0,1,8中的一个

第三位的组合有3

根据乘法原理,车牌倒过来恰好还是原来的车牌的组合共有:

5*5*3=75

本题的正确答案应该选C。

14.假设一棵二叉树的后序遍历序列为DGJHEBIFCA,中序遍历序列为DBGEHJACIF,则其前序遍历序列为    (   )。
A. ABCDEFGHIJ
B. ABDEGHJCFI
C. ABDEGJHCFI
D. ABDEGHJFIC

解析:

背景知识:

数的遍历

树的遍历是指访问树的每个结点,且每个结点仅被访问一次。二叉树的遍历可按二叉树的构成以及访问结点的顺序分为三种方式:先序遍历、中序遍历、后序遍历。

先序遍历

遍历过程为:

  1. 1.访问根结点
  2. 2.先序遍历其左子树
  3. 3.先序遍历其右子树

先序遍历顺序=>  A  B  D  F  E  C  G  H  I

中序遍历

遍历过程为:

  1. 1.中序遍历其左子树
  2. 2.访问根结点
  3. 3.中序遍历其右子树

中序遍历顺序=>   D  B  E  F  A  G  H  C  I

后序遍历

其遍历过程为:

  1. 1.后序遍历其左子树
  2. 2.后序遍历其右子树
  3. 3.访问根结点

后序遍历顺序=>    D  E  F  B  H  G  I  C  A

知识点分类:

数据结构-简单树-二叉树的遍历:前序、中序、后序遍历


答案解析:

题目中二叉树的后序遍历序列为DGJHEBIFCA

可知根节点为A;

题目中二叉树的中序遍历序列为DBGEHJACIF

可知左子树的中序遍历为DBGEHJ,右子树的中序遍历为CIF;

通过递归分析,可画出本题对应的二叉树:

可以得到题目中二叉树的前序遍历序列为:ABDEGHJCFI

本题的正确答案应该选B。

15.以下哪个奖项是计算机科学领域的最高奖?(   )
A. 图灵奖

B. 鲁班奖 

C. 诺贝尔奖 

D. 普利策奖

解析:

背景知识:

图灵奖

图灵奖(Turing Award),全称A.M.图灵奖(ACM A.M Turing Award),是由美国计算机协会(ACM)于1966年设立的计算机奖项,名称取自艾伦·麦席森·图灵(Alan Mathison Turing,1912年6月23日-1954年6月7日),英国数学家、逻辑学家,被称为计算机之父、人工智能之父。旨在奖励对计算机事业作出重要贡献的个人 。图灵奖对获奖条件要求极高,评奖程序极严,一般每年仅授予一名计算机科学家。图灵奖是计算机领域的国际最高奖项,被誉为“计算机界的诺贝尔奖”。

鲁班奖 

中国建设工程鲁班奖(国家优质工程)(China Construction Engineering Luban Prize(National Prime-quality Project)),简称鲁班奖,是一项由中华人民共和国住房和城乡建设部指导、中国建筑业协会实施评选的奖项, 是中国建筑行业工程质量颁发的最高荣誉奖。 

诺贝尔奖

诺贝尔奖(瑞典语:Nobel priset,英语:Nobel Prize)是指根据诺贝尔1895年的遗嘱而设立的五个奖项,包括:物理学奖、化学奖、和平奖、生理学或医学奖和文学奖,旨在表彰在物理学、化学、和平、生理学医学以及文学上“对人类作出最大贡献”的人士;以及瑞典中央银行1968年设立的诺贝尔经济学奖,用于表彰在经济学领域杰出贡献的人。

普利策奖

普利策奖(The Pulitzer Prizes),又称普利策新闻奖。是根据美国报业巨头约瑟夫·普利策(Joseph Pulitzer)的遗愿于1917年设立的奖项,后发展成为美国新闻界的最高荣誉奖。评选制度经过不断的完善后,普利策奖成为新闻领域的国际最高奖项,被誉为“新闻界的诺贝尔奖”。

知识点分类:

计算机基础与编程环境

答案解析:

本题中:

B选项奖项是建筑领域

C选项奖项是物理学、化学、和平、生理学、医学和经济学领域

D选项奖项是新闻界领域。

只有选项A图灵奖是计算机领域的。

所以正确答案应该选A。