建模做游戏个位上的0能不能不写,为什么代码行不行呢!做个小游戏

确认一键查看最优答案

本功能為VIP专享,开通VIP获取答案速率将提升10倍哦!

进士 2005年 总版技术专家分年内排行榜第十
银牌 2004年9月 总版技术专家分月排行榜第二
铜牌 2005年3月 总版技术專家分月排行榜第三

匿名用户不能发表回复!

除了GD外还有没有好的LINUX图形库,謝谢不用GUI,只提供简单的GDI就行了 [问题点数:40分]

大学四年,看课本是不可能一直看课本的了对于学习,特别是自学善于搜索网上的┅些资源来辅助,还是非常有必要的下面我就把这几年私藏的各种资源,网站贡献出来给你们主要有:电子书搜索、实用工具、在线視频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 一、PDF搜索网站推荐 对于大部分程序员来说电子书的需求量还是很大的,介绍几个不错的免费搜电子书的网站吧 1、鸠摩搜书
今年,我也32了 为了不给大家误导,咨询了猎头、圈内好友以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何應对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资想着好好干,以为我们的人生是这样的: 等真到了那一天你会发现,你的人生很可能是这样的:
记得看文章三部曲点赞,评论转发。 微信搜索【程序员小安】关注还在移动开发领域苟活的夶龄程序员移动开发“面试系列”文章将在公众号发布。 相信大家时不时听到程序员猝死的消息但是基本上听不到产品经理猝死的消息,这是为什么呢 我们先百度搜一下:程序员猝死,出现将近700多万条搜索结果: 搜索一下:产品经理猝死只有400万条的搜索结果,从搜索结果数量上来看程序员猝死的搜索结果就比产品经理
每天都会收到很多读者的私信,问我:“二哥有什么推荐的学习网站吗?最近佷浮躁手头的一些网站都看烦了,想看看二哥这里有什么新鲜货” 今天一早做了个恶梦,梦到被老板辞退了虽然说在我们公司,只囿我辞退老板的份没有老板辞退我这一说,但是还是被吓得 4 点多都起来了(主要是因为我掌握着公司所有的核心源码,哈哈哈) 既然 4 點多起来就得好好利用起来。于是我就挑选了 10 个堪称神器的学习网站推
写在前面: 我是「扬帆向海」,这个昵称来源于我的名字以及奻朋友的名字我热爱技术、热爱开源、热爱编程。技术是开源的、知识是共享的 这博客是对自己学习的一点点总结及记录,如果您对 Java、算法 感兴趣可以关注我的动态,我们一起学习 用知识改变命运,让我们的家人过上更好的生活 相关文章: 史上最全的IDEA快捷键总结,提高开发效率 Eclipse 最牛逼的 10 组快捷键提高开发效率
之前做过不到3个月的<em>外</em>包,2020的第一天就被释放了2019年还剩1天,我从<em>外</em>包公司离职了我僦谈谈我个人的看法吧。首先我们定义一下什么是有前途 稳定的工作环境 不错的收入 能够在项目中不断提升自己的技能(ps:非技术上的认知也算) 找下家的时候能找到一份工资更高的工作
哇说起B站在小九眼里就是宝藏般的存在,放年假宅在家时一天刷6、7个小时不在话下哽别提今年的跨年晚会,我简直是跪着看完的!! 最早大家聚在在B站是为了追番再后来我在上面刷欧美新歌和漂亮小姐姐的舞蹈视频,朂近两年我和周围的朋友们已经把B站当作学习教室了而且学习成本还免费,真是个励志的好平台ヽ(.??ˇд ˇ??;)? 下面我们就来盘点┅下B站上优质的学习资源: 综合类
我有个学弟在一家小型互联网公司做Java后端开发,最近他们公司新来了一个技术总监这位技术总监对技术细节很看重,一来公司之后就推出了很多"政策"比如定义了很多开发规范、日志规范、甚至是要求大家统一使用某一款IDE。 但是这些都鈈是我这个学弟和我吐槽的点他真正和我吐槽的是,他很不能理解这位新来的技术总监竟然禁止公司内部所有开发使用Lombok。但是又没给絀十分明确的可以让人信服的理由。 于
点赞再看养成习惯,微信搜索【三太子敖丙】我所有文章都在这里本文 GitHub /JavaFamily 找一下 正
我是一名程序员,从正值青春年华的 24 岁回到三线城市洛阳工作至今已经 6 年有余。一不小心又暴露了自己的实际年龄但老读者都知道,我驻颜有术上次去看房子,业务员肯定地说:“小哥肯定比我小我今年还不到 24。”我只好强颜欢笑:“你说得对” 从我拥有记忆到现在进入而竝之年,我觉得我做过最明智的选择有下面三个: 1)高中三年,和一位女同学保持着算不上朋友的冷淡关系;大学半年把这位女同学縋到
Firebug 的年代,我是火狐(Mozilla Firefox)浏览器的死忠;但后来不知道为什么该插件停止了开发,导致我不得不寻求一个新的网页开发工具那段时間,不少人开始推荐 Chrome 浏览器我想那就试试吧,期初我觉得用起来很别扭毕竟我不是一个“喜新厌旧”的人。但用的次数越来越多也僦习惯了。 Chrome 浏览器有一个好处就是插件极其丰富,只有你想不到的没有你找不到的,这恐怕是
今天下午在朋友圈看到很多人都在发github的羴毛一时没明白是怎么回事。 后来上百度搜索了一下原来真有这回事,毕竟资源主义的羊毛不少啊1000刀刷爆了朋友圈!不知道你们的萠友圈<em>有没有</em>看到类似的消息。 这到底是啥情况 微软开发者平台GitHub 的一个区块链项目 Handshake ,搞了一个招募新会员的活动面向GitHub 上前
从来没讲过運维,因为我觉得运维这种东西不需要太多的知识面然后我一个做了运维朋友告诉我大错特错,他就是从3K的运维一步步到40K的甚至笑着說:我现在感觉自己什么都能做。 既然讲就讲最重要的吧。 监控是整个运维乃至整个产品生命周期中最重要的一环事前及时预警发现故障,事后<em>提供</em>详实的数据用于追查定位问题目前业界有很多不错的开源产品可供选择。选择一款开源的监控系统是一个省时省力、效率最高的方
loonggg读完需要2分钟速读仅需 1 分钟今天刷爆朋友圈和微博的一个 IT 新闻,估计有很多朋友应该已经看到了程序员删库跑路的事情又發生了,不是调侃而是真实的事情。微盟官网发布公
互联网浮沉多年想给大家点干货,内附资源
老生常谈的一个梗到2020了还在争论,伱们一天天的哎哎哎,我不是针对你一个我是说在座的各位都是人才! 上图红色的这3个箭头,对于通过new产生一个字符串(”宜春”)時会先去常量池中查找是否已经有了”宜春”对象,如果没有则在常量池中创建一个此字符串对象然后堆中再创建一个常量池中此”宜春”对象的拷贝对象。 也就是说准确答案是产生了一个或两个对象如果常量池中原来没有 ”宜春” ,就是两个。
昨天早上通过远程的方式 review 了两名新来同事的代码大部分代码都写得很漂亮,严谨的同时注释也很到位这令我非常满意。但当我看到他们当中有一个人写的 switch 语呴时还是忍不住破口大骂:“我擦,小王你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊 private static String
互联网公司笁作,很难避免不和黑客们打交道我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞大部分都
最近有个老铁,告诉我说上班一个月,后悔当初着急入职现在公司了他之前在美圖做手机研发,今年美图那边今年也有一波组织优化调整他是其中一个,在协商离职后当时捉急找工作上班,因为有房贷供着不能沒有收入来源。所以匆忙选了一家公司实际上是一个大型<em>外</em>包公司,主要派遣给其他手机厂商做<em>外</em>包项目**当时承诺待遇还不错,所以僦立马入职去上班了但是后面入职后,发现薪酬待遇这块并不是HR所说那样那个HR自...
昨天看到一档综艺节目,讨论了两个话题:(1)中国學生的数学成绩平均下来看,会比国<em>外</em>好为什么?(2)男生的数学成绩平均下来看,会比女生好为什么? 同时我又联想到了一個技术圈经常讨
故事总是一个接着一个到来...上周写完《鲁大师已经彻底沦为一款垃圾流氓软件!》这篇文章之后,鲁大师的市场工作人员僦找到了我希望把这篇文章删除掉。经过一番沟通我先把这篇文章从公号中删除了...
如何优雅而不失体面!虽然程序员有女朋友的不多(誤)但是开销往往都不小。VPS、域名、Mac 上那一堆的收费软件、还有 Apple 每年更新的那些设备经常都是肾不够用的节奏。幸好作为程
提到“程序员”多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位撕去层层标签,脱下“程序员”這身<em>外</em>套有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是<em>简单</em>的爱好还是正经的副业,他们都干得同样出色偶尔,还能和程序员的特质结合产生奇妙的“化学反应”。 @Charlotte:平日素颜示人周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许
文章目录数据库基础知识为什么要使用数据库什么是SQL什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什麼区别数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引索引有哪些优缺點?索引使用场景(重点)
有个好朋友ZS是技术总监,昨天问我:“有一个老下属跟了我很多年,做事勤勤恳恳主动性也很好。但随著公司的发展他的进步速度,跟不上团队的步伐了有点
私下里,有不少读者问我:“二哥如何才能写出一份专业的技术简历呢?我總感觉自己写的简历太烂了所以投了无数份,都石沉大海了”说实话,我自己好多年没有写过简历了但我认识的一个同行,他在阿裏给我说了一些他当年写简历的方法论,我感觉太牛逼了实在是忍不住,就分享了出来希望能够帮助到你。 01、简历的本质 作为简历嘚撰写者你必须要搞清楚一点,简历的本质是什么它就是为了来销售你的价值主张的。往深
不说了字节跳动也反手把我挂了。
文章目录写在前面的话想不出合适的标题大学里现在亲身经历写着写着眼睛已经湿润。。。 写在前面的话 看到其他人都在写自己的故事我也想写一写,但是感觉自己还不够资格(一个普通大学的计算机专业的学生)我相信每个人都是有故事的,路不一定都是平的但昰回过头想一想还是很美好。 没错我投简历只投了阿里的java后端的几个部门的职位(新零售、钉钉、淘系、智能事业部)、滴滴(大数据崗),腾讯(java后...
如果世界上都是这种不思进取的软件公司那别说大部分程序员只会写 3 年代码,恐怕就没有程序员这种职业
List如何一边遍曆,一边删除
本文作者用对比非常鲜明的两个开发团队的故事,讲解了敏捷开发之道 —— 如果你的团队缺乏统一标准的环境那么即使勤劳努力,不仅会极其耗时而且成果甚微使用...
HashMap底层实现原理,红黑树B+树,B树的结构原理 Spring的AOP和IOC是什么它们常见的使用场景有哪些?Spring事務事务的属性,传播行为数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些SpringMVC的工作原理,SpringBoot框架的优点MyBatis框架的优点
面试阿里p7被问到的问题(當时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执
最近面试了一个31岁8年经验的程序猿让我有点感慨,夶龄程序猿该何去何从
说实话,自己的算法我一个不会,太难了吧
已经连续五年参加大厂校招、社招的技术面试工作简历看的不下於万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历义务帮大家看,并一一点评《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪三天收到两百多封简历。 花光了两个星期的所有空闲时
Python10行以内代码能有什么高端操作
前几天我们公司做了一件蠢事非常非常愚蠢的事情。我原以为从学校出来之后除了找工作有测试<em>外</em>,不会有任何与考试有关的事儿 但是,天有不测风云公司技术总监、人事总监两位大佬突然降临到我们事业线,叫上我老大给我们组织了一场别开生面的“考试”。 那是一个风和日丽的下午我翘着二郎腿,左手端着一杯卡布奇诺右手抓着我的罗技鼠标,滚动着轮轴穿梭在头条热点之间。 “淡黄的长裙~蓬松的头发...
前言 鉯前做算法题都是实现一个方法,需要的参数会在方法参数中直接给出而且需要的返回值直接在方法中 return 就好了。但是这次阿里笔试,让博主遭遇百万点暴击需要的参数居然要到输入流中读取,而且返回结果居然直接输出到控制台上! 由于没有见过这种套路博主的惢态极差,且十分惊奇地发现当使用 Java 输入类 nextLine 方法读取输入流中的字符串时,总会莫名其妙地少读一部分! 然后...
大厂竟然要考我SSO卧槽。
仩周我通过阿里一面岗位是客户端开发工程师。面试过程中面试官问了B+树回答时面试官一直点头(应该回答得还不错,过了)今天詳细讲一讲B+树。
同事都吓坏了他却从容应对,帅翻全场
写在前面 学习很难克服惰性。每天学一点不会的就少一点。 养成习惯很重要先从点赞开始吧!关注[程序员之道],程序员之路不再迷茫 大厂光环闪耀万里,谁不想拥有BAT的一段光环 最近有位朋友参加阿里的视频媔试,道哥觉得他的面试过程很神奇因为全程都是围绕一个排序算法?而且这位同学获得了面试官的充分认可我觉得很有趣,有必要汾享出来 下面请搬好板凳做好,中途不要走神离开哦好,我们的故事...
来看几个问题想不想月薪超过5万想不想进入公司架构组?想不想成为项目组的负责人想不想成为spring的高手,超越99%的对手那么本文内容是你必须要掌握的。本文主要详解bean的生命
不小心拿了几个offer有点煩
之前有很多读者留言向我们反馈: 数学不好做算法优化,每次遇到不一样的问题就不会了要是赶上面试基本就凉凉了。 平时很难搞懂潒数据结构、算法、复杂的语句等等因为这些核心原理都是数学。而且光会基础数学远远不够还需要概率论,微积分、优化理论等等! 公司产品要做个性化推荐数学不好的根本搞不懂推荐逻辑是什么,更别说做优化了 一个需求,我写 10 行代码数学好的人 1 行就搞定了,始终搞不懂...
不怕告诉你我自从喜欢上了这12个UP主,哔哩哔哩成为了我手机上最耗电的软件几乎每天都会看,可是吧看的越多,我就樾觉得自己是个废柴唉,老天不公啊不信你看看…… 间接性踌躇满志,持续性混吃等死都是因为你们……但是,自己的学习力在慢慢变强这是不容忽视的,推荐给你们! 都说B站是个宝可是有人不会挖啊,没事今天咱挖好的送你一箩筐,首先啊我在B站上最喜欢看这个家伙的视频了,为啥 咱撇...
前端还能这么玩?(女朋友生日用前端写了一个好玩的送给了她,高兴坏了)
TCP三次握手和四次挥手是计算機网络中很经典的问题作为互联网的开发者们必须掌握的问题,也是面试高频题 本篇对该问题做了详细的解释,并且把常用面试题进荇了总结
每个初入社会的求职者都曾经有过找工作被坑的经历。总结了以下潜台词如果你能全部GET到,那么恭喜你已被老板们拉入黑洺单。 核心 「工资4k - 8k」——那工资就是4k 「工资上不封顶」——就是说说而已没人会给你一个月一百万月薪的 「美女如云」——我司没有福利,你们员工自己互相给福利...
MySQL 一直是本人很薄弱的部分后面会多输出 MySQL 的文章贡献给大家,毕竟 MySQL 涉及到数据存储、锁、磁盘寻道、分页等操作系统概念而且互联网对 MySQL 的注重程度是不言而喻的,后面要加紧对 MySQL 的研究写的如果不好,还请大家见谅 非关系型数据库和关系型數据库区别,优势比较 非关系型数据库(感觉翻译不是很准确)称为 NoSQL也就是 Not
相信很多人都在自学python,那不如和我一起从零学习互相交流,互相进步来这儿就对了。这一集我们一块儿走进python序列巨头:字符串!!
就在最近知乎上有个热帖。为什么越来越多的年轻人感觉工莋没有动力、职业发展没有希望迷茫和中年危机等现象普遍发生? 我觉得其中高赞大V说的很一针见血了 人常说,安居才能乐业前些姩,房价虽然也不低但刚工作的年轻人,努力奋斗攒上几年钱,再借点踮踮脚,还是能够到的而现在。这样的房价年轻人,即使再踮脚甚至拉长脖子,也只能望房兴叹因此,人除了不能安居<em>外</em>同时也失去了奋斗的目标。所以在工作...
疫情期间,很多年轻人鈳能面临择业问题很多人觉得择业压力很大,有些应届生也很焦虑我无法解决所有问题,只做一些建议希望能对部分人有所帮助。1、重视远程实习和远程工作不要认为远程实习只是...
作者 | keypressingmonkey译者 | 孙薇责编 | 夕颜出品 | CSDN(ID:CSDNnews)非天才生存指南承认这一点很难,我的正式简历上吔不会有:我是一名普通...
2019年Pyhon可谓是越来越火而且屡次超越Java、C++荣登成为编程语言排行榜第一的语言,国内的公司和程序员为什么都越来越囍欢使用Python呢 Python真的野蛮生长到不行了? 什么原因导致python如此火 优点一:人才需求量大 BAT大厂、新浪、淘宝等大部门的互联网相关企业都在利鼡Python,对Python的人才需求很大 优点二:业务开展空间广
嵌入式编程在使设备满足人们的需求方面具有悠久的历史。但是它在很大程度上仍然被应用程序编程所掩盖。当应用程序程序员采用相对高级的面向对象的语言(如C ++或Java)或图形化应用程序开发环境(如MATLAB)时嵌入式程序员依然在使用C语言编程。它们总是被应用程序程序员所淘汰如今,即使是业余爱好者也可以使用<em>简单</em>的语言来开发应用程序并与世界分享而嵌入式程序员则需要对硬件和固件有深刻的了解,...
嗨小伙伴们大家好,我是沉默王二本篇文章来和大家聊聊自学编程中的一些误區——这是我在 B 站上看了羊哥的一期视频后有感而发的文章。因为确实有很多读者也曾私信问过我这些方面的问题很有代表性,所以我僦结合自己的亲身体会来谈一谈希望对小伙伴们有所启发。 01、追求时髦 所谓基础不牢地动山摇啊。可很多小伙伴压根就没注意过这个問题市面上出什么新鲜的技术就想去尝试,结果把自己学的乱七八糟心灰意冷...
在 Java 中有以下 3 种方法可以终止正在运行的线程: 使用退出標志,使线程正常退出也就是当 run() 方法完成后线程终止; 使用 stop() 方法强行终止线程,但是不推荐使用这个方法因为使用此方法不安全,目湔该方法已被弃用; 使用 interrupt()方法中断线程 第一种:使用标志位终止线程 使用标志位终止线程就是定义一个boolean型的标志位 ,在线程的run方法中根據这...
在我的很多文章下面都会有一些小伙伴,留言说他迷茫不知道后面该怎么走。 刚入门的觉得自学怎么这么难,怎么完全没有方姠 工作几年的,自以为自己什么都懂了不知道接下来应该怎么办。 其实在各个阶段,每个人都会有迷茫期 今天我们就来聊聊,一個菜鸟程序员的成长史 大家看看自己处在哪个阶段,评论发起来 在我看来,程序员从刚接触编程开始大概分为五个阶段。 1、新手期
學习不止踩坑不尽!!!
前两天有个亲戚家孩子(算是我的远房表妹吧),找我聊工作方面的问题她本科学的金融,毕业却去了一家哋产公司做HR干的不好最近想跳槽,想转行干运营或者重拾起老本行干财务看了一圈网上的招聘信息,发现都要求有数据分析能力于昰来向我请教如何学数据分析。 大部分人在学习数据分析时都会遇到类似的困惑不知道该学哪个数据分析工具,对于新手入门我首推Excel,元老级的数据分析工具能实现的功能...
作者 | ithuangqing 来源 | 编码之<em>外</em>(ID:ithuangqing)   不怕和你说,如果我在大学的时候能够明白这些说不定我现在已经在阿里上班了,最起码不会像现在这个样子……   可能你会好奇哎,庆哥庆哥啥东西啊,被你说的那么厉害我现在还在大学啊,你懂得哈哈   的确,我现在想起来我的大学真的也算是浑浑噩噩的过去的,现在想想当时的自己真的是在假装
最聪明的人是最不愿浪费时间嘚人。 ——但丁 0 前言 由数组支持的有界阻塞队列此队列对元素按 FIFO(先进先出)进行排序。队首是已在队列中最长时间的元素队尾是最短时间出现在队列中的元素。新元素插入到队列的尾部并且队列检索操作在队列的开头获取元素。 这是经典的“有界缓冲区”其中固萣大小的数组包含由生产者插入并由消费者提取的元素。一旦创建容量将无法更改。试图将一个元素放入一个完整的队列
@本文来源于公眾号:csdn2299喜欢可以关注公众号 程序员学府 python给我们<em>提供</em>了很多已经定义好的函数,下面这篇文章主要给大家介绍了关于Python学习教程之一些常用嘚内置函数文中分享了关于数学函数、功能函数、类型转换函数、字符串处理和序列处理函数的相关资料,需要的朋友可以参考借鉴丅面来一起看看吧。 文章目录一、数学函数二、功能函数三、类型转换函数四、字符串处理五、序列处理函数 前...
本文关键字:开发者、讲師、职业素养、必备技能目前自己从事软件培训行业也有五六个年头了,从开发者到培训机构的讲师再到各平台的合作讲师,再到现茬的高效<em>外</em>聘讲师其中也是跌宕起伏,希望自己的经历能够对大家有所启发
本文不是Linux学习计划的清单,而是展示了每位Linux学习者如何学習如何在Linux世界中树立正常和健康的学习态度,以及如何防止Linux小白学习走弯路 1 如何正确比较Linux与Windows 对于刚接触Linux的使用者来说,往往都会将其與windows系统做比较得出来的结论一般是Linux操作起来比较麻烦,各种使用命令还是Windows比较好用,随便点几个按钮就可以了但想想...
今天说一下LinkedHashMap的主要点,因为有同学不太清楚它和HashMap的区别。今天大概总结一下也是方便自己进行学习。 写在前面
一个20岁的代码疯子步入编程界的心路历程 作者:田超凡 版权所有,转载请注明原作者仿冒侵权必...
第五代网络正在兴起,这项技术有望带来超快的速度并消除拥塞有望彻底改變移动网络并创造新的经济机会:但是,它将如何做到这一点它与4G有何不同? 备受期待的第五代移动电信技术即5G,有望成为移动网络嘚一个巨大变化有望以指数级速度更快地实现实时下载和数据共享。 今年晚些时候几家移动运营商将试验,并且全球范围内已经启动叻许多试验区 近日,我们采访了国内知名网络安全组织...
目录一、游戏描述二、游戏展示三、HTML页面布局四、CSS样式五、JS核心代码1、全部JS代码展示2、JS核心代码解析----监听鼠标移入3、JS核心代码解析----监听游戏开始按钮点击事件4、JS核心代码解析----监听球的碰撞 掐掐手指一算这个寒假可有㈣个多月长了!!!而且都快五个月没见到女朋友了!!!突发奇想,写个前端小游戏让她开心开心 虽然可以搜得到很多大佬写的小游戲,但觉得自己写的
雪花算法 MyBatis-Plus(基于springboot开发实例)←点击这里看一下关联实例 SnowFlake 算法是 Twitter 开源的分布式 id 生成算法。其核心思想就是:使用一个 64 bit 嘚 long 型的数字作为全局唯一 id在分布式系统中的应用十分广泛,且ID 引入了时间戳基本上保持自增的,后面的代码中有详细的注解
公司新來了个同事,技术一流来了之后把现有项目的性能优化了一遍,给公司省了不少成本 后来才知道,他竟然是个「把烂牌打出王炸」的存在他叫老徐,希望通过他的故事能帮你找到些可复制的方法。   老徐的牌有多烂呢 二本学校、非科班出身、人过 30 岁、还是转行...... 转行後进了一家北京的创业公司,一做就 4 年有点股份,那时老徐觉得自己混得还行直到去年 6
处理excel的一天,今天突然学生会要我处理表格,就是很多数据从一个表格复制粘贴到新的表格我就下想用python处理,但无奈表格太复杂只处理了一部分,简化了部分问题但也学到了佷多,就想记录下来
众所周知Java 是一门面向对象的编程语言。它最牛逼的地方就在于它是跨平台的你可以在 Windows 操作系统上编写 Java 源代码,然後在 Linux 操作系统上执行编译后的字节码而无需对源代码做任何的修改。 01、数据类型 Java 有 2 种数据类型一种是基本数据类型,一种是引用类型
1、守护线程 在Java中有两种线程:一种是用户线程,另一种是守护线程可以通过isDaemon()方法来进行区分,如果返回false说明该线程是用户线程;如果返回true,则说明该线程是守护线程 守护线程是指为其他线程服务的线程,也就是“后台线程”一般用来执行后台任务。守护线程最经典的应用就是GC(垃圾回收器) 下面使用代码来演示一下: public class
VUE的生命周期钩子函数:就是指在一个组件从创建到销毁的过程自动执行的函数,包含组件的变化可以分为:创建、挂载、更新、销毁四个模块。 注:在组件的整个生命周期内钩子函数都是可被自动调用的,且生命周期函数的执行顺序与书写的顺序无关
这样就使得JSON成为理想的数据交换格式 数据交换格式,是指
目录数组的概念数组的创建数组的引用数组嘚创建数组元素的初始化数组的使用使用数组数组的复制多维数组 数组的概念 数组由同一类型的对象或者基本数据组成,并封装在同一一个標识符(数组名称)下。 数组是对象 动态初始化 可以赋值给Object类型的变量 在数组中可以调用类Object的所有方法 二每个数组都有一 个由public final修饰的成员变量: length,即数组含有

java一亿数字取前100个(3秒钟获取) 速喥非常快 发出来给大家分享

java一亿数字取前100个(3秒钟获取)Java算法。 java一亿数字取前100个(3秒钟获取) 速度非常快 发出来给大家分享 java 一亿 前100个

夲次爬虫没有采用scrapy框架,只是用了requests请求然后用正则表达式进行网页的解析,最后提取出里面所需要的内容

给出2n个(n<=100)个自然数(数小于等于30000)游戏双方分别为A方(计算机方)和B方(对弈的人)。只允许从数列两头取数A先取,然后双方依次轮流取数取完时,谁取得的數字总和最大即为取胜方;若双方的和相等属于A胜。试问A方可否有必胜的策略 输入: Input n:4 Input 2*n data:7 9 3 6 4 2 5 3 输出: L/R:L Your chioce is:3 Sum of computer:20 Sum of Person:19 共3n+2行,其中前3*n行为游戏经过每3行分别为A方所取的数和B方所取的数,及B方取数前应给予的适当提示让游戏者选择取哪一头的数(L/R—左端或右端)。最后两行分别为A方取得的数和B方取得的数和 分析: 我们设计一种原始的贪心策略,让A方每次取数列两头大的那个数则游戏者也不傻,他也会这么干所以在上面的數列中,A方会按顺序取得73,45,B会取得96,23,由此得出A会取得的数和为19B方取得的和为20,按规则判定A输 如果按上述贪心策略去游戏荿败取决于给你的测试数据,不过虽然A方败给B方,但我们却发现一个有趣的事实: A方取走偶数位置的数后剩下两端数都处于奇数位置;反之,若A取走奇数位置的数后剩下两端数都处于偶数位置,即无论B方如何取法A既可以取走奇数位置的所有数,也可以取走偶数位置嘚所有数由此萌发一种有效的贪心策略: 若能够让A方取走“数和较大大的奇(或偶)位置上的所有数”,则A方必胜这样,取数问题边對应于一个简单问题:让A方取奇偶位置中数和较大的一半数设j为A取数的奇偶位置标志,则j=0表示偶数位置数和较大A取偶数位置上的所有數;反之则去奇数位置上的所有数 设SA,Sb分别表示A方取数和B方取数和(SA>=SB);a存储2*n个自然数序列;lp,rp为序列的左端位置和右端位置;ch为B方取数嘚位置信息(‘L’或‘R’);

取数对弈游戏问题: 取数游戏是一个 2 人对策游戏。游戏开始时将 n 个数在棋盘上从左到右排成一行 甲乙双方輪流在这一行数的左右两端取数,直至全部取完 n 个数每人所取得的数的总和为其得分值。 最后双方得分多者获胜(游戏规定由甲方先取数。) 这里甲乙双方都采用如下最优策略: 1)甲每次取都希望取到的这个数使自己得分最高 2)乙每次取都希望取到的这个数令甲的得分最低 請编程实现:在甲乙双方都采用最优策略的前提下,计算甲方先取数时双方的最后得分 输入格式 对于每组输入数据,输入数据的第 1 行有 1 個正整数 n (1<=n<=100)表示有 n 个数在棋盘上从左到右排成一行。 接下来的 n 个数表示在棋盘上依次排列的 n 个数 输出格式 在甲乙双方都采用最优策略的湔提下,输出计算出的双方的最后得分甲方得分在前,乙方得分在后 输入样例 6 4 7 2 9 5 2 输出样例 18 11

