c語言入門學什麼
A. 學c語言該怎麼入門
您好,入門的捷徑只有一條:閱讀一本經典教材。
在這方面,我推薦兩本書:《C語言程序設計-現代方法》和《C primer plus》。經典入門教材足夠友好,足夠詳細,絕對讓你事半功倍。反之如果看一本垃圾書,那才是一看一個坑,最後你還得回頭不停地補坑。
C語言博大精深,光入門肯定不夠,下面我把學習C語言的相關書單奉上:
對於閱讀順序,個人建議如下:
入門:《C語言程序設計-現代方法》、《C primer plus》,不推薦K&B的C語言程序設計,寫的太古板,可以當參考手冊用。
進階:《C和指針》、《C陷阱與缺陷》、《C專家編程》等。
高階:《C標准庫》,順便學習《數據結構》,用C語言將數據結構里的東西全部自己實現一邊。
精通:學無止境,我也不知道什麼是精通!!!
您的採納是我們的動力(⊙▽⊙)
B. 學習c語言需要什麼基礎
C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
由於C語言簡單易學,已經成為學習編程的入門語言之一。在大學一年級,已經安排C語言相關的學習課程。由此可見,C語言的學習並不需要前置課程,可以輕松入門。附件是一本適合初學者入門學習的C語言書籍。其中包括:基本數據類型,運算符與表達式,控制流,函數,指針,數據結構,輸入輸出等基本基本知識的介紹。能夠熟練運用上述的C語言規則,就可以完成C語言入門學習的內容。
當對於C語言入門課程有了一定的了解後,可以對數據結構,系統介面,圖形開發等方面進行更加深入,專門的學習。此時推薦《C Primer Plus》。能夠更好的了解C語言的運行機制。
根據TIOBE在2016年8月的統計結果,當前C語言所佔比例是11.303%,排名第2。雖然較往年相比是歷史最低點,卻依然非常堅挺。可見C語言在軟體開發相關領域的重要地位。學好C語言也可以為其他編程語言的學習打基礎。
C. 編程入門先學什麼
C語言。
編程入門在大雪中常常以C語言作為編程的入門語言, BASIC是初學者通用符號指令代碼的縮寫,是國際上廣泛使用的一種計算機高級語言。所以編程入門可以先從C語言學習開始。
電腦每做的一次動作,一個步驟,都是按照已經用計算機語言編好的程序來執行,程序是計算機要執行的指令的集合,而程序全部都是用所掌握的語言來編寫的。所以人們要控制計算機一定要通過計算機語言向計算機發出命令。
(3)c語言入門學什麼擴展閱讀:
注意事項:
不要死摳語法:初學者最容易犯的錯誤就是抱著一本大書死摳語法,結果語法倒是很熟,程序還是一行都不會寫,學習的積極性也受到很大打擊。學習編程,語法是最不重要的,最重要的是思路。
盡早接觸標准庫:標准庫的概念接觸越早越好,要把使用標准庫作為天經地義的事情,作為編程習慣,能用的地方一定要用。
D. 電腦編程c語言入門概括哪些
1:工欲善其事,必先利其器
這里介紹幾個學習C語言必備的東東:
一個研發環境,例如turbo C 2.0,這個曾占據了DOS時代研發程式的大半個江山。但是現在windows時代,用turbo C有感覺不方面,編輯程式起來很吃力,並且拖放,更沒有函數變數自動感應功能,查詢參考資料也不方便。建議使用Visual C ,這個東西雖然比較大塊頭,但是一旦安裝好了,用起來很方便。
一本學習教程,現在C語言教材多如牛毛,但推薦大家使用《C語言程式設計》譚浩強主編 第二版 清華大學出版社,此書編寫的很適合初學者,並且內容也很精到。
除此以外,現在有很多輔助學習的軟體,畢竟現在是Window時代了,學習軟體多如牛毛,不象我們當初學習,只有讀書做題這么老套。我向大家推薦一個「集成學習環境(C語言)」,里邊的知識點總結和常式講解都很好,更有題庫測試環境,據說有好幾千題,甚至更有一個windows下的trubo C,初學者甚至不用裝其他的編譯器,就能夠練習編程了,很適合初學者。更有一個「C語言學習系統」軟體,但是感覺只是個題庫系統,假如您覺得題做的不夠,不妨也能夠試試。
2:葵花寶典
學習電腦語言最好的方法是什麼?答曰:讀程式。 對真正的成功者來說,不論他的生存條件如何,都不會自我磨滅
沒錯,讀程式是學習C語言入門最快,也是最好的方法。如同我,現在學習新的J#,C#等其他語言,不再是抱著書本逐行啃,而是學習他們的常式。當然,對於沒有學過任何電腦語言的初學者,最好還是先閱讀教程,學習完每一章,都要認真體會這一章的任何概念,然後不放過這一章中提到的任何常式,然後仔細研讀程式,直到每一行都理解了,然後找幾個編程題目,最好是和常式類似的或相同的,自己試圖寫出這段已讀懂的程式,不要以為常式您已讀懂了,您就能夠寫出和他相同的程式,絕對不一定,不相信您就試一試吧,假如寫不出來,也不要著急,回過頭來再繼續研究常式,想想自己為什麼寫不出來,然後再去寫這段程式,反反復復,直到您手到擒來為止,祝賀您,您快入門了。
3:登峰造極
寫程式的最高境界其實就是掌控各種解決問題的手段(數據結構)和解決問題的方法(演算法)。
是不是寫出底層程式就是程式設計高手呢?非也,寫底層程式,無非是掌控了硬體的結構,況且硬體和硬體還不相同,要給一個晶元寫驅動程式,無非就是掌控這塊晶元的各種寄存器及其組合,然後寫值讀值,僅此而已。這但是是熟悉一些io函數罷了。
那麼怎樣才算精通程式設計呢?怎樣才能精通程式設計呢?舉個例子:您面前有10個人,找出一個叫「張三」的人,您該怎麼辦?第一種方法:直接對這10個人問:「誰叫張三」。第2種方法:您挨個去問「您是不是張三?」,直到問到的這個人就是張三。第三種方法:您去挨個問一個人「您認不認識張三,指給我看」。不要小看這個問題,您說當然會選第一種方法,沒錯恭喜您答對了,因為這個方法最快,效率最高,但是在程式設計中找到解決問題的最優方法和您用的手段卻是考驗一個程式員程式設計水平的重要標志,而且是不容易達到的。剛才這個問題類似於數據結構和演算法中的:Map數據結構,窮舉查找和折半查找。所以掌控好數據結構和一些常用演算法,是登峰造極的必然之路。最後給大家推薦嚴尉敏的《數據結構》清華大學出版社,希望每一個想成為程式設計高手的人研讀此書。
總結
1、先照書上的題目寫,題目的設計是有道理的鞏固基礎知識。
2、找數學題,寫個小程序解決,熟悉演算法和基礎函數。
3、自己出題目,小一點的,如自編資源管理器、自編寫字板之類,練習WINDOWS下的編程。
4、結合身邊的事,找個中等課題,或看別人的程序,自已想辦法實現。
5.把教材中的例子,自己仿照著寫一遍,上機運行,看結果.要知道,任何產品都是有例子的,有機結合或仿照。
6.從自己熟悉的事情入手,如成績統計,編制一段程序,完成一個功能.然後再完善。
7.要反復破壞代碼,從破壞中尋找代碼的規律。
8.必須經常反復上機練習。
E. 學習c語言,要學些什麼內容,我感覺我基礎的學完後,不知學什麼了。
c語言是入門基礎,算是中級語言,很多人學完c就開始學c
,c#,java了,這些語言更適合做項目。
如果你就想單學c,那接下來就是c的高級程序設計了,不同平台是不一樣的,windows平台下就得學windows程序設計那本書,講c怎樣調用windoes內核的。unix,linux平台下就得學unix高級編程了。這都是比較深的東西了,很難。
F. 怎麼自學C語言 入門
在開始學習C語言基礎時,要反問自己為什麼學C語言,如何學好C語言。同時要知道什麼是C語言以及C語言的發展。
當對這些知識有了一個概念之後,就正式開始學習C語言了,其中,可能會學到數據類型、運算符、表達式、數組、/函等,這些是為了對C語言的基礎有一個基礎認知,擴展,整合;還會學到指針、聯合體、結構體、枚舉、位運算、預處理、文件等知識點,學這些是為了全面掌握面向過程設計、實練邏輯演算法,拓展思維模式等過程。
學完了這些,還可能會講到VS、VC++、C++、C和TC—認識開發環境和語言的區別。
這里只給大家介紹一個大概,如果有興趣的話,可以和我私聊哦
第二階段:上機實戰訓練
學完了這些理論知識後,就得將學到的知識點全部運用到實踐中去。這樣才能更好學習入門。分享不錯裙的有軟體視頻資料分享
1、C++語言熟練,熟悉C++語法,包括面向對象的概念,模版等
這一階段需要比較艱辛的過程,需要學習很多書,包括《C++ Programming Language》,《Effective C++》,《More Effective C++》,《Thinking in C++》,《C++對象模型》,《C++ 模版》,如果上述書籍已經很熟悉了,本人認為,在學習階段,已經很不錯了。該過程可以在大學完成,需要一到兩年的時間,應為是純理論的東西,只能算熟悉。在該過程中,需要做一些簡單的程序。
2、C++做項目,使用C++做項目,需要比較多的其它庫,比如UI庫,還需要使用一些網路庫等,這個時候,就可以看到C++的博大精深了,此時,光有C++語言知識是不夠的,需要補充一些平台開發的知識,看看開源的C++項目。比如:Windows程序設計,C++網路編程,DirectX游戲開發,如果用C++做了兩個以上的項目,那以及很不錯了。
3、最高境界是精通,自然是量的積累才會有質地變化。
G. 編程入門先學什麼
對於零基礎人員想要編程入門可以分為12步驟。
1、如果你能夠熟練使用Windows的話,你就已經可以開始你的程序生涯了,准備起來吧!
2、首先從C語言開始。有的朋友可能認為C語言太難了,應該從VB開始。雖然,對於一個初學者來說,用一些控制項堆砌成一個小軟體會有一些成就感,但是,基礎才是最重要的!C語言對於數據類型的描敘,遠比VB更全面、明白,而這些正是編程中的根本!
3、學C語言,從數據類型,基本表達式,再到條件語句,循環語句,然後學習函數,再加上一些簡單的數組知識,足矣。到現在為止,你只要理解結構化程序設計的思想也就夠了!
4、有了以上的基礎,就要開始學匯編了。匯編剛開始學的時候很難,那些各種各樣的寄存器,分段的內存地址,很難理解,可是這些知識理解了以後,後面的內容就簡單了,學習8086的那些指令,再加上一些偽操作,還有DOS和BIOS中斷的調用,就可以看懂書上的匯編程序了。到此,你會對計算機有更深一層的理解!
5、有了匯編的基礎,再來學習C語言中的精華部分——指針,可謂是如魚得水了。現在你要對C語言全全面面的學一遍了。
6、學完以上的內容,有必要研究一下數據結構了,線性表,堆棧,隊列,樹,圖,二叉樹,等等。
7、請時刻牢記:浮躁是學習編程的大忌。
8、當然,你還應該學習一些資料庫的知識,以及一些常用的演算法。
9、如果以上的知識你都達到精通的程度後,就可以開始C++++的課程了,找本C++上,然後找一本VC上手的書,再花一個星期的時間學習VC的界面和用法,就可以做一些簡單的應用了!
10、要想學好VC,沒有扎實的C++知識是不行的,以下書籍是VC程序員必須翻得爛熟的:C++Primer;Effective C++;Thinking in C++;More Effective C++;深入淺出MFC。11、深刻理解C++面向對象的思想。
12、編程的時候,出錯是難免的,所以,MSDN一定要熟練使用;好的代碼風格會使手的書,用一個星期的時間大概了解一下C++,然後找一本VC上手的書,再花一個星期的時間學習VC的界面和用法,就可以做一些簡單的應用了!
H. 自學c語言 零基礎 看什麼書 該怎麼學
現在,市面上的
C語言書籍多的數不過來,但是很多不適合你這種初學者使用,作為一名老程序員,我給你推薦幾本我看過認為還不錯的書:
1)
《C語言小白變怪獸》:既適合對計算機一竅不通的小白,也適合有編程基礎的讀者,還可以用來進階。同時,最重要的是,這本書的作者還在不斷地更新這本書,我認為最大的特點是通俗易懂,深入淺出,只要認真看,就一定能看懂,我認為這是C語言入門的首選教材,吐血推薦,經典中的經典!!!
2)
《啊哈C語言》:適合對計算機一竅不通的純小白,有編程基礎的讀者請忽略。這本書語言幽默,生動形象,通俗易懂,給人耳目一新的感覺,但是這本書非常淺顯,並不深入,所以適合純小白入門,找到門以後也就扔了。這本書著重於語言藝術,針對純小白下足了功夫,小學生坐在馬桶上都能學會編程。說實話,我非常欣賞作者的創意和用心,國內像這樣寫書的少之又少,入門的書就應該是這個樣子。
上邊這兩本書是我推薦給你用於C語言入門的,我不建議你使用譚浩強的《C語言程序設計》這本書入門,雖然這本書的知名度很高,因為很多大學把它作為C語言的授課教材,然而,這本書被吐槽最多,不但代碼不標准,而且有很多錯誤,據說可以找出幾十個錯誤,這樣很容易誤導你這種小白。
等你有一定的C語言基礎了,可以看下面的這幾本書,進一步提升你的編程水平:
1)
《C
Primer
Plus》:暢銷
30
余年的C語言入門經典書籍,至今無人能撼動它的地位,它是最符合C語言標準的書籍,作為一名C語言程序員,不收藏一本都覺得自己很水。
2)
《C程序設計語言,The
C
Programming
Language》:C語言創始人丹尼斯·里奇(Dennis
MacAlistair
Ritchie)的著作,和《C
Primer
Plus》並駕齊驅,很難分出伯仲,這兩本書都是一樣的優秀,都是C語言程序員必須收藏的。
3)
《C專家編程》:適合已經具備C語言基礎、想進階的讀者。這貌似是一本吐槽C語言的書,基本上介紹了大多數C語言的坑,有不少精髓,在C語言界久負盛名,進階時一定要看。
4)
《C陷阱與缺陷》:和《C專家編程》類似,也是給C語言挑刺的,闡述了很多容易讓人誤解的語法細節,重在幫助C程序員繞過編程過程中的陷阱和障礙。
5)
《程序員的自我修養
--
鏈接、裝載與庫》:這真是一本深入骨髓的書,讓你徹底明白程序的編譯、鏈接、裝載和運行的全過程,你會從此上天,拉開和別人的差距,看任何問題都有了深度和高度。重點推薦!
所有的這些書我都有電子版,需要可以找我要!
I. 學C語言之前要先學些什麼基礎知識
C語言是高級語言中相當基礎的語言,首先你得有相當的邏輯思維能力,這樣能保證你能了解C語言和其中基礎的演算法。然後你可以了解一下計算機工作原理,它可以讓你對C語言的運行機制能更好的了解,當然如果你只是想過計算機2級的話不了解也可以。額,我能說的有這么多,有什麼不懂得在問吧!
J. 學習C語言需要掌握哪些基本知識
1.入門程序
#include <stdio.h>
int main()
{
printf("Hello World!");
return 0;
}
2.數據類型
數據類型:
1.基本數據類型:
1.1. 整型:int 4個位元組
1.2. 字元型:char 1個位元組
1.3. 實型(浮點型)
1.3.1.單精度型:float 4個位元組
1.3.2.雙精度型:double 8個位元組
%d:十進制整數;
%c:單個字元;
%s:字元串;
%f:6位小數;
- #include <stdio.h>
- int main()
- {
- int age = 18;
- float height = 1.85;
- char unit = 'm';
- printf("小明今年%d歲 ", age);
- printf("小明身高%f%c ", height, unit);
- printf("小明現在在慕課網上學習IT技術 ");
- return 0;
- }
- #include <stdio.h>
- #define POCKETMONEY 10 //定義常量及常量值
- int main()
- {
- printf("小明今天又得到%d元零花錢 ", POCKETMONEY);
- return 0;
- }
表達式1 ? 表達式2 : 表達式3;
- #include <stdio.h>
- int main()
- {
- //定義三位數num,個位數sd,十位數td,百位數hd
- int num, sd, td, hd;
- //循環所有三位數
- for( num=100 ; num<1000 ; num++ )
- {
- //獲取三位數字num百位上的數字
- hd = num/100 ;
- //獲取三位數字num十位上的數字
- td = num/10%10 ;
- //獲取三位數字num個位上的數字
- sd = num%10 ;
- //水仙花數的條件是什麼?
- if(num ==hd*hd*hd+td*td*td+sd*sd*sd )
- {
- printf("水仙花數字:%d ", num);
- }
- }
- return 0;
- }
- #include <stdio.h>
- int main()
- {
- int i, j, k;
- for(i=1; i<5; i++)
- {
- /* 觀察每行的空格數量,補全循環條件 */
- for( j=i ; j<5 ; j++ )
- {
- printf(" "); //輸出空格
- }
- /* 觀察每行*號的數量,補全循環條件 */
- for( k=0 ; k<2*i-1 ; k++ )
- {
- printf("*"); //每行輸出的*號
- }
- printf(" "); //每次循環換行
- }
- return 0;
- }
- #include <stdio.h>
- int main()
- {
- int sum = 0;
- int i;
- for(i=1; i<=10; i++)
- {
- printf("%d ", i);
- if(i==3){
- goto LOOP;//滿足條件就執行goto語句
- }
- }
- //執行goto
- LOOP:printf("結束for循環了...."); //請選擇合適位置添加標識符
- return 0;
- }
形參只有在被調用時才分配內存單元,在調用結束時,即刻釋放所分配的內存單元。因此,形參只有在函數內部有效。函數調用結束返回主調函數後則不能再使用該形參變數。
實參可以是常量、變數、表達式、函數等,無論實參是何種類型的量,在進行函數調用時,它們都必須具有確定的值,以便把這些值傳送給形參。因此應預先用賦值等辦法使實參獲得確定值。
在參數傳遞時,實參和形參在數量上,類型上,順序上應嚴格一致,否則會發生類型不匹配」的錯誤。
- #include <stdio.h>
- int getPeachNumber(int n) //這里要定義n,要不編譯器會報錯!
- {
- int num;
- if(n==10)
- {
- return 1;
- }
- else
- {
- num = (getPeachNumber(n+1)+1)*2;
- printf("第%d天所剩桃子%d個 ", n, num);
- }
- return num;
- }
- int main()
- {
- int num = getPeachNumber(1);
- printf("猴子第一天摘了:%d個桃子。 ", num);
- return 0;
- }
用關鍵字auto定義的變數為自動變數,auto可以省略,auto不寫則隱含定為「自動存儲類別」,屬於動態存儲方式。
用static修飾的為靜態變數,如果定義在函數內部的,稱之為靜態局部變數;如果定義在函數外部,稱之為靜態外部變數。
為了提高效率,C語言允許將局部變數的值放在CPU中的寄存器中,這種變數叫「寄存器變數」,用關鍵字register作聲明。
用extern聲明的的變數是外部變數,外部變數的意義是某函數可以調用在該函數之後定義的變數。
- #includ <stdio.h>
- //來源公眾號:C語言與CPP編程
- int main()
- {
- //定義外部局部變數
- extern int x;
- return 0;
- }
- int x=100;
數據類型 數組名稱[長度n] = {元素1,元素2,元素3,......};
數據類型 數組名稱[] = {元素1,元素2,元素3,......};
數類類型 數組名稱[長度n]; 數組名稱[0] = 元素1;數組名稱[1] = 元素2;...... 注意: 1、數組的下標均以0開始; 2、數組在初始化的時候,數組內元素的個數不能大於聲明的數組長度; 3、如果採用第一種初始化方式,元素個數小於數組的長度時,多餘的數組元素初始化為0; 4、在聲明數組後沒有進行初始化的時候,靜態(static)和外部(extern)類型的數組元素初始化元素為0,自動(auto)類型的數組的元素初始化值不確定。
- #include <stdio.h>
- int main()
- {
- int arr[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
- int i;
- for(i=0;i<10;i++)
- {
- printf("%d ",arr[i]);
- }
- return 0;
- }
數組的冒泡排序
字元串與數組
char 字元串名稱[長度] = "字元串內容";
char 字元串名稱[長度] = {'字元串1','字元串2',....,'字元串n','
2.構造類型:
2.1.枚舉類型
2.2.數組類型
2.3.結構體類型
2.4.共用體類型
3.指針類型:
4.空類型:
3.格式化輸出語句
學好C++才是入職大廠的敲門磚! 當年要是有這課,我的C++也不至於這樣
已失效
4.常量
值不發生改變的量成為常量;
定義字元常量(注意後面沒有;)
5.運算符
5.1.算數運算符:+,-,*,/,%,++,--;前++/--,先運算,再取值.後++/--,先取值,再運算;
5.2.賦值運算符:
5.3.關系運算符;
5.4.邏輯運算符;
5.5.三目運算符:
6.水仙花數計算
輸出所有三位數的水仙花數字
所謂「水仙花數」是指一個三位數,其各位數字立方和等於該數,如:153就是一個水仙花數,153=111+555+333。
7.列印正三角形的*
8.臭名遠揚的goto語句
很少使用
9.形參與實參
形參:形參是在定義函數名和函數體的時候使用的參數,目的是用來接收調用該函數時傳入的參數;
實參:實參是在調用時傳遞該函數的參數。
函數的形參和實參具有以下特點:
10.函數返回值注意
注意:void函數中可以有執行代碼塊,但是不能有返回值,另void函數中如果有return語句,該語句只能起到結束函數運行的功能。其格式為:return;
11.遞歸
12.變數存儲類別 !
12.1.生存周期劃分存儲方式
C語言根據變數的生存周期來劃分,可以分為靜態存儲方式和動態存儲方式。
靜態存儲方式:是指在程序運行期間分配固定的存儲空間的方式。靜態存儲區中存放了在整個程序執行過程中都存在的變數,如全局變數。
動態存儲方式:是指在程序運行期間根據需要進行動態的分配存儲空間的方式。動態存儲區中存放的變數是根據程序運行的需要而建立和釋放的,通常包括:函數形式參數;自動變數;函數調用時的現場保護和返回地址等。
12.2.存儲類型劃分
C語言中存儲類別又分為四類:自動(auto)、靜態(static)、寄存器的(register)和外部的(extern) ;
注意:靜態局部變數屬於靜態存儲類別,在靜態存儲區內分配存儲單元,在程序整個運行期間都不釋放;靜態局部變數在編譯時賦初值,即只賦初值一次;如果在定義局部變數時不賦初值的話,則對靜態局部變數來說,編譯時自動賦初值0(對數值型變數)或空字元(對字元變數)
注意:只有局部自動變數和形式參數可以作為寄存器變數;一個計算機系統中的寄存器數目有限,不能定義任意多個寄存器變數;局部靜態變數不能定義為寄存器變數。
13.內部函數外部函數 !
在C語言中不能被其他源文件調用的函數稱為內部函數 ,內部函數由static關鍵字來定義,因此又被稱為靜態函數,形式為:
static [數據類型] 函數名([參數])
這里的static是對函數的作用范圍的一個限定,限定該函數只能在其所處的源文件中使用,因此在不同文件中出現相同的函數名稱的內部函數是沒有問題的。
在C語言中能被其他源文件調用的函數稱為外部函數 ,外部函數由extern關鍵字來定義,形式為:
extern [數據類型] 函數名([參數])
C語言規定,在沒有指定函數的作用范圍時,系統會默認認為是外部函數,因此當需要定義外部函數時extern也可以省略。 extern可以省略; 14.數組 數組:一塊連續的,大小固定並且裡面的數據類型一致的內存空間, 數組的聲明:數據類型 數組名稱[長度n]
15.數組遍歷
冒泡排序的思想:相鄰元素兩兩比較,將較大的數字放在後面,直到將所有數字全部排序。
在C語言中,是沒有辦法直接定義子字元串數據類型的,需使用數組來定義所要的字元串,形式如下: