3.學習筆記_1
習題 1.1
1.比較直譯器與編譯器的不同。他們各有何優點?
直譯器逐行檢查、編譯並執行,編譯器全部檢查後編譯成可執行檔。前者占用記憶體少,後者效率高。
2.是說明程式的可攜性。
跨平台於不同系統內也可在極少修改甚至不用修改程式的情況下使用。
3.編譯器功用為何?直譯式語言如BASIC等是否需編譯器?
將高階語言轉為低階語言。需要。
4.有甚麼語言是由C語言演化來的?
C++、Objective-C、Java、C\#...等。
5.PASCAL語言發展時間較C常還短?
長。
6.COBOL於何時開始發展?發展時期比C來的長或短?
1959年。短。
7.LISP語言於哪一年開始發展?
1958年。
8.有哪些語言是物件導向語言?
C++、C\#、Java、Objective-C、SMALLTALK、SIMULA、Object Pascal、Eiffel、ADA、PROLOG、CLOS。
習題 1.2
9.撰寫程式需哪六大步驟?
規劃、撰寫程式碼與註解、編譯程式碼、執行程式、除錯與修飾、程式碼的修飾與儲存。
10.請以流程圖繪出如下敘述:如果天氣好,就去爬山,否則上健身房,不管爬山或上健身房,最後都回家吃晚飯。
11.試說明bug和debug在程式設計裡的意義。
bug為錯誤,debug為除錯。
12.是說明語意錯誤與語法錯誤的差異。
語意錯誤為邏輯有錯,執行結果非預期。語法錯誤為語法格式或大小寫等輸入錯誤,導致不可執行。
習題 1.3
13.印出"我愛C語言"一行文字。
#include
<
stdio.h
>
#include
<
stdlib.h
>
int main(void)
{
printf("我愛C語言\n"); /* 印出字串,\n為換行 */
system("pause"); /* 執行後畫面停在結果*/
return 0;
}
14.印出"我愛C語言"及"這是我的第一個C語言程式"兩行文字。
#include
<
stdio.h
>
#include
<
stdlib.h
>
int main(void)
{
printf("我愛C語言\n"); /* 印出字串,\n為換行 */
printf("這是我的第一個C語言程式\n");
system("pause"); /* 執行後畫面停在結果*/
return 0;
}
15.利用printf()列出下列圖案(不須迴圈,每列用一個printf()函數)
#include
<
stdio.h
>
#include
<
stdlib.h
>
int main(void)
{
printf("*\n"); /* *,\n為換行 */
printf("**\n");
printf("***\n");
printf("****\n");
printf("*****\n");
system("pause"); /* 執行後畫面停在結果*/
return 0;
}
16.利用printf()列出下列圖案(不須迴圈,每列用一個printf()函數)
#include
<
stdio.h
>
#include
<
stdlib.h
>
int main(void)
{
printf(" *\n");
printf(" ***\n");
printf(" *****\n");
printf(" *******\n");
printf("*********\n");
system("pause"); /* 執行後畫面停在結果*/
return 0;
}
17.利用printf()列出下列圖案(不須迴圈,每列用一個printf()函數)
#include
<
stdio.h
>
#include
<
stdlib.h
>
int main(void)
{
printf("********\n");
printf("********\n");
printf("** **\n");
printf("** **\n");
printf("********\n");
printf("********\n");
system("pause"); /* 執行後畫面停在結果*/
return 0;
}
習題 1.4
18.試說明原始檔案、目的檔和執行檔的差別。
撰寫完的程式為原始檔,編譯過程中會產生目的檔即為編譯後沒錯誤的程式,目的檔與函數庫連結後產生的一個可直接執行的檔案為執行檔。
19.連結程式可做哪些事?
將目的檔與函數庫連結後產生的一個 .exe 執行檔
20.是簡單化出編譯與連結的過程