《C語言程序設(shè)計(jì)》基本知識(shí)點(diǎn)解答_第1頁
《C語言程序設(shè)計(jì)》基本知識(shí)點(diǎn)解答_第2頁
《C語言程序設(shè)計(jì)》基本知識(shí)點(diǎn)解答_第3頁
《C語言程序設(shè)計(jì)》基本知識(shí)點(diǎn)解答_第4頁
《C語言程序設(shè)計(jì)》基本知識(shí)點(diǎn)解答_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、C語言程序設(shè)計(jì)基本知識(shí)點(diǎn)解答C語言程序設(shè)計(jì)基本知識(shí)點(diǎn)解答52/52C語言程序設(shè)計(jì)基本知識(shí)點(diǎn)解答語言程序設(shè)計(jì)基本知識(shí)點(diǎn)解答(一)第章計(jì)算機(jī)基礎(chǔ)知識(shí)Q001計(jì)算機(jī)的基根源理是什么?(計(jì)算機(jī)的基根源理)A001計(jì)算機(jī)的基根源理有兩個(gè):二進(jìn)制:是指計(jì)算機(jī)中全部的信息都是以二進(jìn)制形式的數(shù)據(jù)來表示、儲(chǔ)藏、傳達(dá)和運(yùn)算的。儲(chǔ)藏程序控制:是指在利用計(jì)算機(jī)解決問題時(shí),第一需要人找出解決方法,爾后將這個(gè)方法用某種計(jì)算機(jī)語言變換成計(jì)算機(jī)程序(包括了原始數(shù)據(jù)和辦理指令),再送入計(jì)算機(jī)中儲(chǔ)藏,最后由人發(fā)出命令,計(jì)算機(jī)開始依照程序中的指令和流程執(zhí)行這個(gè)程序(即對(duì)數(shù)據(jù)進(jìn)行加工辦理)。Q002為什么計(jì)算機(jī)內(nèi)部使用二進(jìn)制?(二進(jìn)

2、制)A002使用二進(jìn)制的主要原因是:物理上很簡(jiǎn)單實(shí)現(xiàn)兩種相對(duì)峙的牢固的能量狀態(tài)(如晶體管的導(dǎo)通與不導(dǎo)通、高電平與低電平、磁性資料中剩磁的順時(shí)針或逆時(shí)針方向等)二進(jìn)制數(shù)據(jù)的運(yùn)算規(guī)則數(shù)量少而且簡(jiǎn)單,操作實(shí)現(xiàn)簡(jiǎn)略Q003計(jì)算機(jī)硬件的基本構(gòu)造是什么?(硬件)A003運(yùn)算器中央辦理器CPU控制器主機(jī)硬件內(nèi)儲(chǔ)藏器儲(chǔ)藏器系統(tǒng)外儲(chǔ)藏器外設(shè)輸入輸出設(shè)備(I/O)Q004計(jì)算機(jī)硬件系統(tǒng)的核心部件有哪些?它們的作用是什么?(硬件)A004計(jì)算機(jī)硬件系統(tǒng)的四大核心部件是控制器、運(yùn)算器、儲(chǔ)藏器和輸入輸出設(shè)備。其中:控制器是計(jì)算機(jī)的指揮控制中心。其主要功能是鑒識(shí)翻譯指令代碼并向計(jì)算機(jī)各部發(fā)散出合適的控制信號(hào),以便執(zhí)行機(jī)器

3、指令。運(yùn)算器是對(duì)數(shù)據(jù)進(jìn)行加工、運(yùn)算的部件。其主要功能是對(duì)二進(jìn)制數(shù)據(jù)進(jìn)行算術(shù)運(yùn)算和邏輯運(yùn)算。儲(chǔ)藏器是存放數(shù)據(jù)和程序的部件。其主要功能是依照要求向指定的地址存進(jìn)或取出信息。輸入設(shè)備的功能是將數(shù)據(jù)和程序送入到計(jì)算機(jī)的儲(chǔ)藏器中。常有的輸入設(shè)備有鍵盤、鼠標(biāo)等。輸出設(shè)備的功能是將計(jì)算機(jī)產(chǎn)生的結(jié)果送出計(jì)算機(jī)外。常有的輸出設(shè)備有顯示器、打印機(jī)等。Q005計(jì)算機(jī)的基本工作過程是怎樣的?(硬件)(工作過程)A005I/O控制器運(yùn)算計(jì)算程序命令指存取命令原始數(shù)據(jù)令命令輸入輸入取數(shù)儲(chǔ)藏器運(yùn)算器輸出設(shè)備輸出存數(shù)計(jì)算結(jié)果控制流數(shù)據(jù)流Q006內(nèi)儲(chǔ)藏器和外儲(chǔ)藏器有哪些差異?(儲(chǔ)藏器)(內(nèi)存)A006主要差異以下表所示:內(nèi)儲(chǔ)藏

4、器(主儲(chǔ)藏器)外儲(chǔ)藏器(輔助儲(chǔ)藏器)屬于硬件系統(tǒng)的主機(jī)部分,位于主機(jī)板的屬于硬件系統(tǒng)的外設(shè)部分,與運(yùn)算器和控構(gòu)造插槽上,與運(yùn)算器和控制器直接聯(lián)系進(jìn)行制器必定經(jīng)過必然的硬件接口相聯(lián)系進(jìn)數(shù)據(jù)交換行數(shù)據(jù)交換物理組成電介質(zhì):半導(dǎo)體集成電路磁介質(zhì):磁盤或磁帶計(jì)算機(jī)斷電會(huì)使內(nèi)存數(shù)據(jù)扔掉磁介質(zhì)傷害或消磁會(huì)使數(shù)據(jù)扔掉作用存放計(jì)算機(jī)系統(tǒng)運(yùn)行時(shí)期正在執(zhí)行的各存放系統(tǒng)程序、各樣應(yīng)用程序和數(shù)據(jù)文件種程序和數(shù)據(jù)等當(dāng)前不參加運(yùn)行的大量信息Q007什么叫儲(chǔ)藏單元的“位”和“字節(jié)”?(內(nèi)存)(字節(jié))(位)A007“位”(bit):是最小的電子線路單元,只能保留一位二進(jìn)制數(shù)即一個(gè)0或一個(gè)1。因此一個(gè)“位”單元能夠保留的最大的十

5、進(jìn)制數(shù)是1?!白止?jié)”(byte):是由若干個(gè)“位”組成的邏輯單元。微機(jī)中,1字節(jié)8位。字節(jié)是最基本的數(shù)據(jù)儲(chǔ)藏單元,即數(shù)據(jù)在內(nèi)存中的儲(chǔ)藏是以“字節(jié)”為基本單位的。任何數(shù)據(jù)總是據(jù)有整數(shù)個(gè)“字節(jié)”單元。Q008什么叫儲(chǔ)藏單元的地址和內(nèi)容?(內(nèi)存)A008儲(chǔ)藏器從第一個(gè)字節(jié)開始到最后一個(gè)字節(jié)為止,每一個(gè)字節(jié)單元在了邏輯上依次有一個(gè)“編號(hào)”,這個(gè)編號(hào)就叫內(nèi)存單元的地址。而有這個(gè)地址所指向的內(nèi)存單元中存放的數(shù)據(jù)就叫該內(nèi)存單元的內(nèi)容。Q009計(jì)算機(jī)是怎樣在內(nèi)存單元中找到需要的數(shù)據(jù)的?(內(nèi)存)A009計(jì)算機(jī)總是第一找到所需數(shù)據(jù)所在字節(jié)單元的地址(編號(hào)),再到該地址所指向的內(nèi)存單元去讀取內(nèi)存單元的內(nèi)容(數(shù)據(jù)的值

6、)。Q010什么是“機(jī)器語言”?(語言)A010計(jì)算機(jī)能直接執(zhí)行的用于表示機(jī)器指令的二進(jìn)制數(shù)字代碼稱為“機(jī)器語言”,也就是機(jī)器指令會(huì)集。典型的機(jī)器語言程序以下:101011110011011101110110等等幾百個(gè)指令很顯然,這樣的語言寫的程序不易記憶和理解,使用、更正和保護(hù)都很費(fèi)時(shí)費(fèi)力,而且不易實(shí)行。Q011什么是“匯編語言”?(語言)A011使用一些符號(hào)來代表指令、存放器、儲(chǔ)藏單元等機(jī)器指令中的要素,爾后用這些符號(hào)來寫程序。使用這些助記符代碼的語言,叫做“匯編語言”。典型的匯編語言源程序以下:MOVA,47翻譯此后就是10101111ADDA,B00110111HALT01110110

