最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

C語言快速入門有它就夠了!

2023-03-23 18:55 作者:C編程大神  | 我要投稿

C語言一經(jīng)出現(xiàn)就以其功能豐富、表達(dá)能力強(qiáng)、靈活方便、應(yīng)用面廣等特點(diǎn)迅速在全世界普及和推廣。C語言不但執(zhí)行效率高而且可移植性好,可以用來開發(fā)應(yīng)用軟件、驅(qū)動(dòng)、操作系統(tǒng)等。C語言也是其它眾多高級(jí)語言的鼻祖語言,所以說學(xué)習(xí)C語言是進(jìn)入編程世界的必修課。


注意:在最新的C標(biāo)準(zhǔn)中,main函數(shù)前的類型為int而不是void

簡(jiǎn)單來說,一個(gè)C程序就是由若干頭文件和函數(shù)組成。

#include <stdio.h>就是一條預(yù)處理命令, 它的作用是通知C語言編譯系統(tǒng)在對(duì)C程序進(jìn)行正式編譯之前需做一些預(yù)處理工作。

函數(shù)就是實(shí)現(xiàn)代碼邏輯的一個(gè)小的單元。

一個(gè)C程序有且只有一個(gè)主函數(shù),即main函數(shù)。

注:在最新的C標(biāo)準(zhǔn)中,main函數(shù)前的類型為int而不是void

簡(jiǎn)單來說,一個(gè)C程序就是由若干頭文件和函數(shù)組成。

#include <stdio.h>就是一條預(yù)處理命令, 它的作用是通知C語言編譯系統(tǒng)在對(duì)C程序進(jìn)行正式編譯之前需做一些預(yù)處理工作。

函數(shù)就是實(shí)現(xiàn)代碼邏輯的一個(gè)小的單元。

一個(gè)C程序有且只有一個(gè)主函數(shù),即main函數(shù)。


注意:在定義中不允許連續(xù)賦值,如int a=b=c=5;是不合法的。

變量的賦值分為兩種方式:

C語言中,數(shù)據(jù)類型可分為:

最常用的整型, 實(shí)型與字符型(char,int,float,double):

整型,實(shí)型,字符型

整型數(shù)據(jù)是指不帶小數(shù)的數(shù)字(int,short int,long int, unsigned int, unsigned short int,unsigned long int):

注:

浮點(diǎn)數(shù)據(jù)是指帶小數(shù)的數(shù)字。

生活中有很多信息適合使用浮點(diǎn)型數(shù)據(jù)來表示,比如:人的體重(單位:公斤)、商品價(jià)格、圓周率等等。

因?yàn)榫鹊牟煌址譃?種(float,double,long double):

浮點(diǎn)型

注:**C語言中不存在字符串變量,字符串只能存在字符數(shù)組中,**這個(gè)后面會(huì)講。

格式化輸出語句,也可以說是占位輸出,是將各種類型的數(shù)據(jù)按照格式化后的類型及指定的位置從計(jì)算機(jī)上顯示。

其格式為:printf("輸出格式符",輸出項(xiàng));

c語言常用格式化符

當(dāng)輸出語句中包含普通字符時(shí),可以采用一下格式:

注意:格式符的個(gè)數(shù)要與變量、常量或者表達(dá)式的個(gè)數(shù)一一對(duì)應(yīng)

在程序執(zhí)行過程中,值不發(fā)生改變的量稱為常量。

mtianyan: C語言的常量可以分為直接常量和符號(hào)常量。

在C語言中,可以用一個(gè)標(biāo)識(shí)符來表示一個(gè)常量,稱之為符號(hào)常量。符號(hào)常量在使用之前必須先定義,其一般形式為:

符號(hào)常量不可以被改變。

數(shù)據(jù)類型存在自動(dòng)轉(zhuǎn)換的情況. 自動(dòng)轉(zhuǎn)換發(fā)生在不同數(shù)據(jù)類型運(yùn)算時(shí),在編譯的時(shí)候自動(dòng)完成。

自動(dòng)轉(zhuǎn)換

char類型數(shù)據(jù)轉(zhuǎn)換為int類型數(shù)據(jù)遵循ASCII碼中的對(duì)應(yīng)值.

注:

