试卷 2023年3月青少年软件编程C语言等级考试(四级)真题
2023年3月青少年软件编程C语言等级考试(四级)真题
编程题
第 1 题    问答题

C语言等级考试四级编程题:最佳路径。

如下所示的由正整数数字构成的三角形:
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5

从三角形的顶部到底部有很多条不同的路径。对于每条路径,把路径上面的数加起来可以得到一个和,和最大的路径称为最佳路径。你的任务就是求出最佳路径上的数字之和。
注意:路径上的每一步只能从一个数走到下一层上和它最近的下边(正下方)的数或者右边(右下方)的数。

时间限制:1000

内存限制:65536

输入

第一行为三角形高度100>=h>=1,同时也是最底层边的数字的数目。 从第二行开始,每行为三角形相应行的数字,中间用空格分隔。

输出

最佳路径的长度数值。

样例输入

5
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5

样例输出

30

提示

如何采用动态规划的思想,对问题进行分解。

第 2 题    问答题

C语言四级等级考试编程题:邮票收集。

小A是个邮票收集爱好家,他有n种面值的邮票,每种邮票都有无数张。一天小B想要寄信,需要一共面值和为k的邮票组合。小A想要知道拼出面值为k的邮票最少需要多少张。

时间限制:1000

内存限制:131072

输入

输入是多组数据。(不超过10组) 每组数据的第一行正整数n,k,表示邮票的种类数目和目标要拼出的钱。(0 < n ≤ 100, 0 < k ≤ 1000 ) 接下来的一行有n个正整数ai(0 < ai ≤ 1000)。 若n=k=0表示输入结束。

输出

每组数据输出一行一个数,分别表示拼出k需要的最少的邮票数量。 如果不存在能够拼出k的方案,输出-1。

样例输入

4 10
1 2 3 4 
5 16
1 2 3 4 5 
2 7
4 5
0 0

样例输出

3
4
-1

提示

第一组数据: 10 = 4+4+2 第二组数据:16 = 5+5+5+1 第三组数据: 不存在。

第 3 题    问答题

C语言四级等级考试编程题:切割回文。

阿福最近对回文串产生了非常浓厚的兴趣。

如果一个字符串从左往右看和从右往左看完全相同的话,那么就认为这个串是一个回文串。例如,“abcaacba”是一个回文串,“abcaaba”则不是一个回文串。

阿福现在强迫症发作,看到什么字符串都想要把它变成回文的。阿福可以通过切割字符串,使得切割完之后得到的子串都是回文的。

现在阿福想知道他最少切割多少次就可以达到目的。例如,对于字符串“abaacca”,最少切割一次,就可以得到“aba”和“acca”这两个回文子串。

时间限制:1000

内存限制:65536

输入

输入的第一行是一个整数 T (T <= 20) ,表示一共有 T 组数据。 接下来的 T 行,每一行都包含了一个长度不超过的 1000 的字符串,且字符串只包含了小写字母。

输出

对于每组数据,输出一行。该行包含一个整数,表示阿福最少切割的次数,使得切割完得到的子串都是回文的。

样例输入

3
abaacca
abcd
abcba

样例输出

1
3
0

提示

对于第一组样例,阿福最少切割 1 次,将原串切割为“aba”和“acca”两个回文子串。 对于第二组样例,阿福最少切割 3 次,将原串切割为“a”、“b”、“c”、“d”这四个回文子串。 对于第三组样例,阿福不需要切割,原串本身就是一个回文串。

第 4 题    问答题

C语言四级等级考试编程题:小球放盒子。

有N个相同的球,M个不同的盒子,每个盒子最多放K个球。请计算将这N个球全部放入盒子中的方案数模1000007后的结果

时间限制:10000

内存限制:131072

输入

三个正整数,依次为N,M,K

输出

输出方案数模1000007后的结果

样例输入

4 2 3

样例输出

3

提示

总共有3种方案,依次为 { 3 , 1 },{ 2 , 2 },{ 1 , 3 }。 对于100%的数据, N,M ≤ 5000

答题卡
编程题
1 2 3 4
题目总数:4
总分数:100
时间:90分钟