7、等等幾百個(gè)指令優(yōu)點(diǎn):比機(jī)器語言易理解、記憶和使用,速度與機(jī)器語言相仿。大量用于實(shí)時(shí)控制。不能夠獨(dú)立于機(jī)器。匯編語言源程序必定經(jīng)過“匯編程序”的匯編后才能執(zhí)行。Q012什么是“高級(jí)語言”?(語言)A012使用與人類的自然語言和數(shù)學(xué)語言周邊的符號(hào)和運(yùn)算符組成的語言,叫做“高級(jí)語言”。典型的C語言源程序以下:voidmain()inta=1,b=2,c;c=a+b;printf(c=%dn,c);優(yōu)點(diǎn):獨(dú)立于機(jī)器,通用性和可移植性強(qiáng);簡(jiǎn)單理解、記憶和學(xué)習(xí),使用方便,源程序較短。缺點(diǎn):不能夠夠直接執(zhí)行,源程序必定經(jīng)過“編譯程序”的編譯或“解說程序”的解說后形成目標(biāo)程序才行。執(zhí)行速度慢,系統(tǒng)開銷大。Q0

8、13計(jì)算機(jī)中表示數(shù)據(jù)的基根源則是什么?(數(shù)據(jù))A013計(jì)算機(jī)中表示數(shù)據(jù)的基根源則是:一個(gè)數(shù)據(jù)總要據(jù)有必然數(shù)量的字節(jié)單元(整數(shù)個(gè)字節(jié)、有限個(gè)字節(jié))。不一樣種類的數(shù)據(jù)據(jù)有不一樣數(shù)量的字節(jié)單元(比方,PC機(jī)DOS環(huán)境下一個(gè)整數(shù)占2個(gè)字節(jié),一個(gè)實(shí)數(shù)占4個(gè)字節(jié))。全部數(shù)據(jù)都是以二進(jìn)制數(shù)的補(bǔ)碼形式表示的。當(dāng)要表示一個(gè)數(shù)據(jù)的正負(fù)號(hào)時(shí),總是用該數(shù)據(jù)所占字節(jié)單元的全部位中最高一位表示數(shù)的符號(hào)(0表示正,1表示負(fù))。Q014什么叫“定點(diǎn)數(shù)”和“浮點(diǎn)數(shù)”?(數(shù)據(jù))(定點(diǎn)數(shù))(浮點(diǎn)數(shù))A014在計(jì)算機(jī)中,小數(shù)點(diǎn)地址固定的數(shù)被稱為定點(diǎn)數(shù)。定點(diǎn)數(shù)有定點(diǎn)整數(shù)和定點(diǎn)小數(shù)兩種。定點(diǎn)整數(shù):小數(shù)點(diǎn)默認(rèn)為在一個(gè)二進(jìn)制數(shù)最低位的后邊。

9、以以下圖:Ns1010101符號(hào)位數(shù)值部分小數(shù)點(diǎn)定點(diǎn)小數(shù):小數(shù)點(diǎn)默認(rèn)為在一個(gè)二進(jìn)制數(shù)最高位(符號(hào)位)的后邊。Ns1010101符號(hào)位小數(shù)點(diǎn)數(shù)值部分在計(jì)算機(jī)中,既有整數(shù)部分又有小數(shù)部分的數(shù)被稱為浮點(diǎn)數(shù)。第一章C語言基礎(chǔ)知識(shí)Q015什么是“C”?(C)A015在現(xiàn)代社會(huì)中,組織辦理信息的能力是成功的重點(diǎn)。設(shè)計(jì)計(jì)算機(jī)的目的就是為了快速而有效地辦理大量信息。但是除非有人告訴計(jì)算機(jī)該干什么和怎么干,否則它什么事情也不能夠做。這就是計(jì)算機(jī)編程語言出生的原因,而C語言就屬于一種計(jì)算機(jī)編程語言。它是一種能夠讓軟件工程師與計(jì)算機(jī)之間進(jìn)行有效對(duì)話的介于匯編語言和高級(jí)語言之間的編程語言。C語言特別靈便而且適應(yīng)性強(qiáng)。

10、自1970年出生之日起,它素來被用來開發(fā)各樣各樣的程序,包括用于微控制器的固化軟件、操作系統(tǒng)、應(yīng)用程序和圖形程序。Q016什么是“C+”?(C+)A016C+是C語言改進(jìn)此后的產(chǎn)物。這種語言最初被稱為“帶類的C”(Cwithclass)。它增加了一些特點(diǎn),其中最重要的特點(diǎn)就是引入了“類”?!邦悺笔且勒彰嫦?qū)ο蟮某绦蛟O(shè)計(jì)(OOD)思想來創(chuàng)辦的,它能使代碼便于重復(fù)使用。C+語言完滿兼容C語言,學(xué)好C有助于C+的學(xué)習(xí)。Q017怎樣學(xué)習(xí)“C”?(C)A017學(xué)習(xí)和掌握一門編程語言的最后路子是用這門語言編寫程序。事實(shí)上,在編寫程序從前和此后也有很多很重要的工作要做??偟膩碚f,依照這樣一個(gè)過程是必有收獲的

11、,即:讀別人寫的程序自己著手寫程序調(diào)試這個(gè)程序直到成功。這就仿佛下圍棋:打棋譜親自下棋復(fù)盤。Q018什么是計(jì)算機(jī)程序?(程序)A018計(jì)算機(jī)程序主要由兩部分組成:數(shù)據(jù)與指令。在一個(gè)計(jì)算機(jī)程序中間,數(shù)據(jù)和指令總是在滿足語法規(guī)則的前提下,由程序員依照某種組織形式安排好它們,從而來描述對(duì)某個(gè)詳盡問題的已經(jīng)起初擬定出來的解決方法和步驟。程序員使用數(shù)據(jù)來描述他要操作的信息,使用指令來描述操作的方法、過程和步驟。稱之為“翻譯程序”的程序,把“源程序”翻譯成二進(jìn)制形式的“目標(biāo)程序”這些“翻譯程序”中間的一種。C語言就是一種“編譯”語言,即是說,用必定經(jīng)過“C編譯器”的編譯才能變成二進(jìn)制的代碼。Q019什么叫

12、“源程序”?(程序)A019源程序特指用匯編語言或高級(jí)語言編寫出來的,計(jì)算機(jī)不能夠夠直接鑒識(shí)并執(zhí)行的數(shù)據(jù)和代碼的會(huì)集。源程序必定經(jīng)過某種“翻譯”過程才能變成計(jì)算機(jī)能夠識(shí)其他指令。這個(gè)“翻譯”過程關(guān)于匯編語言源程序叫做“匯編”,關(guān)于高級(jí)語言源程序有“編譯”或“解說”兩種翻譯方法。C語言源程序采用是“編譯”的方法。Q020什么是“編譯器”?(編譯器)A020從根本上說,計(jì)算機(jī)不能夠直接鑒識(shí)和執(zhí)行有高級(jí)語言編寫的“源程序”,因此必定使用一種。而“編譯器”就是C語言寫出的源程序Q021我怎么能獲取C的“編譯器”?(編譯器)A021世界上有很多廠商和集體開發(fā)了很多的“C編譯器”,有商業(yè)版本的,也有完滿免

