2022C語言知識點(diǎn)大全【詳細(xì)、必備】-創(chuàng)新互聯(lián)

C語言期末必背知識點(diǎn)匯總【全】
    • C語言最重要的知識點(diǎn)(一)《圖片彩版》
    • 《C語言程序設(shè)計(jì)》必背基本知識點(diǎn)(二)
    • C語言程序設(shè)計(jì)復(fù)習(xí)資料(三)

商洛網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),商洛網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為商洛近千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢,請找那個(gè)售后服務(wù)好的商洛做網(wǎng)站的公司定做!C語言最重要的知識點(diǎn)(一)《圖片彩版》

建議收藏!方便下次再看哦!
在這里插入圖片描述
整理不易,喜歡的點(diǎn)贊收藏哦!
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

《C語言程序設(shè)計(jì)》必背基本知識點(diǎn)(二)

第一章 C語言基本知識
1.C源程序的框架
盡管各個(gè)C源程序的功能千變?nèi)f化,但框架是不變的,主要有:編譯預(yù)處理、主函數(shù)()、函數(shù)n()等,主函數(shù)的位置不一定在最前面,可以在程序的中部或后面,主函數(shù)的名字固定為main。

2.C語言源程序的書寫規(guī)則:
(1)C源程序是由一個(gè)主函數(shù)和若干個(gè)其它函數(shù)組成的。
(2)函數(shù)名后必須有小括號,函數(shù)體放在大括號內(nèi)。
(3)C程序必須用小寫字母書寫。
(4)每句的末尾加分號。
(5)可以一行多句。
(6)可以一句多行。
(7)可以在程序的任何位置加注釋。

3.語句種類
語句是程序的基本成分,程序的執(zhí)行就是通過一條條語句的執(zhí)行而得以實(shí)現(xiàn)的,根據(jù)表現(xiàn)形式及功能的不同,C語言的基本語句可以分為五大類。
(1)流程控制語句
流程控制語句的功能是控制程序的走向,程序的流程有三種基本結(jié)構(gòu):順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu),任何復(fù)雜的程序都可以由這三種基本結(jié)構(gòu)復(fù)合而成。其中后兩種結(jié)構(gòu)要用特定的流程控制語句實(shí)現(xiàn)。
(2)表達(dá)式語句
表達(dá)式語句的形式是:表達(dá)式;,即表達(dá)式后跟一分號“;”,分號是語句結(jié)束符,是一個(gè)語句必不可少的成分。表達(dá)式和表達(dá)式語句的區(qū)別在于表達(dá)式代表的是一個(gè)數(shù)值,而表達(dá)式語句則代表一種動作。最常見的表達(dá)式語句是賦值語句。
(3)函數(shù)調(diào)用語句
函數(shù)調(diào)用語句實(shí)際上也是一種表達(dá)式語句,形式為:在一次函數(shù)調(diào)用的小括號后面加上一個(gè)分號。
(4)空語句
空語句的形式就是一個(gè)分號,它不代表任何動作,常常作為一個(gè)意義轉(zhuǎn)折點(diǎn)使用。
(5)復(fù)合語句
復(fù)合語句從形式上看是多個(gè)語句的組合,但在語法意義上它只相當(dāng)于一個(gè)語句,在任何單一語句存在的地方都可以是復(fù)合語句。注意復(fù)合語句中最后一個(gè)語句末尾的分號不能少。復(fù)合語句右大括號后面沒有分號。
4.運(yùn)算符
用來表示數(shù)據(jù)各種操作的符號稱為運(yùn)算符。運(yùn)算符實(shí)際上代表了一種類型數(shù)據(jù)的運(yùn)算規(guī)則。不同的運(yùn)算符具有不同的運(yùn)算規(guī)則,其操作的數(shù)據(jù)類型必須符合該運(yùn)算符的要求,運(yùn)算結(jié)果的數(shù)據(jù)類型也是固定的。
根據(jù)參加操作的數(shù)據(jù)個(gè)數(shù)多少,可以將C語言的運(yùn)算符分為單目運(yùn)算符,雙目運(yùn)算符和三目運(yùn)算符(三目運(yùn)算符只有條件運(yùn)算符一個(gè))。
根據(jù)運(yùn)算對象和運(yùn)算結(jié)果的數(shù)據(jù)類型可分為算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符等。
5.表達(dá)式
表達(dá)式是由常量、變量、函數(shù),通過運(yùn)算符連接起來而形成的一個(gè)算式。一個(gè)常量,一個(gè)變量或一個(gè)函數(shù)都可以看成是一個(gè)表達(dá)式。
表達(dá)式的種類有:
算術(shù)表達(dá)式、關(guān)系表達(dá)式、邏輯表達(dá)式、賦值表達(dá)式、字位表達(dá)式、強(qiáng)制類型轉(zhuǎn)換表達(dá)式、逗號表達(dá)式(順序表達(dá)式)、條件表達(dá)式、指針表達(dá)式。
6.數(shù)據(jù)的輸入/輸出
C語言本身沒有輸人/輸出語句,數(shù)據(jù)的輸入/輸出是通過調(diào)用庫函數(shù)來實(shí)現(xiàn)的。

第二章 數(shù)據(jù)類型知識點(diǎn)
劃分?jǐn)?shù)據(jù)類型的意義是編譯系統(tǒng)對每個(gè)不同類型的數(shù)據(jù)在內(nèi)存中分配的字節(jié)數(shù)不同,不同類型的數(shù)據(jù)可以按規(guī)定參加不同類型的運(yùn)算。
1.C語言的數(shù)據(jù)類型
數(shù)據(jù)類型有:整型、字符型、實(shí)型單精度型、雙精度型、構(gòu)造類型數(shù)組類型、結(jié)構(gòu)體類型、共用體類型、枚舉類型、指針類型、空類型,其中整型、實(shí)型、字符型是C語言中的基本類型。
2.各種類型數(shù)據(jù)的定義方法
定義形式:數(shù)據(jù)類型 變量名1,變量名2,……變量名n;
3.常量與變量
(1)常量——在程序執(zhí)行期間其值不變的量。它不能被賦值。
(2)變量——在程序運(yùn)行期間其值可以改變的量。
4.各種類型數(shù)據(jù)的混合運(yùn)算
各類數(shù)據(jù)運(yùn)算前會自動轉(zhuǎn)換成同一類型。規(guī)律如右圖示:從右向左的箭頭表示必定的轉(zhuǎn)換,如float型數(shù)據(jù)運(yùn)算前化成double型,以提高運(yùn)算精度,結(jié)果也為double型,short或char型數(shù)據(jù)運(yùn)算前化成int型,結(jié)果也為int型;從下向上的箭頭表示轉(zhuǎn)換方向是向級別高的靠攏。
5.強(qiáng)制類型變換
當(dāng)我們需要對數(shù)據(jù)進(jìn)行類型變換,而機(jī)器又不能自動完成時(shí),就要用強(qiáng)制類型變換,形式為:(數(shù)據(jù)類型符)(被轉(zhuǎn)換對象)。

第三章 選擇知識點(diǎn)
C語言中實(shí)現(xiàn)選擇結(jié)構(gòu)的控制語句有兩種:條件分支語句if和開關(guān)分支語句switch。
1.if語句的三種形式:
(1) if(表達(dá)式)語句;
(2) if(表達(dá)式)語句1;
else語句2;
(3) if(表達(dá)式1)語句1;
else if(表達(dá)式2)語句2;
else if(表達(dá)式3)語句3;

else if(表達(dá)式n)語句n;
2.開關(guān)分支語句switch
(1)形式
switch(表達(dá)式)
{ case e1:語句1;break;
case e2:語句2;break;
case e3:語句3;break;
……
case en:語句n;break;
default :語句n+1;
}
(2)功能
當(dāng)表達(dá)式的值等于e1時(shí),執(zhí)行語句1;
當(dāng)表達(dá)式的值等于e2時(shí),執(zhí)行語句2;
……
當(dāng)表達(dá)式的值等于en時(shí),執(zhí)行語句n;
當(dāng)表達(dá)式的值與常量e1、e2……en誰都不等時(shí),就執(zhí)行default后的語句

