C語言程序設(shè)計實驗與習(xí)題選解_第1頁
C語言程序設(shè)計實驗與習(xí)題選解_第2頁
C語言程序設(shè)計實驗與習(xí)題選解_第3頁
C語言程序設(shè)計實驗與習(xí)題選解_第4頁
C語言程序設(shè)計實驗與習(xí)題選解_第5頁
已閱讀5頁,還剩274頁未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)閱讀全文

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

普通高等院校計算機(jī)基礎(chǔ)教育“十四五”規(guī)劃教材

大連海洋大學(xué)與大連海藍(lán)達(dá)科技有限公司校企合作研發(fā)

C語言程序設(shè)計實驗與習(xí)題選解

主?編◎張?菁?張?鑫?王?穎

副主編◎????劉傳盛?劉?威?許吉慶

????王建彬奚海波?楊晉輝?

文前.indd12022/9/1417:57:01

內(nèi)?容?簡?介

本書是“C語言程序設(shè)計”課程的實踐教材,包括上機(jī)實驗、基礎(chǔ)知識習(xí)題選解、

程序應(yīng)用習(xí)題選解和模擬試卷四部分內(nèi)容,并在附錄A中匯總了C語言基本語法規(guī)則

(電子版)。

本書是在總結(jié)作者多年教學(xué)經(jīng)驗的基礎(chǔ)上編寫而成,上機(jī)實驗部分包括10個相對獨(dú)

立的實驗,每個實驗根據(jù)內(nèi)容的不同,分別設(shè)置了程序改錯、程序填空、程序設(shè)計、課

后拓展等環(huán)節(jié);第2部分和第3部分從編者多年的積累和全國計算機(jī)等級考試試題中選

取難度適中的試題,以供學(xué)生學(xué)習(xí)、練習(xí)。實驗和習(xí)題內(nèi)容豐富,前后聯(lián)系緊密,具有

一定的啟發(fā)性、綜合性。模擬試卷部分給出6套模擬試卷,供讀者模擬練習(xí)。

本書適合作為高等學(xué)校相關(guān)專業(yè)“C語言程序設(shè)計”上機(jī)實驗課程的教材,也可作

為企業(yè)“C語言程序設(shè)計”培訓(xùn)課程的配套教材,還可作為對C語言學(xué)習(xí)感興趣的讀者

的參考用書。

圖書在版編目(CIP)數(shù)據(jù)

C語言程序設(shè)計實驗與習(xí)題選解/張菁,張鑫,王穎

主編.—北京:中國鐵道出版社有限公司,2022.8

普通高等院校計算機(jī)基礎(chǔ)教育“十四五”規(guī)劃教材

ISBN978-7-113-29551-6

Ⅰ.①C…Ⅱ.①張…②張…③王…Ⅲ.①C語言-

程序設(shè)計-高等學(xué)校-教學(xué)參考資料Ⅳ.①TP312.8

中國版本圖書館CIP數(shù)據(jù)核字(2022)第146714號

書名:C語言程序設(shè)計實驗與習(xí)題選解

作者:張?菁?張?鑫?王?穎

策劃:李志國編輯部電話:(010)83527746

責(zé)任編輯:張松濤包寧

封面設(shè)計:曾程劉穎

責(zé)任校對:孫玫

責(zé)任印制:樊啟鵬

出版發(fā)行:中國鐵道出版社有限公司(100054,北京市西城區(qū)右安門西街8號)

網(wǎng)??址:/51eds/

印??刷:三河市宏盛印務(wù)有限公司

版??次:2022年8月第1版?2022年8月第1次印刷

開??本:787?mm×1?092?mm1/16印張:17.25字?jǐn)?shù):556千

書??號:ISBN978-7-113-29551-6

定??價:43.90元

版權(quán)所有?侵權(quán)必究

凡購買鐵道版圖書,如有印制質(zhì)量問題,請與本社教材圖書營銷部聯(lián)系調(diào)換。電話:(010)63550836

打擊盜版舉報電話:(010)63549461

文前.indd22022/9/1417:57:01

前言

計算機(jī)是一門實踐性非常強(qiáng)的學(xué)科,學(xué)習(xí)過程中的上機(jī)實踐特別重要,程序設(shè)計類

課程尤為突出,只有通過具體的上機(jī)操作、調(diào)試、運(yùn)行,才能真正理解計算機(jī)程序的編寫、

調(diào)試方法與過程。實踐環(huán)節(jié)是鞏固理論知識,增強(qiáng)動手能力,提高計算機(jī)應(yīng)用能力至關(guān)

重要的一個教學(xué)環(huán)節(jié)。為配合“C語言程序設(shè)計”課程的需要,我們特地組織具有豐富

教學(xué)經(jīng)驗的一線教師編寫了本書。

我國高等學(xué)校計算機(jī)基礎(chǔ)課程基本要求指出,將計算思維培養(yǎng)建立在知識理解和應(yīng)

用能力培養(yǎng)基礎(chǔ)上。本書就是依據(jù)知識理解和應(yīng)用能力培養(yǎng)的要求,本著先易后難、逐

步深入的原則,精心編寫實驗項目,并設(shè)置了程序改錯、程序填空、程序設(shè)計、課后拓

展等環(huán)節(jié),以方便學(xué)生學(xué)習(xí)過程中,逐步理解、掌握相關(guān)知識,學(xué)習(xí)、理解并初步掌握

基本的程序設(shè)計方法。

本書包括上機(jī)實驗、基礎(chǔ)知識習(xí)題選解、程序應(yīng)用習(xí)題選解和模擬試卷4部分內(nèi)容,

并在附錄A中匯總了C語言基本語法規(guī)則(電子版)。其中上機(jī)實驗分為C語言運(yùn)行環(huán)

境及上機(jī)步驟,數(shù)據(jù)類型、運(yùn)算符及輸入/輸出,選擇結(jié)構(gòu)程序設(shè)計,循環(huán)結(jié)構(gòu)程序設(shè)計,

數(shù)組,函數(shù),編譯預(yù)處理,指針,結(jié)構(gòu)體與共用體,文件共10個實驗項目;習(xí)題選解分

為基礎(chǔ)知識和程序應(yīng)用,按題型分為單選題、填空題、判斷題、程序改錯題、程序填空

題和程序設(shè)計題6種。受篇幅所限,各部分習(xí)題的參考答案,均以二維碼形式呈現(xiàn),掃

碼可看。

本書由大連海洋大學(xué)張菁、張鑫、王穎任主編,劉傳盛(大連知潤信息科技有限公司)、

大連海洋大學(xué)劉威、許吉慶(大連海藍(lán)達(dá)科技有限公司)、大連海洋大學(xué)王建彬、奚海波、

楊晉輝任副主編。具體編寫分工如下:第1部分的實驗1由王穎編寫,實驗2由楊晉輝

編寫,實驗3由王建彬編寫,實驗4由劉傳盛編寫,實驗5由劉威編寫,實驗6由張鑫

編寫,實驗7由許吉慶編寫,實驗8由張菁編寫,實驗9由奚海波編寫,實驗10由王穎

編寫;第2部分、第3部分、第4部分由大連海洋大學(xué)張菁、王穎、張鑫、劉威、王建彬、

奚海波、楊晉輝共同負(fù)責(zé)整理。全書由張菁負(fù)責(zé)組織編寫并統(tǒng)稿。本書由大連海洋大學(xué)

I

文前.indd12022/9/1417:57:01

C語言程序設(shè)計實驗與習(xí)題選解

與大連海藍(lán)達(dá)科技有限公司校企合作研發(fā),適合作為高等學(xué)校相關(guān)專業(yè)“C語言程序設(shè)計”

上機(jī)實驗課程的教材,也可作為企業(yè)培訓(xùn)適用教材。

由于編者水平有限,不足之處在所難免,殷切希望廣大讀者給予批評指正。

編者

2022年4月

II

文前.indd22022/9/1417:57:01

目錄

第1部分?上機(jī)實驗

實驗1C語言運(yùn)行環(huán)境及上機(jī)步驟?????????15.2二維數(shù)組及字符數(shù)組.......................48

實驗6?函數(shù)????????????????????????????????????55

實驗2?數(shù)據(jù)類型、運(yùn)算符與輸入/輸出???12

2.1數(shù)據(jù)類型、運(yùn)算符和表達(dá)式...........12

實驗7?編譯預(yù)處理???????????????????????????63

2.2輸入/輸出函數(shù)的使用......................19

實驗8?指針????????????????????????????????????68

實驗3?選擇結(jié)構(gòu)程序設(shè)計??????????????????26

8.1指針與數(shù)組.......................................68

實驗4?循環(huán)結(jié)構(gòu)程序設(shè)計??????????????????328.2指針與字符串...................................73

4.1基本循環(huán)...........................................32

實驗9?結(jié)構(gòu)體和共用體?????????????????????79

4.2嵌套循環(huán)...........................................37

9.1結(jié)構(gòu)體和共用體...............................79