13、費(fèi)的。比較有名的C編譯器有MicrosoftC,TurboC,BorlandC,WatcomC,GNUC等等。商業(yè)版本的編譯器常常性能更好,所附加的函數(shù)庫(kù)也更豐富,但是需要花銷購(gòu)買。因此,若是主要目的是為了學(xué)習(xí)C語言,那么完滿能夠使用免費(fèi)的C編譯器。比方TurboC和GNUC。你能夠在相關(guān)公司的網(wǎng)站上也許很多相關(guān)C語言的個(gè)人網(wǎng)站上下載這些免費(fèi)的編譯器。其他一點(diǎn),由于C+是完滿兼容C的,因此你也能夠使用C+編譯器來編譯你的C源程序。同樣,你也能夠在互聯(lián)網(wǎng)上下載到免費(fèi)的C+編譯器,比方Inprise公司(原Borland公司)的C+Builder編譯器。Q022程序的基本構(gòu)造和特點(diǎn)是什么?(C程序

14、)(程序構(gòu)造)A0221.一個(gè)程序是由函數(shù)組成的。語言又被稱作“函數(shù)式語言”。函數(shù)可能是系統(tǒng)庫(kù)函數(shù)或用戶自定義函數(shù)。使用函數(shù)組成程序能夠簡(jiǎn)單實(shí)現(xiàn)構(gòu)造化程序設(shè)計(jì)方法。一個(gè)程序中必定有一個(gè)main函數(shù),而且只能有一個(gè)。無論主函數(shù)位于程序的哪處,程序都由它開始執(zhí)行。一個(gè)函數(shù)由兩部分組成:函數(shù)原型和函數(shù)體。函數(shù)原型確定函數(shù)名,形參數(shù)量和種類,函數(shù)的返回值及其種類;而函數(shù)體包括在一對(duì)中,由若干語句組成以實(shí)現(xiàn)函數(shù)功能。每個(gè)語句必定以分號(hào)結(jié)束。能夠用/*/(塊說明符)在程序中任何地方作說明。說明的內(nèi)容不會(huì)被編譯。程序的書寫格式很自由。Q023什么是“函數(shù)”?(函數(shù))A023函數(shù)是依照必然語法規(guī)則被封裝好了的

15、,能夠達(dá)成特定功能的一段代碼模塊。使用函數(shù)組成程序能夠簡(jiǎn)單實(shí)現(xiàn)構(gòu)造化程序設(shè)計(jì)方法。Q024什么是“系統(tǒng)庫(kù)函數(shù)”和“用戶自定義函數(shù)”?(函數(shù))A024系統(tǒng)庫(kù)函數(shù)是指隨同某個(gè)版本的C編譯器一起宣布的已經(jīng)實(shí)現(xiàn)了的函數(shù)會(huì)集。用戶常常不能夠獲取這些函數(shù)的源代碼,但是能夠在自己的程序里調(diào)用這些函數(shù)從而實(shí)現(xiàn)相應(yīng)的功能。不一樣公司、不一樣版本的C編譯器所附加的庫(kù)函數(shù)不盡同樣,但是全部的C編譯器都會(huì)附加一個(gè)被稱之為“標(biāo)準(zhǔn)庫(kù)函數(shù)”的函數(shù)庫(kù)。因此,在使用標(biāo)準(zhǔn)庫(kù)函數(shù)編程時(shí),能夠不考慮編譯器的版本問題,由于全部的編譯器都支持它們。其他也有一些獨(dú)立軟件供應(yīng)商會(huì)供應(yīng)第三方的需要單獨(dú)購(gòu)買的擁有特定功能的函數(shù)庫(kù)。而用戶自定義函

16、數(shù)是指用程序員自己編寫的達(dá)成所需功能的函數(shù)。比方,每個(gè)C程序中都包括的main函數(shù)就是一個(gè)用戶自定義函數(shù)。Q025C語言有哪些“系統(tǒng)庫(kù)函數(shù)”?(函數(shù))A025每個(gè)版本的編譯器都會(huì)發(fā)送對(duì)所附加的庫(kù)函數(shù)的分類列表和字母序次列表以及詳盡說明手冊(cè)。其他,也能夠查找編譯器所附加的在線幫助系統(tǒng)來追求信息。還可以夠購(gòu)買相關(guān)專家編寫的函數(shù)使用手冊(cè)。若是是標(biāo)準(zhǔn)庫(kù)函數(shù)的話,你能夠在互聯(lián)網(wǎng)上找到它們的使用說明。Q026什么是main函數(shù)?(main函數(shù))(主函數(shù))A026在C程序中間,main函數(shù)是一個(gè)擁有特命名稱和特別地位的用戶自定義函數(shù)。無論主函數(shù)位于源程序的哪處,程序都從它的第一個(gè)語句開始執(zhí)行,到執(zhí)行完最后一

17、個(gè)語句結(jié)束。在main函數(shù)的函數(shù)體中,經(jīng)過調(diào)用系統(tǒng)庫(kù)函數(shù)或其他的用戶自定義函數(shù)來達(dá)成整體的功能。而其他的自定義函數(shù)是不能夠調(diào)用main函數(shù)的。Q027C程序中,怎樣定義一個(gè)函數(shù)?(函數(shù))A027定義一個(gè)函數(shù)包括定義函數(shù)頭和定義函數(shù)體。格式以下:函數(shù)值種類函數(shù)名(函數(shù)形參列表)函數(shù)體函數(shù)頭指示了該函數(shù)與其他函數(shù)不一樣的唯一的函數(shù)名,執(zhí)行該函數(shù)時(shí)所必定供應(yīng)的輸入信息,以及函數(shù)執(zhí)行結(jié)束后獲取的值的種類。函數(shù)體包括若干個(gè)語句來詳盡實(shí)現(xiàn)該函數(shù)的功能。Q028C程序中,函數(shù)體為什么要包括在大括號(hào)而不是其他的括號(hào)中間?(函數(shù))A028函數(shù)體總要包括在一對(duì)特定的符號(hào)中以形成封裝的模塊。其他的高級(jí)語言可能使用的

18、是其他的符號(hào),而C語言中就是使用的大括號(hào)。這是規(guī)定。Q029什么叫“語句”和“語句結(jié)束符”?(語句)(語句結(jié)束符)A029一個(gè)語句就是一條命令。一個(gè)語句在編譯后會(huì)變成很多條機(jī)器指令,告訴計(jì)算機(jī)做什么事情。語句能夠很簡(jiǎn)單,也能夠很復(fù)雜。為了劃分程序中的若干個(gè)語句,每種語言都必定指定一個(gè)符號(hào)來標(biāo)示語句的結(jié)束,這個(gè)符號(hào)就叫語句結(jié)束符。C語言中的語句結(jié)束符是分號(hào)。又是規(guī)定。Q030什么叫“說明”?(說明)A030說明是指在源程序中,對(duì)代碼自己以及代碼所設(shè)計(jì)的相關(guān)信息進(jìn)行說明和解說的字符序列。為了差異源程序中的說明內(nèi)容和正式的內(nèi)容,必定用某種界定符號(hào)包圍說明。Q031在編寫計(jì)算機(jī)源程序中,為什么要增加“

19、說明”?(說明)A031現(xiàn)代計(jì)算機(jī)的運(yùn)行速度已經(jīng)很快,因此對(duì)計(jì)算機(jī)程序的要求從原來的程序大小、算法效率、編程的技巧性等等已經(jīng)轉(zhuǎn)變成程序的可讀性和可保護(hù)性。而增加合適的說明是保證和增強(qiáng)程序可讀性和可保護(hù)性的最重要的手段之一。對(duì)大型的程序特別這樣。對(duì)沒有說明或說明不科學(xué)的程序進(jìn)行保護(hù)和二次開發(fā),其代價(jià)和成本是無法估計(jì)阿。因此,對(duì)程序員來講,一開始就養(yǎng)成給程序?qū)懻f明的習(xí)慣是至關(guān)重要的,這已經(jīng)成為議論一個(gè)程序員水平高低的重要標(biāo)準(zhǔn)。Q032在C程序中,怎樣增加“說明”?(說明)A032C語言中,用成對(duì)出現(xiàn)的/*/來告訴編譯器,包括在/*/之間的全部?jī)?nèi)容都是說明。編譯器在對(duì)源程序進(jìn)行編譯時(shí),將忽略和跳過這

20、些內(nèi)容。Q033關(guān)于C程序的書寫格式有何規(guī)定?(格式)A033C程序的書寫格式是很自由的。你只要不把一個(gè)完滿的符號(hào)或一個(gè)常量翻開,其他的都能夠任意安排。Q034在編寫計(jì)算機(jī)源程序時(shí),為什么要依照必然的書寫規(guī)范?(格式)A034原因很簡(jiǎn)單也很重要:保證和增強(qiáng)程序的可讀性和可保護(hù)性。一幅漂亮的書法會(huì)令人神清氣爽,可一幅涂鴉則會(huì)令人雅興大減。Q035關(guān)于優(yōu)異的書寫規(guī)范和編碼習(xí)慣,有何建議?(格式)A035可是建議,其實(shí)不是規(guī)定,但事實(shí)上已經(jīng)約定俗成:合適的說明會(huì)大大增加程序的可讀性和可保護(hù)性一行盡量只寫一個(gè)語句使用有規(guī)則的縮進(jìn)式代碼排列方式在需要的地方加上一些空行起有意義和易于分辨的符號(hào)名Q036C

21、源程序是怎樣運(yùn)行的?(C程序)(運(yùn)行)A036上機(jī)輸入和編譯源程序編寫源程序文件*.cYesNo目標(biāo)程序有錯(cuò)?文件*.objNo可執(zhí)行程序鏈接文件*.exe調(diào)試執(zhí)行NoYes結(jié)果正確?結(jié)束Q037什么是IDE?(IDE)(集成開發(fā)環(huán)境)A037是集成開發(fā)環(huán)境IntegratedDevelopEnvironment的縮寫。IDE包括了編寫器Editor、編譯器Compiler、連接程序Linker、項(xiàng)目管理程序ProjectManager、調(diào)試器Debugger、在線幫助系統(tǒng)OnlineHelpSystem和其他一些輔助開發(fā)工具OtherTools。用戶的全部開發(fā)工作都能夠在一個(gè)IDE中達(dá)成。Q

22、038怎么學(xué)習(xí)使用IDE?(IDE)(集成開發(fā)環(huán)境)A038最好的方法就是查察IDE自帶的在線幫助系統(tǒng)。絕大多數(shù)的IDE都帶有詳盡的幫助系統(tǒng),對(duì)IDE自己的組成、功能和使用有詳盡的說明。除此之外,幫助系統(tǒng)中還包括對(duì)全部庫(kù)函數(shù)和輔助工具的使用說明。因此,必然要學(xué)會(huì)看幫助。自然,這對(duì)你的計(jì)算機(jī)英語水平有較高要求。Q039什么叫“預(yù)編譯”?(預(yù)編譯)A039在對(duì)源程序進(jìn)行正式編譯從前所做的一些辦理工作叫做預(yù)編譯。最常有的預(yù)編譯工作就是用include包括文件和用define進(jìn)行符號(hào)代替。C源程序中,全部的預(yù)編譯命令都由#號(hào)開頭。使用預(yù)編譯命令,能夠供應(yīng)C語言自己不包括的一些擴(kuò)大功能。Q040什么叫“

23、編譯”?(編譯)A040將高級(jí)語言源程序翻譯成二進(jìn)制代碼的目標(biāo)程序的一種方法和過程。達(dá)成這個(gè)過程的是一個(gè)特地的程序,叫“編譯器”。Q041什么叫“連接”?(連接)A041將編譯后的二進(jìn)制目標(biāo)程序和相關(guān)函數(shù)庫(kù)進(jìn)行連接并打包成可執(zhí)行程序的過程叫做連接。達(dá)成這個(gè)過程的是一個(gè)特地的程序,叫“連接器”。Q042什么叫“調(diào)試”?(調(diào)試)A042一個(gè)程序永遠(yuǎn)不能能一次就完滿寫正確,總會(huì)存在這樣那樣的錯(cuò)誤。有些錯(cuò)誤屬于簡(jiǎn)單的語法錯(cuò)誤,有些錯(cuò)誤屬于復(fù)雜的邏輯錯(cuò)誤,有些錯(cuò)誤直到程序運(yùn)行時(shí)才有可能發(fā)現(xiàn)。檢查并消除全部這些錯(cuò)誤直到程序完滿正確的過程就叫調(diào)試。編寫一個(gè)大型的程序,常常有一半的時(shí)間用在了調(diào)試工作上,因此,

24、學(xué)習(xí)調(diào)試的方法,積累調(diào)試的經(jīng)驗(yàn)時(shí)一個(gè)程序員必定要經(jīng)歷的過程。Q043用C語言只能寫在DOS下運(yùn)行的程序嗎?(C)A043自然不是。無論是DOS和WINDOWS,還是Unix和Linux,也許其他的操作系統(tǒng),你所需要的就是屬于那個(gè)操作系統(tǒng)的C或C+“編譯器”,你就可以用C語言編寫在那個(gè)操作系統(tǒng)下運(yùn)行的程序。自然,不一樣的操作系統(tǒng)下,由于程序運(yùn)行的原理不同樣,因此編程的原搭理有所不一樣。Q044除了C程序設(shè)計(jì)的書籍外,還有更多學(xué)習(xí)C語言的資源嗎?(C)(學(xué)習(xí))A044有,那就是INTERNET。你只要在某個(gè)找尋引擎中輸入諸如“C語言”、“C教程”、“C源碼”之類的重點(diǎn)字,就會(huì)找尋到不計(jì)其數(shù)的網(wǎng)站和

25、網(wǎng)頁。外國(guó)關(guān)于C語言教程和C語言編程的網(wǎng)站就更多了。學(xué)會(huì)使用并用好這些資源,你很快就會(huì)變成一個(gè)C語言好手。第二章算法基礎(chǔ)知識(shí)Q045什么叫“算法”?(算法)A045算法,簡(jiǎn)單的說就是為解決一個(gè)問題而采用的方法和步驟。一個(gè)實(shí)責(zé)問題若是需要經(jīng)過編寫計(jì)算機(jī)程序來解決的話,就必定第一擬定出解決該問題的算法。關(guān)于同一個(gè)問題可能存在著不一樣的解決方法和步驟,也就是說有不一樣的算法。因此確定算法時(shí),在保證正確有效的前提下,應(yīng)該盡量提高算法的效率和質(zhì)量。其他,我們更關(guān)心的是特地針對(duì)計(jì)算機(jī)編程而擬定的算法,而不是一般的一般意義上的算法。Q046可否舉例說明什么是“計(jì)算機(jī)算法”?(算法)A046比方編程序求123

26、4510。關(guān)于這樣一個(gè)詳盡問題,我們能夠獲取不僅一個(gè)的算法。算法:直接寫一個(gè)乘法表達(dá)式來計(jì)算,即S1:prod=12345678910這個(gè)算法的結(jié)果誠(chéng)然是正確的,但是這樣的解決方法和步驟顯然不是有效合理的。由于若是問題變成了求12345100,也許變成了13579101,那么這種方法就不適用了。算法:利用編程語言中“變量”的看法,每次計(jì)算一個(gè)乘法并把結(jié)果保留在該變量中,下次再用這個(gè)變量去乘以下一個(gè)數(shù),即S1:prod=1S2:prod=prod2S3:prod=prod3S4:prod=prod4S5:prod=prod5S10:prod=prod10這個(gè)算法的結(jié)果也是正確的,比算法簡(jiǎn)潔一些,

27、但是依舊不是有效合理的,同樣的問題就在于算法不通用。算法:利用“變量”的看法的同時(shí),再利用“循環(huán)”的解決方法,能夠?qū)崿F(xiàn)真切的計(jì)算機(jī)算法S1:prod=1S2:n=1S3:prod=prodnS4:n=n+1S5:若是n10,則返回到S3;否則,結(jié)束這個(gè)算法擁有通用性、靈便性。由于只若是同樣的近似的問題,那么這個(gè)算法是不需要作大的改動(dòng)的。而且全部計(jì)算機(jī)語言都有實(shí)現(xiàn)“循環(huán)”的控制語句,因此這個(gè)算法就是我們所說的有效的正確的計(jì)算機(jī)算法。Q047一個(gè)計(jì)算機(jī)算法應(yīng)該有什么樣的特點(diǎn)?(算法)A047一個(gè)算法應(yīng)擁有以下特點(diǎn):有窮性:一個(gè)算法的步驟必定是合理有限的確定性:算法中的每一個(gè)步驟應(yīng)該是確定的,而不應(yīng)

28、該是含糊的、模棱兩可的有零個(gè)或多個(gè)輸入:執(zhí)行算法是需從外界獲取必要的信息有一個(gè)或多個(gè)輸出:執(zhí)行一個(gè)算法后應(yīng)該有必要的結(jié)果有效性:算法中的每一個(gè)步驟都必定是能有效成立和有效執(zhí)行,并獲取確定結(jié)果的。Q048怎樣表示一個(gè)計(jì)算機(jī)算法?(算法)(算法的表示)A048一個(gè)算法擬定好后,總要經(jīng)過某種方式把它表示出來,以便自己和其別人閱讀理解。平時(shí),能夠經(jīng)過“自然語言”、“流程圖”、“偽代碼”、“計(jì)算機(jī)語言”等方法來描述一個(gè)計(jì)算機(jī)算法。自然語言就是人們平時(shí)使用的語言,能夠是英語、漢語或其他語言。用自然語言表示算法平時(shí)易懂,但文字冗長(zhǎng),含義不太嚴(yán)格,簡(jiǎn)單出現(xiàn)“歧義性”。其他,用自然語言表示包括分支和循環(huán)的算法也

29、不方便。因此,最常有的計(jì)算機(jī)算法表示方法就是“流程圖”。用“計(jì)算機(jī)語言”來描述算法實(shí)質(zhì)上就是我們平時(shí)所說的編程序,即程序?qū)嵸|(zhì)上就是對(duì)一個(gè)算法的描述。“偽代碼”是用介于自然語言和計(jì)算機(jī)語言之間的文字和符號(hào)來描述算法。它仿佛一篇文章。自上而下地寫下來。每一行(或幾行)表示一個(gè)基本操作。它不用圖形符號(hào)。因此書寫方便。格式緊湊,也比較好懂,便于向計(jì)算機(jī)語言算法(即程序)過渡。Q049怎樣用流程圖表示一個(gè)計(jì)算機(jī)算法?(算法的表示)(流程圖)A049流程圖是用一些起初規(guī)定好的擁有某種含義的圖框和流程線來表示算法中的步驟和各樣操作。這是用傳統(tǒng)流程圖表示的求1234510的算法:開始用流程圖表示算法直觀形象,

30、邏輯清楚,但是占用篇幅很多,特別當(dāng)算法比較復(fù)雜時(shí),畫流程圖既費(fèi)時(shí)又不方便,而且當(dāng)算法不斷改動(dòng)時(shí),流程圖的更正也特別麻煩,因此流程圖宜用于表示一個(gè)達(dá)成的最后算法。流程圖有很多各種類,最常有的是傳統(tǒng)流程圖和NS流程圖。傳統(tǒng)流程圖中由于對(duì)流程線的使用沒有嚴(yán)格限制,全部很簡(jiǎn)單造成流程圖的凌亂和無規(guī)律。Q050什么是基本程序構(gòu)造?(程序構(gòu)造)p=1n=1p=p*nn=n+1Yesn5No結(jié)束A050為了提高算法的質(zhì)量,使算法設(shè)計(jì)和閱讀方便,必定限制傳統(tǒng)流程圖中間流程線的濫用,即不一樣意無規(guī)律的使流程轉(zhuǎn)向,只能序次的進(jìn)行下去。但是,一個(gè)算法中間難免會(huì)包括一些分支和重復(fù)而不能能全部由一個(gè)一個(gè)步驟序次向下組成

31、。為認(rèn)識(shí)決這個(gè)問題,人們規(guī)定出幾種基本程序構(gòu)造,爾后由這些基本程序構(gòu)造按必然規(guī)律組成一個(gè)算法構(gòu)造,整個(gè)算法的描述則是由上而下的將各個(gè)基本構(gòu)造序次排列起來而成的?;境绦驑?gòu)造有三種,分別是序次構(gòu)造、分支構(gòu)造和重復(fù)構(gòu)造。流程圖以下。用這三種基本構(gòu)造就可以表示任何復(fù)雜的算法。序次構(gòu)造選擇構(gòu)造循環(huán)構(gòu)造aaaAYes?NoABAB?YesbNobb語言程序設(shè)計(jì)基本知識(shí)點(diǎn)解答(二)第三章數(shù)據(jù)種類、運(yùn)算符和表達(dá)式Q051什么是“數(shù)據(jù)種類”?(數(shù)據(jù)種類)A051數(shù)據(jù)種類就是指數(shù)據(jù)在計(jì)算機(jī)中保留和運(yùn)算時(shí)的組織和形式。實(shí)責(zé)問題中間原來就有若干種不一樣種類的數(shù)據(jù),因此用來解決這些實(shí)責(zé)問題的計(jì)算機(jī)編程語言中自然應(yīng)該有

32、對(duì)應(yīng)的數(shù)據(jù)種類來描述這些數(shù)據(jù)。比方最基本的數(shù)據(jù)種類就是整數(shù)、實(shí)數(shù),其他還有非數(shù)值型的數(shù)據(jù)種類,如字符串。一個(gè)計(jì)算機(jī)程序中用到的全部數(shù)據(jù)都必定擁有某各種類。Q052什么是“運(yùn)算符”?(運(yùn)算符)A052運(yùn)算符是指一些擁有規(guī)定運(yùn)算功能的特定的符號(hào)。如+、-、*、/、%等等。這里的運(yùn)算功能可能是我們比較熟悉的運(yùn)算比方算術(shù)運(yùn)算(加減乘除)、邏輯運(yùn)算(與或非)或比較運(yùn)算(大于小于等于),也可能是其他一些在計(jì)算機(jī)語言中間特有的運(yùn)算如加1減1運(yùn)算、位運(yùn)算等等。C語言共有34種運(yùn)算符。Q053什么是“表達(dá)式”?(表達(dá)式)(優(yōu)先級(jí))(結(jié)合性)A053表達(dá)式是依照運(yùn)算符的性質(zhì),用運(yùn)算符把數(shù)據(jù)連接起來以達(dá)到數(shù)據(jù)運(yùn)算目

33、的而組成的式子。寫表達(dá)式的最后目的是要進(jìn)行計(jì)算它求出它的值。求解表達(dá)式的過程是由計(jì)算機(jī)達(dá)成的,因此,要想獲取正確的結(jié)果,就必定寫出正確的表達(dá)式。而一個(gè)表達(dá)式中常常包括多個(gè)運(yùn)算符,因此必定熟悉每一種運(yùn)算符的性質(zhì)(優(yōu)先級(jí)別和結(jié)合性),才能寫出有正確求解結(jié)果的表達(dá)式。Q054C語言有哪些數(shù)據(jù)種類?(數(shù)據(jù)種類)A054C語言中的因此數(shù)據(jù)種類以以下圖所示:整型單精度型實(shí)型基本種類雙精度型字符型列舉種類的數(shù)組種類數(shù)據(jù)種類構(gòu)造種類構(gòu)造體種類共用體種類指針種類空種類Q055什么是“常量”?(常量)A055程序運(yùn)行時(shí)期,值不能夠被改變的量稱為常量。若是試圖去改變常量的值,就必然會(huì)出錯(cuò)。在C語言中,最少有兩種方法

34、表示一個(gè)常量,即“直接常量”和“符號(hào)常量”。Q056什么是“直接常量”?(常量)A056直接常量也叫字面常量,就是一看就知道的、直接擁有詳盡的固定的值的量。比方1、2、3;0.1、10.0;a,1;“hello”等。常量也是有種類的。前面所列舉的常量就分別是整型、實(shí)型、字符型和字符串型的常量。Q057什么是“符號(hào)常量”?(常量)(符號(hào)常量)A057直接常量的好處是一看就知道的它的值,但是缺點(diǎn)是讀程序的人無法方便的知道這個(gè)值到底代表什么含義,即這個(gè)值傳達(dá)的信息是不完滿不明確的。這樣的數(shù)常常被稱之為“幻數(shù)(MagicNumber)”。若是我們能夠給這些數(shù)值起一個(gè)有意義有詳盡含義的名字就可以解決這個(gè)

35、問題了。符號(hào)常量的目的就在此。它是用一些符號(hào)來代替程序中間出現(xiàn)的常量。從而使得程序的可讀性和可保護(hù)性大大增強(qiáng)。Q058C語言中,怎樣實(shí)現(xiàn)“符號(hào)常量”?(常量)(符號(hào)常量)A058C語言中,能夠使用#define預(yù)辦理命令來實(shí)現(xiàn)符號(hào)常量。比以下面的程序:#definePI3.14159intmain()floatr,c,s,v;r=2;printf(PI=%fn,PI);c=2*PI*r;printf(周長(zhǎng)=%fn,c);s=PI*r*r;printf(面積=%fn,s);v=4*PI*r*r*r/3;printf(體積=%fn,v);return0;第一步,程序第一行用#define預(yù)辦理命令

36、定義了一個(gè)符號(hào)常量,其名字是PI,代表的常量值是3.14159。第二步,在本程序以下的代碼中,凡是原來直接出現(xiàn)3.14159的地方,全部換成符號(hào)PI。這樣更正后程序運(yùn)行的結(jié)果和直接使用字面常量是同樣的。Q059用#define實(shí)現(xiàn)符號(hào)常量的原理是什么?(符號(hào)常量)(define)A059實(shí)際上是一個(gè)在預(yù)辦理階段的代替過程。在前述問題的程序中,第一行的含義就是定義了一個(gè)符號(hào)名字叫做PI,它代替的一串字符是3.14159。爾后,在對(duì)這個(gè)程序進(jìn)行編譯時(shí),編譯器第一啟動(dòng)預(yù)編譯器(preprocessor)對(duì)源程序進(jìn)行預(yù)編譯辦理。當(dāng)預(yù)編譯器發(fā)現(xiàn)程序中有諸如#define這樣的預(yù)編譯命令時(shí),就對(duì)它們進(jìn)行相

37、應(yīng)命令指定的辦理。比方,關(guān)于#define預(yù)編譯命令,預(yù)編譯器就掃描整個(gè)源程序代碼,將其中全部出現(xiàn)的由#define定義的符號(hào)全部代替成在#define命令行定義的符號(hào)后出現(xiàn)的字符串。因此,上述程序在預(yù)編譯辦理后,就變成了intmain()floatr,c,s,v;r=2;printf(PI=%fn,3.14159);c=2*3.14159*r;printf(周長(zhǎng)=%fn,c);s=3.14159*r*r;printf(面積=%fn,s);v=4*3.14159*r*r*r/3;printf(體積=%fn,v);return0;因此就仿佛直接使用字面常量同樣了。Q060使用“符號(hào)常量”的好處是

38、什么?(符號(hào)常量)A060兩個(gè)主要的好處:(1)從所起的符號(hào)名字中能夠清楚地看出該常量的含義,從而做到“見名知意”,防備“幻數(shù)”。比方上述程序中閱讀此程序的人很簡(jiǎn)單的由符號(hào)名PI知道這個(gè)常量的含義就是圓周率。自然要想達(dá)到這樣的收效,前提是所起符號(hào)名稱必定和實(shí)質(zhì)含義相吻合。由于符號(hào)是能夠任意命名的,你完全能夠用這樣的#define命令#definePRICE3.14159來定義一個(gè)符號(hào)PRICE代替3.14159,但是這樣作就失去符號(hào)常量的存在意義了。在需要更正常量的值時(shí)能夠做到“一改全改”,減少工作量。若是一個(gè)常量的值發(fā)生了變化,若是原來是用直接常量實(shí)現(xiàn)的,那么很顯然程序的更正工作量就很大,特

39、別是當(dāng)這個(gè)常量出現(xiàn)次數(shù)很多的時(shí)候。但是,若是用符號(hào)常量來實(shí)現(xiàn)的話,那么只要要改動(dòng)一個(gè)地方,就是#define命令這個(gè)地方,而程序其他部分完滿不需改動(dòng),由于在進(jìn)行預(yù)編譯時(shí)新的常量值會(huì)被正確的代替進(jìn)去。Q061為什么在Q058的程序中,第5行的第一個(gè)PI沒有被代替成3.14159?(符號(hào)常量)A061在預(yù)編譯器對(duì)源程序代碼中間出現(xiàn)的符號(hào)常量進(jìn)行代替時(shí),其實(shí)不是凡是發(fā)現(xiàn)有同樣的符號(hào)名就無條件代替。最少有兩種情況下,這個(gè)代替不會(huì)發(fā)生:第一:這個(gè)符號(hào)出現(xiàn)在雙引號(hào)中間。雙引號(hào)括起來的叫做字符串常量,要的就是其中包括的原義字符,因此不會(huì)被代替;第二:這個(gè)符號(hào)不是單獨(dú)且完滿出現(xiàn)的,而是另一個(gè)符號(hào)的一部分。比方

40、,定義了符號(hào)常量PI,那么代碼中倘如有另一個(gè)符號(hào)叫API,那么代替不會(huì)發(fā)生,即不會(huì)變成A3.14159。Q062什么是“預(yù)編譯”?(預(yù)編譯)A062預(yù)編譯也叫編譯預(yù)辦理:是指在對(duì)源程序進(jìn)行正式編譯從前所作的一些辦理。這些辦理是由預(yù)辦理命令指定的。源程序經(jīng)過預(yù)辦理后,再由編譯程序進(jìn)行正式的編譯。預(yù)辦理命令誠(chéng)然用在C程序中,但它其實(shí)不是語言自己的組成部分,不能夠用C編譯器直接對(duì)它進(jìn)行編譯,必定由預(yù)編譯器來辦理。預(yù)辦理命令都是以符號(hào)“#”開頭的。Q063什么是“變量”?(變量)A063程序運(yùn)行時(shí)期,值能夠被改變的量稱為變量。C程序贊同把數(shù)值存放在變量中,每個(gè)變量都由一個(gè)變量名來表記。每個(gè)變量都必定有

41、一個(gè)變量種類。每個(gè)變量依照它的種類不一樣,在內(nèi)存中據(jù)有必然數(shù)量的字節(jié)單元,該變量的值就存放在這些內(nèi)存單元中。Q064“變量”的實(shí)質(zhì)是什么?(變量)A064變量的實(shí)質(zhì)就是命名的內(nèi)存單元,因此它的值能夠被改變。所謂改變變量的值實(shí)際上是改變變量所占內(nèi)存單元中的內(nèi)容,由于變量名和內(nèi)存單元的地址、變量值和內(nèi)存單元的內(nèi)容是相對(duì)應(yīng)的。以以下圖:變量名prod實(shí)質(zhì)內(nèi)存單元上是一個(gè)符號(hào)地址的地址prod是變量prod的變量值123變量prod所占內(nèi)存單元據(jù)的內(nèi)存單元的內(nèi)容Q065變量的名字可否能夠任意命名?(變量)A065自然不是。任何計(jì)算機(jī)編程語言中,關(guān)于標(biāo)志符號(hào)的命名總是有規(guī)定的。變量名就屬于標(biāo)志符的一種,

42、其他的標(biāo)志符還有符號(hào)常量名、數(shù)組名、函數(shù)名、構(gòu)造種類名等等。C語言中,變量(表記符)的命名規(guī)定是:只能由大小寫字母、下劃線和數(shù)字組成;開頭的第一個(gè)字符只能是大小寫字母或下劃線;大小寫是敏感的;不能夠與C語言中的重點(diǎn)字重復(fù);名字在其作用范圍內(nèi)必定是唯一的;名字的長(zhǎng)度不能夠高出系統(tǒng)的規(guī)定。詳盡的長(zhǎng)度限制隨系統(tǒng)不一樣而不一樣。Q066在A065中提到的“重點(diǎn)字”是什么?(重點(diǎn)字)A066重點(diǎn)字(Keyword),也叫保留字(Reserveword),是計(jì)算機(jī)語言中間擁有起初固定的命名的、能達(dá)成指定功能的符號(hào)。一種編程語言的很大一部分功能就是由重點(diǎn)字來達(dá)成的。C語言一共有32個(gè)重點(diǎn)字。其中,部分是用于

43、定義變量種類的,如int、long、float、char等,部分是用于實(shí)現(xiàn)基本程序構(gòu)造的,如if、switch、while、for等。能夠這么說,重點(diǎn)字運(yùn)算符就等于一門語言的絕大多數(shù)功能。Q067我聽別人說過“好的變量名”,這是指什么?(變量名)A067理論大將,變量命名只要滿足上述規(guī)定,任何名字都是能夠的。但是,在給變量命名時(shí),除了規(guī)定之外,還有一個(gè)優(yōu)異的命名習(xí)慣的問題。即是說,第一要起合法的名字,其次要起好的名字。所謂好的變量名,最主要的要求就是要“見名知意”。別人經(jīng)過變量的名字即可知道這個(gè)變量所保留信息的含義,這有助于增強(qiáng)程序的可讀性。關(guān)于命名習(xí)慣,有以下建議:防備使用沒心義的名字,應(yīng)嚴(yán)

44、格做到“見名知意”;盡量使用代表變量實(shí)質(zhì)含義的英文單詞或縮寫作表記符名;當(dāng)名字包括多個(gè)單詞時(shí),平時(shí)使每個(gè)單詞的首字母大寫;不使用以下劃線開頭的名字,由于這樣的名字平時(shí)是系統(tǒng)內(nèi)部保留的表記符名;在整個(gè)程序中盡量保持一致的命名方式。Q068在編譯程序時(shí),提示有錯(cuò),錯(cuò)誤為“Error:Undefinedsymbol??”,這是什么原因?(變量)(定義變量)A068“Undefinedsymbol”的意思是“為定義的符號(hào)”,就是說程序中間存在著還沒有定義就直接使用的變量。這是由于C語語言法上要求,任何一個(gè)變量在使用從前必定先定義它。所謂定義一個(gè)變量,就是要在該變量被使用從前,見告編譯器該變量的名字、種

45、類和儲(chǔ)藏種類,這樣編譯器才能正確編譯Q069那么,怎樣定義變量?(定義變量)A069變量定義擁有三個(gè)目的:定義變量名;定義變量種類;向程序員描述該變量。變量定義的一般格式是:typename;/*comment*/種類名字;/*說明*/比方:intage;/*theageofstudent*/floatscore;/*thescoreofstudent*/floataverage;/*theaverageofscore*/longnumber;/*thenumberofstudent*/doubledistance;/*betweenearth&moon*/charUserSelection;

46、/*keyuserhit*/在程序運(yùn)行時(shí),系統(tǒng)將依照變量的定義為其分配相應(yīng)大小的內(nèi)存單元。Q070為什么在C語言中,整數(shù)017和17其實(shí)不是同樣的?(整型)A070這是由于在C語言中,17是十進(jìn)制的整數(shù),而017是八進(jìn)制整數(shù),相當(dāng)于十進(jìn)制的15。C語言中關(guān)于同一個(gè)整型常量,能夠有三種不一樣的形式來表示,即分別用十進(jìn)制、八進(jìn)制、十六進(jìn)制來表示同一個(gè)數(shù)。為了劃分不一樣進(jìn)制的整型常量,也為了和其他的標(biāo)志符劃分,C語言中規(guī)定,以數(shù)字“0”開頭的整型常量是八進(jìn)制的,而以“0 x”開頭的整型常量的整型是十六進(jìn)制的。比方十進(jìn)制整數(shù)18,就等價(jià)與八進(jìn)制整數(shù)022,也等價(jià)與十六進(jìn)制整數(shù)0 x12。Q071在C語

47、言中,整型變量是怎樣分類的?(整型)A071在C語言中,整型變量分為兩大類:有符號(hào)整型和無符號(hào)整型。而無論是有符號(hào)還是無符號(hào)整型變量,又都分為基本整型、短整型和長(zhǎng)整型三種。分類情況以下表所示:種類重點(diǎn)字占字節(jié)數(shù)量(TurboC)基本整型signedint2字節(jié)有符號(hào)短整型signedshortint2字節(jié)signed(signedshort)長(zhǎng)整型signedlongint4字節(jié)(signedlong)基本整型unsignedint2字節(jié)無符號(hào)unsignedshortintunsigned短整型2字節(jié)(unsignedshort)長(zhǎng)整型unsignedlongint4字節(jié)(unsignedl

48、ong)其中,有符號(hào)整型變量中,重點(diǎn)字signed能夠省略。Q072為什么C語言中,整型變量要分很多種?(整型)A072一方面是由于實(shí)責(zé)問題中間的數(shù)據(jù)原來就是擁有不一樣的種類的,更主要的是由于這些數(shù)據(jù)的變化范圍是不一樣的。不一樣范圍的數(shù)據(jù)所需要的內(nèi)儲(chǔ)存藏單元也是不同樣的。因此,必定依照數(shù)據(jù)的范圍來決定給它分配多大的儲(chǔ)藏空間,而不致發(fā)生空間不夠或空間浪費(fèi)的問題。這就恰似學(xué)校的授課樓里,既有大教室,也有小教室,爾后依照來上課的人數(shù)分配合適的教室。而不是全部都是大教室,那樣就會(huì)產(chǎn)生教室不足或教室浪費(fèi)的問題。C語言供應(yīng)了多種整型數(shù)據(jù)種類,不一樣種類的整型數(shù)據(jù)據(jù)有的字節(jié)單元數(shù)量是不一樣的,因此不一樣種類

49、的整型數(shù)據(jù)可表示的數(shù)的范圍也是不一樣的,這樣有助于依照實(shí)質(zhì)數(shù)據(jù)的最大值來確定其最合適的種類。Q073那么,終究每種整型變量能保留的數(shù)據(jù)范圍是多少呢?(整型)A073由于每一種整型數(shù)據(jù)據(jù)有的字節(jié)單元數(shù)量都是有限的,因此每一種整型數(shù)據(jù)可表示的數(shù)的范圍也是有限的。ANSIC標(biāo)準(zhǔn)定義的整型種類的表示范圍以下表所示:種類字節(jié)數(shù)有效表示范圍signedint2字節(jié)-32768+32767unsignedint2字節(jié)0+65535signedshortint2字節(jié)-32768+32767unsignedshortint2字節(jié)0+65535signedlongint4字節(jié)-2147483648+2147483

50、647unsignedlongint4字節(jié)0+4294967295Q074有符號(hào)和無符號(hào)的差異是什么?(整型)A074有符號(hào)和無符號(hào)的差異重點(diǎn)在于變量所占字節(jié)單元中“最高位”的性質(zhì)。關(guān)于有符號(hào)變量:把最高位作為符號(hào)位保留數(shù)據(jù)的符號(hào)(0為正,1為負(fù)),其他位保留詳盡數(shù)值,因此能夠用于正保證存限值范圍內(nèi)的正數(shù)或負(fù)數(shù)。比方有inta;那么a的有效數(shù)值保留范圍為-3276832767。關(guān)于無符號(hào)變量:最高位不作為符號(hào)位,全部的位都用來保留數(shù)據(jù)的數(shù)值,因此能夠用于正確保留限值范圍內(nèi)的正數(shù)。比方有unsignedintb;那么b的有效數(shù)值范圍為065535。Q075為什么下面的程序中,輸出的結(jié)果是over

51、=-32768,而不是希望的over=32768?(整型)voidmain()intmax,over;max=32767;over=max+1;printf(over=%d,over);A075由于發(fā)生了整型數(shù)據(jù)的“溢出”問題。前面已經(jīng)說過,由于每一種整型數(shù)據(jù)據(jù)有的字節(jié)單元數(shù)量都是有限的,因此每一種整型數(shù)據(jù)可表示的數(shù)的范圍也是有限的。程序中,max是int有符號(hào)基本整型的變量,因此其有效的數(shù)據(jù)保留范圍就是-32768+32767。當(dāng)max等于32767時(shí),實(shí)際其所占兩個(gè)字節(jié)中的情況以以下圖:max?o327670111111111111111max+1后賦值給同樣的int有符號(hào)基本整型的變量以

52、以下圖,很顯然已經(jīng)變成了-32768的補(bǔ)碼了。over,則over中實(shí)質(zhì)其所占兩個(gè)字節(jié)中的情況max+1?over?o-327681000000000000000因此用printf函數(shù)依照%d格式顯示出來就是-32768。Q076那怎樣才不會(huì)出現(xiàn)“整型數(shù)據(jù)溢出”的問題呢?(整型)A076解決的方法就是,在定義變量時(shí)必然要指定合適的種類,保證它所保留的數(shù)據(jù)在整個(gè)程序運(yùn)行過程中不會(huì)高出其能夠有效表示的范圍。比方,上面的程序中,若是把over定義成unsignedint或long型的變量就可以防備“溢出”的問題。Q077實(shí)型變量是怎樣分類的?(實(shí)型)A077實(shí)型變量的分類以下表所示:種類單精度雙精度