第四章 循環(huán)知識點(diǎn)
循環(huán)就是在程序執(zhí)行過程中,反復(fù)多次的執(zhí)行同一段程序。C語言中有三種循環(huán)語句。
1.while循環(huán)語句
形式為:while(表達(dá)式)
{
循環(huán)體
};
執(zhí)行過程是:先計(jì)算表達(dá)式的值,當(dāng)表達(dá)式的值非0時(shí)就執(zhí)行循環(huán)體,之后再判斷表達(dá)式的值,且重復(fù)以上過程;當(dāng)表達(dá)式的值為0時(shí)就結(jié)束循環(huán)。
2.do-- while循環(huán)語句
形式為:do
{
循環(huán)體
} while(表達(dá)式);
執(zhí)行過程是:先執(zhí)行循環(huán)體一次,再判斷表達(dá)式的值,當(dāng)表達(dá)式的值非0時(shí)就再執(zhí)行循環(huán)體,之后再判斷表達(dá)式的值,且重復(fù)以上過程;當(dāng)表達(dá)式的值為0時(shí)就結(jié)束循環(huán)。
3.for循環(huán)語句
形式為:for(表達(dá)式1;表達(dá)式2;表達(dá)式3)
{ 循環(huán)體 }
4.三種循環(huán)語句的比較
三種循環(huán)語句可以完成同一件事,可任選其一。
使用while和do-- while循環(huán)時(shí),要提前給循環(huán)變量賦初值。而for循環(huán)是在表達(dá)式1中賦初值的。
while循環(huán)和for循環(huán)都是先判斷條件后執(zhí)行循環(huán)體,有可能一次也不執(zhí)行循環(huán)體,do-- while循環(huán)是先執(zhí)行循環(huán)體,后判斷條件,即循環(huán)體至少也得執(zhí)行一次。for循環(huán)不限于計(jì)數(shù)循環(huán),其循環(huán)條件可以是邏輯表達(dá)式和字符表達(dá)式等。
5.循環(huán)嵌套
三種循環(huán)控制語句可以互相嵌套,即在一個(gè)循環(huán)體內(nèi)部又可以出現(xiàn)另一循環(huán),這種嵌套在理論上來說可以是無限的。注意必須是一個(gè)循環(huán)完整的套住另一個(gè)循環(huán)。
6.break語句
break語句只能出現(xiàn)在三種循環(huán)語句和switch多分支語句中,其作用是用來中斷這四種語句的執(zhí)行。當(dāng)程序執(zhí)行到break語句時(shí),會跳出break語句所在的循環(huán)或switch分支,而直接執(zhí)行緊跟在它們后面的語句。
7.continue語句
continue語句只能出現(xiàn)在三種循環(huán)語句中,當(dāng)程序執(zhí)行到continue語句時(shí),其作用是提前結(jié)束本次循環(huán),自動跳過循環(huán)體中后半部剩余的語句的執(zhí)行,而直接回到循環(huán)條件判斷。根據(jù)判斷的結(jié)果決定是否繼續(xù)執(zhí)行下次循環(huán)。
8. goto 語句
goto語句是一種非結(jié)構(gòu)化語句,其作用是使程序的執(zhí)行無條件的轉(zhuǎn)移到某一處。使用格式為: goto 標(biāo)號;利用goto語句與if條件語句配合,也可以實(shí)現(xiàn)條件循環(huán)。C語句允許在任何語句前添加標(biāo)號,作為跳轉(zhuǎn)目標(biāo),標(biāo)號的構(gòu)成是標(biāo)識符后面加一個(gè)":"。

第五章 數(shù)組知識點(diǎn)
數(shù)組就是同類型的一批數(shù)據(jù)的集合,用一個(gè)變量名存放,區(qū)分各元素的辦法是用下標(biāo)。
1.一維數(shù)組
類型說明符數(shù)組名[數(shù)組長度];
(1)數(shù)組命名要符合標(biāo)識符的命名規(guī)則。
(2)數(shù)組名后的括號必須是方括號,不能是圓括號。
(3)數(shù)組長度必須是正整數(shù),可以是個(gè)表達(dá)式,但不能有變量,C語言不支持動態(tài)數(shù)組。
(4)數(shù)組長度表示數(shù)組中元素的個(gè)數(shù)
(5)數(shù)組元素的下標(biāo)從0開始數(shù),所以大下標(biāo)是數(shù)組的長度減1。
2.多維數(shù)組(以二維為例)
類型說明符數(shù)組名[第一維長度][第二維長度];
(1)數(shù)組命名要符合標(biāo)識符的命名規(guī)則。
(2)數(shù)組名后的括號必須是兩個(gè)方括號,定義時(shí)不能寫成inta[3,4];。
(3)數(shù)組長度必須是整型常量表達(dá)式。
(4)第一維長度表示數(shù)組行數(shù),第二維長度表示數(shù)組列數(shù)。
(5)每個(gè)數(shù)組元素都有兩個(gè)下標(biāo),第一維表示該元素所在的行,第二維表示該元素所在的列,每一維的下標(biāo)都從0開始數(shù)。
二維數(shù)組的初始化:C語言規(guī)定只有靜態(tài)數(shù)組和外部數(shù)組才允許在定義時(shí)賦初值,賦初值形式如下:
static類型說明符數(shù)組名[第一維長度][第二維長度]={初值表};
二維數(shù)組的引用:二維數(shù)組不能整體引用,要引用數(shù)組的單個(gè)元素,形式為:數(shù)組名[下標(biāo)][下標(biāo)]和普通變量的使用無任何區(qū)別。
3.字符數(shù)組
C語言中沒有字符串變量,字符串是靠字符數(shù)組實(shí)現(xiàn)的,所謂字符數(shù)組就是元素的數(shù)據(jù)類型為字符型的數(shù)組。
(1)字符數(shù)組的定義形式:char數(shù)組名[數(shù)組長度];
因?yàn)镃語言中的整型數(shù)據(jù)和字符型數(shù)據(jù)是相通的,所以也可以這樣定義:int數(shù)組名[數(shù)組長度];
(2)字符數(shù)組的初始化:給字符數(shù)組的初始化有兩種方式,一種是用字符常量,另一種是用字符串。形式如下:
staticchar數(shù)組名[數(shù)組長度]={字符常量表};
staticchar數(shù)組名[數(shù)組長度]={字符串常量};
4.數(shù)組與函數(shù)
數(shù)組經(jīng)常作為函數(shù)的參數(shù),數(shù)組做函數(shù)的參數(shù)有兩種形式,一是數(shù)組元素做函數(shù)的參數(shù),一是數(shù)組名做函數(shù)的參數(shù),當(dāng)用數(shù)組名做函數(shù)的實(shí)參時(shí)傳送的是首地址。
5.常用的字符串處理函數(shù)
C語言提供了一些處理字符串的標(biāo)準(zhǔn)函數(shù),用以完成一些常見的操作。對以下幾個(gè)函數(shù)要掌握其功能和調(diào)用形式。
(1)gets(字符數(shù)組名)此函數(shù)功能是從鍵盤輸入一串字符,回車后送到字符數(shù)組中,注意定義數(shù)組時(shí)數(shù)組長度要足夠大。
(2)puts(字符數(shù)組名)此函數(shù)功能是將字符數(shù)組的內(nèi)容輸出到屏幕上。
(3)strcat(字符數(shù)組名1,字符數(shù)組名2)此函數(shù)功能是將字符數(shù)組1中的’\0’去掉后將字符數(shù)組2的內(nèi)容連接到字符數(shù)組1的末尾。
(4)strcpy(字符數(shù)組名1,字符數(shù)組名2)函數(shù)功能是將字符數(shù)組2的內(nèi)容(包括’\0’)拷貝到字符數(shù)組1中,字符數(shù)組2處也可以是字符串常量。strcpy函數(shù)可以實(shí)現(xiàn)拷子串。
(5)strcmp(字符數(shù)組名1,字符數(shù)組名2)函數(shù)功能是兩個(gè)字符串(ASCII碼)比大小。
(6)strlen(字符數(shù)組名)此函數(shù)功能是求字符串的長度,注意不包括’\0’。
(7)strlwr(字符數(shù)組名)此函數(shù)功能是將字符串中的所有大寫字母都變成小寫。
(8)strupr(字符數(shù)組名)此函數(shù)功能是將字符串中的所有小寫字母都變成大寫。

第六章 函數(shù)知識點(diǎn)
每個(gè)C源程序都是由函數(shù)組成的,一個(gè)主函數(shù)和若干個(gè)其它函數(shù),C語言程序設(shè)計(jì)的基礎(chǔ)工作就是函數(shù)的具體編寫,C語言中的函數(shù)就相當(dāng)于其它高級語言中的子程序。
1.函數(shù)的概念
函數(shù)就是一個(gè)數(shù)據(jù)加工廠,從函數(shù)外部接收數(shù)據(jù),在函數(shù)內(nèi)部加工處理,然后得到一個(gè)結(jié)果返回給外部的調(diào)用者。所以函數(shù)就是對語言功能的擴(kuò)充,對函數(shù)的調(diào)用就是對功能的調(diào)用。
2.標(biāo)準(zhǔn)函數(shù)
各種高級語言都定義了一些標(biāo)準(zhǔn)函數(shù),C語言中的標(biāo)準(zhǔn)函數(shù)稱為庫函數(shù),是將一些基本的、常用的功能編成了函數(shù),供大家使用方便。使用庫函數(shù)時(shí)必須把它的頭文件用#include命令包含進(jìn)來,每個(gè)庫函數(shù)的功能及對應(yīng)的頭文件都會在手冊中給出。
3.自定義函數(shù)
C 語言也允許用戶自己編寫函數(shù)以實(shí)現(xiàn)C庫函數(shù)中沒有提供的功能,稱作自定義函數(shù)。
4.定義函數(shù)
C語言規(guī)定每個(gè)函數(shù)都要獨(dú)立定義,函數(shù)定義不能嵌套。
函數(shù)定義的形式:數(shù)據(jù)類型函數(shù)名(形參表)
形參說明語句序列
{ 說明語句序列
可執(zhí)行語句序列 }
5.函數(shù)調(diào)用
函數(shù)調(diào)用的形式是: 函數(shù)名(實(shí)參表)。當(dāng)實(shí)參表中有多個(gè)參數(shù)時(shí),要用逗號隔開,若被調(diào)函數(shù)無參數(shù),調(diào)用時(shí)小括號也不能省。函數(shù)調(diào)用過程是:將實(shí)參的值傳給形參,在函數(shù)體內(nèi)進(jìn)行加工處理,然后由return語句將函數(shù)值返回調(diào)用處。
5.全局變量和局部變量
局部變量:在函數(shù)內(nèi)部定義的變量稱為局部變量,只在本函數(shù)中有效。
全局變量:在函數(shù)外部定義的變量稱為全局變量,它的作用范圍是從定義開始到本文件結(jié)束。
6.動態(tài)存儲與靜態(tài)存儲
內(nèi)存中的用戶數(shù)據(jù)區(qū)分為動態(tài)存儲區(qū)和靜態(tài)存儲區(qū),動態(tài)存儲區(qū)是指程序運(yùn)行期間給變量臨時(shí)分配存儲單元,變量用完后立即釋放單元的區(qū)域,動態(tài)存儲區(qū)放的是函數(shù)的形參、自動變量、函數(shù)調(diào)用期間的現(xiàn)場保護(hù)數(shù)據(jù)和返回地址。
靜態(tài)存儲區(qū)是指程序運(yùn)行期間給變量分配固定的存儲單元,放的是全局變量和局部靜態(tài)變量。
一個(gè)變量除了它的數(shù)據(jù)類型以外還有存儲類型,定義一個(gè)變量時(shí)應(yīng)該說明這兩種類型。

