A. c語言如何入門
C是一個結構化語言,如譚老爺子所說:它的重點在於演算法和數據結構。C程序的設計首要考慮的是如何通過一個過程,對輸入(或環境條件)進行運算處理得到輸出(或實現過程(事務)控制),而對於C++,首要考慮的是如何構造一個對象模型,讓這個模型能夠契合與之對應的問題域,這樣就可以通過獲取對象的狀態信息得到輸出或實現過程(事務)控制。
所以C與C++的最大區別在於它們的用於解決問題的思想方法不一樣。之所以說C++比C更先進,是因為「 設計這個概念已經被融入到C++之中 」,而就語言本身而言,在C中更多的是演算法的概念。那麼是不是C就不重要了,錯!演算法是程序設計的基礎,好的設計如果沒有好的演算法,一樣不行。而且,「C加上好的設計」也能寫出非常好的東西。
對語言本身而言,C是C++的子集,那麼是什麼樣的一個子集?從上文可以看出, C實現了C++中過程化控制及其它相關功能,而在C++中的C(我稱它為「C+」),相對於原來的C還有所加強,引入了重載、內聯函數、異常處理等等玩藝兒,C++更是拓展了面向對象設計的內容,如類、繼承、虛函數、模板和包容器類等等。
再提高一點,在C++中,數據封裝、類型這些東東已不是什麼新鮮事了,需要考慮的是諸如:對象粒度的選擇、對象介面的設計和繼承、組合與繼承的使用等等問題。
所以相對於C,C++包含了更豐富的「設計」的概念,但C是C++的一個自洽子集,也具有強大的功能,同樣值得學習。
如果想學編程的話,建議還是先學C,因為C是基礎。C主要是培養人的編程思想。如果C學習的好的話,再向C++過渡就很容易了。
B. 怎麼自學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、最高境界是精通,自然是量的積累才會有質地變化。
C. c語言入門教學
樓主,你可以去編程入門網,那裡有挺多知識點的,很多語言都有,很適合初學者,你也可以去CSDN,那裡有很多源代碼提供下載,也有論壇,呵呵,你也不要忽視網路貼吧,知道,貼吧是學習很多課本沒有東西的地方,知道,你需要看解決答案,這樣很有收獲,你也可以去中國編程網,不過,我覺得一樓也是有道理的,看看書掌握知識點,網上我覺得主要還是提高的地方哦……呵呵……關於怎麼學,我是這么過來的,每看一節書,做一節課後習題,其實初學主要還是學習語法和演算法(解決問題的方法),多上機自己寫程序,寫不出來看答案的演算法,自己再寫一邊,關鍵這個階段還是積累為主,基本知識學好了,可以學深入編程,不過你需要有熟悉的語法,可以寫一些小程序:學生成績管理系統等等,就過關了,然後可以學習鏈表,圖像編程,等等高級編程……呵呵……努力一定有回報的……加油吧…
D. c語言入門自學
1、首先需要一本講解c語言基礎知識的書本,按照上面的知識講解一點點的學習c語言;
2、需要在電腦上面安裝c語言編譯軟體,可以選擇vc 6.0++或者Microsoft Visual Studio等軟體;
3、自己編寫一些小程序,熟悉編譯c語言程序的過程,並且檢驗自己學習的成果;
4、試著寫一些稍大型的c語言程序,達到進階目的,比如俄羅斯方塊,貪吃蛇等。
E. c語言學習步驟
這個問題我今天回答第三遍了,關鍵在於代碼練習。
1:不要急,要有耐心學習,不要想著一下能夠寫出什麼樣的大系統來。
2:一些參考書是很有必要的,具體書籍就不必多說了,比如譚浩強的C等,自己可以網路下相關資料。
3:還是不要急,把書籍上的事例代碼敲出來(不是拷貝、粘帖,是你自己一個字母一個字母的敲出來)。
4:運行代碼,使正確的結果能夠出來。
5:修改部分代碼,嘗試運行。最終使修改後的代碼能夠正確運行。
6:寫自己的代碼。
7::以上6步建立在你掌握了一點語法和結構的基礎上。如果你是0基礎,那麼接著看。
8:按書籍上的順序來,先學習語法、結構、變數等,在學習數組、指針、鏈表等知識。
9:不要急,第8步是很重要的基礎。一定不可馬虎放過。
10:進行3--6步練習。繼續學習。
11:可以進行第6步,繼續學習。
12:可以學習下其他書籍,比如《數據結構與演算法》等。
13:編寫代碼,調試。運行,修改、完善、調試、運行、擴大功能、調試、運行.....
14:寫代碼、調試。運行。。。。。
編程需要大量的代碼練習,紙上談兵沒用,一定要動手敲、調試、運行。
以上學到的知識只是C的基礎部分,以後你也可以繼續學習C++、Java等。當然你也可以繼續學習C的高級部分,比如網路、游標庫等(這些學好就是大師級C了)。
走編程之路,光學習語言是不夠的,比如演算法、編譯原理、軟體工程、計算機系統、高數、物理學等都要學習下。
希望對你有幫助
F. 學習c語言需要什麼基礎
一定的英文基礎是必要的。
看書時要多做習題,一題一題的弄明白,要不書也白看
從一開始養成良好的編程習慣,怎麼算好的你看書上的代碼怎麼寫的
關於數學, 初中數學水平可以編程,小學甚至學前班也沒什麼不可以。 另一方面數學博士編程的時候也不會嫌自己數學學的太多了。 需要多少數學這跟你要做的東西很有關系, 也影響到你學習的深入程度, 工作中就影響你的代碼質量。 總的來說數學水平是越高越好, 但並沒有一個門檻, 什麼水平都可以學, 就是質量差一些。
G. 零基礎學習C語言要怎麼開始學習
能接受枯燥學習法的初學者,啃書效果肯定是奏效的,基礎入門書籍吃透一本,可以收獲頗豐。
下面就推薦幾本入門書籍:
1、《C程序設計語言》
推薦理由:全面、系統、准確地講述了C語言的各個特性以及程序設計的基本方法。對於計算機從業人員來說,《C程序設計語言》是一本必讀的程序設計語言方面的參考書。
2、《C primer plus》
推薦理由:本書全面講述了C語言編程的相關概念和知識。適合希望系統學習C語言的讀者,也適用於精通其他編程語言並希望進一步掌握和鞏固C編程技術的程序員。
3、《C陷阱與缺陷》
推薦理由:結合自己的工作經驗,創作了這本對C程序員具有珍貴價值的經典著作。出發點不是要批判C語言,而是要幫助C程序員繞過編程過程中的陷阱和障礙。分別從詞法分析、語法語義、連接、庫函數、預處理器、可移植性缺陷等幾個方面分析了C編程中可能遇到的問題。
當然對於看書=催眠的小夥伴,其實更建議大家不妨先找一套系統且靠譜的視頻教程入手進行學習,或者更簡單的報個專業的培訓班。
H. 學習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語言中,是沒有辦法直接定義子字元串數據類型的,需使用數組來定義所要的字元串,形式如下: