欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      程序員學(xué)習(xí)C語(yǔ)言的十大好處

      時(shí)間:2019-05-12 21:46:50下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫(xiě)寫(xiě)幫文庫(kù)小編為你整理了多篇相關(guān)的《程序員學(xué)習(xí)C語(yǔ)言的十大好處》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫(xiě)寫(xiě)幫文庫(kù)還可以找到更多《程序員學(xué)習(xí)C語(yǔ)言的十大好處》。

      第一篇:程序員學(xué)習(xí)C語(yǔ)言的十大好處

      004km.cn 程序員學(xué)習(xí)C語(yǔ)言的十大好處

      凡是程序員都知道C語(yǔ)言也都學(xué)習(xí)過(guò)C語(yǔ)言,因?yàn)樗浅绦騿T最基礎(chǔ)的學(xué)習(xí)內(nèi)容,往往最基礎(chǔ)的也是最重要的并且是對(duì)我們最有幫助的。那就讓我們來(lái)談?wù)劤绦騿T學(xué)習(xí)C語(yǔ)言的十大好處吧!

      1)相比較其他的編程語(yǔ)言(像C++,JAVA),C語(yǔ)言是個(gè)低級(jí)語(yǔ)言。從總體上來(lái)說(shuō),低級(jí)的編程語(yǔ)言可以讓你更好的了解計(jì)算機(jī)。

      2)設(shè)備驅(qū)動(dòng)程序和操作系統(tǒng)只能用C語(yǔ)言來(lái)編寫(xiě)?,F(xiàn)在,你可能還從來(lái)沒(méi)有編寫(xiě)過(guò)一個(gè)設(shè)備驅(qū)動(dòng)程序或者一個(gè)操作系統(tǒng),但是如果你需要去修改他們的時(shí)候,怎么辦?

      3)如果你想要得到一份編寫(xiě)微控制器程序的工作的時(shí)候,該怎么辦?他們都是用C語(yǔ)言編寫(xiě)的。就因?yàn)椴幌雽W(xué)習(xí)一門(mén)新的語(yǔ)言,你就準(zhǔn)備限制你能得到工作的機(jī)會(huì)嗎?

      4)C的程序比其他用別的語(yǔ)言寫(xiě)的程序,實(shí)現(xiàn)相同的功能,它用的代碼行數(shù)更少,而它帶來(lái)的運(yùn)行效率卻更快。有時(shí)候,你的程序所需要的速度,中國(guó)自學(xué)編程網(wǎng),只有C語(yǔ)言能做到。

      004km.cn

      5)如果你學(xué)習(xí)過(guò)C語(yǔ)言,你就能學(xué)習(xí)現(xiàn)在任何的高級(jí)編程語(yǔ)言。因?yàn)樗械母呒?jí)語(yǔ)言都是以C語(yǔ)言為基礎(chǔ)的(像JAVA,C++,C#等等)。

      6)因?yàn)镃語(yǔ)言已經(jīng)存在很多年了,它有廣泛的使用團(tuán)體并且有大量的現(xiàn)成代碼可以利用。這就使你能在過(guò)去程序的基礎(chǔ)上,快速和高效的編寫(xiě)新的算法和函數(shù)。

      7)C語(yǔ)言是一個(gè)開(kāi)源組織的語(yǔ)言。一個(gè)開(kāi)源組織的產(chǎn)物--LINUX,就是用C語(yǔ)言寫(xiě)的。如果你會(huì)C語(yǔ)言,你就能參加這個(gè)組織并且還能向眾多的開(kāi)源組織投稿,比如參加Source Forge并且給他們投稿。

      8)C語(yǔ)言是唯一一個(gè)向你闡述指針的本質(zhì)的語(yǔ)言。而C#和Java干脆跳過(guò)了指針這個(gè)題目。可是指針確實(shí)使C語(yǔ)言變得更加強(qiáng)大。

      9)找編程開(kāi)發(fā)方面的工作時(shí),C語(yǔ)言仍然是最普遍需要的語(yǔ)言。所以它值得你花時(shí)間去學(xué)會(huì)它。

      10)任何里面有微處理器的設(shè)備都支持C語(yǔ)言。從微波爐到手機(jī),都是由C語(yǔ)言技術(shù)來(lái)推動(dòng)的。

      (ps:本文章由北大青鳥(niǎo)廣安門(mén)校區(qū)搜集自互聯(lián)網(wǎng))

      第二篇:29.如何學(xué)習(xí)C語(yǔ)言-----程序員之路

      作者:t5k5 日期:2007-10-24

      一周沒(méi)有寫(xiě)東西了,今天上校內(nèi)的時(shí)候有個(gè)好友分享了這篇帖子,深有感觸,以后堅(jiān)決不用TC了,去下個(gè)VC++來(lái)學(xué)習(xí)C,哈哈~~還說(shuō)我們用的教材太LJ了,這個(gè)我倒不怎么清楚,因?yàn)闆](méi)學(xué)懂啊。。

      看文章結(jié)尾的鏈接就知道是CSDN上的了,以下是原文:

      =================T5K5的學(xué)習(xí)分割線=================

      學(xué)習(xí)C語(yǔ)言不是一朝一夕的事情,但也不需要花費(fèi)十年時(shí)間才能精通。如何以最小的代價(jià)學(xué)習(xí)并精通C語(yǔ)言是本文的主題。請(qǐng)注意,即使是“最小的代價(jià)”,也絕不是什么捷徑,而是以最短的時(shí)間取得最多的收獲,同時(shí)也意味著你需要經(jīng)歷艱苦的過(guò)程。

      一、要讀就讀好書(shū),否則不如不讀

      所有初學(xué)者面臨的第一個(gè)問(wèn)題便是:如何選擇教材。好的開(kāi)始是成功的一半,選擇一本優(yōu)秀的教材是事半功倍的關(guān)鍵因素。不幸的是,學(xué)校通常會(huì)幫你指定一本很差勁的C語(yǔ)言課本;而幸運(yùn)的是,你還可以再次選擇。

      大名鼎鼎的譚浩強(qiáng)教授出了一本《C語(yǔ)言程序設(shè)計(jì)》,據(jù)說(shuō)發(fā)行量有超過(guò)400萬(wàn),據(jù)我所知,很多學(xué)校都會(huì)推薦這本書(shū)作為C語(yǔ)言課本。雖然本人的名字(譚浩宇)跟教授僅僅一字之差,但我是無(wú)比堅(jiān)定地黑他這本書(shū)的。這本書(shū)不是寫(xiě)給計(jì)算機(jī)專(zhuān)業(yè)的學(xué)生的,而是給那些需要考計(jì)算機(jī)等級(jí)考試的其它專(zhuān)業(yè)學(xué)生看的。這本書(shū)的主要缺點(diǎn)是:例子程序非常不專(zhuān)業(yè),不能教給你程序設(shè)計(jì)應(yīng)該掌握的思考方式;程序風(fēng)格相當(dāng)?shù)夭缓茫瑫?huì)讓你養(yǎng)成亂寫(xiě)代碼的惡習(xí);錯(cuò)誤太多,曾經(jīng)有人指出過(guò)這本書(shū)的上百個(gè)錯(cuò)誤,其中不乏關(guān)鍵的概念性錯(cuò)誤。好了,這本書(shū)我也不想說(shuō)太多了,有興趣大家可以百度一下:)

      Kernighan和Ritchie的《The C Programming Language》(中譯名《C程序設(shè)計(jì)語(yǔ)言》)堪稱(chēng)經(jīng)典中的經(jīng)典,不過(guò)舊版的很多內(nèi)容都已過(guò)時(shí),和現(xiàn)在的標(biāo)準(zhǔn)C語(yǔ)言相去甚遠(yuǎn),大家一定要看最新的版本,否則不如不看。另外,即使是最經(jīng)典最權(quán)威的書(shū),也沒(méi)有辦法面面俱到,所以手邊常備一本《C語(yǔ)言參考手冊(cè)》是十分必要的?!禖語(yǔ)言參考手冊(cè)》就是《C Reference Manual》,是C語(yǔ)言標(biāo)準(zhǔn)的詳細(xì)描述,包括絕大多數(shù)C標(biāo)準(zhǔn)庫(kù)函數(shù)的細(xì)節(jié),算得上是最好的標(biāo)準(zhǔn)C語(yǔ)言的工具書(shū)。順便提一句,最新的《C程序設(shè)計(jì)語(yǔ)言》是根據(jù)C89標(biāo)準(zhǔn)修訂的,而《C語(yǔ)言參考手冊(cè)》描述的是C99標(biāo)準(zhǔn),二者可能會(huì)有些出入,建議按照C99標(biāo)準(zhǔn)學(xué)習(xí)。還有一本《C和指針》,寫(xiě)得也是相當(dāng)?shù)夭诲e(cuò),英文名是《Pointers on C》,特別地強(qiáng)調(diào)指針的重要性,算是本書(shū)的一個(gè)特點(diǎn)吧。不過(guò)這本書(shū)并不十分適合初學(xué)者,如果你曾經(jīng)學(xué)過(guò)C語(yǔ)言,有那么一些C語(yǔ)言的基礎(chǔ)但又不是很扎實(shí),那么你可以嘗試一下這本書(shū)。我相信,只要你理解了指針,C語(yǔ)言便不再神秘。

      如果你已經(jīng)啃完了一本C語(yǔ)言教材,想要更進(jìn)一步,那么有兩本書(shū)你一定要看。首先是《C Traps and Pitfalls》(中譯名《C陷井與缺陷》),很薄的一本小冊(cè)子,內(nèi)容非常非常地有趣。要注意一點(diǎn),這本書(shū)是二十多年前寫(xiě)成的,里面提到的很多C語(yǔ)言的缺陷都已被改進(jìn),不過(guò)能夠了解一些歷史也不是什么壞事。然后你可以挑戰(zhàn)一下《Expert C Programming》(中譯名《C專(zhuān)家編程》),書(shū)如其名,這本書(shū)頗具難度,一旦你仔細(xì)讀完并能透徹理解,你便可以放心大膽地在簡(jiǎn)歷上寫(xiě)“精通C語(yǔ)言”了。

      切記一個(gè)原則,不要讀自己目前還看不懂的書(shū),那是浪費(fèi)生命。如果你看不懂,那你一定是缺失了某些必需基礎(chǔ)知識(shí)。此時(shí),你要仔細(xì)分析自己需要補(bǔ)充哪些內(nèi)容,然后再去書(shū)店尋找講述的這些內(nèi)容的書(shū)籍。把基礎(chǔ)知識(shí)補(bǔ)充完畢再回頭來(lái)學(xué)習(xí),才會(huì)真正的事半功倍。

      二、Unix/Linux還是Windows,這是個(gè)很大的問(wèn)題

      不同的編程環(huán)境會(huì)造就出不同思維的程序員。Windows的程序員大多依賴(lài)集成開(kāi)發(fā)環(huán)境,比如Visual Studio,而Unix程序員更加鐘愛(ài)Makefile與控制臺(tái)。顯而易見(jiàn),集成開(kāi)發(fā)環(huán)境更容易上手,在Windows上學(xué)習(xí)C語(yǔ)言,只需要會(huì)按幾個(gè)基本的Visutal C++工具欄按鈕就可以開(kāi)始寫(xiě)Hello, World!了,而在Unix下,你需要一些控制臺(tái)操作的基本知識(shí)。有人也許認(rèn)為Unix的環(huán)境更簡(jiǎn)潔,但習(xí)慣的力量是很大的,大家都很熟悉Windows的基本操作,而為了學(xué)習(xí)C語(yǔ)言去專(zhuān)門(mén)裝一個(gè)Unix系統(tǒng),似乎有點(diǎn)不劃算。

      對(duì)于一個(gè)只懂得Windows基本操作、連DOS是什么都不知道的新手而言,盡快做一些有趣而有意義的事情才是最重要的。用C語(yǔ)言寫(xiě)一個(gè)小程序遠(yuǎn)比學(xué)習(xí)ls、cat等命令有趣,況且我們要專(zhuān)注于C語(yǔ)言本身,就不得不暫時(shí)忽略一些東西,比如編譯鏈接的過(guò)程、Makefile的寫(xiě)法等等等等。

      所以我建議初學(xué)者應(yīng)該以Visual C++ 6.0(不是VisualC++.NET)或者Dev C++作為主要的學(xué)習(xí)環(huán)境,而且千萬(wàn)不要在IDE的使用技巧上過(guò)多糾纏,因?yàn)榻窈竽阋欢ㄒD(zhuǎn)向Unix環(huán)境的。Visual C++ 6.0使用很方便,調(diào)試也很直觀,但其默認(rèn)的編譯器對(duì)C標(biāo)準(zhǔn)的支持并不好,而Dev C++使用gcc編譯器,對(duì)C99的標(biāo)準(zhǔn)都支持良好。使用順帶提一下,很多大學(xué)的C語(yǔ)言課程還在使用Turbo C 2.0作為實(shí)驗(yàn)環(huán)境,這是相當(dāng)不可取的,原因其一是TC 2.0對(duì)C標(biāo)準(zhǔn)幾乎沒(méi)有支持,其二是TC 2.0編譯得到的程序是16位的,這對(duì)今后理解32位的程序會(huì)造成極大的困擾(當(dāng)然,用djgpp之類(lèi)的東西可以使TC 2.0編譯出32位程序,不過(guò)那過(guò)于復(fù)雜了)。

      等你學(xué)完一本C語(yǔ)言的教材,你一定要轉(zhuǎn)向Unix平臺(tái)繼續(xù)學(xué)習(xí),幾乎所有的C語(yǔ)言高級(jí)教程都是基于Unix平臺(tái)的(比如《C專(zhuān)家編程》)。轉(zhuǎn)變的過(guò)程是痛苦的,你需要面對(duì)的是各種紛繁復(fù)雜的命令,完全不同于Windows平臺(tái)的思考方式,但是這種痛苦是值得的。Unix與C是共生的,Unix的思考方式和習(xí)慣更加符合C語(yǔ)言的思考方式和習(xí)慣。在Unix下,你可以找到無(wú)數(shù)優(yōu)秀的源代碼供你盡情閱讀,你可以方便地查看某個(gè)庫(kù)函數(shù)的聯(lián)機(jī)手冊(cè),還可以看到最優(yōu)秀的代碼風(fēng)格(說(shuō)到代碼風(fēng)格,我會(huì)專(zhuān)門(mén)寫(xiě)一篇文章詳細(xì)敘述)。

      歸結(jié)起來(lái)就是一句話:初學(xué)C語(yǔ)言,建議使用Windows系統(tǒng)和集成開(kāi)發(fā)環(huán)境,在準(zhǔn)備向“高手”方向努力時(shí),請(qǐng)先轉(zhuǎn)向Unix平臺(tái)。

      三、萬(wàn)事俱備,你就是東風(fēng)

      書(shū)已選定,環(huán)境配置完成,正所謂萬(wàn)事俱備,只欠你自己的努力了。請(qǐng)從書(shū)的前言開(kāi)始,仔細(xì)地閱讀手頭的教材,很多人看書(shū)喜歡直接從第一章開(kāi)始看,這是錯(cuò)誤的做法。前言是作者對(duì)整本書(shū)的大體介紹,作者一般會(huì)告訴你需要什么基礎(chǔ)才能夠順利閱讀本書(shū),這可以幫助你檢驗(yàn)自己的基礎(chǔ)知識(shí)是否已經(jīng)具備??赐昵把?,還要瀏覽一下目錄,了解一下書(shū)的整體結(jié)構(gòu),順便給自己安排一下學(xué)習(xí)計(jì)劃。

      學(xué)習(xí)C語(yǔ)言,必需注意每一個(gè)細(xì)節(jié),書(shū)上的例子代碼一定要自己親自敲一遍,編譯執(zhí)行輸出都跟書(shū)上說(shuō)的一致才能算是學(xué)完了一個(gè)例子,如果不一致,就要仔細(xì)找原因。出了書(shū)本上有的例子,自己還要“創(chuàng)造”一些例子,比如學(xué)習(xí)運(yùn)算符優(yōu)先級(jí)的時(shí)候,可以寫(xiě)幾個(gè)相同的表達(dá)式,在不同的位置加上括號(hào),看看有哪些不同的行為,比如*p++和(*p)++,又比如a = b == c、(a = b)== c和a =(b == c)等等。自己抄的書(shū)上的例子以及改造之后的例子,還有自己“創(chuàng)造”的例子,都應(yīng)該仔細(xì)地歸類(lèi)保存,并且要在源代碼中寫(xiě)上簡(jiǎn)短的注釋?zhuān)U述這個(gè)例子的意圖。

      例子之后就是習(xí)題了,我建議初學(xué)者把所有的習(xí)題都獨(dú)立做一遍,然后對(duì)照答案的代碼,看看自己的代碼有那些不足,再試著修改自己的代碼。很多人不重視習(xí)題,這是極大的錯(cuò)誤,因?yàn)樽髡咄ǔ?huì)在習(xí)題中說(shuō)明一些重要的道理,而不是單純地檢驗(yàn)前面的知識(shí)。

      也許你認(rèn)為這樣學(xué)習(xí)太慢,其實(shí)不然。學(xué)得細(xì)致就不用走回頭路,等你學(xué)到后面才發(fā)現(xiàn)自己前面沒(méi)搞清楚,那才是真的得不償失。一般說(shuō)來(lái),整本書(shū)讀完,你應(yīng)該完成數(shù)千行乃至上萬(wàn)行的代碼,無(wú)論是原封不動(dòng)照抄書(shū)上的,還是自己心血來(lái)潮寫(xiě)就的,都是今后繼續(xù)學(xué)習(xí)的一筆財(cái)富。以我自己舉例,閱讀《Windows核心編程》時(shí)(我只閱讀了3/4的內(nèi)容),除了抄書(shū)上的代碼,還自己寫(xiě)了很多例子,一共有5574行(用unix下的wc工具統(tǒng)計(jì)),時(shí)隔多日,我早已記不清Windows的系統(tǒng)編程了,但只要花幾分鐘翻出以前的代碼看看,便會(huì)重新了然于胸。所謂好記性不如爛筆頭,就是這個(gè)道理。

      仔細(xì)讀書(shū)、認(rèn)真抄寫(xiě)源代碼、獨(dú)立完成習(xí)題外加更進(jìn)一步的實(shí)驗(yàn),最后將所有的代碼留下,成為自己的經(jīng)驗(yàn)和財(cái)富,絕對(duì)的辛苦,也絕對(duì)的事半功倍。當(dāng)然,這種方式只適合學(xué)習(xí)需要精通的技術(shù),如果不是學(xué)習(xí)C語(yǔ)言,你還要具體情況具體分析。

      寫(xiě)到最后,還有非常非常重要的一點(diǎn)沒(méi)有提及──代碼風(fēng)格,從最開(kāi)始學(xué)習(xí)就必須強(qiáng)迫自己模仿最優(yōu)秀的代碼風(fēng)格。因?yàn)榇a風(fēng)格太重要內(nèi)容也太多,我會(huì)用專(zhuān)門(mén)的一篇文章來(lái)詳細(xì)討論,請(qǐng)大家關(guān)注《程序員之路──關(guān)于代碼風(fēng)格》。

      第三篇:程序員教你學(xué)C語(yǔ)言

      程序員教你學(xué)C語(yǔ)言

      很多小伙伴都老是會(huì)碰到疑問(wèn),其實(shí)還是基礎(chǔ)沒(méi)打扎實(shí),這些題如果你不看答案你能知道多少呢?如果還有很多不知道就證明基礎(chǔ)沒(méi)打扎實(shí),如果你還在入門(mén)糾結(jié),如果你還在苦惱怎么入門(mén)!小編有個(gè)建議,可以加小編弄的一個(gè)C語(yǔ)言交流基地,大家可以進(jìn)入交流基地:565122788,里面新手入門(mén)資料,可以說(shuō)從零到項(xiàng)目實(shí)戰(zhàn),都是可以免費(fèi)獲取的,還有程序員大牛為各位免費(fèi)解答問(wèn)題,熱心腸的小伙伴也是蠻多的。不失為是一個(gè)交流的的好地方,小編在這里邀請(qǐng)大家加入我的大家庭。歡迎你的到來(lái)。一起交流學(xué)習(xí)!共同進(jìn)步!小編等你!還有前面沒(méi)有看的同學(xué)最好從程序員教你學(xué)C語(yǔ)言

      (一)開(kāi)始看哦,尤其是基礎(chǔ)還沒(méi)打扎實(shí)的同學(xué)!

      今天只舉幾個(gè)例子,主要幫大家鞏固循環(huán)的知識(shí),每個(gè)例子大家都要敲鍵盤(pán)敲出來(lái),然后運(yùn)行成功了才算掌握了,不然還是眼高手低,看上去懂了,一到寫(xiě)程序又犯難了。我發(fā)現(xiàn)有不少人熱衷于打印圖形,所以就弄了幾個(gè)圖形。第一個(gè)是打印金字塔。代碼和運(yùn)行圖如下:

      首先定義了兩個(gè)變量i、j,然后使用system(“color 0e”)改變顏色。接下來(lái)會(huì)進(jìn)入一個(gè)外層循環(huán),其中的i代表層數(shù),我們可以看到這里金字塔有6層,所以i的取值范圍也是0<=i<6,第一次進(jìn)循環(huán)時(shí),i=0,然后到第一個(gè)內(nèi)層循環(huán),這個(gè)循環(huán)的初始條件是j=6-i=6,結(jié)束條件是j>0,所以這里會(huì)打印6個(gè)空格,然后來(lái)到第二個(gè)內(nèi)層循環(huán),這個(gè)循環(huán)的初始條件是j=1;結(jié)束條件是j<=2*i+1=1,所以這里會(huì)打印一個(gè)星,然后會(huì)以printf(“ ”)打印一個(gè)換行結(jié)束第一次外層循環(huán),然后開(kāi)始第二次外層循環(huán),如此反復(fù),最后就得到了如上所示的圖形。

      不理解的話可以把外層循環(huán)for(i = 0;i < 6;i++)的i<6改成i<3,這樣就只會(huì)打印三行,可以便于理解。

      第二個(gè)是打印菱形,其實(shí)就是上一個(gè)圖形的變化,效果和代碼如下:

      可以看到,我們這個(gè)圖形是上下對(duì)稱(chēng)的,所以打印菱形上半部分(就是上一個(gè)例子的打印金字塔)的代碼和下半部分的代碼十分相似,只是把外層循環(huán)的頭部從for(i = 0;i < 6;i++)變成了for(i = 6;i >= 0;i--),大家理解一下代碼,菱形的上半部分,打印的星星數(shù)會(huì)越來(lái)越多,從1到3再到5再到7...而星星前面的空格數(shù)會(huì)越來(lái)越少,從6到5再到4再到3...而菱形的下半部分剛好反過(guò)來(lái)了,所以只需要修改很少的代碼就能實(shí)現(xiàn)菱形了

      接下來(lái)是打印一個(gè)五角星,這是之前一個(gè)萌萌噠妹紙學(xué)習(xí)的代碼,因?yàn)槲冶容^懶啦,所以沒(méi)做修改就直接拿來(lái)了,希望不要介意 #include #include void main(){ int n1,j1,k1;//n1表示行數(shù),j1表示空格,k1表示*號(hào) int n2,j2,k2;int n3,j3,k3;int n4,j4,k4;int a4,b4;system(“color 0e”);for(n1=1;n1<6;n1++)//1;n1<=6就是5行;n1++后+1 n1=2 { for(j1=1;j1<19-n1;j1++)//j1=1;j1<19-n1打印19-1=18個(gè)空格;j1++后+1 j1=2 printf(“ ”);for(k1=1;k1<=2*n1-1;k1++)//k1=1;k1<=2*n1-1打印2*1-1=1個(gè)*號(hào);j1++后+1 j1=2 printf(“*”);printf(“ ”);} for(n2=1;n2<5;n2++){ for(j2=1;j2<3*n2-3;j2++)//j2=1;j2<3*n2-3;j2=3*1-3打印0個(gè)空格;j2++ printf(“ ”);for(k2=1;k2<=42-6*n2;k2++)//k2=1;k2<=42-6*n2;k2<=42-6*1打印36個(gè)*;k2++ printf(“*”);printf(“ ”);} for(n3=1;n3<3;n3++){ for(j3=1;j3<12-n3;j3++)printf(“ ”);for(k3=1;k3<=12+2*n3;k3++)printf(“*”);printf(“ ”);} for(n4=1;n4<5;n4++){ for(j4=1;j4<10-n4;j4++)printf(“ ”);for(k4=1;k4<=10-2*n4;k4++)printf(“*”);for(a4=1;a4<6*n4-3;a4++)printf(“ ”);for(b4=1;b4<10-2*n4;b4++)printf(“*”);printf(“ ”);} }

      這個(gè)程序很明顯分成了四塊,由四個(gè)外層for循環(huán)構(gòu)成,for(n1=1;n1<6;n1++)打印最上面5行,for(n2=1;n2<5;n2++)打印中間4行,for(n3=1;n3<3;n3++)打印下面2行行,for(n4=1;n4<5;n4++)打印最下面4行,大家自己理解下代碼,不懂的就問(wèn)

      最后一個(gè)圖形是我剛剛寫(xiě)的六芒星,完整的代碼輸出結(jié)果是這樣的:

      學(xué)習(xí)交流群(565122788)

      但是我這里只給出一半代碼,剩下的需要大家自己學(xué)完成,當(dāng)是對(duì)自己的考驗(yàn)也好,作業(yè)也罷,還是希望大家能夠自己親自動(dòng)手試一下的。不懂的就再問(wèn) #include #include void main(){ inti,j;system(“color 0e”);//輸出第一行 for(j = 15;j >= 1;j--){ printf(“ ”);} printf(“* ”);//輸出接下來(lái)四行 for(i = 1;i <= 4;i++){ for(j = 14;j >= i;j--){ printf(“ ”);} printf(“*”);for(j = 1;j < 2*i;j++){ printf(“ ”);} printf(“* ”);} //輸出最長(zhǎng)的一行 for(i = 1;i < 17;i++){ printf(“* ”);} printf(“ ”);//打印接下來(lái)四行 for(i = 0;i < 4;i++){ for(j = 0;j < i+1;j++){ printf(“ ”);} printf(“*”);for(j = 7;j > 2*i;j--){ printf(“ ”);} printf(“*”);for(j = 0;j < 2*i+11;j++){ printf(“ ”);} printf(“*”);for(j = 7;j > 2*i;j--){ printf(“ ”);} printf(“* ”);} //輸出接下來(lái)一行,就2個(gè)星 printf(“ * * ”);} 這一半代碼的輸出結(jié)果是:

      更多的數(shù)據(jù)類(lèi)型和循環(huán)

      前面我們說(shuō)為了讓計(jì)算機(jī)能夠識(shí)別一個(gè)變量到底占了多少字節(jié),我們需要為變量定義數(shù)據(jù)類(lèi)型,那究竟有多少種數(shù)據(jù)類(lèi)型呢,其實(shí)前面我給出32個(gè)關(guān)鍵字里面就已經(jīng)包括了,short、int、long、char、float、double這6個(gè)關(guān)鍵字代表了C語(yǔ)言里的6中基本數(shù)據(jù)類(lèi)型,怎么去理解它們呢,舉個(gè)例子:大家都見(jiàn)過(guò)剪卡器吧?(沒(méi)見(jiàn)過(guò)?手機(jī)卡總見(jiàn)過(guò)吧)。我們知道不同的手機(jī)使用的手機(jī)卡的大小是有區(qū)別的,我們通常是用剪卡器,拿著它把原來(lái)移動(dòng)的大卡這么一咔,一個(gè)小卡就出來(lái)了,不同型號(hào)的剪卡器咔出來(lái)的手機(jī)卡大小不一樣,比如蘋(píng)果手機(jī)的卡就特別小,三星的卡稍微大點(diǎn)......,現(xiàn)在我們聯(lián)想一下,short、int、long、char、float、double這六個(gè)東東是不是很像不同類(lèi)型的剪卡器?拿著它們?cè)趦?nèi)存上咔咔咔,不同大小的內(nèi)存就分配好了。在32位的系統(tǒng)下short咔出來(lái)的內(nèi)存大小是2個(gè)字節(jié)(也叫byte);int咔出來(lái)的內(nèi)存大小是4個(gè)byte;long咔出來(lái)的內(nèi)存大小是4個(gè)byte;float咔出來(lái)的內(nèi)存大小是4個(gè)byte;double咔出來(lái)的內(nèi)存大小是8個(gè)byte;char咔出來(lái)的內(nèi)存大小是1個(gè)byte。接下來(lái)我們就寫(xiě)程序看看這些基本的數(shù)據(jù)類(lèi)型在我們自己電腦上的大小吧。

      其中sizeof關(guān)鍵字可以確定給定的類(lèi)型占據(jù)了多少字節(jié),它后面可以直接跟類(lèi)型的關(guān)鍵字,比如sizeof(int),也可以跟變量(比如sizeof(i))甚至是表達(dá)式,比如最后一行的sizeof(i-1),它的結(jié)果是表達(dá)式的計(jì)算結(jié)果所占據(jù)的字節(jié)數(shù),i-1的結(jié)果為0,0也是整數(shù),所以占據(jù)的字節(jié)數(shù)為4。(注意這里是指的32位的編譯環(huán)境下的情況,具體平臺(tái)大家可以運(yùn)行這個(gè)程序測(cè)試一下)。然后接下來(lái)是對(duì)這6種基本數(shù)據(jù)的使用情況

      可以看到,兩組都是同樣的數(shù)據(jù),但是最后打印出來(lái)的結(jié)果,上面一組數(shù)據(jù)中字符變量、浮點(diǎn)變量和雙精度變量打印出來(lái)的結(jié)果都不對(duì)。原因是什么呢,因?yàn)槭莗rintf的第一個(gè)參數(shù),%d這個(gè)符號(hào),前面的%是占位符,后面的這個(gè)d代表是以整數(shù)形式打印出來(lái),而不同的數(shù)據(jù)類(lèi)型要以不同的形式打印出來(lái),所以總結(jié)一下,%c表示打印字符、%f是打印浮點(diǎn)數(shù)、%lf是打印雙精度,%hd、%d、%ld分別是打印短整型、整型和長(zhǎng)整型

      關(guān)于上面的字符c='a'為什么按%d整數(shù)打印是97的問(wèn)題,這個(gè)其實(shí)就涉及到ascii碼表了,我們知道在計(jì)算機(jī)底層,所有的數(shù)據(jù)都是以0和1存儲(chǔ)的,那計(jì)算機(jī)如何識(shí)別像a、b、c這樣的字符呢,其他它們最終在計(jì)算機(jī)里也是被以0、1數(shù)據(jù)的形式存放的,而且美國(guó)人就為它們指定了一個(gè)統(tǒng)一的標(biāo)準(zhǔn),就是ascii編碼,圖片如下

      可以看到小寫(xiě)字符a的ascii碼值的十進(jìn)制就是97,而大寫(xiě)A的ascii碼是65,printf中的%d就是以十進(jìn)制整數(shù)方式輸出它在內(nèi)存中的數(shù)據(jù),所以就輸出了97 接下來(lái)將大家使用這些基本數(shù)據(jù)類(lèi)型最容易犯錯(cuò)的一點(diǎn),就是極限值,我們知道計(jì)算機(jī)里的一位只能表示0或者1,而兩位只能表示0、1、2、3,依次類(lèi)推,我們?nèi)绻蠳位,那也只能表示2的N次方個(gè)數(shù)據(jù),我們說(shuō)int是4字節(jié)的,就是32位,所以int也是有極限值的,那是不是就是2的32次方呢,理論上來(lái)講,它能表示這么多的數(shù)據(jù),但是因?yàn)橛姓?fù)數(shù)的存在,這個(gè)值還得減半,我們接下來(lái)的程序就是測(cè)試你機(jī)器上的這些基本類(lèi)型的極限值的,注意unsigned這個(gè)修飾符就是無(wú)符號(hào)的數(shù),比如unsigned int,這就是無(wú)符號(hào)整數(shù),這樣它能表示的范圍就是0~4294967295(2的32次方-1)了。不小心極限值的話,就會(huì)經(jīng)常犯錯(cuò)

      C/C++學(xué)習(xí)交流群,歡迎大家一起來(lái)交流提升。565122788進(jìn)群就能獲取C語(yǔ)言新手學(xué)習(xí)大禮包

      另外兩種循環(huán):while循環(huán)和do...while循環(huán)(還有一種可以構(gòu)成循環(huán)的是goto,但是先不講).while循環(huán)的格式: while(表達(dá)式){ 循環(huán)執(zhí)行語(yǔ)句;} 下一條語(yǔ)句;while循環(huán)和for循環(huán)的區(qū)別在于它的循環(huán)頭部沒(méi)有賦初值的操作,一開(kāi)始就會(huì)進(jìn)行循環(huán)表達(dá)式的判斷,如果表達(dá)式成立,則進(jìn)入循環(huán),否則跳到循環(huán)的下一條語(yǔ)句??匆粋€(gè)例子 # include void main(){ inti;printf(“please enter the right password ”);scanf(“%d”,&i);while(i!= 520){ printf(“please enter the right password ”);scanf(“%d”,&i);} printf(“right!good boy!”);} 程序一開(kāi)始定義了整數(shù)變量i,然后提示用戶(hù)輸入密碼,這時(shí)我們輸入i的值,來(lái)到while(i!= 520)這句,i!= 520這句是如果i不等于520,就進(jìn)入循環(huán)里面,并且提示密碼輸入錯(cuò)誤,用戶(hù)重新輸入密碼,再次輸入密碼后,會(huì)再次來(lái)到循環(huán)頭部,如果i!= 520成立,會(huì)再次進(jìn)入循環(huán)提示用戶(hù)錯(cuò)誤和重新輸入,直到用戶(hù)輸入正確的數(shù)(也就是520)后i!= 520才不成立,就退出了循環(huán)。再來(lái)看看do while循環(huán)的格式: do { 循環(huán)執(zhí)行語(yǔ)句;}while(表達(dá)式);循環(huán)下一句;do while和while的區(qū)別是它會(huì)首先執(zhí)行一遍循環(huán)執(zhí)行語(yǔ)句(所以do while最少都要執(zhí)行一次),然后再循環(huán)尾部判斷表達(dá)式是否成立,如果成立就繼續(xù)進(jìn)入循環(huán),否則到達(dá)循環(huán)下一句。同樣的例子 # include void main(){ inti;do { printf(“please enter the right password ”);scanf(“%d”,&i);}while(i!= 520);printf(“right!good boy!”);} 仔細(xì)對(duì)比它們的差異,假設(shè)我們第一次i的值就輸入520,那么while循環(huán)里的循環(huán)執(zhí)行語(yǔ)句就不會(huì)執(zhí)行,但是do while還是會(huì)執(zhí)行一次循環(huán)執(zhí)行語(yǔ)句再在循環(huán)尾部判斷表達(dá)式是否成立

      第四篇:程序員之路──如何學(xué)習(xí)C語(yǔ)言并精通C語(yǔ)言

      程序員之路──如何學(xué)習(xí)C語(yǔ)言

      學(xué)習(xí)C語(yǔ)言不是一朝一夕的事情,但也不需要花費(fèi)十年時(shí)間才能精通。如何以最小的代價(jià)學(xué)習(xí)并精通C語(yǔ)言是本文的主題。請(qǐng)注意,即使是“最小的代價(jià)”,也絕不是什么捷徑,而是以最短的時(shí)間取得最多的收獲,同時(shí)也意味著你需要經(jīng)歷艱苦的過(guò)程。

      一、要讀就讀好書(shū),否則不如不讀

      所有初學(xué)者面臨的第一個(gè)問(wèn)題便是:如何選擇教材。好的開(kāi)始是成功的一半,選擇一本優(yōu)秀的教材是事半功倍的關(guān)鍵因素。不幸的是,學(xué)校通常會(huì)幫你指定一本很差勁的C語(yǔ)言課本;而幸運(yùn)的是,你還可以再次選擇。

      大名鼎鼎的譚浩強(qiáng)教授出了一本《C語(yǔ)言程序設(shè)計(jì)》,據(jù)說(shuō)發(fā)行量有超過(guò)400萬(wàn),據(jù)我所知,很多學(xué)校都會(huì)推薦這本書(shū)作為C語(yǔ)言課本。雖然本人的名字(譚浩宇)跟教授僅僅一字之差,但我是無(wú)比堅(jiān)定地黑他這本書(shū)的。這本書(shū)不是寫(xiě)給計(jì)算機(jī)專(zhuān)業(yè)的學(xué)生的,而是給那些需要考計(jì)算機(jī)等級(jí)考試的其它專(zhuān)業(yè)學(xué)生看的。這本書(shū)的主要缺點(diǎn)是:例子程序非常不專(zhuān)業(yè),不能教給你程序設(shè)計(jì)應(yīng)該掌握的思考方式;程序風(fēng)格相當(dāng)?shù)夭缓?,?huì)讓你養(yǎng)成亂寫(xiě)代碼的惡習(xí);錯(cuò)誤太多,曾經(jīng)有人指出過(guò)這本書(shū)的上百個(gè)錯(cuò)誤,其中不乏關(guān)鍵的概念性錯(cuò)誤。好了,這本書(shū)我也不想說(shuō)太多了,有興趣大家可以百度一下:)

      Kernighan和Ritchie的《The C Programming Language》(中譯名《C程序設(shè)計(jì)語(yǔ)言》)堪稱(chēng)經(jīng)典中的經(jīng)典,不過(guò)舊版的很多內(nèi)容都已過(guò)時(shí),和現(xiàn)在的標(biāo)準(zhǔn)C語(yǔ)言相去甚遠(yuǎn),大家一定要看最新的版本,否則不如不看。另外,即使是最經(jīng)典最權(quán)威的書(shū),也沒(méi)有辦法面面俱到,所以手邊常備一本《C語(yǔ)言參考手冊(cè)》是十分必要的?!禖語(yǔ)言參考手冊(cè)》就是《C Reference Manual》,是C語(yǔ)言標(biāo)準(zhǔn)的詳細(xì)描述,包括絕大多數(shù)C標(biāo)準(zhǔn)庫(kù)函數(shù)的細(xì)節(jié),算得上是最好的標(biāo)準(zhǔn)C語(yǔ)言的工具書(shū)。順便提一句,最新的《C程序設(shè)計(jì)語(yǔ)言》是根據(jù)C89標(biāo)準(zhǔn)修訂的,而《C語(yǔ)言參考手冊(cè)》描述的是C99標(biāo)準(zhǔn),二者可能會(huì)有些出入,建議按照C99標(biāo)準(zhǔn)學(xué)習(xí)。還有一本《C和指針》,寫(xiě)得也是相當(dāng)?shù)夭诲e(cuò),英文名是《Pointers on C》,特別地強(qiáng)調(diào)指針的重要性,算是本書(shū)的一個(gè)特點(diǎn)吧。不過(guò)這本書(shū)并不十分適合初學(xué)者,如果你曾經(jīng)學(xué)過(guò)C語(yǔ)言,有那么一些C語(yǔ)言的基礎(chǔ)但又不是很扎實(shí),那么你可以嘗試一下這本書(shū)。我相信,只要你理解了指針,C語(yǔ)言便不再神秘。

      如果你已經(jīng)啃完了一本C語(yǔ)言教材,想要更進(jìn)一步,那么有兩本書(shū)你一定要看。首先是《C Traps and Pitfalls》(中譯名《C陷井與缺陷》),很薄的一本小冊(cè)子,內(nèi)容非常非常地有趣。要注意一點(diǎn),這本書(shū)是二十多年前寫(xiě)成的,里面提到的很多C語(yǔ)言的缺陷都已被改進(jìn),不過(guò)能夠了解一些歷史也不是什么壞事。然后你可以挑戰(zhàn)一下《Expert C Programming》(中譯名《C專(zhuān)家編程》),書(shū)如其名,這本書(shū)頗具難度,一旦你仔細(xì)讀完并能透徹理解,你便可以放心大膽地在簡(jiǎn)歷上寫(xiě)“精通C語(yǔ)言”了。

      切記一個(gè)原則,不要讀自己目前還看不懂的書(shū),那是浪費(fèi)生命。如果你看不懂,那你一定是缺失了某些必需基礎(chǔ)知識(shí)。此時(shí),你要仔細(xì)分析自己需要補(bǔ)充哪些內(nèi)容,然后再去書(shū)店尋找講述的這些內(nèi)容的書(shū)籍。把基礎(chǔ)知識(shí)補(bǔ)充完畢再回頭來(lái)學(xué)習(xí),才會(huì)真正的事半功倍。

      二、Unix/Linux還是Windows,這是個(gè)很大的問(wèn)題

      不同的編程環(huán)境會(huì)造就出不同思維的程序員。Windows的程序員大多依賴(lài)集成開(kāi)發(fā)環(huán)境,比如Visual Studio,而Unix程序員更加鐘愛(ài)Makefile與控制臺(tái)。顯而易見(jiàn),集成開(kāi)發(fā)環(huán)境更容易上手,在Windows上學(xué)習(xí)C語(yǔ)言,只需要會(huì)按幾個(gè)基本的Visutal C++工具欄按鈕就可以開(kāi)始寫(xiě)Hello, World!了,而在Unix下,你需要一些控制臺(tái)操作的基本知識(shí)。有人也許認(rèn)為Unix的環(huán)境更簡(jiǎn)潔,但習(xí)慣的力量是很大的,大家都很熟悉Windows的基本操作,而為了學(xué)習(xí)C語(yǔ)言去專(zhuān)門(mén)裝一個(gè)Unix系統(tǒng),似乎有點(diǎn)不劃算。

      對(duì)于一個(gè)只懂得Windows基本操作、連DOS是什么都不知道的新手而言,盡快做一些有趣而有意義的事情才是最重要的。用C語(yǔ)言寫(xiě)一個(gè)小程序遠(yuǎn)比學(xué)習(xí)ls、cat等命令有趣,況且我們要專(zhuān)注于C語(yǔ)言本身,就不得不暫時(shí)忽略一些東西,比如編譯鏈接的過(guò)程、Makefile的寫(xiě)法等等等等。

      所以我建議初學(xué)者應(yīng)該以Visual C++ 6.0(不是VisualC++.NET)或者Dev C++作為主要的學(xué)習(xí)環(huán)境,而且千萬(wàn)不要在IDE的使用技巧上過(guò)多糾纏,因?yàn)榻窈竽阋欢ㄒD(zhuǎn)向Unix環(huán)境的。Visual C++ 6.0使用很方便,調(diào)試也很直觀,但其默認(rèn)的編譯器對(duì)C標(biāo)準(zhǔn)的支持并不好,而Dev C++使用gcc編譯器,對(duì)C99的標(biāo)準(zhǔn)都支持良好。使用順帶提一下,很多大學(xué)的C語(yǔ)言課程還在使用Turbo C 2.0作為實(shí)驗(yàn)環(huán)境,這是相當(dāng)不可取的,原因其一是TC 2.0對(duì)C標(biāo)準(zhǔn)幾乎沒(méi)有支持,其二是TC 2.0編譯得到的程序是16位的,這對(duì)今后理解32位的程序會(huì)造成極大的困擾(當(dāng)然,用djgpp之類(lèi)的東西可以使TC 2.0編譯出32位程序,不過(guò)那過(guò)于復(fù)雜了)。

      等你學(xué)完一本C語(yǔ)言的教材,你一定要轉(zhuǎn)向Unix平臺(tái)繼續(xù)學(xué)習(xí),幾乎所有的C語(yǔ)言高級(jí)教程都是基于Unix平臺(tái)的(比如《C專(zhuān)家編程》)。轉(zhuǎn)變的過(guò)程是痛苦的,你需要面對(duì)的是各種紛繁復(fù)雜的命令,完全不同于Windows平臺(tái)的思考方式,但是這種痛苦是值得的。Unix與C是共生的,Unix的思考方式和習(xí)慣更加符合C語(yǔ)言的思考方式和習(xí)慣。在Unix下,你可以找到無(wú)數(shù)優(yōu)秀的源代碼供你盡情閱讀,你可以方便地查看某個(gè)庫(kù)函數(shù)的聯(lián)機(jī)手冊(cè),還可以看到最優(yōu)秀的代碼風(fēng)格

      歸結(jié)起來(lái)就是一句話:初學(xué)C語(yǔ)言,建議使用Windows系統(tǒng)和集成開(kāi)發(fā)環(huán)境,在準(zhǔn)備向“高手”方向努力時(shí),請(qǐng)先轉(zhuǎn)向Unix平臺(tái)。

      三、萬(wàn)事俱備,你就是東風(fēng)

      書(shū)已選定,環(huán)境配置完成,正所謂萬(wàn)事俱備,只欠你自己的努力了。請(qǐng)從書(shū)的前言開(kāi)始,仔細(xì)地閱讀手頭的教材,很多人看書(shū)喜歡直接從第一章開(kāi)始看,這是錯(cuò)誤的做法。前言是作者對(duì)整本書(shū)的大體介紹,作者一般會(huì)告訴你需要什么基礎(chǔ)才能夠順利閱讀本書(shū),這可以幫助你檢驗(yàn)自己的基礎(chǔ)知識(shí)是否已經(jīng)具備??赐昵把?,還要瀏覽一下目錄,了解一下書(shū)的整體結(jié)構(gòu),順便給自己安排一下學(xué)習(xí)計(jì)劃。

      學(xué)習(xí)C語(yǔ)言,必需注意每一個(gè)細(xì)節(jié),書(shū)上的例子代碼一定要自己親自敲一遍,編譯執(zhí)行輸出都跟書(shū)上說(shuō)的一致才能算是學(xué)完了一個(gè)例子,如果不一致,就要仔細(xì)找原因。出了書(shū)本上有的例子,自己還要“創(chuàng)造”一些例子,比如學(xué)習(xí)運(yùn)算符優(yōu)先級(jí)的時(shí)候,可以寫(xiě)幾個(gè)相同的表達(dá)式,在不同的位置加上括號(hào),看看有哪些不同的行為,比如*p++和(*p)++,又比如a = b == c、(a = b)== c和a =(b == c)等等。自己抄的書(shū)上的例子以及改造之后的例子,還有自己“創(chuàng)造”的例子,都應(yīng)該仔細(xì)地歸類(lèi)保存,并且要在源代碼中寫(xiě)上簡(jiǎn)短的注釋?zhuān)U述這個(gè)例子的意圖。

      例子之后就是習(xí)題了,我建議初學(xué)者把所有的習(xí)題都獨(dú)立做一遍,然后對(duì)照答案的代碼,看看自己的代碼有那些不足,再試著修改自己的代碼。很多人不重視習(xí)題,這是極大的錯(cuò)誤,因?yàn)樽髡咄ǔ?huì)在習(xí)題中說(shuō)明一些重要的道理,而不是單純地檢驗(yàn)前面的知識(shí)。

      也許你認(rèn)為這樣學(xué)習(xí)太慢,其實(shí)不然。學(xué)得細(xì)致就不用走回頭路,等你學(xué)到后面才發(fā)現(xiàn)自己前面沒(méi)搞清楚,那才是真的得不償失。一般說(shuō)來(lái),整本書(shū)讀完,你應(yīng)該完成數(shù)千行乃至上萬(wàn)行的代碼,無(wú)論是原封不動(dòng)照抄書(shū)上的,還是自己心血來(lái)潮寫(xiě)就的,都是今后繼續(xù)學(xué)習(xí)的一筆財(cái)富。以我自己舉例,閱讀《Windows核心編程》時(shí)(我只閱讀了3/4的內(nèi)容),除了抄書(shū)上的代碼,還自己寫(xiě)了很多例子,一共有5574行(用unix下的wc工具統(tǒng)計(jì)),時(shí)隔多日,我早已記不清Windows的系統(tǒng)編程了,但只要花幾分鐘翻出以前的代碼看看,便會(huì)重新了然于胸。所謂好記性不如爛筆頭,就是這個(gè)道理。

      仔細(xì)讀書(shū)、認(rèn)真抄寫(xiě)源代碼、獨(dú)立完成習(xí)題外加更進(jìn)一步的實(shí)驗(yàn),最后將所有的代碼留下,成為自己的經(jīng)驗(yàn)和財(cái)富,絕對(duì)的辛苦,也絕對(duì)的事半功倍。當(dāng)然,這種方式只適合學(xué)習(xí)需要精通的技術(shù),如果不是學(xué)習(xí)C語(yǔ)言,你還要具體情況具體分析。

      寫(xiě)到最后,還有非常非常重要的一點(diǎn)沒(méi)有提及──代碼風(fēng)格,從最開(kāi)始學(xué)習(xí)就必須強(qiáng)迫自己模仿最優(yōu)秀的代碼風(fēng)格。

      第五篇:十大C語(yǔ)言經(jīng)典程序

      計(jì)算機(jī)二級(jí)C語(yǔ)言程序必背

      1、/*輸出9*9口訣。共9行9列,i控制行,j控制列。*/ #include main(){int i,j,result;for(i=1;i<10;i++)

      { for(j=1;j<10;j++)

      {

      result=i*j;

      printf(“%d*%d=%-3d”,i,j,result);/*-3d表示左對(duì)齊,占3位*/

      }

      printf(“n”);/*每一行后換行*/

      } }

      2、/*古典問(wèn)題:有一對(duì)兔子,從出生后第3個(gè)月起每個(gè)月都生一對(duì)兔子,小兔子長(zhǎng)到第三個(gè)月后每個(gè)月又生一對(duì)兔子,假如兔子都不死,問(wèn)每個(gè)月的兔子總數(shù)為多少? 兔子的規(guī)律為數(shù)列1,1,2,3,5,8,13,21....*/ main(){ long f1,f2;int i;f1=f2=1;for(i=1;i<=20;i++)

      { printf(“%12ld %12ld”,f1,f2);

      if(i%2==0)printf(“n”);/*控制輸出,每行四個(gè)*/

      f1=f1+f2;/*前兩個(gè)月加起來(lái)賦值給第三個(gè)月*/

      f2=f1+f2;/*前兩個(gè)月加起來(lái)賦值給第三個(gè)月*/

      } }

      3、/*判斷101-200之間有多少個(gè)素?cái)?shù),并輸出所有素?cái)?shù)及素?cái)?shù)的個(gè)數(shù)。

      程序分析:判斷素?cái)?shù)的方法:用一個(gè)數(shù)分別去除2到sqrt(這個(gè)數(shù)),如果能被整除,則表明此數(shù)不是素?cái)?shù),反之是素?cái)?shù)。*/ #include “math.h” main(){

      int m,i,k,h=0,leap=1;

      printf(“n”);

      for(m=101;m<=200;m++)

      { k=sqrt(m+1);

      for(i=2;i<=k;i++)

      if(m%i==0)

      {leap=0;break;}

      if(leap)

      /*內(nèi)循環(huán)結(jié)束后,leap依然為1,則m是素?cái)?shù)*/

      {printf(“%-4d”,m);h++;

      if(h%10==0)

      printf(“n”);

      }

      leap=1;

      }

      printf(“nThe total is %d”,h);}

      4、/*一個(gè)數(shù)如果恰好等于它的因子之和,這個(gè)數(shù)就稱(chēng)為“完數(shù)”。例如6=1+2+3.編程

      找出1000以?xún)?nèi)的所有完數(shù)。*/ main(){

      static int k[10];

      int i,j,n,s;

      for(j=2;j<1000;j++)

      {

      n=-1;

      s=j;

      for(i=1;i

      {if((j%i)==0)

      { n++;

      s=s-i;

      k[n]=i;

      }

      }

      if(s==0)

      {printf(“%d is a wanshu: ”,j);

      for(i=0;i

      printf(“%d,”,k[i]);

      printf(“%dn”,k[n]);

      } } }

      5、/*下面程序的功能是將一個(gè)4×4的數(shù)組進(jìn)行逆時(shí)針旋轉(zhuǎn)90度后輸出,要求原始數(shù)組的數(shù)據(jù)隨機(jī)輸入,新數(shù)組以4行4列的方式輸出,請(qǐng)?jiān)诳瞻滋幫晟瞥绦颉?/ main(){ int a[4][4],b[4][4],i,j;

      /*a存放原始數(shù)組數(shù)據(jù),b存放旋轉(zhuǎn)后數(shù)組數(shù)據(jù)*/

      printf(“input 16 numbers: ”);/*輸入一組數(shù)據(jù)存放到數(shù)組a中,然后旋轉(zhuǎn)存放到b數(shù)組中*/

      for(i=0;i<4;i++)

      for(j=0;j<4;j++)

      { scanf(“%d”,&a[i][j]);

      b[3-j][i]=a[i][j];

      }

      printf(“array b:n”);

      for(i=0;i<4;i++)

      { for(j=0;j<4;j++)

      printf(“%6d”,b[i][j]);

      printf(“n”);

      } }

      6、/*編程打印直角楊輝三角形*/ main(){int i,j,a[6][6];for(i=0;i<=5;i++)

      {a[i][i]=1;a[i][0]=1;} for(i=2;i<=5;i++)

      for(j=1;j<=i-1;j++)

      a[i][j]=a[i-1][j]+a[i-1][j-1];for(i=0;i<=5;i++)

      {for(j=0;j<=i;j++)

      printf(“%4d”,a[i][j]);

      printf(“n”);} }

      7、/*通過(guò)鍵盤(pán)輸入3名學(xué)生4門(mén)課程的成績(jī),分別求每個(gè)學(xué)生的平均成績(jī)和每門(mén)課程的平均成績(jī)。

      要求所有成績(jī)均放入一個(gè)4行5列的數(shù)組中,輸入時(shí)同一人數(shù)據(jù)間用空格,不同人用回車(chē)

      其中最后一列和最后一行分別放每個(gè)學(xué)生的平均成績(jī)、每門(mén)課程的平均成績(jī)及班級(jí)總平均分。*/ #include #include main(){ float a[4][5],sum1,sum2;

      int i,j;

      for(i=0;i<3;i++)

      for(j=0;j<4;j++)

      scanf(“%f”,&a[i][j]);

      for(i=0;i<3;i++)

      { sum1=0;

      for(j=0;j<4;j++)

      sum1+=a[i][j];

      a[i][4]=sum1/4;

      }

      for(j=0;j<5;j++)

      { sum2=0;

      for(i=0;i<3;i++)

      sum2+=a[i][j];

      a[3][j]=sum2/3;

      }

      for(i=0;i<4;i++)

      { for(j=0;j<5;j++)

      printf(“%6.2f”,a[i][j]);

      printf(“n”);

      } }

      8、/*完善程序,實(shí)現(xiàn)將輸入的字符串反序輸出,如輸入windows 輸出swodniw。*/ #include main(){ char c[200],c1;

      int i,j,k;

      printf(“Enter a string: ”);

      scanf(“%s”,c);

      k=strlen(c);

      for(i=0,j=k-1;i

      { c1=c[i];c[i]=c[j];c[j]=c1;}

      printf(“%sn”,c);

      }

      指針?lè)ǎ?/p>

      void invert(char *s){int i,j,k;char t;k=strlen(s);for(i=0,j=k-1;i

      { printf(“cannot open the filen”);

      exit(0);

      }

      printf(“input str:n”);gets(str);

      printf(“n%s”,str);

      fprintf(fp,“%s”,str);invert(str);

      printf(“n%s”,str);fprintf(fp,“n%s”,str);

      fclose(fp);}

      9、/*下面程序的功能是從字符數(shù)組s中刪除存放在c中的字符。*/ #include main(){ char s[80],c;

      int j,k;

      printf(“nEnter a string: ”);

      gets(s);

      printf(“nEnter a character: ”);

      c=getchar();

      for(j=k=0;s[j]!= '