字節(jié)小的可以向字節(jié)大的自動(dòng)轉(zhuǎn)換,但字節(jié)大的不能向字節(jié)小的自動(dòng)轉(zhuǎn)換

char可以轉(zhuǎn)換為int,int可以轉(zhuǎn)換為double,char可以轉(zhuǎn)換為double。但是不可以反向。

強(qiáng)制類型轉(zhuǎn)換是通過定義類型轉(zhuǎn)換運(yùn)算來實(shí)現(xiàn)的。其一般形式為:

其作用是把表達(dá)式的運(yùn)算結(jié)果強(qiáng)制轉(zhuǎn)換成類型說明符所表示的類型

在使用強(qiáng)制轉(zhuǎn)換時(shí)應(yīng)注意以下問題:

C語言中運(yùn)算符:

c語言基本運(yùn)算符:

基本算術(shù)運(yùn)算符

除法運(yùn)算中注意:

如果相除的兩個(gè)數(shù)都是整數(shù)的話,則結(jié)果也為整數(shù),小數(shù)部分省略,如8/3 = 2;

而兩數(shù)中有一個(gè)為小數(shù),結(jié)果則為小數(shù),如:9.0/2 = 4.500000。

mtianyan: 取余運(yùn)算中注意:

該運(yùn)算只適合用兩個(gè)整數(shù)進(jìn)行取余運(yùn)算,如:10%3 = 1;

mtianyan: notes: 而10.0%3則是錯(cuò)誤的;運(yùn)算后的符號(hào)取決于被模數(shù)的符號(hào),如(-10)%3 = -1;而10%(-3) = 1;

mtianyan: %%表示這里就是一個(gè)%符.

注:C語言中沒有乘方這個(gè)運(yùn)算符,也不能用×, ÷等算術(shù)符號(hào)。

它們經(jīng)常使用在循環(huán)中。自增自減運(yùn)算符有以下幾種形式:

自增自減

C語言中賦值運(yùn)算符分為簡(jiǎn)單賦值運(yùn)算符和復(fù)合賦值運(yùn)算符

簡(jiǎn)單賦值運(yùn)算符=號(hào)了,下面講一下復(fù)合賦值運(yùn)算符:

復(fù)合賦值運(yùn)算符就是在簡(jiǎn)單賦值符=之前加上其它運(yùn)算符構(gòu)成.

例如+=、-=、*=、/=、%=

分析:定義整型變量a并賦值為3,a += 5;這個(gè)算式就等價(jià)于a = a+5; 將變量a和5相加之后再賦值給a

注意:復(fù)合運(yùn)算符中運(yùn)算符和等號(hào)之間是不存在空格的。

C語言中的關(guān)系運(yùn)算符:

關(guān)系運(yùn)算符

關(guān)系表達(dá)式的值是真和假,在C程序用整數(shù)1和0表示。

注意:>=, <=, ==, !=這種符號(hào)之間不能存在空格。

C語言中的邏輯運(yùn)算符:

邏輯運(yùn)算符

邏輯運(yùn)算的值也是有兩種分別為真和假,C語言中用整型的1和0來表示。其求值規(guī)則如下:

參與運(yùn)算的兩個(gè)變量都為真時(shí),結(jié)果才為真,否則為假。例如:5>=5 && 7>5 ,運(yùn)算結(jié)果為真;

參與運(yùn)算的兩個(gè)變量只要有一個(gè)為真,結(jié)果就為真。 兩個(gè)量都為假時(shí),結(jié)果為假。例如:5>=5||5>8,運(yùn)算結(jié)果為真;

參與運(yùn)算的變量為真時(shí),結(jié)果為假;參與運(yùn)算量為假時(shí),結(jié)果為真。例如:!(5>8),運(yùn)算結(jié)果為真。

C語言中的三目運(yùn)算符:?:,其格式為:

執(zhí)行過程是:

先判斷表達(dá)式1的值是否為真,如果是真的話執(zhí)行表達(dá)式2;如果是假的話執(zhí)行表達(dá)式3。

各種運(yùn)算符號(hào)的順序:

運(yùn)算符的優(yōu)先級(jí)

優(yōu)先級(jí)別為1的優(yōu)先級(jí)最高,優(yōu)先級(jí)別為10的優(yōu)先級(jí)別最低。