53、重點(diǎn)字floatdouble字節(jié)數(shù)4字節(jié)8字節(jié)有效數(shù)字位數(shù)67位1516位數(shù)值范圍10-3710+3810-30710+308很顯然,由于不一樣的實(shí)型數(shù)據(jù)是用不一樣數(shù)量的有限字節(jié)單元保留的,因此它們能表示的數(shù)值范圍是不一樣的,能保留的有效數(shù)字位數(shù)也是不一樣而且是有限的。Q078實(shí)型數(shù)據(jù)在內(nèi)存中是怎樣儲(chǔ)藏的?(實(shí)型)A078實(shí)型數(shù)據(jù)在內(nèi)存中是以“尾數(shù)”和“階碼”的形式存放的。即在一個(gè)實(shí)型數(shù)據(jù)(浮點(diǎn)數(shù))所占字節(jié)單元中,一部分位用來保留階碼,一部分位用來保留尾數(shù)。以以下圖:尾數(shù)部分階碼部分不一樣的編譯系統(tǒng)位數(shù)分配不一樣??傊?,尾數(shù)部分位數(shù)越多,能夠表示的數(shù)的有效數(shù)字位數(shù)就越多,精度就越高;階碼部分位

54、數(shù)越多,能夠表示的數(shù)的范圍就越大。Q079什么是字符型常量?(字符型)A079的字符常量是用單引號(hào)()括起來的一個(gè)字符。比方:a、A、d、D、?、%、$、2、4等等。注意兩點(diǎn):第一,必定是單引號(hào),第二,單引號(hào)里只能有一個(gè)字符。Q080為什么字符常量要用單引號(hào)括起來?(字符型)A080這是為了和程序中其他種類的數(shù)據(jù)劃分開來。比方字符常量A,若是不加單引號(hào),可是一個(gè)A,那么必然會(huì)被編譯器認(rèn)為成一個(gè)符號(hào)的名字比方變量名。又比方字符常量1,若是不加單引號(hào),可是一個(gè)1,那么必然會(huì)被編譯器認(rèn)為成是一個(gè)整型常量1。因此,必定在所需要的字符周圍加上一些稱之為“界定符”的字符把它們包圍起來,才能和其他數(shù)據(jù)進(jìn)行劃

55、分。Q081既然單引號(hào)里只能有一個(gè)字符,為什么有的程序中會(huì)出現(xiàn)n,101這樣的字符?(字符型)A081這是由于除了前面提到的“單引號(hào)括起來的一個(gè)字符”形式的字符常量,語言還存在另一種形式的特其他字符常量,叫“轉(zhuǎn)義字符常量”。它是用單引號(hào)括起來的以一個(gè)“”字符開頭的規(guī)定的字符序列。比方問題中間提到的n,101。在轉(zhuǎn)義字符常量中,單引號(hào)里面確實(shí)是不僅一個(gè)字符,但實(shí)質(zhì)上整個(gè)還是只代表一個(gè)字符,也是合法的字符常量。這也就是“轉(zhuǎn)義”之含義。起到轉(zhuǎn)義作用的是單引號(hào)中間的“”,它被用來作為轉(zhuǎn)義字符序列的初步字符。若是單引號(hào)中起始字符不是“”,又多于一個(gè)字符,那么就不是合法的字符常量了。比方,nn,101就不

56、是合法的字符常量。Q082為什么要用到“轉(zhuǎn)義字符常量”?(字符型)(轉(zhuǎn)義字符常量)A082由于除了鍵盤上的全部字符外,程序中間還需要用到一些在鍵盤上找不到也就無法直接輸入的特別字符。這些字符常常代表了一些獨(dú)到的特定的功能。因此需要用一種特其他方法來表示它們,這就產(chǎn)生了“轉(zhuǎn)義字符常量”,也叫“轉(zhuǎn)義字符序列”。Q083C語言中都支持哪些“轉(zhuǎn)義字符常量”?(字符型)A083C語言所支持的轉(zhuǎn)義字符常量如能夠分為三大類,以下表所示:轉(zhuǎn)義字符含義ASCII代碼n回車換行(光標(biāo)移到下一行第一列)10控t水平制表(光標(biāo)移到下一個(gè)Tab地址)9制b退格(光標(biāo)移回到同一行前一列)8字符r回車(光標(biāo)移到同一行第一列

57、)13f換頁(光標(biāo)移到下一頁開頭)12特別反斜杠字符“”92標(biāo)點(diǎn)單引號(hào)(撇號(hào))字符39符號(hào)34“雙引號(hào)字符“全部ddd1到3位8進(jìn)制數(shù)所代表的字符字符xhh1到2位16進(jìn)制數(shù)所代表的字符Q084上表中出現(xiàn)的ASCII代碼是什么意思?(字符型)(ASCII碼)A084ASCII是英文AmericanStandardCodeforInformationInterchange的縮寫,其中文含義是“美國(guó)信息交換標(biāo)準(zhǔn)代碼”。實(shí)質(zhì)上,ASCII碼是一個(gè)0255之間的整數(shù)。每一個(gè)整數(shù)對(duì)應(yīng)著一個(gè)不一樣的字符,即每一個(gè)字符都有一個(gè)不一樣的整數(shù)代碼。比方,上表中出現(xiàn)的字符n用整數(shù)10代表,而單引號(hào)自己是用整數(shù)39

58、代表的。完滿的ASCII碼表請(qǐng)拜會(huì)課本374頁。Q085為什么每一個(gè)字符要用一個(gè)不一樣的整數(shù)來代表?(字符型)(ASCII碼)A085根根源因在于計(jì)算機(jī)的基根源理是二進(jìn)制的。字符型的數(shù)據(jù)自己是非數(shù)值型的,是無法保存在計(jì)算機(jī)中間的,由于計(jì)算機(jī)中全部的數(shù)據(jù)最后都要以二進(jìn)制數(shù)的形式來保留。因此,就要想法將非數(shù)值型的數(shù)據(jù)變換為數(shù)值型的數(shù)據(jù),從而產(chǎn)生了很多種稱之為“字符集”的東西。在各樣“字符集”中,把每一個(gè)字符用一個(gè)唯一的整數(shù)來代表。當(dāng)程序運(yùn)行時(shí),在出現(xiàn)在該字符的地方實(shí)質(zhì)內(nèi)存中儲(chǔ)藏的是該字符對(duì)應(yīng)的整數(shù)代碼。ASCII就是一種擴(kuò)大的西文字符集,它把常用的256個(gè)字符分別用0255之間的整數(shù)來代表。Q08

59、6那么說,C語言中的字符型數(shù)據(jù)實(shí)質(zhì)上就相當(dāng)于數(shù)值型的數(shù)據(jù)嘍?(字符型)A086正是。每個(gè)字符型數(shù)據(jù)無論是常量還是變量在內(nèi)存中只占一個(gè)字節(jié),這個(gè)字節(jié)中實(shí)質(zhì)保留的就是該字符的ASCII代碼。而ASCII碼是一個(gè)整數(shù),就要按整數(shù)的儲(chǔ)藏方式來保留,因此在C語言中,字符型和整型數(shù)據(jù)的儲(chǔ)藏方式是一致的,不一樣的可是兩者據(jù)有的字節(jié)單元數(shù)量。比方字符常量A,它的ASCII碼是整數(shù)65,因此在內(nèi)存中,字符常量A所占的一個(gè)字節(jié)中實(shí)質(zhì)保留的是整數(shù)65,即01000001。反過來看,若是我只知道有一個(gè)字節(jié)中存放的是01000001,那么我們既能夠說它是整數(shù)65,也能夠說它是字符常量A??梢姡贑語言中,字符型數(shù)據(jù)和整

60、型數(shù)據(jù)在必然范圍內(nèi)是通用的,即兩者能夠互相賦值,互相輸出,也能夠在一起進(jìn)行運(yùn)算。Q087請(qǐng)舉例說明字符型數(shù)據(jù)和整型數(shù)據(jù)在必然范圍內(nèi)是通用的?(字符型)A087程序以下:#includevoidmain()charc1,c2,c3;c1=A;c2=b;c3=;/*c3保留的是字符空格,ASCII碼是32*/c1=c1+32;/*字符能夠和整數(shù)進(jìn)行算術(shù)運(yùn)算*/c2=c2-c3;/*字符甚至還可以夠和字符進(jìn)行算術(shù)運(yùn)算*/printf(c1=%c,c1=%dn,c1,c1);/*輸出結(jié)果時(shí),字符既能夠顯示為字符printf(c2=%c,c2=%dn,c2,c2);/*也能夠顯示整數(shù)(%d)*/retu

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論