欢迎来到麦多课文档分享! | 帮助中心 海量文档,免费浏览,给你所需,享你所想!
麦多课文档分享
全部分类
  • 标准规范>
  • 教学课件>
  • 考试资料>
  • 办公文档>
  • 学术论文>
  • 行业资料>
  • 易语言源码>
  • ImageVerifierCode 换一换
    首页 麦多课文档分享 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    【计算机类职业资格】程序员-31及答案解析.doc

    • 资源ID:1336119       资源大小:35.50KB        全文页数:6页
    • 资源格式: DOC        下载积分:5000积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    二维码
    微信扫一扫登录
    下载资源需要5000积分(如需开发票,请勿充值!)
    邮箱/手机:
    温馨提示:
    如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如需开发票,请勿充值!如填写123,账号就是123,密码也是123。
    支付方式: 支付宝扫码支付    微信扫码支付   
    验证码:   换一换

    加入VIP,交流精品资源
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    【计算机类职业资格】程序员-31及答案解析.doc

    1、程序员-31 及答案解析(总分:36.00,做题时间:90 分钟)一、试题一(总题数:1,分数:6.00)【函数 1.2 说明】 函数 merge(int a,int n,int b,int m,int *c)是将两个从小到大有序数组 a 和 b 复制合并出一个有序整数序列 c,其中形参 n 和 m 分别是数组 a 和 b 的元素个数。 【函数 1.2】 void merge(int a ,int n,int b ,int m,int *c) int i,j; for(i=j:0;in & jm;) *c+ =ai bj? ai+:bj+; while(in) 1 ; while(jm) 2

    2、; (分数:6.00)二、试题二(总题数:1,分数:15.00)【函数 2 说明】 本题中的函数 encode()和 decode()分别实现对字符串的变换和复原。变换函数 encode()顺序考察已知字符串的字符,按以下规则逐组生成新字符串: 1若已知字符串的当前字符不是数字字符,则复制该字符于新字符串中。 2若已知字符串的当前字符是一个数字字符,且它之后没有后继字符,则简单地将它自己复制到新字符串中。 3若已知字符串的当前字符是一个数字字符,并且还有后继字符,设该数字字符的面值为 n,则将它的后续字符(包括后续字符是一个数字字符)重复复制 n+1 次到新字符串中。 4以上述一次变换为一组,

    3、在不同组之间另插入一个下划线字符“-”用于分隔。例如。encode()函数对字符串 26a3t2 的变换结果为 666_a_tttt_2 复原函数 decode()做变换函数 encode()的相反的工作。即复制不连续相同的单个字符,而将一组连续相同的字符(不超过 10 个)变换成一个用于表示重复次数的数字字符和一个重复出现的字符,并在复原过程中掠过变换函数为不同组之间添加的一个下划线字符。 假定调用变换函数 encode()时的已知字符串中不包含下划线字符。 【函数 2】 int encode(char*instr,char * outstr) char*ip,*op,c;int k,n;

    4、ip=instr;opoutstr; while(*ip) if 1 &*(ip+1) n= *ip -“0“+ 1; c= *+ip; for(k0;kn;k+) 2 ; else 3 ; *op+ “-“; ip+; if(opoutstr) 4 ; *op=“0“; return op-outstr; int decode(char * instr,char * outstr) char*ip,*op,c;int n; ipinstr;opoutstr; while(*ip) c= *ip;n0; while(*ip=c & n=10)ip+;n+; if 5 *op+=“0“+n-1;

    5、 *op+c; if(* ip=“_“,) 6 ; * op=“0“; return op-outstr; (分数:15.00)三、试题三(总题数:1,分数:15.00)【说明】 有一种猜数字游戏,开始时程序随机产生四个不相同的个位数字(顺序固定),然后玩家输入猜测的四个数字。程序比较后给出提示,本次猜数字有几个数字完全正确,有几个数字数值正确但是位置错误。玩家重复猜测直至结果完全正确。例如,程序生成“1234”,玩家猜测“1630”,则提示“位置正确的有:“1”个,位置错误的有:“1”个,完全错误的有“2”个。 下面的两个 Java 函数是猜数字游戏里面使用的两个函数,第一个用于产生四个不相

    6、同的数字。第二个函数先判断输入是否合法,若合法则进行比较,并给出提示。 【Java 程序】 private String randNum()/产生答案数字 int digits=0,1,2,3,4,5,6,7,8,9; Random mum=new Random(new Date().getTime(); for(int i=0;i10;i+) int p=Mathabs(rnum.nextInt()%10; int tmp=digitsp;/tmp 是临时存储数字的变量 1 ; digitsi=tmp; return IntegertoString(digits0)+IntegertoStr

    7、ing(digits1) +IntegertoString(digits2)+IntegertoString(digits3); String checkAnswer(String guess,Stdng answer) if guesslength()!=4)return “要输入 4 个数字!“; int num=0; try num= 2 ; /判断输入是否是数字 catch(NumberFormatException ex) return “要输入数字!“;/catch inttimesDigit=0,0,0,0,0,0,0,0,0,0; for(int i=0;i4;i+) int

    8、ptr=num%10; num=num/10; if 3 /输入数字有重复 return “数字有重复!“; /for int a=0; int b=0; for(int j=0;j4;j+) int pos=answerindexOf(guesssubstring(j,j+1); if 4 /当前数字完全正确 a+; else if(pos=0) b+; if 5 /答案完全正确 return “恭喜!答对了!“; else textAreaContent+= “位置正确的有:“+a+“个,位置错误的有:“+b+“ 个,完全错误的有“+(4-a-b)+“个n“; return “继续努力“;

    9、 (分数:15.00)程序员-31 答案解析(总分:36.00,做题时间:90 分钟)一、试题一(总题数:1,分数:6.00)【函数 1.2 说明】 函数 merge(int a,int n,int b,int m,int *c)是将两个从小到大有序数组 a 和 b 复制合并出一个有序整数序列 c,其中形参 n 和 m 分别是数组 a 和 b 的元素个数。 【函数 1.2】 void merge(int a ,int n,int b ,int m,int *c) int i,j; for(i=j:0;in & jm;) *c+ =ai bj? ai+:bj+; while(in) 1 ; wh

    10、ile(jm) 2 ; (分数:6.00)解析:*c+ai+解析 当出现某一数组所有元素均已合并完成,则将另一数组其余元素直接进行复制。B 串已复制完。解析:*c+bj+解析 A 串已复制完。二、试题二(总题数:1,分数:15.00)【函数 2 说明】 本题中的函数 encode()和 decode()分别实现对字符串的变换和复原。变换函数 encode()顺序考察已知字符串的字符,按以下规则逐组生成新字符串: 1若已知字符串的当前字符不是数字字符,则复制该字符于新字符串中。 2若已知字符串的当前字符是一个数字字符,且它之后没有后继字符,则简单地将它自己复制到新字符串中。 3若已知字符串的当前

    11、字符是一个数字字符,并且还有后继字符,设该数字字符的面值为 n,则将它的后续字符(包括后续字符是一个数字字符)重复复制 n+1 次到新字符串中。 4以上述一次变换为一组,在不同组之间另插入一个下划线字符“-”用于分隔。例如。encode()函数对字符串 26a3t2 的变换结果为 666_a_tttt_2 复原函数 decode()做变换函数 encode()的相反的工作。即复制不连续相同的单个字符,而将一组连续相同的字符(不超过 10 个)变换成一个用于表示重复次数的数字字符和一个重复出现的字符,并在复原过程中掠过变换函数为不同组之间添加的一个下划线字符。 假定调用变换函数 encode()

    12、时的已知字符串中不包含下划线字符。 【函数 2】 int encode(char*instr,char * outstr) char*ip,*op,c;int k,n; ip=instr;opoutstr; while(*ip) if 1 &*(ip+1) n= *ip -“0“+ 1; c= *+ip; for(k0;kn;k+) 2 ; else 3 ; *op+ “-“; ip+; if(opoutstr) 4 ; *op=“0“; return op-outstr; int decode(char * instr,char * outstr) char*ip,*op,c;int n;

    13、ipinstr;opoutstr; while(*ip) c= *ip;n0; while(*ip=c & n=10)ip+;n+; if 5 *op+=“0“+n-1; *op+c; if(* ip=“_“,) 6 ; * op=“0“; return op-outstr; (分数:15.00)解析:*ip=“0“&*ip=“9“解析 本小题部分判断字符是否是数字。解析:*op+=c解析 将 n 个 c 顺序写入 op 中。解析:*op+=*ip解析 当前字符不是数字,简单复制一次的情况。解析:op-解析 到 op 的最后了,往前移一个单元加入结束符。解析:n1解析 判断 n 是否1,即字符

    14、是否重复。解析:ip+解析 当前字符是下划线,跳过即可。三、试题三(总题数:1,分数:15.00)【说明】 有一种猜数字游戏,开始时程序随机产生四个不相同的个位数字(顺序固定),然后玩家输入猜测的四个数字。程序比较后给出提示,本次猜数字有几个数字完全正确,有几个数字数值正确但是位置错误。玩家重复猜测直至结果完全正确。例如,程序生成“1234”,玩家猜测“1630”,则提示“位置正确的有:“1”个,位置错误的有:“1”个,完全错误的有“2”个。 下面的两个 Java 函数是猜数字游戏里面使用的两个函数,第一个用于产生四个不相同的数字。第二个函数先判断输入是否合法,若合法则进行比较,并给出提示。

    15、【Java 程序】 private String randNum()/产生答案数字 int digits=0,1,2,3,4,5,6,7,8,9; Random mum=new Random(new Date().getTime(); for(int i=0;i10;i+) int p=Mathabs(rnum.nextInt()%10; int tmp=digitsp;/tmp 是临时存储数字的变量 1 ; digitsi=tmp; return IntegertoString(digits0)+IntegertoString(digits1) +IntegertoString(digits

    16、2)+IntegertoString(digits3); String checkAnswer(String guess,Stdng answer) if guesslength()!=4)return “要输入 4 个数字!“; int num=0; try num= 2 ; /判断输入是否是数字 catch(NumberFormatException ex) return “要输入数字!“;/catch inttimesDigit=0,0,0,0,0,0,0,0,0,0; for(int i=0;i4;i+) int ptr=num%10; num=num/10; if 3 /输入数字有重

    17、复 return “数字有重复!“; /for int a=0; int b=0; for(int j=0;j4;j+) int pos=answerindexOf(guesssubstring(j,j+1); if 4 /当前数字完全正确 a+; else if(pos=0) b+; if 5 /答案完全正确 return “恭喜!答对了!“; else textAreaContent+= “位置正确的有:“+a+“个,位置错误的有:“+b+“ 个,完全错误的有“+(4-a-b)+“个n“; return “继续努力“; (分数:15.00)解析:digitsp=digitsi解析 此处随机产生的实质上是一个数组下标值,用于和第 i 处数字交换,最后输出数组前四个数字,作为最终结果。解析:Integer. parseInt(pless)解析 该函数能将字符串转化为数字,若正确转换说明输入了数字,否则抛出异常,并提示。解析:+timesDigitptr1解析 数组 timesDigit 用于记录每个数字出现次数,此处判断是否每个数字只出现一次。解析:pos= =j解析 pos 是当前数字在答案中的位置(不存在时返回-1),等于 j 表示位置也正确。解析:a= =4解析 a 记录了猜测答案的完全正确的数字的个数,等于 4 表示完全正确。


    注意事项

    本文(【计算机类职业资格】程序员-31及答案解析.doc)为本站会员(registerpick115)主动上传,麦多课文档分享仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文档分享(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
    备案/许可证编号:苏ICP备17064731号-1 

    收起
    展开