![C語(yǔ)言程序設(shè)計(jì)技術(shù)實(shí)踐指導(dǎo)_第1頁(yè)](http://file4.renrendoc.com/view11/M03/29/13/wKhkGWWdBz6ALV5wAAFT847mdNk716.jpg)
![C語(yǔ)言程序設(shè)計(jì)技術(shù)實(shí)踐指導(dǎo)_第2頁(yè)](http://file4.renrendoc.com/view11/M03/29/13/wKhkGWWdBz6ALV5wAAFT847mdNk7162.jpg)
![C語(yǔ)言程序設(shè)計(jì)技術(shù)實(shí)踐指導(dǎo)_第3頁(yè)](http://file4.renrendoc.com/view11/M03/29/13/wKhkGWWdBz6ALV5wAAFT847mdNk7163.jpg)
![C語(yǔ)言程序設(shè)計(jì)技術(shù)實(shí)踐指導(dǎo)_第4頁(yè)](http://file4.renrendoc.com/view11/M03/29/13/wKhkGWWdBz6ALV5wAAFT847mdNk7164.jpg)
![C語(yǔ)言程序設(shè)計(jì)技術(shù)實(shí)踐指導(dǎo)_第5頁(yè)](http://file4.renrendoc.com/view11/M03/29/13/wKhkGWWdBz6ALV5wAAFT847mdNk7165.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
高等學(xué)?!笆奈濉币?guī)劃教材
河南省一流本科課程(線上/線下混合式一流課程)教材
C語(yǔ)言程序設(shè)計(jì)技術(shù)
實(shí)踐指導(dǎo)
王鵬遠(yuǎn)程靜蘇虹等◎編著
內(nèi)容簡(jiǎn)介
本書是與《C語(yǔ)言程序設(shè)計(jì)技術(shù)》(尚展壘等編著,中國(guó)鐵道出版社有限公司出版)配套使用
的實(shí)踐指導(dǎo)用書,每個(gè)實(shí)驗(yàn)對(duì)應(yīng)主教材的相關(guān)內(nèi)容。本書的每個(gè)實(shí)驗(yàn)項(xiàng)目均在VisualStudio2019
下調(diào)試通過。本書除綜合實(shí)驗(yàn)外,每個(gè)實(shí)驗(yàn)包括實(shí)驗(yàn)學(xué)時(shí)、實(shí)驗(yàn)?zāi)康暮鸵?、?shí)驗(yàn)要點(diǎn)概述、實(shí)驗(yàn)
項(xiàng)目、實(shí)驗(yàn)作業(yè)和實(shí)驗(yàn)報(bào)告要求等內(nèi)容。每個(gè)實(shí)驗(yàn)內(nèi)容由易到難,代碼由簡(jiǎn)單到復(fù)雜,讀者可循序
漸進(jìn)地掌握相應(yīng)的知識(shí)點(diǎn),讓讀者思考,以達(dá)到靈活運(yùn)用的目的。實(shí)驗(yàn)20為綜合實(shí)驗(yàn),是本書的
特色,該實(shí)驗(yàn)涉及C語(yǔ)言多個(gè)知識(shí)點(diǎn),注重非計(jì)算機(jī)專業(yè)學(xué)生計(jì)算思維能力的培養(yǎng)。附錄對(duì)全國(guó)
計(jì)算機(jī)等級(jí)考試(二級(jí)C語(yǔ)言)從考試大綱、樣題和運(yùn)行環(huán)境進(jìn)行全面介紹。
本書適合作為高等院?!癈語(yǔ)言程序設(shè)計(jì)”課程的實(shí)踐教材,也可作為各種培訓(xùn)班和編程愛好
者以及參加全國(guó)計(jì)算機(jī)等級(jí)考試(二級(jí)C語(yǔ)言)人員的自學(xué)參考用書。
圖書在版編目(CIP)數(shù)據(jù)
C語(yǔ)言程序設(shè)計(jì)技術(shù)實(shí)踐指導(dǎo)/王鵬遠(yuǎn)等編著.—北京:
中國(guó)鐵道出版社有限公司,2022.1
高等學(xué)校“十四五”規(guī)劃教材
ISBN978-7-113-28744-3
Ⅰ.①C…Ⅱ.①王…Ⅲ.①C語(yǔ)言-程序設(shè)計(jì)-高等
學(xué)校-教材Ⅳ.①TP312.8
中國(guó)版本圖書館CIP數(shù)據(jù)核字(2021)第279278號(hào)
書名:C語(yǔ)言程序設(shè)計(jì)技術(shù)實(shí)踐指導(dǎo)
CYUYANCHENGXUSHEJIJISHUSHIJIANZHIDAO
作者:王鵬遠(yuǎn)程靜蘇虹等
策劃:翟玉峰編輯部電話:(010)83517321
責(zé)任編輯:翟玉峰徐盼欣
封面設(shè)計(jì):尚明龍
責(zé)任校對(duì):安海燕
責(zé)任印制:樊啟鵬
出版發(fā)行:中國(guó)鐵道出版社有限公司(100054,北京市西城區(qū)右安門西街8號(hào))
網(wǎng)址:/51eds/
印刷:三河市宏盛印務(wù)有限公司
版次:2022年1月第1版2022年1月第1次印刷
開本:787mm×1092mm1/16印張:12.75字?jǐn)?shù):331千
書號(hào):ISBN978-7-113-28744-3
定價(jià):36.00元
版權(quán)所有侵權(quán)必究
凡購(gòu)買鐵道版圖書,如有印制質(zhì)量問題,請(qǐng)與本社教材圖書營(yíng)銷部聯(lián)系調(diào)換。電話:(010)63550836
打擊盜版舉報(bào)電話:(010)63549461
前言
C語(yǔ)言從誕生之日起就一直保持著旺盛的生命力,并且不斷發(fā)展壯大、日臻完善,已經(jīng)成為
目前使用最廣泛的編程語(yǔ)言之一。與其他高級(jí)語(yǔ)言相比,C語(yǔ)言處理功能豐富,表達(dá)能力強(qiáng),使
用靈活方便,執(zhí)行程序效率高,可移植性強(qiáng);具有豐富的數(shù)據(jù)類型和運(yùn)算符,語(yǔ)句非常簡(jiǎn)單,源
程序簡(jiǎn)潔清晰;可以直接處理硬件系統(tǒng)和對(duì)外圍設(shè)備接口進(jìn)行控制。C語(yǔ)言是一種結(jié)構(gòu)化的程序
設(shè)計(jì)語(yǔ)言,支持自頂向下、逐步求精的結(jié)構(gòu)化程序設(shè)計(jì)技術(shù)。另外,C語(yǔ)言程序的函數(shù)結(jié)構(gòu)為實(shí)
現(xiàn)程序的模塊化設(shè)計(jì)提供了強(qiáng)有力的保障。因此,縱然有C++、Java和Python等后繼者,但到目
前為止,它們依然沒有取代C的跡象。
本書編者全部是一直工作于高等學(xué)校教學(xué)一線、承擔(dān)“C語(yǔ)言程序設(shè)計(jì)”課程教學(xué)多年的大
學(xué)教師,有豐富的教學(xué)經(jīng)驗(yàn),長(zhǎng)期從事C語(yǔ)言編程工作,并有著將自己積累的“C語(yǔ)言程序設(shè)計(jì)”
經(jīng)驗(yàn)介紹給大家的強(qiáng)烈愿望。編者單位鄭州輕工業(yè)大學(xué)的“程序設(shè)計(jì)技術(shù)(C語(yǔ)言)”課程在2020
年5月被認(rèn)定為首批河南省一流本科課程(線上線下混合式一流課程)。本書作為《C語(yǔ)言程序設(shè)
計(jì)技術(shù)》(尚展壘等編著,中國(guó)鐵道出版社有限公司出版)配套使用的學(xué)習(xí)用書,共設(shè)計(jì)20個(gè)實(shí)
驗(yàn),將C語(yǔ)言的內(nèi)容由淺入深、層次分明地娓娓道來(lái),非常適合編程初學(xué)者思維模式的培養(yǎng)及訓(xùn)
練。除綜合實(shí)驗(yàn)外,每個(gè)實(shí)驗(yàn)均包括實(shí)驗(yàn)學(xué)時(shí)、實(shí)驗(yàn)?zāi)康暮鸵?、?shí)驗(yàn)要點(diǎn)概述、實(shí)驗(yàn)項(xiàng)目、實(shí)
驗(yàn)作業(yè)和實(shí)驗(yàn)報(bào)告要求等內(nèi)容。實(shí)驗(yàn)學(xué)時(shí)為建議學(xué)時(shí),可根據(jù)教學(xué)需要進(jìn)行適當(dāng)增減;實(shí)驗(yàn)?zāi)康?/p>
和要求將本次實(shí)驗(yàn)的知識(shí)點(diǎn)和實(shí)驗(yàn)所要達(dá)到的目的加以明確;實(shí)驗(yàn)要點(diǎn)概述為該次實(shí)驗(yàn)所要使用
到的知識(shí)點(diǎn);實(shí)驗(yàn)項(xiàng)目由若干子項(xiàng)目組成,每個(gè)項(xiàng)目都對(duì)題目進(jìn)行了詳細(xì)的分析并提供了源程序,
實(shí)驗(yàn)項(xiàng)目從易到難,使讀者逐步掌握相關(guān)的知識(shí)點(diǎn),讀者可結(jié)合實(shí)際情況對(duì)實(shí)驗(yàn)項(xiàng)目做適當(dāng)刪減;
實(shí)驗(yàn)作業(yè)要求讀者獨(dú)立完成,以檢驗(yàn)是否達(dá)到了本次實(shí)驗(yàn)的要求;實(shí)驗(yàn)報(bào)告要求讀者記錄下實(shí)驗(yàn)
中的要點(diǎn)以及自己的體會(huì),為今后的學(xué)習(xí)提供參考。本書的最后一個(gè)實(shí)驗(yàn)為綜合實(shí)驗(yàn),該實(shí)驗(yàn)要
求的功能較多,需要綜合C語(yǔ)言所學(xué)到的多個(gè)知識(shí)點(diǎn),如程序設(shè)計(jì)的三種基本結(jié)構(gòu)、文件、函數(shù)、
數(shù)組、結(jié)構(gòu)體、結(jié)構(gòu)數(shù)組等,讀者通過該實(shí)驗(yàn)?zāi)軌蜢柟藽語(yǔ)言所涉及的所有基礎(chǔ)知識(shí)。
各實(shí)驗(yàn)的主要內(nèi)容如下:
實(shí)驗(yàn)1“VisualStudio2019下C程序開發(fā)環(huán)境的初步使用”,介紹在VisualStudio2019下如
何創(chuàng)建和運(yùn)行C程序。
實(shí)驗(yàn)2“C語(yǔ)言中的基本數(shù)據(jù)類型”,對(duì)應(yīng)教材的第2章,介紹了C語(yǔ)言中的常量,不同數(shù)據(jù)
類型變量的定義、使用,輸入/輸出格式等內(nèi)容。
實(shí)驗(yàn)3“C語(yǔ)言中的運(yùn)算符與表達(dá)式”,對(duì)應(yīng)教材的第3章,介紹了C語(yǔ)言中的運(yùn)算符和表達(dá)
式的基本使用方法。
IIC語(yǔ)言程序設(shè)計(jì)技術(shù)實(shí)踐指導(dǎo)
實(shí)驗(yàn)4“編譯預(yù)處理與常用庫(kù)函數(shù)”,對(duì)應(yīng)教材的第4章,介紹了宏、文件包含以及C語(yǔ)言中
的庫(kù)函數(shù)的使用方法。
實(shí)驗(yàn)5“選擇結(jié)構(gòu)程序設(shè)計(jì)”,對(duì)應(yīng)教材的第5章,介紹了單分支、雙分支及多分支選擇結(jié)構(gòu)
的使用方法。
實(shí)驗(yàn)6“循環(huán)結(jié)構(gòu)程序設(shè)計(jì)(1)”和實(shí)驗(yàn)7“循環(huán)結(jié)構(gòu)程序設(shè)計(jì)(2)”,對(duì)應(yīng)教材的第6章,
介紹了while、for、do…while和多重循環(huán)結(jié)構(gòu)的使用方法。
實(shí)驗(yàn)8“函數(shù)的定義與調(diào)用”和實(shí)驗(yàn)9“函數(shù)的傳址引用與遞歸調(diào)用”,對(duì)應(yīng)教材的第7章,
介紹了函數(shù)的基本使用方法。
實(shí)驗(yàn)10“一維數(shù)組及其指針運(yùn)算”、實(shí)驗(yàn)11“二維數(shù)組及其指針運(yùn)算”和實(shí)驗(yàn)12“使用內(nèi)存
動(dòng)態(tài)分配實(shí)現(xiàn)動(dòng)態(tài)數(shù)組”,對(duì)應(yīng)教材第8章,介紹了數(shù)組的基本使用方法。
實(shí)驗(yàn)13“字符數(shù)組與字符串”,對(duì)應(yīng)教材的第9章,介紹了字符數(shù)組和字符串的基本使用方法。
實(shí)驗(yàn)14“結(jié)構(gòu)與聯(lián)合”,對(duì)應(yīng)教材的第10章,重點(diǎn)介紹了結(jié)構(gòu)和結(jié)構(gòu)數(shù)組的使用方法。
實(shí)驗(yàn)15“記錄數(shù)確定的順序文件操作”和實(shí)驗(yàn)16“記錄數(shù)不確定的順序文件操作”,對(duì)應(yīng)教
材的第11章,介紹了文件的基本使用方法,以及文件與數(shù)組、函數(shù)相結(jié)合的使用方法。
實(shí)驗(yàn)17“指針的應(yīng)用及鏈表的基本操作”,對(duì)應(yīng)教材的第12章,介紹指針和鏈表的基本使用方法。
實(shí)驗(yàn)18“位運(yùn)算”,對(duì)應(yīng)教材的第13章,介紹了位運(yùn)算的基本使用方法。
實(shí)驗(yàn)19“簡(jiǎn)單C++程序設(shè)計(jì)”,對(duì)應(yīng)教材的第14章,介紹了C++程序中的基本輸入和輸出。
實(shí)驗(yàn)20“綜合實(shí)驗(yàn)”,介紹了C語(yǔ)言項(xiàng)目開發(fā)的全過程,為讀者開發(fā)較為復(fù)雜的C項(xiàng)目奠定
基礎(chǔ)。
以上各部分都可以獨(dú)立教學(xué),自成體系,教師可根據(jù)情況適當(dāng)取舍。在本書的編寫過程中參
考了許多同行的著作,在此對(duì)其作者表達(dá)感謝之情。感謝鄭州輕工業(yè)大學(xué)和中國(guó)鐵道出版社有限
公司的大力支持,感謝各位編輯的辛苦工作,正是由于他們的幫助和支持才使本書得以順利付印。
本書由鄭州輕工業(yè)大學(xué)王鵬遠(yuǎn)、程靜、蘇虹、尚展壘、陳嫄玲、李萍和張凱編著。實(shí)驗(yàn)1、
實(shí)驗(yàn)3、實(shí)驗(yàn)13和實(shí)驗(yàn)18由張凱編寫,實(shí)驗(yàn)2、實(shí)驗(yàn)5和實(shí)驗(yàn)20由蘇虹編寫,實(shí)驗(yàn)4、實(shí)驗(yàn)8、
實(shí)驗(yàn)9和實(shí)驗(yàn)17由程靜編寫,實(shí)驗(yàn)6、實(shí)驗(yàn)7和附錄由陳嫄玲編寫,實(shí)驗(yàn)10、實(shí)驗(yàn)11、實(shí)驗(yàn)12、
實(shí)驗(yàn)15和實(shí)驗(yàn)16由王鵬遠(yuǎn)編寫,實(shí)驗(yàn)19由李萍編寫,實(shí)驗(yàn)14由尚展壘和陳嫄玲聯(lián)合編寫。在
組織編寫過程中,王鵬遠(yuǎn)負(fù)責(zé)本書的架構(gòu)策劃,程靜和蘇虹負(fù)責(zé)本書的統(tǒng)稿定稿工作。
如果您能夠愉快地讀完本書,并告知身邊的朋友,原來(lái)C語(yǔ)言并不難學(xué),那就是編者最大的
欣慰。盡管編者盡了最大努力,也有良好而負(fù)責(zé)任的態(tài)度,但是由于學(xué)識(shí)所限,難免存在疏漏與
不足,懇請(qǐng)各位讀者批評(píng)指正,以便再版時(shí)修訂。
編者
2021年10月
目錄
實(shí)驗(yàn)1VisualStudio2019下C程序開發(fā)環(huán)境的初步使用.............................1
實(shí)驗(yàn)2C語(yǔ)言中的基本數(shù)據(jù)類型...................................................................13
實(shí)驗(yàn)3C語(yǔ)言中的運(yùn)算符與表達(dá)式................................................................23
實(shí)驗(yàn)4編譯預(yù)處理與常用庫(kù)函數(shù)...................................................................30
實(shí)驗(yàn)5選擇結(jié)構(gòu)程序設(shè)計(jì).............................................................................42
實(shí)驗(yàn)6循環(huán)結(jié)構(gòu)程序設(shè)計(jì)(1).....................................................................51
實(shí)驗(yàn)7循環(huán)結(jié)構(gòu)程序設(shè)計(jì)(2).....................................................................61
實(shí)驗(yàn)8函數(shù)的定義與調(diào)用.............................................................................74
實(shí)驗(yàn)9函數(shù)的傳址引用與遞歸調(diào)用...............................................................82
實(shí)驗(yàn)10一維數(shù)組及其指針運(yùn)算....................................................................88
實(shí)驗(yàn)11二維數(shù)組及其指針運(yùn)算.....................................................................98
實(shí)驗(yàn)12使用內(nèi)存動(dòng)態(tài)分配實(shí)現(xiàn)動(dòng)態(tài)數(shù)組.....................................................104
實(shí)驗(yàn)13字符數(shù)組與字符串.........................................................................109
實(shí)驗(yàn)14結(jié)構(gòu)與聯(lián)合....................................................................................117
實(shí)驗(yàn)15記錄數(shù)確定的順序文件操作............................................................125
實(shí)驗(yàn)16記錄數(shù)不確定的順序文件操作........................................................135
實(shí)驗(yàn)17指針的應(yīng)用及鏈表的基本操作........................................................141
實(shí)驗(yàn)18位運(yùn)算...........................................................................................157
實(shí)驗(yàn)19簡(jiǎn)單C++程序設(shè)計(jì).........................................................................162
實(shí)驗(yàn)20綜合實(shí)驗(yàn).......................................................................................165
附錄全國(guó)計(jì)算機(jī)等級(jí)考試(二級(jí)C語(yǔ)言)考試指導(dǎo)....................................179
參考文獻(xiàn).......................................................................................................198
實(shí)驗(yàn)1VisualStudio2019下
C程序開發(fā)環(huán)境的初步使用
本實(shí)驗(yàn)介紹了程序設(shè)計(jì)語(yǔ)言的分類及特點(diǎn)、C語(yǔ)言的產(chǎn)生、算法的概念及特性、算法的描述
方法以及軟件的編制步驟等。在本實(shí)驗(yàn)中,將了解VisualStudio2019的編程環(huán)境,掌握C程序的
編譯過程,通過簡(jiǎn)單實(shí)例,將設(shè)計(jì)的算法使用流程圖進(jìn)行表示并根據(jù)算法描述編制出C源程序,
進(jìn)一步編譯、連接、運(yùn)行,掌握C語(yǔ)言程序的基本結(jié)構(gòu)及編譯運(yùn)行流程。
一、實(shí)驗(yàn)學(xué)時(shí)
2學(xué)時(shí)。
二、實(shí)驗(yàn)?zāi)康暮鸵?/p>
(1)熟悉VisualStudio2019運(yùn)行環(huán)境。
(2)學(xué)習(xí)VisualStudio2019編程環(huán)境下C程序的創(chuàng)建、編寫和調(diào)試過程。
(3)掌握用流程圖描述算法。
三、實(shí)驗(yàn)要點(diǎn)概述
1.C語(yǔ)言簡(jiǎn)介
C語(yǔ)言是一門通用計(jì)算機(jī)編程語(yǔ)言,廣泛應(yīng)用于底層開發(fā)。C語(yǔ)言的設(shè)計(jì)目標(biāo)是提供一種能
以簡(jiǎn)易的方式編譯、處理低級(jí)存儲(chǔ)器、產(chǎn)生少量的機(jī)器碼以及不需要任何運(yùn)行環(huán)境支持便能運(yùn)行
的編程語(yǔ)言。
盡管C語(yǔ)言提供了許多低級(jí)處理的功能,但仍然保持著良好的跨平臺(tái)特性,以一個(gè)標(biāo)準(zhǔn)規(guī)格
寫出的C語(yǔ)言程序可在各種計(jì)算機(jī)上進(jìn)行編譯,甚至包含一些嵌入式處理器(單片機(jī)或稱MCU)
以及超級(jí)計(jì)算機(jī)等作業(yè)平臺(tái)。20世紀(jì)80年代,為了避免各開發(fā)廠商用的C語(yǔ)言語(yǔ)法產(chǎn)生差異,
美國(guó)國(guó)家標(biāo)準(zhǔn)局為C語(yǔ)言制定了一套完整的美國(guó)國(guó)家標(biāo)準(zhǔn)語(yǔ)法,稱為ANSIC,作為C語(yǔ)言最初的
標(biāo)準(zhǔn)。
C語(yǔ)言是一門面向過程的計(jì)算機(jī)編程語(yǔ)言,其編譯器主要有VisualStudio、DevC++、Xcode、
VisualC++6.0、Code::Blocks、BorlandC++等。
2C語(yǔ)言程序設(shè)計(jì)技術(shù)實(shí)踐指導(dǎo)
2.VisualStudio簡(jiǎn)介
VisualStudio是微軟公司推出的開發(fā)環(huán)境,是目前流行的Windows平臺(tái)應(yīng)用程序開發(fā)環(huán)境之
一。VisualStudio可以用來(lái)創(chuàng)建Windows平臺(tái)下的Windows應(yīng)用程序和網(wǎng)絡(luò)應(yīng)用程序,也可以用
來(lái)創(chuàng)建網(wǎng)絡(luò)服務(wù)、智能設(shè)備應(yīng)用程序和Office插件。
當(dāng)前較常用版本為VisualStudio2019版本,基于.NETFramework4.8。對(duì)新增功能的簡(jiǎn)要概括
為以下三點(diǎn):
(1)開發(fā):通過改進(jìn)的性能、即時(shí)代碼清理和更好的搜索結(jié)果來(lái)保持專注和高效。
(2)協(xié)作:在VisualStudio2019中,通過Git優(yōu)先工作流、實(shí)時(shí)編輯和調(diào)試,以及代碼評(píng)審,
即可盡情享受自然協(xié)作。
(3)調(diào)試:突出顯示并導(dǎo)航到特定值、優(yōu)化內(nèi)存使用,并可對(duì)應(yīng)用程序的執(zhí)行進(jìn)行自動(dòng)快照。
四、實(shí)驗(yàn)項(xiàng)目
【實(shí)驗(yàn)項(xiàng)目1】認(rèn)識(shí)開發(fā)環(huán)境,了解C源程序從創(chuàng)建到運(yùn)行的過程。
該實(shí)驗(yàn)項(xiàng)目的操作步驟如下:
(1)在Windows中,選擇“開始”→“所有程序”→“Visual
Studio2019”命令或雙擊桌面上的“VisualStudio2019”快捷
圖標(biāo)(見圖1-1),即可啟動(dòng)VisualStudio2019開發(fā)環(huán)境(見
圖1-1VisualStudio2019快捷圖標(biāo)
圖1-2)。
圖1-2VisualStudio2019啟動(dòng)界面
(2)啟動(dòng)VisualStudio2019后,選擇“創(chuàng)建新項(xiàng)目”,進(jìn)入“創(chuàng)建新項(xiàng)目”界面,如圖1-3
所示。在該界面中,選擇“空項(xiàng)目”后,單擊“下一步”按鈕,出現(xiàn)圖1-4所示的界面。在“項(xiàng)
目名稱”文本框中輸入項(xiàng)目名稱(本項(xiàng)目中使用HelloWorld),單擊“位置”右側(cè)的“瀏覽”按鈕
選擇存儲(chǔ)該項(xiàng)目的位置(本項(xiàng)目所使用的是F:\MyProject);單擊“創(chuàng)建”按鈕,進(jìn)入圖1-5所示
的VisualStudio2019主窗口界面。
實(shí)驗(yàn)1VisualStudio2019下C程序開發(fā)環(huán)境的初步使用3
圖1-3VisualStudio2019“創(chuàng)建新項(xiàng)目”界面
圖1-4VisualStudio2019“配置新項(xiàng)目”界面
圖1-5VisualStudio2019主窗口界面
4C語(yǔ)言程序設(shè)計(jì)技術(shù)實(shí)踐指導(dǎo)
如果在打開的項(xiàng)目中創(chuàng)建新項(xiàng)目,可選擇“文件”→“新建”→“項(xiàng)目”命令,如圖1-6所
示,彈出“新建項(xiàng)目”對(duì)話框。
圖1-6“文件”中新建項(xiàng)目
(3)在“解決方案資源管理器”中右擊“源文件”,在彈出的快捷菜單中選擇“添加”→“新
建項(xiàng)”命令,如圖1-7所示。彈出“添加新項(xiàng)”對(duì)話框,如圖1-8所示。
圖1-7選擇為項(xiàng)目添加新建項(xiàng)
實(shí)驗(yàn)1VisualStudio2019下C程序開發(fā)環(huán)境的初步使用5
圖1-8“添加新項(xiàng)”對(duì)話框
(4)在圖1-8所示的“添加新項(xiàng)”對(duì)話框中間選擇“C++文件(.cpp)”選項(xiàng),輸入名稱(本
實(shí)驗(yàn)中的名稱為HWSourceFile),如需更改存儲(chǔ)位置。單擊“瀏覽”按鈕選擇,通常情況下使用
默認(rèn)路徑(使創(chuàng)建的資源文件和該項(xiàng)目的其他文件位于同一文件夾中)。最后單擊“添加”按鈕,
打開圖1-9所示的源文件編輯窗口,可在光標(biāo)閃爍的位置編寫源文件。
圖1-9源文件編輯窗口
6C語(yǔ)言程序設(shè)計(jì)技術(shù)實(shí)踐指導(dǎo)
(5)在源文件編輯窗口中可以輸入源程序代碼。本實(shí)驗(yàn)項(xiàng)目輸入以下C程序,如圖1-10所示。
#include<stdio.h>
#include<stdlib.h>
intmain()
{
printf("HelloWorld!\n");
system("pause");
return0;
}
圖1-10在源文件編輯窗口中編寫源程序代碼
main()是主函數(shù)的函數(shù)名,表示這是一個(gè)主函數(shù)。每個(gè)C源程序都必須有且只能有一個(gè)主函
數(shù)(main()函數(shù))。“return0;”表示intmain()函數(shù)執(zhí)行成功,返回0。主函數(shù)的說明也可定義為void
main()或main(),此時(shí)可省略return語(yǔ)句。
printf()函數(shù)的功能是把要輸出的內(nèi)容送到顯示器去顯示。printf()函數(shù)是一個(gè)在stdio.h文件中
定義的標(biāo)準(zhǔn)函數(shù),可在程序中直接調(diào)用,因此源程序首部要書寫預(yù)處理語(yǔ)句#include<stdio.h>或
#include"stdio.h"。
語(yǔ)句“system("pause");”執(zhí)行系統(tǒng)環(huán)境中的pause命令,起暫停作用,等待用戶信號(hào);如果沒
有這條語(yǔ)句控制臺(tái)程序會(huì)一閃即過,來(lái)不及看清執(zhí)行結(jié)果。system()函數(shù)是C語(yǔ)言標(biāo)準(zhǔn)庫(kù)的一個(gè)
函數(shù),定義在“stdlib.h”中,可以調(diào)用系統(tǒng)環(huán)境中的程序。
至此,就在F盤的MyProject文件夾下創(chuàng)建了HelloWorld源程序文件。
C語(yǔ)言編寫的源程序是不能直接運(yùn)行的。因?yàn)橛?jì)算機(jī)只能識(shí)別和執(zhí)行由1和0組成的二進(jìn)制
代碼指令,不能識(shí)別和執(zhí)行由高級(jí)語(yǔ)言編寫的源程序。源程序是用某種程序設(shè)計(jì)語(yǔ)言編寫的程序,
實(shí)驗(yàn)1VisualStudio2019下C程序開發(fā)環(huán)境的初步使用7
其中的程序代碼稱為源代碼。因此,一個(gè)高級(jí)語(yǔ)言編寫的源程序,必須用編譯程序把高級(jí)語(yǔ)言程
序翻譯成機(jī)器能夠識(shí)別的二進(jìn)制目標(biāo)程序,通過系統(tǒng)提供的庫(kù)函數(shù)和其他目標(biāo)程序的連接,形成
可以被機(jī)器執(zhí)行的目標(biāo)程序。所以,一個(gè)C語(yǔ)言源程序到擴(kuò)展名為.exe的可執(zhí)行文件,一般需要
經(jīng)過編輯、編譯、連接、運(yùn)行四個(gè)步驟。上面編輯的源程序HWSourceFile.cpp要想讓計(jì)算機(jī)執(zhí)行,
需要經(jīng)過圖1-11所示的步驟進(jìn)行編譯連接。
圖1-11C語(yǔ)言源程序編譯連接流程
編譯時(shí),會(huì)對(duì)源程序文件HWSourceFile.cpp中的語(yǔ)法錯(cuò)誤進(jìn)行檢測(cè),并在信息輸出窗口中給
出反饋,程序設(shè)計(jì)人員根據(jù)提示將錯(cuò)誤一一糾正后完成編譯,形成目標(biāo)文件HelloWorld.pdb。連
接是將程序中所加載的頭函數(shù)及其他文件連接在一起,形成完整的可執(zhí)行文件HelloWorld.exe。
在項(xiàng)目管理模式下,源文件輸入、編輯完成后選擇“文件”→“保存”命令保存文件,然后
按下面的步驟對(duì)其進(jìn)行編譯、連接和運(yùn)行。
(6)在工具欄中進(jìn)行圖1-12的選擇后點(diǎn)擊“本地Windows調(diào)試器”按鈕,程序編譯后,彈
出圖1-13所示的運(yùn)行結(jié)果。
圖1-12啟動(dòng)“本地Windows調(diào)試器”圖1-13實(shí)驗(yàn)項(xiàng)目1運(yùn)行結(jié)果
如果將該程序中的“#include<stdlib.h>”和“system("pause");”兩行程序刪除掉,再“啟動(dòng)調(diào)
試”,程序調(diào)試沒有錯(cuò)誤,而是出現(xiàn)圖1-14所示的程序結(jié)果,可按任意鍵關(guān)閉該窗口。
圖1-14無(wú)system("pause")語(yǔ)句時(shí)實(shí)驗(yàn)項(xiàng)目1運(yùn)行結(jié)果
當(dāng)程序有語(yǔ)法錯(cuò)誤時(shí),會(huì)彈出圖1-15所示的對(duì)話框,單擊“否”按鈕。
圖1-15程序錯(cuò)誤對(duì)話框
8C語(yǔ)言程序設(shè)計(jì)技術(shù)實(shí)踐指導(dǎo)
源程序編譯信息將會(huì)在信息輸出窗口中出現(xiàn)。如果程序有語(yǔ)法錯(cuò)誤,出錯(cuò)信息就顯示在信息
輸出窗口中,包括錯(cuò)誤的個(gè)數(shù)、位置、類型,可以直接雙擊錯(cuò)誤信息,系統(tǒng)可以實(shí)現(xiàn)錯(cuò)誤的自動(dòng)
定位,如圖1-16所示。這方便了程序設(shè)計(jì)人員對(duì)程序的錯(cuò)誤進(jìn)行修改。對(duì)源文件出錯(cuò)信息修改
后再編譯,一直到源程序正確為止。
圖1-16編譯出錯(cuò)時(shí)輸出的信息
在圖1-16所示的信息輸出窗口中,看到了源程序HWSourceFile.cpp的編譯錯(cuò)誤有“生成:成
功0個(gè),失敗1個(gè),最新0個(gè),跳過0個(gè)”的錯(cuò)誤提示,錯(cuò)誤信息為:【1>F:\MyProject\HelloWorld\
HelloWorld\HWSourceFile.cpp(8,5):errorC2146:語(yǔ)法錯(cuò)誤:缺少“;”(在標(biāo)識(shí)符“system”的前面)】,
此行信息可以確定錯(cuò)誤發(fā)生在HWSourceFile.cpp文件的第8行,并且是語(yǔ)法錯(cuò)誤,根據(jù)提示信息
得知“system”前丟失了分號(hào)“;”,可以直接雙擊錯(cuò)誤信息行,系統(tǒng)會(huì)定位到發(fā)生錯(cuò)誤的位置,
即程序中的第8行,在“system”之前補(bǔ)寫上分號(hào)“;”,即在程序第6行語(yǔ)句結(jié)束位置補(bǔ)寫分號(hào)
“;”,再次編譯即可。如果程序中沒有錯(cuò)誤,直接執(zhí)行程序,系統(tǒng)已生成目標(biāo)文件HWSourceFile.pdb,
并保存于工程下的debug文件夾中。
要注意的是,C語(yǔ)言源程序的每一條語(yǔ)句需要以“;”作為語(yǔ)句結(jié)束,但預(yù)處理命令、函數(shù)頭
和花括號(hào)“}”之后不能加分號(hào)。
以上就是在VisualStudio2019中創(chuàng)建C程序的方式,實(shí)現(xiàn)了C程序的編輯、編譯、連接、運(yùn)
行的全過程。
說明:
①一個(gè)項(xiàng)目可以包含多個(gè)源程序文件和頭文件,但是源程序文件至少有一個(gè),而頭文件可以
允許沒有;當(dāng)一個(gè)項(xiàng)目包含多個(gè)源程序文件時(shí),只能有一個(gè)源程序文件包含main()函數(shù),也就是
說,一個(gè)項(xiàng)目文件只能有一個(gè)main()函數(shù),否則將會(huì)發(fā)生編譯錯(cuò)誤。
②若打開原來(lái)已存盤的項(xiàng)目,選擇“文件”→“打開”→“項(xiàng)目/解決方案”命令,在對(duì)話
框中選擇項(xiàng)目所在的路徑,選擇項(xiàng)目的.sln文件(該文件是在創(chuàng)建項(xiàng)目時(shí)自動(dòng)生成的項(xiàng)目解決方
案),單擊“打開”按鈕,編輯、連接、運(yùn)行等步驟與前面項(xiàng)目管理模式相同。
實(shí)驗(yàn)1VisualStudio2019下C程序開發(fā)環(huán)境的初步使用9
③在VisualStudio2019環(huán)境下編輯C程序,對(duì)于單行注釋允許慣用的簡(jiǎn)化標(biāo)記符“//”,對(duì)
于多行注釋,需使用“/*-----*/”標(biāo)記形式。
④從書寫清晰,便于閱讀、理解、維護(hù)的角度出發(fā),在書寫程序時(shí)應(yīng)遵循以下規(guī)則:
一個(gè)說明或一個(gè)語(yǔ)句占一行。
用{}括起來(lái)的部分,通常表示程序的某一層次結(jié)構(gòu)。{}一般與該結(jié)構(gòu)語(yǔ)句的第一個(gè)字母對(duì)
齊,并單獨(dú)占一行。低一層次的語(yǔ)句或說明可比高一層次的語(yǔ)句或說明縮進(jìn)若干格后書寫,
以便看起來(lái)更加清晰,增加程序的可讀性。在編程時(shí)應(yīng)力求遵循這些規(guī)則,以養(yǎng)成良好的
編程風(fēng)格。
(7)要退出VisualStudio2019開發(fā)環(huán)境,可選擇“文件”→“退出”命
令,或單擊開發(fā)環(huán)境右上角的“關(guān)閉”按鈕退出VisualStudio2019。
【實(shí)驗(yàn)項(xiàng)目2】要求“輸入任意三個(gè)整數(shù),求它們的和及平均值”,繪
制程序流程圖,在VisualStudio2019中輸入程序,驗(yàn)證程序運(yùn)行結(jié)果。
(1)繪制流程圖。此問題是一個(gè)簡(jiǎn)單的輸入、求解、輸出的過程,是
典型的順序算法,流程圖用到的基本組件有起止框、輸入/輸出框、處理框、
流程線。程序流程圖如圖1-17所示。
(2)選擇“開始”→“所有程序”→“VisualStudio2019”命令,啟
動(dòng)VisualStudio2019。
(3)選擇“創(chuàng)建新項(xiàng)目”,新建“空項(xiàng)目”,在“配置新項(xiàng)目”中選
擇存儲(chǔ)路徑及設(shè)定項(xiàng)目名稱。
(4)右擊“源文件”,在彈出的快捷菜單中選擇“添加”→“新建項(xiàng)”
命令,在彈出的對(duì)話框中選擇“C++文件(.cpp)”,輸入文件名,添加到
步驟(2)創(chuàng)建的工程中。圖1-17程序流程圖
(5)在程序編輯窗口中輸入如下代碼,如圖1-18所示。
#include<stdio.h>
#include<stdlib.h>
intmain()
{
intnum1,num2,num3,sum;
floataver;
printf("Pleaseinputthreenumbers:\n");
scanf("%d%d%d",&num1,&num2,&num3);/*輸入三個(gè)整數(shù)*/
sum=num1+num2+num3;/*求累計(jì)和*/
aver=sum/3.0;/*求平均值*/
printf("num1=%d,num2=%d,num3=%d\n",num1,num2,num3);
printf("sum=%d,aver=%7.2f\n",sum,aver);
system("pause");
return0;
}
10C語(yǔ)言程序設(shè)計(jì)技術(shù)實(shí)踐指導(dǎo)
圖1-18實(shí)驗(yàn)項(xiàng)目2程序編輯窗口
(6)單擊工具欄中的“本地Windows調(diào)試器”按鈕,進(jìn)行調(diào)試,如果沒有語(yǔ)法錯(cuò)誤,彈出
程序運(yùn)行界面;如出現(xiàn)錯(cuò)誤,則根據(jù)錯(cuò)誤提示修改源程序,直到編譯成功為止。若出現(xiàn)錯(cuò)誤,
一般是庫(kù)函數(shù)連接不成功,要檢查開發(fā)環(huán)境。若對(duì)開發(fā)環(huán)境不是很熟悉,可新建項(xiàng)目重啟環(huán)境。
在該實(shí)驗(yàn)中存在錯(cuò)誤,程序無(wú)法執(zhí)行。雙擊第一個(gè)錯(cuò)誤【1>F:\MyProject\Ex02\Ex02\
intSum.cpp(10,5):errorC4996:'scanf':Thisfunctionorvariablemaybeunsafe.Considerusingscanf_s
instead.Todisabledeprecation,use_CRT_SECURE_NO_WARNINGS.Seeonlinehelpfordetails.】。我
們先看scanf()和scanf_s()這兩個(gè)函數(shù)。
scanf()函數(shù)是標(biāo)準(zhǔn)C中提供的標(biāo)準(zhǔn)輸入函數(shù),用來(lái)輸入數(shù)據(jù)。
scanf_s()函數(shù)是Microsoft公司VisualStudio開發(fā)工具提供的一個(gè)安全標(biāo)準(zhǔn)輸入函數(shù),從Visual
Studio2005開始,系統(tǒng)提供了scanf_s()函數(shù)。
對(duì)于這樣的錯(cuò)誤,有三種處理方法。
第一種,在使用VisualStudio2019時(shí)記住每次寫scanf()時(shí)全都寫成scanf_s()。
第二種,在VisualStudio2019中,選擇“項(xiàng)目”→“Ex02屬性”(本實(shí)驗(yàn)項(xiàng)目中的項(xiàng)目為Ex02,
因此為Ex02屬性)命令,如圖1-19所示。在“Ex02屬性頁(yè)”對(duì)話框中,選擇“C/C++”→“代
碼生成”→“安全檢查”,在下拉列表框中選擇“禁用安全檢查(/GS-)”,如圖1-20所示,單擊“確
定”按鈕。
第三種,在程序最開始部分加上宏:
#define_CRT_SECURE_NO_WARNINGS1
以解除scanf()函數(shù)的不安全問題。
本書遵循保持標(biāo)準(zhǔn)C函數(shù)且不增加代碼行的原則,采用第二種方式。
實(shí)驗(yàn)1VisualStudio2019下C程序開發(fā)環(huán)境的初步使用11
圖1-19項(xiàng)目屬性的選擇圖1-20選擇“禁用安全檢查”
連接正確后,單擊工具欄中的“本地Windows調(diào)試器”按鈕,執(zhí)行程序,轉(zhuǎn)入圖1-21所示
的運(yùn)行界面。
該程序是一個(gè)典型的順序結(jié)構(gòu)流程,要得到運(yùn)算結(jié)果,必須先有操作數(shù)據(jù),界面上的提示信
息是程序中的“printf("Pleaseinputthreenumbers:\n");”語(yǔ)句執(zhí)行的結(jié)果,提示要求用戶輸入三個(gè)
數(shù)據(jù)。接下來(lái)執(zhí)行到“scanf("%d%d%d",&num1,&num2,&num3);”語(yǔ)句,用戶在界面上輸入三個(gè)數(shù)
據(jù),將會(huì)被分別存放在三個(gè)變量num1、num2和num3中。通過運(yùn)行“sum=num1+num2+num3;”
和“aver=sum/3.0;”語(yǔ)句得到和及平均值,并存放在變量sum和aver中。最后執(zhí)行兩條輸出語(yǔ)句
“printf("num1=%d,num2=%d,num3=%d\n",num1,num2,num3);”和“printf("sum=%d,aver=%7.2f\n",sum,aver);”,
程序運(yùn)行結(jié)果如圖1-22所示。
圖1-21程序運(yùn)行界面圖1-22實(shí)驗(yàn)項(xiàng)目2運(yùn)行結(jié)果
五、實(shí)驗(yàn)作業(yè)
1.實(shí)驗(yàn)項(xiàng)目1中,如果去掉#include<stdio.h>,程序能否正常運(yùn)行?為什么?
2.實(shí)驗(yàn)項(xiàng)目1中,去掉每個(gè)printf語(yǔ)句后的分號(hào)“;”,觀察編譯錯(cuò)誤提示。
3.實(shí)驗(yàn)項(xiàng)目2中,去掉每個(gè)printf語(yǔ)句中的“\n”,觀察程序運(yùn)行情況,思考“\n”的作用。
4.實(shí)驗(yàn)項(xiàng)目2中,如果去掉“intnum1,num2,num3,sum;”語(yǔ)句,程序能否正常運(yùn)行?為什么?
5.用程序流程圖設(shè)計(jì)算法:輸入一個(gè)數(shù)n,求出n!。
6.創(chuàng)建程序,在顯示器屏幕上輸出圖1-23所示的圖案。
7.從鍵盤輸入兩個(gè)整數(shù),輸出這兩個(gè)數(shù)的乘積。
8.運(yùn)行以下程序,如果程序有錯(cuò)誤,請(qǐng)找出錯(cuò)誤,指出錯(cuò)誤
圖1-23實(shí)驗(yàn)作業(yè)6運(yùn)行界面
原因并改正。
12C語(yǔ)言程序設(shè)計(jì)技術(shù)實(shí)踐指導(dǎo)
#include<stdio.h>
#include<stdlib.h>
intmain()
{
inta=10,b=20;
intsum=A+b;
printf("%d+%d=%d\n",a,b,sum);
system("pause");
return0;
}
9.運(yùn)行以下程序,如果程序有錯(cuò)誤,請(qǐng)找出錯(cuò)誤,指出錯(cuò)誤原因并改正。
#include<stdlib.h>
intmian()
{
intnum;
printf("Enternum:\n");
scanf("%d",&num);
if(num<0)
num=-num
printf("%d\n",num);
system("pause");
return0;
}
10.運(yùn)行以下程序,指出該程序的功能,并分析運(yùn)行結(jié)果。
#include<stdio.h>
#include<stdlib.h>
intmain()
{
intsum=0,i;
for(i=10;i<=20;i++)
{
if(i%2==0&&i%3==0)
{
printf("%d\n",i);
sum=sum+i;
}
}
printf("sum=%d\n",sum);
system("pause");
return0;
}
六、實(shí)驗(yàn)報(bào)告要求
結(jié)合實(shí)驗(yàn)準(zhǔn)備方案、實(shí)驗(yàn)過程記錄及實(shí)驗(yàn)作業(yè),總結(jié)VisualStudio2019編程環(huán)境下C程序的
創(chuàng)建、編寫和調(diào)試過程。
認(rèn)真書寫實(shí)驗(yàn)報(bào)告,分析自己在編譯過程中出現(xiàn)的錯(cuò)誤,并說明原因。
實(shí)驗(yàn)2C語(yǔ)言中的基本數(shù)據(jù)類型
本實(shí)驗(yàn)主要針對(duì)C語(yǔ)言的數(shù)據(jù)類型,包括基本數(shù)據(jù)類型、構(gòu)造數(shù)據(jù)類型、指針數(shù)據(jù)類型和空
數(shù)據(jù)類型,其中基本數(shù)據(jù)類型包括整型、實(shí)型、字符型等。另外還有變量與常量、變量與數(shù)據(jù)類
型所占內(nèi)存空間的計(jì)算、不同類型數(shù)據(jù)之間的轉(zhuǎn)換以及數(shù)據(jù)的輸入與輸出。
一、實(shí)驗(yàn)學(xué)時(shí)
2學(xué)時(shí)。
二、實(shí)驗(yàn)?zāi)康暮鸵?/p>
(1)掌握變量的定義、賦值及使用。
(2)掌握符號(hào)常量的定義方法。
(3)掌握不同類型數(shù)據(jù)之間轉(zhuǎn)換的方式,包括自動(dòng)類型轉(zhuǎn)換及強(qiáng)制類型轉(zhuǎn)換。
(4)掌握輸入/輸出函數(shù)的基本應(yīng)用。
(5)初步了解指針型變量。
三、實(shí)驗(yàn)要點(diǎn)概述
1.掌握變量的定義、賦值及使用
1)變量的定義
變量定義的格式:
類型說明符變量名l,變量名2,…;
其中,類型說明符(又稱類型關(guān)鍵字)是C語(yǔ)言中用來(lái)說明變量的數(shù)據(jù)類型的,它必須是一
個(gè)有效的數(shù)據(jù)類型。初學(xué)者常用的有整型類型說明符int、字符型類型說明符char、單精度實(shí)型
float、雙精度實(shí)型double等。例如:
inti;//定義i為整型變量
charch;//定義ch為字符型變量
floatx,y;//定義x和y為單精度實(shí)型變量
2)變量的賦值
變量賦值的格式:
變量名=表達(dá)式;
14C語(yǔ)言程序設(shè)計(jì)技術(shù)實(shí)踐指導(dǎo)
其中,表達(dá)式可以是常量、變量、函數(shù)以及其他各類表達(dá)式。賦值后,變量的值將由新值
取代。
C語(yǔ)言允許對(duì)變量連續(xù)賦值,可以寫成
變量=(變量=表達(dá)式);
或
變量=變量=…=表達(dá)式;
為變量賦值要注意:
(1)如果表達(dá)式中含有變量,此變量之前必須已經(jīng)賦值。
(2)給變量賦值,必要時(shí)自動(dòng)進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換。例如:
intx='a';//將字符型數(shù)據(jù)轉(zhuǎn)換為整型數(shù)據(jù)賦予變量x
(3)賦值語(yǔ)句“=”左側(cè)只能是變量,不可以是表達(dá)式、常量、函數(shù)等。
(4)不能將字符串常量賦值給字符型變量。
(5)不能在變量聲明語(yǔ)句中給多個(gè)變量連續(xù)賦值,例如:
inta=b=c=2;//該語(yǔ)句是非法的
3)變量的類型
變量的類型包括整型變量、實(shí)型變量、字符型變量。
(1)整型變量。整型變量包括:
有符號(hào)基本整型:[signed]int。
有符號(hào)短整型:[signed]short[int]。
有符號(hào)長(zhǎng)整型:[signed]long[int]。
無(wú)符號(hào)基本整型:unsigned[int]。
無(wú)符號(hào)短整型:unsignedshort[int]。
無(wú)符號(hào)長(zhǎng)整型:unsignedlong[int]。
整型數(shù)據(jù)的溢出:
一個(gè)int型變量的最大允許值為2147483647,如果再加1,其結(jié)果不是2147483648,而
是-2147483648,因?yàn)榘l(fā)生了“溢出”。同樣,一個(gè)int型變量的最小允許值為-2147483648,
如果再減1,其結(jié)果不是-2147483649而是2147483647,也發(fā)生了“溢出”。所以在使用整
型變量時(shí)要注意其值的溢出。
(2)實(shí)型變量。實(shí)型變量分為單精度型(float)、雙精度型(double)。單精度型實(shí)型變量在內(nèi)
存中占4字節(jié)(32位),雙精度型實(shí)型變量在內(nèi)存中占8字節(jié)(64位)。
由于實(shí)型數(shù)據(jù)的有效位是有限的,程序中變量如為單精度型,只有7位有效數(shù)字,所以輸出的
前7位是準(zhǔn)確的,第8位以后的數(shù)字是無(wú)意義的。變量如為雙精度型,可以有15~16位有效位,
所以輸出的前16位是準(zhǔn)確的,第17位以后的數(shù)字是無(wú)意義的。由此可見,由于機(jī)器存儲(chǔ)的限制,
使用實(shí)型數(shù)據(jù)在有效位以外的數(shù)字將被舍去,由此可能會(huì)產(chǎn)生一些誤差,我們?cè)诰幊讨幸⒁狻?/p>
由于實(shí)數(shù)存在舍入誤差,使用時(shí)要注意以下幾點(diǎn)。
①不要試圖用一個(gè)實(shí)數(shù)精確表示一個(gè)大整數(shù),浮點(diǎn)數(shù)是不精確的。
②實(shí)數(shù)一般不判斷“相等”,而是判斷接近或近似。
③避免直接將一個(gè)很大的實(shí)數(shù)與一個(gè)很小的實(shí)數(shù)相加、相減,否則會(huì)“丟失”小的數(shù)。
實(shí)驗(yàn)2C語(yǔ)言中的基本數(shù)據(jù)類型15
④根據(jù)要求選擇單精度型和雙精度型。
(3)字符型變量。字符型變量用于存放字符常量,即一個(gè)字符型變量可存放一個(gè)字符,字符
數(shù)據(jù)在內(nèi)存中是以字符的ASCII碼的二進(jìn)制形式存放的,所以一個(gè)字符型變量占用1字節(jié)內(nèi)存容
量。這使得字符型數(shù)據(jù)和整型數(shù)據(jù)之間可以通用(0~255范圍內(nèi)的無(wú)符號(hào)數(shù)或-128~127范圍內(nèi)
的有符號(hào)數(shù))。具體表現(xiàn)為如下幾點(diǎn):
①可以將整型常量賦值給字符變量,也可以將字符常量賦值給整型變量。
②可以對(duì)字符數(shù)據(jù)進(jìn)行算術(shù)運(yùn)算,相當(dāng)于對(duì)它們的ASCII碼進(jìn)行算術(shù)運(yùn)算。
③一個(gè)字符數(shù)據(jù)既可以字符形式輸出(ASCII碼對(duì)應(yīng)的字符),也可以整數(shù)形式輸出(直接
輸出ASCII碼值)。
④字符型數(shù)據(jù)和整型數(shù)據(jù)之間可以通用,但是字符型只占1字符,即如果作為整數(shù)使用,
只能存放0~255范圍內(nèi)的無(wú)符號(hào)數(shù)或范圍內(nèi)的有符號(hào)數(shù)。
⑤C語(yǔ)言沒有專門的字符串變量,如果想將一個(gè)字符串存放在變量中,可以使用字符數(shù)組(即
用一個(gè)字符數(shù)組來(lái)存放一個(gè)字符串,數(shù)組中每個(gè)元素存放一個(gè)字符)。
2.掌握符號(hào)常量的定義方法
定義宏常量格式:
#define標(biāo)識(shí)符常量替換文本
#define編譯指令的準(zhǔn)確含義是,命令編譯器將源代碼中所有標(biāo)識(shí)符常量替換為替換文本。其
效果與使用編輯器手工進(jìn)行查找并替換相同。例如:
#definePI3.1415926
根據(jù)約定,符號(hào)常量名中的字母為大寫,這易于將其同變量名區(qū)分開來(lái)。根據(jù)約定,變量名
中的字母為小寫。
一般情況下,程序員將所有的#define放在一起,并將它們放在程序的開頭。
宏常量不同于變量,一旦定義之后它所代表的值在整個(gè)作用域內(nèi)不能改變,也不能對(duì)其賦值。
3.掌握不同類型數(shù)據(jù)之間轉(zhuǎn)換的方式,包括自動(dòng)類型轉(zhuǎn)換及強(qiáng)制類型轉(zhuǎn)換
C語(yǔ)言規(guī)定,不同類型的數(shù)據(jù)在進(jìn)行混合運(yùn)算之前先轉(zhuǎn)換成相同的類型,然后再進(jìn)行運(yùn)算。
(1)自動(dòng)類型轉(zhuǎn)換。C編譯器在對(duì)操作數(shù)進(jìn)行運(yùn)算之前將所有操作數(shù)都轉(zhuǎn)換成取值范圍較大
的操作數(shù)類型,所有的char型和short型一律先轉(zhuǎn)換為int型,所有的float型先轉(zhuǎn)換為double型
再參加運(yùn)算。
當(dāng)算術(shù)運(yùn)算符“+”“-”“*”“/”“%”兩邊的數(shù)據(jù)類型不一致時(shí),“就高不就低”。這里的
“高”和“低”是指數(shù)據(jù)所占存儲(chǔ)空間的大小。
當(dāng)賦值號(hào)兩邊的類型不一致時(shí),右向左看齊。
當(dāng)函數(shù)定義時(shí)的形式參數(shù)和調(diào)用時(shí)的實(shí)際參數(shù)類型不一致時(shí),實(shí)際參數(shù)自動(dòng)轉(zhuǎn)換為形式參數(shù)
的類型。
C語(yǔ)言雖然支持類型自動(dòng)轉(zhuǎn)換,但有時(shí)可能會(huì)給程序帶來(lái)隱患,可能會(huì)發(fā)生數(shù)據(jù)丟失、類型
溢出等錯(cuò)誤。
(2)強(qiáng)制類型轉(zhuǎn)換。一般形式如下:
(類型)表達(dá)式
將表達(dá)式運(yùn)算結(jié)果強(qiáng)制轉(zhuǎn)換成某種數(shù)據(jù)類型。
強(qiáng)制類型轉(zhuǎn)換最主要的用途有以下幾方面:
16C語(yǔ)言程序設(shè)計(jì)技術(shù)實(shí)踐指導(dǎo)
①滿足一些運(yùn)算符對(duì)類型的特殊要求。
例如,取余運(yùn)算要求“%”兩側(cè)的數(shù)據(jù)類型必須為整型?!?7.5%9”的表示方法是錯(cuò)誤的,但
“(int)17.5%9”就是正確的。
另外,C的有些庫(kù)函數(shù)(如malloc())的調(diào)用結(jié)果是空類型(void),必須根據(jù)需要進(jìn)行類型
的強(qiáng)制轉(zhuǎn)換,否則調(diào)用結(jié)果就無(wú)法利用。
②防止整數(shù)進(jìn)行乘除運(yùn)算時(shí)小數(shù)部分丟失。
4.掌握輸入/輸出函數(shù)的基本應(yīng)用
(1)printf()函數(shù)的調(diào)用格式:
printf("格式控制字符串",輸出項(xiàng)列表);
①格式控制字符串用以指定輸出數(shù)據(jù)的輸出格式。格式控制字符串中包括格式字符(包括
轉(zhuǎn)換說明符、標(biāo)志、域?qū)?、精度)和普通字符。轉(zhuǎn)換說明符和%一起使用,用來(lái)說明輸出數(shù)據(jù)的
數(shù)據(jù)類型、標(biāo)志、寬度和精度。普通字符在輸出時(shí)按原樣輸出。常用轉(zhuǎn)換說明符如表2-1所示。
表2-1printf()和scanf()函數(shù)的常用轉(zhuǎn)換說明符
轉(zhuǎn)換說明符意義轉(zhuǎn)換說明符意義
%d以十進(jìn)制整數(shù)形式%f或%lf以浮點(diǎn)型數(shù)據(jù)形式
%c以字符型數(shù)據(jù)形式%s以字符串形式
②輸出項(xiàng)列表指出各個(gè)輸出數(shù)據(jù),當(dāng)有多個(gè)輸出項(xiàng)時(shí)各輸出項(xiàng)之間用逗號(hào)“,”隔開,輸出
項(xiàng)可以是常量、變量和表達(dá)式,也可以沒有輸出項(xiàng)。
(2)scanf()函數(shù)的調(diào)用格式:
scanf("格式控制字符串",輸入項(xiàng)地址列表)
①格式控制字符串規(guī)定了輸入項(xiàng)中的變量將以何種類型的數(shù)據(jù)格式被輸入,它的一般形式
是:%[修飾符]轉(zhuǎn)換說明符。常用轉(zhuǎn)換說明符如表2-1所示。
②輸入項(xiàng)地址列表由若干變量的地址組成,每個(gè)地址之間用逗號(hào)分隔。C語(yǔ)言中變量的地
址可以用取地址符與變量名組成,如&a。也可以是指針變量,因?yàn)橹羔樧兞恐写娣诺木褪亲兞?/p>
的地址。
(3)putc
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)村工業(yè)租地合同范本
- 動(dòng)力配電安裝合同范例
- 力工免傷合同范例
- 農(nóng)村機(jī)具租賃合同范例
- 2025-2030年復(fù)古銅鏡復(fù)刻行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報(bào)告
- 產(chǎn)品公司簽約合同范本
- 2025-2030年可與電腦交互筆行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 中介公司租賃合同范本
- 2025-2030年數(shù)據(jù)備份設(shè)備行業(yè)深度調(diào)研及發(fā)展戰(zhàn)略咨詢報(bào)告
- 2025-2030年手術(shù)室照明遠(yuǎn)程技術(shù)支持企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力戰(zhàn)略研究報(bào)告
- 如何構(gòu)建高效課堂課件
- 虛擬化與云計(jì)算技術(shù)應(yīng)用實(shí)踐項(xiàng)目化教程 教案全套 第1-14周 虛擬化與云計(jì)算導(dǎo)論-騰訊云服務(wù)
- 甲基丙烯酸甲酯生產(chǎn)工藝畢業(yè)設(shè)計(jì)設(shè)備選型與布置模板
- 徐金桂行政法與行政訴訟法新講義
- 瀝青拌合設(shè)備結(jié)構(gòu)認(rèn)知
- 2023年北京高考政治真題試題及答案
- 復(fù)旦中華傳統(tǒng)體育課程講義05木蘭拳基本技術(shù)
- 北師大版五年級(jí)上冊(cè)數(shù)學(xué)教學(xué)課件第5課時(shí) 人民幣兌換
- 工程回訪記錄單
- 住房公積金投訴申請(qǐng)書
- 檢驗(yàn)科生物安全風(fēng)險(xiǎn)評(píng)估報(bào)告
評(píng)論
0/150
提交評(píng)論