




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
“十三五”職業(yè)教育國家規(guī)劃教材配套教材
C語言程序設(shè)計實訓(xùn)
包鋒呂曉昶周賓主編
齊博張國華宋新起副主編
趙鳳芝主審
內(nèi)容簡介
本書以突出實踐應(yīng)用能力為出發(fā)點,融入工學(xué)結(jié)合的CDIO工程理念,采用“案例驅(qū)動”模式,除第11章外,
每章從實例入手進行解析,并配有大量實用的習(xí)題進行實戰(zhàn)訓(xùn)練,為扎實學(xué)習(xí)和鞏固所學(xué)的C語言知識提供有力保
障,也為強化C語言程序設(shè)計能力、參加計算機考試打下堅實基礎(chǔ)。
全書共11章,包括進入C語言程序世界、應(yīng)用C的基礎(chǔ)知識實現(xiàn)數(shù)據(jù)的運算與處理、應(yīng)用順序結(jié)構(gòu)設(shè)計程序
解決簡單實際問題、應(yīng)用選擇結(jié)構(gòu)設(shè)計程序?qū)崿F(xiàn)分支判斷、應(yīng)用循環(huán)結(jié)構(gòu)設(shè)計程序?qū)崿F(xiàn)重復(fù)操作、應(yīng)用數(shù)組設(shè)計程
序?qū)崿F(xiàn)批量數(shù)據(jù)處理、應(yīng)用函數(shù)設(shè)計程序?qū)崿F(xiàn)模塊化設(shè)計、應(yīng)用指針設(shè)計程序增加獨有特色、自己定義數(shù)據(jù)類型完
成復(fù)雜數(shù)據(jù)處理、應(yīng)用文件管理數(shù)據(jù)、實戰(zhàn)演練——綜合模擬測試題及參考答案。附錄中列出了常見編譯錯誤信息、
計算機基礎(chǔ)知識訓(xùn)練題。本書與《C語言程序設(shè)計能力教程(第5版)》(趙鳳芝、包鋒、李峰主編,中國鐵道出版
社有限公司出版)配套使用,每章包括實例解析和大量習(xí)題,讀者可根據(jù)需要進行取舍。
本書例題講解詳細、習(xí)題豐富、題型全面,并融入了思政元素,適合作為高等職業(yè)院校程序設(shè)計課程的實訓(xùn)教
材或輔助教材,也可作為參加培訓(xùn)、考級、考試人員的強化訓(xùn)練用書和自學(xué)參考書。
圖書在版編目(CIP)數(shù)據(jù)
C語言程序設(shè)計實訓(xùn)/包鋒,呂曉昶,周賓主編.—2版.—北京:
中國鐵道出版社有限公司,2022.6
“十三五”職業(yè)教育國家規(guī)劃教材配套教材
ISBN978-7-113-28886-0
Ⅰ.①C…Ⅱ.①包…②呂…③周…Ⅲ.①C語言-程序設(shè)計-
職業(yè)教育-教材Ⅳ.①TP312.8
中國版本圖書館CIP數(shù)據(jù)核字(2022)第051765號
書名:C語言程序設(shè)計實訓(xùn)
作者:包鋒呂曉昶周賓
策劃:王春霞編輯部電話:(010)63551006
責(zé)任編輯:王春霞徐盼欣
封面設(shè)計:劉穎
責(zé)任校對:孫玫
責(zé)任印制:樊啟鵬
出版發(fā)行:中國鐵道出版社有限公司(100054,北京市西城區(qū)右安門西街8號)
網(wǎng)址:/51eds/
印刷:三河市航遠印刷有限公司
版次:2018年2月第1版2022年6月第2版2022年6月第1次印刷
開本:850mm×1168mm1/16印張:14字數(shù):358千
書號:ISBN978-7-113-28886-0
定價:45.00元
版權(quán)所有侵權(quán)必究
凡購買鐵道版圖書,如有印制質(zhì)量問題,請與本社教材圖書營銷部聯(lián)系調(diào)換。電話:(010)63550836
打擊盜版舉報電話:(010)63549461
前言
C語言不僅適用于系統(tǒng)軟件的設(shè)計,而且適用于應(yīng)用程序設(shè)計。C語言具有強大的功能、
豐富的數(shù)據(jù)類型,使用靈活,兼具面向硬件編程的低級語言特性及通用性強、可移植性好等高
級語言特性,是國內(nèi)外廣泛流行的程序設(shè)計語言,一直長盛不衰,成為軟件開發(fā)中的主流語言
之一。
目前,許多開發(fā)工具(包括VisualC++和VisualC++.NET及Java等開發(fā)工具)遵循著標
準的C語言基本語法,很多嵌入式系統(tǒng)的軟件采用C語言來開發(fā)??梢哉f,C語言是程序開
發(fā)人員必須掌握的基本功,也是國內(nèi)各高校廣泛學(xué)習(xí)和普遍使用的一種重要的計算機語言。目
前,全國計算機等級考試、全國計算機應(yīng)用技術(shù)證書考試、全國計算機技能大賽等都將C語
言列入了考試范圍。
本書以突出實踐應(yīng)用能力為出發(fā)點,融入工學(xué)結(jié)合的CDIO工程理念,采用流行的“案例
驅(qū)動”模式,每部分章節(jié)開始前列出“知識要點”,介紹該章所學(xué)的重要知識點,給出本章的“思
想啟蒙”,給學(xué)生以思想啟蒙教育。內(nèi)容從實例入手進行講解、分析,并配有大量實用的各種
習(xí)題進行實戰(zhàn)訓(xùn)練,為扎實學(xué)習(xí)和鞏固所學(xué)的C語言知識提供有力保障,也為強化C語言程
序設(shè)計能力、參加計算機考試打下堅實基礎(chǔ)。部分章節(jié)題目融入思政元素,希望學(xué)生在掌握技
能的同時,提高思想認識。
全書共11章,包括進入C語言程序世界、應(yīng)用C的基礎(chǔ)知識實現(xiàn)數(shù)據(jù)的運算與處理、應(yīng)
用順序結(jié)構(gòu)設(shè)計程序解決簡單實際問題、應(yīng)用選擇結(jié)構(gòu)設(shè)計程序?qū)崿F(xiàn)分支判斷、應(yīng)用循環(huán)結(jié)構(gòu)
設(shè)計程序?qū)崿F(xiàn)重復(fù)操作、應(yīng)用數(shù)組設(shè)計程序?qū)崿F(xiàn)批量數(shù)據(jù)處理、應(yīng)用函數(shù)設(shè)計程序?qū)崿F(xiàn)模塊化
設(shè)計、應(yīng)用指針設(shè)計程序增加獨有特色、自己定義數(shù)據(jù)類型完成復(fù)雜數(shù)據(jù)處理、應(yīng)用文件管理
數(shù)據(jù)、實戰(zhàn)演練——綜合測試題及參考答案。附錄中列出了常見編譯錯誤信息、計算機基礎(chǔ)知
識訓(xùn)練題。本書與《C語言程序設(shè)計能力教程(第5版)》(趙鳳芝、包鋒、李峰主編,中國
鐵道出版社有限公司出版)教材配套,每章包括實例解析和大量習(xí)題,讀者在使用時可根據(jù)需
要進行取舍。
本書適合作為高等職業(yè)院校程序設(shè)計課程的實訓(xùn)教材或輔助教材,也可作為參加培訓(xùn)、
考級、考試人員的強化訓(xùn)練用書和自學(xué)參考書。
I
C語言程序設(shè)計實訓(xùn)
本書由包鋒、呂曉昶、周賓任主編,齊博、張國華、宋新起任副主編,趙鳳芝主審,
包鋒負責(zé)統(tǒng)稿定稿。其中,包鋒編寫了第1、2、6、7章,呂曉昶編寫了第3、4、5章,周賓
編寫了第8、9章,齊博編寫了第10章和附錄及視頻資料,張國華、宋新起、白晟、邢雪峰編
寫了第11章,李峰、王海英為本書提供了大量的資料,在此表示真誠的感謝!
由于編者水平有限,書中疏漏和不足之處在所難免,敬請有關(guān)專家和廣大讀者不吝指正,
編者的電子郵箱是qhdcomputer@163.com。
編者
2022年2月
II
目錄
第1章進入C語言程序世界1
實例解析2
小結(jié)11
實戰(zhàn)訓(xùn)練11
第2章應(yīng)用C的基礎(chǔ)知識實現(xiàn)數(shù)據(jù)的運算與處理14
實例解析15
小結(jié)20
實戰(zhàn)訓(xùn)練20
第3章應(yīng)用順序結(jié)構(gòu)設(shè)計程序解決簡單實際問題24
實例解析25
小結(jié)27
實戰(zhàn)訓(xùn)練27
第4章應(yīng)用選擇結(jié)構(gòu)設(shè)計程序?qū)崿F(xiàn)分支判斷31
實例解析33
小結(jié)36
實戰(zhàn)訓(xùn)練36
第5章應(yīng)用循環(huán)結(jié)構(gòu)設(shè)計程序?qū)崿F(xiàn)重復(fù)操作46
實例解析48
小結(jié)53
實戰(zhàn)訓(xùn)練54
第6章應(yīng)用數(shù)組設(shè)計程序?qū)崿F(xiàn)批量數(shù)據(jù)處理68
I
C語言程序設(shè)計實訓(xùn)
實例解析70
小結(jié)76
實戰(zhàn)訓(xùn)練76
第7章應(yīng)用函數(shù)設(shè)計程序?qū)崿F(xiàn)模塊化設(shè)計87
實例解析89
小結(jié)96
實戰(zhàn)訓(xùn)練96
第8章應(yīng)用指針設(shè)計程序增加獨有特色113
實例解析114
小結(jié)124
實戰(zhàn)訓(xùn)練124
第9章自己定義數(shù)據(jù)類型完成復(fù)雜數(shù)據(jù)處理137
實例解析138
小結(jié)149
實戰(zhàn)訓(xùn)練149
第10章應(yīng)用文件管理數(shù)據(jù)157
實例解析158
小結(jié)160
實戰(zhàn)訓(xùn)練160
第11章實戰(zhàn)演練——綜合模擬測試題及參考答案168
綜合模擬測試題168
綜合模擬測試題參考答案202
附錄????????????????????????????????????????????????????????????????????????????????????????????????207
附錄A常見編譯錯誤信息207
附錄B計算機基礎(chǔ)知識訓(xùn)練題213
II
第1章
進入C語言程序世界
C語言簡潔、緊湊,使用方便、靈活;運算符、數(shù)據(jù)結(jié)構(gòu)豐富,具有現(xiàn)代化語言的各種數(shù)據(jù)結(jié)
構(gòu);具有結(jié)構(gòu)化的控制語句;語法限制不太嚴格,程序設(shè)計自由度大;生成目標代碼質(zhì)量高,程
序執(zhí)行效率高。本章通過對幾個小程序的講述,使讀者對C語言程序的結(jié)構(gòu)有大致的了解,熟悉
VisualC++6.0和VisualC++2010的開發(fā)環(huán)境和調(diào)試步驟。
實訓(xùn)目標
通過本章訓(xùn)練,你將能夠:
了解C語言程序的基本構(gòu)成和簡單的程序。
掌握C程序編寫和運行步驟。
知識要點
1.函數(shù)與主函數(shù)
①程序由一個或多個函數(shù)組成。
②程序必須有且只能有一個主函數(shù)main()。
③程序執(zhí)行從main()函數(shù)開始,在main()函數(shù)中結(jié)束,其他函數(shù)通過調(diào)用得以執(zhí)行。main()
函數(shù)可以出現(xiàn)在任何位置。
2.程序語句
①C程序由語句組成。
②用“;”作為語句終止符。
③“{}”表示程序的結(jié)構(gòu)層次范圍。
3.注釋
/*……*/為注釋,不能嵌套,主要是對程序功能的必要說明和解釋,可以為單行或多行。
//……為單行注釋。
4.算法
算法是一個有窮規(guī)則的集合,其中的規(guī)則確定了一個解決某個特定類型問題的運算序列。
1
C語言程序設(shè)計實訓(xùn)
5.衡量算法的正確性
①有窮性。
②確定性。
③有效性。
④沒有輸入或有多個輸入。
⑤有一個或多個輸出。
6.C程序的調(diào)試與運行
C語言采用編譯方式將源程序轉(zhuǎn)換為二進制目標代碼。編寫好一個C程序到完成運行一般經(jīng)
過編輯、編譯、連接和運行四個步驟。
思想啟蒙
懂得事情輕重緩急,節(jié)約時間,提高效率。
實例解析
一、初識C語言
【實例1.1】編寫第一個C語言程序,輸出“IamChinese!”。
解:
#include<stdio.h>
voidmain()
{
輸出
printf("IamChinese!");/*"IamChinese!"*/
}
本程序運行結(jié)果為:
IamChinese!
解析:
C程序首先要有主函數(shù)main(),函數(shù)體是要輸出一行文字,并沒用到變量,不用說明,只是
用到了輸出函數(shù)printf()。注意:一條語句需要以“;”結(jié)束,函數(shù)體要用{}括起來。在C程序中
“/*……*/”表示注釋,它們之間的語句只起說明作用,并不執(zhí)行。
二、設(shè)計簡單的C程序
【實例1.2】已知一個矩形(長為5、寬為6),求其面積并輸出。
解:
#include<stdio.h>
voidmain()
{
2
第1章進入C語言程序世界
定義變量
inta=5,b=6,area;/**/
area=a*b;
輸出面積
printf("area=%d",area);/**/
}
本程序運行結(jié)果為:
area=30
解析:視頻
在定義a,b時直接進行賦值,它們之間用逗號分開。
【實例1.3】已知a=2,b=3,c=4,x=5,求表達式ax2+bx+c的值。
解:
實例1.3
#include<stdio.h>
voidmain()
{
inta,b,c,x=5,sum;
a=2;
b=3;
c=4;
sum=a*x*x+b*x+c;
printf("%d*%d*%d+%d*%d+%d=%d\n",a,x,x,b,x,c,sum);
}
本程序運行結(jié)果為:
2*5*5+3*5+4=69
解析:
這是一道簡單的計算題。在C語言中,兩個操作數(shù)之間必須有符號,乘號“*”不能省略。對
變量賦值,一種是在定義時直接賦值,它們之間用逗號分開;另一種是在執(zhí)行語句中賦值,這時需
要用分號結(jié)束。
三、程序的調(diào)試與運行
下面分別介紹VisualC++6.0和VisualC++2010兩種軟件開發(fā)環(huán)境。
1.VisualC++6.0
VisualC++6.0(簡稱VC++或VC)提供了可視化的集成開發(fā)環(huán)境,主要包括文本編輯器、資
源編輯器、工程創(chuàng)建工具、Debugger調(diào)試器等實用開發(fā)工具。VisualC++6.0分為標準版、專業(yè)版
和企業(yè)版三種,但其基本功能是相同的。
下面介紹如何在VisualC++6.0中實現(xiàn)C程序的編輯和運行。
1)VisualC++6.0啟動界面
在Windows系統(tǒng)任務(wù)欄中,選擇“開始”→“所有程序”→MicrosoftVisualStudio6.0→
MicrosoftVisualC++6.0命令,即可啟動VisualC++6.0集成開發(fā)環(huán)境,啟動界面如圖1-1所示。
3
C語言程序設(shè)計實訓(xùn)
2)在VisualC++6.0中編譯C程序
(1)創(chuàng)建文件
在VC++中創(chuàng)建C程序文件有多種方式,現(xiàn)列舉兩種。
①在任意位置處創(chuàng)建一個記事本文件,保存格式由.txt修改為.c,如exam.c。啟動VC++環(huán)
境,選擇File→Open命令,在彈出的“打開”對話框中選擇創(chuàng)建的exam.c文件,如圖1-2所示,
單擊“打開”按鈕,即可進入VC++的代碼編輯窗口。
圖1-1VisualC++6.0啟動界面
圖1-2打開exam.c文件
②啟動VC++,選擇File→New命令,在彈出的New對話框中選擇Files選項卡。在左邊列
出的選項中,選擇C++SourceFile或TextFile選項,在右邊File文本框中輸入exam.c,如圖1-3所
示,單擊Location文本框右側(cè)的按鈕修改保存的位置。單擊OK按鈕,即可進入VC++的代碼
編輯窗口。
(2)編輯代碼并保存
①編輯代碼:在VC++代碼編輯區(qū)中輸入exam.c的源代碼,完成后如圖1-4所示。源代碼
如下:
4
第1章進入C語言程序世界
/***exam.c***/
#include<stdio.h>
voidmain()
{
歡迎使用編譯程序!
printf("VC++C\n");
}
圖1-3創(chuàng)建exam.c文件
圖1-4編輯代碼窗口
②保存:選擇File→Save命令(SaveAs命令可修改原默認存儲路徑),也可單擊工具欄中的
“保存”按鈕。
(3)編譯、連接、運行源程序
選擇Build→Compileexam.c命令(或單擊工具欄中的按鈕,或按【Ctrl+F7】組合鍵),在
彈出的對話框中單擊“是”按鈕,這時系統(tǒng)開始對當前的源程序進行編譯。在編譯過程中,將所
發(fā)現(xiàn)的錯誤顯示在“輸出區(qū)”窗口中,錯誤信息中指出錯誤所在行號和錯誤的原因。當程序出現(xiàn)
錯誤時,根據(jù)提示信息修改源程序代碼,再進行編譯直至編譯正確,如圖1-5所示。
當輸出窗口中的信息提示為exam.obj-0error(s),0warning(s)時,表示編譯正確。
選擇Build→Buildexam.exe命令(或單擊工具欄中的按鈕,或按【F7】鍵),連接正確時,
5
C語言程序設(shè)計實訓(xùn)
生成可執(zhí)行文件exam.exe,如圖1-6所示。該文件保存在exam.c同一文件夾下的Debug文件夾中。
圖1-5輸出窗口中的編譯信息
圖1-6輸出窗口中的連接信息
選擇Build→ExecuteProgramexam.exe命令(或單擊工具欄中的按鈕,或按【Ctrl+F5】組
合鍵),即可看到控制臺程序窗口中的運行結(jié)果,如圖1-7所示。
圖1-7程序exam.c的運行結(jié)果
(4)關(guān)閉工作區(qū)
每次完成對程序的操作后,必須安全地保存好已經(jīng)建立的應(yīng)用程序與數(shù)據(jù),應(yīng)正確地使用關(guān)
閉工作區(qū)來終止工程。
選擇File→SaveWorkspace命令,可以保存工作區(qū)的信息;選擇File→CloseWorkspace命令,
可以終止工程、保存工作區(qū)信息、關(guān)閉當前工作區(qū);選擇File→Exit命令,可以退出VC++環(huán)境。
2.VisualC++2010
VisualC++2010學(xué)習(xí)版是VisualStudio2010的一個組件,是微軟公司的C++開發(fā)工具,具有
集成開發(fā)環(huán)境,用于編輯C語言、C++以及C++/CLI等編程語言。
1)VisualC++2010學(xué)習(xí)版主框架窗口
安裝VisualC++2010學(xué)習(xí)版后,選擇“開始”→“所有程序”→MicrosoftVisualStudio2010
Express→MicrosoftVisualC++2010Express命令,即可啟動VisualC++2010學(xué)習(xí)版集成開發(fā)環(huán)境,
啟動界面如圖1-8所示。
6
第1章進入C語言程序世界
圖1-8VisualC++2010學(xué)習(xí)版啟動界面
2)在VisualC++2010學(xué)習(xí)版中編譯C程序
①新建項目,如圖1-9所示。
圖1-9新建項目
②新建“Win32控制臺應(yīng)用程序”,如圖1-10所示。
圖1-10新建“Win32控制臺應(yīng)用程序”
7
C語言程序設(shè)計實訓(xùn)
③在向?qū)е羞x擇“空項目”,如圖1-11所示。
圖1-11在向?qū)е羞x擇“空項目”
④右擊“源文件”,在彈出的快捷菜單中選擇“添加”→“新建項”命令,如圖1-12所示。
圖1-12選擇“添加”→“新建項”命令
⑤在添加項中選擇“C++文件”,輸入文件名,如圖1-13所示。
圖1-13添加“C++文件”
8
第1章進入C語言程序世界
⑥輸入程序代碼,如圖1-14所示。輸入完畢后,選擇“文件”→“全部保存”命令保存項目,
選擇“文件”→“保存”或“另存為”命令保存C++文件。
圖1-14輸入程序代碼
⑦選擇“生成”→“生成”(編譯)命令,如圖1-15所示。編譯結(jié)果如圖1-16所示。
圖1-15選擇“生成”→“生成”(編譯)命令
圖1-16編譯結(jié)果
⑧選擇“調(diào)試”→“開始執(zhí)行”命令,如圖1-17所示。運行結(jié)果如圖1-18所示。
⑨每次完成對程序的操作后,必須安全地保存好已建立的應(yīng)用程序與數(shù)據(jù),應(yīng)正確地使用關(guān)
閉解決方案來終止項目。選擇“文件”→“關(guān)閉解決方案”命令,如圖1-19所示。
VisualC++2010Express常用快捷鍵:
?Ctrl+N:相當于選擇“文件”→“新建”→“文件”命令。
9
C語言程序設(shè)計實訓(xùn)
圖1-17開始執(zhí)行
圖1-18運行結(jié)果
圖1-19關(guān)閉解決方案
?Ctrl+F7:編譯程序。
?F7:生成解決方案。
10
第1章進入C語言程序世界
?Ctrl+F5:運行程序。
?F5:調(diào)試程序。
小結(jié)
本章主要介紹了C語言的特點、程序結(jié)構(gòu)、常用算法及程序運行過程。通過編寫運行幾個小程序,
熟悉C語言的開發(fā)環(huán)境。
實戰(zhàn)訓(xùn)練
一、選擇題
1.對于一個正常運行的C程序,以下敘述中正確的是()。
A.程序的執(zhí)行總是從main()函數(shù)開始,在main()函數(shù)中結(jié)束
B.程序的執(zhí)行總是從程序的第一個函數(shù)開始,在main()函數(shù)中結(jié)束
C.程序的執(zhí)行總是從main()函數(shù)開始,在程序的最后一個函數(shù)中結(jié)束
D.程序的執(zhí)行總是從程序中的第一個函數(shù)開始,在程序的最后一個函數(shù)中結(jié)束
2.以下敘述不正確的是()。
A.一個C源程序可由一個或多個函數(shù)組成
B.一個C源程序必須包含一個main()函數(shù)
C.C程序的基本組成單位是函數(shù)
D.在C程序中注釋說明只能位于一條語句的后面
3.以下敘述中正確的是()。
A.C程序中的注釋只能出現(xiàn)在程序的開始位置和語句的后面
B.C程序書寫格式嚴格,要求一行內(nèi)只能寫一條語句
C.C程序書寫格式自由,一條語句可以寫在多行上
D.用C語言編寫的程序只能放在一個程序文件中
4.下列說法正確的是()。
A.main()函數(shù)必須放在C程序的開頭
B.main()函數(shù)必須放在C程序的最后
C.main()函數(shù)可以放在C程序的中間部分,但在執(zhí)行C程序時是從程序開頭執(zhí)行的
D.main()函數(shù)可以放在C程序的中間部分,但在執(zhí)行C程序時是從main()函數(shù)開始的
5.()是C程序的基本構(gòu)成單位。
A.函數(shù)B.函數(shù)和過程C.超文本過程D.子程序
6.以下說法正確的是()。
A.C語言程序總是從第一個定義的函數(shù)開始執(zhí)行
B.在C語言程序中,要調(diào)用的函數(shù)必須在main()函數(shù)中定義
C.C語言程序總是從main()函數(shù)開始執(zhí)行
D.C語言程序中的main()函數(shù)必須放在程序的開始部分
11
C語言程序設(shè)計實訓(xùn)
7.在C語言中,每條語句和數(shù)據(jù)定義用()結(jié)束。
A.句號B.逗號C.分號D.括號
8.C語言規(guī)定:在一個源程序中,main()函數(shù)的位置()。
A.必須在最開始B.必須在系統(tǒng)調(diào)用的庫函數(shù)的后面
C.可以在任意位置D.必須在源文件的最后
9.一個C語言程序由()。
A.一個主程序和若干子程序組成
B.函數(shù)組成,并且每個C程序必須且只能有一個主函數(shù)
C.若干過程組成
D.若干子程序組成
10.下列說法正確的是()。
A.在執(zhí)行C程序時不是從main()函數(shù)開始的
B.C程序書寫格式嚴格限制,一行內(nèi)必須寫一條語句
C.C程序書寫格式自由,一條語句可以分寫在多行上
D.C程序書寫格式嚴格限制,一行內(nèi)必須寫一條語句,并要有行號
11.一個C程序可以包含任意多個不同名的函數(shù),但有且僅有一個(),一個C程序總是
從()開始執(zhí)行。
A.過程B.主函數(shù)C.函數(shù)D.include
12.C語言規(guī)定,必須用()作為主函數(shù)名。
A.functionB.includeC.mainD.stdio
13.以下敘述中正確的是()。
A.用C程序?qū)崿F(xiàn)的算法必須要有輸入和輸出操作
B.用C程序?qū)崿F(xiàn)的算法可以沒有輸出但必須要有輸入
C.用C程序?qū)崿F(xiàn)的算法可以沒有輸入但必須要有輸出
D.用C程序?qū)崿F(xiàn)的算法可以既沒有輸入也沒有輸出
二、判斷題
1.一個C程序由一個或多個函數(shù)組成。()
2.一個C程序必須包含一個main()函數(shù)。()
3.C程序的每一行可以寫多條語句。()
4.在C語言程序中main()函數(shù)必須放在程序的開始位置。()
5.C語言程序的開始執(zhí)行點是程序中的main()函數(shù)。()
6.C程序的書寫格式雖然自由,但為了清晰,一般在一行內(nèi)寫一條語句。()
7.分號是語句的必要組成部分,所以函數(shù)首部的后面和編譯預(yù)處理的后面都得加分號。
()
8.注釋在程序執(zhí)行時不產(chǎn)生任何操作,因此在程序中不提倡注釋。()
9.C程序的書寫格式自由,一行內(nèi)可以寫多條語句,一條語句也可以寫在多行上。
()
10.C程序中以#include和#de?ne開始的程序行均不是C語句。()
12
第1章進入C語言程序世界
11.一個C程序可以由若干源程序文件(分別進行編譯的文件模塊)組成。()
12.在C語言中運算符的優(yōu)先級高低的排列順序是:逗號運算符、算術(shù)運算符、賦值運算符。
()
13.C程序書寫格式自由,一條語句可以寫在多行上。()
14.C語言程序由主函數(shù)和0個或多個函數(shù)組成。()
15.C語言程序由主程序和子程序組成。()
16.C語言程序由子程序組成。()
17.C語言程序由過程組成。()
18.C程序書寫格式嚴格,要求一行內(nèi)只能寫一條語句。()
19.在對一個C程序進行編譯的過程中,可發(fā)現(xiàn)注釋中的拼寫錯誤。()
20.C語言源程序文件通過了編譯、連接之后,生成一個擴展名為.exe的文件。()
三、填空題
1.一個C程序的執(zhí)行從函數(shù)開始。
2.一個C程序的執(zhí)行隨著函數(shù)的結(jié)束而結(jié)束。
3.一個C程序必須包含一個函數(shù)。
4.C程序的基本組成單位是。
5.C程序最先執(zhí)行的函數(shù)名為。
6.關(guān)鍵字是由C語言規(guī)定的具有特定意義的字符串,通常也稱。
7.C語言空語句的形式是。
8.C語言中,注釋部分以開始。
13
第2章
應(yīng)用C的基礎(chǔ)知識實現(xiàn)
數(shù)據(jù)的運算與處理
C語言的數(shù)據(jù)結(jié)構(gòu)是以數(shù)據(jù)類型形式出現(xiàn)的。數(shù)據(jù)類型是指數(shù)據(jù)的內(nèi)部表示形式,它是進行
C語言程序設(shè)計的基礎(chǔ)。每種數(shù)據(jù)類型又分常量和變量,可以進行數(shù)據(jù)的運算。C語言的運算符極
其豐富,有30多種。本章將討論C語言的數(shù)據(jù)類型及運算符,主要是基本數(shù)據(jù)類型及運算符與表
達式等,通過對上述問題的訓(xùn)練,使讀者能夠掌握C語言的基礎(chǔ)知識,為今后的程序設(shè)計打下基礎(chǔ)。
實訓(xùn)目標
通過本章訓(xùn)練,你將能夠:
掌握數(shù)據(jù)的基本類型。
掌握對變量與常量的賦值。
掌握常用的運算符,正確書寫表達式。
知識要點
1.標識符
①只能由英文字母、數(shù)字和下畫線組成,且第一個字符必為英文字母或下畫線。
②不允許使用關(guān)鍵字作為標識符的名字。
③有意義的標識符長度為前8個字符。
④標識符命名應(yīng)以直觀且易于拼讀為宜。
⑤標識符區(qū)分大小寫。
2.變量
①變量是在程序執(zhí)行過程中可以改變、可以賦值的量。
②定義形式:
類型變量名變量名…
1[,2,];
其中,方括號內(nèi)的內(nèi)容為可選項,可以同時聲明多個相同類型的變量,它們之間需要用逗號
14
第2章應(yīng)用C的基礎(chǔ)知識實現(xiàn)數(shù)據(jù)的運算與處理
分隔。例如:
;
?oata,b,c
3.數(shù)據(jù)類型
①基本類型、構(gòu)造類型、指針類型和空類型四大類。
②基本類型有整型、實型、字符型和枚舉類型。
③整型變量類型有int,long等。
④實型變量類型有?oat,double等。
⑤字符型變量類型char。用單引號包含的一個字符是字符型常量。用雙引號包含的任意個字
符是字符串常量。
4.運算符
①運算符按其功能分為算術(shù)運算符、關(guān)系運算符、邏輯運算符、賦值運算符、逗號運算符等。
②雙目算術(shù)運算符共有5個:+,-,*,/,%。注意:“/”是整數(shù)除法,還是實數(shù)除法。%運
算只適用于整型數(shù)。
③將一個常量或一個表達式的值賦給一個變量稱為賦值。
④自增和自減運算符及其表達式。
⑤強制類型轉(zhuǎn)換運算符及其表達式。
⑥逗號運算符與逗號表達式。
⑦不同類型數(shù)據(jù)之間的混合運算。
思想啟蒙
遵紀守法,無規(guī)矩不成方圓。凡事有度,過猶不及。
實例解析
一、數(shù)據(jù)類型
1.常量與變量
【實例2.1】地球近似一個球體,赤道半徑約6377.83km,求地球赤道周長。
解:
#include<stdio.h>
定義常量,值為
#de?nePI3.14/*PI3.14*/
voidmain()
{
?oatr,girth;
r=6377.83;
計算赤道周長
girth=2*PI*r;/**/
printf("girth=%.2f\n",girth);
}
15
C語言程序設(shè)計實訓(xùn)
本程序運行結(jié)果為:
girth=40052.77
解析:
在C語言中并沒有字母π,只能用別的名稱代替,此例中定義了一個字符常量PI。地球赤
道周長約4萬千米,毛主席詩句“坐地日行八萬里,巡天遙看一千河”就提到過地球赤道周長的
數(shù)據(jù)。
相關(guān)知識
在程序運行過程中,其值不能被改變的量稱為常量。常量的值在其作用域內(nèi)不能改變,也不
能再被賦值。習(xí)慣上,符號常量名用大寫,變量名用小寫,以示區(qū)別。C定義常量時需添加語句:
“#de?ne常量名常量定值”。
【實例2.2】求1~10的累加和。
解:
#include<stdio.h>
主函數(shù)
voidmain()/**/
{
定義變量,
inti,sum=0;/*isum*/
從到,共循環(huán)次
for(i=1;i<=10;i++)/*i11010*/
進行累加
sum=sum+i;/**/
輸出累加和
printf("sum=%d",sum);/**/
}
本程序運行結(jié)果為:
sum=55
解析:
本題中用到了一個for循環(huán)語句,其作用是讓i從1每次循環(huán)增加1。關(guān)于循環(huán)語句的使用將
在第5章學(xué)習(xí)。
相關(guān)知識
其值可以改變的量稱為變量。一個變量應(yīng)該有一個名字,在內(nèi)存中占據(jù)一定的存儲單元。注
意區(qū)分變量名和變量值這兩個不同的概念。標識符用來標識變量名、符號常量名、函數(shù)名、數(shù)組
名。文件名只能由字母、數(shù)字和下畫線三種字符組成,且第一個字符必須為字母或下畫線。
2.整型、實型與字符型數(shù)據(jù)
【實例2.3】若a=1,b=2,x=1.2,y=2.1,n=128765,c1='a',想得到以下的輸出格式和結(jié)果,
請寫出程序(包括定義變量類型和設(shè)計輸出)。
a=1b=2
x=1.200000,y=2.100000
y-x=0.900000,x+y=3.30
16
第2章應(yīng)用C的基礎(chǔ)知識實現(xiàn)數(shù)據(jù)的運算與處理
n=128765
c1='a'or97
解:
#include<stdio.h>
voidmain()
{
inta,b;
longintn;
?oatx,y;
charc1;
a=1;b=2;
x=1.2;y=2.1;
n=128765;
c1='a';
printf("\n");
printf("a=%2db=%2d\n",a,b);
printf("x=%8.6f,y=%8.6f\n",x,y);
printf("y-x=%5.2f,x+y=%5.2f\n",y-x,x+y);
printf("n=%9ld\n",n);
printf("c1='%c'or%d\n",c1,c1);
}
相關(guān)知識
C語言的數(shù)據(jù)結(jié)構(gòu)是以數(shù)據(jù)類型形式出現(xiàn)的。C的數(shù)據(jù)類型包括基本類型、構(gòu)造類型、指針
類型和空類型。數(shù)據(jù)基本類型包括整型(int)、字符型(char)、實型(?oat、double?oat)和枚舉
類型。int對應(yīng)的輸出格式字符為%d,若變量值較大時,可使用長整型(longint)。%md輸出格
式中,m為指定的輸出字段的寬度。若數(shù)據(jù)的輸出位數(shù)小于m,則左端補空格;若大于m,則按
實際位數(shù)輸出。?oat定義為實數(shù)(包括單、雙精),以小數(shù)輸出,%f默認輸出為6位小數(shù),
視頻
%m.nf表示共輸出m列,其中n位小數(shù)。每個字符以ASCII碼存儲,用%c對應(yīng)該字符,用
%d對應(yīng)其ASCII碼。%e輸出格式表示以科學(xué)記數(shù)法表示,主要適用于?oat類型和double
類型。
【實例2.4】編寫C程序,從鍵盤輸入一個英文字母(不包括a、z、A、Z),在屏幕上
顯示出其前后相連的三個英文字母。實例2.4
解:
引用一個預(yù)處理文件
#include<stdio.h>/*stdio.h*/
voidmain()
{
定義字符變量
charc;/*c*/
獲得一個字符
c=getchar();/*c*/
if((c>'a'&&c<'z')||(c>'A'&&c<'Z'))
printf("%c%c%c\n",c-1,c,c+1);
}
17
C語言程序設(shè)計實訓(xùn)
本程序運行結(jié)果為:
回車
B<>
ABC
解析:
程序中獲得字符c使用了getchar()函數(shù),因此必須引用文件stdio.h。
二、運算符與表達式
1.算術(shù)運算符和算術(shù)表達式
【實例2.5】寫出以下程序的運行結(jié)果。
#include<stdio.h>
voidmain()
{
定義變量,,,
inti,j,m,n;/*ijmn*/
i=8;
j=10;
變量先加
m=++i;/*i*/
變量后加
n=j++;/*j*/
printf("%d,%d,%d,%d",i,j,m,n);
}
解:
本程序運行結(jié)果為:
9,11,9,10
解析:
程序中變量i和j都自身加1,所以輸出的i和j都增加了1。但二者又有所不同,m=++i是變
量i自增1后再把值傳給變量m;n=j++是先把j值傳給變量n后再自增1。
相關(guān)知識
自增運算符(++)和自減運算符(--)只能用于變量,而不能用于常量或表達式,如5++或(a+b)++
都是不合法的。它們的結(jié)合方向是“自右至左”。它們常用于后面章節(jié)的循環(huán)語句中,使循環(huán)變量
自動增加1,也用于指針變量,使指針指向下一個地址。
【實例2.6】強制類型轉(zhuǎn)換。
解:
#include<stdio.h>
voidmain()
{
定義為實型
?oatx;/*x*/
定義,為整型
intm,n;/*mn*/
給賦初值
x=2.7;/*x*/
18
第2章應(yīng)用C的基礎(chǔ)知識實現(xiàn)數(shù)據(jù)的運算與處理
把強制轉(zhuǎn)換成整型賦值給
m=(int)x;/*xm*/
把加上的值強制取整再賦值給,可實現(xiàn)四舍五入取整
n=(int)(x+0.5);/*x0.5n*/
printf("x=%f,m=%d,n=%d",x,m,n);
}
本程序運行結(jié)果為:
x=2.70000,m=2,n=3
解析:
本題是把實型x強制轉(zhuǎn)換成整型,要把x前面的int用括號括起來。強制類型轉(zhuǎn)換的一般形式
為(類型名)(表達式),表達式應(yīng)該用括號括起來。
相關(guān)知識
類型轉(zhuǎn)換有兩種。一種是在運算時不必用戶指定,系統(tǒng)自動進行的類型轉(zhuǎn)換。另一種是強制
類型轉(zhuǎn)換,當自動類型轉(zhuǎn)換不能實現(xiàn)目的時,可以用強制類型轉(zhuǎn)換。如“%”運算符要求其兩側(cè)均
為整型量,若x為?oat型,則“x%3”不合法,必須用“(int)x%3”。強制類型轉(zhuǎn)換運算優(yōu)先于%
運算,因此先進行(int)x運算,再對3取模。
2.賦值運算符和賦值表達式
【實例2.7】若a的初值為12,求賦值表達式a+=a-=a*a中a的最終值。
解析:以下為此賦值表達式的求解步驟。
①先進行“a-=a*a”運算,相當于a=a-a*a=12-144=-132,此時a的值由12變成-132。
②進行“a+=-132”運算,相當于a=a+(-132)=-132-132=-264。
相關(guān)知識
進行表達式運算時,要注意運算順序,它是根據(jù)運算符的優(yōu)先級(可以參考主教材附錄中的
運算符優(yōu)先順序表)進行的。在賦值符“=”之前加上其他運算符,可以構(gòu)成復(fù)合的賦值運算符。
比如“a+=3”等價于“a=a+3”。采用這種復(fù)合運算符,一是為了簡化程序,使程序精練;二是為了
提高編譯效率。
下面是賦值表達式的例子:
賦值表達式值為,,,值均為
a=b=c=5/*5abc5*/
表達式值為,值為,值為
a=5+(c=6)/*11a11c6*/
表達式值為,值為,等于,等于
a=(b=4)+(c=6)/*10a10b4c6*/
表達式值為,值為,等于,等于
a=(b=10)/(c=2)/*5a5b10c2*/
3.逗號運算符和逗號表達式
C語言提供一種特殊的運算符——“逗號運算符”??梢杂枚禾栠\算符將兩個表達式連接起來。
如“3+5,6+8”稱為逗號表達式,又稱“順序求值運算符”。一般形式為:
表達式表達式
1,2
逗號表達式的求解過程:先求解表達式1,再求解表達式2。整個逗號表達式的值是表達式2
19
C語言程序設(shè)計實訓(xùn)
的值。例如,逗號表達式“3+5,6+8”的值為14。又如,“a=3*5,a*4”,由于逗號運算符的優(yōu)先級低
于賦值運算符,因此先求解a=3*5,后求解a*4,得60,但a值是15。
逗號表達式的一般形式可以擴展為:
表達式表達式表達式…表達式
1,2,3,,n
它的值為表達式n的值。
小結(jié)
本章是以后進行編程的基礎(chǔ),知識點較分散,注意系統(tǒng)學(xué)習(xí)后,也要在實驗時有針對性地進
行訓(xùn)練。本章介紹的只有基本數(shù)據(jù)類型,其他類型會在以后進行學(xué)習(xí)。還有一些運算符,會在其
他章節(jié)介紹。
實戰(zhàn)訓(xùn)練
一、選擇題
1.若x,i,j,k都是int型變量,則計算下面表達式后,x的值為()。
x=(i=4,j=16,k=32)
A.4B.16C.32D.56
2.按照C語言規(guī)定的用戶標識符命名規(guī)則,不能出現(xiàn)在標識符中的是()。
A.大寫字母B.連接符C.數(shù)字字符D.下畫線
3.定義intx=10,y,z;并執(zhí)行y=z=x;x=y==z;后,變量x的值為()。
A.10B.1C.0D.100
4.假定x和y為double型,則表達式x=2,y=x+3/2的值是()。
A.3.5B.3.0C.2.0D.2.5
5.可用作C語言用戶標識符的一組標識符是()。
A.void、de?ne、WORDB.a(chǎn)3_b3、_123、IF
C.FOR、--abc、CaseD.2a、Do、Sizeof
6.能正確表示邏輯關(guān)系“a≥10或a≤0”的
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025建筑工程滲漏維修合同示范文本
- 2025企業(yè)與個人之間的借款合同范本大全
- 加壓泵房、消防水池、深井泵房分包合同
- 股權(quán)投資轉(zhuǎn)讓協(xié)議
- 2025混凝土澆筑施工合同(大清包)
- 自愿贈與所有財產(chǎn)合同
- 建筑工程三方付款協(xié)議書范本
- 設(shè)立公司房屋租賃合同范本
- 2025大連煤炭產(chǎn)品代理合同范本
- 2025鄉(xiāng)村聯(lián)合住宅開發(fā)合同
- 2025至2030年石榴養(yǎng)生酒項目投資價值分析報告
- 2025-2030MicroLED顯示器行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報告
- 長沙2025年湖南長沙縣招聘機關(guān)事業(yè)單位工作人員26人筆試歷年參考題庫附帶答案詳解
- 國家開放大學(xué)2025年《管理學(xué)基礎(chǔ)》形考作業(yè)1-4答案
- 政府會計知到課后答案智慧樹章節(jié)測試答案2025年春西安財經(jīng)大學(xué)
- 2025年全民國家安全教育日知識競賽考試題庫500題(含答案)
- 學(xué)院專業(yè)實驗室的開放共享模式
- 2023國家衛(wèi)健委中國結(jié)直腸癌診療規(guī)范
- 《木蘭詩》歷年中考古詩欣賞試題匯編(截至2024年)
- 2024年音樂節(jié)行業(yè)發(fā)展前景預(yù)測及投資策略研究報告
- dse7320軟件操作手冊
評論
0/150
提交評論