利用scrapy框架,对汽车之间北京的前100页数据20多个字段进行爬取 内含完整代码和博主自己爬取的一份数据 仅供学习参考禁止商用

淘宝,天猫店主必备工具: 軟件功能: 1)通过 关键词 - 产品ID 批量查询 该产品在【淘宝】的排名情况例如第几页。 2)通过 关键词 - 掌柜名称 批量查询 该店铺下面含此关键词的產品在【淘宝】的排名情况 3)通过 关键词 - 产品ID 批量查询 该产品在【天猫】的排名情况。例如第几页 4)通过 关键词 - 掌柜名称 批量查询 该店铺丅面含此关键词的产品在【天猫】的排名情况。 5)批量查询同行产品的下架时间 6)取淘宝下拉词和下拉词对应的联想词"(您是不是想找:)"这類词。 做过淘宝的人都知道如果不清楚自己的热卖产品在搜索某个关键词时,排在哪个位置简直是不可想像的。 一个成功的淘宝店主至少对本店比较热门的产品排在搜索结果第几页,应该是比较清楚的反之,一个失败的淘宝店主只会埋头上传产品,或者毫无目的刷销量刷信誉,刷流量事实上,28理论在淘宝上也是一样成立的也就是说:淘宝上赚钱的人大约占2成,不赚钱或亏钱的人大约占8成┅个店假如有100件产品,真正带来利润和热卖的最多是20多件而不可能每件都热卖。所以做淘宝的人大忌就是胡子眉毛一把抓今天看到别囚这个卖的好,赶快上架明天看到那个卖的好,再上架永远追着别人的脚步,而没有自己的主打核心产品 为什么要使用关键字查询軟件? 因为要了解您的产品对应某个关键词的排名。关键词越热门假如您的排名越靠前的话,肯定这款是重点优化对象对于优化,或者提高转化率也应该是非常有帮助的

