本文是自己学习所做笔记,欢迎转载,但请注明出处:http://blog.csdn.net/jesson20121020
最近发现了几个公司招聘的笔试机试题,虽然是两年前的,但是题目还不错,所以做了做,下面给出自己对一些题的理解。
问题描述:
下面代码中for循环共执行了多少次?
unsigned short i,j;
for(i = 0,j = 2;i != j;i += 5, j+ = 7)()
问题分析:
首先,看到变量i和j都是无符号的整数,我们知道,无符号整数在内存中是以16位表示的,也就是两个字节,所以要想到i和j的所能取到的最大值。
接着,就是看for循环停止条件,可以看出,这里只有一个条件,即当i== j 时,才停止for循环。
最后,就是找出在什么情况下,i和j才能相等,列出等式,解出即可。
解决思路:
i,j为无符号短整型整数,用2个字节表示,即,i和j的取值范围为0-65535,且当i或j为最大值时,即等于65535,在内存中也就是16位全溢出,这时再加1,则在内存中最高位会溢出,取低16位,即这时变成了16位全0,也就是说当无符号整数达到最大值后,如果再加1,则会变成0.
明白了这一点,这个题就简单了,其实这个题就是考查无符号整数的范围及内存溢出的情况,从for循环中可以看出,停止循环的条件只有一个,那就是i == j,但是可以看出j要比i增加的快,也就说当j先增加到最大值后,然后又开始从0开始增加,才有可能和i相等。
当然了,这个从数学的角度考虑,不用考虑这么多,其实就是一个解一元一次方程的问题:
设循环的次数为c,要停止循环,则有以下等式成立
((2+7*c) - (0 + 5*c)) % pow(2,16) = 0
可以解出c = (pow(2,16) - 2) / 2 = 32767 或 c = -1(不合理,舍去),也就是说这个for循环共执行了32767次
最后,可以用程序验证一下,看结果是否正确,如下:
#include <stdio.h>
#include <math.h>
int main(){
unsigned short i = 0,j;
int count = 0;
for(i = 0 ,j = 2;i != j; i+=5,j+=7){
//printf("i = %d\t j = %d\n",i,j);
count++;
}
printf("for循环共执行了%d次\n",count);
}
执行结果:
for循环共执行了32767次
可以看出,上面的思路没错.
分享到:
相关推荐
2015校园招聘笔试题大合集,汇集百度、腾讯、阿里等多家大型互联网企业的面试题,非常具有参考价值。 内容包括: 360校园招聘2015届技术类笔试题.pdf 2015阿里巴巴校招研发在线笔试题.pdf 2015阿里校招系统...
第一部分 3.搜狗2014校园招聘笔试题
搜狗2013年校园招聘笔试题C,希望对大家有帮助。
2012年10月 搜狗C++/JAVA校园招聘笔试题,数据结构,C++的关键知识点,JAVA的关键知识点,考点范围广泛。
2015 搜狗校园招聘研发类笔试题
回忆版.pdf百度人搜,阿里巴巴,腾讯华为小米搜狗笔试面试八十题.pdf百度校园招聘笔试面试题合集百度校园招聘笔试题web前端2013.pdf百度校园招聘笔试题产品2.pdf百度校园招聘笔试题产品经理2014.pdf百度校园招聘笔试...
网易游戏校园招聘笔试题游戏插件研发岗.pdf 网易游戏校园招聘运维开发岗笔试题.pdf 阿里巴巴校招研发在线笔试题.pdf 阿里校招系统工程师笔试题.pdf 360校园招聘届技术类笔试题.pdf 4399游戏校园招聘游戏开发类笔试题...
搜狗2012.9.23校园招聘会笔试题.docx
搜狗2013校园招聘研发类笔试题高清扫描版,参见博客:http://blog.csdn.net/yanzi1225627/article/details/8278806
搜狗_校园招聘_笔试题目,对希望进搜狗的筒子们可以看看。
搜狗2015校园招聘研发类笔试题.pdf 百度2015前端研发笔试卷.pdf 百度2015大数据云计算研发笔试卷.pdf 百度2015安全研发笔试卷.pdf 美团2015校园招聘研发笔试题.pdf C++基础面试题.docx C++开发工程师面试题库.docx ...
十月下旬腾讯,网易游戏,百度最新校园招聘笔试题集锦(第271-330题).pdf 微软、谷歌、百度等公司经典面试100题[第101-170题].pdf 微软等数据结构+算法面试100题全部答案集锦.pdf 微软公司等数据结构+算法面试100...
阿里-面试题.doc 阿里腾讯华为小米搜狗笔试面试八十题-5.pdf 阿里DBA面试题.pdf ...百度校园招聘笔试题-WEB前端工程师-电子科技大学.pdf Java架构面试专题(含答案)和学习笔记 整套 RAR 超大全压缩包