第2章 程序员级下午试题分析与解答.docVIP

  1. 1、本文档共10页,可阅读全部内容。
  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文档。上传文档
查看更多
第2章 程序员级下午试题分析与解答.doc

第2章 程序员级下午试题分析与解答 试题一 阅读以下说明和流程图,回答问题1和问题2,将解答填入答题纸的对应栏内。 【说明】 设8位二进制代码B0B1…B7中的最高位B0为奇偶校验位。对于任何给定的代码 B1B2…B7,可按下式计算偶校验位: 其中,“”表示“异或”运算。 下面的流程图描述了计算偶校验位的过程。 【流程图】 注:流程图中,循环开始的说明按照“循环变量名:循环初值,循环终值,增量”格式描述。 【问题1】将流程图中的(1)~(4)处补充完整。 【问题2】若按下式计算奇校验位,则上述流程图中的(1)处应填 (5) 。 试题一分析 “异或”运算就是“按位加”运算,俗称不进位的二进制加法。符号“(图片18)”反映了这种特点,便于记忆。偶数个1“按位加”得0,奇数个1“按位加”得1。正是这个特点,计算机内部常用“异或”运算来计算出校验位,从而可以用逻辑电路来实现奇偶校验。 对于B1、B2、…、B6、B7这7个二进制位,采用偶校验时,要求B0~B7中“1”的个数为偶数。因此,若B1~B7中有偶数个“1,则校验位B0等于0,否则B0等于1。 B0的初始值为0时,正好反映了B1~B7的偶校验结果。因此,空(1)处填入“0”。循环中应使每个二进制位参与“异或”运算并把结果保存在B0中,因此,空 (3)处填入“Bi”,空(4)处填入“B0”,空(2)处的循环描述为“l:1,7,1”。若采用奇校验,则B0的初始值应为1。 参考答案 (1)0 (2)1,7,1 (3)Bi (4)B0 (5)1 试题二 阅读以下函数说明和C语言函数,将应填入 (n) 处的字句写在答题纸的对应栏内。 【函数2.1说明】 函数int funl (int m,int n)的功能是:计算并返回正整数m和n的最大公约数。 【函数2.1】 int funl (iht m,int n){ while( (1) ) { if(m>n) m=m-n; else n=n-m; } (2) ; } 【函数2.2说明】 函数long fun2(char*str)的功能是:自左至右顺序取出非空字符串str中的数字字符形成一个十进制整数(最多8位)。 例如,若字符串str的值为“f3g8d5.ji2e3p12fkp,则函数返回值为3852312。 【函数2.2】 long fun2 (char*str) { int i=0; long k=0; char*P=str; while (*p!=\0 (3) ) { if (*p>=0*p<=9) { k= (4) +*p-0; ++i; } (5) ; } return k; } 试题二分析 由函数2.1的说明可知,该函数的功能是计算并返回正整数m和n的最大公约数。由于函数体中只有变量m和n,因此空(1)所在的循环条件只能是关于m和n关系的表达式,且最大公约数保存在m或n中。同时从while的循环体可知,反复从较大者中减去较小者后,最后m和n的值会相等,因此循环条件为m!=n或其等价形式。 函数long fun2(char*str)的功能是:自左至右顺序取出非空字符串str仕中最多8位数字字符形成一个十进制整数。从函数的功能描述和函数体语句可知,变量i是用于计算得到的数字字符个数的,由于i的初始值为0,因此空(1)处应填“i<8”或其等价形式。8位长度的十进制整数a1a2a3a4a5a6a7a8表示为: a1a2a3a4a5a6a7a8=a1*107+a2*106+a3*105+a=*104+a5*103+a6*102+a7*101+a8 =(((((((0*10+a1)*10+a2)*10+a3)*10+a4)*10+a5)*10+a6)*10+a7)*10+a8 因此有:k0=0,ki=ki-1*10+ai (1≤i≤8),k8就是计算结果。 参考答案 (1)m!=n,及其等价形式 (2)return m,或return n (3)i<8,或i<=7,及其等价形式 (4) k*10 (5)p++,或++p,或p+=1,或p=p+1 试题三

文档评论(0)

llww + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档