摘要:
第七章 可移植性缺陷 1. 标准的变更 新标准的特性能给程序带来巨大的方便,但代价是使程序失去了一部分潜在的用户。我们不能只看到当前的需要,而忽视未来可能的需要。至于是要增加程序的可移植性还是选择新标准带来的编程收益,我们需要下定决心才能做出选择,而且必须慎重对待。 2. 标识符名称的限制 ANSI C标准所能保证的只是,C实现必须能够区别出前6个字符不同的外部名称。而且,这个定义中没有区分大... 阅读全文
摘要:
第五章 库函数 1. getchar() 的返回值 char c; while ((c = getchar()) != EOF) putchar (c); 上面代码运行错误的原因是将c定义为char类型,而getchar()返回的是int类型值 。EOF 是一个宏,标准规定它的值必须是一个 int 型的负数常量。通常编译器都会把 EOF 定义为 -1。问题就出在,使用 char 型变量接收 ge... 阅读全文
摘要:
第三章 “语义”陷阱1-1. 一维数组 数组名a 除了用作运算符sizeof的参数这一情形外,在其他所有的情形中数组名a都代表指向数组a中下标为0的元素的指针a[i] 与 i[a] 的含义相等1-2. 二维数组: int calendar [12][31]; calendar[4] 是calendar的第五个元素,是calendar数组中12个有关31个整形元素的数组之一。... 阅读全文
摘要:
书摘和感想书摘:{ 如果我们按照费道罗夫的意思去再现柳比歇夫,或者说,使柳比歇夫“复活”,做起来大概比其他任何一个人的“复活”都要容易,都要准确。因为有大量的资料和材料;换句话说,数据很多。他的一生切空间和时间坐标都可以复制,某一天他在什么地方,都干了些什么,看了些什么书,都见到谁了,到哪儿去了。}[柳比歇夫以翔实的记录,描绘了其一生的轨迹。]时间·事件日志:书摘:{ 乌里扬诺夫斯克。一九六四年四月七日,分类昆虫学(画两张无名袋蛾的图) —— 三小时十五分。鉴定袋蛾—— 二十分 (1.0)附加工作:给斯拉瓦定信 —— 二小时四十五分 (0.5)社会工作:植物保护小组开会 —— 二小时二十五分休 阅读全文
摘要:
第一章 词法“陷阱” 1. = 与 ==,在条件判断表达式时将”==”写成”=”这几乎是最容犯的一种错误,而且更为糟糕的是,编译器对此不会报错。产生这种错误的原因是,== 操作符左边是个左值,如果操作符两边都是右值就不会发生这种情况。因为,即使错将”==”写成了”=”,编译器将捕获这个语法错误(原因是”=”左边必须是左值)。一种解决方案是:将表达式中的左值放在操作符右边。如: int a = ... 阅读全文
摘要:
通常我们有两种途径认识事物,一种是演绎,另外一种是归纳。演绎是从一般性的原理出发,根据某些逻辑规则,推导出特殊性或个别性的知识。在一般的情况下,演绎推理的结论,在不超出前提的条件下,如果前提是真,那么其推理结论也必然是真。所以,演绎推理方法,是一种必然性的思维活动方法。如: 所有人是有死的, 苏格拉底是人, 所以,苏格拉底是有死的。 前两句是前提,陈述被设定为真的事实。演绎过程是从前两句推... 阅读全文
摘要:
Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be: 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ... Find the sum of al... 阅读全文
摘要:
If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23. Find the sum of all the multiples of 3 or 5 below 1000. 题目要求:求1000以内... 阅读全文
摘要:
定义:任何一个整数的立方都可以写成一串相邻奇数之和(因为如果不是一串相邻的奇数,这个组合可能会有多个),这就是著名的尼科梅彻斯定理。如:1(3) = 12(3) = 3 + 53(3) = 7 + 9 + 114(3) = 13 + 15 + 17 + 19… …要求:输入任意整数n,求n(3)是哪些相邻奇数和 算法分析:从上面的式子,我们可以得出以下推论: 1. 整... 阅读全文
摘要:
1. size_t 类型 size_t是一种无符号的整型数,它在头文件中typedef为unsigned int类型,unsigned int随着编译平台不同,其长度可能不一样,而size_t则希望保持不变。当换了平台之后,只需要重新定义size_t到新的类型,就可以不修改任何库就可以使用。该类型保证能容纳实现所建立的最大对象的字节大小。 C99中定义格式输出符为%zd,若编译器不支持可以尝试%u... 阅读全文