第七章 預(yù)處理知識點(diǎn)
對高級語言編譯連接就是把源程序轉(zhuǎn)換成機(jī)器語言,C語言在進(jìn)行編譯之前還要預(yù)先處理三件事:宏定義命令、文件包含命令和條件編譯命令,統(tǒng)稱為預(yù)處理命令,其特點(diǎn)是:
1.所有的預(yù)處理命令都放在程序的頭部,以#開頭,且#號后面不留空格。
2.預(yù)處理命令不是C的語句,行尾不加分號。
3.預(yù)處理命令是在編譯預(yù)處理階段完成的,所以它們沒有任何計(jì)算、操作等執(zhí)行功能。
4.預(yù)處理命令有所變動后,必須對程序重新進(jìn)行編譯和連接。
1.宏定義
宏定義命令的作用是給一些常用的對象重新命名,在程序中可以用宏名來引用這些對象,預(yù)處理時(shí)宏名會被代表的內(nèi)容替換,此過程稱為宏展開或宏替換。宏定義有兩種形式:
2.文件包含
使用文件包含命令可以將另—個(gè)C源程序的全部內(nèi)容包含進(jìn)來,其形式為:
#include <文件名>或#include “文件名”
通??梢园呀?jīng)常用到的,帶公用性的一些函數(shù)或符號等集合在…起形成一個(gè)源文件,然后用此命令將這個(gè)源文件包含進(jìn)來,這樣可以避免在每個(gè)新程序中都要重新鍵入這些內(nèi)容。
3.條件編譯
顧名思義滿足條件時(shí)進(jìn)行編譯,為了解決程序移植問題,C語言提供了條件編譯命令,它能使源程序在不同的編譯環(huán)境下生成不同的目標(biāo)代碼文件。條件編譯命令有3種形式。

第八章 指針知識點(diǎn)
1.什么是指針和指針變量?
指針就是內(nèi)存地址,因?yàn)橥ㄟ^“地址”可以找到變量,所以內(nèi)存“地址"形象的稱為指針。
指針變量就是存地址的變量。在C語言中用一個(gè)變量存另一個(gè)變量的地址,那么就稱這個(gè)變量為指針變量,指針變量的值就是地址。通常指針變量被簡稱為指針。
指針變量是有類型的,即指針值增1表示指向下一個(gè)數(shù)據(jù),如整型數(shù)據(jù)在內(nèi)存中占兩個(gè)字節(jié),它的指針變量增1是增兩個(gè)字節(jié)。如實(shí)型數(shù)據(jù)在內(nèi)存中占4個(gè)字節(jié),它的指針變量增1是增4個(gè)字節(jié)。
2.怎樣定義指針變量?
定義形式為:數(shù)據(jù)類型指針變量名1,指針變量名2……;
3.指針的有關(guān)運(yùn)算
指針為內(nèi)存地址是整數(shù),可以進(jìn)行一些算術(shù)運(yùn)算、關(guān)系運(yùn)算、賦值運(yùn)算、特殊運(yùn)算等,但要注意運(yùn)算代表的實(shí)際意義。
4.指向數(shù)組的指針變量
(1)指向數(shù)組元素的指針變量定義形式為:inta[10];
int
p=a;
(2)指向一維數(shù)組的指針變量
定義形式為:inta[3][4];
int(p)[4];
p=a;
(3)指向字符串的指針變量
定義形式為: char
p=“字符序列”;
C語言中的字符串是以隱含形式的字符數(shù)組存放的,定義了指針變量p并不是將整個(gè)字符串都存放在p中了,而p中存放的是字符串的首地址。
5.指向函數(shù)的指針變量
一個(gè)函數(shù)在編譯時(shí)被分配一個(gè)入口地址,這個(gè)地址就是函數(shù)的指針,可以用一個(gè)指針變量指向它。指向函數(shù)的指針變量定義形式為:
數(shù)據(jù)類型(指針變量名);
6.指針變量做函數(shù)的參數(shù)
(1)指針作函數(shù)的參數(shù)可以傳送地址,如數(shù)組的首地址,函數(shù)的入口地址等。
(2)指針作函數(shù)的參數(shù)也可以用地址方式傳送數(shù)據(jù)。
7.返回值是指針的函數(shù)
即函數(shù)的返回值是內(nèi)存的地址,利用這種方法可以將一個(gè)以上的數(shù)據(jù)返回給函數(shù)的調(diào)用者。定義形式如下:
數(shù)據(jù)類型
函數(shù)名(形參表)
8.指針數(shù)組
定義形式為:數(shù)據(jù)類型
數(shù)組名[數(shù)組長度];
數(shù)組中的每個(gè)元素都是指針類型的數(shù)據(jù),這種數(shù)組被稱為指針數(shù)組。
9.指向指針的指針
定義形式為:數(shù)據(jù)類型**指針變量名;
指向指針數(shù)據(jù)的指針變量稱為指向指針的指針。
10.main函數(shù)的形參
main函數(shù)可以帶兩個(gè)形參,如:
main(argc,argv)
intargc;
charargv[];
{
……
}
11.指向結(jié)構(gòu)體的指針變量
結(jié)構(gòu)體變量的指針就是該變量所占據(jù)的內(nèi)存段的首地址。指向結(jié)構(gòu)體的指針變量定義形式為:struct結(jié)構(gòu)體類型名
指針變量名;
12.指向共用體的指針變量

共用體變量的指針就是該變量所占據(jù)的內(nèi)存段的首地址。指向共用體的指針變量定義形式為:union共用體類型名*指針變量名;
替換了的字符時(shí)(這里為正中間的字符"4"),原來的字符己不復(fù)存在。
第九章 結(jié)構(gòu)體與共用體知識點(diǎn)
結(jié)構(gòu)體類型是C語言的一種構(gòu)造數(shù)據(jù)類型,它是多個(gè)相關(guān)的不同類型數(shù)據(jù)的集合,相當(dāng)于其它高級語言中的記錄。

1.結(jié)構(gòu)體類型定義
結(jié)構(gòu)體類型的形式為:
struct結(jié)構(gòu)體類型名
{ 數(shù)據(jù)類型成員名1;

數(shù)據(jù)類型成員名n;
}
2.結(jié)構(gòu)體變量的定義
結(jié)構(gòu)體變量有三種定義形式:
(1)先定義結(jié)構(gòu)體類型,后定義結(jié)構(gòu)體變量。
(2)定義結(jié)構(gòu)體類型的同時(shí)定義結(jié)構(gòu)體變量。
(3)不定義結(jié)構(gòu)體類型名,直接定義結(jié)構(gòu)體變量。
3.結(jié)構(gòu)體變量的引用
(1)結(jié)構(gòu)體變量的初始化:許多C版本規(guī)定對外部或靜態(tài)存儲類型的結(jié)構(gòu)體變量可以進(jìn)行初始化,而對局部的結(jié)構(gòu)體變量則不可以,新標(biāo)準(zhǔn)C無此限制,允許在定義時(shí)對自動變量初始化。
(2)結(jié)構(gòu)體成員的引用:由于C語言一般不允許對結(jié)構(gòu)體變量的整體引用,所以對結(jié)構(gòu)體的引用只能是對分量的引用,結(jié)構(gòu)體變量中的任一分量可以表示為:結(jié)構(gòu)體變量名·成員名
4.結(jié)構(gòu)體與數(shù)組
C語言中數(shù)組的成員可以是結(jié)構(gòu)體變量,結(jié)構(gòu)體變量的成員也可以是數(shù)組。
結(jié)構(gòu)體數(shù)組有三種定義形式:
(1)先定義結(jié)構(gòu)體類型,后定義結(jié)構(gòu)體數(shù)組。
(2)定義結(jié)構(gòu)體類型的同時(shí)定義結(jié)構(gòu)體數(shù)組。
(3)不定義結(jié)構(gòu)體類型名,直接定義結(jié)構(gòu)體變量。
5.結(jié)構(gòu)體與指針
一方面結(jié)構(gòu)體變量中的成員可以是指針變量,另一方面也可以定義指向結(jié)構(gòu)體的指針變量,指向結(jié)構(gòu)體的指針變量的值是某一結(jié)構(gòu)體變量在內(nèi)存中的首地址。
結(jié)構(gòu)體指針的定義形式:struct結(jié)構(gòu)體類型名*結(jié)構(gòu)體指針變量名。
由結(jié)構(gòu)體指針引用結(jié)構(gòu)體成員的方法
6.用指針處理鏈表
結(jié)構(gòu)體的成員可以是指針類型,并且這個(gè)指針類型就是本結(jié)構(gòu)體類型的,這樣可以構(gòu)造出一種動態(tài)數(shù)據(jù)結(jié)構(gòu)—成為鏈表。所謂動態(tài)數(shù)據(jù)就是指在編譯時(shí)不能確定數(shù)據(jù)量的多少,而是在程序執(zhí)行時(shí)才確定的數(shù)據(jù),動態(tài)數(shù)據(jù)可以比較方便的進(jìn)行數(shù)據(jù)插人或刪除等操作。
7.結(jié)構(gòu)體與函數(shù)
結(jié)構(gòu)體變量的成員可以作函數(shù)的參數(shù)、指向結(jié)構(gòu)體變量的指針也可以作函數(shù)的參數(shù)。雖然結(jié)構(gòu)體變量名也可以作為函數(shù)的參數(shù),將整個(gè)結(jié)構(gòu)體變量進(jìn)行傳遞,但一般不這樣做,因?yàn)槿绻Y(jié)構(gòu)體的成員很多,或者有些成員是數(shù)組,則程序運(yùn)行期間,將全部成員一個(gè)一個(gè)的傳遞,既浪費(fèi)時(shí)間,又浪費(fèi)空間,開銷太大。
8.結(jié)構(gòu)體與共用體
結(jié)構(gòu)體變量中的成員可以是共用體,共用體變量中的成員可以是結(jié)構(gòu)體。
共用體
為了節(jié)省存儲空間,C語言允許將幾種不同類型的數(shù)據(jù)存放在同一段內(nèi)存單元,它們共用一個(gè)起始地址,稱做共用體。
1.共用體類型定義
union共用體類型名
{ 數(shù)據(jù)類型成員名1;

數(shù)據(jù)類型成員名n;
}
2.共用體變量定義
(1)先定義類型,后定義變量。
(2)定義類型的同時(shí)定義變量。
(3)不定義類型名,直接定義變量。
3.共用體變量的引用
(1)共用體變量不能整體引用,只能引用其成員,形式為:共用體變量名·成員名
(2)共用體變量的成員不能初始化,因?yàn)樗荒芊乓粋€(gè)數(shù)據(jù)。
(3)共用體變量存放的數(shù)據(jù)是最后放入的數(shù)據(jù)。
(4)共用體變量的長度是大的成員的長度。
(5)可以引用共用體變量的地址、各個(gè)成員的地址,它們都是同一個(gè)地址。
(6)共用體變量不能當(dāng)函數(shù)的參數(shù)或函數(shù)的返回值,但可以用指向共用體變量的指針作函數(shù)的參數(shù)。
(7)共用體變量的成員可以是數(shù)組,數(shù)組的成員也可以是共用體變量。