C語言中的分支結(jié)構(gòu)語句中的if條件語句。

簡(jiǎn)單if語句的基本結(jié)構(gòu)如下:

其語義是:如果表達(dá)式的值為真,則執(zhí)行其后的語句,否則不執(zhí)行該語句。

注意:if()后面沒有分號(hào),直接寫{}

簡(jiǎn)單的if-else語句的基本結(jié)構(gòu):

語義是: 如果表達(dá)式的值為真,則執(zhí)行代碼塊1,否則執(zhí)行代碼塊2。

注意:

if()后面沒有分號(hào),直接寫{},else后面也沒有分號(hào),直接寫{}

C語言中多重if-else語句,其結(jié)構(gòu)如下:

語義是:依次判斷表達(dá)式的值,當(dāng)出現(xiàn)某個(gè)值為真時(shí),則執(zhí)行對(duì)應(yīng)代碼塊,否則執(zhí)行代碼塊n。

注意:當(dāng)某一條件為真的時(shí)候,則不會(huì)向下執(zhí)行該分支結(jié)構(gòu)的其他語句。

C語言中嵌套if-else語句。嵌套if-else語句的意思,就是在if-else語句中,再寫if-else語句。其一般形式為:

反復(fù)不停的執(zhí)行某個(gè)動(dòng)作就是江湖人稱的循環(huán) 。

C語言中有三種循環(huán)結(jié)構(gòu),先看一下C語言while循環(huán)的結(jié)構(gòu)

其中表達(dá)式表示循環(huán)條件,執(zhí)行代碼塊為循環(huán)體。

while語句的語義是:計(jì)算表達(dá)式的值,當(dāng)值為真(非0)時(shí), 執(zhí)行循環(huán)體代碼塊。

while語句中的表達(dá)式一般是關(guān)系表達(dá)或邏輯表達(dá)式,當(dāng)表達(dá)式的值為假時(shí)不執(zhí)行循環(huán)體,反之則循環(huán)體一直執(zhí)行。

一定要記著在循環(huán)體中改變循環(huán)變量的值,否則會(huì)出現(xiàn)死循環(huán)(無休止的執(zhí)行)。

循環(huán)體如果包括有一個(gè)以上的語句,則必須用{}括起來,組成復(fù)合語句。

C語言中的do-while循環(huán),一般形式如下:

do-while

do-while循環(huán)語句的語義是:

它先執(zhí)行循環(huán)中的執(zhí)行代碼塊,然后再判斷while中表達(dá)式是否為真,如果為真則繼續(xù)循環(huán);如果為假,則終止循環(huán)。因此,do-while循環(huán)至少要執(zhí)行一次循環(huán)語句。

注意:mtianyan: 使用do-while結(jié)構(gòu)語句時(shí),while括號(hào)后必須有分號(hào)。

c語言中for循環(huán)一般形式:

它的執(zhí)行過程如下:

注意:for循環(huán)中的兩個(gè)分號(hào)一定要寫

在for循環(huán)中:

使用for語句應(yīng)該注意:

while, do-while和for三種循環(huán)在具體的使用場(chǎng)合上是有區(qū)別的,如下:

但是從本質(zhì)上講,while,do-while和for循環(huán)之間是可以相互轉(zhuǎn)換的。

多重循環(huán)就是在循環(huán)結(jié)構(gòu)的循環(huán)體中又出現(xiàn)循環(huán)結(jié)構(gòu)。

在實(shí)際開發(fā)中一般最多用到三層重循環(huán)。

因?yàn)檠h(huán)層數(shù)越多,運(yùn)行時(shí)間越長(zhǎng),程序越復(fù)雜,所以一般用2-3層多重循環(huán)就可以了。另外不同循環(huán)之間也是可以嵌套的。

多重循環(huán)在執(zhí)行的過程中,外層循環(huán)為父循環(huán),內(nèi)層循環(huán)為子循環(huán),

**父循環(huán)一次,子循環(huán)需要全部執(zhí)行完,直到跳出循環(huán)。**父循環(huán)再進(jìn)入下一次,子循環(huán)繼續(xù)執(zhí)行…

循環(huán)多重

mtianyan: 打印三角形星星堆

