虽然觉得初赛应该问题不大,但还是稍微做点准备,万一最后一年因为初赛退役,那就闹大笑话了。
2019
9.一些数字可以颠倒过来看,例如0、1、8颠倒过来还是本身,6颠倒过来是 9,9颠倒过来看还是6,其他数字颠倒过来都不构成数字。类似的,一些多位数也可以颠倒过来看,比如106颠倒过来是901 。假设某个城市的车牌只有5位数字,每一位都可以取0到9。请问这个城市有多少个车牌倒过来恰好还是原来的车牌,并且车牌上的5位数能被3整除?
解:因为这个五位数颠倒后大小不变,也就是说当1,3位数字确定后,4,5位数字也随之确定下来。所以,其实我们只需要考虑前三位数字的填法即可。只考虑1,2位的话,共有5*5=25方案。而第三个数字,为了满足颠倒后仍是原数,所以只能填0,1,8。此时还剩最后一个条件,我们构造出的数需是3的倍数,也就是各位数之和模3余0。考虑0,1,8对3的同余,我们会发现这三个数模3的余数分别是0,1,2,恰好构成一个3的完系。所以不管另四位数字之和是多少,第三位数字都有且只有一种情况与之对应,使各位数之和是3的倍数。所以共有25种方案。
6.由数字1, 1, 2, 4, 8, 8所组成的不同的4位数的个数是()。
解:暴力枚举(划掉) 先考虑各位都不相同,全排列有24种方案; 有两位相同,则四位数字组成有{1,1,2,4},{1,1,2,8},{1,1,4,8},(再将1换成8)六种情况,经过手动模拟共有6*12=72种方案; 最后一种组成{1,1,8,8},手算一下,有6种方案。 所以共有24+72+6=102种方案。 5.设变量x为float型且已赋值,则以下语句中能将x中的数值保留到小数点后两位,并将第三位四舍五入的是()
x= (x*100+0. 5)/100. 0; x=(int) (x*100+0. 5)/100. 0; x=(x/100+0. 5)*100. 0; x=x*100+0. 5/100. 0;
解:语言常识题。(int)x*100是为了取出前两位小数,+0.5是因为c++中强制进制转换时是向零取整,所以+0.5使其变为四舍五入取整。答案是B。
2018
2.解释执行语言:Python
编译执行:除了Py......
(java貌似有点争议)
3.ccf基本知识整理(误):待补
7.在一条长度为 1 的线段上随机取两个点,则以这两个点为端点的线段的期望长度是()。
不想打公式了,贴个别人的解法。解释下,从[a,b]中任取一点到a的期望距离=(b-a)/2,。所以,我们在[0,1]中任取一点x,再在[0,x],[x,1]中分别取一点,算出即可。
2-3 树是一种特殊的树,它满足两个条件:
- 每个内部结点有两个或三个子结点;
- 所有的叶结点到根的路径长度相同。
如果一棵2-3 树有10 个叶结点,那么它可能有( )个非叶结点。
解:待补