第十章 位運(yùn)算知識點(diǎn)
位運(yùn)算就是按二進(jìn)制位進(jìn)行操作的運(yùn)算,運(yùn)算的對象只能是整型或字符型,不能是實(shí)型。不同長度的變量進(jìn)行位運(yùn)算,系統(tǒng)會自動右對齊,而左端的不齊部分,對于無符號數(shù)左端補(bǔ)滿0,對于有符號數(shù)則:正數(shù)左端補(bǔ)滿0,負(fù)數(shù)左端補(bǔ)滿1。

第十一章 文件知識點(diǎn)
操作系統(tǒng)是以文件為單位對數(shù)據(jù)進(jìn)行管理的,任何一種計(jì)算機(jī)高級語言都要有和磁盤文件打交道的能力,否則該語言的功能充其量是算一算、顯示顯示而已。在C語言中沒有單獨(dú)的文件操作語句,所有對文件的操作都是通過庫函數(shù)來完成的,所以本章的重點(diǎn)是學(xué)會使用有關(guān)文件操作的庫函數(shù)。
1.文件的基本概念
2.文件類型指針
3.文件的操作

C語言程序設(shè)計(jì)復(fù)習(xí)資料(三)

一、C 語言的特點(diǎn):

1、C 語言源程序的基本組成單位是函數(shù);一個(gè) C 程序可由若干個(gè)函數(shù)組成,其中必須有且僅有一個(gè)以 main 命名的主
函數(shù),其余的函數(shù)名稱可由編程者自行設(shè)定。

2、C 程序的執(zhí)行總是由 main()函數(shù)的第一個(gè)可執(zhí)行語句開始,到 main()函數(shù)的最后一個(gè)可執(zhí)行的語句結(jié)束;而其他
函數(shù)都是在 main()函數(shù)開始執(zhí)行以后,通過其他函數(shù)的調(diào)用才得以運(yùn)行。

3、C 語言系統(tǒng)提供了豐富的庫函數(shù),用戶在程序中需要調(diào)用某個(gè)庫函數(shù)時(shí),必須用#include 編譯預(yù)處理命令將描述該
庫函數(shù)的頭文件包含進(jìn)去。

二、C 程序的書寫格式:
1、語句可從分開放在任意多行內(nèi);
如:printf(“To C,”);
printf(“ or not to C:”);
與 printf(“To C , or not to C:”);是等價(jià)的
2、一行中可以有若干個(gè)語句;
如:a=123;b=345;
3、每個(gè)語句和數(shù)據(jù)定義的最后必須有一個(gè)分號;
三、C 語言程序的運(yùn)行:
**1、編譯(Compile):**將 C 源程序文件翻譯成能被計(jì)算機(jī)識別的二進(jìn)制形式的“目標(biāo)”文件;編譯時(shí),編譯器將檢查源程
序每一條語句的語法錯(cuò)誤。
2、建造(Bulid):
C 語言程序示例:顯示“Hello” #include

int main(void)
{printf(“Hello.\n”);
return 0;
}