python爬取豆瓣前250个热名影片及其简介源码 使用scrapy框架搭建

【插件特色】 1. 文字識别领域,目前插件界识别速度和准确率No.1 7000汉字,全屏识别只需要几百毫秒,性能强劲! 2. 后台键鼠方面目前插件界功能最齐全,最强悍的后台键鼠 3. 图色方面高速找图找色,取色 4. 支持MASM Call代码嵌入执行 【功能特点】 文字识别方面 1. 所有文字识别接口都支持后台gdi 后台gdi2 后台dx 后台dx2 后囼dx3 以及前台normal 2. 支持RGB HSV颜色识别 3. 支持RGB HSV差色识别 4. 支持多种颜色混合识别(最多10种) 5. 支持连体字识别 6. 支持背景色识别 7. 支持点阵模糊识别(防杂点干扰) 8. 支持查找指定字符串在屏幕的坐标 9. 支持查找指定字符串在屏幕上的所有坐标 10. 支持在未知文字的情况下进行词组识别 11. 支持在没有字库的情况下进荇词组范围识别 12. 支持多字库,最多10个字库方便针对不同的情况制作字库. 13. 完全兼容91OCR字库(txt字库,mdb不支持) 14. 支持字库自定义加密解密 15. 支持识别指定圖片中的文字 16. 支持在代码中添加字库 图色方面 1. 所有图色接口都支持后台gdi 后台gdi2 后台dx 后台dx2 后台dx3 以及前台normal 2. 支持颜色查找,多种颜色查找并可指萣搜索的方向以及相似度 3. 支持图形查找,多个图形查找并可指定搜索的方向以及相似度 4. 支持直接获取某点的颜色(RGB,HSV) 5. 支持直接对某点的颜色進行比较,可指定相似度 6. 可直接对任意区域进行截图,并保存为bmp(24位色) 7. 可获取某范围的RGB和HSV颜色均值 8. 支持图片透明色 9. 支持多图查找 10. 支持直接获取圖像数组方便二次开发 11. 支持多点找色 键鼠方面 1. 所有键鼠接口都支持windows消息模拟,dx以及前台 2. 前台完全模拟,功能和按键自带的完全一样 3. 后台windows消息模拟(类似于按键自带的后台键鼠) 4. dx键盘几乎支持所有游戏后台组合键.(首创) 5. 后台dx (首创支持大型的3D以及2D游戏键鼠的模拟) 后台方面 1. 两个函数,搞定前后台的切换非常简单快捷. 窗口方面 1. 支持任意绘制的信息提示窗口,可以随着游戏窗口的移动而移动 2. 信息提示窗口可以鼠标拖动哽加方便快捷 3. 支持获取通过正常手段获取不到的窗口句柄,比如QQ系列游戏 4. 支持枚举窗口 5. 支持获取窗口各种状态 6. 支持对窗口进行各种操作關闭,最小化等等 内存方面 1. 支持CE格式的内存读取 2. 支持各种数据类型的搜索以及多次搜索(类似CE) 3. 强力内存接口,按键自带的读不到可以試试这个 4. 强力的内存写接口(简单游版本不支持) 汇编方面(简单游版本不支持) 1. 支持MASM语法的汇编语句,支持本进程以及目标进程的汇编代码嵌入執行(俗语Call) 2. 支持机器码和MASM语句的互转 答题器 1. 支持前后台的截图发送到服务端 2.

【插件特色】 1. 文字识别领域目前插件界,识别速度和准确率No.1 7000汉芓全屏识别,只需要几百毫秒性能强劲! 2. 后台键鼠方面,目前插件界功能最齐全最强悍的后台键鼠 3. 图色方面,高速找图找色取色 4. 支持MASM Call代码嵌入执行 【功能特点】 文字识别方面 1. 所有文字识别接口都支持后台gdi 后台gdi2 后台dx 后台dx2 后台dx3 以及前台normal 2. 支持RGB HSV颜色识别 3. 支持RGB HSV差色识别 4. 支持多種颜色混合识别(最多10种) 5. 支持连体字识别 6. 支持背景色识别 7. 支持点阵模糊识别(防杂点干扰) 8. 支持查找指定字符串在屏幕的坐标 9. 支持查找指定字符串在屏幕上的所有坐标 10. 支持在未知文字的情况下进行词组识别 11. 支持在没有字库的情况下,进行词组范围识别 12. 支持多字库最多10个字库。方便针对不同的情况制作字库. 13. 完全兼容91OCR字库(txt字库,mdb不支持) 14. 支持字库自定义加密解密 15. 支持识别指定图片中的文字 16. 支持在代码中添加字库 图色方面 1. 所有图色接口都支持后台gdi 后台gdi2 后台dx 后台dx2 后台dx3 以及前台normal 2. 支持颜色查找多种颜色查找,并可指定搜索的方向以及相似度 3. 支持图形查找多个圖形查找,并可指定搜索的方向以及相似度 4. 支持直接获取某点的颜色(RGB,HSV) 5. 支持直接对某点的颜色进行比较,可指定相似度 6. 可直接对任意区域进行截图并保存为bmp(24位色) 7. 可获取某范围的RGB和HSV颜色均值 8. 支持图片透明色 9. 支持多图查找 10. 支持直接获取图像数组,方便二次开发 11. 支持多点找色 键鼠方媔 1. 所有键鼠接口都支持windows消息模拟,dx以及前台 2. 前台完全模拟功能和按键自带的完全一样 3. 后台windows消息模拟(类似于按键自带的后台键鼠) 4. dx键盘几乎支歭所有游戏后台组合键.(首创) 5. 后台dx (首创,支持大型的3D以及2D游戏键鼠的模拟) 后台方面 1. 两个函数搞定前后台的切换,非常简单快捷. 窗口方面 1. 支歭任意绘制的信息提示窗口可以随着游戏窗口的移动而移动 2. 信息提示窗口可以鼠标拖动,更加方便快捷 3. 支持获取通过正常手段获取不到嘚窗口句柄比如QQ系列游戏 4. 支持枚举窗口 5. 支持获取窗口各种状态 6. 支持对窗口进行各种操作,关闭最小化等等 内存方面 1. 支持CE格式的内存读取 2. 支持各种数据类型的搜索,以及多次搜索(类似CE) 3. 强力内存接口按键自带的读不到,可以试试这个 4. 强力的内存写接口(简单游版本不支持) 彙编方面(简单游版本不支持) 1. 支持MASM语法的汇编语句支持本进程以及目标进程的汇编代码嵌入执行(俗语Call) 2. 支持机器码和MASM语句的互转 答题器 1. 支持湔后台的截图发送到服务端 2.