那么循環(huán)5次的時(shí)候,需要中斷不繼續(xù)訓(xùn)練。在C語言中,可以使用break語句進(jìn)行該操作.

使用break語句時(shí)注意以下幾點(diǎn):

那么循環(huán)5次的時(shí)候,需要中斷后繼續(xù)訓(xùn)練。在C語言中,可以使用continue語句進(jìn)行該操作

continue語句的作用是結(jié)束本次循環(huán)開始執(zhí)行下一次循環(huán)。

break語句與continue語句的區(qū)別是:

break是跳出當(dāng)前整個(gè)循環(huán),continue是結(jié)束本次循環(huán)開始下一次循環(huán)。

switch語句結(jié)構(gòu)如下:

mtianyan: switch語句時(shí)還應(yīng)注意以下幾點(diǎn):

正確: continue只能用在循環(huán)體內(nèi)

C語言中也有這樣的語句,就是goto語句,goto語句是一種無條件分支語句.

goto 語句的使用格式為:

C語言提供了大量的庫(kù)函數(shù): 比如stdio.h提供輸出函數(shù)

自定義函數(shù)的一般形式:

注意:

我們需要用到自定義的函數(shù)的時(shí)候,就得調(diào)用它,那么在調(diào)用的時(shí)候就稱之為函數(shù)調(diào)用。

在C語言中,函數(shù)調(diào)用的一般形式為:

注意:

在函數(shù)中不需要函數(shù)參數(shù)的稱之為無參函數(shù),在函數(shù)中需要函數(shù)參數(shù)的稱之為有參函數(shù)。

有參和無參函數(shù)的一般形式如下:

函數(shù)

有參函數(shù)和無參函數(shù)的唯一區(qū)別在于:函數(shù) () 中多了一個(gè)參數(shù)列表。

函數(shù)的參數(shù)分為形參和實(shí)參兩種。

就類似小明,說了的話而不實(shí)際行動(dòng);

就如小剛能實(shí)際行動(dòng)起來。

函數(shù)的形參和實(shí)參具有以下特點(diǎn):

函數(shù)調(diào)用結(jié)束返回主調(diào)函數(shù)后則不能再使用該形參變量。

無論實(shí)參是何種類型的量,在進(jìn)行函數(shù)調(diào)用時(shí),它們都必須具有確定的值,以便把這些值傳送給形參。因此應(yīng)預(yù)先用賦值等辦法使實(shí)參獲得確定值。

函數(shù)的返回值是指函數(shù)被調(diào)用之后,執(zhí)行函數(shù)體中的程序段所取得的并返回給主調(diào)函數(shù)的值。

函數(shù)的返回值要注意以下幾點(diǎn):

return語句的一般形式為:

notes: 如果兩者不一致,則以函數(shù)返回類型為準(zhǔn),自動(dòng)進(jìn)行類型轉(zhuǎn)換。

注意:

void 函數(shù)中可以有執(zhí)行代碼塊,但是不能有返回值.

mtianyan: void函數(shù)中如果有return語句,該語句**只能起到結(jié)束函數(shù)運(yùn)行的功能。**其格式為: return;

遞歸就是一個(gè)函數(shù)在它的函數(shù)體內(nèi)調(diào)用它自身。

執(zhí)行遞歸函數(shù)將反復(fù)調(diào)用其自身,每調(diào)用一次就進(jìn)入新的一層。

注意遞歸函數(shù)必須有結(jié)束條件

5的階乘這個(gè)例子進(jìn)行一下剖析,看一看他的運(yùn)算過程:

遞歸

程序在計(jì)算5的階乘的時(shí)候,先執(zhí)行遞推,當(dāng)n=1或者n=0的時(shí)候返回1,再回推將計(jì)算并返回。由此可以看出遞歸函數(shù)必須有結(jié)束條件。

遞歸函數(shù)特點(diǎn):

一句話總結(jié)遞歸:自我調(diào)用且有完成狀態(tài)

任務(wù) 猴子第一天摘下N個(gè)桃子,當(dāng)時(shí)就吃了一半,還不過癮,就又多吃了一個(gè)。第二天又將剩下的桃子吃掉一半,又多吃了一個(gè)。以后每天都吃前一天剩下的一半零一個(gè)。到第10天在想吃的時(shí)候就剩一個(gè)桃子了,問第一天共摘下來多少個(gè)桃子?并反向打印每天所剩桃子數(shù)。