說明:#include是必不可少的,它包含了 C 語言標(biāo)準(zhǔn)輸入輸出庫的相關(guān)信息;
printf 函數(shù)來自”標(biāo)準(zhǔn)輸入輸出庫”,可以產(chǎn)生格式化輸出;
\n 告訴 printf 函數(shù)執(zhí)行完信息顯示后要進(jìn)行換行操作;
return 0 表明程序終止時(shí)會向操作系統(tǒng)返回值 0;
{ }來標(biāo)出 main()函數(shù)的起始和結(jié)束。
02.數(shù)據(jù)類型
一、C 語言的特點(diǎn):
1、C 語言源程序的基本組成單位是函數(shù);一個(gè) C 程序可由若干個(gè)函數(shù)組成,其中必須有且僅有一個(gè)以 main 命名的主
函數(shù),其余的函數(shù)名稱可由編程者自行設(shè)定。
2、C 程序的執(zhí)行總是由 main()函數(shù)的第一個(gè)可執(zhí)行語句開始,到 main()函數(shù)的最后一個(gè)可執(zhí)行的語句結(jié)束;而其他
函數(shù)都是在 main()函數(shù)開始執(zhí)行以后,通過其他函數(shù)的調(diào)用才得以運(yùn)行。
3、C 語言系統(tǒng)提供了豐富的庫函數(shù),用戶在程序中需要調(diào)用某個(gè)庫函數(shù)時(shí),必須用#include 編譯預(yù)處理命令將描述該
庫函數(shù)的頭文件包含進(jìn)去。
二、C 程序的書寫格式:
1、語句可從分開放在任意多行內(nèi);
如:printf(“To C,”);
printf(“ or not to C:”);
與 printf(“To C , or not to C:”);是等價(jià)的
2、一行中可以有若干個(gè)語句;
如:a=123;b=345;
3、每個(gè)語句和數(shù)據(jù)定義的最后必須有一個(gè)分號;
三、C 語言程序的運(yùn)行:
**1、編譯(Compile):將 C 源程序文件翻譯成能被計(jì)算機(jī)識別的二進(jìn)制形式的“目標(biāo)”文件;編譯時(shí),編譯器將檢查源程
序每一條語句的語法錯(cuò)誤。
2、建造(Bulid):
C 語言程序示例:顯示“Hello” #include
int main(void)
{
printf(“Hello.\n”);
return 0;
}
說明:#include是必不可少的,它包含了 C 語言標(biāo)準(zhǔn)輸入輸出庫的相關(guān)信息;
printf 函數(shù)來自”標(biāo)準(zhǔn)輸入輸出庫”,可以產(chǎn)生格式化輸出;
\n 告訴 printf 函數(shù)執(zhí)行完信息顯示后要進(jìn)行換行操作;
return 0 表明程序終止時(shí)會向操作系統(tǒng)返回值 0;
{ }來標(biāo)出 main()函數(shù)的起始和結(jié)束。
03,運(yùn)算符和表達(dá)式
1、算術(shù)運(yùn)算符和表達(dá)式
+:加法運(yùn)算符,如 3+5;
-:減法運(yùn)算符,如 5-3;
:乘法運(yùn)算符,如 58;
/:除法運(yùn)算符,如 3/6;參與運(yùn)算量均為整型時(shí),結(jié)果也為整型,舍去小數(shù);若運(yùn)算量中有一個(gè)是實(shí)型,則結(jié)果為
雙精度實(shí)型。
%:模運(yùn)算符,也稱“取余運(yùn)算符”,用于計(jì)算兩數(shù)相除后的余數(shù),如 5%3=2;
2、賦值運(yùn)算符和賦值表達(dá)式
賦值運(yùn)算符:”=”,其作用是將一個(gè)表達(dá)式的值賦給一個(gè)變量;
其一般形式為:變量=表達(dá)式
如:
x=a+b;
賦值表達(dá)式的功能是計(jì)算表達(dá)式的值再賦予左邊的變量。賦值運(yùn)算符具有右結(jié)合性。因此 a=b=c=5 可理解為
a=(b=(c=5));
復(fù)合賦值運(yùn)算符:+=、-=、=、/=、%=、>>=、<<=、&=、^=、|= 構(gòu)成復(fù)合賦值表達(dá)式的一般形式為:變量 雙目運(yùn)算符=表達(dá)式
它等價(jià)于:變量=變量 運(yùn)算符 表達(dá)式
如:
a+=5 等價(jià)于 a=a+5
x
=y+7 等價(jià)于 x=x
(y+7)
r%=p 等價(jià)于 r=r%p
3、類型轉(zhuǎn)換
如果賦值運(yùn)算符兩邊的數(shù)據(jù)類型不相同,系統(tǒng)將自動進(jìn)行類型轉(zhuǎn)換,即把賦值號右邊的類型換成左邊的類型。具體規(guī)定如
下:
1)實(shí)型賦予整型,舍去小數(shù)部分。前面的例子已經(jīng)說明了這種情況。
2)整型賦予實(shí)型,數(shù)值不變,但將以浮點(diǎn)形式存放,即增加小數(shù)部分(小數(shù)部分的值為 0)。
3)字符型賦予整型,由于字符型為一個(gè)字節(jié),而整型為二個(gè)字節(jié),故將字符的 ASCII 碼值放到整型量的低八位中,高
八位為 0。整型賦予字符型,只把低八位賦予字符量。
4、自增、自減運(yùn)算符:
自增運(yùn)算符:“++”,功能是將變量的值加 1;
自減運(yùn)算符:“–”,功能是將變量的值減 1;
可有以下幾種形式:
++i i 自增 1 后再參與其它運(yùn)算。
–i i 自減 1 后再參與其它運(yùn)算。
i++ i 參與運(yùn)算后,i 的值再自增 1。
i-- i 參與運(yùn)算后,i 的值再自減 1。
注:
(1)”++”、”–“的操作對象只能是變量;
(2)”++”、”–“運(yùn)算優(yōu)先級相同,且結(jié)合方向自右向左;-i++應(yīng)理解為-(i++),
【例】自增、自減運(yùn)算、
#include
main()
{
int i=8;
printf(“%d\n”,++i); /
i 先加 1,再輸出 i ,輸出結(jié)果為 9/
printf(“%d\n”,–i); /
i 先減 1,再輸出 i ,結(jié)果為 8/
printf(“%d\n”,i++); /
先輸出 i ,輸出結(jié)果為 8,i 再加 1,/
printf(“%d\n”,i–); /
先輸出 i ,輸出結(jié)果為 9,i 再減 1,/
printf(“%d\n”,-i++); /
先加輸出-i,輸出結(jié)果為-8,i 再加 1/
printf(“%d\n”,-i–); /
先輸出-i ,輸出結(jié)果為-9,i 再減 1/
}
5、求字節(jié)運(yùn)算符
計(jì)算表達(dá)式的結(jié)果所占字節(jié)數(shù)或某種數(shù)據(jù)類型的定義字節(jié)數(shù)。
一般格式:sizeof(數(shù)據(jù)類型標(biāo)識符) 或 sizeof(表達(dá)式)
如: sizeof(float)的值為 4,占 4 個(gè)字節(jié);
sizeof(2
3)的值為 2,占 2 個(gè)字節(jié);
6、關(guān)系運(yùn)算符和關(guān)系表達(dá)式
關(guān)系運(yùn)算符:“<”(小于)、 “<=”(小于等于) 、”>”(大于)、”>=”(大于等于) 、” = =”(等于)、 “!=”(不等于)
關(guān)系表達(dá)式:若關(guān)系表達(dá)式成立,其值為“真”,否則為“假”;在 C 語言中,用 0 代表“假”,用 1 代表“真”;
7、邏輯運(yùn)算符和邏輯表達(dá)式:
邏輯運(yùn)算符: “!” (非)、 “&&” (與)、 “||”(或);運(yùn)算優(yōu)先級: !>&&>||
邏輯表達(dá)式:用邏輯運(yùn)算符將表達(dá)式連接起來的式子;邏輯表達(dá)式的結(jié)果仍然是邏輯量(“真”或“假”)
8、條件運(yùn)算符:
一般格式:<表達(dá)式 1>?<表達(dá)式 2>:<表達(dá)式 3>
先計(jì)算表達(dá)式 1,若表達(dá)式 1 的值為真,則計(jì)算表達(dá)式 2 的值,且表達(dá)式 2 的值為整個(gè)條件表達(dá)式的值;否則,計(jì)算
表達(dá)式 3 的值,且表達(dá)式 3 的值即為整個(gè)條件表達(dá)式的值。
9、逗號運(yùn)算符和逗號表達(dá)式
逗號運(yùn)算符:”,”作為運(yùn)算符,其功能是將多個(gè)表達(dá)式組成一個(gè)表達(dá)式;
一般形式:表達(dá)式 1,表達(dá)式 2,…,表達(dá)式 n
求解過程:先計(jì)算表達(dá)式 1,再計(jì)算表達(dá)式 2,依此計(jì)算表達(dá)式 n,最終,表達(dá)式 n 的值即為整個(gè)表達(dá)式的值。
04.順序結(jié)構(gòu)
一、概述:
順序語句按照語法形式分為:表達(dá)式語句、函數(shù)調(diào)用語句、復(fù)合語句、流程控制語句和空語句。
1、表達(dá)式語句:
語法格式:表達(dá)式;
如:a+4;
其中賦值語句為最典型的表達(dá)式語句,如:
a=5;
a=b+3;
特別提示:分號(;)是表達(dá)式語句中不可缺少的一部分。
2、函數(shù)調(diào)用語句:
如:printf(”I am a student!”);
其中:printf()為系統(tǒng)提供的函數(shù),用于顯示信息。
3、復(fù)合語句:
所謂“復(fù)合語句”即由一對“{}”括起來的一組語句,也稱“塊語句”或“分程序”。
一般形式為:
{
語句 1
語句 2
… 語句 n
}
如:
{
i++;
j=a+3;
printf(“%d,j=”,i,j);
}
特別提示:復(fù)合語句中的最后一條語句的分號不得缺少;復(fù)合語句的“}”之后不得有分號。
4、空語句: “空語句”即為一個(gè)獨(dú)立的分號。
如:
main()
{
… ;
… }
二、數(shù)據(jù)的輸入輸出
C 語言提供了一些輸入輸出函數(shù),如 printf()和 scanf(),在程序中調(diào)用這些輸入輸出函數(shù)時(shí),必須將標(biāo)準(zhǔn)輸入輸出頭文
件“stdio.h”包含到用戶所編寫的源程序中。
如:#include
其中:#include 命令一般寫在程序的開頭位置。
1、格式輸入輸出
1、格式輸出函數(shù) printf()
(1)一般格式: printf(格式字符串,輸出列表)
其中:“格式字符串”包括“輸出字符”和“格式控制字符”(由%和格式字符組成,指定輸出項(xiàng)的輸出格式)。
? d 格式符:用于輸出十進(jìn)制整數(shù);
%d:以十進(jìn)制形式顯示輸出變量的值;
%5d:以十進(jìn)制形式顯示變量的值,且至少占用 5 個(gè)字符的空間,若不夠 5 位數(shù)字,則左側(cè)補(bǔ)空格;
%-5d:以十進(jìn)制形式顯示變量的值,且至少占用 5 個(gè)字符的空間,左對齊;
%5.3d:以十進(jìn)制形式顯示變量的值,且至少占用 5 個(gè)字符的空間并至少有 3 位數(shù)字,若不夠 3 位數(shù)字,則左
側(cè)補(bǔ) 0;
如:#include
main()
{
int i;
i=40;
printf(“%d\n”,i);
printf(“%5d\n”,i);
printf(“%-5d\n”,i);
printf(“%5.3d\n”,i);
}
? f 格式符:用于以小數(shù)形式輸出實(shí)數(shù);
%10.3f:以定點(diǎn)十進(jìn)制形式顯示變量的值,且總共用 10 個(gè)字符,其中,整數(shù)位 6 位,小數(shù)位 3 位,小數(shù)點(diǎn) 1
位;
如:#include
main()
{
float x;
x=839.21f;
printf(“%10.3f\n”,x);
}
? c 格式符:用于輸出一個(gè)字符;
如: x=”a”,y =”b”, 則 printf(%c %c",x,y)的輸出結(jié)果為:a b
若變量的值為整數(shù),則輸出該整數(shù)值為 ASCII 碼的字符:
如 x=65,y=98,則 printf(“%c, %c”,x,y)的輸出結(jié)果為: A, b;
同理,一個(gè)字符的數(shù)據(jù)也可以以整數(shù)的形式輸出;
如 x=’a’,y=’B’,則 printf(“%d,%d”,x,y)的輸出結(jié)果為:97,66
? s 格式符:用于輸出一個(gè)字符串。
如:printf(“%s”,”I am a student !”) ? e,E 格式符:用于以指數(shù)形式輸出實(shí)數(shù)。
如:printf(“%e”, 123.456),則輸出結(jié)果為:1.234560e+002; ? g,G 格式符:用于輸出實(shí)數(shù),根據(jù)數(shù)值的大小自動選擇 f 格式或 e 格式。
2、格式輸入函數(shù) scanf()
(1)一般格式:
scanf(格式字符串,變量地址表)
其中:格式字符串使用雙引號括起來的字符串,包括“普通字符”(按原樣輸入)、“格式控制字符”(由%和格式
字符組成,用來標(biāo)定輸入數(shù)據(jù)的格式)。
變量地址表是由若干個(gè)變量地址組成的表列,可以是變量的地址,也可以使字符串的首地址。
? d 格式:用于輸入十進(jìn)制整數(shù);
如:scanf(“%d,%d”,&x,&y);則輸入格式為:123 ,3456
?u 格式:用于輸入十進(jìn)制無符號整數(shù);
?f 格式:用于輸入以小數(shù)形式的實(shí)數(shù);
如:scanf(“%f,%f”,&x,&y);則輸入格式為:123.23,23.456
?c 格式:用于輸入一個(gè)字符;
如:scanf(“%c,%c”,&x,&y);則輸入格式為:a,b
?s 格式:用于輸入一個(gè)字符串;
如:scanf(“%s”,a);假定 a 為字符數(shù)組,則輸入格式為:abcdef
注:輸入的字符串中間不能包含空格。
特別說明:
? 對于變量,”&”加變量名即為該變量的地址;如:&a、&b 等分別表示變量 a 和變量 b 的地址;
?對于字符串?dāng)?shù)組或字符指針型變量,數(shù)組名和指針變量名本身即為其地址;
?可以在%和格式字符之間加表示位數(shù)的數(shù)字;如:scanf(“%5s”,p);表示只能輸入 5 個(gè)字符給字符串指針 p;
3、字符數(shù)據(jù)的輸入輸出:
(1)putchar()函數(shù):是向標(biāo)準(zhǔn)輸入輸出設(shè)備輸出一個(gè)字符;
其調(diào)用格式為:putchar(ch); 其中:ch 為一個(gè)字符變量或常量;
putchar()函數(shù)作用等同于 printf(“%c”,ch);
(2)getch() getche()和 getchar()函數(shù):
?getch():從鍵盤上讀入一個(gè)字符,但不顯示在屏幕上;
?getche():從鍵盤上讀入一個(gè)字符,顯示在屏幕上;
?getchar():從鍵盤上讀入一個(gè)字符,并顯示在屏幕上,但直到輸入回車鍵時(shí)才結(jié)束輸入,第一個(gè)字符為其函數(shù)的返
回值。
05.選擇結(jié)構(gòu)
一、if 語句:
一般格式:
if(表達(dá)式) 語句;
表示:當(dāng)“表達(dá)式”成立時(shí),則執(zhí)行“語句”;否則跳過“語句”;
如:if (a>b) printf(“a>b!”);
例:若用戶輸入的數(shù)為 3 的倍數(shù),則顯示”O(jiān)K” #include
main()
{
int a;
scanf(“%d”,&a);
if(a %3= =0) printf(“OK”);
}
二、if-else 語句:
一般格式:
if (表達(dá)式)
語句 1;
else
語句 2;
例:給出用戶輸入的兩個(gè)整數(shù)的較大者
#include
main()
{
int a,b;
scanf(“%d,%d”,&a,&b);
if(a>b)
printf(“the max=%d”,a);
else
printf(“ the max=%d”,b);
}
三、if 語句的嵌套
1、if 子句中嵌套:
? if(表達(dá)式 1)
if(表達(dá)式 2) 語句 1;
else 語句 2;
else 語句 3; ? if(表達(dá)式 1)
{ if(表達(dá)式 2) 語句 1; }
else 語句 2;
2、else 子句中嵌套
? if (表達(dá)式 1) 語句 1;
else
if(表達(dá)式 2) 語句 2;
else 語句 3; ? if(表達(dá)式 1) 語句 1;
else
if(表達(dá)式 2) 語句 2;
3、嵌套一般格式:
if (表達(dá)式 1) 語句 1;
else if (表達(dá)式 2) 語句 2;
else if (表達(dá)式 3) 語句 3 ; …
else if(表達(dá)式 n) 語句 n;
else 語句 n+1;
例:將用戶輸入的成績按以下規(guī)則轉(zhuǎn)換成等級成績:
分?jǐn)?shù): 90~100 等級:優(yōu)
分?jǐn)?shù): 80~89 等級:良
分?jǐn)?shù): 70~79 等級:中
分?jǐn)?shù): 60~69 等級:及格
分?jǐn)?shù): 60 以下 等級:不及格

#includemain()
{int d;
printf(“輸入分?jǐn)?shù):”);
scanf(“%d”,&d);
if(d>=90 ) printf(“優(yōu)”);
else if(d>=80) printf(“ 良”);
else if(d>=70) printf(“ 中”);
else if(d>=60) printf(“ 及格”);
else printf(“ 不及格”);
}

四、條件語句:
表達(dá)式 1 ? 表達(dá)式 2 :表達(dá)式 3
執(zhí)行的過程:若表達(dá)式 1 的值為非 0 時(shí),該條件語句的職位表達(dá)式 2,否則為表達(dá)式 3;
例:求一個(gè)整數(shù)的絕對值

#includemain()
{int i,absi;
scanf(“%d”,&i);
absi=i>0 ? i : -i;
printf(“%d 絕對值是%d\n”,i,absi);
}

五、switch 語句
switch (表達(dá)式)
{
case 常量表達(dá)式 1:
語句 1 ;
break;
case 常量表達(dá)式 2:
語句 2 ;
break; …
case 常量表達(dá)式 n:
語句 n ;
break;
default:
語句 n+1;
}
例:商店賣貨物,每一件 3.5 元,按購買的數(shù)量給與優(yōu)惠:
購買 100 件,優(yōu)惠 5%;
購買 200 件以上,優(yōu)惠 6%;
購買 300 件以上,優(yōu)惠 8%;
購買 400 件以上,優(yōu)惠 10%;
購買 500 件以上,優(yōu)惠 15%;

#includemain()
{int n;
float p,price;
scanf("%d",&n);
switch(n/100)
{case 1:
p=0.05;
break;
case 2:
p=0.06;
break;
case 3:
p=0.08;
break;
case 4:
p=0.10;
break;
case 5:
p=0.15;
break;
}
price=3.5*n*(1-p);
printf("%應(yīng)付款=%7.2f\n",price);
}

06.循環(huán)結(jié)構(gòu)
一、for 語句:
一般格式: for( 表達(dá)式 1 ;表達(dá)式 2;表達(dá)式 3) 語句;
表示:先計(jì)算表達(dá)式 1 的值,再計(jì)算表達(dá)式 2 的值,若表達(dá)式 2 的值為 0,則跳出循環(huán)體,轉(zhuǎn)去執(zhí)行循環(huán)體后面的程序
命令;若表達(dá)式 2 的值非 0,則執(zhí)行循環(huán)體中的語句,接著計(jì)算表達(dá)式 3 的值;而后,再從計(jì)算表達(dá)式 2 的值開始重復(fù)上
訴操作,直到表達(dá)式 2 的值為 0 時(shí)結(jié)束。
例:計(jì)算 sum=1+2+3+…+100 的值” #include

main()
{int i,sum;
sum=0;
for(i=1;i<=100;i++)
sum=sum+i;
printf(“sum=%d”,sum);
}

二、while 語句:
一般格式:
while<表達(dá)式>
語句;
表示:先計(jì)算表達(dá)式的值,若為非 0,則執(zhí)行循環(huán)體語句,然后再計(jì)算表達(dá)式的值,重復(fù)上述過程,直到計(jì)算表達(dá)
式的值為 0 時(shí)結(jié)束循環(huán)。
例:計(jì)算 sum=1+2+3…+100 的值

#includemain()
{int i,sum;
i=1;
sum=0;
while(i<=100)
{sum=sum+i;
i++;
}
printf(“sum=%d”,sum);
}

三、do-while 語句
1、一般格式:
Do
語句;
While<表達(dá)式>;
表示:先執(zhí)行一次循環(huán)語句,然后計(jì)算表達(dá)式的值,若表達(dá)式的值非 0,則再執(zhí)行循環(huán)語句,然后從計(jì)算表達(dá)式的值
開始重復(fù)上述過程,直到計(jì)算表達(dá)式的值為 0,循環(huán)結(jié)束。
例:計(jì)算 sum=1+2+3…+100 的值

#includemain()
{int i,sum;
i=1;
sum=0;
do
{sum=sum+i;
i++;
}while(i<=100);
printf(“sum=%d”,sum);
}

四、break 和 continue 語句:
1、break 語句:
使用 break 語句可以提前結(jié)束由 while、for、do-while 語句構(gòu)成的循環(huán),而去執(zhí)行循環(huán)下面的語句。
例:判定用戶輸入的一個(gè)數(shù)是否為素?cái)?shù)

#includemain()
{int a,d;
printf(“請輸入一個(gè)整數(shù):”);
scanf(“%d”,&a);
for(d=2;d

2、continue:
continue 語句用于 for、while、do-while 語句中,其作用是結(jié)束本次循環(huán),接著進(jìn)入下一次是否執(zhí)行循環(huán)的判斷。
例:輸入 10 個(gè)非 0 的整數(shù)并求和。

#inclu demain()
{int i,n=0,sum=0;
while(n<10)
{printf(“ 請輸入整數(shù):”);
scanf(“%d”,&i);
if(i==0)
continue; // 若為 0,則繼續(xù)輸入下一個(gè)數(shù)
sum+=i;
n++;
}
printf(“%d”,sum);
}

五、三種循環(huán)的比較:
1、三種循環(huán)可以處理同一個(gè)問題,一般情況下可以相互代替;
2、while 和 do-while 循環(huán)語句只在 while 語句之后指定循環(huán)條件,在循環(huán)體內(nèi)應(yīng)包含使循環(huán)趨于結(jié)束的語句;for 循
環(huán)語句可以在<語句 3>中包含使循環(huán)趨于結(jié)束的語句;
3、對于 while 和 do-while 循環(huán)語句,循環(huán)變量的初始化應(yīng)在 while 和 do-while 語句之前完成;for 循環(huán)語句可以在<
表達(dá)式 1>中進(jìn)行;
4、while 和 for 語句是先判斷表達(dá)式,后執(zhí)行循環(huán);do-while 循環(huán)語句是先執(zhí)行循環(huán),后判斷表達(dá)式;
07 數(shù)組
數(shù)組是一組具有同一名字、不同下標(biāo)的變量。數(shù)組中帶下標(biāo)的變量稱為數(shù)組元素,每個(gè)數(shù)組元素由數(shù)組名字和下標(biāo)唯一地
來確定;同一數(shù)組中的元素?cái)?shù)據(jù)類型相同。
一、一維數(shù)組:
1、定義:只有一個(gè)下標(biāo)的數(shù)組。
2、定義格式: 類型說明符 數(shù)組名[常量表達(dá)式]
如: int a[3]; //定義了一個(gè)一維數(shù)組,名稱為 a,數(shù)據(jù)類型為整型,含 3 個(gè)數(shù)組元素 a[0]、a[1]、a[2];