實驗5?數(shù)組????????????????????????????????????439.2鏈表...................................................85

5.1一維數(shù)組...........................................43

實驗10?文件??????????????????????????????????92

第2部分?基礎(chǔ)知識習(xí)題選解

第1章?初識C語言??????????????????????????102第7章?編譯預(yù)處理?????????????????????????138

第2章?數(shù)據(jù)類型、運(yùn)算符與表達(dá)式????103第8章?指針??????????????????????????????????142

第3章?選擇結(jié)構(gòu)程序設(shè)計?????????????????110第9章?結(jié)構(gòu)體和共用體???????????????????149

第4章?循環(huán)結(jié)構(gòu)程序設(shè)計?????????????????115第10章?位運(yùn)算?????????????????????????????157

第5章?數(shù)組??????????????????????????????????123第11章?文件?????????????????????????????????158

第6章?函數(shù)???????????????????????????????????131

I

文前.indd12022/9/1417:57:01

C語言程序設(shè)計實驗與習(xí)題選解

第3部分?程序應(yīng)用習(xí)題選解

題型1?程序改錯題?????????????????????????1622.4數(shù)組.................................................208

2.5指針.................................................219

1.1數(shù)據(jù)類型、運(yùn)算符與表達(dá)式.........162

2.6結(jié)構(gòu)體和共用體.............................228

1.2選擇結(jié)構(gòu)程序設(shè)計.........................162

2.7文件.................................................230

1.3循環(huán)結(jié)構(gòu)程序設(shè)計.........................166

1.4數(shù)組.................................................173

題型3程序設(shè)計題?????????????????????????232

1.5指針.................................................185

3.1選擇結(jié)構(gòu)程序設(shè)計.........................232

1.6結(jié)構(gòu)體和共用體.............................195

3.2循環(huán)結(jié)構(gòu)程序設(shè)計.........................233

1.7文件.................................................197

3.3數(shù)組.................................................235

題型2程序填空題?????????????????????????1993.4指針.................................................237

3.5結(jié)構(gòu)體和共用體.............................239

2.1基本語法.........................................199

3.6文件.................................................241

2.2選擇結(jié)構(gòu)程序設(shè)計.........................199

2.3循環(huán)結(jié)構(gòu)程序設(shè)計.........................202

第4部分?模擬試卷

4.1模擬試卷一????????????????????????????2434.4模擬試卷四????????????????????????????255

4.2模擬試卷二????????????????????????????2474.5模擬試卷五????????????????????????????260

4.3模擬試卷三????????????????????????????2514.6模擬試卷六????????????????????????????264

附錄AC語言基本語法規(guī)則匯總????????????????????????????????????????????????????????????????????270

II

文前.indd22022/9/1417:57:01

第1部分?上機(jī)實驗

實驗1C語言運(yùn)行環(huán)境及上機(jī)步驟

一、實驗?zāi)康?/p>

(1)掌握C語言上機(jī)步驟,熟悉C語言運(yùn)行環(huán)境。

(2)掌握C語言程序基本結(jié)構(gòu)和書寫格式。

(3)通過編寫簡單的C語言程序,了解C語言程序的調(diào)試過程,了解幾個常見語法錯誤的

修改。

二、主要知識點(diǎn)

(1)C語言的基本組成單位是函數(shù),包括主函數(shù)、庫函數(shù)和用戶自定義函數(shù),任何一個C程

序必須有且僅有一個名為main的主函數(shù)。

(2)除函數(shù)外,C程序中還可以有編譯預(yù)處理命令、聲明和注釋。

(3)一個函數(shù)由函數(shù)首部和函數(shù)體組成,函數(shù)體中可以包括若干語句。

(4)C語言中,語句以分號結(jié)束,書寫時注意嚴(yán)格區(qū)分大小寫。

(5)C程序的執(zhí)行總是從主函數(shù)的左花括號開始,在主函數(shù)的右花括號處結(jié)束。

三、實驗內(nèi)容

1.程序上機(jī)操作步驟范例

程序功能:在屏幕上輸出“歡迎進(jìn)入C語言世界!”。

【題目解析】

此題不需要輸入數(shù)據(jù)進(jìn)行計算,所以不需要做任何其他處理,只要調(diào)用系統(tǒng)定義好的專門負(fù)

責(zé)輸出的庫函數(shù)printf()即可。

【程序代碼】

#include<stdio.h>

voidmain()

{

printf("歡迎進(jìn)入C語言世界!\n");

}

【運(yùn)行結(jié)果】

1