有5個(gè)人坐在一起,問第5個(gè)人多少歲?他說比第4個(gè)人大2歲。問第4個(gè)人歲數(shù),他說比第3個(gè)人大2歲。問第3個(gè)人,又說比第2人大兩歲。問第2個(gè)人,說比第1個(gè)人大兩歲。最后 問第1個(gè)人,他說是10歲。請(qǐng)問第5個(gè)人多大?

程序分析: 利用遞歸的方法,遞歸分為回推和遞推兩個(gè)階段。要想知道第5個(gè)人歲數(shù),需知道第4人的歲數(shù),依次類推,推到第1人(10歲),再往回推。

C語言中的變量,按作用域范圍可分為兩種,即局部變量和全局變量。

mtianyan: C語言根據(jù)變量的生存周期來劃分,可以分為靜態(tài)存儲(chǔ)方式和動(dòng)態(tài)存儲(chǔ)方式。

C語言中存儲(chǔ)類別又分為四類:

1、用關(guān)鍵字auto定義的變量為自動(dòng)變量,auto可以省略,auto不寫則隱含定為“自動(dòng)存儲(chǔ)類別”,屬于動(dòng)態(tài)存儲(chǔ)方式。如:

2、用static修飾的為靜態(tài)變量,如果定義在函數(shù)內(nèi)部的,稱之為靜態(tài)局部變量;如果定義在函數(shù)外部,稱之為靜態(tài)外部變量。如下為靜態(tài)局部變量:

注意:靜態(tài)局部變量屬于靜態(tài)存儲(chǔ)類別,在靜態(tài)存儲(chǔ)區(qū)內(nèi)分配存儲(chǔ)單元,在程序整個(gè)運(yùn)行期間都不釋放;靜態(tài)局部變量在編譯時(shí)賦初值,即只賦初值一次;如果在定義局部變量時(shí)不賦初值的話,則對(duì)靜態(tài)局部變量來說,編譯時(shí)自動(dòng)賦初值0(對(duì)數(shù)值型變量)或空字符(對(duì)字符變量)。

3、為了提高效率,C語言允許將局部變量得值放在CPU中的寄存器中,這種變量叫“寄存器變量”,用關(guān)鍵字register作聲明。例如:

mtianyan: 注意:只有局部自動(dòng)變量和形式參數(shù)可以作為寄存器變量;一個(gè)計(jì)算機(jī)系統(tǒng)中的寄存器數(shù)目有限,不能定義任意多個(gè)寄存器變量;局部靜態(tài)變量不能定義為寄存器變量。

4、用extern聲明的的變量是外部變量,外部變量的意義是某函數(shù)可以調(diào)用在該函數(shù)之后定義的變量。如:

靜態(tài)變量只賦值一次

hello.c

test.c

對(duì)于hello.c來說,直接引入了test.c文件。那么就可以調(diào)用testc中的static方法say() 而對(duì)于test.c并沒有引入,可以通過聲明來調(diào)用另一個(gè)源文件中暴露出來的方法。

###綜合練習(xí)

北京市出租車打車計(jì)費(fèi)規(guī)則如下:

程序中也需要容器,只不過該容器有點(diǎn)特殊,它在程序中是一塊連續(xù)的,大小固定并且里面的數(shù)據(jù)類型一致的內(nèi)存空間,它還有個(gè)好聽的名字叫數(shù)組??梢詫?shù)組理解為大小固定,所放物品為同類的一個(gè)購(gòu)物袋,在該購(gòu) 物袋中的物品是按一定順序放置的。

我們來看一下如何聲明一個(gè)數(shù)組:

數(shù)組只聲明也不行啊,看一下數(shù)組是如何初始化的。說到初始化,C語言中的數(shù)組初始化是有三種形式的,分別是:

我們將數(shù)據(jù)放到數(shù)組中之后又如何獲取數(shù)組中的元素呢?

獲取數(shù)組元素時(shí): 數(shù)組名稱[元素所對(duì)應(yīng)下標(biāo)];

