C語言學習筆記(三)

2021-08-28 17:25:32 字數 3990 閱讀 7416

1.控制語句

①if()…else…     (條件語句)

②for()…             (迴圈語句)

③while()…         (迴圈語句)

④do ... while()    (迴圈語句)

⑤continue          (結束本次迴圈語句)

⑥break               (中止執行switch或迴圈語句)

⑦switch              (多分支選擇語句)

⑧return               (從函式返回語句)

⑨goto                 (最好不使用)

2.函式呼叫語句

3.表示式語句4.空語句

可以用{}把一些語句和宣告括起來成為復合語句(又稱語句塊)。

5.復合語句

賦值運算子

復合的賦值運算子

x 運算子 = 表示式等價於x=x 運算子 表示式

賦值表示式

變數   賦值運算子   表示式(表示式又可以是另乙個表示式eg.a=(b=8);)

賦值表示式不能作為左值。如(a=b)=3*4和a=(a=b)=3*4錯誤。

a+=a-=a*a  正確

將賦值表示式作為表示式的一種可以在其他語句中進行賦值操作:printf("%d",a=b);

賦值過程中的型別轉換

如果運算子兩側型別一樣直接進行賦值,如果不一致,但都是算術型別時,在賦值時要進行型別轉換(有可能精度會有損失,

高位截斷或小數字精度丟失)

賦值表示式和賦值語句

賦值表示式是表示式,它可以出現在其他表示式中,可以在條件判斷等語句中進行賦值操作。

變數賦初值

int a=3,b=3,c=3;不能寫成int a=b=c=3;

