程序员面试宝典1教学讲义.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
程序员面试宝典;参考书;1、结构化程序设计思想 2、编译器 3、C语言 4、编程规范 5、操作系统 6、内存管理 7、优化 8、测试 9、求职之路;2010年7月编程语言排行榜;一、结构化程序设计思想;著名计算机科学家沃思(Nikiklaus Wirth)提出一个公式 数据结构+算法=程序 程序=算法+数据结构+程序设计方法+语言工具和环境 算法是灵魂,数据结构是加工对象,语言是工具,编程需要采用合适的方法。 算法是解决“做什么”和“怎么做”的问题。程序中的操作语句,实际上就是算法的体现。;1966年Bohm等证明了,只用顺序、选择、循环三种基本的控制结构就能实现任何单入口单出口的没有“死循环”的程序。 1968年Dijkstra再次建议从一切高级语言中取消GOTO语句,只使用三种基本控制结构编写程序。 ;70年代初采用结构化程序设计取得成功的例子: 1971,IBM,纽约时报信息库管理系统,8.3万行 美国宇航局空间实验室飞行模拟系统,40万行 1972年Mills提出“程序应该只有一个入口和一个出口”,从而补充了结构程序设计的规则。 ;SP经典定义;结构化程序设计方法;自顶向下逐步求精的程序设计技术;编程过程;求解一个问题;算法的特点;例1(I);例1(II);例1(III); 例2:判断一个整数m是否为素数 算法如下: S1:输入m的值。 S2:判断m是否为素数。 S3:输出m是否为素数。 S4:算法结束。 ;第2步分析:判断整数m(m2)是否为素数的方法是:如果m不能被i整除(i为2到m-1的所有整数),则m是素数。 算法如下: S2.1:i赋初值为2:标记m是素数 S2.2:判断m能否被i整除。若能,标记m不为素数,结束循环。 S2.3:若m不为被i整除,给i的值加1。若im,则转到S3。;例3(I);例3(II);例3(III);例3(IV)(S3-S4整合);例4:测定字母偶的出现频率;首先把该问题分解成如下几步: S1 初始化计数器数组conmat ; S2 统计每个字母偶的出现频率; S3 输出统计结果。 ;求精上述PAD中的每一个步骤: S1:初始化数组conmat ,显然应该一行一行的初始化;对于每行又应该一个元素一个元素的初始化。;S2:考虑统计部分: 假设被统计的字符串是从终端输入的,则显然我们应该把该字符串全部读入,并在读入的过程中边读边统计。用下图表示。;再考虑S2具体统计算法,为统计字母偶的出现频率,显然在读入字符串的过程中应该始终保存两个字符 prevchar 、thischar ,并且当该两个字符都是字母时,相应计数单元加1;最后在读入下一个字符之前还应该把保存的两个字符向前串。;最后考虑输出部分, 我们把结果输出成两个 26×13 的表,每个表元素是相应字母偶的出现次数: * a b c d e ... m a b ... z * n o p q r ... z a b ... z ;打印一个表(第一个表),显然应该先打印表头再打印下边各行 ;打印表头可以求精成先输出一个“*”;再顺次输出各个字符。 顺次输出各个字符是一个循环。;打印表体应该一行一行的打印, 每行应该先打印行头,再打印本行各个元素; 打印本行各个元素,应该一个元素一个元素的打印,是一个循环;例5:三个齿轮啮合问题;计算步骤表示为:;求精计算三齿数的最小公倍数k3 。 可以把该问题分解成 先求两个齿数na与nb的最小公倍数k2 , 然后再求k2与第三个齿数 nc 的最小公倍数k3 , k3即为na、nb、nc三个齿轮齿数的最小公倍数。 设已经有求两个数的最小公倍数的函数 int lowestcm( int x, int y ) 则该求精过程可表示成 。;求精求两个数的最小公倍数的函lowestcm 。 x、y的最小公倍数是x、y 的积除以x、y 的最大公约数。设已经有求两个数的最大公约数的函数 int gcd(int x, int y) 则该求精过程可表示成: ;采用展转相除法求两个数的最大公约数,函数 int gcd(int x, int y) 定义如下 ;最后,分别计算啮合的最小圈数可以被求精成下图 。;例6:验证三角形外心定理;开始;检验三点是否构成三角形使用一个bool型函数isTriange ,可以求精成: 求两点p1,p2确定的直线方程L12 ; 判断若p3在L12上, 则 isTriange 为false ,

文档评论(0)

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

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

1亿VIP精品文档

相关文档