青少年软件编程(C语言)等级考试试卷(3级)-2021年9月-含参考答案和解析.docx
《青少年软件编程(C语言)等级考试试卷(3级)-2021年9月-含参考答案和解析.docx》由会员分享,可在线阅读,更多相关《青少年软件编程(C语言)等级考试试卷(3级)-2021年9月-含参考答案和解析.docx(8页珍藏版)》请在咨信网上搜索。
1、青少年软件编程(C语言)等级考试试卷(三级)2021年9月分数:100.00 题数:5、编程题 (共5题,共100分)1. 菲波那契数列菲波那契数列是指这样的数列:数列的第一个和第二个数都为1,接下来每个数都等于 前面2个数之和。给出一个正整数a,要求菲波那契数列中第a个数对10000取模的结果 是多少。时间限制:1000内存限制:65536输入第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整 数 a(l = a 考数组,通过n初始化数组计算数列时,需要记录前两个数,可用prevl和prev2记录。注意每次循环计算出 新的数current时,要将前一个数prevl保
2、存到prev2中,以避免被覆盖。/夫少年软件编程(C语言)等级考试试卷(三级)2021年9月-菲波那契数列大/ #includeint main()int n, i, j; /测试多少次int prevl, prev2;int current;代表现在的数scanf(”cT,&n);0123456789JJJJJLLJ()JJJJJLJJJ()()无左,移到第1个右括号后JJJJJLJJJ()()无左,移到第1个右括号后JJJJLJLJ()()无左,移到第1个右括号后LJJLJJJJJ()()无左,移到第1个右括号后JJ,LJJJJJ()()有左,移到第1个左括号后JJLL1JJ()()()无
3、左,移到第1个右括号后JJLJLJJ()()()有左,移到第1个左括号后JJLLLJJ()()()有左,移到第1个左括号后JJJ,LcLL,LJ()()()()无左,移到第1个右括号后LJLLJL()()递归调用4对括号的LLJJJLJ()()()JJJ,LJ()()()L,LLLL,LJ,L()()()JJJJJJ()()()JJJLLJJJJJ()()()()JJJJcJJ()()()递归调用3对括号的JJJJJ,LLJL()()()()1JJJJJL()()()()JLJcJL()()()()递归调用2对括号的JLJc()()()()()5.余数相同问题已知三个正整数a, b, co现有
4、一个大于1的整数x,将其作为除数分别除a, b, c, 得到的余数相同。请问满足上述条件的x的最上值是多少?时间限制:1000内存限制:65536输入行,三个不大于100000。的正整数a, b, c,两个整数之间用一个空格隔开。输出个整数,即满足条件的x的最小值。样例输入300 262 205样例输出19【解析】 送分题,直接从2开始循环试探即可。/少年软件编程(C语言)等级考试试卷(三级)2021年9月-余数相同问题玖 #include#includeint main()long a,b,c,x;scanf(%ld %ld %ldH,&a,&b,&c);for(x=2;x=a & x =
5、b & x 二c;x+)if(a%x= = b%x & b%x=c%x)(break;)printf(”cT,x);return 0;int arrn; /每次测试要输出第几个数的数组循环输入a,保存在数组中。 for(i=0; in; i +)scanf(%d,&arri); printfCrn,): /先输出新行以分隔输入和输出的数 for(i=0; ivn; i +)刚开始没有前一个数,记为0prevl 二 0;prev2=0;arri记录了本次测试要输出第a个数的数列的值 for(j=l; j 明确数制的概念,m进制数即逢m进一位,3进制数中的3就是10。 要输出n位m进制数的所有数,
6、如样例的2位3进制数就是3的2次方,即9个, 分别是:00、 01、 0210、 11、 1220、 21、 22 3位3进制数就是3的3次方,即9个27个数: 000 001 002010 011 012020 021 022100 101 102110 111 112120 121 122200 201 202210 211 212220 221 222由于有前导0,所以储存时可用char数组,即保存时要用char-维数组。 本题难度最大的地方在于不是单纯的二进制的编码,二进制编码很简单,可以用二 元组变换来完成,如果是三进制则是三元组复杂度大幅提高。为了适应题目最 多支持到12位10进制
7、数的要求,采用了回溯算法,找到一个符合规则的编码方 案就算成功。 其次是数列长度是未知的,而且数量可能很多,不合适事先定义固定长度的数组, 所以需要动态内存分配,对小朋友来说可能不太好理解。/*少年软件编程(C语言)等级考试试卷(三级)2021年9月-广义格雷码大/ #include#include#includeintchar* result = NULL; 输出字符串数组 void printCharArr(char* s)int i=0;for(i=0;it;i +)puts(si);/判断s2是否可以放在si后面int canUse(char* si, char* s2)int i=0
8、, q = 0;for(i=0;il)return 0;) 重复的位超过1个直接返回false)return q二二1; /有且只有1位不同)/判断si代表的字符串是否在前面用过了int isUsed(char* si, char* arr, int len)int i;for(i=0; ilen; i+)if(sl=arri)return 1;return 0;使用回溯算法找到可用的编码方案 char* huiSu(char* arr, char* s, int len) int i;一开始将第一个数放在试探数组s里if(len 二二 0)s0=arr0;len+;/逐个数试探,直到找到t个
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 青少年 软件 编程 语言 等级 考试 试卷 2021 参考答案 解析
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。