第一部分.indd12022/9/814:05:29

C語言程序設(shè)計實驗與習(xí)題選解

【上機(jī)步驟】

啟動VisualC++2010學(xué)習(xí)版。如果桌面中有該軟件的快捷圖標(biāo),直接雙擊快捷圖標(biāo)即可;

如若沒有,可單擊“開始”按鈕,依次選擇“開始”→“所有程序”→“MicrosoftVisualStudio

2010Express”→“MicrosoftVisualC++2010學(xué)習(xí)版”命令,進(jìn)入VisualC++2010,啟動界面如

圖1.1所示。

圖1.1MicrosoftVisualC++2010學(xué)習(xí)版啟動界面

接下來,按照創(chuàng)建項目、創(chuàng)建源程序文件、編譯連接運(yùn)行的步驟進(jìn)行上機(jī)操作。

1)創(chuàng)建項目

(1)選擇“文件”→“新建”→“項目”命令,如圖1.2所示。

圖1.2新建項目

(2)在彈出的“新建項目”對話框中進(jìn)行以下操作:

①單擊選擇“Win32控制臺應(yīng)用程序”選項。

注:無論在“已安裝的模板”中處于“VisualC++”選中狀態(tài)還是“Win32”選中狀態(tài),都選

擇“Win32控制臺應(yīng)用程序”選項。

②在“名稱”文本框中輸入項目名,如“p1”。

③可通過“瀏覽”按鈕找到該項目準(zhǔn)備存放的路徑,也可直接在“位置”文本框中輸入存放

路徑,假設(shè)該項目存放路徑是D:\實驗1,如圖1.3所示。

注:無論要查找的路徑(即目標(biāo)文件夾)是否存在,都可以通過“瀏覽”按鈕進(jìn)行查找,若

目標(biāo)文件夾已存在,直接找到選中即可;若不存在,則可以在單擊“瀏覽”按鈕后在彈出的“項

目位置”對話框中通過單擊“新建文件夾”按鈕創(chuàng)建目標(biāo)文件夾。

2

第一部分.indd22022/9/814:05:30

第1部分?上機(jī)實驗

④單擊“確定”按鈕。

圖1.3“新建項目”對話框

(3)在彈出的“Win32應(yīng)用程序向?qū)?p1”對話框中單擊“下一步”按鈕,如圖1.4所示。

(4)在彈出的“Win32應(yīng)用程序向?qū)?p1”對話框的“應(yīng)用程序類型”區(qū)域選中“控制臺應(yīng)用

程序”單選按鈕,在“附加選項”區(qū)域勾選“空項目”復(fù)選框,如圖1.5所示。

圖1.4“Win32應(yīng)用程序向?qū)А敝皻g迎圖1.5“Win32應(yīng)用程序向?qū)А敝?/p>

使用Win32應(yīng)用程序向?qū)А薄皯?yīng)用程序設(shè)置”

(5)單擊“完成”按鈕即可創(chuàng)建一個名字為“p1”的新項目,如圖1.6所示。

圖1.6創(chuàng)建完新項目p1界面

2)創(chuàng)建源程序文件

(1)添加源文件。

①右擊左側(cè)“解決方案資源管理器”下的“源文件”。

3

第一部分.indd32022/9/814:05:30

C語言程序設(shè)計實驗與習(xí)題選解

②在彈出的快捷菜單中選擇“添加”→“新建項”命令,如圖1.7所示。

①②

圖1.7添加新建項

(2)設(shè)置相關(guān)信息。

在彈出的“添加新項”對話框(見圖1.8)中,進(jìn)行以下操作。

②③

圖1.8添加源文件相關(guān)信息設(shè)置

①選中“C++文件(.cpp)”選項。

②在下方的“名稱”文本框中輸入源程序文件名,如“我的第一個C程序.c”。

在“位置”文本框中設(shè)置該源文件存放的路徑,一般保持默認(rèn)路徑即可(故此處不單獨(dú)列為

一步),也可以單擊“瀏覽”按鈕選擇路徑或直接輸入存放路徑。

切記:輸入源程序文件名時若不輸入擴(kuò)展名.c,則默認(rèn)是.cpp文件。

③單擊“添加”按鈕,打開圖1.9所示窗口。

圖1.9空白源文件

4

第一部分.indd42022/9/814:05:30

第1部分?上機(jī)實驗

(3)輸入源程序代碼。

在源文件右側(cè)的文件編輯區(qū)輸入源程序代碼,如圖1.10所示。單擊工具欄中的“保存”按鈕

