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

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

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

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

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

    1、程序员-23 (1)及答案解析(总分:48.00,做题时间:90 分钟)一、试题一(总题数:1,分数:3.00)1.【函数 1.1 说明】 函数 strcpy(char * destination,char * source)将字符串 source 复制到字符串 destination。 【函数 1.1】 void strcpy (char * destination,char*source) while _ 1_ ; (分数:3.00)二、试题二(总题数:1,分数:15.00)【函数 2 说明】 本题中的函数 encode()和 decode()分别实现对字符串的变换和复原。变换函数 enc

    2、ode()顺序考察已知字符串的字符,按以下规则逐组生成新字符串: 1若已知字符串的当前字符不是数字字符,则复制该字符于新字符串中。 2若已知字符串的当前字符是一个数字字符,且它之后没有后继字符,则简单地将它自己复制到新字符串中。 3若已知字符串的当前字符是一个数字字符,并且还有后继字符,设该数字字符的面值为 n,则将它的后续字符(包括后续字符是一个数字字符)重复复制 n+1 次到新字符串中。 4以上述一次变换为一组,在不同组之间另插入一个下划线字符“-”用于分隔。例如。encode()函数对字符串 26a3t2 的变换结果为 666_a_tttt_2 复原函数 decode()做变换函数 en

    3、code()的相反的工作。即复制不连续相同的单个字符,而将一组连续相同的字符(不超过 10 个)变换成一个用于表示重复次数的数字字符和一个重复出现的字符,并在复原过程中掠过变换函数为不同组之间添加的一个下划线字符。 假定调用变换函数 encode()时的已知字符串中不包含下划线字符。 【函数 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 ; els

    4、e 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; *op+c; if(* ip=“_“,) 6 ; * op=“0“; return op-outstr; (分数:15.00)三、试题三(总题数:1,分数:15.00)阅读以下说

    5、明和 C 程序,填充函数中的空缺。 说明 N 个游戏者围成一圈,从 1N 顺序编号,游戏方式如下;从第一个人开始报数(从 1 到 3 报数),凡报到3 的人退出圈子,直到剩余一个游戏者为止,该游戏者即为获胜者。 下面的函数 playing(Linklist head)模拟上述游戏过程并返回获胜者的编号。其中,N 个人围成的圈用一个包含 N 个结点的单循环链表来表示,如图 1 所示,游戏者的编号放在结点的数据域中。 在函数中,以删除结点来模拟游戏者退出圈子的处理。整型变量 c(初值为 1)用于计数,指针变量 p 的初始值为 head(如图 1 所示)。游戏时,从 p 所指向的结点开始计数,p 沿

    6、链表中的指针方向遍历结点,c 的值随 p 的移动相应地递增。当 c 计数到 2 时,就删除 p 所指结点的下一个结点(因下一个结点就表示报数到 3 的游戏者),如图 2 所示,然后将 c 设置为 0 后继续游戏过程。 (分数:15.00)四、试题四(总题数:1,分数:15.00)1 说明】 函数 create 能够建立具有任意行和任意列的动态二维整数数组。 【函数 4.1 程序】 #include“stdioh” int * * create(int row, int col ) int * * x,i; x=(int * *) 1 ; for( 2 ) xi=(int *)malloc(co

    7、l * sizeof(int); 3 ; 【函数 4.2 说明】 函数 main()能够判断输入年是否为闰年。 【函数 4.2 程序】 main() int year,n; scanf(“input year %d”,&year); n=( 4 | 5 ); if(n=1)printf(“%d is a leap yearn”,year); else printf(“%d is not a leap yearn”,year); (分数:15.00)程序员-23 (1)答案解析(总分:48.00,做题时间:90 分钟)一、试题一(总题数:1,分数:3.00)1.【函数 1.1 说明】 函数 st

    8、rcpy(char * destination,char * source)将字符串 source 复制到字符串 destination。 【函数 1.1】 void strcpy (char * destination,char*source) while _ 1_ ; (分数:3.00)解析:* destination+* source+ 或(*destination+* source+) ! “0“解析 完成字符的复制,并使指针指向下一元素,元素为空时结束。二、试题二(总题数:1,分数:15.00)【函数 2 说明】 本题中的函数 encode()和 decode()分别实现对字符串的变

    9、换和复原。变换函数 encode()顺序考察已知字符串的字符,按以下规则逐组生成新字符串: 1若已知字符串的当前字符不是数字字符,则复制该字符于新字符串中。 2若已知字符串的当前字符是一个数字字符,且它之后没有后继字符,则简单地将它自己复制到新字符串中。 3若已知字符串的当前字符是一个数字字符,并且还有后继字符,设该数字字符的面值为 n,则将它的后续字符(包括后续字符是一个数字字符)重复复制 n+1 次到新字符串中。 4以上述一次变换为一组,在不同组之间另插入一个下划线字符“-”用于分隔。例如。encode()函数对字符串 26a3t2 的变换结果为 666_a_tttt_2 复原函数 dec

    10、ode()做变换函数 encode()的相反的工作。即复制不连续相同的单个字符,而将一组连续相同的字符(不超过 10 个)变换成一个用于表示重复次数的数字字符和一个重复出现的字符,并在复原过程中掠过变换函数为不同组之间添加的一个下划线字符。 假定调用变换函数 encode()时的已知字符串中不包含下划线字符。 【函数 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;k

    11、n;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; *op+c; if(* ip=“_“,) 6 ; * op=“0“; return op-outstr; (分数:15.00)解析:*ip=“0“&*i

    12、p=“9“解析 本小题部分判断字符是否是数字。解析:*op+=c解析 将 n 个 c 顺序写入 op 中。解析:*op+=*ip解析 当前字符不是数字,简单复制一次的情况。解析:op-解析 到 op 的最后了,往前移一个单元加入结束符。解析:n1解析 判断 n 是否1,即字符是否重复。解析:ip+解析 当前字符是下划线,跳过即可。三、试题三(总题数:1,分数:15.00)阅读以下说明和 C 程序,填充函数中的空缺。 说明 N 个游戏者围成一圈,从 1N 顺序编号,游戏方式如下;从第一个人开始报数(从 1 到 3 报数),凡报到3 的人退出圈子,直到剩余一个游戏者为止,该游戏者即为获胜者。 下面

    13、的函数 playing(Linklist head)模拟上述游戏过程并返回获胜者的编号。其中,N 个人围成的圈用一个包含 N 个结点的单循环链表来表示,如图 1 所示,游戏者的编号放在结点的数据域中。 在函数中,以删除结点来模拟游戏者退出圈子的处理。整型变量 c(初值为 1)用于计数,指针变量 p 的初始值为 head(如图 1 所示)。游戏时,从 p 所指向的结点开始计数,p 沿链表中的指针方向遍历结点,c 的值随 p 的移动相应地递增。当 c 计数到 2 时,就删除 p 所指结点的下一个结点(因下一个结点就表示报数到 3 的游戏者),如图 2 所示,然后将 c 设置为 0 后继续游戏过程。

    14、 (分数:15.00)解析:1解析:q-next 或 p-next-next解析:0解析:p-next解析:p-code 本题要求完成程序,该程序的功能是删除报号为 3 的结点,直到剩下一个结点为止。while 语句中的 n 的取值范围从 1 到 N,又因为 while 语句先执行中括号里的语句在判断 n 值,所以第一空应填 n1,while 语句中的 if 条件语句是判断 p 指向的下一结点是否该删除,若当 c 为 2 时,则 p 指向的当前结点报号为 2,p 指向的下一个结点,即 p-next 的报号应为 3,该删除,这时应该将 p-next的指向 c 为 3 的结点的下一个结点,即 p-

    15、next-next,再将 p-next 删除,所以第二空应该填 p-next-next,删除 p-next 之后将开始新一轮的报数,根据题意,将 c 值重新设置为 0 后继续,所以第三空对 c 重新赋值,应该填 0,此时,n 个数已经删去一个数,所以 n 的值相应的要减少,if 语句执行完后,跳出 if 语句,将 p 重新赋值,即第四空 p=p-next,当从 1 到 n 都执行一遍后,会有一个人留下,即为获胜者,第五空是给获胜者编号赋值所以应该填 p-code,最后返回获胜者编号,该程序执行完毕。四、试题四(总题数:1,分数:15.00)1 说明】 函数 create 能够建立具有任意行和任

    16、意列的动态二维整数数组。 【函数 4.1 程序】 #include“stdioh” int * * create(int row, int col ) int * * x,i; x=(int * *) 1 ; for( 2 ) xi=(int *)malloc(col * sizeof(int); 3 ; 【函数 4.2 说明】 函数 main()能够判断输入年是否为闰年。 【函数 4.2 程序】 main() int year,n; scanf(“input year %d”,&year); n=( 4 | 5 ); if(n=1)printf(“%d is a leap yearn”,year); else printf(“%d is not a leap yearn”,year); (分数:15.00)解析:malloc(row * sizeof(int)解析 为行指针分配空间。解析:i=0;irow;i+解析 为二维数组各行循环分配空间。解析:return(x)解析 返回生成的二维数组。解析:year%4=0&year% 100! =0解析 当年数可以被 4 整除而且不是整百年时,该年为闰年。如公元304 年是闰年,而公元 300 年不是闰年。解析:year%400=0解析 被 100 整除而不能被 400 整除为平年;被 100 整除也可被 400 整除的为闰年。


    注意事项

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




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

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

    收起
    展开