C primer plus第六章 第七章筆記

2021-10-05 18:45:41 字數 3187 閱讀 3527

補第四章printf()、scanf()筆記

關於printf()、scanf()返回值問題:

(1)printf()函式返回值,他返回的是列印字元的個數,是其列印輸出功能的附帶用途。具體應用如下

(2)scanf()函式返回成功讀取的項數。如果沒有讀取任何項,且需要讀取乙個數字而使用者卻輸入乙個非數值字串,scanf()便返回0。

(1)while迴圈通用形式:

while(expression)

statement

statement可以是以分號結尾的語句,也可以是用花括號括起來的復合語句。

expression部分可以使用任何表示式,如果其為非零則一直執行statement。

(2)使用while語句時,只有在測試條件後面的單獨語句(簡單語句或復合語句)才是迴圈部分。如果使用復合語句應加花括號。否則會出現死迴圈的情況。

(1)關係運算子可用於比較字元,但是不能用來比較字串。

(2)比較浮點數時盡量選擇《和》,因為浮點數的捨入誤差會將原本邏輯上相等的兩個數看做不相等。

(3) 對於c語言而言,關係表示式為真時求值為1,關係表示式為假求值為0,但是c語言會將所有非零數字視為真。

(4)關係運算子的結合律也是從左往右

,運算子的優先順序如下:

類似於+=、-=、/=之類的調整如下:

a+=2 等價於a=a+2

a-=2 等價於a=a-2

(1)基本形式:for (initialize;test;update)

statement

第乙個表示式是初始化,在for迴圈時開始時執行一次,第二個表示式是測試條件(即判斷表示式),第三個表示式是執行更新,三個表示式之間用分號隔開。三個表示式可以省略乙個或多個,但是不能省略表示式之間的分號。

(2)第乙個表示式可以不是給變數賦值,也可以使用printf()。

(1)逗號運算子的順序從左往右求值。

(2)逗號表示式的值是右側項的值,例如

a=(200,300);其結果為a=300。

(3)類似於printf()、scanf()中的逗號為分隔符,不是逗號運算子。

(1)for 、 while 兩個迴圈稱做入口條件迴圈 ,即先判斷再執行,而do while迴圈被稱作出口條件迴圈 ,即先執行再判斷 。

(2)其通用形式:

dostatement

while (expression);

do while 迴圈是以分號結尾的。

巢狀迴圈指在乙個迴圈內包含著另乙個迴圈,巢狀迴圈常用於按行和列顯示資料,乙個迴圈處理一行的的所有列,另乙個迴圈處理所有行。

(1)if語句被稱為分支語句或i選擇語句,它相當於乙個交叉點,程式用來選擇執行兩個分支中的一條。

(2)其基本形式是

if (expression)

statement

通常情況下expression是關係表示式,根據其的真假來決定是否執行statement。

(3)即使if語句由復合語句構成,但整個if語句仍被視為一條語句。

(1)如果在if 和else之間執行多條語句,則必須將這多條語句用花括號括起來,因為if和else之間只允許有一條語句。其結構如下:

(2)關於if和else的配對,如果沒有花括號則else與離他最近的if配對,如果存在花括號則與花括號外最近的if配對。

(3)在使用if else語句時也可在else語句中繼續使用if語句構成多層巢狀語句。基本結構如下:

(4)在使用語句時為了提高**的可讀性,盡量使用花括號將同一語句括起來。

(1)getchar()函式不帶有任何引數,ch =getchar();等價於scanf("%c",&ch);

(2)putchar()函式列印他的引數,putchar(ch);等價於printf("%c",ch);

(3)因為這兩個函式只處理字元,所以不需要轉換說明,因此比通用的printf()和scanf()函式更快更簡潔。

(1) ctype.h標頭檔案中包含了專門處理字元的函式,具體如下:

(2)字元對映函式不會修改原始的引數,這些函式只會返回已修改的值

字元對映函式如下:

(1)優先順序級的問題

!的優先順序比圓括號的優先順序低,但是比乘法運算子的優先順序高,與遞增運算子的的優先順序相同。

&&的優先順序比||的優先順序高但是兩者的優先順序都比關係運算子的優先順序低,比賦值運算子的優先順序高。

(1)一般形式為:expression1?expression2: expression3

(2)其基本含義為如果expression1 為真,則選擇expression2 反之則選擇expression3。

(1)continue語句用來跳過一次迭代中剩餘的部分,直接返回上一級函式』。

(2)break語句用來終止迴圈直接跳入到下一環節。具體區別如下:

(1)相比與多重if else語句,運用switch語句可以更加簡潔的寫出多種情況下的語句選擇,其一般結構如下:

(2)而break語句的存在則可以讓程式有選擇的終止switch語句的輸出,直接跳入下一過程:

goto 同break、continue一樣同為跳轉語句,但是在c語言中應避免使用。

C Primer Plus第六章摘要

2020年7月20 21 22日 第六章 分支語句和邏輯運算子 1.c 規定 運算子是乙個順序點,先修改左側的值,再對右側的值進行判定。2.運算子的優先順序高於所有的關係運算子和算術運算子。3.c 從c語言繼承了乙個與字元相關的,非常方便的函式軟體包,它可以簡化諸如確定字元是否為大寫字母 數字 標點...

C Primer Plus 第六章部分習題

1 時間轉換 void time change else 執行結果 請輸入分鐘數 100 轉換成小時為 1.666667 轉換成秒為 6000.00 請輸入分鐘數 2 列印字元菱形 void print let else printf d n int c int rows 2 c 64 1 要列印的...

mysql第六章 第六章 mysql日誌

第六章 mysql日誌 一 錯誤日誌 錯誤日誌的預設存放路徑是 mysql 存放資料的地方 hostname.err 1.修改錯誤日誌存放路徑 mysqld log error data mysql mysql.log 2.檢視配置命令 show variables like log error 3...