或按【Ctrl+S】組合鍵進(jìn)行保存。

圖1.10我的第一個C程序.c源程序文件

3)編譯、連接和運(yùn)行

單擊“生成”工具欄中的“開始執(zhí)行(不調(diào)試)”按

鈕或按【Ctrl+F5】組合鍵,即可實現(xiàn)編譯、連接和運(yùn)行,

看到運(yùn)行結(jié)果,如圖1.11所示。

如果程序中有錯誤,比如語句后漏寫了分號,則會在

圖1.11“我的第一個C程序.c”源程序

“輸出”窗口中顯示錯誤信息,如圖1.12所示。

運(yùn)行結(jié)果

圖1.12“我的第一個C程序.c”源程序錯誤信息

此題中的錯誤信息如下:

errorC2143:語法錯誤:缺少";"(在"}"的前面)。

其中,error表示語法錯誤,這樣的錯誤必須修改,否則不能正確運(yùn)行。C2143表示錯誤代碼,

當(dāng)我們能看懂后面的錯誤信息含義時,不用看這個代碼,如果看不懂,可以借助該錯誤代碼上網(wǎng)

搜索此錯誤的含義和解決辦法。

雙擊錯誤信息,如圖1.13所示,在代碼中會有藍(lán)色標(biāo)記指示錯誤大致所在行(通常會指向錯

誤所在行),但因為一條語句可以書寫在多行上,所以藍(lán)色標(biāo)記也可能不指向錯誤所在行,本題就

屬于后面這種情況。本題編譯器編譯到輸出函數(shù)的右小括號后沒找到語句結(jié)束標(biāo)記分號就開始到

下一行找,結(jié)果還是沒找到,此時已經(jīng)編譯到花括號這行,所以藍(lán)色標(biāo)記停留在此行,故所謂的

“}”前面缺少分號其實就是上一行語句缺少了分號。

這是初學(xué)C語言時常犯的錯誤,當(dāng)一條C語言語句結(jié)束處漏寫了分號或?qū)⒎痔枌懗闪酥形臉?biāo)

點(diǎn)符號的形式,都會出現(xiàn)此錯誤。

修改錯誤后需要再次單擊“開始執(zhí)行(不調(diào)試)”按鈕或按【Ctrl+F5】組合鍵進(jìn)行重新編譯、

連接和運(yùn)行,如果還有錯誤則需要再次修改后重新編譯,直至得到預(yù)期結(jié)果為止。

4)關(guān)閉

一個程序運(yùn)行成功準(zhǔn)備輸入下一個程序前,要先關(guān)閉當(dāng)前項目,然后重新創(chuàng)建新項目。關(guān)閉

5

第一部分.indd52022/9/814:05:30

C語言程序設(shè)計實驗與習(xí)題選解

當(dāng)前項目時選擇“文件”→“關(guān)閉解決方案”命令,如圖1.14所示。

關(guān)閉后可以從新建項目開始進(jìn)入下一個程序的輸入和調(diào)試。

圖1.13雙擊錯誤信息定位錯誤圖1.14關(guān)閉“我的第一個C程序.c”

源程序所在的方案

5)打開

若想打開剛才已關(guān)閉的“我的第一個C程序.c”文件,可以通過以下兩種方法實現(xiàn):

【方法一】選擇“文件”→“打開”→“項目/解決方案”命令,如圖1.15所示,找到D:\實

驗1\p1\p1.sln,單擊“打開”按鈕即可,如圖1.16所示。

【方法二】直接到其存儲路徑D:\實驗1\p1下找到p1.sln雙擊即可(此方法不用事先啟動軟

件VisualC++2010學(xué)習(xí)版)。

圖1.15打開“項目/解決方案”圖1.16找到p1.sln

【日積月累】

(1)C程序的基本組成單位是函數(shù)。

(2)C語言中以分號結(jié)束語句。

(3)雙擊錯誤信息可定位錯誤大體位置。

(4)缺少分號的錯誤通常是藍(lán)色標(biāo)記所在行的上條語句缺少分號。

2.程序改錯

1)程序改錯范例

程序功能:在屏幕上輸出下面的平行四邊形圖案。

*****

*****

*****

6

第一部分.indd62022/9/814:05:31

第1部分?上機(jī)實驗

改正程序中的錯誤,使它能得出正確的結(jié)果。

/*************FOUND*************/printf("*****");

#include<stdio.h>;/*************FOUND*************/

/*************FOUND*************/printf("*****\n");

Main()printf("*****\n");

{return0;

/*************FOUND*************/}

