[3] 入門問題

上一節:《編寫第一個C語言程序》

修改一

我們可以對first.c進行修改,例如:

int main(){ int A = 4 + 1; return A - 3;}

運行結果是2,說明:

  • C語言不僅支持加法運算,也支持減法運算
  • 變數與變數、變數與常量、常量與常量一起都可以進行運算

修改二

int main(){ return 3 * 5 - (6 /2+ 3);}

運行結果是9,說明:

  • 用星號「*」代表「乘號」,用「/」代表「除號」
  • 四則運算順序也是「先乘除、後加減,有括弧時先算括弧內的結果」
  • 多餘的空格不影響程序

修改三

int main(){ int A = 11 / 4; return A;}

運行結果是2,說明:

  • 當除號左右兩邊都是整數時,除法結果是整數而不是小數。且計算結果會被取整,而非四捨五入。

修改四

int main(){ return 11 % 5;}

運行結果是1,說明:

  • 用「%」符號表示「求餘數」運算,也就是說11÷5=2...1,「%」的結果就是餘數1

修改五

int main() { int A = a; return A;}

運行結果是97,說明:

  • 因為計算機的硬碟、U盤、內存等只能存儲由0、1表示的內容,所以計算機存儲的文字其實就是一長串整數。然後人們又把所有的字元排了一個順序,變成了一個很長的表,小寫字母a在這張表裡的序號是97。『a在C語言的代碼里,就是整數97的另一種寫法而已

這個字母表有一個名字,叫做ASCII(讀音)碼錶,可點擊查看完整的ASCII碼錶。ASCII碼錶包含英文鍵盤上的字元(字母、數字、符號、空格等)和一些有特別意義的信號(回車、蜂鳴、esc等),一共編排了128個元素(序號從0到127)。

世界上還有另一個更大的「字元排序表」,地球上絕大多數字母/文字(包括中文漢字)在這個表裡都有相應的序號,這個巨型字母表叫做unicode。不幸的是,C語言太古老了,不能支持int A = 學這樣的語句。如果C語言支持unicode的話,這個語句應該等價於int A = 23398

修改六

int main() { return B - A;}

運行結果是1,說明:

  • B - A這段代碼等價於66 - 65 ,所以計算結果就是1。可以觀察到一個結論,就是在ASCII碼錶里,數字、大寫字母、小寫字母的排位是連續的。

修改七

int main() { return z - y + x == y;}

運行結果是1,說明:

  • z - y + x == y 這段代碼等價於122 - 121 + 120 == 121==左邊的計算結果是121,由於左右兩邊的值相同,所以==這個運算符的運算結果就是1,表示左右兩邊的計算結果相等。如果==左右兩邊的值不相等,那麼判斷結果就是0。
  • ==被稱為比較運算符,其他比較運算符還有<小於, >大於, <=小於等於, >=大於等於, !=不等於
  • 顧名思義,比較運算符也是一種運算符,跟加減乘除一樣。所以比較不是目的,通過比較兩個數,得到整數1或者整數0才是目的
  • 一個等號表示變數賦值,兩個等號是比較運算,千萬不要搞混淆了。

修改八

int main() { int A = A > a; return A;}

運算結果是0,說明

  • int A = A > a 這段代碼等價於int A = 65 > 97,而65 > 97的運算結果是0,所以A = 0
  • 在ASCII碼錶裡面,同一個字母的大寫字母和小寫字母有不同的序號,而且大寫字母排在小寫字母的前面

有人會問了:既然我們能把「字元」翻譯成「序號」,那麼我們能不能把「序號」變成顯示在屏幕上的「字元」呢?答案當然是可以的,方法如下:

int putchar(int);int main(){ putchar(65); putchar(97); return 0;}

運行程序可以看到屏幕上顯示出了一個大寫的字母A和一個小寫字母a。

不過putchar是什麼東西?不能叫其他名字么?我們要先講講跟函數有關的語法,才能解釋清楚這些問題。

下一節:《函數》

推薦閱讀:

剛好的可能就是最好的
學習編程太枯燥?12款助你學編程的免費遊戲
學習永遠不晚,只需做到更好
[13] 遞歸
[8] 結構體

TAG:編程入門 | 編程學習 |