c語言基本知識
1. c語言基礎知識
•1 C語言程序的結構認識
用一個簡單的c程序例子,介紹c語言的基本構成、格式、以及良好的書寫風格,使讀者對c語言有個初步認識。
例1 計算兩個整數之和的c程序:
1、任何一個c語言程序都必須包括以下格式:
這是c語言的基本結構,任何一個程序都必須包含這個機構。括弧內可以不寫任何內容,那麼該程序將不執行任何結果。
2、main()----在c語言中稱之為「主函數」,一個c程序有且僅有一個main函數,任何一個c程序總是從main函數開始執行,main函數後面的一對圓括弧不能省略。
3、被大括弧{ }括起來的內容稱為main函數的函數體,這部分內容就是計算機要執行的內容。
4、在{ }裡面每一句話後面都有一個分號(;),在c語言中,我們把以一個分號結尾的一句話叫做一個c語言的語句,分號是語句結束的標志。
5、printf(「a=%d,b=%d,sum=%d\n」,a,b,sum); ----通過執行這條c語言系統提供給我們直接使用的屏幕輸出函數,用戶即可看到運行結果,本程序運行後,將在顯示器上顯示如下結果:
6、#include
7、程序中以 /*開頭並且以*/結尾的部分表示程序的注釋部分,注釋可以添加在程序的任何位置,為了提高程序的可讀性而添加,但計算機在執行主函數內容時完全忽略注釋部分,換而言之就是計算機當做注釋部分不存在於主函數中。
• 2 C程序的生成過程
C程序是先由源文件經編譯生成目標文件,然後經過連接生成可執行文件,如圖所示。
編譯過程
• 3 標識符
在編寫程序時,必須為函數、變數等命名,這個名字稱為標識符。C語言中標識符的命名規則如下:
標識符不能與程序中具有特殊意義的關鍵字相同,不能與用戶編制的函數名、C語言庫函數相同,在程序中各種標識符盡量不要重復,以便區分。選擇變數名和其他標識符時,應注意做到 「見名知義」。
標識符分為如下三類:
1、關鍵字
3、用戶標識符
用戶根據需要自己定義的標識符稱為用戶標識符。無論如何自定義標識符,都必須符合標識符的三條命名規則。
• 4 常量
在程序運行中,其值不能被改變的量稱為常量。常量有5種類型:整型常量、實型常量、字元常量、字元串常量和符號常量。
(一)數值轉換
數字的四種表現形式:
在計算機內部,數字均以二進制形式表示和存放,用戶輸入的普通十進制數字都要被計算機轉換成二進制才能在計算機內部存儲,同樣計算機的運算結果也為二進制,一般要將其轉換成十進制數再輸出給用戶閱讀,這種轉換通常由計算機自動實現。
(1)將十進制轉換二進制、八進制和十六進制
除法:將十進制數除以2,記錄余數,得到的商繼續除以2,直到商為0,然後將各次相處所得的余數從後往前逆序排列,所得余數數字序列就是該十進制數對應的二進制數。八進制和十六進制轉換方法同上。
例:十進制數13轉換成二進制數的值為1101,轉換八進制為015,轉換成十六進制為D.
(2)將二進制、八進制和十六進制轉換成十進制
乘積求和:將二進制的每一位從低位到高位(右邊為低位,左邊為高位)分別乘以20,21,22。。。。,然後將這些積求和。
例如:(1101)2=(13)10 (317)8=(207)10 (23E)16=(574)10
(3)二進制與八進制、十六進制數之間的相互轉換
(二)整型常量
整型常量有3種形式:十進制整型常量、八進制整型常量和十六進制整型常量。
書寫方式如下:
(三)實型常量
實型常量有兩種表示形式:小數形式和指數形式。
(四)字元常量
(2)由一對單引號括起來,以反斜杠\開頭,後跟若干數字或者字母,比如『\n』,其中「\「是轉義的意思,後面跟不同的字元表示不同的意思,這類字元常量叫轉義字元。具體如圖所示 。
(五)字元串常量
C語言中,以雙引號括起來的,由若干個字元組成的序列即為字元串常量。
例:「ni hao」 「happy」等等。
(六)符號常量
例:計算圓的面積的c程序。
說明:
• 5 變數
變數就是其值可以改變的量。變數要有變數名,在內存中占據一定的存儲單元,存儲單元里存放的是該變數的值。不同類型的變數其存儲單元的大小不同,變數在使用前必須定義。
(一)整型變數
不同的編譯系統對上述四種整型數據所佔用的位數和數值范圍有不同的規定。
類型說明符
說明:
(二)實型變數
C語言中,實型變數分為單精度類型( float )和雙精度類型( double )兩種。如:
在vc中,float 型數據在內存中佔4個位元組(32位),double型數據佔8個位元組。單精度實數提供7位有效數字,雙精度實數提供15~16位有效數字。實型常量不分float型和double型,一個實型常量可以賦給一個float 型或double型變數,但變數根據其類型截取實型常量中相應的有效數字。
注意:實型變數只能存放實型值,不能用整型變數存放實型值,也不能用實型變數存放整型值。
(三)字元變數
字元變數用來存放字元常量,定義形式:
char 變數名;
其中關鍵字char定義字元型數據類型,佔用一個位元組的存儲單元。
將一個字元賦給一個字元變數時,並不是將該字元本身存儲到內存中,而是將該字元對應的ASCII碼存儲到內存單元中。例如,字元 ′A′ 的ASCII碼為65,在內存中的存放形式如下:01000001
由於在內存中字元以ASCII碼存放,它的存儲形式和整數的存儲形式類似,所以C語言中字元型數據與整型數據之間可以通用,一個字元能用字元的形式輸出,也能用整數的形式輸出,字元數據也能進行算術運算,此時相當於對它們的ASCII碼進行運算。
•6 類型的自動轉換和強制轉換
當同一表達式中各數據的類型不同時,編譯程序會自動把它們轉變成同一類型後再進行計算。轉換優先順序為:
即左邊級別「低「的類型向右邊轉換。具體地說,若在表達式中優先順序最高的數據是double型,則此表達式中的其他數據均被轉換成double型,且計算結果也是double型;若在表達式中優先順序最高的數據是float型,則此表達式中的其他數據均被轉換成float型,且計算結果也是float型。
在做賦值運算時,若賦值號左右兩邊的類型不同,則賦值號右邊的類型向左邊的類型轉換;當右邊的類型高於左邊的類型時,則在轉換時對右邊的數據進行截取。
除自動轉換外,還有強制轉換,表示形式是:
討論:當a值賦值為3.4,b值賦值為2.7,(int)(a+b)和(int)a+b的值分別為多少?
• 7 C運算符認識
C語言的運算符范圍很廣,可分為以下幾類:
1、算術運算符:用於各類數值運算。包括加(+)、減(-)、乘(*)、除(/)、求余(%)、自增(++)、自減(--)共七種。
2、賦值運算符:用於賦值運算,分為簡單賦值(=)、復合算術賦值(+=,-=,*=,/=,%=)和復合位運算賦值(&=,|=,^=,>>=,<<=)三類共十一種。
3、逗號運算符:用於把若干表達式組合成一個表達式(,)。
4、關系運算符:用於比較運算。包括大於(>)、小於(<)、等於(==)、 大於等於(>=)、小於等於(<=)和不等於(!=)六種。
5、邏輯運算符:用於邏輯運算。包括與(&&)、或(||)、非(!)三種。
6、條件運算符:這是一個三目運算符,用於條件求值(?:)。
7、位操作運算符:參與運算的量,按二進制位進行運算。包括位與(&)、位或(|)、位非(~)、位異或(^)、左移(<<)、右移(>>)六種。
8、指針運算符:用於取內容(*)和取地址(&)二種運算。
9.、求位元組數運算符:用於計算數據類型所佔的位元組數(sizeof)。
10、特殊運算符:有括弧(),下標[],成員(→,.)等幾種。
另外,按參與運算的對象個數,C語言運算符可分為:單目運算符 (如 !)、雙目運算符 (如+,- )和三目運算符 (如 ? : )。
一、 基本的算術運算符
(1)+(加法運算符或正值運算符,如2+5)。
(2)-(減法運算符或負值運算符,如4-2)。
(3)*(乘法運算符,如3*8)。
(4)/(除法運算符,如11/5)。
/的運算分為兩種情況:
(5)%(模運算符或稱求余運算符,%兩側均應為整型數據,如9%7的值為2)。
需要說明的是:當運算對象為負數時,所得結果隨編譯器不同而不同,在vc中,結果的符號與被除數相同,比如:13%-2值為1,而-15%2值為-1.
二、 算術表達式和運算符的優先順序與結合性
算術表達式是用算術運算符和括弧將運算量(也稱操作數)連接起來的、符合C語言語法規則的表達式。運算對象包括函數、常量和變數等。
在計算機語言中,算術表達式的求值規律與數學中的四則運算的規律類似,其運算規則和要求如下。
(1)在算術表達式中,可使用多層圓括弧,但括弧必須配對。運算時從內層圓括弧開始,由內向外依次計算各表達式的值。
(2)在算術表達式中,對於不同優先順序的運算符,可按運算符的優先順序由高到低進行運算,若表達式中運算符的優先順序相同,則按運算符的結合方向進行運算。
(3)如果一個運算符兩側的操作數類型不同,則先利用自動轉換或強制類型轉換,使兩者具有相同類型,然後進行運算。
三、 自增自減運算符
作用:使變數的值增1或減1。
(1)只有變數才能用自增運算符 (++)和自減運算符(--),而常量或表達式不能用,如10++或(x+y)++都是不合法的。
(2)++和--的結合方向是「自右向左「,如 -i++ ,i的左邊是負號運算符,右邊是自增運算符,負號運算和自增運算都是 「自右向左「結合的,相當於 -(i++)。
在循環語句中常用到自增(減)運算符,在指針中也常用到該運算符,考生要弄清楚「i++」和「++i」及「i--」和「--i」的區別,特別弄清楚表達式的值和變數的值。
例:變數n的初始值為2,則
例:有以下程序
程序運行後的輸出結果是_____
A.12 35 13 35 14 36 B. 12 35 14 35 14 36
C.12 35 14 36 14 36 D. 12 35 14 35 14 35
解析:自增自減運算需要注意區分表達式的值和變數的值,表達式運算後,變數會自增自減運算,表達式和變數變化如下:
•9 賦值運算符與賦值表達式
一、賦值運算符與賦值表達式
賦值符號 「=「就是賦值運算符,作用是將一個數據賦給一個變數或將一個變數的值賦給另一個變數,由賦值運算符組成的表達式稱為賦值表達式。一般形式為:
變數名 = 表達式
在程序中可以多次給一個變數賦值,每賦一次值,與它相應的存儲單元中的數據就被更新一次,內存中當前的數據就是最後一次所賦值的那個數據。
說明:
a、如果賦值號兩邊的運算對象類型不一致,系統會自動進行類型轉換,轉換的規則:將賦值號右邊表達式的值的類型轉換成賦值號左邊變數的類型,
b、 可以將復製表達式的值再賦值給變數,形成連續賦值。
二、復合的賦值運算符
在賦值運算符之前加上其他運算符可以構成復合賦值運算符。其中與算術運算有關的復合運算符是:+=,-=,*=,/=,%= 。
兩個符號之間不可以有空格,復合賦值運算符的優先順序與賦值運算符的相同。表達式n+=1等價於n=n+1,作用是取變數n中的值增1再賦給變數n,其他復合的賦值運算符的運算規則依次類推。
如求表達a+=a-=a*a 的值,其中a的初值為12 。
步驟:
•10 逗號運算符和逗號表達式
在c語言中,逗號除了作為分隔符,還可以用作一種運算符----逗號運算符,用逗號運算符將幾個表達式連接起來,例如a=b+c,a=b*c等稱為逗號表達式。
一般形式為:
表達式1 ,表達式2 ,表達式3 , …,表達式n
例:x=2,y=3,z=4
逗號表達式具有從左至右的結合性,即先求解表達式1,然後依次求解表達式2,直到表達式n的值。表達式n的值就是整個逗號表達式的值。上述的逗號表達式的值就是表達式z=4的值4.需要注意的是,逗號運算符是所有運算符中級別最低的。
例:有如下程序段:
程序顯示結果為:y=6,x=6
討論:將y=(x=a+b),(b+c);改為y=((x=a+b),b+c) 的程序結果?
• 11 關系運算符和關系表達式
一、 C語言中的邏輯值
C語言中的邏輯值只有兩個:真(true)和假(flase)。用非零代表真,用零代表假。因此,對於任意一個表達式,如果它的值為零,就代表一個假值,如果它的值為非零,就代表一個真值。只要值不是零,不管是正數,負數,整數,實數,都代表一個真值。例如-5的邏輯值為真。
二、 關系運算符及其優先次序
C語言提供了6種關系運算符,見表
由兩個字元組成的運算符之間不可以加空格,關系運算符都是雙目運算符。
(1)結合性:自左向右。
(2)優先次序:前4種關系運算符( <,<=,>=,> )的優先順序別相同,後兩種 (==,!=)優先順序相同,且前4種優先順序高於後兩種;關系運算符的優先順序低於算術運算符,高於賦值運算符。
三、 關系表達式
由關系運算符連接而成的表達式稱為關系表達式。
例如:a>b,(a=7)>(b=10)等都是合法的關系表達式。
關系表達式的結果有兩個:0和1,。其中0表示假,1表示真。如果關系表達式成立,則值為真,如果關系表達式不成立,則值為假。
例:變數a的值為5,b的值為6,那麼關系表達式a>b的值為假,即為0.而關系表達式
(a=13)>(b=10)的值為真,即為1。
當關系運算符兩邊值的類型不一致時,若一邊是整型,一邊是實型,系統將自動把整型數轉化為實型數,然後再進行比較。
•12 邏輯運算符和邏輯表達式
一、 邏輯運算符及其優先順序
C語言提供了3種邏輯運算符,如下表。
二、 邏輯表達式
「&&」和「||」的運算對象有兩個,故它們都是雙目運算符,而!的運算對象只有一個,因此它是單目運算符。邏輯運算舉例如下:
(1)a&&b: 當&&兩邊都為「真」時,表達式a&&b的值才是真。
值得注意的是:在數學中,關系式0
(2)a||b: 當||兩邊有一個為「真」時,表達式a||b的值就是真。
(3)!a: 表示取反,如果a為真,則!A為假,反之亦然。例如!-5的值就為0.
在C語言中,由&&或||組成的邏輯表達式,在某些特定情況下會產生「短路「現象。
(1)x && y && z ,只有當x為真(非0)時,才需要判別y的值;只有x和y都為真時,才需要去判別z的值;只要x為假就不必判別y和z,整個表達式的值為0。口訣:「一假必假」。
例:(!5==1)&&(++i==0) (!5==1)表達式的值為0,所以計算機運行中就跳過(++i==0)此表達式,(!5==1)&&(++i==0)表達式的值為0.
(2)x||y||z ,只要x的值為真(非零),就不必判別y和z的值,整個表達式的值為1,只有x的值為假,才需要判別y的值,只有x和y的值同時為假才需要判別z的值,口訣:「一真必真」。
•13 位運算
一、 位運算符
在計算機中,數據都是以二進制數形式存放的,位運算就是指對存儲單元中二進制位的運算。C語言提供6種位運算符。
二、位運算
位運算符 & |~<< >> ∧ 按優先順序從高到低排列的順序是:
位運算符中求反運算「~「優先順序最高,而左移和右移相同,居於第二,接下來的順序是按位與 「&「、按位異或 「∧「和按位或 「|「。順序為~ << >> & ∧ | 。
例1左移運算符「<<」是雙目運算符。其功能把「<< 」左邊的運算數的各二進位全部左移若干位,由「<<」右邊的數指定移動的位數,高位丟棄,低位補0。
例 2右移運算符「>>」是雙目運算符。其功能是把「>> 」左邊的運算數的各二進位全部右移若干位,「>>」右邊的數指定移動的位數。
應該說明的是,對於有符號數,在右移時,符號位將隨同移動。當為正數時,最高位補0,而為負數時,符號位為1,最高位是補0或是補1 取決於編譯系統的規定。
例 3 設二進制數a是00101101 ,若通過異或運算a∧b 使a的高4位取反,低4位不變,則二進制數b是。
解析:異或運算常用來使特定位翻轉,只要使需翻轉的位與1進行異或操作就可以了,因為原數中值為1的位與1進行異或運算得0 ,原數中值為0的位與1進行異或運算結果得1。而與0進行異或的位將保持原值。異或運算還可用來交換兩個值,不用臨時變數。
所以本題的答案為: 11110000 。
2. 學c語言需要什麼基礎知識
c語言入門基礎知識點有: 1、c語言的命名;2、變數及賦值;3、基本數據類型;4、格式化輸出語句;5、強制類型轉換;6、常量;7、自動類型轉換。
C語言是一種通用的、面向過程式的計算機程序設計語言。
3. c語言基礎知識必背是什麼
c語言基礎知識必背有c語言的命名、變數及賦值、基本數據類型、格式化輸出語句、強制類型轉換、常量、自動類型轉換等。
如C語言程序的結構認識:任何一個c語言程序都必須包括以下格式:main() { }。這是c語言的基本結構,任何一個程序都必須包含這個結構。括弧內可以不寫任何內容,那麼該程序將不執行任何結果。
main()----在c語言中稱之為「主函數」,一個c程序有且僅有一個main函數,任何一個c程序總是從main函數開始執行,main函數後面的一對圓括弧不能省略。被大括弧{ }括起來的內容稱為main函數的函數體,這部分內容就是計算機要執行的內容。
在{ }裡面每一句話後面都有一個分號(;),在c語言中,我們把以一個分號結尾的一句話叫做一個c語言的語句,分號是語句結束的標志。
printf(「a=%d,b=%d,sum=%d 」,a,b,sum); ----通過執行這條c語言系統提供給我們直接使用的屏幕輸出函數,用戶即可看到運行結果,本程序運行後,將在顯示器上顯示如下結果:a=20,b=15,sum=35。
C程序的生成過程
C程序是先由源文件經編譯生成目標文件,然後經過連接生成可執行文件。源程序的擴展名為 .c ,目標程序的擴展名為 .obj , 可執行程序的擴展名為 .exe 。
4. 計算機c語言基礎知識
計算機c語言的特性
C語言是世界上最流行、使用最廣泛的高級程序設計語言之一。在操作系統和系統使用程序以及需要對硬體進行操作的場合,用C語言明顯優於其它高級語言,許多大型應用軟體都是用C語言編寫的。C語言的主要特性有以下幾種:
1、C是高級語言:它把高級語言的基本結構和語句與低級語言的實用性結合起來。
2、C是結構式語言:結構式語言的顯著特點是代碼及數據的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。
3、C語言功能齊全:具有各種各樣的數據類型,並引入了指針概念,可使程序效率更高。而且計算功能、邏輯判斷功能也比較強大,可以實現決策目的的游戲。
4、C語言適用范圍大:適合於多種操作系統,如Windows、DOS、UNIX等等;也適用於多種機型。
5、C語言應用指針:可以直接進行靠近硬體的操作,但是C的指針操作不做保護,也給它帶來了很多不安全的因素。C++在這方面做了改進,在保留了指針操作的同時又增強了安全性。
6、C語言創始人D.M.Ritchie6、C語言文件由數據序列組成:可以構成二進制文件或文本文件常用的C語言IDE有Microsoft Visual C++,Dev-C++,Code::Blocks,Borland C++,Watcom C++,Borland C++ Builder,GNU DJGPP C++,Lccwin32 C Compiler 3.1,High C,Turbo C,C-Free,win-tc,xcode等。
計算機c語言的語法結構
1.順序結構
順序結構的程序設計是最簡單的,只要按照解決問題的順序寫出相應的語句就行,它的執行順序是自上而下,依次執行。順序結構可以獨立使用構成一個簡單的完整程序,常見的輸入、計算,輸出三步曲的程序就是順序結構。
2.選擇結構
選擇結構的執行是依據一定的條件選擇執行路徑,而不是嚴格按照語句出現的物理順序。選擇結構的程序設計方法的關鍵在於構造合適的分支條件和分析程序流程,根據不同的程序流程選擇適當的選擇語句。
3.循環結構
循環結構可以減少源程序重復書寫的工作量,用來描述重復執行某段演算法的問題,這是程序設計中最能發揮計算機特長的程序結構,C語言中提供四種循環,即goto循環、while循環、do while循環和for循環。
4.模塊化程序結構
C語言的模塊化程序結構用函數來實現,即將復雜的C程序分為若干模塊,每個模塊都編寫成一個C函數,然後通過主函數調用函數及函數調用函數來實現一大型問題的C程序編寫,因此常說:C程序=主函數+子函數。因此,對函數的定義、調用、值的返回等中要尤其注重理解和應用,並通過上機調試加以鞏固。
計算機c語言基礎知識
【知識點1】C程序
C語言程序結構有三種: 順序結構 , 循環結構(三個循環結構), 選擇結構(if 和 switch)
【知識點2】main函數
每個C語言程序中main 函數是有且只有一個。讀程序都要從main()入口, 然後從最上面順序往下讀(碰到循環做循環,碰到選擇做選擇)。
【知識點3】存儲形式
計算機的數據在電腦中是以二進制的形式保存。最低的存儲單元是bit(位),位是由為 0 或者1構成。 byte 是指位元組, 一個位元組 = 八個位。數據存放的位置就是它的地址。
【知識點4】注釋
是對程序的說明,可出現在程序中任意合適的地方,注釋從「/*」開始到最近一個「*/」結束,其間任何內容都不會被計算機執行,注釋不可以嵌套。
【知識點5】書寫格式
每條語句的後面必須有一個分號,分號是語句的一部分。一行內可寫多條語句,一個語句可寫在多行上。
【知識點6】標識符
合法的用戶標識符考查:
合法的要求是由字母,數字,下劃線組成。有其它元素就錯了。
並且第一個必須為字母或則是下劃線。第一個為數字就錯了。
C語言標識符分如下3類
(1)關鍵字。它們在程序中有固定的含義,不能另作他用。如int、for、switch等。
(2)預定義標識符。預先定義並具有特定含義的標識符。如define、include等。
(3)用戶標識符。用戶根據需要定義的標識符,符合命名規則且不與關鍵字相同。
關鍵字不可以作為用戶標識符號。main define scanf printf 都不是關鍵字。迷惑你的地方If 是可以做為用戶標識符。因為If 中的'第一個字母大寫了,所以不是關鍵字。
【知識點7】實型數據
實型數據的合法形式:小數形式和指數形式。掌握判定指數形式合法性。
2.333e-1 就是合法的,且數據是2.333×10-1。
考試口訣:e 前e 後必有數,e 後必為整數。
【知識點8】字元
字元數據的合法形式::
'1' 是字元佔一個位元組,"1"是字元串占兩個位元組(含有一個結束符號)。
'0' 的ASCII 數值表示為48,'a' 的ASCII 數值是97,'A'的ASCII 數值是65。
字元型和整數是近親:
char a = 65 ;
printf(「%c」, a); 得到的輸出結果:a
printf(「%d」, a); 得到的輸出結果:65
一般考試表示單個字元錯誤的形式:'65' "1"
字元是可以進行算術運算的,記住: '0'-0=48
大寫字母和小寫字母轉換的方法: 'A'+32='a' 相互之間一般是相差32。
【知識點9】整型數據
整型一般是兩個位元組, 字元型是一個位元組,雙精度一般是4 個位元組:
考試時候一般會說,在16 位編譯系統,或者是32 位系統。碰到這種情況,不要去管,
一樣做題。掌握整型一般是兩個位元組, 字元型是一個位元組,雙精度一般是4 個位元組就可以了。
【知識點10】轉義字元
轉義字元的考查:
在程序中 int a = 0x6d,是把一個十六進制的數給變數a 注意這里的0x 必須存在。
在程序中 int a = 06d, 是一個八進制的形式。
在轉義字元中, 』x6d』 才是合法的,0 不能寫,並且x 是小寫。
『141』 是合法的, 0 是不能寫的。
『108』是非法的,因為不可以出現8。
【知識點11】算術運算
算術運算符一共有+、—、*、/、%這五個。%符號兩邊要求是整數。不是整數就錯了。
三種取整丟小數的情況:不是四捨五入是舍掉小數部分。
1、int a =1.6;
2、(int)a;
3、1/2; 3/2;
【知識點12】強制類型轉換
將一個運算對象轉換成指定類型,格式為(類型名)表達式
一定是 (int)a 不是 int(a),注意類型上一定有括弧的。
注意(int)(a+b) 和(int)a+b 的區別。前是把a+b 轉型,後是把a 轉型再加b。
【知識點13】賦值
是表達式就一定有數值。
賦值表達式:表達式數值是最左邊的數值,a=b=5;該表達式為5,常量不可以賦值。
復合賦值運算符:注意:a*=m+2 是 a=a*(m+2)
自加、自減表達式:假設a=5,++a(表達式的值為6), a++(表達式的值為5);
j=a++;等價於j=a;a=a+1; 而j=++a;等價於a=a+1;j=a;。
考試口訣:++在前先加後用,++在後先用後加。
【知識點14】逗號運算
逗號表達式:優先順序別最低; 表達式的數值逗號最右邊的那個表達式的數值。
(2,3,4)的表達式的數值就是4。
【知識點15】數制轉換
一定要記住二進制 如何轉換成十進制。
八進制是沒有8 的,逢8 進1,018 的數值是非法的。
【知識點16】位運算
會有一到二題考試題目。
C語言提供6種位運算符:按位求反~,按位左移<<,按位右移>>,按位與&,按位異或|,按位或^。
總的處理方法:幾乎所有的位運算的題目都要按這個流程來處理(先把十進制變成二進制再變成十進制)。
異或運算的規則:0異或1得到1,0異或0得到0,1異或1得到0。可記為「相同為0,不同為1」。
在沒有捨去數據的時候,<<左移一位表示乘以2;>>右移一位表示除以2。
5. c語言基礎知識必背是什麼
c語言基礎知識必背如下:
1、變數名稱必須以字母或下劃線開始,而不能用數字。在實際程序中,使用最多的是字母,而下劃線開始的變數名稱則是專門用於系統的。
2、C語言是一門面向過程、抽象的通用編程語言,在系統的底層開發中得到了廣泛的應用。
3、C語言中是用非0表示邏輯真的,用0表示邏輯假的。
4、C語言是一種高效的編程語言,它只會生成很少的計算機語言,而且不需要任何的運行環境的支持。
5、表達式的數值只能為1(表示為真),或0(表示假)。
6. c語言基礎知識必背什麼
c語言基礎必背知識如下:
1、C語言程序結構有三種:順序結構,循環結構(三個循環結構),選擇結構(if 和 switch)。
2、計算機的數據在電腦中是以二進制的形式保存。最低的存儲單元是bit(位),位是由為 0 或者1構成。 byte 是指位元組, 一個位元組 = 八個位。數據存放的位置就是它的地址。
3、合法的要求是由字母,數字,下劃線組成。有其它元素就錯了。
4、大寫字母和小寫字母轉換的方法: A+32=a 相互之間一般是相差32。
5、賦值表達式:表達式數值是最左邊的數值,a=b=5,該表達式為5,常量不可以賦值。
7. 學習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語言中,是沒有辦法直接定義子字元串數據類型的,需使用數組來定義所要的字元串,形式如下: