關(guān)于我們
書(shū)單推薦
新書(shū)推薦
|
C語(yǔ)言程序設(shè)計(jì)
本書(shū)主要講述數(shù)據(jù)類(lèi)型、運(yùn)算符與表達(dá)式、順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、函數(shù)、數(shù)組、指針、結(jié)構(gòu)體和共用體、文件等內(nèi)容。本書(shū)作為C語(yǔ)言程序設(shè)計(jì)的入門(mén)教材,一方面內(nèi)容由淺入深、通俗易懂,循序漸進(jìn)的將各個(gè)知識(shí)點(diǎn)講解清楚,引導(dǎo)學(xué)生順利學(xué)習(xí)并掌握;另一方面,特別強(qiáng)調(diào)了對(duì)學(xué)生程序設(shè)計(jì)能力的培養(yǎng),主要是通過(guò)提供典型和具有一定趣味性的例題以及大量的習(xí)題,提高學(xué)生學(xué)習(xí)興趣,進(jìn)而達(dá)到刻苦專(zhuān)研、自覺(jué)學(xué)習(xí)的目的;
C語(yǔ)言是一種結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言,具有編程方便、語(yǔ)句簡(jiǎn)練、功能強(qiáng)、移植性好等特點(diǎn),是軟件開(kāi)發(fā)中最常用的計(jì)算機(jī)語(yǔ)言。它既具有高級(jí)語(yǔ)言的特點(diǎn),又具有匯編語(yǔ)言的特點(diǎn);既適用于系統(tǒng)軟件的開(kāi)發(fā),也適合于應(yīng)用軟件的開(kāi)發(fā),而且其編寫(xiě)不依賴(lài)于計(jì)算機(jī)硬件。因此,C語(yǔ)言以其自身的特色和優(yōu)勢(shì),在工業(yè)控制、嵌入式系統(tǒng)開(kāi)發(fā)、單片機(jī)編程、系統(tǒng)底層開(kāi)發(fā)等領(lǐng)域應(yīng)用非常廣泛。
大多數(shù)院校都將C語(yǔ)言作為入門(mén)的程序設(shè)計(jì)教學(xué)語(yǔ)言,同時(shí)將C語(yǔ)言程序設(shè)計(jì)作為計(jì)算機(jī)專(zhuān)業(yè)學(xué)生最重要的專(zhuān)業(yè)基礎(chǔ)課程之一,因此對(duì)教師和學(xué)生都提出了較高的要求,并給予厚望。目前,國(guó)內(nèi)已經(jīng)出版的C語(yǔ)言教材非常多。作者在充分吸收這些教材的優(yōu)點(diǎn)的同時(shí),又將豐富的教學(xué)經(jīng)驗(yàn)融入寫(xiě)作之中,以期達(dá)到教材充實(shí)、完整和便于學(xué)習(xí)的目的。
本書(shū)作為C語(yǔ)言程序設(shè)計(jì)入門(mén)教材,一方面注意到深入淺出、循序漸進(jìn)地將各個(gè)知識(shí)點(diǎn)講解清楚,引導(dǎo)學(xué)生順利學(xué)習(xí)并掌握;另一方面,特別強(qiáng)調(diào)了對(duì)學(xué)生程序設(shè)計(jì)能力,主要是提供典型和具有提供一定趣味性的例題以及大量的習(xí)題,提高學(xué)生學(xué)習(xí)興趣,進(jìn)而達(dá)到刻苦鉆研、自覺(jué)學(xué)習(xí)的目的。
本書(shū)中的所有案例程序代碼均在Visual C++ 6.0環(huán)境下調(diào)試通過(guò)。語(yǔ)法知識(shí)點(diǎn)均符合C99標(biāo)準(zhǔn)。本書(shū)在教學(xué)使用過(guò)程中,可根據(jù)專(zhuān)業(yè)特點(diǎn)和課時(shí)安排選取教學(xué)內(nèi)容。每章后面附有習(xí)題,可供學(xué)生課后練習(xí)。為了便于教學(xué),本書(shū)有配套教材——《C語(yǔ)言程序設(shè)計(jì)實(shí)驗(yàn)指導(dǎo)與習(xí)題選解》。
需要特別指出的是:大部分同學(xué)都是第一次接觸到C語(yǔ)言程序設(shè)計(jì),而程序設(shè)計(jì)思想的建立和形成并非一日之功。因此,建議本課程除了理論學(xué)時(shí)之外,應(yīng)該設(shè)置比較充足的實(shí)驗(yàn)學(xué)時(shí),或者提供大量的課外上機(jī)時(shí)間。唯有這樣,才能充分理解、鞏固、強(qiáng)化和掌握課程的主要知識(shí)點(diǎn),進(jìn)而達(dá)到靈活自如地進(jìn)行程序設(shè)計(jì)的目的。如果有條件,最好在學(xué)完本教材后安排一次課程設(shè)計(jì),要求學(xué)生獨(dú)立完成一個(gè)有一定規(guī)模的程序設(shè)計(jì),這是一個(gè)重要的教學(xué)實(shí)踐環(huán)節(jié),能大大提高學(xué)生的獨(dú)立編程能力。
本書(shū)由大連工業(yè)大學(xué)王海文、大連工業(yè)大學(xué)藝術(shù)與信息工程學(xué)院林月、林強(qiáng)擔(dān)任主編,大連工業(yè)大學(xué)藝術(shù)與信息工程學(xué)院關(guān)奪、王虹元、尚靖函擔(dān)任副主編。本書(shū)內(nèi)容共12章:王海文老師編寫(xiě)第5、6、7章,林月老師編寫(xiě)第1、2、3、4章,林強(qiáng)老師編寫(xiě)第8、9、10章,關(guān)奪老師編寫(xiě)第11章,王虹元老師編寫(xiě)第12章,尚靖函老師編寫(xiě)附錄。黃婷婷、蔡國(guó)昱、王藝菲、王中鑫協(xié)助進(jìn)行了資料的整理工作。
在編寫(xiě)本書(shū)的過(guò)程中,我們參考了兄弟院校的資料及其他相關(guān)教材,并得到許多同人的關(guān)心和幫助,在此謹(jǐn)致謝意。
為了方便教學(xué),本書(shū)還配有電子課件等教學(xué)資源包,任課教師和學(xué)生可以登錄“我們愛(ài)讀書(shū)”網(wǎng)(www.ibook4us.com)免費(fèi)注冊(cè)并瀏覽,或者發(fā)郵件至hustpeiit@163.com免費(fèi)索取。
限于篇幅及編者的業(yè)務(wù)水平,雖然我們付出了最大努力,但是書(shū)中難免存在不足甚至錯(cuò)誤之處,敬請(qǐng)廣大讀者批評(píng)指正。
編者
2016年11月
第1章C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)()
1.1程序與程序設(shè)計(jì)語(yǔ)言()
1.1.1程序與指令()
1.1.2程序設(shè)計(jì)語(yǔ)言()
1.1.3高級(jí)語(yǔ)言程序的開(kāi)發(fā)過(guò)程()
1.2C語(yǔ)言概述()
1.2.1C語(yǔ)言的產(chǎn)生與發(fā)展()
1.2.2C語(yǔ)言的特點(diǎn)()
1.2.3C語(yǔ)言的應(yīng)用()
1.3C語(yǔ)言開(kāi)發(fā)程序()
1.3.1用C語(yǔ)言開(kāi)發(fā)程序的過(guò)程()
1.3.2算法的概念和特征()
1.3.3結(jié)構(gòu)化程序設(shè)計(jì)方法()
1.3.4算法的表示()
1.3.5C語(yǔ)言程序的結(jié)構(gòu)()
1.4C語(yǔ)言程序的實(shí)現(xiàn)()
1.4.1C語(yǔ)言程序的開(kāi)發(fā)過(guò)程()
1.4.2VC++ 6.0集成開(kāi)發(fā)環(huán)境()
1.4.3C語(yǔ)言運(yùn)行環(huán)境()
習(xí)題()
第2章數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式()
2.1從數(shù)學(xué)上的“數(shù)”過(guò)渡到計(jì)算機(jī)中的“數(shù)”()
2.2數(shù)據(jù)類(lèi)型概述()
2.3常量和變量()
2.3.1常量()
2.3.2變量()
2.3.3變量名規(guī)則()
2.3.4變量的定義()
2.4整數(shù)類(lèi)型()
2.4.1整型常量()
2.4.2整型變量()
2.5實(shí)數(shù)類(lèi)型()
2.5.1實(shí)型常量()
2.5.2實(shí)型變量()
2.6字符類(lèi)型()
2.6.1字符型常量()
2.6.2字符型變量()
2.6.3字符數(shù)據(jù)在內(nèi)存中的存儲(chǔ)形式及其使用()
2.7不同數(shù)據(jù)類(lèi)型之間的轉(zhuǎn)換()
2.7.1自動(dòng)類(lèi)型轉(zhuǎn)換()
2.7.2強(qiáng)制類(lèi)型轉(zhuǎn)換()
2.8運(yùn)算符與表達(dá)式()
2.8.1算術(shù)運(yùn)算符與算術(shù)表達(dá)式()
2.8.2賦值運(yùn)算符與賦值表達(dá)式()
2.8.3關(guān)系運(yùn)算符與關(guān)系表達(dá)式()
2.8.4邏輯運(yùn)算符與邏輯表達(dá)式()
2.8.5條件運(yùn)算符與條件表達(dá)式()
2.8.6逗號(hào)運(yùn)算符與逗號(hào)表達(dá)式()
2.9運(yùn)算符與表達(dá)式的綜合練習(xí)()
2.9.1正確的C語(yǔ)言表達(dá)式書(shū)寫(xiě)()
2.9.2復(fù)雜表達(dá)式的分析()
習(xí)題()
第3章順序程序設(shè)計(jì)()
3.1C語(yǔ)句()
3.1.1C語(yǔ)句概述()
3.1.2賦值語(yǔ)句()
3.2字符數(shù)據(jù)的輸入/輸出()
3.2.1數(shù)據(jù)輸入/輸出的概念及在C語(yǔ)言中的實(shí)現(xiàn)()
3.2.2字符的輸出函數(shù)putchar函數(shù)()
3.2.3字符的輸入函數(shù)()
3.3格式化輸入與輸出函數(shù)()
3.3.1格式化的輸出函數(shù)printf函數(shù)()
3.3.2格式化的輸入函數(shù)scanf函數(shù)()
3.4順序結(jié)構(gòu)程序設(shè)計(jì)舉例()
習(xí)題()
第4章選擇結(jié)構(gòu)()
4.1if語(yǔ)句()
4.1.1單選擇結(jié)構(gòu)()
4.1.2ifelse語(yǔ)句()
4.1.3ifelseifelse語(yǔ)句()
4.1.4嵌套if結(jié)構(gòu)()
4.2switch結(jié)構(gòu)()
4.3多重if結(jié)構(gòu)和switch結(jié)構(gòu)的比較()
4.4應(yīng)用舉例()
習(xí)題()
第5章循環(huán)結(jié)構(gòu)()
5.1循環(huán)結(jié)構(gòu)簡(jiǎn)介()
5.2while語(yǔ)句()
5.3dowhile語(yǔ)句()
5.4for語(yǔ)句()
5.4.1基本的for語(yǔ)句()
5.4.2各種特殊形式的for語(yǔ)句()
5.5三種循環(huán)語(yǔ)句的比較()
5.6break語(yǔ)句()
5.7continue語(yǔ)句()
5.8嵌套循環(huán)()
5.9應(yīng)用舉例()
習(xí)題()
第6章函數(shù)()
6.1函數(shù)概述()
6.2函數(shù)的定義與調(diào)用()
6.2.1函數(shù)的定義()
6.2.2函數(shù)的調(diào)用、參數(shù)及傳遞方式()
6.2.3函數(shù)的返回值()
6.2.4函數(shù)聲明的作用()
6.2.5main函數(shù)中的參數(shù)()
6.3函數(shù)的嵌套調(diào)用與遞歸調(diào)用()
6.3.1函數(shù)的嵌套調(diào)用()
6.3.2函數(shù)的遞歸調(diào)用()
6.4變量的作用域與存儲(chǔ)類(lèi)型()
6.4.1變量的作用域()
6.4.2全局變量()
6.4.3變量的存儲(chǔ)類(lèi)型()
6.5常用系統(tǒng)函數(shù)()
6.5.1數(shù)學(xué)函數(shù)()
6.5.2輸入輸出函數(shù)()
6.5.3時(shí)間函數(shù)()
6.5.4隨機(jī)數(shù)函數(shù)()
習(xí)題()
第7章數(shù)組()
7.1數(shù)組的概念()
7.2數(shù)組的定義()
7.2.1一維數(shù)組()
7.2.2二維數(shù)組()
7.3數(shù)組作為函數(shù)的參數(shù)()
7.3.1用數(shù)組元素作函數(shù)實(shí)參()
7.3.2用數(shù)組名作函數(shù)參數(shù)()
7.3.3用多維數(shù)組名作函數(shù)參數(shù)()
7.4數(shù)組應(yīng)用舉例()
7.5字符串()
7.5.1字符串概念()
7.5.2字符串函數(shù)()
7.5.3字符串應(yīng)用舉例()
習(xí)題()
第8章指針()
8.1指針的概念()
8.2指針變量()
8.2.1指針定義()
8.2.2指針運(yùn)算符(&和*)()
8.2.3指針作為函數(shù)的參數(shù)()
8.2.4多級(jí)指針與指針數(shù)組()
8.3指針運(yùn)算()
8.4指針與數(shù)組()
8.4.1指針與一維數(shù)組()
8.4.2指針與二維數(shù)組()
8.4.3指針與字符數(shù)組()
8.4.4指針與函數(shù)()
8.5動(dòng)態(tài)存儲(chǔ)分配()
習(xí)題()
第9章編譯預(yù)處理()
9.1宏定義()
9.1.1不帶參數(shù)的宏定義()
9.1.2帶參數(shù)的宏定義()
9.2文件包含()
9.3條件編譯()
習(xí)題()
第10章結(jié)構(gòu)體和共用體()
10.1結(jié)構(gòu)體類(lèi)型定義和結(jié)構(gòu)體變量說(shuō)明()
10.1.1結(jié)構(gòu)體的定義()
10.1.2結(jié)構(gòu)體類(lèi)型變量的說(shuō)明()
10.2結(jié)構(gòu)體變量的引用和初始化()
10.2.1結(jié)構(gòu)體類(lèi)型變量的引用()
10.2.2結(jié)構(gòu)體變量的初始化()
10.3結(jié)構(gòu)體指針變量()
10.3.1指向結(jié)構(gòu)體變量的指針()
10.3.2指向結(jié)構(gòu)體數(shù)組的指針()
10.3.3結(jié)構(gòu)體指針變量做函數(shù)參數(shù)()
10.4常用的內(nèi)存管理函數(shù)()
10.5鏈表()
10.5.1簡(jiǎn)單鏈表的建立()
10.5.2鏈表的查找()
10.5.3鏈表的刪除()
10.5.4鏈表的插入()
10.5.5鏈表的輸出()
10.6共用體()
10.6.1共用體的定義()
10.6.2共用體變量的說(shuō)明()
10.6.3共用體變量的賦值和使用()
10.7枚舉類(lèi)型數(shù)據(jù)()
10.8用typedef定義類(lèi)型()
10.9綜合實(shí)例()
習(xí)題()
第11章位運(yùn)算()
11.1位運(yùn)算概述()
11.1.1計(jì)算機(jī)內(nèi)數(shù)據(jù)的表示方法()
11.1.2位運(yùn)算及其運(yùn)算符()
11.2位運(yùn)算()
11.2.1按位與()
11.2.2按位或()
11.2.3按位異或()
11.2.4按位取反()
11.2.5按位左移()
11.2.6按位右移()
11.2.7位復(fù)合賦值運(yùn)算符()
11.2.8位運(yùn)算符的優(yōu)先級(jí)()
11.2.9不同長(zhǎng)度的數(shù)據(jù)進(jìn)行位運(yùn)算()
11.3位段()
11.3.1位段的定義()
11.3.2位段的引用()
11.4綜合案例分析()
習(xí)題()
第12章文件()
12.1文件概述()
12.1.1文件的基本概念()
12.1.2文件系統(tǒng)()
12.1.3文件的編碼方式()
12.1.4文件指針()
12.2文件的打開(kāi)與關(guān)閉()
12.2.1文件的打開(kāi)(fopen函數(shù))()
12.2.2文件的使用方式()
12.2.3文件的關(guān)閉(fclose函數(shù))()
12.3文件的順序讀取()
12.3.1字符的讀寫(xiě)函數(shù)(fgetc和fputc)()
12.3.2字符串的讀寫(xiě)函數(shù)(fgets和fputs)()
12.3.3格式化的讀寫(xiě)函數(shù)(fscanf和fprintf)()
12.3.4數(shù)據(jù)塊的讀寫(xiě)函數(shù)(fread和fwrite)()
12.4文件的定位與隨機(jī)讀寫(xiě)()
12.4.1文件定位函數(shù)()
12.4.2文件的隨機(jī)讀寫(xiě)操作()
12.5文件的出錯(cuò)檢測(cè)()
習(xí)題()
附錄A基本控制字符/字符與ASCII值對(duì)照表()
附錄BC語(yǔ)言操作符的優(yōu)先級(jí)()
參考文獻(xiàn)()
第3章 順序程序設(shè)計(jì) 從程序流程的角度來(lái)看,程序可以分為三種基本結(jié)構(gòu),即順序結(jié)構(gòu)、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)。這三種基本結(jié)構(gòu)可以構(gòu)造任何復(fù)雜的邏輯關(guān)系。C語(yǔ)言提供了多種語(yǔ)句來(lái)實(shí)現(xiàn)這些程序結(jié)構(gòu)。順序結(jié)構(gòu)是一種線性結(jié)構(gòu),其特點(diǎn)是:各語(yǔ)句組按照各自出現(xiàn)的先后順序,依次逐一執(zhí)行。順序結(jié)構(gòu)是三種基本結(jié)構(gòu)中最簡(jiǎn)單的一種,無(wú)專(zhuān)門(mén)的控制語(yǔ)句。 3.1C語(yǔ)句 3.1.1C語(yǔ)句概述 C語(yǔ)言程序的結(jié)構(gòu)如圖31所示。 圖31C語(yǔ)言程序的結(jié)構(gòu) C語(yǔ)言程序的執(zhí)行部分是由語(yǔ)句組成的。程序的功能是由執(zhí)行語(yǔ)句實(shí)現(xiàn)的。 C語(yǔ)言程序中的語(yǔ)句可分為表達(dá)式語(yǔ)句、函數(shù)調(diào)用語(yǔ)句、控制語(yǔ)句、復(fù)合語(yǔ)句和空語(yǔ)句五類(lèi)。 1. 表達(dá)式語(yǔ)句 表達(dá)式語(yǔ)句由表達(dá)式加上分號(hào)“;”組成。其一般形式為 表達(dá)式; 執(zhí)行表達(dá)式語(yǔ)句就是計(jì)算表達(dá)式的值。例如: x= y+ z;/* 賦值語(yǔ)句* / y+ z;/* 加法運(yùn)算語(yǔ)句,但計(jì)算結(jié)果不能保留,無(wú)實(shí)際意義* / i+ + ;/* 自增1語(yǔ)句,i值增1* / 2. 函數(shù)調(diào)用語(yǔ)句 函數(shù)調(diào)用語(yǔ)句由函數(shù)名、實(shí)際參數(shù)加上分號(hào)“;”組成。其一般形式為 函數(shù)名(實(shí)際參數(shù)表); 執(zhí)行函數(shù)調(diào)用語(yǔ)句就是調(diào)用函數(shù)體并把實(shí)際參數(shù)賦予函數(shù)定義中的形式參數(shù),然后執(zhí)行被調(diào)函數(shù)體中的語(yǔ)句,求取函數(shù)值 (在后面函數(shù)部分中再詳細(xì)介紹)。例如: printf("C Program"); /* 調(diào)用庫(kù)函數(shù),輸出字符串*/ 3. 控制語(yǔ)句 控制語(yǔ)句用于控制程序的流程。它們由特定的語(yǔ)句定義符組成。C語(yǔ)言有九種控制語(yǔ)句,可分成以下三類(lèi)。 ① 條件判斷語(yǔ)句:if語(yǔ)句、switch語(yǔ)句。 ② 循環(huán)執(zhí)行語(yǔ)句:dowhile語(yǔ)句、while語(yǔ)句、for語(yǔ)句。 ③ 轉(zhuǎn)向語(yǔ)句:break語(yǔ)句、goto語(yǔ)句、continue語(yǔ)句、return語(yǔ)句。 4. 復(fù)合語(yǔ)句 把多個(gè)語(yǔ)句用括號(hào)“{}”括起來(lái)組成的一個(gè)語(yǔ)句稱(chēng)為復(fù)合語(yǔ)句。在程序中應(yīng)把復(fù)合語(yǔ)句看成是單條語(yǔ)句,而不是多條語(yǔ)句。例如: { x=y+z; a=b+c; printf("%d%d",x,a); } 是一條復(fù)合語(yǔ)句。復(fù)合語(yǔ)句內(nèi)的各條語(yǔ)句都必須以分號(hào)“;”結(jié)尾,在括號(hào)“}”外不能加分號(hào)。 5. 空語(yǔ)句 只有分號(hào)“;”組成的語(yǔ)句稱(chēng)為空語(yǔ)句。空語(yǔ)句是什么也不執(zhí)行的語(yǔ)句。在程序中空語(yǔ)句可用作空循環(huán)體。例如: while(getchar()!='\\n'); 含有一條空語(yǔ)句。該語(yǔ)句的功能是,只要從鍵盤(pán)輸入的字符不是回車(chē)符,則重新輸入。 3.1.2賦值語(yǔ)句 賦值語(yǔ)句是由賦值表達(dá)式再加上分號(hào)構(gòu)成的表達(dá)式語(yǔ)句。其一般形式為 變量=表達(dá)式; 賦值語(yǔ)句的功能和特點(diǎn)都與賦值表達(dá)式相同。它是程序中使用最多的語(yǔ)句之一。在賦值語(yǔ)句的使用中需要注意以下幾點(diǎn)。 (1) 由于在賦值符“=”右邊的表達(dá)式可以是一個(gè)賦值表達(dá)式,因此,下述形式 變量=(變量=表達(dá)式); 是成立的,從而形成嵌套的情形。其展開(kāi)之后的一般形式為 變量=變量=…=表達(dá)式; 例如: a=b=c=d=e=5; 按照賦值運(yùn)算符的右結(jié)合性,等效于 e=5; d=e; c=d; b=c; a=b; (2) 注意在變量說(shuō)明中給變量賦初值和賦值語(yǔ)句的區(qū)別。 給變量賦初值是變量說(shuō)明的一部分,賦初值后的變量與其后的其他同類(lèi)變量之間仍必須用逗號(hào)間隔,而賦值語(yǔ)句則必須用分號(hào)結(jié)尾。例如: int a=5,b,c; (3)在變量說(shuō)明中,不允許連續(xù)給多個(gè)變量賦初值。如下述說(shuō)明是錯(cuò)誤的: int a=b=c=5 上述式子的正確寫(xiě)法為 int a=5,b=5,c=5; 而賦值語(yǔ)句允許連續(xù)賦值。 (4) 注意賦值表達(dá)式和賦值語(yǔ)句的區(qū)別。 賦值表達(dá)式是一種表達(dá)式,它可以出現(xiàn)在任何允許表達(dá)式出現(xiàn)的地方,而賦值語(yǔ)句則不能。例如下述語(yǔ)句是合法的。 if((x=y+5)>0)z=x; 該語(yǔ)句的功能是,若表達(dá)式x=y+5大于0,則z=x。 下述語(yǔ)句是非法的。 if((x=y+5;)>0)z=x; 因?yàn)椤皒=y+5;”是語(yǔ)句,不能出現(xiàn)在表達(dá)式中。 3.2字符數(shù)據(jù)的輸入/輸出 3.2.1數(shù)據(jù)輸入/輸出的概念及在C語(yǔ)言中的實(shí)現(xiàn) 所謂輸入/輸出是以計(jì)算機(jī)為主體的。本章介紹的是向標(biāo)準(zhǔn)輸出設(shè)備即顯示器輸出數(shù)據(jù)的語(yǔ)句。在C語(yǔ)言中, #include 將有關(guān)“頭文件”包含到源文件中。 使用標(biāo)準(zhǔn)輸入/輸出庫(kù)函數(shù)時(shí)要用到stdio.h文件,因此源文件開(kāi)頭應(yīng)有以下預(yù)編譯命令: #include 或 #include"stdio.h" 其中stdio是standard input & output的意思。 考慮到printf和scanf函數(shù)使用頻繁,系統(tǒng)允許在使用這兩個(gè)函數(shù)時(shí)可不加 #include 或 #include"stdio.h" 3.2.2字符的輸出函數(shù) putchar函數(shù) putchar 函數(shù)是字符輸出函數(shù),其功能是在顯示器上輸出單個(gè)字符。其一般形式為 putchar(ch); 其中,ch可以是字符型變量,也可以是整型變量,還可以是字符型常量或整型常量。例如: putchar('A');/*輸出大寫(xiě)字母A*/ putchar(x);/*輸出字符變量x的值*/ putchar('\\101');/*輸出字符A*/ putchar('\\n'); /*換行*/ 對(duì)控制字符則執(zhí)行控制功能,不在屏幕上顯示。 使用putchar函數(shù)前必須要用文件包含命令: #include 或 #include"stdio.h" 【例31】輸出單個(gè)字符。 #include void main() { char a='B',b='o',c='k'; putchar(a);putchar(b);putchar(b);putchar(c);putchar('\\t'); putchar(a);putchar(b); putchar('\\n'); putchar(b);putchar(c); } 3.2.3字符的輸入函數(shù) 1. getchar 函數(shù) (1) 函數(shù)原型:int getchar(void);。 (2) 函數(shù)功能:從輸入設(shè)備(一般指鍵盤(pán))上接收輸入的一個(gè)字符,函數(shù)的返回值是所輸入字符的ASCII碼值。 (3) 使用說(shuō)明:該函數(shù)每調(diào)用一次,就從標(biāo)準(zhǔn)輸入設(shè)備(鍵盤(pán))上取一個(gè)字符,函數(shù)值可以賦予一個(gè)字符型變量,也可以賦予一個(gè)整型變量。例如: #include void main() { int ch; ch=getchar(); putchar(ch); } 程序運(yùn)行后,輸入字符‘a(chǎn)’,并按回車(chē)鍵: a 則變量ch的值為97,程序輸出結(jié)果: a (4) 注意: ① 執(zhí)行g(shù)etchar()函數(shù)從鍵盤(pán)輸入字符時(shí),注意所輸入的字符并不是立即賦給字符型變量或整型變量,只有在輸入一個(gè)回車(chē)后,字符變量或整型變量才能得到字符。也就是說(shuō),輸入字符后需要按回車(chē)鍵程序才能繼續(xù)執(zhí)行后續(xù)語(yǔ)句。 ② getchar()函數(shù)從鍵盤(pán)讀入字符時(shí),該函數(shù)會(huì)將回車(chē)鍵作為一個(gè)字符讀入,因此,在使用getchar()函數(shù)連續(xù)讀入多個(gè)字符時(shí)需特別注意,例如下面程序的功能是“從鍵盤(pán)輸入3個(gè)字符并反向輸出這3個(gè)字符”,但運(yùn)行結(jié)果卻事與愿違。 #include void main() { int ch1,ch2,ch3; ch1=getchar(); ch2=getchar(); ch3=getchar();/*依次輸入3個(gè)字符*/ putchar(ch3);/*反向輸出3個(gè)字符*/ putchar(ch2); putchar(ch1); } 請(qǐng)讀者思考怎樣修改程序而完成程序功能?
你還可能感興趣
我要評(píng)論
|