2021年6月青少年软件编程(C语言)等级考试(四级)试卷答案.docxVIP

2021年6月青少年软件编程(C语言)等级考试(四级)试卷答案.docx

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

青少年软件编程(C语言)等级考试(四级)试卷和答案

分数:100??题数:4

一、编程题(共4题,每题25分,共100分)

1. 数字三角形问题

7

38

810

2744

45265

(图1)

图1给出了一个数字三角形。从三角形的顶部到底部有很多条不同的路径。对于每条路径,把路径上面的数加起来可以得到一个和,你的任务就是找到最大的和。注意:路径上的每一步只能从一个数走到下一层上和它最近的左边的那个数或者右边的那个数。

时间限制:1000

内存限制:65536

输入:输入的是一行是一个整数N(1N=100),给出三角形的行数。下面的N行给出数字三角形。数字三角形上的数的范围都在0和100之间。

输出:输出最大的和。

样例输入:5

7

38

810

2744

45265

样例输出:30

试题解析:

#includecstdio

#includecstring

#includealgorithm

usingnamespacestd;

intdp[105][105];

intmain()

{

intN,i,j;

scanf(%d,N);

memset(dp,0,sizeof(dp));

for(i=1;i=N;i++)

{

for(j=1;j=i;j++)

{

scanf(%d,dp[i][j]);

}

}

for(i=N-1;i=1;i--)

{

for(j=1;j=i;j++)

{

dp[i][j]=dp[i][j]+max(dp[i+1][j],dp[i+1][j+1]);

}

}

printf(%d\n,dp[1][1]);

return0;

}

2. 大盗

阿福是一名经验丰富的大盗。趁着月黑风高,阿福打算今晚洗劫一条街上的店铺。

这条街上一共有N家店铺,每家店中都有一些现金。阿福事先调查得知,只有当他同时洗劫了两家相邻的店铺时,街上的报警系统才会启动,然后警察就会蜂拥而至。

作为一向谨慎作案的大盗,阿福不愿意冒着被警察追捕的风险行窃。他想知道,在不惊动警察的情况下,他今晚最多可以得到多少现金?

时间限制:1000

内存限制:65536

输入:输入的第一行是一个整数T(T=50),表示一共有T组数据。接下来的每组数据,第一行是一个整数N(1=N=100,000),表示一共有N家店铺。第二行是N个被空格分开的正整数,表示每一家店铺中的现金数量。每家店铺中的现金数量均不超过1000。

输出:对于每组数据,输出一行。该行包含一个整数,表示阿福在不惊动警察的情况下可以得到的现金数量。

样例输入:2

3

182

4

107614

样例输出:8

24

提示:对于第一组样例,阿福选择第2家店铺行窃,获得的现金数量为8。对于第二组样例,阿福选择第1和4家店铺行窃,获得的现金数量为10+14=24。

试题解析:

#includeiostream

#includecstdio

usingnamespacestd;

constintN=100010;

intw[N],f[N];

intmain()

{

intT;

cinT;

while(T--)

{

intn;

scanf(%d,n);

for(inti=1;i=n;i++)scanf(%d,w[i]);

f[0]=0,f[1]=w[1];

for(inti=2;i=n;i++)

{

f[i]=max(f[i-1],f[i-2]+w[i]);

}

printf(%d\n,f[n]);

}

return0;

}

3. 最大子矩阵

已知矩阵的大小定义为矩阵中所有元素的和。给定一个矩阵,你的任务是找到最大的非空(大小至少是1*1)子矩阵。比如,如下4*4的矩阵

0-2-70

92-62

-41-41

-180-2

的最大子矩阵是

92

-41

-18

这个子矩阵的大小是15。

时间限制:1000

内存限制:65536

输入:输入是一个N

您可能关注的文档

文档评论(0)

教育教学资料分享 + 关注
实名认证
文档贡献者

教师职称证、心理咨询师证持证人

文档资料有购买版权,文档价格问题,欢迎私聊,可以帮忙改价

领域认证该用户于2022年11月11日上传了教师职称证、心理咨询师证

1亿VIP精品文档

相关文档