曾彪彪的个人网站
首页
文章列表
>>
文章详情
csp-j初赛程序阅读与程序填空题做题方法总结
作者:
曾彪彪
日期:
2025-08-14 01:40:22
阅读(92)
分类:
问题记录
Algorithm
在csp-j初赛中,程序阅读40分,程序填空30分,要想拿高分,这两块失分不能太多。如果这两块失分超过5分,那么就很难上90分了,因为前面的选择题,知识范围广,即便再怎么准备,也几乎不可能全部做对。 程序阅读之前感觉很难,因为知识面也很广,所有的场景,所有的算法几乎都可能被考察到,什么汉诺塔问题,最长子序列,编辑距离等等。要想把这些知识点全部学会,也是不可能的。所以之前感觉程序阅读和程序填空,也是很难的一块。 后来听一位老师说,这块的题目,没有必要把全部知识点学会,只要代入数据就可以了。 对于程序阅读题,特点是告诉你程序,不告诉你这题要做什么。这样的题,只要代入简单数据一步一步推演,就能得到结果。等结果出来了,很多时候,就知道这个程序是在做什么了。对于有些知识点,比如动态规划,我们还没学,即使知道了结果,也不知道程序是在干嘛,没关系,不影响拿分。 对于程序填空题,特点是告诉你这段程序要实现什么功能,让你补全代码。这样的题目更难,因为有些知识点,我们没学过,代码是写不出来的。 这类题也有办法,还是代入简单数据,通过代入简单数据,结合上下文的理解,去选择我们认为正确的答案。把所有我们认为正确的答案都填上了,这道题就变成了程序阅读题。如果能得到预期结果,那么我们的选择就是正确的,如果得不到正确结果,那么需要重新阅读程序,看哪个选项选错了。 我家小朋友说,一道程序填空题有5个空,每个空都有abcd 4个选项,如果依次代入的话,有4*4*4*4*4=1024中情况,根本没时间推演。 理论上这是没有错的,不过在真正做题的时候,我们不需要试1024种情况。在做题的时候,我们知道这题要做什么,第二有简单数据代入,在多数题中,我们都能选择正确答案,只在某一道题可能比较困惑,而且困惑的一般只有两种情况,要么选A,要么选和A相反的选项,再坏也只有4种情况。这样还是有机会把题目做出来的。 通过上面的方法,我测试了2023年和0204年的真题,发现理论上,程序阅读和程序填空题可以全部做对。2024年的程序填空最后一道题,我不知道汉诺塔问题,但是通过猜想,代入ABC三个数据,也全部正确。2023年的最长公共子序列,以及编辑距离,这两类动态规划我没学过,也做对了。 不过做这两张试卷的程序阅读和程序填空时,我没有拿到满分,反而之前认为不那么难得程序阅读丢了几分。2024年的题目非常容易出错,一会说这个函数返回什么,一会说这个程序输出什么。函数返回和函数输出不是一样的,我把程序输出看成函数返回了。2023年的程序阅读题目,粗心把0和1选错了,其实我已经推演出来了。
评论(0)
评论(必填)
名称(必填)
联系方式(可选)
验证码(必填)
提交
评论(必填)
名称(必填)
联系方式(可选)
验证码(必填)