這一課先講了除錯程式(debug),然後講了**正確性、**設計、**風格,最後講了陣列的概念。
核心思想是程式報錯後,能找到哪兒錯了,怎麼錯的。
如果是語法錯誤,根據報錯資訊,大概能找到怎麼錯的。
如果是邏輯錯誤,可以自己在腦海中過一遍程式執行的流程,看哪兒有邏輯錯誤,或者自己在可能有問題的地方寫測試**。
c語言軟體中有除錯模式,可以幫助找錯。
python中的異常處理,try and except
可以在可能會出錯的地方提供解決方案,或者報錯。
對於初學者,只要**正確、能執行就挺好了。
**風格,關於空格、縮排、適當地換行、核心的地方寫注釋、合適的命名這些。
c語言中**風格至少要保證結構清晰、方便閱讀。
python中有pep8編碼規範,要多學習,多看別人好看的**,自然會按照規範書寫**。
c語言中使用使用標準ascii碼,用7位二進位制數來表示128個可能的字元。
c語言中%c
輸出格式為字元,%i
輸出格式為整型。在最後輸出時可以實現整型字元的轉換,利用這個特性,可以檢視0~127在ascii碼中對應的字元:
97~122對應著a~z; 65~90對應著a~z。(大小寫相差32)
利用這個特性可以自己寫大小寫的轉換,把所有字母轉換成小寫字母,或者把所有字母轉換成大寫字母。
如,將混在一起的大小寫字母轉換成大寫字母:
#include
main()
else
}printf("\n");
printf("%s (the original string)",c);
}
執行結果:
上節課有c語言中幾種變數型別,整型變數、實型變數、字元變數等。
可以使用char * 來定義字串:char * s = "fengweilei";
修改於2017/09/07
c語言中不能直接定義字串變數,只有char
字元變數,乙個char
變數能儲存乙個位元組,即乙個字母(ascii碼)。
可以用陣列來實現字串的定義,每乙個字元對應陣列中的乙個元素。
如下面**:
#include //匯入stdio標頭檔案(標準庫)
int main(void) // 定義main函式,void表示執行時不需要傳遞引數
printf("%s\n",s ); // 輸出整個字串
printf("the length of s is %i\n",strlen(s) );
}
執行結果:
CS50 2016 Week 0 學習筆記
今天開始從第一課開始學習了。week 0 和大學裡許多的第一節課一樣,只是簡單介紹這門課,沒有太多乾貨。有幾個知識點,比較重要。機器語言,即計算機能直接理解的語言,只有0 和 1 二進位制數 通過字元編碼,能用不同的數字表示不同的字元,能用二進位制數來表示我們熟悉的字元。乙個位元組儲存8個二進位制數...
CS50 2016 Week3 學習筆記
上一課講了陣列,這節課順利過渡到了陣列的查詢 排序。即查詢演算法 排序演算法。關於查詢演算法,除了常見的linear search binary search 還有好多好多。下面是常見的七大查詢演算法 順序查詢 二分查詢 插值查詢 斐波那契查詢 樹表查詢 分塊查詢 雜湊查詢 排序演算法,除了氣泡排序...
CS50 2016 Week4 學習筆記
以下內容摘抄自 c語言程式設計 第9章 根據馮諾依曼提出的 儲存原理 的計算機工作原理,程式要裝入記憶體後才能進行處理,資料也要裝入記憶體才能進行處理。記憶體是以位元組為單位的一片連續儲存空間,每個位元組都有唯一的編號,這個編號稱為記憶體的 位址 如同人們通過房間號來管理旅館一樣,系統通過記憶體位址...