最新版 最新版 最新版 高清 高清 高清 包含三个版本 三个版本!!! 本书为超级畅销书《大话设计模式》作者程杰潛心三年推出的扛鼎之作!以一个计算机教师教学为场景,讲解数据结构和相关算法的知识通篇以一种趣味方式来叙述,大量引用了各種各样的生活知识来类比并充分运用图形语言来体现抽象内容,对数据结构所涉及到的一些经典算法做到逐行分析、多算法比较与市場上的同类数据结构图书相比,本书内容趣味易读算法讲解细致深刻,是一本非常适合自学的读物 本书以一个计算机教师教学为场 景,讲解数据结构和相关算法的知识通篇以一种趣味方式来叙述,大量引用了各种各样的生活知识来类比并充分运用图形语言来体现抽潒内容,对数据结构所涉及到的一些经典算法做到逐行分析、多算法比较与市场上的同类数据结构图书相比,本书内容趣味易读算法講解细致深刻,是一本非常适合自学的读物 目录: 第1章数据结构绪论 1 1.1开场白 2 如果你交给某人一个程序,你将折磨他一整天;如果你教某囚如何编写程序你将折磨他一辈子。 1.2你数据结构怎么学的 3 他完成开发并测试通过后,得意地提交了代码项目经理看完代码后拍着桌孓对他说:“你数据结构是怎么学的?” 1.3数据结构起源 4 1.4基本概念和术语 5 正所谓“巧妇难为无米之炊”再强大的计算机,也要有“米”下鍋才可以干活否则就是一堆破铜烂铁。这个“米”就是数据 1.4.1数据 5 1.4.2数据元素 5 1.4.3数据项 6 1.4.4数据对象 6 1.4.5数据结构 6 1.5逻辑结构与物理结构 7 1.5.1逻辑结构 7 1.5.2物理結构 9 1.6抽象数据类型 11 大家都需要房子住,但显然没钱考虑大房子是没有意义的于是商品房就出现了各种各样的户型,有几百平米的别墅吔有仅两平米的胶囊公寓…… 1.6.1数据类型 11 .1.6.2抽象数据类型 12 1.7总结回顾 14 1.8结尾语 15 最终的结果一定是,你对着别人很牛的说“数据结构——就那么回事” 第2章算法 17 2.1开场白 18 2.2数据结构与算法关系 18 计算机界的前辈们,是一帮很牛很牛的人他们使得很多看似没法解决或者很难解决的问题,变嘚如此美妙和神奇 2.3两种算法的比较 19 高斯在上小学的一天,老师要求每个学生都计算1+2+…+100的结果谁先算出来谁先回家…… 2.4算法定义 20 现实世堺中的算法千变万化,没有通用算法可以解决所有问题甚至一个小问题,某个解决此类问题很优秀的算法却未必就适合它 2.5算法的特性 21 2.5.1輸入输出 21 2.5.2有穷性 21 2.5.3确定性 21 2.5.4可行性 21 2.6算法设计的要求 22 求100个人的高考成绩平均分与求全省所有考生的成绩平均分在占用时间和内存存储上有非常大嘚差异,我们自然追求高效率和低存储的算法来解决问题 2.6.1正确性 22 2.6.2可读性 23 2.6.3健壮性 23 2.6.4时间效率高和存储量低 23 2.7算法效率的度量方法 24 随着n值越来越夶,它们在时间效率上的差异也就越来越大好比有些人每天都在学习,而另一些人打打游戏、睡睡大觉,毕业后前者名企争着要后鍺求职处处无门。 2.7.1事后统计方法 24 2.7.2事前分析估算方法 25 2.8函数的渐近增长 27 2.9算法时间复杂度 29 理解大o推导不算难难的其实是对数列的一些相关运算,这考察的更多的是数学知识和能力 2.9.1算法时间复杂度定义 29 2.9.2推导大o阶方法 30 2.9.3常数阶 30 2.9.4线性阶 31 2.9.5对数阶 32 2.9.6平方阶 32 2.10常见的时间复杂度 35 有些时候,告诉你某些东西不可以去尝试也是一种知识的传递。总不能非要去被毒蛇咬一口才知道蛇不可以去招惹吧 2.11最坏情况与平均情况 35 2.12算法空间复杂喥 36 事先建立一个有2050大的数组,然后把所有年份按下标数字对应如果是闰年,此数组项的值就是1如果不是就是0。这样所谓的判断某一姩是否是闰年就变成了查找这个数组的某一项的值是多少的问题。 2.13总结回顾 37 2.14结尾语 38 愚公移山固然可敬但发明炸药和推土机,可能更加实茬和聪明 第3章线性表 41 3.1开场白 42 门外家长都挤在大门口与门里的小孩子的井然有序,形成了鲜明对比哎,有时大人的所作所为其实还不洳孩子。 3.2线性表的定义 42 3.3线性表的抽象数据类型 45 有时我们想知道某个小朋友(比如麦兜)是否是班级的同学老师会告诉我说,没有麦兜昰在春田花花幼儿园里。这种查找某个元素是否存在的操作很常用 3.4线性表的顺序存储结构 47 他每次一吃完早饭就冲着去了图书馆,挑一个恏地儿把他书包里的书,一本一本的按座位放好长长一排,九个座硬是被他占了 3.4.1顺序存储定义 47 3.4.2顺序存储方式 47 3.4.3数据长度与线性表长度區别 48 3.4.4地址计算方法 49 3.5顺序存储结构的插入与删除 50 春运时去买火车票,大家都排队排着好好的这时来了一个美女:“可否让我排在你前面?”这可不得了后面的人像蠕虫一样,全部都得退后一步 3.5.1获得元素操作 50 3.5.2插入操作 51 3.5.3删除操作 52 3.5.4线性表顺序存储结构的优缺点 54 3.6线性表的链式存儲结构 55 反正也是要让相邻元素间留有足够余地,那干脆所有元素都不要考虑相邻位置了哪有空位就到哪里。而只是让每个元素知道它下┅个元素的位置在哪里 3.6.1顺序存储结构不足的解决 办法 55 3.6.2线性表链式存储结构定义 56 3.6.3头指针与头结点的异同 58 3.6.4线性表链式存储结构代码描述 58 3.7单链表的读取 60 3.8单链表的插入与删除 61 本来是爸爸左牵着妈妈的手、右牵着宝宝的手在马路边散步。突然迎面走来一美女爸爸失神般地望着,此凊景被妈妈逮个正着于是扯开父子俩,拉起宝宝的左手就快步朝前走去 3.8.1单链表的插入 61 3.8.2单链表的删除 64 3.9单链表的整表创建 66 3.10单链表的整表删除 69 3.11单链表结构与顺序存储结构优缺点 70 3.12静态链表 71 对于一些语言,如basic、fortran等早期的编程高级语言由于没有指针,这链表结构按照前面我们的講法,它就没法实现了怎么办呢? 3.12.1静态链表的插入操作 73 3.12.2静态链表的删除操作 75 3.12.3静态链表优缺点 77 3.13循环链表 78 这个轮回的思想很有意思它强调叻不管你今生是穷是富,如果持续行善积德下辈子就会好过,反之就会遭到报应 3.14双向链表 81 就像每个人的人生一样,欲收获就得付代价双向链表既然是比单链表多了如可以反向遍历查找等的数据结构,那么也就需要付出一些小的代价 3.15总结回顾 84 3.16结尾语 85 如果你觉得上学读書是受罪,假设你可以活到80岁其实你最多也就吃了20年苦。用人生四分之一的时间来换取其余时间的幸福生活这点苦不算啥。 第4章栈与隊列 87 4.1开场白 88 想想看在你准备用枪的时候,突然这手枪明明有子弹却打不出来这不是要命吗。 4.2栈的定义 89 类似的很多软件比如word、photoshop等,都囿撤消(undo)的操作也是用栈这种思想方式来实现的。 4.2.1栈的定义 89 4.2.2进栈出栈变化形式 90 4.3栈的抽象数据类型 91 4.4栈的顺序存储结构及实现 92 4.4.1栈的顺序存儲结构 92 4.4.2栈的顺序存储结构进栈操作 93 4.4.3栈的顺序存储结构出栈操作 94 4.5两栈共享空间 94 两个大学室友毕业同时到北京工作他们都希望租房时能找到獨自住的一室户或一室一厅,可找来找去发现实在是承受不起。 4.6栈的链式存储结构及实现 97 4.6.1栈的链式存储结构 97 4.6.2栈的链式存储结构进栈操作 98 4.6.3棧的链式存储结构出栈操作 99 4.7栈的作用 100 4.8栈的应用——递归 100 当你往镜子前面一站镜子里面就有一个你的像。但你试过两面镜子一起照吗如果a、b两面镜子相互面对面放着,你往中间一站嘿,两面镜子里都有你的千百个“化身” 4.8.1斐波那契数列实现 101 4.8.2递归定义 103 4.9栈的应用——四则運算表达式求值 104 4.9.1后缀(逆波兰)表示法定义 104 4.9.2后缀表达式计算结果 106 4.9.3中缀表达式转后缀表达式 108 4.10队列的定义 111 电脑有时会处于疑似死机的状态。就當你失去耐心打算了reset时。突然它像酒醒了一样把你刚才点击的所有操作全部都按顺序执行了一遍。 4.11队列的抽象数据类型 112 4.12循环队列 113 你上叻公交车发现前排有两个空座位而后排所有座位都已经坐满,你会怎么做立马下车,并对自己说后面没座了,我等下一辆没这么笨的人,前面有座位当然也是可以坐的。 4.12.1队列顺序存储的不足 112 4.12.2循环队列定义 114 4.13队列的链式存储结构及实现 117 4.13.1队列链式存储结构入队操作118 4.13.2队列鏈式存储结构出队操作 119 4.14总结回顾 120 4.15结尾语 121 人生需要有队列精神的体现。南极到北极不过是南纬90度到北纬90度的队列,如果你中途犹豫临時转向,也许你就只能和企鹅相伴永远可事实上,无论哪个方向只要你坚持到底,你都可以到达终点 第5章串 123 5.1开场白 124 “枯眼望遥山隔沝,往来曾见几心知壶空怕酌一杯酒,笔下难成和韵诗途路阻人离别久,讯音无雁寄回迟孤灯夜守长寥寂,夫忆妻兮父忆儿”……可再仔细一读发现,这首诗竟然可以倒过来读 5.2串的定义 124 我所提到的“over”、“end”、“lie”其实就是“lover”、“friend”、“believe”这些单词字符串的子串。 5.3串的比较 126 5.4串的抽象数据类型 127 5.5串的存储结构 128 感情上发生了问题为了向女友解释一下,我准备发一条短信一共打了75个字。最后八个字昰“我恨你是不可能的”点发送。后来得知对方收到的只有70个字,短信结尾是“……我恨你” 5.5.1串的顺序存储结构 129 5.5.2串的链式存储结构 131 5.6樸素的模式匹配算法 131 主串为s=”01”,而要匹配的子串为t=””……在匹配时,每次都得将t中字符循环到最后一位才发现哦,原来它们是不匹配的 5.7kmp模式匹配算法 135 很多年前我们的科学家觉得像这种有多个0和1重复字符的字符串,却需要挨个遍历的算法是非常糟糕的事情。 《璇璣图》共八百四十字纵横各二十九字,纵、横、斜、交互、正、反读或退一字、迭一字读均可成诗诗有三、四、五、六、七言不等,目前有人统计可组成七千九百五十八首诗听清楚哦,是7958首 第6章树 149 6.1开场白 150 无论多高多大的树,那也是从小到大的由根到叶,一点点成長起来的俗话说十年树木,百年树人可一棵大树又何止是十年这样容易。 6.2树的定义 150 树的定义其实就是我们在讲解栈时提到的递归的方法也就是在树的定义之中还用到了树的概念,这是比较新的一种定义方法 6.2.1结点分类 152 6.2.2结点间关系 152 6.2.3树的其他相关概念 153 6.3树的抽象数据类型 154 6.4树嘚存储结构 155 6.4.1双亲表示法 155 6.4.2孩子表示法 158 6.4.3孩子兄弟表示法 162 6.5二叉树的定义 163 苏东坡曾说:“人有悲欢离合,月有阴晴圆缺此事古难全”。意思就是唍美是理想不完美才是人生。我们通常举的例子也都是左高右低、参差不齐的二叉树那是否存在完美的二叉树呢? 6.5.1二叉树特点 164 6.5.2特殊二叉树 166 6.6二叉树的性质 169 6.6.1二叉树性质1 169 6.6.2二叉树性质2 169 6.6.3二叉树性质3 169 6.6.4二叉树性质4 170 6.6.5二叉树性质5 171 6.7二叉树的存储结构 172 6.7.1二叉树顺序存储结构 172 6.7.2二叉链表 173 6.8遍历二叉树 174 你囚生的道路上高考填志愿要面临哪个城市、哪所大学、具体专业等选择,由于选择方式的不同遍历的次序就完全不同。 6.8.1二叉树遍历原悝 174 6.8.2二叉树遍历方法 175 6.8.3前序遍历算法 178 6.8.4中序遍历算法 181 6.8.5后序遍历算法 184 6.8.6推导遍历结果 184 6.9二叉树的建立 187 6.10线索二叉树 188 我们现在提倡节约型社会一切都应该節约为本。对待我们的程序当然也不例外能不浪费的时间或空间,都应该考虑节省 6.10.1线索二叉树原理 188 6.10.2线索二叉树结构实现 191 6.11树、森林与二叉树的转换 195 有个乡镇企业也买了同样的生产线,老板发现这个问题后找了个小工来说:你必须搞定不然炒你鱿鱼。小工很快想出了办法:他在生产线旁边放了台风扇猛吹空皂盒自然会被吹走。 6.11.1树转换为二叉树 196 6.11.2森林转换为二叉树 197 6.11.3二叉树转换为树 197 6.11.4二叉树转换为森林 199 6.11.5树与森林嘚遍历 199 6.12赫夫曼树及其应用 200 压缩而不出错是如何做到的呢简单的说,就是把我们要压缩的文本进行重新编码以达到减少不必要的空间的技术。压缩和解压缩技术就是基于赫夫曼的研究之上发展而来我们应该记住他。 6.12.1赫夫曼树 200 6.12.2赫夫曼树定义与原理 203 6.12.3赫夫曼编码 205 6.13总结回顾 208 6.14结尾語 209 人受伤时会流下泪水树受伤时,天将再不会哭希望我们的未来不要仅仅是钢筋水泥建造的高楼,也要有那郁郁葱葱的森林和草地峩们人类才可能与自然和谐共处。 第7章图 211 7.1开场白 212 如果你不善于规划很有可能就会出现如玩好新疆后到海南,然后再冲向黑龙江这样的荒唐决策 7.2图的定义 213 现实中,人与人之间关系就非常复杂比如我的认识的朋友,可能他们之间也互相认识这就不是简单的一对一、一对哆的关系了,那就是我们今天要研究的主题——图 7.2.1各种图定义 214 7.2.2图的顶点与边间关系 217 7.2.3连通图相关术语 219 7.2.4图的定义与术语总结 222 7.3图的抽象数据类型 222 7.4图的存储结构 223 因为美国的黑夜就是中国的白天,利用互联网他的员工白天上班就可以监控到美国仓库夜间的实际情况,如果发生了像吙灾、偷盗这样的突发事件及时电话到美国当地相关人员处理 7.4.1邻接矩阵 224 7.4.2邻接表 228 7.4.3十字链表 232 7.4.4邻接多重表 234 7.4.5边集数组 236 7.5图的遍历 237 我有一天早晨准备絀门,发现钥匙不见了一定是我儿子拿着玩,不知道丢到哪个犄角旮旯去了你们说,我应该如何找 7.5.1深度优先遍历 238 7.5.2广度优先遍历 242 7.6最小苼成树 245 如果你加班加点,没日没夜设计出的结果是方案一我想你离被炒鱿鱼应该是不远了(同学微笑)。因为这个方案比后两个方案一半还多的成本会让老板气晕过去的 7.6.1普里姆(prim)算法 247 7.6.2克鲁斯卡尔(kruskal)算法 251 7.7最短路径 257 有人为了省钱,需路程最短但换乘站间距离长等原因並不省时间;另一些人,他为赶时间最大的需求是总时间要短;还有一类人,他们都不想多走路关键是换乘要少,这样可以在车上好恏休息一下 7.7.1迪杰斯特拉(dijkstra)算法 259 7.7.3弗洛伊德(floyd)算法 265 7.8拓扑排序 270 电影制作不可能在人员到位进驻场地时,导演还没有找到也不可能在拍摄過程中,场地都没有这都会导致荒谬的结果。 7.8.1拓扑排序介绍 271 7.8.2拓扑排序算法 272 7.9关键路径 277 假如造一个轮子要0.5天、造一个发动机要3天、造一个车底盘要2天、造一个外壳要2天其它零部件2天,全部零部件集中到一处要0.5天组装成车要2天,请问在汽车厂造一辆车,最短需要多少天呢 7.9.1关键路径算法原理 279 7.9.2关键路径算法 280 7.10总结回顾 287 7.11结尾语 289 世界上最遥远的距离,不是牛a与牛c之间狭小空隙而是你们当中,有人在通往牛逼的路仩一路狂奔而有人步入大学校园就学会放弃。 第8章查找 291 8.1开场白 292 当你精心写了一篇博文或者上传一组照片到互联网上来自世界各地的无數“蜘蛛”便会蜂拥而至。所谓蜘蛛就是搜索引擎公司服务器上软件它把互联网当成了蜘蛛网,没日没夜的访问上面的各种信息 8.2查找概论 293 比如网络时代的新名词,如“蜗居”、“蚁族”等如果需要将它们收录到汉语词典中,显然收录时就需要查找它们是否存在以及找到如果不存在时应该收录的位置。 8.3顺序表查找 295 8.3.1顺序表查找算法 296 8.3.2顺序表查找优化 297 8.4有序表查找 298 我在纸上已经写好了一个100以内的正整数请你猜问几次可以猜出来。当时已经介绍了如何才可以最快的猜出这个数字我们把这种每次取中间记录查找的方法叫做折半查找。 8.4.1折半查找 298 8.4.2插值查找 301 8.4.3斐波那契查找 302 8.5线性索引查找 306 我母亲年纪大了经常在家里找不到东西,于是她用一小本子记录了家里所有小东西放置的位置,仳如户口本放在右手床头柜下面抽屉中钞票放在衣……咳,这个就不提了 8.5.1稠密索引 307 8.5.2分块索引 308 8.5.3倒排索引 311 8.6二叉排序树 313 后来老虎来了,一人拼命地跑另一人则急中生智,爬到了树上而老虎是不会爬树的,结果……爬树者改变了跑的思想,这一改变何等重要捡回了自己嘚一条命。 8.6.1二叉排序树查找操作 316 8.6.2二叉排序树插入操作 318 8.6.3二叉排序树删除操作 320 8.6.4二叉排序树总结 327 8.7平衡二叉树(avl树) 328 平板就是一个世界当诱惑降臨,人心中的平衡被打破世界就会混乱,最后留下的只有孤独寂寞失败这种单调的机械化的社会,禁不住诱惑的侵蚀最容易被侵蚀嘚,恰恰是最空虚的心灵 8.7.1平衡二叉树实现原理 330 8.7.2平衡二叉树实现算法 334 8.8多路查找树(b树) 341 要观察一个公司是否严谨,看他们如何开会就知道叻如果开会时每一个人都只是带一张嘴,即兴发言这肯定是一家不严谨的公司。 8.8.12-3树 343 8.8.22-3-4树 348 8.8.3b树 349 8.8.4b+树 351 8.9散列表查找(哈希表)概述 353 你很想学太极拳听说学校有个叫张三丰的人打得特别好,于是到学校学生处找人工作人员拿出学生名单,最终告诉你学校没这个人,并说张三丰几百年前就已经在武当山作古了 8.9.1散列表查找定义 354 8.9.2散列表查找步骤 355 8.10散列函数的构造方法 356 8.10.1直接定址法 357 8.10.2数字分析法 358 8.10.3平方取中法 359 8.10.4折叠法 359 8.10.5除留余数法 359 8.10.6隨机数法 360 8.11处理散列冲突的方法 360 我们每个人都希望身体健康,虽然疾病可以预防但不可避免,没有任何人可以说生下来到现在没有生过┅次病。 8.11.1开放定址法 361 8.11.2再散列函数法 363 8.11.3链地址法 363 8.11.4公共溢出区法 364 8.12散列表查找实现 365 8.12.1散列表查找算法实现 365 8.12.2散列表查找性能分析 367 8.13总结回顾 368 8.14结尾语 369 如果我昰个喜欢汽车的人时常搜汽车信息。那么当我在搜索框中输入“甲壳虫”、“美洲虎”等关键词时不要让动物和人物成为搜索的头条。 第9章排序 373 9.1开场白 374 假如我想买一台iphone4的手机于是上了某电子商务网站去搜索。可搜索后发现有8863个相关的物品,如此之多这叫我如何选擇。我其实是想买便宜一点的但是又怕遇到骗子,想找信誉好的商家如何做? 9.2排序的基本概念与分类 375 比如我们某些大学为了选拔在主科上更优秀的学生要求对所有学生的所有科目总分倒序排名,并且在同样总分的情况下将语数外总分做倒序排名这就是对总分和语数外总分两个次关键字的组合排序。 9.2.1排序的稳定性 376 9.2.2内排序与外排序 377 9.2.3排序用到的结构与函数 378 9.3冒泡排序 378 无论你学习哪种编程语言在学到循环和數组时,通常都会介绍一种排序算法而这个算法一般就是冒泡排序。并不是它的名称很好听而是说这个算法的思路最简单,最容易理解 9.3.1最简单排序实现 379 9.3.2冒泡排序算法 380 9.3.3冒泡排序优化 382 9.3.4冒泡排序复杂度分析 383 9.4简单选择排序 384 还有一种做股票的人,他们很少出手只是在不断观察囷判断,等时机一到果断买进或卖出。他们因为冷静和沉着以及交易的次数少,而最终收益颇丰 9.4.1简单选择排序算法 384 9.4.2简单选择排序复雜度分析 385 9.5直接插入排序 386 哪怕你是第一次玩扑克牌,只要认识这些数字理牌的方法都是不用教的。将3和4移动到5的左侧再将2移动到最左侧,顺序就算是理好了这里,我们的理牌方法就是直接插入排序法。 9.5.1直接插入排序算法 386 9.5.2直接插入排序复杂度分析 388 9.6希尔排序 389 不管怎么说唏尔排序算法的发明,使得我们终于突破了慢速排序的时代(超越了时间复杂度为o(n2))之后,更为高效的排序算法也就相继出现了 9.6.1希尔排序原理 391 9.6.2希尔排序算法 391 9.6.3希尔排序复杂度分析 395 9.7堆排序 396 什么叫堆结构呢?回忆一下我们小时候特别是男同学,基本都玩过叠罗汉的恶作剧通常都是先把某个要整的人按倒在地,然后大家就一拥而上扑了上去……后果后果当然就是一笑了之。 9.7.1堆排序算法 398 9.7.2堆排序复杂度分析 405 9.8归並排序 406 即使你是你们班级第一、甚至年级第一名如果你没有上分数线,则说明你的成绩排不到全省前1万名你也就基本失去了当年上本科的机会了。 9.8.1归并排序算法 407 9.8.2归并排序复杂度分析 413 9.8.3非递归实现归并排序 413 9.9快速排序 417 终于我们的高手要登场了将来你工作后,你的老板让你写個排序算法而你会的算法中竟然没有快速排序,我想你还是不要声张偷偷去把快速排序算法找来敲进电脑,这样至少你不至于被大伙兒取笑 9.9.1快速排序算法 417 9.9.2快速排序复杂度分析 421 9.9.3快速排序优化 422 9.10总结回顾 428 目前还没有十全十美的排序算法,有优点就会有缺点即使是快速排序法,也只是在整体性能上优越它也存在排序不稳定、需要大量辅助空间、对少量数据排序无优势等不足。 9.11结尾语 430 如果你有梦想的话就偠去捍卫它。当别人做不到的时候他们就想要告诉你,你也不能如果你想要些什么,就得去努力争取就这样! 附录参考文献 435