說明: ?類型說明符:是指數(shù)組的數(shù)據(jù)類型; ?常量表達(dá)式:是一個(gè)值為正整數(shù)的表達(dá)式,用來表示該數(shù)組的元素的個(gè)數(shù),即數(shù)組的大??;

3、數(shù)組的引用: 數(shù)組名[下標(biāo)]; 如: a[2]
4、數(shù)組的初始化:
?對數(shù)組的全部因素賦初值:
如: int a[3]={10,20,30}; 則該語句執(zhí)行后,a[0]=10,a[1]=20,a[2]=30;
? 對數(shù)組的部分元素賦初值:
如:int b[3]={12,11}; 則該語句執(zhí)行后,b[0]=12,b[1]=11,a[2]=0;
?對數(shù)組的全部元素賦初值時(shí),也可將數(shù)組定義為一個(gè)不確定長度的數(shù)組:
如:int c[ ]={10,15,20};則該語句執(zhí)行后,數(shù)組 c 的長度自動確定為 3,c[0]=10,c[1]=15,c[2]=20;
例:將輸入的 10 個(gè)整數(shù)按反序輸出

#includemain()
{int a[10],i;
printf("請輸入 10 個(gè)整數(shù):");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf(" 反序輸出:");
for(i=9;i>=0;i--)
printf("%d",a[i]);
printf("\n");
}

例:計(jì)算 Fibonacci 數(shù)列的前 20 項(xiàng)
Fibonacci 數(shù)列定義:
f(1)=1
f(2)=1
f(n)=f(n-1)+f(n-2) (n>2)

#includemain()
{int f[21],i;
f[1]=1;
f[2]=1;
for (i=3;i<=20;i++)
f[i]=f[i-1]+f[i-2];
for (i=1;i<=20;i++)
{printf("%8d",f[i]); //每個(gè)數(shù)字占 8 位
if(i%5==0) printf("\n"); //按 5 個(gè)一行輸出
}
}

二、二維數(shù)組:
具有兩個(gè)下標(biāo)的數(shù)組為二維數(shù)組。
1、定義格式: 類型說明符 數(shù)組名[常量表達(dá)式][常量表達(dá)式]
如: int a[3][2]; //定義了一個(gè)二維數(shù)組,名稱數(shù)組名為 a,含有 6 個(gè)元素:a[0][0]、a[0][1]、a[1][0]、a[1][1]、a[2][0]、
a[2][1];
說明:
?第一個(gè)常量表達(dá)式指出的是數(shù)組的行數(shù);第二個(gè)常量表達(dá)式指出的是數(shù)組的列數(shù);
?二維數(shù)組元素的順序是:按行存放;即先順序存放第一行的元素,再存放第二行的元素…以此類推;
其存儲格式:
a[0][0] a[0][1]
a[1][0] a[1][1]
a[2][0] a[2][1]
2、二維數(shù)組的初始化:
同一維數(shù)組。
?分行為二維數(shù)組賦初值:
int a[3][2]={{1,2},{3,4},{5,6}};則該語句執(zhí)行后,a[0][0]=1, a[0][1]=2, a[1][0]=3,a[1][1]=4, a[2][0]=5, a[2][1]=6;
?按數(shù)組在存儲時(shí)的排列次序賦初值:
int a[3][2]={1,2,3,4,5,6}; ?對數(shù)組的部分元素賦初值:
int a[3][2]={{1},{2,3},{4}}; ?忽略第一維的長度,對二維數(shù)組賦初值:
int a[][2]={1,2,3,4,5,6}; 該語句執(zhí)行后,C 語言系統(tǒng)自動計(jì)算出第一維的長度為 6/2=3,同樣有:a[0][0]=1, a[0][1]=2,a[1][0]=3,a[1][1]=4, a[2][0]=5, a[2][1]=6;
例:將兩個(gè) 2 行 3 列的矩陣相加,并顯示結(jié)果。

#includemain()
{int a[2][3]={1,3,5,7,9,11};
int b[2][3]={2,4,6,8,10,12};
int c[2][3],sum=0,i,j;
for(i=0;i<2;i++) //i 表示第 1 行到第 3 行
for(j=0;j<3;j++) //j 表示第 1 列到第 3 列
c[i][j]=a[i][j]+b[i][j];
for(i=0;i<2;i++)
for (j=0;j<3;j++)
{printf(“%5d”,c[i][j]);
if((j+1)%3==0) printf(“\n”);
}
}

08 字符數(shù)組
字符數(shù)組是用來存放字符的數(shù)組,字符數(shù)組中的一個(gè)元素存放一個(gè)字符。
1、字符數(shù)組的定義:
char a[10];
**2、字符串:**字符串是借助于字符數(shù)組來存放的,并規(guī)定以字符’\0’(占用存儲空間,但不計(jì)入字符串的長度)為字符串
的結(jié)束標(biāo)記。
3、字符串處理函數(shù):
?scanf(“%s”,a); //以格式符%s 輸入字符串,輸入的字符串自動以’\0’結(jié)尾;輸入的字符數(shù)組名前不加”&”前綴;
?printf(“%s”,a); //以格式符%s 輸出字符串,輸出的字符串以’\0’結(jié)尾;
?gets(a); //a 為字符數(shù)組名,輸入的字符可以包含’\0’字符;
?puts(a); //a 為字符數(shù)組名,輸入的字符可以包含’\0’字符;
?strcat(字符串 1,字符串 2); //把字符串 2 連接到字符串 1 后;
?strcpy(字符數(shù)組 1,字符串 2); //把字符串 2 拷貝到字符數(shù)組 1 中;
如:str 為字符數(shù)組,將字符常量賦予 str: strcpy (str ,“abcdef”); ?strcmp(字符串 1,字符串 2); //比較兩個(gè)字符串,若相等,則返回 0,若字符串 1>字符串 2,則返回 1,否則返回-1;
如:比較兩個(gè)字符串 str1、str2:if(strcmp(str1,str2)==1) printf(“str1>str2”); ?strlen(字符數(shù)組); //返回字符數(shù)組中包含的字符串的長度;
?strlwr(字符串); //將字符串的大寫字符轉(zhuǎn)換為小寫;
?strupr(字符串); //將字符串的小寫字符轉(zhuǎn)換為大寫;
例:不使用 strlen()函數(shù),計(jì)算一個(gè)字符串的長度

#includemain()
{int i=0;
char str[30];
printf(“ 輸入一個(gè)字符串:”);
gets(str);
while (str[i]!=’\0’)
i++;
printf(“字符串長度為:%d\n”,i);
}

例:將一字符串逆轉(zhuǎn)

#include#includemain()
{char str[20],temp;
int i,j;
printf(“輸入一個(gè)字符串:”);
gets(str);
for(i=0;ij=strlen(str)-1;
temp=str[i];
str[i]=str[j-i];
str[j-i]=temp;
}
printf(“倒置的字符串為:%s\n”,str);
}

09 指針
字符數(shù)組是用來存放字符的數(shù)組,字符數(shù)組中的一個(gè)元素存放一個(gè)字符。
1、字符數(shù)組的定義:
char a[10];
2、字符串: 字符串是借助于字符數(shù)組來存放的,并規(guī)定以字符’\0’(占用存儲空間,但不計(jì)入字符串的長度)為字符串
的結(jié)束標(biāo)記。
3、字符串處理函數(shù):
?scanf(“%s”,a); //以格式符%s 輸入字符串,輸入的字符串自動以’\0’結(jié)尾;輸入的字符數(shù)組名前不加”&”前綴;
?printf(“%s”,a); //以格式符%s 輸出字符串,輸出的字符串以’\0’結(jié)尾;
?gets(a); //a 為字符數(shù)組名,輸入的字符可以包含’\0’字符;
?puts(a); //a 為字符數(shù)組名,輸入的字符可以包含’\0’字符;
?strcat(字符串 1,字符串 2); //把字符串 2 連接到字符串 1 后;
?strcpy(字符數(shù)組 1,字符串 2); //把字符串 2 拷貝到字符數(shù)組 1 中;
如:str 為字符數(shù)組,將字符常量賦予 str: strcpy (str ,“abcdef”); ?strcmp(字符串 1,字符串 2); //比較兩個(gè)字符串,若相等,則返回 0,若字符串 1>字符串 2,則返回 1,否則返回-1;
如:比較兩個(gè)字符串 str1、str2:if(strcmp(str1,str2)==1) printf(“str1>str2”); ?strlen(字符數(shù)組); //返回字符數(shù)組中包含的字符串的長度;
?strlwr(字符串); //將字符串的大寫字符轉(zhuǎn)換為小寫;
?strupr(字符串); //將字符串的小寫字符轉(zhuǎn)換為大寫;
例:不使用 strlen()函數(shù),計(jì)算一個(gè)字符串的長度