如:初始化一個(gè)數(shù)組 int arr[3] = {1,2,3}; 那么arr[0]就是元素1。

注意:

數(shù)組就可以采用循環(huán)的方式將每個(gè)元素遍歷出來,而不用人為的每次獲取指定某個(gè)位置上的元素,例如我們用for循環(huán)遍歷一個(gè)數(shù)組:

循環(huán)遍歷數(shù)組

注意以下幾點(diǎn):

由于C語言是沒有檢查數(shù)組長(zhǎng)度改變或者數(shù)組越界的這個(gè)機(jī)制,可能會(huì)在編輯器中編譯并通過,但是結(jié)果就不能肯定了,因此還是不要越界或者改變數(shù)組的長(zhǎng)度

c語言獲取數(shù)組長(zhǎng)度

數(shù)組可以由整個(gè)數(shù)組當(dāng)作函數(shù)的參數(shù),也可以由數(shù)組中的某個(gè)元素當(dāng)作函數(shù)的參數(shù):

數(shù)組參數(shù)

數(shù)組元素函數(shù)參數(shù)

數(shù)組作為函數(shù)參數(shù)時(shí)注意以下事項(xiàng):

以升序排序?yàn)槔芭菖判虻乃枷耄合噜徳貎蓛杀容^,將較大的數(shù)字放在后面,直到將所有數(shù)字全部排序。就像小學(xué)排隊(duì)時(shí)按大小個(gè)排一樣,將一個(gè)同學(xué)拉出來和后面的比比,如果高就放后面,一直把隊(duì)伍排好。

當(dāng)我們購(gòu)物之后,拎著購(gòu)物袋回到家,會(huì)一一檢查購(gòu)物袋中的物品看是否缺少或者都是想購(gòu)之物。

那么應(yīng)用到程序中,可以使用數(shù)組查找功能,看看是否存在該數(shù)據(jù),如果存在并返回該元素的下標(biāo)。

C語言中,是沒有辦法直接定義字符串?dāng)?shù)據(jù)類型的,但是我們可以使用數(shù)組來定義我們所要的字符串。一般有以下兩種格式:

注意:

常用的字符串函數(shù)如下(strlen,strcmp,strcpy,strcat,atoi):

字符串函數(shù)

使用字符串函數(shù)注意以下事項(xiàng):

多維數(shù)組的定義格式是: 數(shù)據(jù)類型 數(shù)組名稱[常量表達(dá)式1][常量表達(dá)式2]…[常量表達(dá)式n];

定義了一個(gè)名稱為num,數(shù)據(jù)類型為int的二維數(shù)組。其中第一個(gè)[3]表示第一維下標(biāo)的長(zhǎng)度,就像購(gòu)物時(shí)分類存放的購(gòu)物;第二個(gè)[3]表示第二維下標(biāo)的長(zhǎng)度,就像每個(gè)購(gòu)物袋中的元素。

矩陣

多維數(shù)組的初始化與一維數(shù)組的初始化類似也是分兩種:

多維數(shù)組初始化要注意以下事項(xiàng):

二維數(shù)組定義的時(shí)候,可以不指定行的數(shù)量,但是必須指定列的數(shù)量

二維數(shù)組定義的時(shí)候,可以不指定行的數(shù)量,但是必須指定列的數(shù)量。

多維數(shù)組也是存在遍歷的,和一維數(shù)組遍歷一樣,也是需要用到循環(huán)。不一樣的就是多維數(shù)組需要采用嵌套循環(huán)

注意:多維數(shù)組的每一維下標(biāo)均不能越界


C語言快速入門有它就夠了!的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
浦县| 施秉县| 泸溪县| 溧阳市| 牡丹江市| 同德县| 留坝县| 德江县| 沅江市| 厦门市| 滦南县| 萍乡市| 高邑县| 武强县| 报价| 临夏市| 利津县| 宣武区| 保亭| 来凤县| 晋州市| 西和县| 平山县| 安泽县| 裕民县| 湖北省| 青河县| 长丰县| 弥勒县| 阳高县| 定日县| 嘉定区| 庆城县| 陈巴尔虎旗| 昭苏县| 扎赉特旗| 潼关县| 达尔| 万全县| 溆浦县| 夹江县|