` 本帖最后由 zzq宁静致远 于 2014-2-27 19:42 编辑
再过1个月又是一年应届毕业生应聘的高峰期了,为了方便应届毕业生应聘,笔者将大学四年C语言知识及去年本人C语言笔试难点进行梳理,希望能对今年应届毕业生的应聘有所帮助。
2013年10月18日更新--> 攻破C语言这个帖子更新到这里,我不仅仅是为了补充大学学生遗漏的知识,我更重要的是希望通过我的经验,你们实际项目中的C语言写得漂亮,写出属于你的风格。“朱兆祺STM32手记”(https://bbs.elecfans.com/jishu_385613_1_1.html)一帖中我就多次强调过编程的模块化,要考虑到可移植性和别人的可阅读性。我在某公司实习的时候,拿到一个程序,我当时就想吐槽,我想除了这个程序的当时写作者能够看懂之外,其他人有谁还能看懂,程序构架、可移植性性就更是一塌糊涂。结果我全部推到重写。因此明志电子科技工作室从承接第一个项目做开始,我便和搭档说,我们必须制定我们工作室的编程规范和编程风格,这样就算给谁,换成谁,拿到项目都能马上接下去做。
朱兆祺在这个帖子将会不断更新,明志电子工作室的项目经验也将在电子发烧友论坛不断贴出,我希望能用我们仅有的力量,将我们的经验毫不保留传授给大家。我只希望在未来某一天,有那么几个人会竖着大拇指说:明志电子科技工作室的经验受益匪浅就够了。我相信,在深圳,明志电子科技工作室的影响力会日益增长,因为我们已经规划好了未来脚步。
C语言是一门技术,但更是一门艺术。写一个C语言代码不难,写一个高水平、漂亮的代码很难。朱兆祺将在此帖不断为大家攻破C语言。
<--朱兆祺于2013年10月18日
-->朱兆祺更新于2014年2月21日:
深圳市馒头科技有限公司于2014年2月注册成立,当初命名为馒头科技,不管是吴坚鸿所说亲切还是谢贤斌所说草根。馒头科技永远以用户满意为我们的追求,馒头科技不追求锦上添花,但是我们很愿意为每一位客户雪中送炭。因为锦上添花每一个人都会做,但是雪中送炭却不是每一个人愿意去做。
馒头科技往后将为每一位读者送上更为精美的学习资料。敬请期待。
第一节 C语言编程中的几个基本概念
https://bbs.elecfans.com/jishu_354666_1_1.html
第二节 数据存储与变量
https://bbs.elecfans.com/forum.php?mod=redirect&goto=findpost&ptid=354666&pid=2088253&fromuid=222350
第三节 数学算法解决C语言问题
https://bbs.elecfans.com/forum.php?mod=redirect&goto=findpost&ptid=354666&pid=2088283&fromuid=222350
第四节 关键字、运算符与语句
https://bbs.elecfans.com/forum.php?mod=redirect&goto=findpost&ptid=354666&pid=2088352&fromuid=222350
第五节 C语言中的细节
https://bbs.elecfans.com/forum.php?mod=redirect&goto=findpost&ptid=354666&pid=2088375&fromuid=222350
第六节 数组与指针
https://bbs.elecfans.com/forum.php?mod=redirect&goto=findpost&ptid=354666&pid=2088417&fromuid=222350
第七节 结构体与联合体
https://bbs.elecfans.com/forum.php?mod=redirect&goto=findpost&ptid=354666&pid=2088582&fromuid=222350
第八节 内存分配与内存释放
https://bbs.elecfans.com/forum.php?mod=redirect&goto=findpost&ptid=354666&pid=2088596&fromuid=222350
第九节 笔试中的几个常考题
https://bbs.elecfans.com/forum.php?mod=redirect&goto=findpost&ptid=354666&pid=2088606&fromuid=222350
第十节 数据结构之冒泡排序、选择排序
https://bbs.elecfans.com/forum.php?mod=redirect&goto=findpost&ptid=354666&pid=2092632&fromuid=222350
第十一节 机试题之数据编码
https://bbs.elecfans.com/forum.php?mod=redirect&goto=findpost&ptid=354666&pid=2096393&fromuid=222350
第十二节 机试题之十进制1~N的所有整数中出现“1”的个数
https://bbs.elecfans.com/forum.php?mod=redirect&goto=findpost&ptid=354666&pid=2097513&fromuid=222350
第十三节 机试题之 遍历单链表一次,找出链表中间元素
https://bbs.elecfans.com/forum.php?mod=redirect&goto=findpost&ptid=354666&pid=2103563&fromuid=222350
第十四节 机试题之全排序
https://bbs.elecfans.com/forum.php?mod=redirect&goto=findpost&ptid=354666&pid=2105648&fromuid=222350
第十五节 机试题之大整数运算
https://bbs.elecfans.com/forum.php?mod=redirect&goto=findpost&ptid=354666&pid=2109737&fromuid=222350
第十六节 机试题之大整数减法与乘法
https://bbs.elecfans.com/forum.php?mod=redirect&goto=findpost&ptid=354666&pid=2115675&fromuid=222350
第十七节 算法之二分查找
https://bbs.elecfans.com/forum.php?mod=redirect&goto=findpost&ptid=354666&pid=2128027&fromuid=222350
第十八节 数据结构之单向链表(颠覆你手中数据结构的三观)
https://bbs.elecfans.com/forum.php?mod=redirect&goto=findpost&ptid=354666&pid=2139670&fromuid=222350
第十九节 数据结构之双向链表(接着颠覆你手中的数据结构三观)
https://bbs.elecfans.com/forum.php?mod=redirect&goto=findpost&ptid=354666&pid=2156978&fromuid=222350
第二十节 数据结构之栈
https://bbs.elecfans.com/forum.php?mod=redirect&goto=findpost&ptid=354666&pid=2193337&fromuid=222350
C语言技术公开课第一讲——编译环境给C语言带来的困扰,网络课程讲义
https://bbs.elecfans.com/forum.php?mod=redirect&goto=findpost&ptid=354666&pid=2230571&fromuid=222350
第二十一节 通过加减法高效的求出两个无符号整数的商和余数
https://bbs.elecfans.com/forum.php?mod=redirect&goto=findpost&ptid=354666&pid=2252461&fromuid=222350
第二十二节 表达式计算器(1)
https://bbs.elecfans.com/forum.php?mod=redirect&goto=findpost&ptid=354666&pid=2280837&fromuid=222350
第二十三节 表达式计算器(2)
https://bbs.elecfans.com/forum.php?mod=redirect&goto=findpost&ptid=354666&pid=2325485&fromuid=222350
第二十四节 表达式计算器(3)
https://bbs.elecfans.com/forum.ph ... 4547&fromuid=222350
第二十五节 表达式计算器(4)
https://bbs.elecfans.com/forum.php?mod=redirect&goto=findpost&ptid=354666&pid=2395966&fromuid=222350
C语言技术公开课第三讲 const问题
https://bbs.elecfans.com/forum.php?mod=redirect&goto=findpost&ptid=354666&pid=2434706&fromuid=222350
第二十六节 序列差最小
https://bbs.elecfans.com/forum.php?mod=redirect&goto=findpost&ptid=354666&pid=2466868&fromuid=222350
第二十七节 sizeof与strlen的深入
https://bbs.elecfans.com/forum.php?mod=redirect&goto=findpost&ptid=354666&pid=2676569&fromuid=222350
第二十八节 C与C++中的const
第二十九节 do、while 第三十节 变量的生命周期
第一节 C语言编程中的几个基本概念
1.1 #include< >与#include" "
1. #include< >和#include" "有什么区别? 这个题目考查大家的基础能力,#include< >用来包含开发环境提供的库, #include" "用来包含.c/.cpp文件所在目录下的头文件。注意:有些开发环境可以在当前目录下面自动收索(包含子目录),有些开发环境需要指定明确的文件路径名。 1.2 switch() 1. switch(c) 语句中 c 可以是 int, long, char, float, unsigned int 类型? 其实这个题目很基础,c应该是整型或者可以隐式转换为整型的数据,很明显不能是实型(float、double)。所以这个命题是错误的。 1.3 const 1. const有什么用途? 虽然const很常用,但是我相信有很多人仍然答不上来。 (1) 欲阻止一个变量被改变,可以使用const 关键字。在定义该 const 变量时,通常需要对它进行初 始化,因为以后就没有机会再去改变它了; (2) 对指针来说,可以指定指针本身为 const,也可以指定指针所指的数据为 const,或二者同时指定为 const; (3) 在一个函数声明中,const 可以修饰形参,表明它是一个输入参数,在函数内部不能改变其值; (4) 对于类的成员函数,若指定其为 const 类型,则表明其是一个常函数,不能修改类的成员变量; (5) 对于类的成员函数,有时候必须指定其返回值为 const 类型,以使得其返回值不为“左值”。 1.4 #ifndef/#define/#endif 1. 头文件中的 #ifndef/#define/#endif 干什么用? 其实#ifndef、#define、#endif这些在u-boot、linux内核文件中经常见到,在这么大型的程序中大量使用,可见它的作用不可小觑。 这些条件预编译多用于对代码的编译控制,增加代码的可裁剪性,通过宏定义可以轻松的对代码进行裁剪。 #ifndef/#define/#endif最主要的作用是防止头文件被重复定义。 1.5 全局变量和局部变量 1. 全局变量和局部变量在内存中是否有区别?如果有,是什么区别? 全局变量储存在静态数据库,局部变量在堆栈。 其实,由于计算机没有通用数据寄存器,则函数的参数、局部变量和返回值只能保存在堆栈中。提示:局部变量太大可能导致栈溢出,所以建议把较大数组放在main函数外,防止产生栈溢出。 思考:如程序清单1. 1所示。会出现怎样的情况? 程序清单1. 1 大数组放在main函数中导致堆栈溢出 int main(int argc, char *argv[]) { int iArray[1024 * 1024]; return 0; }
`
|