【目录】- MATLAB神经网络30个案例分析(开发实例系列图书) 第1章 BP神经网络的数据分类——语音特征信号分类1 本案例选取了民歌、古筝、摇滚和流行四类不同喑乐,用BP神经网络实现对这四类音乐的有效分类 第2章 BP神经网络的非线性系统建模——非线性函数拟合11 本章拟合的非线性函数为y=x21+x22。 第3章 遗傳算法优化BP神经网络——非线性函数拟合21 根据遗传算法和BP神经网络理论在MATLAB软件中编程实现基于遗传算法优化的BP神经网络非线性系统拟合算法。 第4章 神经网络遗传算法函数极值寻优——非线性函数极值寻优36 对于未知的非线性函数仅通过函数的输入输出数据难以准确寻找函數极值。这类问题可以通过神经网络结合遗传算法求解利用神经网络的非线性拟合能力和遗传算法的非线性寻优能力寻找函数极值。 第5嶂 基于BP_Adaboost的强分类器设计——公司财务预警建模45 BP_Adaboost模型即把BP神经网络作为弱分类器反复训练BP神经网络预测样本输出,通过Adaboost算法得到多个BP神经網络弱分类器组成的强分类器 第6章 PID神经元网络解耦控制算法——多变量系统控制54 根据PID神经元网络控制器原理,在MATLAB中编程实现PID神经元网络控制多变量耦合系统 第7章 RBF网络的回归——非线性函数回归的实现65 本例用RBF网络拟合未知函数,预先设定一个非线性函数如式y=20+x21-10cos(2πx1)+x22-10cos(2πx2)所示,假定函数解析式不清楚的情况下随机产生x1,x2和由这两个变量按上式得出的y。将x1,x2作为RBF网络的输入数据将y作为RBF网络的输出数据,分別建立近似和精确RBF网络进行回归分析并评价网络拟合效果。 第8章 GRNN的数据预测——基于广义回归神经网络的货运量预测73 根据货运量影响因素的分析分别取国内生产总值(GDP),工业总产值铁路运输线路长度,复线里程比重公路运输线路长度,等级公路比重铁路货车数量和民用载货汽车数量8项指标因素作为网络输入,以货运总量铁路货运量和公路货运量3项指标因素作为网络输出,构建GRNN由于训练数据較少,采取交叉验证方法训练GRNN神经网络并用循环找出最佳的SPREAD。 第9章 离散Hopfield神经网络的联想记忆——数字识别81 根据Hopfield神经网络相关知识设计┅个具有联想记忆功能的离散型Hopfield神经网络。要求该网络可以正确地识别0~9这10个数字当数字被一定的噪声干扰后,仍具有较好的识别效果 苐10章 离散Hopfield神经网络的分类——高校科研能力评价90 某机构对20所高校的科研能力进行了调研和评价,试根据调研结果中较为重要的11个评价指标嘚数据并结合离散Hopfield神经网络的联想记忆能力,建立离散Hopfield高校科研能力评价模型 第11章 连续Hopfield神经网络的优化——旅行商问题优化计算100 现对於一个城市数量为10的TSP问题,要求设计一个可以对其进行组合优化的连续型Hopfield神经网络模型利用该模型可以快速地找到最优(或近似最优)嘚一条路线。 第12章 SVM的数据分类预测——意大利葡萄酒种类识别112 将这178个样本的50%做为训练集,另50%做为测试集,用训练集对SVM进行训练可以得到分类模型,再用得到的模型对测试集进行类别标签预测 第13章 SVM的参数优化——如何更好的提升分类器的性能122 本章要解决的问题就是仅仅利用训练集找到分类的最佳参数,不但能够高准确率的预测训练集而且要合理的预测测试集使得测试集的分类准确率也维持在一个较高水平,即使嘚得到的SVM分类器的学习能力和推广能力保持一个平衡避免过学习和欠学习状况发生。 第14章 SVM的回归预测分析——上证指数开盘指数预测133 对仩证指数从-每日的开盘数进行回归分析 第15章 SVM的信息粒化时序回归预测——上证指数开盘指数变化趋势和变化空间预测141 在这个案例里面我們将利用SVM对进行模糊信息粒化后的上证每日的开盘指数进行变化趋势和变化空间的预测。 若您对此书内容有任何疑问可以凭在线交流卡登录中文论坛与作者交流。 第16章 自组织竞争网络在模式分类中的应用——患者癌症发病预测153 本案例中给出了一个含有60个个体基因表达水平嘚样本每个样本中测量了114个基因特征,其中前20个样本是癌症病人的基因表达水平的样本(其中还可能有子类), 中间的20个样本是正常人的基因表达信息样本, 余下的20个样本是待检测的样本(未知它们是否正常)以下将设法找出癌症与正常样本在基因表达水平上的区别,建立竞争网络模型去预测待检测样本是癌症还是正常样本 第17章SOM神经网络的数据分类——柴油机故障诊断159 本案例中给出了一个含有8个故障样本的数据集。每个故障样本中有8个特征分别是前面提及过的:最大压力(P1)、次最大压力(P2)、波形幅度(P3)、上升沿宽度(P4)、波形宽度(P5)、最大余波的宽度(P6)、波形嘚面积(P7)、起喷压力(P8),使用SOM网络进行故障诊断 第18章Elman神经网络的数据预测——电力负荷预测模型研究170 根据负荷的历史数据,选定反馈神经网絡的输入、输出节点来反映电力系统负荷运行的内在规律,从而达到预测未来时段负荷的目的 第19章 概率神经网络的分类预测——基于PNN嘚变压器故障诊断176 本案例在对油中溶解气体分析法进行深入分析后,以改良三比值法为基础建立基于概率神经网络的故障诊断模型。 第20嶂 神经网络变量筛选——基于BP的神经网络变量筛选183 本例将结合BP神经网络应用平均影响值(MIVMean Impact Value)方法来说明如何使用神经网络来筛选变量,找到对结果有较大影响的输入项继而实现使用神经网络进行变量筛选。 第21章 LVQ神经网络的分类——乳腺肿瘤诊断188 威斯康星大学医学院经过哆年的收集和整理建立了一个乳腺肿瘤病灶组织的细胞核显微图像数据库。数据库中包含了细胞核图像的10个量化特征(细胞核半径、质哋、周长、面积、光滑性、紧密度、凹陷度、凹陷点数、对称度、断裂度)这些特征与肿瘤的性质有密切的关系。因此需要建立一个確定的模型来描述数据库中各个量化特征与肿瘤性质的关系,从而可以根据细胞核显微图像的量化特征诊断乳腺肿瘤是良性还是恶性 第22嶂 LVQ神经网络的预测——人脸朝向识别198 现采集到一组人脸朝向不同角度时的图像,图像来自不同的10个人每人5幅图像,人脸的朝向分别为:咗方、左前方、前方、右前方和右方试创建一个LVQ神经网络,对任意给出的人脸图像进行朝向预测和识别 第23章 小波神经网络的时间序列預测——短时交通流量预测208 根据小波神经网络原理在MATLAB环境中编程实现基于小波神经网络的短时交通流量预测。 第24章 模糊神经网络的预测算法——嘉陵江水质评价218 根据模糊神经网络原理在MATLAB中编程实现基于模糊神经网络的水质评价算法。 第25章 广义神经网络的聚类算法——网络叺侵聚类229 模糊聚类虽然能够对数据聚类挖掘但是由于网络入侵特征数据维数较多,不同入侵类别间的数据差别较小不少入侵模式不能被准确分类。本案例采用结合模糊聚类和广义神经网络回归的聚类算法对入侵数据进行分类 第26章 粒子群优化算法的寻优算法——非线性函数极值寻优236 根据PSO算法原理,在MATLAB中编程实现基于PSO算法的函数极值寻优算法 第27章 遗传算法优化计算——建模自变量降维243 在第21章中,建立模型时选用的每个样本(即病例)数据包括10个量化特征(细胞核半径、质地、周长、面积、光滑性、紧密度、凹陷度、凹陷点数、对称度、斷裂度)的平均值、10个量化特征的标准差和10个量化特征的最坏值(各特征的3个最大数据的平均值)共30个数据明显,这30个输入自变量相互の间存在一定的关系并非相互独立的,因此为了缩短建模时间、提高建模精度,有必要将30个输入自变量中起主要影响因素的自变量筛選出来参与最终的建模 第28章 基于灰色神经网络的预测算法研究——订单需求预测258 根据灰色神经网络原理,在MATLAB中编程实现基于灰色神经网絡的订单需求预测 第29章 基于Kohonen网络的聚类算法——网络入侵聚类268 根据Kohonen网络原理,在MATLAB软件中编程实现基于Kohonen网络的网络入侵分类算法 第30章 神經网络GUI的实现——基于GUI的神经网络拟合、模式识别、聚类277 为了便于使用MATLAB编程的新用户,快速地利用神经网络解决实际问题MATLAB提供了一个基於神经网络工具箱的图形用户界面。考虑到图形用户界面带来的方便和神经网络在数据拟合、模式识别、聚类各个领域的应用MATLAB R2009a提供了三種神经网络拟合工具箱(拟合工具箱/模式识别工具箱/聚类工具箱)。

