1. 程式人生 > >C語言複習2(2018.11.13)

C語言複習2(2018.11.13)

邏輯運算子和邏輯表示式
&&邏輯與
||邏輯或
!邏輯非

!大於 算數運算子 大於 關係運算符 大於 &&和|| 大於賦值運算子

與運算子&&和或運算子||均為雙目運算子。具有左結合性。非運算子!為單目運算子, 具有右結合性。
“&&”和“||”低於關係運算符,“!”高於算術運算子。

if語句

if(表示式)
{
	語句1;
}
else
{
	語句2;
}

if語句的巢狀

if(表示式)
{
	if(表示式)
	{
		語句1;
	}
	else
	{
		語句2;
	}
}
else
{
	語句3;
}

條件運算子和條件表示式
表示式1?表示式2:表示式3
eg:

 if(a>b)  max=a;         
 else max=b; 
 //可用條件表示式寫為:
 max=(a>b)?a:b; 
 //執行該語句的語義是:如 a>b 為真,則把 a 賦予 max,否則把 b 賦予 max。 

使用條件表示式時,還應注意以下幾點

  1. 條件運算子的運算優先順序低於關係運算符和算術運算子,但高於賦值符。 因此 max=(a>b)?a:b 可以去掉括號而寫為 max=a>b?a:b
  2. 條件運算子?和:是一對運算子,不能分開單獨使用。
  3. 條件運算子的結合方向是自右至左。 例如: a>b?a:c>d?c:d 應理解為 a>b?a:(c>d?c:d) 這也就是條件表示式巢狀的情形,即其中的表示式 3 又是一個條件表示式。

SWITCH語句

 switch(表示式)
 {
            case 常量表達式 1:  語句 1;         
            case 常量表達式 2:  語句 2;        
             …           
             case 常量表達式 n:  語句 n;         
             default        :  語句 n+1;         
 } 

計算表示式的值。 並逐個與其後的常量表達式值相比較,當表示式的值與 某個常量表達式的值相等時, 即執行其後的語句,然後不再進行判斷,繼續執行後面所有 case 後的語句。如表示式的值與所有 case 後的常量表達式均不相同時,則執行 default 後 的語句。

eg:
輸入1-7的數字,輸出時星期幾

int main()
{
	int a;     
	printf("input integer number:    ");     
	scanf("%d",&a);     
	switch (a)
	{       
		case 1:printf("Monday\n");break;       
		case 2:printf("Tuesday\n"); break;       
		case 3:printf("Wednesday\n");break;       
		case 4:printf("Thursday\n");break;       
		case 5:printf("Friday\n");break;       
		case 6:printf("Saturday\n");break;       
		case 7:printf("Sunday\n");break;       
		default:printf("error\n");  
	}
}

迴圈語句
while語句

while(判斷條件)
{
	語句;
}
//直到不滿足條件後,結束迴圈
do
{
	迴圈體;
}
while(條件);
//先執行迴圈體一次後,再按段條件。所以do-while結構至少執行一次迴圈體;
//直到不滿足條件後,結束迴圈

for語句

for(表示式1;表示式2;表示式3)
{
	迴圈體;
}

執行過程如下

  1. 先求解表示式 1。
  2. 求解表示式 2,若其值為真(非 0),則執行 for 語句中指定的內嵌語句,然後執行下面 第 3)步;若其值為假(0),則結束迴圈,轉到第 5)步。
  3. 求解表示式 3。
  4. 轉回上面第 2)步繼續執行。
  5. 迴圈結束,執行 for 語句下面的一個語句。

break和continue語句
break語句
當 break 語句用於 do-while、for、while 迴圈語句中時,可使程式終止迴圈而執行迴圈 後面的語句, 通常 break 語句總是與 if 語句聯在一起。即滿足條件時便跳出迴圈。
continue語句
continue 語句的作用是跳過迴圈本中剩餘的語句而強行執行下一次迴圈。continue 語 句只用在 for、while、do-while 等迴圈體中,常與 if 條件語句一起使用,用來加速迴圈。

陣列
在C語言中使用陣列必須先進行定義。 一維陣列的定義方式為: 型別說明符 陣列名 [常量表達式]; 其中: 型別說明符是任一種基本資料型別或構造資料型別。 陣列名是使用者定義的陣列識別符號。 方括號中的常量表達式表示資料元素的個數,也稱為陣列的長度。
陣列元素的一般形式為:
陣列名[下標]
其中下標只能為整型常量或整型表示式。如為小數時,C 編譯將自動取整。 例如: a[5] a[i+j] a[i++]