C語言該怎樣入門?
理工女來回答一波。可以看看C語言經典教材,譚浩強編著,把裡面的例子都敲一次,然後去搜C語言例項300例,把每道題都做一次,基本的差不多了。最好是用C語言做個程式,學學演算法,做出成品。
我猜你不會使用匿名
二、推薦經典5本C語言書籍
1、《C語言經典程式100例》————>C語言入門經典練習與實戰習題
各位朋友們有需要C語言程式設計、C語言經典程式設計100例實戰、資料結構演算法等等,點選下面的連結就可以學習,有配套學習影片及原始碼。幫助大家提高程式設計實戰水平,比如:考國家二級C語言、計算機相關專業考研C和資料結構的輔導學習資料。祝大家學習開心快樂,天天進步,收穫滿滿,加油我行!!!
C語言經典程式100例既適合對對程式設計一竅不通的小白零基礎,也適合有C語言程式設計基礎的學員,還可以用來進階。講解了100個各種型別的C語言程式設計趣味題的求解過程,在幫助讀者培養程式設計興趣,拓寬C語言程式設計思維,提高C語言程式設計能力,掌握用程式設計解決實際問題的方法與技巧。注重趣味性與實用性,內容涵蓋了C語言程式設計的基礎知識和常用演算法。
大家可以根據自己的需要,選擇適合自己的課堂哦^-^,點選連結就可以學習啦,加油
C語言入門到精通-學習影片教程-騰訊課堂
C語言經典程式設計100例實戰-學習影片教程-騰訊課堂
資料結構演算法(C語言版)-學習影片教程-騰訊課堂
2、《C專家程式設計》
這本書適合已經具備C語言基礎、想進階的讀者。是一本吐槽C語言的書,基本上介紹了大多數C語言的坑,有不少精髓,在C語言界久負盛名,想進階的一定要看。專家級的C程式設計指南展示優秀C程式設計師的程式設計技巧。它適用於已經編寫過C程式的人,以及那些想迅速獲取一些專家觀點和技巧的人。
3、《C陷阱與缺陷》
這本書適合已經具備C語言基礎、想進階的讀者。和《C專家程式設計》類似,也是給C語言挑刺的,闡述了很多容易讓人誤解的語法細節,重在幫助C程式設計師繞過程式設計過程中的陷阱和障礙。分別從詞法分析、語法語義、連線、庫函式、預處理器、可移植性缺陷等幾個方面分析了C程式設計中可能遇到的問題。本書適合有一定經驗的C程式設計師閱讀學習,即便你是C程式設計高手,本書也應該成為你的案頭必備書籍。本書的出發點不是要批判C語言,而是要幫助C程式設計師繞過程式設計過程中的陷阱和障礙。
4、《C和指標》
這本書知名度也很高,大概是出來比較早的原因。另外指標是C語言的重點和難點。本書透過對指標的基礎知識和高階特性的探討,幫助程式設計師把指標的強大功能融入到自己的程式中去。
5、《C Primer Plus》
這本書適合希望系統學習C語言的讀者,也適用於精通其他程式語言並希望進一步掌握和鞏固C程式設計技術的程式設計師。
儘管C語言問世已近50年,但它的魅力仍未減退。C語言繼續吸引著眾多的開發者,他們為了編寫、移植或維護應用程式而必須學習新技能。為了滿足C語言初學者或想提高自身C語言修為的開發人員的需要分享這篇文章,希望對大家的學習和工作能有所幫助。也許你會不贊同其中的某些方法,但我希望你會喜歡其中的一些。
本文不介紹作為一個程式設計師應掌握得語言細節,而是與初學者分享自己的Unix下C語言程式設計學習經驗;也不說明一個合格的程式設計人員應該掌握的計算機知識,比如:作業系統、資料結構與演算法、資料庫等等。
在此之前,對於初學者想快速入門C語言的需求,這裡分享一套最新的入門教程資料,包含有學習筆記、學習路線圖和影片教程,內容清晰詳細,教程講解通俗易懂,非常適合零基礎小白入門學習,大家有需要的話下方外掛就能直接領取!
Unix下C語言的學習路線
一、工具篇
“公欲善其事,必先利其器”。程式設計是一門實踐性很強的工作,在你以後的學習或工作中,你將常常會與以下工具打交道, 下面列出學習C語言程式設計常常用到的軟體和工具。
(一) 作業系統
在Unix或Linux系統中學習C很方便,所以在開始您的學習旅程前請先選擇一個Unix或Linux作業系統。
目前可供個人免費使用的Unix或Linux系統有FreeBSD、CentOS、Ubuntu、SUSE Linux等,如果你以前沒有接觸過Unix或Linux選擇Ubuntu還是比較好,因為它的軟體非常豐富,當然瞭如果你想以後一直在Linux工作學習建議選擇CentOS,而且在安裝包中還提供很多實用的工具,如:gcc, make等。
如果您一直使用Windows,身邊又沒有多餘的機器安裝Unix,則可以使用VMware,透過VMware安裝虛擬系統。
(二) 編譯工具
目前絕大多數Unix或Lnux系統都提供CC或GCC編譯器,最簡單的cc命令格式如下:
cc -o hello hello。c
在Unix shell環境中敲入上面的程式碼會將hello。c程式編譯成可執行檔案hello。
make工具如GNU make、System V make 和 Berkeley make 是用來組織應用程式編譯過程的基本工具,但是每個make工具之間又有所不同。
大部分Unix和Linux程式都是透過執行make來編譯的。make工具會讀取一個包含指令的檔案(這個檔案的名字通常都是makefile或Makefile,不過後文中我們統一稱之為 “makefile”),並執行各種操作來編譯程式。
(三) 除錯工具
最簡單的除錯工具:為你的程式新增列印語句
在你對程式的執行機制有了一定的瞭解後,你可以實用一些工具幫助你進行除錯,當然你得學習一下這些工具得使用,如:dbx,gdb等。
還有一些記憶體工具可以幫你查詢記憶體洩漏或緩衝區溢位等一些問題,如:memwatch、yamd等
(四) 其他工具
1、vi或vim(vim是vi的升級版)
Unix下文字編輯器。主要靠一堆命令來編輯文字檔案,學Unix程式設計最好能熟悉並熟練使用vi編輯器。當然在實際工作中,你可能需要一個整合編碼環境或一個功能強大的圖形化編輯工具。
2、netterm
最著名的網路終端軟體之一,可以使用它方便的連線到主機系統中。
3、Secure shell
一個支援ssh協議得客戶端工具,多數情況下用來連線Linux系統。
二、書籍篇
“書是人類進步得階梯”。學習一門新的知識,當然要選擇幾本適合自己得書籍,
下面介紹一些我自己學習C語言使用過的書籍,如果你需要書籍電子版的話可以領取下方的學習資料包,包含有大量C語言經典書籍資料,內容詳細,還能節省不少學習成本,需要的同學下方自行領取:
1、《C Primer Plus》
推薦理由:適合作為入門書和基本函式查詢得參考資料。本書最新版為第五版,以ANSI C99為標準詳細介紹了C語言。
2、《The C Programming Language》
推薦理由:C語言之父得作品權威性毋庸置疑。雖然書籍出版時間比較老,好像也沒更新,不過仍不失為經典書籍,網上有這本書得英文電子版提供下載。
3、《C專家程式設計》
推薦理由:本書可以幫助有一定經驗的C程式設計師成為C程式設計方面的專家,最關鍵的是本書寓教於樂,讓你充分享受程式設計的樂趣。
4、《C缺陷與陷阱》
推薦理由:書中所揭示的知識能幫助您繞過C語言自身得陷阱和缺陷,減少程式碼中許多常見的Bug。
5、《Unix環境高階程式設計》
推薦理由:既然是Unix環境下C程式設計,就不得不說說Unix程式設計書籍。Stevens先生的《Unix環境高階程式設計》是我竭力推薦的,也是我的案頭必備(如果對網路程式設計有興趣的,可以學習一下Stevens先生的《Unix網路程式設計》兩卷,如果覺得還不過癮,可以再看看《TCP/IP詳解》三卷)。
6、《計算機程式設計藝術》
推薦理由:演算法大師得嘔心瀝血之作。計劃出版五卷書,目前好像已出版3卷。對演算法有興趣得可以研究一下。
三、過程篇
1、學習C語法
語法的學習對於一個具有程式設計底子的同學來說,就很輕鬆了,即使你以前沒有學習過其他程式語言,我相信只需要兩個星期,你也能輕鬆搞定。
需要注意的是,不要太糾纏於語言的細節,比如:運算子優先順序與結合性的問題等。
2、學習C標準庫
ANSI C庫把函式分為不同的組,每個組都具有與之相關的標頭檔案。C語言標準庫相對於其他語言,比如C++,Java來說是非常短小精悍的,但首先應著重對以下庫進行學習:
ctype。h:字元處理
math。h:數學庫
stdio。h:標準I/O庫
stdlib。h:通用工具庫
string。h:字串處理
time。h:時間和日期
如果想了解完整的ANSI C庫,你可以領取下方的學習資料,這份資料知識點分類很詳細,每項知識點都有配套的教程影片,一般會詳細介紹每個函式的使用者和一些注意點,不用花時間和精力去找相關資料學習這一塊內容,有需要的同學都可以免費領取!
3、攻克C的難點
C語言宣告:
C語言的聲明確實讓我覺得恐怖,比較晦澀難懂,而且宣告的形式和使用的形式還類似。比如如下的宣告恐怕就連很多熟悉C多年的程式設計師也不是一眼就能看出來的:
char * const * (*next)();
那麼有沒有一種好的記憶方法或規則來搞清楚呢,好像沒有,如果有的話也不是這樣折磨人了。不過可以看看《C專家程式設計》第三章的內容,或許你會有所收穫。也只能多學多練了,所謂熟能生巧嘛,希望這個問題不要在你的心靈上留下陰影。
陣列與指標:
陣列與指標的關係,在標準中並沒有作很詳細的規定,而且好多C入門的書籍在這個問題上並沒有給出很詳細的說明,所以會給人造成很多誤解。
對於這個問題,你可以參考《C缺陷與陷阱》4。5節和《C專家程式設計》第4、9、10章,相信你這裡面的內容搞透徹,以後就不會再被這個問題搞迷惑。
指標與記憶體:
如果你以後編寫規模較大的程式,你可能發現這個問題可能會是你最大的煩惱,而且可能會是你消耗最多除錯時間的事項。
C版本的問題:
你得特別小心該問題,最好不要在你的程式中混合使用不同版本C的特性,否則會給你帶來很迷惑的問題。如果一定要用,你最好清楚自己在做什麼。
還有一些其他C中的難點和容易錯誤的地方,可以學習過來人的一些經驗。以下是一個學習交流群,裡面都是志同道合學習C語言的人,有小白也有技術大佬,大佬們的經常在群裡分享學習經驗和方法,相信在學習群裡有你需要的大部分問題的解決方法。
4、Unix環境程式設計
學習了以上內容之後,我相信,你就可以進行Unix環境程式設計了。不過你可能需要對作業系統理論有一點點的瞭解,這樣學起來會比較輕鬆一些。
Unix環境程式設計,你應該著重IO和程序兩大塊內容。《Unix環境高階程式設計》中對Unix環境程式設計有著非常詳細且深入的論述,而且書中有大量實用性例子程式,不過可能得花上幾個月的時間,好好啃一啃了。
在紮實掌握以上內容,不代表你的C語言學習之路已經完成,相反,才剛剛開始。以後你需要用學到的知識去解決大量不同實際問題,在不斷得實踐過程中,你會近一步加深對C的理解。有了以上基礎之後,你會發現,在實踐過程中需要的其他知識,你會非常快速的掌握。
四、方法篇
程式設計是一個實踐性很強的工作,最好的學習方法就是邊看書邊除錯程式碼,把書上的例子程式反覆的修改除錯執行,從中得到自己的體會。 在自己的學習或工作中寫的一些測試的程式,要分門別類的儲存下來,在以後的實際工作中不斷的整理,日積月累就是一個很好資源庫了。
有時候,可能會覺得書上的例子作為理解概念時比較通俗易懂,但實用價值不高。所以要提高自己的程式設計能力,你還需要學習別人的程式碼,我認為研究別人的程式碼是提高自己實際程式設計能力最好且最快的途徑,現在網路上有很多價值很高的開原始碼可供你選擇學習。
最後,不得不提到的一個問題就是,千萬不要讓自己淹沒在各種技術細節的海洋中,比如字首++運算子問題,表示式計算優先順序問題等。
學習Unix下C程式設計也好,還是其他程式語言,我們最後的目標都是為了使用計算機解決現實中的問題,所以積累日常工作中常見問題的解決方法,並形成一定的正規化,做一些提煉才是最重要的。說到底,設計和程式設計所做的事情,就是方法論,不管你是無意識還是有意識的,所以一定要注重積累。
五、補充說明
1、對於有人問是否需要一份ANSI C99標準,對於一般開發人員,並沒有必要,且不說其語言晦澀難懂,即使你能從頭到尾學習一遍,我想對你的程式設計也沒有什麼提高。
2、目前多數Unix作業系統所帶的cc、gcc等編譯器好像並不支援C99的所有新特性,不過現在已經有足夠多的新特性普遍可用,因此有理由開始認真考慮在新的開發中採用C99特性,尤其是用在它們使得效率或清晰度本質上發生變化的那些地方(比如以行內函數代替宏替換)。
3、程式設計規範的問題:一般較為正規的軟體公司都會有自己的一套完成的程式設計規範,那麼你遵守就好;如果你是自己學習的話,可以選擇一個較為通用的規範,最好的方法就是看別人是怎麼寫程式碼的。
Windows程式設計師的學習路線
1、當然要熟悉下C語言了 入門可以選用潭浩強的 《C程式設計》(當然最好能讀《C Programming Language》)特別要對其中的指標,結構體等東西一定要搞清楚了(要學好的很好至少要花費一個月時間) 為什麼要從C開始呢:
C好學
大多數的作業系統核心部分是用C開發的
C的效率高且語言成熟
2、在1的基礎上一定要認真學習一下資料結構,對C++程式設計師來說良好的資料結構可以讓一個程式設計師很輕鬆的完成程式設計,糟糕的資料結構可以把一個程式設計師累死。
推薦書籍:嚴蔚敏的《資料結構(C語言版)》或北京大學的一本《資料結構(C++版)》,書中說到的每個主體在我們的程式設計中都會用到,認真學好會對你的以後的C++程式設計有太多的好處。
3、學好了2之後可以學習下《C++ PROGRAM DESIGN》這本書初步介紹了C++和如何使用C++寫出Windows下的程式。
4、在3的基礎之上可以讀一本叫《Windows 95 程式設計》(它的最新版本是Programming Windows)這是一相Windows程式設計的領域的不朽之作,透過2和3的學習你已經成為了一個可以設計Windows程式的程式設計師了。
要想更好的設計Windows程式設計,一定要藉助框架結構,因為框架結構可以加快我們程式設計的速度,雖然使用框架使得我們的程式的效率低了那麼一點,但隨著當今計算機的運算能力的提升,你不會感覺到這一點點的效能損失,反而會因為你使用的框架結構而使你的程式設計加快了速度,使用框架結構才算一個真正的VC++程式設計師。
5、在4的基礎之上可以看一些簡單的MFC程式設計的書比如《Visual C++入門教程》之類的圖書 這可以使你能寫出一些帶有通用控制元件的MFC程式。
6、在5的基礎之上你已經可以很快開發一個軟體了 ,但不瞭解MFC框架執行機制是很不好的,瞭解MFC的執行機制可以使你以後的MFC程式設計工作做的更好。
推薦書籍侯傑的《深入淺出MFC》, 但這本書真的不適合初學者,當你有了一定的開發經驗以後這本書對你來說確實很好,若你很熟悉Windows下的SDK程式設計並打算或已經開始使用MFC進行軟體開發,那這本書對你來說再好不過了。
7、在6的基礎之上你可以看下《VC++技術內幕》這本書,由潘愛民譯的,推薦看原著。
8、在以上基礎之上為了更好的使用VC++這個工具,推薦看一下《VC++6。0寶典》,從開發工具的角度講這本書寫的很好。
9、為了更好的工作可以參考一下VC++程式設計百例。
10、之後你可以看一下《Windows核心程式設計》 這本書很好的講解了Windows的程式設計,對你寫系統程式很有好處的。
11、只瞭解其形不算真正的瞭解,之後還要認真的讀一下Windows的核心原始碼,可以配合《深入解析Windows作業系統》、《Windows核心原理與實現》和《Windows核心情景分析》一起看。
12、其它一些《COM原理》(潘愛民) OpenGL D3D VC的資料庫程式設計、圖形影象、音影片處理和網路都要有所瞭解和會使用。
13、要做到一個好的程式設計師一定要對驅動程式有所瞭解,所以寫一個檔案驅動之類的東西是很有必要的。
14、經過以上各步的學習你完全成為一個優秀的Windows程式設計師了(前提是每一步要學好)。
15、漏了一些重要的東西,編譯原理、彙編及組成原理和設計模式等也是很重要的,只有學好了這些才能明白語言為什麼要這樣組織才能高效。
那今天的分享到這裡就結束了,希望你看完本篇文章會有所收穫,覺得C語言學習起來有些吃力的話可以進入下方的學習群,和同樣在學習C語言的同學一起交流學習效果可能會更好,相互分享學習經驗和方法,共同進步,能提升不少學習效率!
1002
: 簡單多項式求值
題目描述
對使用者輸入的任一整數,輸出以下多項式的值。
y=2x2+x+8
輸入
輸入整數x的值。
輸出
輸出一個整數,即多項式的值。
樣例輸入
Copy
1
樣例輸出 Copy
11
#include
int
main
()
{
int
x
,
y
;
scanf
(
“%d”
,
&
x
);
y
=
2
*
x
*
x
+
x
+
8
;
printf
(
“%d”
,
y
);
return
0
;
}
這裡的 “y” 作為一箇中介,當然也可以去掉這個中介
上一篇:你聽到的最悽慘的叫聲什麼?
下一篇:【數學知識】聚類知識概述