【计算机类职业资格】程序员-23 (1)及答案解析.doc
《【计算机类职业资格】程序员-23 (1)及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】程序员-23 (1)及答案解析.doc(5页珍藏版)》请在麦多课文档分享上搜索。
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()分别实现对字符串的变
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 程序员 231 答案 解析 DOC
