CSP-S初赛解析及心得体会

时间:2024-01-25 16:07:06

一、单选题

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

 

送分题。

 x+a%3*(int)(x+y)%2

=2.5+(7%3)*int(2.5+4.7)%2

=2.5+1*int(7.2)%2

=2.5+1*7%2

=2.5+1

=3.5

数值为3.5,由于类型是float,所以有效位数为7位,因此答案选择3.500000(D)。

这道题在之前的noip初赛中出到过,但那时候的答案是选择2.500000的,这道题变动了一下数值,幸好我再算了一遍,如果看都不看直接选C的话必死无疑了。

2、下列属于图像文件格式的有( )
A.WMV    B.MPEG    C.JPEG    D.AVI

 

送分题+1

很明显应该选择C,这题属于常识吧。

WMV、MPEG、AVI:都是视频文件格式

3、二进制数 11 1011 1001 0111 和 01 0110 1110 1011 进行逻辑或运算的结果是( )。
A.11 1111 1101 1111 B.11 1111 1111 1101
C.10 1111 1111 1111 D.11 1111 1111 1111

 

送分题+2

逻辑或运算:即按位或。对于二进制的每一位,都是0才为0。

11 1011 1001 0111

01 0110 1110 1011

————————

11 1111 1111 1111

所以很明显选择D。

4、编译器的功能是( )
A.将源程序重新组合
B.将一种语言(通常是高级语言)翻译成另一种语言(通常是低级语言)
C.将低级语言翻译成高级语言
D.将一种编程语言翻译成自然语言

 

常识题

这道题也算是送分题吧,but我没拿到这两分...

做的时候看到D选项就立马选了,我以为自然语言就是一串二进制命令(机器语言),结果走出考场才知道,自然语言是人们所说的语言,比如说中文、英语就是自然语言。所以很明显D就是错的了。

答案是B,这种知识点也不考察能力,就是平时的死记+积累。

5、设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是( )
A.x=(x*100+0.5)/100.0;    B.(int)(x*100+0.5)/100.0;
C.x=(x/100+0.5)*100.0;    D.x=x*100+0.5/100

 

基础题

连续两道极其简单的单选题错了我也是难过死了。

看到B的那一刻我就把它排除了,因为我觉得B算出来的答案是一个整型。忽略了/100.0部分...

最后听同机房的人说,只有B才可以舍去小数点第三位以后的数值,其他的选项都无法将后面的小数位数舍去。

由此,B正确。

6、由数字1,1,2,4,8,8所组成的不同的4位数的个数是( )。
A.104    B.102    C.98    D.100

 

数学题

排列组合题。个人认为是送分题,因为以往的noip初赛卷有一道一模一样的(反正我做到过)。

分类:

选四个不同的数:1、2、4、8:A(4,4)=24

选三个不同的数:x、x、y、z

x:1或8(2)

y、z:C(2,3)=3

一共有6种选择数的方案。

先在4个位置里挑选2个放x:C(2.4)=6

再在剩下两个位置里放x、y的全排列:A(2,2)=2

所以:2*3*6*2=72

选两个不同的数:1、1、8、8

在4个位置里挑两个位置给1,剩下两个位置给8:C(2,4)=6

ans=24+72+6=102(B)

分类分对基本上没什么问题。

7、排序的算法很多,若按排序的稳定性和不稳定性分类,则( )是不稳定排序。
A.冒泡排序    B.直接插入排序    C.快速排序    D.归并排序

 

常识题+送分题

众所周知,插冒归是稳定的排序算法。若有不懂请看下图:

8、G是一个非连通无向图(没有重边和自环),共有28条边,则该图至少有( )个顶点。
A.10    B.9    C.11    D.8

 

基础题

这道题有一个坑人的点:连通!!!这张图不连通!!!

接着我们就想,共有28条边的连通图至少有几个顶点?

不难发现,8个顶点的完全图刚好有8*7/2=28条边,再加一个孤立点不就成非连通图了嘛。

所以选B哦,同机房错的人都选D。

9、一些数字可以颠倒过来看,例如0、1、8颠倒过来还是本身,6颠倒过来是9,9颠倒过来看还是6,其他数字颠倒过来都不构成数字。类似的,一些多位数也可以颠倒过来看,比如106颠倒过来是901.假设某个城市的车牌只有5位数字,每一位都可以取0到9.请问这个城市有多少个车牌倒过来恰好还是原来的车牌,并且车牌上的五位数能被3整除?( )
A.40    B.25    C.30    D.20

 

这道题,列出所有情况就好了。当时我做的时候就是吧所有的车牌都写了一遍,结果数了数刚好25个,直接选B。

0:00000(1)

0、1:01110、10101(2)

0、8:08880、80808(2)

0、6、9:06090、09060、90006、60009、96096、69069、99066、66099(8)

0、1、8:18081、81018(2)

1、6、9:16191、19161、91116、61119(4)

8、6、9:86898、89868、98886、68889(4)

1、8:88188、11811(2)

ans=1+2+2+8+2+4+4+2=25(B)

10、一次期末考试,某班有15人数学得满分,有12人语文得满分,并且有4人语、数都是满分,那么这个班只收有一门得满分的同学有多少人?( )。
A.23    B.21    C.20    D.22

 

数学题,容斥原理没谁了。

不多说,ans=15+12-4=23(A)

11、设A和B是两个长为n的有序数组,现在需要将A和B合并成一个排好序的数组,请问任何以元素比较作为基本运算的归并算法,在最坏情况下至少要做多少次比较?( )。
A.n^2    B.n log n    C.2n    D.2n-1

 

常识题

只要比较能进行到两个序列的最后一个数即可。

每次比较排好一个数,最后一次比较直接排好两个数。

所以最多的比较次数为2n-1(D)

12、以下哪个结构可以用来存储图( )
A.栈 B.二叉树 C.队列 D.邻接矩阵

 

只要学习过图论的人都知道。

存储图最常见的两种方法是:邻接矩阵(D)、邻接表。

13、以下哪些算法不属于贪心算法?( )
A.Dijkstra算法 B.Floyd算法 C.Prim算法 D.Kruskal算法

 

常识题,具体详见各类最短路及最小生成数的算法流程。

Floyd算法属于动态规划。(B)

14、有一个等比数列,共有奇数项,其中第一项和最后一项分别是2和118098,中间一项是486,请问以下哪个数是可能的公比?( )
A.5 B.3 C.4 D.2

 

数学题。

486/2=243

118098/486=243

所以公比为243的因子。

243=3*3*3(B)。

15、有正实数构成的数字三角形排列形式如图所示。第一行的数为a1,1;第二行的数从左到右依次为a2,1, a2,2,第n行的数为an,1, an,2, …,an,n。从 a1,1开始,每一行的数ai,j只有两条边可以分别通向下一行的两个数ai+1,j 和ai+1,j+1。用动态规划算法找出一条从a1,1向下通到an,1,an,2,…,an,n中某个数的路径,使得该路径上的数之和达到最大。令C[i][j]是从a1,1到 ai,j的路径上的数的最大和,并且C[i][0]=C[0][j]=0,则C[i][j]=( )。


A.max{C[i-1][j-1], C[i-1][j]} + ai,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]} + ai,j

 

这是动态规划的入门题啊朋友们,在以往noip初赛卷里有一道一模一样的,连答案都没有变过呐。

这道题就是数字三角形题目的状态转移方程,明显选A。

  • 对完单选题答案的时候就已经欲哭无泪了,简直难受,这都是些什么低智商错误啊。哭唧唧.jpg

阅读程序及程序填空下次再更。