2019 CSP-S / NOIP提高组初赛试题解析
2019 CSP-S / NOIP提高组初赛试题解析(一)
一、单项选择题
1. 若有定义:int a=7; float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2的值是:( )
A.0.000000 B.2.750000 C.2.500000 D.3.500000
解析:D。基础,考察数据类型和算术优先级。
2. 下列属于图像文件格式的有( )
A.WMV B.MPEG C.JPEG D.AVI
解析:C。计算机基础知识,其他三个是视频格式。
3. 二进制数11 1011 1001 0111 和 01 0110 1110 1011 进行逻辑或运算的结果是( )。
A.11 1111 1111 1101 B.11 1111 1111 1101 C.10 1111 1111 1111 D.11 1111 1111 1111
解析:D。位运算基本知识,两位上有一位为1的时候结果就为1。0|0=0;1|0=1;0|1=1;1|1=1。
4. 编译器的功能是( )
A.将源程序重新组合 B.将一种语言(通常是高级语言)翻译成另一种语言(通常是低级语言) C.将低级语言翻译成高级语言 D.将一种编程语言翻译成自然语言
解析:B。编译器是将高级语言(如C++)编译成计算机能够理解的二进制0和1(机器语言、低级语言)
5. 设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是( )
A.X=(x*100+0.5)/100.0; B.x=(int)(x*100+0.5)/100.0; C.x=(x/100+0.5)*100.0; D.x=x*100+0.5/100.0;
解析:B。主要考察强制类型转换,加0.5再转成int是四舍五入常用操作。
6. 由数字1,1,2,4,8,8所组成的不同的4位数的个数是( )
A.104 B.102 C.98 D.100
解析:B。排列组合问题,也可以用穷举算。若由4种不同数字即1、2、4、8有A(4,4)=24种;若有且只有2个数一样,共有1124;1128;1148;1288;1488;2488六类,共6*A(4,4)/A(2,2)=72种;若1、1、8、8组合有A(4,4)/(A(2,2)*2)=6种;
7. 排序的算法很多,若按排序的稳定性和不稳定性分类,则( )是不稳定排序。
A.冒泡排序 B.直接插入排序 C.快速排序 D.归并排序
解析:C。排序的稳定性特点是排序完成后,之前相同的元素排序不会改变。快速排序在排序时在交换中间元素时可能会打乱顺序。如3、1、1、2、1、6、7、8、9,在一开始3与中间1交换后,稳定性已被打破。
8. G是一个非连通无向图(没有重边和自环),共有28条边,则该图至少有( )个顶点。
A.10 B.9 C.11 D.8
解析:B。要求最小的点就是要尽可能占用边, n 个点的完全无向图最多占用n*(n+1)/2 条边,n=8的时候是8*7/2=28,意味着8个顶点最多有28条边。由于题目是求非连通图,则再加上单独第9个点。
9. 一些数字可以颠倒过来看,例如0、1、8颠倒过来看还是本身,6颠倒过来是9,9颠倒过来看还是6,其他数字颠倒过来都不构成数字。类似的,一些多位数也可以颠倒过来看,比如106颠倒过来是901。假设某个城市的车牌只有5位数字,每一位都可以取0到9。请问这个城市有多少个车牌倒过来恰好还是原来的车牌,并且车牌上的5位数能被3整除?( )
A.40 B.25 C.30 D.20
解析:B。第1、2位有(0、1、8、6、9)五个数字,第3位有(0、1、8)三个数字,第4、5位由第1、2位决定。由于0,1,8模3正好余0,1,2,所以其他位确定则第3位自然确定,共5*5=25种。
10. 一次期末考试,某班有15人数学得满分,有12人语文得满分,并且有4人语、数都是满分,那么这个班至少有一门得满分的同学有多少人?( )
A.23 B.21 C.20 D.22
解析:A。容斥原理,至少一门满分人数=数学满分+语文满分-语文数学满分=15+12-4=23。
11. 设A和B是两个长为n的有序数组,现在需要将A和B合并成一个排好序的数组,请问任何以元素比较作为基本运算的归并算法,在最坏情况下至少要做多少次比较?( ) A.n² B.n㏒n C.2n D.2n-1 解析:D。两个数组从小到大依次比较,哪边小哪边入数组,当某一数组全部计入结果数组后,剩下的也依次进入。最好的情况是数组A所有数都比数组B第一个数小,只要比较n次。最坏情况是全部比较完,最后AB只剩最后一个数比较,总比较次数就是2n-1。12. 以下哪个结构可以用来存储图?( )
A.栈 B.二叉树 C.队列 D.邻接矩阵
解析:D。数据结构基础。
13. 以下哪些算法不属于贪心算法( )。
A.Di.jkstra算法 B.Floyd算法 C.Prim算法 D.Kruskal算法
解析:B。Floyd算法枚举了全部情况自然不是贪心,其他算法均有取最小值。
14. 有一个等比数列,共有奇数项,其中第一项和最后一项分别是2和118098,中间一项是486,请问一下哪个数是可能的公比?( )。
A.5 B.3 C.4 D.2
解析:B。直接代入看是否整除可以快速求得答案。可令公比为q,2*q^(2n-2)=118098,得q^(n-1)=248,四个选项中只有3是248的约数。
14. 有正实数构成的数字三角形排列形式如图所示。第一行的数为a(1,1),第二行a(2,1),a(2,2),第n行的数为a(n,1),a(n,2),…,a(n,n)。从a(1,1)开始,每一行的数a(i,j)只有两条边可以分别通向下一行的两个数a(i+1,j)和a(i+1,j+1)。用动态规划算法找出一条从a(1,1)向下通道a(n,1),a(n,2),…,a(n,n)中某个数的路径,使得该路径上的数之和最大。
令C[i][j]是从a(1,1)到a(i,j)的路径上的数的最大和,并且C[i][0]= C[0][j]=0,则C[i][j]=( )
A.max{C[i-1][j-1],C[i-1][j]}+ a(i,j) B.C[i-1][j-1]+C[i-1][j] C.max{C[i-1][j-1],c[i-1][j]}+1 D.max{C[i][j-1],C[i-1][j]}+ a(i,j)
解析:A。每个点只能从上方两个点过来,自然取最大的加a(i,j)。
视频地址
链接:https://pan.baidu.com/s/1tHo1DFMaDuMZAemNH60dmw
提取码:7jgr