【運(yùn)行結(jié)果】

【題目解析】

(1)在屏幕上輸出若干空格和星號,不同行輸出需要用到換行符“\n”。

(2)將系統(tǒng)庫函數(shù)包含到程序中,以方便調(diào)用庫函數(shù),文件包含命令屬于編譯預(yù)處理命令(后

續(xù)章節(jié)詳細(xì)介紹),不是語句,所以不用分號結(jié)束,否則會出現(xiàn)“預(yù)處理器指令后有意外標(biāo)記”的

警告錯誤,改成#include<stdio.h>即可。

(3)C語言程序中的主函數(shù)名字main必須全小寫,不能出現(xiàn)大寫字母,否則會出現(xiàn)下面的錯

誤信息提示:

errorLNK2019:無法解析的外部符號_main,該符號在函數(shù)__tmainCRTStartup中被引用

fatalerrorLNK1120:1個無法解析的外部命令

故第二處錯誤改成main()。

(4)C語言中要想用printf()函數(shù)實現(xiàn)換行輸出,需輸出換行符“\n”,否則不會自動換行,

故第三處錯誤改成printf("*****\n");。

(5)C語言源程序代碼中的所有標(biāo)點(diǎn)符號均要使用英文標(biāo)點(diǎn)符號,所以結(jié)束語句用的分號也

要使用英文的分號,故第四處錯誤應(yīng)改成printf("*****\n");。

注:每改完一處錯誤就要重新運(yùn)行!

【日積月累】

(1)C語言中標(biāo)點(diǎn)符號全用英文標(biāo)點(diǎn)符號,“\n”代表換行。

(2)程序中的錯誤不僅包含語法錯誤,還包含功能性的錯誤,比如第三處錯誤不算語法錯

誤,但運(yùn)行結(jié)果不是題目預(yù)期的結(jié)果,需要通過分析程序才能發(fā)現(xiàn)。

(3)注意編譯產(chǎn)生若干個error時,不一定一個error對應(yīng)一處錯誤,如本題第四處錯誤,分

號用了中文標(biāo)點(diǎn)的錯誤會引出下面三條錯誤信息。所以改錯時先挑自己熟悉的錯誤修改,每改完

一處錯誤就重新運(yùn)行,很可能就沒錯了,不用等所有錯誤都改完再運(yùn)行。

errorC2146:語法錯誤:缺少“;”(在標(biāo)識符“;”的前面)

errorC2065:“;”:未聲明的標(biāo)識符

errorC2146:語法錯誤:缺少“;”(在標(biāo)識符“printf”的前面)

2)程序改錯練習(xí)

程序功能:在屏幕上輸出如下圖所示的自動售貨機(jī)菜單。

@@@@@@@@@@@@@@@@@@@@@@

!!Pleasechoose:!!

!!1.Tea!!

!!2.Co?ee!!

!!3.Coca-Cola!!

######################

7

第一部分.indd72022/9/814:05:31

C語言程序設(shè)計實驗與習(xí)題選解

改正程序中的錯誤,使其能得出正確的結(jié)果。

/*************FOUND*************/

include<stdio.h>

/*************FOUND*************/

main();

{

/*************FOUND*************/

printf("@@@@@@@@@@@@@@@@@@@@@@\n")

printf("!!Pleasechoose:!!\n");

printf("!!1.Tea!!\n");

printf("!!2.Co?ee!!\n");

printf("!!3.Coca-Cola!!\n");

printf("######################\n");

/*************FOUND*************/

printf("/n");

}

【運(yùn)行結(jié)果】

【題目解析】

(1)可以在屏幕上輸出數(shù)字、英文、標(biāo)點(diǎn)符號和中文等。

(2)文件包含命令(即編譯預(yù)處理命令)一定要以“#”號開頭。

(3)函數(shù)首部末尾不用加分號。

(4)C語言中的語句要以分號結(jié)束。

(5)在不同行上輸出時注意后面要輸出換行符,換行符是“\n”。

【正確答案】

錯誤1改為:_____________________________________________________

錯誤2改為:_____________________________________________________

錯誤3改為:_____________________________________________________

錯誤4改為:_____________________________________________________

【日積月累】

3.程序填空

1)程序填空范例

程序功能:假設(shè)一個大學(xué)生每年的學(xué)費(fèi)是4500元,住宿費(fèi)是500元,計算該生四年的學(xué)費(fèi)和

住宿費(fèi)總共是多少。

將程序補(bǔ)充完整,使其能得出正確的結(jié)果。

#include<stdio.h>

main()

{

8

第一部分.indd82022/9/814:05:31

第1部分?上機(jī)實驗

/*************FILL*************/

intxf,zsf,________;

xf=4500;

zsf=500;

/*************FILL*************/

sum=________(xf+zsf);

/*************FILL*************/

printf("大學(xué)學(xué)費(fèi)和住宿費(fèi)共%d元!\n",________);

}

【運(yùn)行結(jié)果】

【題目解析】

(1)對數(shù)據(jù)處理時,一般要定義若干變量來存儲待處理的數(shù)據(jù)以及處理的結(jié)果。變量就是內(nèi)

存開辟出的內(nèi)存單元,準(zhǔn)備存放數(shù)據(jù)。C語言中,變量要先定義后使用。(第2章會詳細(xì)介紹變量)

(2)變量命名時要遵循“見名知意”的原則。首選用英文單詞或單詞縮寫,如本題用sum表

示總共費(fèi)用;若單詞不熟,也可用拼音或拼音簡寫,如本題分別用xf、zsf表示存儲學(xué)費(fèi)和住宿費(fèi)

的變量。當(dāng)然用諸如a、b、c表示這三個變量也可以,只是含義不清晰。

(3)本題中學(xué)費(fèi)和住宿費(fèi)都是整型數(shù)據(jù),可以定義兩個整型變量存放這兩個數(shù)據(jù),由這兩個

整數(shù)計算的結(jié)果也是整數(shù),所以再定義一個存放結(jié)果的整型變量。C語言中標(biāo)識變量是整型的關(guān)

鍵字是int。

(4)C語言中,變量要先定義后使用。題目已經(jīng)給出xf、zsf兩個變量的定義,還差sum沒

定義,故第一個空應(yīng)填sum。

(5)C語言中,一個等號代表賦值運(yùn)算。xf=4500表示把4500賦值給變量xf,即送入內(nèi)存的

xf變量中。

(6)四年的總費(fèi)用需要用一年的費(fèi)用乘以4,第二個空應(yīng)填入4*。注意C語言中乘法運(yùn)算的

乘號*不能像數(shù)學(xué)中那樣省略,即不能寫成4(xf+zsf),而應(yīng)寫成4*(xf+zsf),初學(xué)者應(yīng)特別注意。

(7)最后要用printf()函數(shù)輸出總費(fèi)用,總費(fèi)用已送入sum變量中,所以第三個空應(yīng)填sum。

【日積月累】

(1)程序填空時要刪掉“________”,然后在刪掉的下劃線處填入正確答案,否則可能會出

現(xiàn)下面的錯誤:

"________":未聲明的標(biāo)識符

(2)變量如果不定義直接使用,如本題的sum,會出現(xiàn)如下語法錯誤:

"sum":未聲明的標(biāo)識符

(3)通過賦值運(yùn)算符=可以把數(shù)據(jù)送入內(nèi)存,等號左邊必須是變量。

(4)C語言中乘法運(yùn)算中的乘號不能省。

2)程序填空練習(xí)

程序功能:若一個學(xué)生的英語、高數(shù)、體育三門課成績分別為:83.5、92、88,求該生三門課

的平均成績是多少。

請將程序補(bǔ)充完整,使其能得出正確結(jié)果。

/*************FILL*************/

________

main()

9

第一部分.indd92022/9/814:05:31

C語言程序設(shè)計實驗與習(xí)題選解

{

/*************FILL*************/

________;

English=83.5;

Math=92;

PE=88;

/*************FILL*************/

________;

printf("Theaveragescoreis:%f\n",avg);

}

【運(yùn)行結(jié)果】

【題目解析】

(1)已知三門課成績求平均成績,可以定義四個變量,其中三個變量存儲三門課成績,一個

變量存儲平均成績。

(2)有一門課成績是實型,所以最好將三門課成績都定義成實型變量,由實型數(shù)據(jù)運(yùn)算的結(jié)

果也是實型,所以平均值變量也定義成實型。C語言中,說明變量是實型變量的關(guān)鍵字是?oat和

double(二者的區(qū)別將在第2章詳細(xì)介紹),其中?oat最常用。

(3)本題使用了English、Math和PE三個變量,但尚未定義,需要提前定義一下。

(4)最后輸出平均值avg,但缺乏求avg的語句。

【正確答案】

第1空:_____________________________________________________

第2空:_____________________________________________________

第3空:_____________________________________________________

【日積月累】

4.程序設(shè)計

程序設(shè)計范例:

程序功能:求一個邊長為a的正方形面積,邊長從鍵盤輸入。

【運(yùn)行結(jié)果】

例如:輸入1.5時,輸出2.250000。

【題目解析】

(1)需要定義兩個變量,一個存儲正方形邊長,一個存儲正方形面積。

(2)邊長可能為整型也可能為實型的情況下,通常定義為實型變量,由實型數(shù)據(jù)運(yùn)算的結(jié)果

也是實型,故結(jié)果變量也定義為實型。

(3)通過輸入函數(shù)scanf()從鍵盤隨機(jī)輸入一個數(shù)給邊長變量,輸入時變量名前需加取地址運(yùn)

10

第一部分.indd102022/9/814:05:31

第1部分?上機(jī)實驗

算符&。

(4)通過輸出函數(shù)printf()把計算的結(jié)果輸出到屏幕顯示,輸出時變量名前不用加取地址運(yùn)算

符&。(關(guān)于scanf()函數(shù)和printf()函數(shù)會在第2章詳細(xì)介紹)

(5)輸入、輸出?oat型數(shù)據(jù)時格式說明符都用%f。

【程序代碼】

#include<stdio.h>scanf("%f",&a);

main()area=a*a;

{printf("%f\n",area);

?oata,area;}

【日積月累】

(1)題目中明確說明邊長為a,則變量名就固定為a了,沒有說明的可以自己命名,如本題

面積變量,可以命名為area也可以命名為b等其他名字。

(2)變量不定義就使用會產(chǎn)生“未聲明的標(biāo)識符”的語法錯誤。

(3)scanf()函數(shù)和printf()函數(shù)的第一個參數(shù)都要用雙引號括起來。

四、課后拓展

1.編程在屏幕上輸出下面的菱形圖案。

*

***

*****

*******

*****

***

*

2.設(shè)長方體的長、寬、高分別為a、b、h,編程求長方體的體積。

五、實驗總結(jié)

11

第一部分.indd112022/9/814:05:31

實驗2?數(shù)據(jù)類型、運(yùn)算符與輸入/輸出

2.1?數(shù)據(jù)類型、運(yùn)算符和表達(dá)式

一、實驗?zāi)康?/p>

(1)加深對C語言是強(qiáng)類型語言的感性認(rèn)識,掌握C語言的基本數(shù)據(jù)類型的定義方法。

(2)初步了解數(shù)值數(shù)據(jù)的存儲,掌握不同數(shù)據(jù)的取值范圍。

(3)掌握C程序中運(yùn)算符和表達(dá)式的使用規(guī)則。

(4)學(xué)會編寫和運(yùn)行簡單的應(yīng)用程序,進(jìn)一步熟悉如何編輯、編譯、連接和運(yùn)行C程序。

二、主要知識點(diǎn)

(1)C語言的變量需要先定義,即確定它的類型。然后使用,C語言可以連續(xù)定義多個變量。

(2)整型、浮點(diǎn)型和字符型是C語言中的基本數(shù)據(jù)類型,整型有多種子類型,可以表示不同

范圍的整數(shù)數(shù)據(jù)。浮點(diǎn)數(shù)有單精度和雙精度之分,表示不同的數(shù)據(jù)范圍和精度。C語言的字符類

型本質(zhì)上是無符號整數(shù),它也有多種表示形式。

(3)C語言中的數(shù)據(jù)類型之間可以進(jìn)行轉(zhuǎn)換,當(dāng)進(jìn)行賦值、算術(shù)運(yùn)算和輸出時,數(shù)據(jù)可能會

進(jìn)行自動轉(zhuǎn)換,可以人為進(jìn)行強(qiáng)制轉(zhuǎn)換,將類型名加括號置于變量或者數(shù)據(jù)前即可。

(4)C語言支持加減乘除模等數(shù)學(xué)運(yùn)算符,也支持與、或、非等邏輯運(yùn)算符,還支持按位與、

按位或、移位等位運(yùn)算符。

(5)C語言中運(yùn)算符還有賦值運(yùn)算符(可與加減乘除復(fù)合)、自加和自減運(yùn)算符、三目運(yùn)算符、

逗號運(yùn)算符、sizeof運(yùn)算符、求地址運(yùn)算符、指針運(yùn)算符。

(6)C語言中的變量和運(yùn)算符按照正則規(guī)則生成表達(dá)式,要尤其注意逗號表達(dá)式、賦值表達(dá)

式的優(yōu)先級和結(jié)合性。

三、實驗內(nèi)容

1.程序改錯

1)程序改錯范例

#include<stdio.h>/*************FOUN

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論