本文目录一览:
c语言入门书籍
1) 《C语言小白变怪兽》
既适合对计算机一窍不通的小白,也适合有编程基础的读者,还可以用来进阶。
《C语言小白变怪兽》是一套网络教程,发布在C语言中文网,由站长亲自编写,这套教程最大的特点是通俗易懂,深入浅出,既适合小白入门,也适合后期进阶。本人就是读了这套教程以后才对C语言有了天翻地覆的认识,觉得以前学得都是垃圾。。。
这本书至今还在不断更新,我认为这是C语言入门的首选教材,吐血推荐,经典中的经典!!!
2) 《啊哈C语言》
适合对计算机一窍不通的纯小白,有编程基础的读者请忽略。
这本书语言幽默,生动形象,通俗易懂,给人耳目一新的感觉,但是这本书非常浅显,并不深入,所以适合纯小白入门,找到门以后也就扔了。
这本书着重于语言艺术,针对纯小白下足了功夫,小学生坐在马桶上都能学会编程。说实话,我非常欣赏作者的创意和用心,国内像这样写书的少之又少,入门的书就应该是这个样子。
3) 《明解C语言》
适合对计算机一窍不通的纯小白,有编程基础的读者请忽略。
日本人的作品,最大的特点是插图很多,生动有趣,让人一目了然。
其实真正的《明解C语言》一共有三部,分别是《明解C语言·入门篇》《明解C语言·中级篇》《明解C语言·实践篇》,遗憾的是图灵公司目前只翻译了入门篇和中级篇,还没有翻译实践篇。中级篇网上还没有 PDF 下载资源
4) 《C Primer Plus》
适合有编程基础的读者,对计算机一窍不通的纯小白请忽略。
畅销 30 余年的C语言入门经典书籍,至今无人能撼动它的地位,它是最符合C语言标准的书籍,作为一名C语言程序员,不收藏一本都觉得自己很水。
但是对于没有计算机基础的小白,这本书就有点蛋疼了,信息量大,涉及的知识面广,书也比较厚,得有耐心才行。
如果你是纯小白,还是推荐阅读《C语言小白变怪兽》《啊哈C语言》《明解C语言》这几本书,等有了一点C语言基础,知道C语言大概讲了什么东西了,再来读《C Primer Plus》收获就非大了,你会感受到满满的干货。
5) 《C程序设计语言,The C Programming Language》
C语言创始人丹尼斯·里奇(Dennis MacAlistair Ritchie)的著作,和《C Primer Plus》并驾齐驱,很难分出伯仲,这两本书都是一样的优秀,都是C语言程序员必须收藏的。
但是,《C程序设计语言》也不太适合纯小白,还是推荐阅读《C语言小白变怪兽》《啊哈C语言》《明解C语言》这几本书,等有基础了再回来看。
《C程序设计语言》和《C Primer Plus》的难度差不多,信息量也差不多,有很多人纠结读哪一本,我的建议是任选其一即可,或者,看了一本以后,另外一本大概浏览一下。
C语言问题,错在哪里?无论输入1234...输出都是“恭喜你,躲过了怪兽!”
if (a=1) printf("恭喜你,躲过了怪兽!\n");
else if (a=2) printf("对不起,你被怪兽吃了。\n");
else if (a=3) printf("对不起,怪兽一巴掌把你拍死了。\n");
你的错误是a=1;a=2;a=3,这三个是赋值的,不是判断的
a==1,a==2,a==3就可以了
一道关於c语言的超难古典数学题
费波那契数列:1,1,2,3,5,8,13,21,44, , ,
就是把前两个数相加,的第三个数。
原题是这样的:
一只小兔子,一个月后长成大兔子。一个月每个月生一只小兔子。第一个月,有一只小兔子,问第N个月后有几只兔子?
答案就是费波那契数列。
你的那个题和这道一样。
c语言和c++区别
区别有很多,研究这些东西的大师可以写好几本书来讲这个问题。
但是最通常的区别,也即大家最常提及的区别是:c是面向过程的,c++是面向对象的。
简单通俗来说:
写c的时候,脑子里想的是一行一行代码往下执行,总体的程序就是走一个过程,顺序、分支、条件,这些都是过程。
先创建一个怪兽,然后指使这个怪兽攻击,接着调用函数让它移动到高地水晶边上,然后销毁怪兽,可能是这样的:
Kaiju* k = (Kaiju*)malloc(sizeof(Kaiju));
if (k == NULL) exit(1);
InitKaiju(k);
LetKaijuAttack(k);
MoveKaijuTo(k, POSITION_HIGHLAND_HOME);
DestroyKaiju(k);
写c++的时候,脑子里想的是一个一个的对象,敌人是一个对象,长得像怪兽的敌人是一个对象,长得像怪兽而且用Kaiju激光攻击的敌人也是一个对象,这些对象之间可能存在“继承、组合”的关系。创建一个怪兽,至于这个怪兽是怎么攻击,怎么移动的,都在这个怪兽对象对应的类里面指定,你只知道这是一个怪兽。所以可能是这样的:
Kaiju* k = new Kaiju;
k.attack();
k.moveTo(POSITION_HIGHLAND_HOME);
delete k;