==>> 点击下载文档 |
doc 1:2005年5月程序员下午试题答案及其分析
doc 2:程序员上午试题
doc 3:程序员上午题
doc 4:程序员下午试题
2005年5月程序员下午试题答案及其分析
[试题一]
[问题1]将流程图中的(1)~(4)处补充完整。
[问题2]若按下式计算奇校验位,则上述流程图中的(1)处应填(5) 。
B0= B1 ○+ B2○+...○+ B7○+1
[参考答案]
(1)0 (2)1;7;1 (3)Bi (4)B0 (5) 1
[解析]
本题主要考察的是奇偶校验位的计算方法,首先给出计算公式,然后按照此公式进行计算:B0= B1 ○+ B2○+...○+ B7
答对本题的关键在于流程图的理解,流程开始先对B0进行赋初值,然后设定循环体,循环初值为1,循环次数为7次,每次循环的增量为1,即从B0开始到B7。然后计算每位与B0的“异或”值。最后得到一个校验位,放在B0中。
然后就是第二问,更换了计算公式为B0= B1 ○+ B2○+...○+ B7○+1在原来的公式基础上增加了一个和1的“异或”操作,所以这时对B0的初值重新考察。B0的值是由B1 ○+ B2○+...○+ B7得到的结果来确定的。
根据偶校验的原理,只有当B0为0的时候B0○+ B1 ○+ B2○+...○+ B7的结果才等于B0。同样只有当B0为1的时候
B0=○+B1 ○+ B2○+...○+ B7○+1的结果才等于B0。
[试题二]
[参考答案]
(1) m%m!=0&&n%m!=0 (2) return (m
[解析]
本题分成两个部分,第一部分是求最大公约数,第二部分是进行字符串处理。
第一部分:
首先判断两个数中是否有一个数可以做为两个数的公约数,如果是,则这个数肯定是最大公约数。如果不是则两个数要做减法,大数减小数。
最后返回两个数中的小的一个。
第二部分:
首先判断字符串是否结束和得到的十进制数串是否小于等于8位。
如果没结束或者得到的十进制数串是否小于等于8位,那么判断当前的字符是否是数字,如果是数字则要根据(*p-¹0¹)从字符计算出数字来。
同时因为每连一个数字,原来的所有得到的数字都要向左移位,所以要乘10;
最后数字数目计算量要加1,而字符指针要向右移动,也加1;
www.m448中国最大的资料库下载