1. 程式人生 > 其它 >《C語言程式設計》(譚浩強第五版) 第1章 程式設計和C語言 習題解析與答案

《C語言程式設計》(譚浩強第五版) 第1章 程式設計和C語言 習題解析與答案

第1章 程式設計和C語言 習題解析與答案

你也可以上程式咖(https://meta.chengxuka.com/#/mooc),開啟大學幕題板塊,不但有答案,講解,還可以線上答題。

題目1:什麼是程式?什麼是程式設計?

答:

程式:就是一組計算機能識別和執行的指令集合,每一條指令使計算機執行特定的操作。

程式設計:是指從確定任務到得到結果、寫出文件的全過程。

題目2:為什麼需要計算機語言?高階語言有哪些特點?

答:

為什麼需要計算機語言:計算機語言解決了人和計算機交流是的語言問題,使得計算機和人都能識別。

高階語言有哪些特點:
2.1 高階語言的資料結構要比彙編和機器語言豐富;
2.2 高階語言與具體機器結構的關聯沒有彙編以及機器語言密切;
2.3 高階語言更接近自然語言更容易掌握;
2.4 高階語言編寫的程式要經過編譯或解釋計算機才能執行;

題目3:正確理解以下名詞及其含義:

(1)源程式,目標程式,可執行程式。

(2)程式編輯,程式編譯,程式連線。

(3)程式,程式模組,程式檔案。

(4)函式,主函式,被呼叫函式,庫函式。

(5)程式除錯,程式測試。

答:

(1)源程式,目標程式,可執行程式。
源程式:指未編譯的按照一定的程式設計語言規範書寫的文字檔案,是一系列人類可讀的計算機語言指令

目標程式:為源程式經編譯可直接被計算機執行的機器碼集合,在計算機檔案上以.obj作副檔名

可執行程式:將所有編譯後得到的目標模組連線裝配起來,在與函式庫相連線成為一個整體,生成一個可供計算機執行的目標程式,成為可執行程式

(2)程式編輯,程式編譯,程式連線。

程式編輯:上機輸入或者編輯源程式。

程式編譯:

先用C提供的“前處理器”,對程式中的預處理指令進行編譯預處理
對源程式進行語法檢查, 判斷是否有語法錯誤,直到沒有語法錯誤未知
編譯程式自動把源程式轉換為二進位制形式的目標程式
程式連線:將所有編譯後得到的目標模組連線裝配起來,在與函式庫相連線成為一個整體的過程稱之為程式連線

(3)程式,程式模組,程式檔案。

程式:一組計算機能識別和執行的指令,運行於電子計算機上,滿足人們某種需求的資訊化工具

程式模組:可由彙編程式、編譯程式、裝入程式或翻譯程式作為一個整體來處理的一級獨立的、可識別的程式指令

程式檔案:程式的檔案稱為程式檔案,程式檔案儲存的是程式,包括源程式和可執行程式

(4)函式,主函式,被呼叫函式,庫函式。

函式:將一段經常需要使用的程式碼封裝起來,在需要使用時可以直接呼叫,來完成一定功能

主函式:又稱main函式,是程式執行的起點

被呼叫函式:由一個函式呼叫另一個函式,則稱第二個函式為被呼叫函式

庫函式:一般是指編譯器提供的可在c源程式中呼叫的函式。可分為兩類,一類是c語言標準規定的庫函式,一類是

編譯器特定的庫函式

(5)程式除錯,程式測試。

程式除錯:是將編制的程式投入實際執行前,用手工或編譯程式等方法進行測試,修正語法錯誤和邏輯錯誤的過程

程式測試:是指對一個完成了全部或部分功能、模組的計算機程式在正式使用前的檢測,以確保該程式能按預定的方式正確地執行

題目4:編寫一個C程式,執行時輸出Hello World!

這個程式是一-些國外C教材中作為第一個程式例子介紹的,一-般稱為Hello程式。

答:

#include <stdio.h>
int main()
{
    printf("*****************«********\n\n");
    printf("      Hello World !\n\n");
    printf("*****************«********\n\n");
    return 0;
}

執行結果:

題目5:編寫一個C程式,執行時輸出以下圖形:

*****
 *****
  *****
   *****

答案程式碼:

#include <stdio.h>
int main()
{
	printf("*****\n");
	printf("      *****\n");
	printf("          *****\n");
	printf("              *****\n");
	return 0;
}

執行結果:

說明: 由於目前只見過printf 函式,只能用這種最簡單的方法。在學過迴圈後,可以利用迴圈語句編寫程式,只須用一個printf 函式輸出5個"*"號。請讀者在學過第5章(迴圈)後,回過頭用迴圈語句編寫程式處理此問題。在學過第7章(函式)後,還可定義一個函式來實現輸出5個'*',然後在main函式中呼叫該函式。

題目6:編寫一個C程式,執行時輸人a,b,c三個值,輸出其中值最大者。

答案程式碼:

#include <stdio.h>
int main()
{
	int a, b, c, max;
	printf("please input a,b,c: \n");
	scanf("%d,%d,%d", &a, &b, &c);
	max = a;
	if (max < b)
		max = b;
	if (max < c)
		max = c;
	printf("The largest number is %d\n", max);
	return 0;
}

執行結果:

輸入3個數:18,-43,34,輸出最大數34。

注意:輸入的3個數以英文狀態下的痘哦好風格,如果以空格分割會出錯,讀者可試一下,請思考為什麼?

題目7:看懂《C程式設計(第五版)學習輔導》第16章中介紹的用Visual Studio 2010對C程式進行編輯、編譯、連線和執行的方法,並進行以下操作:
(1)建立一個新專案,定名為project1。
(2)建立一個新檔案,定名為test1。
(3)向test1檔案輸人源程式(此源程式為讀者自己編寫的程式)。
(4)編譯該源程式,如發現程式有錯,請修改之,直到不出現“編譯出錯”為止。
(5)連線並執行,得到結果。分析結果。

解:

(1)建立一個新專案,定名為project1。

(2)建立一個新檔案,定名為test1。

(3)向test1檔案輸人源程式(此源程式為讀者自己編寫的程式)。

(4)編譯該源程式,如發現程式有錯,請修改之,直到不出現“編譯出錯”為止。
(5)連線並執行,得到結果。分析結果。