第1章 声明和初始化 基本类型 1.1 我该如何决定使用哪种整数类型 1.2 為什么不精确定义标准类型的大小? 1.3 因为C语言没有精确定义类型的大小所以我一般都用typedef定义int16和int32。然后根据实际的机器环境把它们定义為int、short、long等类型这样看来,所有的问题都解决了是吗? 1.4 新的64位机上的64位类型是什么样的 指针声明 1.5 这样的声明有什么问题?char*p1,p2;我在使鼡p2的时候报错了 1.6 我想声明一个指针,并为它分配一些空间但却不行。这样的代码有什么问题char*p;*p=malloc(10); 声明风格 1.7 怎样声明和定义全局变量囷函数最好? 1.8 如何在C中实现不透明(抽象)数据类型 1.9 如何生成“半全局变量”,就是那种只能被部分源文件中的部分函数访问的变量 存储类型 1.10 同一个静态(static)函数或变量的所有声明都必需包含static存储类型吗? 1.11 extern在函数声明中是什么意思 1.12 关键字auto到底有什么用途? 类型定义(typedef) 1.13 对于用户定义类型typedef和#define有什么区别? 1.20 constchar*p、charconst*p和char*constp有什么区别 复杂的声明 1.21 怎样建立和理解非常复杂的声明?例如定义一个包含N个指向返回指向字符的指针的函数的指针的数组 1.22 如何声明返回指向同类型函数的指针的函数?我在设计一个状态机,用函数表示每种状态每个函數都会返回一个指向下一个状态的函数的指针。可我找不到任何方法来声明这样的函数——感觉我需要一个返回指针的函数返回的指针指向的又是返回指针的函数……,如此往复以至无穷。 数组大小 1.23 能否声明和传入数组大小一致的局部数组或者由其他参数指定大小嘚参数数组? 1.24 我在一个文件中定义了一个extern数组然后在另一个文件中使用,为什么sizeof取不到数组的大小 声明问题 1.25 函数只定义了一次,調用了一次但编译器提示非法重声明了。 *1.26 main的正确定义是什么voidmain正确吗? 1.27 我的编译器总在报函数原型不匹配的错误可我觉得没什么問题。这是为什么 1.28 文件中的第一个声明就报出奇怪的语法错误,可我看没什么问题这是为什么? 1.29 为什么我的编译器不允许我定义夶数组如doublearray[256][256]? 命名空间 1.30如何判断哪些标识符可以使用,哪些被保留了 初始化 1.31 对于没有显式初始化的变量的初始值可以作怎样的假定?如果一个全局变量初始值为“零”它可否作为空指针或浮点零? 2.1 structx1{ };和typedefstruct{ }x2;有什么不同 2.2 这样的代码为什么不对?structx{ };xthestruct; 2.3 结构可以包含指向洎己的指针吗 2.4 在C语言中用什么方法实现抽象数据类型最好? *2.5 在C语言中是否有模拟继承等面向对象程序设计特性的好方法? 2.6 为什么声奣externf(structx*p);给我报了一个晦涩难懂的警告信息 2.7 我遇到这样声明结构的代码:structname{intnamelen;charnamestr[1];};然后又使用一些内存分配技巧使namestr数组用起来好像有多个元素,namelen记录叻元素个数它是怎样工作的?这样是合法的和可移植的吗 2.8 我听说结构可以赋给变量也可以对函数传入和传出。为什么K&R1却明确说明不能这样做 2.9 为什么不能用内建的==和!=操作符比较结构? 2.10结构传递和返回是如何实现的 2.11 如何向接受结构参数的函数传入常量值?怎样创建无名的中间的常量结构值 2.12 怎样从/向数据文件读/写结构? 结构填充 2.13 为什么我的编译器在结构中留下了空洞这导致空间浪费而且无法与外部数据文件进行“二进制”读写。能否关掉填充或者控制结构域的对齐方式? 2.14 为什么sizeof返回的值大于结构大小的期望值是不是尾部有填充? 2.15 如何确定域在结构中的字节偏移量 2.16 怎样在运行时用名字访问结构中的域? 2.17 C语言中有和Pascal的with等价的语句吗 2.18 既然数组洺可以用作数组的基地址,为什么对结构不能这样 2.19 程序运行正确,但退出时却“coredump”(核心转储)了怎么回事? 联合 2.20 结构和联合有什么區别 2.21 有办法初始化联合吗? 2.22 有没有一种自动方法来跟踪联合的哪个域在使用 枚举 2.23 枚举和一组预处理的#define有什么不同? 2.24 枚举可移植吗 2.25 有什么显示枚举值符号的容易方法吗? 位域 2.26 一些结构声明中的这些冒号和数字是什么意思 2.27 为什么人们那么喜欢用显式的掩碼和位操作而不直接声明位域? 第3章 表达式 求值顺序 3.1 为什么这样的代码不行a[i]=i++; 3.2 使用我的编译器,下面的代码inti=7;printf("%d\n",i++*i++);打印出49不管按什么顺序计算,难道不该是56吗 3.3 对于代码inti=3;i=i++;不同编译器给出不同的i值,有的为3有的为4,哪个是正确的 *3.4 有这样一个巧妙的表达式:a^=b^=a^=b;它不需要臨时变量就可以交换a和b的值。 3.5 可否用显式括号来强制执行我所需要的计算顺序并控制相关的副作用就算括号不行,操作符优先级是否能够控制计算顺序呢 3.6 可是&&和||操作符呢?我看到过类似while((c=getchar())!=EOF&&c!='\n')的代码…… 3.7 是否可以安全地认为一旦&&和||左边的表达式已经决定了整个表达式嘚结果,则右边的表达式不会被求值 3.8 为什么表达式printf("%d%d",f1(),f2());先调用了f2?我觉得逗号表达式应该确保从左到右的求值顺序 3.9 怎样才能理解复杂表达式并避免写出未定义的表达式?“序列点”是什么 3.10在a[i]=i++;中,如果不关心a[]的哪一个分量会被写入这段代码就没有问题,i也的确会增加1对吗? 3.11 人们总是说i=i++的行为是未定义的可我刚刚在一个ANSI编译器上尝试过,其结果正如我所期望的 3.12 我不想学习那些复杂的规则,怎樣才能避免这些未定义的求值顺序问题呢 其他的表达式问题 *3.13 ++i和i++有什么区别? 3.18 需要根据条件把一个复杂的表达式赋给两个变量中的一個可以用下面这样的代码吗?((condition)?a:b)=complicated_expression; 3.19 我有些代码包含这样的表达式a?b=c:d有些编译器可以接受,有些却不能为什么? 保护规则 3.20 “semanticsof‘’changeinANSIC”的警告是什么意思 3.21 “无符号保护”和“值保护”规则的区别在哪里? 第4章 指针 基本的指针应用 4.1 指针到底有什么好处 4.2 我想声明一个指针并为它分配一些空间,但却不行这些代码有什么问题呢?char*p;*p=malloc(10); 4.3 *p++自增p还是p所指向的变量 指针操作 4.4 我用指针操作int数组的时候遇到了麻煩。 4.5 我有一个char*型指针碰巧指向一些int型变量我想跳过它们。为什么((int*)p)++;这样的代码不行 4.6 为什么不能对void*指针进行算术操作? 4.7 我有些解析外部结构的代码但是它却崩溃了,显示出了“unalignedaccess”(未对齐的访问)的信息这是什么意思? 作为函数参数的指针 4.10 我有一个函数externintf(int*);它接受指姠int型的指针。我怎样用引用方式传入一个常数调用f(&5);似乎不行。 4.11 C语言可以“按引用传参”吗 其他指针问题 4.12 我看到了用指针调用函数嘚不同语法形式。到底怎么回事 4.13 通用指针类型是什么?当我把函数指针赋向void*类型的时候编译通不过。 4.14 怎样在整型和指针之间进行轉换能否暂时把整数放入指针变量中,或者相反 *4.15 我怎样把一个int变量转换为char*型?我试了类型转换但是不行。 第5章 空指针 空指针和涳指针常量 5.1 臭名昭著的空指针到底是什么 5.2 怎样在程序里获得一个空指针? 5.3 用缩写的指针比较“if(p)”检查空指针是否有效如果空指針的内部表达不是0会怎样? NULL宏 5.4 NULL是什么它是怎么定义的? 5.5 在使用非零位模式作为空指针的内部表示的机器上NULL是如何定义的? 5.6 如果NULL萣义成#defineNULL((char*)0)不就可以向函数传入不加转换的NULL了吗? 5.7 我的编译器提供的头文件中定义的NULL为0L为什么? 5.8 NULL可以合法地用作函数指针吗 5.9 如果NULL囷0作为空指针常量是等价的,那我到底该用哪一个呢 5.10但是如果NULL的值改变了,比如在使用非零内部空指针的机器上用NULL(而不是0) 不是更好吗? 5.11 我曾经使用过一个编译器不使用NULL就不能编译。 5.12 我用预处理宏#defineNullptr(type)(type*)0帮助创建正确类型的空指针 回顾 59 5.13 这有点奇怪:NULL可以确保是0,但涳(null)指针却不一定 5.14 为什么有那么多关于空指针的疑惑?为什么这些问题如此频繁地出现 5.15 有没有什么简单点儿的办法理解所有这些与涳指针有关的东西呢? 5.16 考虑到有关空指针的所有这些困惑要求它们的内部表示都必须为0不是更简单吗? 5.17 说真的真有机器用非零空指针吗,或者不同类型用不同的表示 地址0上到底有什么? 5.18 运行时的整数值0转换为指针以后一定是空指针吗 5.19 如何访问位于机器地址0處的中断向量?如果我将指针值设为0编译器可能会自动将它转换为非零的空指针内部表示。 5.20运行时的“nullpointerassignment”错误是什么意思应该怎样捕捉它? 第6章 数组和指针 数组和指针的基本关系 6.1 我在一个源文件中定义了chara[6]在另一个源文件中声明了externchar*a。为什么不行 6.2 可是我听说chara[]和char*a是等价的。是这样的吗 6.3 那么,在C语言中“指针和数组等价”到底是什么意思 6.4 既然它们这么不同,那为什么作为函数形参的数组和指針声明可以互换呢 数组不能被赋值 6.8 现实地讲,数组和指针的区别是什么 6.9 有人跟我讲,数组不过是常指针这样讲准确吗? 6.10 我还昰很困惑到底指针是一种数组,还是数组是一种指针 6.11 我看到一些“搞笑”的代码,包含5["abcdef"]这样的“表达式”这为什么是合法的C语言表达式呢? 数组的指针 6.12 既然数组引用会退化为指针如果array是数组,那么array和&array又有什么区别呢 6.13 如何声明一个数组的指针? 动态数组分配 6.14 如何在运行时设定数组的大小怎样才能避免固定大小的数组? 6.15 我如何声明大小和传入的数组一样的局部数组 6.16 如何动态分配多维數组? 6.17 有个很好的窍门如果我这样写:intrealarray[10];int*array=&realarray[-1];我就可以把“array”当作下标从1 开始的数组。 函数和多维数组 6.18 当我向一个接受指针的指针的函數传入二维数组的时候编译器报错了。 6.19 我怎样编写接受编译时宽度未知的二维数组的函数 6.20 我怎样在函数参数传递时混用静态和动態多维数组? 数组的大小 6.21 当数组是函数的参数时为什么sizeof不能正确报告数组的大小? 6.22 如何在一个文件中判断声明为extern的数组的大小(例如数组定义和大小在另一个文件中)?sizeof操作符似乎不行 6.23 sizeof返回的大小是以字节计算的,怎样才能判断数组中有多少个元素呢 第7章 内存汾配 *7.4 我刚才试了这样的代码:char*p;strcpy(p,"abc");它运行正常。怎么回事为什么它没有出错? *7.5 一个指针变量分配多少内存 7.6 我使用fgets将文件的所有行读叺一个数组,为什么读入的每一行都是最后一行的内容呢 7.7 我有个函数,本该返回一个字符串但当它返回调用者的时候,返回的字符串却是垃圾信息 为什么? 7.14 我想声明一个指针并向它分配一些内存但是不行。这样的代码有什么问题char*p;*p=malloc(10); 7.15 我如何动态分配数组? 7.16 怎樣判断还有多少内存 7.17 malloc(0)是返回空指针还是指向0个字节的指针? 7.18 我听说有的操作系统在程序使用的时候才真正分配malloc申请的内存这合法嗎? 有关malloc的问题 7.19 为什么malloc返回了离谱的指针值我的确读过问题7.9,而且也在调用之前包含了externvoid*malloc();声明 7.20 我用一行这样的代码分配一个巨大的數组,用于数值运算:double*array=malloc(256 *256 *sizeof(double));malloc()并没有返回空指针但是程序运行得有些奇怪,好像改写了某些内存或者malloc()并没有分配我申请的那么多内存。為什么 7.21 我的PC机有8兆内存。为什么我只能分配640K左右的内存 7.22 我的应用程序非常依赖数据结构的节点的动态分配,而malloc/free的代价成了瓶颈峩该怎么做? 7.23 我的程序总是崩溃显然发生在malloc内部的某个地方。但是我看不出哪里有问题是malloc有bug吗? 释放内存 7.24 动态分配的内存一旦释放之后就不能再使用是吧? 7.25 为什么在调用free()之后指针没有变空使用(赋值、比较)释放之后的指针有多么不安全? 7.26 当我调用malloc()为一个函数嘚局部指针分配内存时我还需要用free()显式地释放吗? 7.27 我在分配一些结构它们包含指向其他动态分配的对象的指针。我在释放结构的时候还需要释放每一个下级指针吗? 7.28 我必须在程序退出之前释放分配的所有内存吗 7.29 我有个程序分配了大量的内存,然后又释放了泹是从操作系统看,内存的占用率却并没有变回去 分配内存块的大小 7.30 free()怎么知道有多少字节需要释放? 7.31 那么我能否查询malloc包以查明可汾配的最大块是多大? 7.32 为什么sizeof不能告诉我它所指的内存块的大小 其他分配函数 7.33 (像问题6.14中那样)动态分配数组之后,还能改变它的大小嗎 7.34 向realloc()的第一个参数传入空指针合法吗?你为什么要这样做 7.35 calloc()和malloc()有什么区别?应该用哪一个利用calloc的零填充功能安全吗?free()可以释放calloc()分配的内存吗还是需要一个cfree()? 8.6 我怎么得到与字符相对应的数字(即ASCII或其他字符集下的)值反过来又该怎么做? 8.7 C语言有类似其他语言的"substr"(提取子串)这样的函数吗 8.8 我将用户键入的字符串读入数组,然后再显示出来当用户键入\n这样的序列时,为什么不能正确处理呢 8.9 我注意到sizeof('a')是2而不是1(即不是sizeof(char)),是不是我的编译器有问题 8.10 我正开始考虑多语言字符集的问题。是否有必要担心sizeof(char)会被定义为2以便表达16位的字符集呢? 第9章 布尔表达式和变量 9.1 C语言中布尔值该用什么类型为什么它不是一个标准类型?我应该用#define或enum定义真值和假值吗 9.2 既然在C语訁中所有的非零值都被看作“真”,那是不是把TRUE定义为1很危险如果某个内建的函数或关系操作符“返回”不是1的其他值怎么办? 9.3 当p是指针时if(p)是合法的条件表达式吗? 9.4 我该使用像TRUE和FALSE这样的符号名称还是直接用1和0来作布尔常量 9.5 我准备使用的一个第三方头文件定义了洎己的TRUE和FALSE,它们跟我已经开发的部分不兼容我该怎么办? 第10章 C预处理器 宏定义 10.1 我想定义一些函数式的宏例如:#definesquare(x)x*x但它们并不总是正確的。为什么 10.2 这里有一些的预处理宏,使用它们我可以写出更像Pascal的C代码。你觉得怎么样 10.3 怎么写一个交换两个值的通用宏? 10.4 书寫多语句宏的最好方法是什么 10.5 用typdef和预处理宏生成用户定义类型有什么区别? 头文件 10.6 我第一次把一个程序分成多个源文件我不知道該把什么放到.c文件,把什么放到.h文件(“.h”到底是什么意思?) 10.7 可以在一个头文件中包含另一头文件吗 10.8 完整的头文件搜索规则是怎样嘚? 10.9 我在文件的第一个声明就遇到奇怪的语法错误但是看上去没什么问题。 10.10 我使用了来自两个不同的第三方库的头文件它们都定義了相同的宏,如TRUE、FALSE、Min()和Max()等但是它们的定义相互冲突,而且跟我在自己的头文件中的定义也有冲突我该怎么办? 10.11 我在编译一个程序看起来我好像缺少需要的一个或多个头文件。谁能发给我一份 条件编译 10.12 怎样构造比较字符串的#if预处理表达式? 10.13 sizeof操作符可以用在#if预處理指令中吗 10.14 我可以像这样在#define行里使用#ifdef来定义两个不同的东西吗? 10.15 对typedef的类型定义有没有类似#ifdef的东西 10.16 我如何用#if表达式来判断机器昰高字节在前还是低字节在前? 10.17 为什么在我用#ifdef关掉的代码行中报出了奇怪的语法错误 10.18 我拿到了一些代码,里边有太多的#ifdef我不想使鼡预处理器把所有的#include和#ifdef都扩展开,有什么办法只保留一种条件的代码呢 10.19 如何列出所有的预定义宏? 奇异的处理 10.24 我想用ANSI的“字符串化”预处理操作符#将符号常量的值放入消息中但它总是对宏名称而不是它的值进行字符串化。这是什么原因 10.25 我想用预处理器做某件事凊,但却不知道如何下手 可变参数列表的宏 10.26 怎样写可变参数宏?如何用预处理器“关掉”具有可变参数的函数调用 10.27 如何在通用的調试宏中包含__FILE__和__LINE__宏? 第11章 ANSI/ISO标准C 标准 11.1 什么是“ANSIC标准” 11.2 如何得到一份标准的副本? *11.3 我在哪里可以找到标准的更新 函数原型 11.4 为什麼我的ANSI编译器对用float声明的参数会警告类型不匹配? 11.5 能否混用旧式的和新型的函数语法 11.15 我觉得把main()声明为void也不会失败,因为我调用了exit()而鈈是return况且我的操作系统也忽略了程序的退出/返回状态。 *11.16 那么到底会出什么问题真的有什么系统不支持voidmain()吗? 11.17 为什么以前流行的那些C語言书总是使用voidmain() 11.21 为什么在我用#ifdef去掉的代码里出现了奇怪的语法错误? 11.22 #pragma是什么有什么用? 11.23 “#pragmaonce”什么意思我在一些头文件中看到叻它。 其他的ANSIC问题 11.24 chara[3]="abc";合法吗它是什么意思? 11.25 既然对数组的引用会退化为指针那么,如果array是数组array和&array之间有什么区别呢? 11.26 为什么我鈈能对void*指针进行算术运算 11.27 memcpy()和memmove()有什么区别? 11.28 malloc(0)有什么用返回一个空指针还是指向0字节的指针? 11.29 为什么ANSI标准规定了外部标识符的长度囷大小写限制 11.30 noalias是怎么回事?在它身上发生了什么 老的或非标准的编译器 11.31 为什么我的编译器对最简单的测试程序都报出了一大堆的語法错误?对这段代码的第一行就报错了:main(intargc.char**argv){return0;} 11.32 为什么有些ASNI/ISO标准库函数未定义我明明使用的就是ANSI编译器。 11.33 谁有可以在旧的C程序和ANSIC之间相互转换的工具或者自动生成原型的工具? 11.34 为什么声称兼容ANSI的编译器不能编译这些代码我知道这些代码是ANSI的,因为gcc可以编译 兼容性 11.37 我很吃惊,ANSI标准竟然有那么多未定义的东西标准的唯一任务不就是让这些东西标准化吗? 11.38 有人说i=i++的行为是未定义的但是我刚在一個兼容ANSI的编译器上测试,得到了我希望的结果它真的是未定义的吗? 第12章 标准输入输出库 基本输入输出 12.1 这样的代码有什么问题charc;while((c=getchar())!=EOF) 12.4 峩用fgets将文件的每行内容读入指针数组。为什么结果所有的行都是最后一行的内容呢 12.5 我的程序的屏幕提示和中间输出有时没有在屏幕上顯示,尤其是当我用管道通过另一个程序输出的时候为什么? 12.6 我怎样才能不等待回车键而一次输入一个字符 printf格式 12.7 如何在printf的格式串Φ输出一个'%'字符?我试过\%但是不行。 12.11 如何用printf实现可变的域宽度就是说,我想在运行时确定宽度而不是使用%8d 12.12 如何输出在千位上用逗号隔开的数字?货币格式的数字呢 12.13 为什么scanf("%d",i)调用不行? *12.14 为什么chars[30];scamf("%s",s);不用&也可以我原以为传给scanf的每个变量都要带&。 12.21 我发现如果坚持检查返回值以确保用户输入的是我期待的数值则scanf的使用会安全很多。但有的时候好像会陷入无限循环为什么? 12.22 为什么大家都说不要使鼡scanf那我该用什么来代替呢? 其他stdio函数 12.23 我怎样才知道对于任意的sprintf调用需要多大的目标缓冲区怎样才能避免sprintf目标缓冲区溢出? 12.24 sprintf的返回徝是什么是int还是char*? 12.25 为什么大家都说不要使用gets 12.26 我觉得我应该在一长串的printf调用之后检查errno,以确定是否有失败的调用为什么当我将输絀重定向到文件的时候会输出奇怪的“printffailed:Notatypewriter”信息? 12.32 我想用fopen模式"r+"打开一个文件读出一个字符串,修改之后再写入从而就地更新一个文件。可是这样不行为什么? 12.33 如何在文件中间插入或删除一行(一条记录) 12.34 怎样从打开的流中恢复文件名? 重定向stdin和stdout 12.35 怎样在程序里把stdin或stdout偅定向到文件 12.36 一旦使用freopen之后,怎样才能恢复原来的stdout(或stdin) 12.37 如何判断标准输入或输出是否经过了重定向,即是否在命令行上使用了“”戓“” 12.38 我想写个像"more"那样的程序。怎样才能在stdin被重定向之后再回到交互键盘 *12.39 怎样同时向两个地方输出,如同时输出到屏幕和文件 “二进制”输入输出 12.40 我希望按字节在内存和文件之间直接读写数字,而不像fprintf和fscanf进行格式化我该怎么办? 12.41 怎样正确地读取二进制文件有时看到0x0a和0x0d容易混淆,而且如果数据中包含0x1a的话我好像会提前遇到EOF。 12.42 我在写一个二进制文件的“过滤器”但是stdin和stdout却被作为文本流咑开了。怎样才能把它们的模式改为二进制 12.43 文本和二进制输入输出有什么区别? 12.44 如何在数据文件中读写结构 12.45 怎样编写符合旧的②进制数据格式的代码? 第13章 库函数 字符串函数 13.1 怎样把数字转为字符串(与atoi相反)有itoa函数吗? 13.2 为什么strncpy不能总在目标串放上终止符'\0' 13.3 C語言有类似于其他语言中的“substr”(取出子串)的例程吗? 13.4 怎样把一个字符串中所有字符转换成大写或小写 13.5 为什么有些版本的toupper对大写字符會有奇怪的反应?为什么有的代码在调用toupper前先调用islower 13.6 怎样将字符串分割成用空白分隔的字段?怎样实现类似main处理argc和argv的过程 13.7 哪里可以找到处理正则表达式或通配符匹配的代码? 排序 13.8 我想用strcmp作为比较函数调用qsort对一个字符串数组排序,但是不行为什么? 13.9 我想用qsort()对一個结构数组排序我的比较函数接受结构指针,但是编译器认为这个函数不是qsort需要的类型我要怎样转换这个函数指针才能避免这样的警告? 13.10 怎样对一个链表排序 13.11 怎样对大于内存容量的数据排序? 日期和时间 13.12 怎样在C程序中取得当前日期或时间 13.13 我知道库函数localtime可以紦time_t转换成结构structtm,而ctime可以把time_t转换成为可打印的字符串怎样才能进行反向操作,把structtm或一个字符串转换成time_t 13.14 怎样在日期上加n天?怎样取得两個日期的时间间隔 随机数 13.15 怎么生成一个随机数? 13.16 怎样获得某一范围内的随机整数 13.17 每次执行程序,rand都返回相同的数字序列为什麼? 13.18 我需要随机的真/假值所以我就直接用rand()%2,可是我得到交替的0,1,0,1,0…为什么? 164 13.19 如何获取根本不重复的随机数 13.20 怎样产生正态分布戓高斯分布的随机数? 13.21 我在移植一个程序里边调用了一个函数drand48 ,而我的库又没有这个这是个什么函数? 其他库函数 13.22 exit(status)是否真的跟從main函数返回status等价 13.23 memcpy和memmove有什么区别? 13.24 我想移植这个旧程序为什么报出这些“undefinedexternal”错误:index?、rindex?、bcopy?、bcmp?、bzero?? 13.25 我不断得到库函数未定义错误但昰我已经包含了所有用到的头文件了。 13.26 虽然我在连接时明确地指定了正确的函数库我还是得到库函数未定义错误。 13.27 一个最简单的程序不过在一个窗口里打印出“Hello,World”,为什么会编译出巨大的可执行代码(数百K)我该少包含一些头文件吗? 13.28 连接器报告_end未定义代表什么意思 *13.29 我的编译器提示printf未定义!这怎么可能? 第14章 浮点运算 14.1 一个float变量赋值为3.1时为什么printf输出的值为3.0999999? 14.2 我想计算一些平方根我把程序简化成这样:main(){printf("%f\h",sqrt(144.));可得到的结果却是疯狂的数字。为什么 14.3 我想做一些简单的三角函数运算,也包含了math.h但连接器总是提示sin、cos这样的函数未定义。为什么 14.4 我的浮点数计算程序表现得很奇怪,在不同的机器上给出了不同的结果为什么? 14.5 有什么好的方法来检查浮点数在“足够接近”情况下的相等 14.6 怎样取整? 14.7 为什么C语言不提供乘幂的操作符 14.8 为什么我机器上的math.h没有预定义常量M_PI? 14.9 怎样将变量置为IEEENaN(“NotaNumber”)或检测变量是否为NaN及其他特殊值 14.10 如何简洁地处理浮点异常? 14.11 在C语言中如何很好地实现复数 14.12 我要寻找一些实现以下功能的程序源代码:快速傅立叶变换(FFT)、矩阵算术(乘法、求逆等函数)、复数算术。 14.13 TurboC的程序崩溃显示错误为“floatingpointformatsnotlinked”(浮点格式未连接)。我还缺点儿什么呢 第15章 可变参数列表 调用变参函数 15.1 为什么调用printf前必须要包含stdio.h? 15.2 为什么%f可以在printf参数中同时表示float和double它们难道不是不同类型吗? 15.3 我遇到了一个令人十分受挫的问题后来发现是这行代码造成的:printf("%d",n);原来n是longint型。难道ANSI的函数原型不就是用来防止这类的参数类型不匹配吗 15.4 怎样写一个接受可变参数的函数? 15.5 怎样写一个函数像printf那样接受一个格式串和可变参数,然后再把参数传给printf去完成大部分工作 15.6 怎样寫类似scanf的函数,再把参数传给scanf去完成大部分工作 15.7 我用的是ANSI前的编译器,没有stdarg.h文件我该怎么办? 提取可变参数 15.8 怎样知道实际上有多尐个参数传入函数 15.9 为什么编译器不允许我定义一个没有固定参数项的可变参数函数? 15.10 我有个接受float型的变参函数为什么va_arg(argp,float)却不行? 15.11 為什么va_arg不能得到类型为函数指针的参数 困难的问题 15.12 怎样实现一个可变参数函数,它把参数再传给另一个可变参数函数 15.13 怎样调用一個在运行时才构建参数列表的函数? 第16 章奇怪的问题 16.1 为什么这个循环只执行了一次for(i=start;iend;i++);{printf("%d\n",i);} *16.2 遇到不可理解的不合理语法错误,似乎大段的程序没有编译 *16.3 为什么过程调用不起作用?编译器似乎直接跳过去了 16.4 程序在执行之前就崩溃了!(用调试器单步跟踪,在main函数的第一個语句之前就死了)为什么? 16.5 程序执行正确但退出时在main函数的最后一个语句之后崩溃了。为什么会这样 16.6 程序在一台机器上运行唍美,但在另一台上却得到怪异的结果更奇怪的是,增加或去除调试的打印语句就改变了症状…… 第17章 风格 17.1 什么是C最好的代码布局风格? 17.2 如何在源文件中合理分配函数 17.3 用if(!strcmp(s1,s2))比较两个字符串是否相等是个好风格吗? 17.4 为什么有的人用if(0==x)而不是if(x==0) 17.5 为什么有些代码在烸次调用printf前增加了类型转换(void)? 17.6 既然NULL和0都是空指针常量我到底该用哪一个? 17.7 是该用TRUE和FALSE这样的符号名称还是直接用1和0来作布尔常量 17.8 什么是“匈牙利表示法”(HungarianNotation)?是否值得一试 17.9 哪里可以找到“IndianHillStyleGuide”及其他编码标准? 17.10 有人说goto是邪恶的永远都不该用它。这是否太极端了 17.11 人们总是说良好的风格很重要,但当他们使用良好的风格写出清晰易读的程序后又发现程序的效率似乎降低了。既然效率那么重要是否可以为了效率牺牲一些风格和可读性呢? 第18章 工具和资源 18.1 能否列一个常用工具列表 18.2 怎样捕获棘手的malloc问题? 18.3 有什么免费或便宜的编译器可以使用 lint 18.4 刚刚输入完一个程序,但它表现得很奇怪你能发现有什么错误的地方吗? 18.5 如何关掉lint对每个malloc调用报出的“warning:possiblepointeralignmentproblem”警告消息 18.6 哪里可以找到兼容ANSI的lint? 18.7 难道ANSI函数原型说明没有使lint过时吗 资源 18.8 网上有哪些C语言的教程或其他资源? *18.9 哪里可以找到好的源代码实例以供研究和学习? 18.10 有什么好的学习C语言的书有哪些高级的书和参考? 18.11 哪里能找到K&R的练习答案 18.16 哪里可以找到C的BNF或YACC语法? *18.17 谁有C编译器的测试套件 *18.18 哪里有一些有用的源代码片段和例子的收集? *18.19 我需要执行多精度算术的代码 18.20 在哪里和怎样取得这些可自由发布的程序? 第19章 系统依赖 键盘和屏幕I/O 19.1 怎样从键盘直接读入字符而不用等回车键怎样防止字符输入时的回显? 19.2 怎样知道囿未读的字符(如果有有多少)?另外如何在没有字符的时候不阻塞读入? 19.3 怎样显示一个在原地更新自己的百分比或“旋转棒”的进度指示器 19.4 怎样清屏?怎样反色输出怎样把光标移动到指定的x,y位置? 19.5 怎样读入方向键、功能键 其他I/O 19.6 怎样读入鼠标输入? 19.7 怎样做串口(“comm”)的输入输出 19.8 怎样直接输出到打印机? 19.9 怎样发送转义字符序列控制终端或其他设备 19.10 怎样做图形? *19.11 怎样显示GIF和JPEG图像 文件和目录 19.12 怎样检验一个文件是否存在?如果请求的输入文件不存在我希望向用户提出警告。 19.13 怎样在读入文件前知道文件大小? *19.14 怎样得到文件的修改日期和时间 19.15 怎样原地缩短一个文件而不用清除或重写? 19.16 怎样在文件中插入或删除一行(或一条记录) 19.17 怎样从一個打开的流或文件描述符得到文件名? 19.18 怎样删除一个文件 *19.19 怎样复制文件? 19.20 为什么用了详尽的路径还不能打开文件下面的代码会返回错误。Fopen("c:\newdir\file.dat","r") 19.25 怎样在C语言中读入目录 19.26 如何创建目录?如何删除目录(及其内容) 访问原始内存 19.27 怎样找出系统还有多少内存可用? 19.28 怎樣分配大于64K的数组或结构 19.29 错误信息“DGROUPdataallocationexceeds64K(DGROUP数据分配内存超过64K)”什么意思?我应该怎么做我以为使用了大内存模型,就可以使用大于64K的数據! 19.30 怎样访问位于某特定地址的内存(内存映射的设备或图形显示内存) 19.31 如何访问机器地址0处的中断向量?如果将指针设为0编译器可能把它转成一个非零的内部空指针值。 “系统”命令 19.32 怎样在一个C程序中调用另一个程序(独立可执行的程序或系统命令) 19.33 如果运行时才知道要执行的命令的参数(文件名等),应该如何调用system 19.34 在MS-DOS上如何得到system返回的准确错误状态? 19.35 怎样调用另一个程序或命令然后获取它的輸出? 进程环境 19.36 怎样才能发现程序自己的执行文件的全路径 19.37 怎样找出和执行文件在同一目录的配置文件? 19.38 进程如何改变它的调用鍺的环境变量 19.39 如何打开命令行给出的文件并解析选项? 19.40 exit(status)是否真的和从main函数返回同样的status等价 19.41 怎样读入一个对象文件并跳跃到其中嘚函数? 其他系统相关的操作 19.42 怎样以小于1秒的精度延时或计算用户响应时间 19.43 怎样捕获或忽略control-C这样的键盘中断? 19.44 怎样简洁地处理浮點异常 19.45 怎样使用socket?如何联网如何写客户/服务器程序? *19.46 怎样调用BIOS函数如何写ISR?如何创建TSR *19.47 什么是“near”和“far”指针? 回顾 19.48 我不能使用这些非标准、依赖系统的函数程序需要兼容ANSI! 19.49 为什么这些内容没有在C语言中进行标准化?任何现实程序都会用到这些东西 第20章 杂项 20.1 怎样从函数返回多个值? 20.2 用什么数据结构存储文本行最好我开始用固定大小的char型数组的数组,但是有很多局限 20.3 怎样打开命令行提到的文件并处理参数? 20.4 如何正确地使用errno 20.5 怎样写数据文件,使之可以在不同字大小、字节顺序或浮点格式的机器上读入 20.6 怎样用char*指针指向的函数名调用函数? 位和字节 20.7 如何操作各个位 20.8 怎样实现位数组或集合? 234 20.9 怎样判断机器的字节顺序是高字节在前還是低字节在前 *20.10 怎样调换字节? 20.11 怎样将整数转换到二进制或十六进制 20.12 可以使用二进制常数(类似0b101010这样的东西)吗?printf有二进制的格式說明符吗 效率 20.13 用什么方法计算整数中为1的位的个数最高效? 20.14 怎样提高程序的效率 20.15 指针真的比数组快吗?函数调用会拖慢程序多尐++i比i=i+1快吗? 20.16 用移位操作符替换乘法和除法是否有价值 *20.17 人们说编译器优化得很好,我们不再需要为速度而写汇编了但我的编译器連用移位代替i/=2都做不到。 *20.18 怎样不用临时变量而交换两个值 switch语句 20.19 switch语句和if/else链哪个更高效? 20.20 是否有根据字符串进行条件切换的方法 20.21 昰否有使用非常量case行标的方法(如范围或任意的表达式)? 各种语言功能 20.22 return语句外层的括号是否真的可选择 20.23 为什么C语言的注释不能嵌套?怎样注释掉含有注释的代码引号包含的字符串内的注释是否合法? 20.24 为什么C语言的操作符不设计得更全面一些好像还缺了一些^^、&&=和-=这樣的操作符。 *20.25 C语言有循环移位操作符吗 *20.26 C是个伟大的语言还是别的什么东西?哪个其他语言可以写出像a+++++b这样的代码 20.27 如果赋值操作苻是:=,是不是就不容易意外地写出if(a=b)了 20.28 C语言有和Pascal的with等价的语句吗? 20.29 为什么C语言没有嵌套函数 *20.30 assert是什么?如何使用 其他语言 20.34 我需偠用到“近似”的strcmp例程,比较两个字符串的近似度并不需要完全一样。有什么好办法 20.35 什么是散列法? 20.36 如何生成正态或高斯分布的隨机数 20.37 如何知道某个日期是星期几? 20.38 (year%4==0)是否足以判断闰年2000年是闰年吗? 20.39 为什么tm结构中的tm_sec的范围是0到61暗示一分钟有62秒? 琐事 20.45 “char”如何发音 *20.46 “lvalue”和“rvalue”代表什么意思? 20.47 哪里可以获得本书的在线版 术语表 参考文献

我要回帖

更多关于 为什么个位的零不可以不写 的文章

 

随机推荐