標準輸入輸出函式(使用前#include):

putchar()輸出乙個字元

getchar()輸入乙個字元

printf()格式輸出

scanf()格式輸入

puts()輸出字串

gets()輸入字串

兩種#include指令形式的區別是:用尖括號形式(如)時,編譯系統從存放c編譯系統的子目錄中去找所要包含的檔案(如:stdio. h),這稱為標準方式。如果用雙撇號形式(如、tdio. h"),在編譯時,編譯系統先在使用者的當前目錄(一般是使用者存放源程式檔案的子目錄)中尋找要包含的檔案.若找不到,再按標準方式查詢。如果用#include指令是為了使用系統庫函式,因而要包含系統提供的相應標頭檔案,以用標準方式為宜,以提高效率。如果使用者想包含的標頭檔案不是系統提供的相應標頭檔案,而是使用者自己編寫的檔案(這種檔案一般都存放在使用者當前目錄中),這時應當用雙擻號形式,否則會找不到所需的檔案。如果該標頭檔案不在當前目錄中,可以在雙撤號中寫出檔案路徑(如#include "c\temp\file1.h"),以便系統能從中找到所需的檔案。

scanf(格式控制,位址列表)

1.輸入資料時格式必須和格式控制一樣才能識別(除變數外,格式控制中的其他字元也要輸入)。

2.格式控制後是變數位址,而不是變數名。

3.用%c輸入字元時,空格和轉義字元都作為有效字元輸入(連續輸入兩個字元不能用空格隔開)。

4.在輸入數值資料時,如輸入空格,回車,tab鍵或遇到非法字元(不屬於數值的字元),認為該資料結束。

scanf函式中用到的格式字元:

格式字元

說明d,i

用來輸入有符號十進位制整數

u用來輸入無符號十進位制整數

o用來輸入無符號八進位制整數

x,x用來輸入無符號十六進製制整數,大小寫作用相同

c用來輸入單個字元

s用來輸入字串,將字串送到乙個字元陣列中,在輸入時以非空白字元開始,以第乙個空白字元結束。字串以串結束標誌『\0』作為最後乙個字元。

f用來輸入實數,可用小數形式或指數形式輸入

e,e,g,g

與f作用相同,e與f、g可以相互替換(大小寫作用相同)

scanf中的格式附加字元

字元說明

l用於輸入長整形資料(可用%ld,%lo,%lx,%lu)以及double型資料(用%lf或%le)

h用於輸入短整形資料(可用%hd,%ho,%hx)

域寬指定輸入資料所佔寬度(列數),域寬應為正整數

*表示本輸入項在讀入後不賦給相應等變數

printf(格式控制,輸出列表)

格式控制使用雙撇號括起來的乙個字串,稱轉換控制字串,簡稱格式字串,包含以%開頭的格式宣告和普通字元。

輸出列表與格式宣告一一對應,可以是常量,變數或表示式。

格式字元:

1.d格式符

用來輸出有符號十進位制整數,可以在格式宣告中指定輸出資料的域寬,如%5d(資料顯示在五列區域的右側)

若輸出long(長整形)資料則為%ld,輸出long long(雙長整形)資料則為%lld

2.c格式符

用來輸出乙個字元。乙個整數如果在0~127範圍內可以用%c使之按照對應字元形式輸出,如果整數較大就會將其最後乙個位元組的資訊以字元形式輸出。

3.s格式符

用來輸出乙個字串

4.f格式符

用來輸出實數(包括單精度,雙精度,雙長精度)以小數形式輸出,有幾種用法:

(1)基本型,用%f

不指定輸出資料長度,由系統根據資料的實際情況決定資料所佔的列數。系統處理的一般方法是:實數中的整數部分全部輸出,小數部分輸出6位

(2)指定資料寬度和小數字數,用%m.nf

如果把小數部分指定為0,則不僅不輸出小數,而且小數點也不輸出。

(3)輸出資料向左對齊,用%-m.nf

5.e格式符

指定以指數形式輸出實數,要控制寬度也可以用%m.ne的形式進行格式宣告,e也要用e,但是輸出時e也會相應變成e

6.i格式符

與d作用相同,按十進位制整數資料實際長度輸出,一般習慣用%d而不用%i

7.o格式符

以八進位制整數形式輸出

8.x格式符

以十六進製制數形式輸出整數

9.u格式符

用來輸出無符號型資料,以十進位制整數形式輸出

10.g格式符

用來輸出浮點數,系統自動選擇f或e格式輸出,選擇其中長度較短的格式,不輸出無意義的0

格式宣告的一般形式:

%  附加字元   格式字元

printf函式中用到的格式字元

格式字元

說明d,i

以帶符號的十進位制形式輸出整數(正數不輸出符號)

o以八進位制無符號形式輸出整數(不輸出前導符0)

x,x以十六進製制無符號形式輸出整數(不輸出前導符0x),用x則輸出十六進製制數的a~f時以小寫形式輸出。用x時,則以大寫字母輸出

u以無符號十進位制形式輸出整數

c以字元形式輸出,只輸出乙個字元

s輸出字串

f以小數形式輸出單、雙精度,隱含輸出6位小數

e,e以指數形式輸出實數,用e時指數以e表示,用e時指數以e表示

g,g選用%f或%e格式中輸出寬度短的一種格式,不輸出無意義的0,用g時,若以指數形式輸出,則指數以大寫表示

printf函式中常用的格式附加字元

字元說明

l用於長整型整數,可加在格式符d、o、x、u前面

m(乙個正整數)

資料最小寬度

n(乙個正整數)

對實數,表示輸出n位小數,對字串,表示擷取的字元個數

-輸出的數字或字元在域內向左靠

注意:輸出物件的型別應該與宣告的輸出格式相匹配,否則將出現錯誤。

除了x,e,g外,其他格式字元必須用小寫字母。

格式控制字串內可包含轉義字元。

如果要輸出%可用兩個連續的%%輸出

C語言學習筆記(三) 函式

c語言學習筆記 三 函式 函式的過載 函式名相同,函式的引數型別或者引數的數量不同 int max2 int a,int b int max3 int a,int b,int c 這就是函式的過載,編譯器會自動選擇使用哪個函式 函式的重寫 c 子類的虛函式重寫父類的虛函式,函式名相同,函式的引數型別...

C語言學習(三)

程式的模組化設計 程式設計練習 課外話 挫折是人生的常態,在我們遭遇疫情,不應一味放大痛苦讓其充塞心靈。我們要學會調適心弦,坦然面對,全國人民團結一致,就一定會戰勝疫情。祖國加油 武漢加油 你的答案 陣列程式的模組化設計 所謂陣列,是有序的元素序列。1 若將有限個型別相同的變數的集合命名,那麼這個名...

C語言學習筆記之陣列(三)

定義字元陣列和數值型的陣列格式是一樣的,資料型別為char型。如char a 10 這就定義了長度為10的陣列,每個元素都存放乙個字元。對字元的初始化,最容易理解的是用 初始化列表 把各個字元一次賦給陣列中的元素。例如 char a 10 把這十個字元一次賦給a 0 a 9 如果定義字元陣列不進行初...