#includemain()
{int i=0;
char str[30];
printf(“ 輸入一個(gè)字符串:”);
gets(str);
while (str[i]!=’\0’)
i++;
printf(“字符串長度為:%d\n”,i);
}

例:將一字符串逆轉(zhuǎn)

#include#includemain()
{char str[20],temp;
int i,j;
printf(“輸入一個(gè)字符串:”);
gets(str);
for(i=0;ij=strlen(str)-1;
temp=str[i];
str[i]=str[j-i];
str[j-i]=temp;
}
printf(“倒置的字符串為:%s\n”,str);
}

10 函數(shù)
C 程序是由函數(shù)組成的,有且只有一個(gè)主函數(shù) main(),由主函數(shù)調(diào)用其他函數(shù),其他各函數(shù)也可以相互調(diào)用。
1、函數(shù)的定義:
一般格式:
類型說明 函數(shù)名(形式參數(shù)表) //函數(shù)頭
{
說明部分; //函數(shù)體
執(zhí)行部分;
}
其中:類型說明:是指函數(shù)返回值的數(shù)據(jù)類型;默認(rèn)為 int;
函數(shù)名:為一標(biāo)識符;代表了函數(shù)的入口地址;
形式參數(shù)表:是用逗號分隔的一組變量說明,指出每一個(gè)形式參數(shù)的類型和名稱;
函數(shù)值的返回:有時(shí),調(diào)用函數(shù)是為了計(jì)算一個(gè)結(jié)果,這是需要使用返回語句將就是結(jié)果返回給主調(diào)函數(shù),
此值即為函數(shù)的返回值;
一般格式:return (表達(dá)式); 其中,圓括號可以省略;
當(dāng)函數(shù)不需要返回值時(shí),可以寫成:return;
例:編寫一個(gè)函數(shù) power (),用于計(jì)算 x 的 n 次方的值

#includefloat power(float x,int n)
{int i;
float s;
s=1;
for(i=1;i<=n;i++)
s=s*x;
return (s);
}

2、函數(shù)的調(diào)用:
C 語言中函數(shù)調(diào)用的一般格式:
函數(shù)名(實(shí)參表);
如:float f;
f=power(3,10);
3、數(shù)組作為函數(shù)的參數(shù)
?數(shù)據(jù)元素作為函數(shù)實(shí)參
在函數(shù)調(diào)用時(shí),把數(shù)組元素作為實(shí)參傳遞給形參,實(shí)現(xiàn)單向的值傳遞;
如:判別各個(gè)元素的值,大于 0,則輸出該值,小于或等于 0,則輸出 0

#includevoid func(int x)
{if (x>0)
printf(“%4d”,x);
else
printf(“%2d”,0);
}
main()
{int a[5],i;
printf(“請輸入 5 個(gè)數(shù):”);
for(i=0;i<5;i++)
scanf(“%d”,&a[i]);
for(i=0;i<5;i++)
func(a[i]); //將數(shù)組元素作為實(shí)參傳遞
}

?數(shù)組名作為函數(shù)參數(shù)
(1)使用數(shù)組名作為函數(shù)參數(shù)時(shí),形參和實(shí)參是同類型的數(shù)組;
(2)在主調(diào)函數(shù)和被調(diào)函數(shù)中分別定義數(shù)組;
(3)數(shù)組名代表了數(shù)組的起始地址,數(shù)組名作為函數(shù)參數(shù)傳遞的是該數(shù)組的起始地址,而不是該數(shù)組元素的值;
例:將數(shù)組中的元素的和計(jì)算并顯示出來。

#includefunc(int b[])
{int sum=0,i;
for(i=0;i<10;i++)
sum+=b[i];
return sum;
}
main()
{int a[]={1,2,3,4,5,6,7,8,9,10},s;
s=func(a); //將數(shù)組 a 組為參數(shù)傳遞給函數(shù) func
printf("s=%d",s);
}

4、內(nèi)部函數(shù)和外部函數(shù)
? 內(nèi)部函數(shù):在定義函數(shù)時(shí),在其類型名之前加“static”,則所定義的函數(shù)為內(nèi)部函數(shù),只能被所在的源文件中的函數(shù)
調(diào)用,其他源文件若有同名的內(nèi)部函數(shù),互不干擾。
? 外部函數(shù):在定義函數(shù)時(shí),在其類型名之前加“extern”(也可省略),則所定義的函數(shù)為外部函數(shù)(也稱全局函數(shù)),
可被其他源程序的函數(shù)調(diào)用。
如:static int func_1() //內(nèi)部函數(shù)
{
… }
extern func_2 () //外部函數(shù)
{
… }
綜合測試
給定程序?yàn)椋汉镒拥谝惶煺氯舾蓚€(gè)桃子,當(dāng)即吃了一半,還不過癮,又多吃了一個(gè)。以后每天早上都吃了前一天
剩下的一半零一個(gè)。到第 10 天早上只剩一個(gè)桃子。求第一天共摘了多少桃子。由主函數(shù)輸出第一天共摘桃子數(shù)。輸出結(jié)
果為 1534。

#includeint fun(int n)
{}
main()
{int n=10,sum;
sum=fun(n);
printf("sum=%d",sum);
}

解析: 根據(jù)題意,第 n+1 天剩下的桃子數(shù)為 x(n+1),第 n 天剩下的桃子數(shù)為 x(n),則滿足:x(n)=2*(x(n+1)+1);
第十天剩下 1 個(gè)桃子,可推算出第九天剩下的數(shù)量;可利用 for 循環(huán),遞推出其他天數(shù)剩下的桃子數(shù):

int fun(int n)
{int x,i;
x=1; //第十天剩下的數(shù)量
for(i=n-1;i>=1;i--) //從第九天開始推算
{x=2*(x+1);
}
return x;
}

給定程序的功能是:從鍵盤輸入 10 個(gè)整數(shù)求其中的大值。

#includemain()
{int fun(int b[],int n);
int max;
int i,a[10];
for(i=0;i<10;i++)
scanf("%d",&a[i]);
max=fun(a,10);
printf("max=%d",max);
}
int fun(int b[],int n)
{}

**解析:**比較大值的一般算法:設(shè)置一個(gè)變量 max,第一步:將第一個(gè)數(shù)賦予 max;第二步:利用 for 循環(huán),將剩下的 9
個(gè)數(shù)依次與 max 相比較,每次比較,max 均等于大的數(shù);

int fun(int b[],int n)
{int max,i;
max=b[0]; //將第一個(gè)數(shù)賦予 max
for(i=1;i<=n-1;i++) //將剩下的 9 個(gè)數(shù)依次與 max 比較;
if(max

給定程序的功能是:將給定字符串中所有的小寫字母轉(zhuǎn)換成大寫字母(大寫字母 A 的 ASCII 碼為 65,小寫字母 a
的 ASCII 碼為 97)。

#include#includevoid hs(char c[])
{}
main()
{char a[]={"AgRbhLfFGjI"};
hs(a);
printf("%s",a);
}

**解析:**將給定字符串的每一個(gè)字符取出,判斷是否介于’a’和’z’之間,若是,則將其轉(zhuǎn)換為大寫字符,即其 ASC 碼值-32。

void hs(char c[])
{unsigned int i;
for(i=0;i='a' && c[i]<='z')
c[i]=c[i]-32;
return;
}

給定程序的功能是:求 1+2+3+4+5+6+…+n(n 的值由鍵盤輸入)。

includemain()
{int fac(int n);
int n,sum;
scanf("%d",&n);
sum=fac(n);
printf("sum=%d",sum);
}
int fac(int n)
{}

解析: 函數(shù) fac 的功能是計(jì)算 1-n 之間整數(shù)的累計(jì)和。

int fac(int n)
{int i,sum;
sum=0; //累計(jì)和的初始值為 0
for(i=1;i<=n;i++)
sum+=i; //將 1-n 之間的整數(shù)累加起來
return sum;
}

給定程序的功能是:從鍵盤輸入 10 個(gè)整數(shù),求其中的最小值。

#include "stdio.h" main()
{int fun(int x[],int n);
int a[10],i,min;
printf("please input 10 numbers:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
min=fun(a,10);
printf("min=%d\n",min);
}
int fun(int x[],int n)
{}

解析: 比較最小值的一般算法:設(shè)置一個(gè)變量 min,第一步:將第一個(gè)數(shù)賦予 min;第二步:利用 for 循環(huán),將剩下的 9
個(gè)數(shù)依次與 min 相比較,每次比較,min 均等于小的數(shù);

int fun(int x[],int n)
{int min,i;
min=x[0]; //將第一個(gè)數(shù)賦予 min
for(i=1;i<=n-1;i++) //將剩下的 9 個(gè)數(shù)依次與 min 比較;
if(min>x[i]) min=x[i];
return min;
}

請?zhí)砑訄D片描述

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

名稱欄目:2022C語言知識點(diǎn)大全【詳細(xì)、必備】-創(chuàng)新互聯(lián)
網(wǎng)頁路徑:http://muchs.cn/article20/dsidjo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航網(wǎng)頁設(shè)計(jì)公司、服務(wù)器托管動態(tài)網(wǎng)站、網(wǎng)站策劃、面包屑導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)