版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上第 一 章 概述1-1 簡(jiǎn)述計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言的發(fā)展歷程。解: 迄今為止計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言的發(fā)展經(jīng)歷了機(jī)器語(yǔ)言、匯編語(yǔ)言、高級(jí)語(yǔ)言等階段,C+語(yǔ)言是一種面向?qū)ο蟮木幊陶Z(yǔ)言,也屬于高級(jí)語(yǔ)言。1-2 面向?qū)ο蟮木幊陶Z(yǔ)言有哪些特點(diǎn)解: 面向?qū)ο蟮木幊陶Z(yǔ)言與以往各種編程語(yǔ)言有根本的不同,它設(shè)計(jì)的出發(fā)點(diǎn)就是為了能更直接的描述客觀世界中存在的事物以及它們之間的關(guān)系。面向?qū)ο蟮木幊陶Z(yǔ)言將客觀事物看作具有屬性和行為的對(duì)象,通過(guò)抽象找出同一類對(duì)象的共同屬性(靜態(tài)特征)和行為(動(dòng)態(tài)特征),形成類。通過(guò)類的繼承與多態(tài)可以很方便地實(shí)現(xiàn)代碼重用,大大縮短了軟件開發(fā)周期,并使得軟件風(fēng)格統(tǒng)一。因此
2、,面向?qū)ο蟮木幊陶Z(yǔ)言使程序能夠比較直接地反問(wèn)題域的本來(lái)面目,軟件開發(fā)人員能夠利用人類認(rèn)識(shí)事物所采用的一般思維方法來(lái)進(jìn)行軟件開發(fā)。C+語(yǔ)言是目前應(yīng)用最廣的面向?qū)ο蟮木幊陶Z(yǔ)言。1-3 什么是結(jié)構(gòu)化程序設(shè)計(jì)方法這種方法有哪些優(yōu)點(diǎn)和缺點(diǎn)解: 結(jié)構(gòu)化程序設(shè)計(jì)的思路是:自頂向下、逐步求精;其程序結(jié)構(gòu)是按功能劃分為若干個(gè)基本模塊;各模塊之間的關(guān)系盡可能簡(jiǎn)單,在功能上相對(duì)獨(dú)立;每一模塊內(nèi)部均是由順序、選擇和循環(huán)三種基本結(jié)構(gòu)組成;其模塊化實(shí)現(xiàn)的具體方法是使用子程序。結(jié)構(gòu)化程序設(shè)計(jì)由于采用了模塊分解與功能抽象,自頂向下、分而治之的方法,從而有效地將一個(gè)較復(fù)雜的程序系統(tǒng)設(shè)計(jì)任務(wù)分解成許多易于控制和處理的子任務(wù),便于
3、開發(fā)和維護(hù)。 雖然結(jié)構(gòu)化程序設(shè)計(jì)方法具有很多的優(yōu)點(diǎn),但它仍是一種面向過(guò)程的程序設(shè)計(jì)方法,它把數(shù)據(jù)和處理數(shù)據(jù)的過(guò)程分離為相互獨(dú)立的實(shí)體。當(dāng)數(shù)據(jù)結(jié)構(gòu)改變時(shí),所有相關(guān)的處理過(guò)程都要進(jìn)行相應(yīng)的修改,每一種相對(duì)于老問(wèn)題的新方法都要帶來(lái)額外的開銷,程序的可重用性差。由于圖形用戶界面的應(yīng)用,程序運(yùn)行由順序運(yùn)行演變?yōu)槭录?qū)動(dòng),使得軟件使用起來(lái)越來(lái)越方便,但開發(fā)起來(lái)卻越來(lái)越困難,對(duì)這種軟件的功能很難用過(guò)程來(lái)描述和實(shí)現(xiàn),使用面向過(guò)程的方法來(lái)開發(fā)和維護(hù)都將非常困難。 1-4 什么是對(duì)象什么是面向?qū)ο蠓椒ㄟ@種方法有哪些特點(diǎn)解: 從一般意義上講,對(duì)象是現(xiàn)實(shí)世界中一個(gè)實(shí)際存在的事物,它可以是有形的,也可以是無(wú)形的。對(duì)象是
4、構(gòu)成世界的一個(gè)獨(dú)立單位,它具有自己的靜態(tài)特征和動(dòng)態(tài)特征。面向?qū)ο蠓椒ㄖ械膶?duì)象,是系統(tǒng)中用來(lái)描述客觀事物的一個(gè)實(shí)體,它是用來(lái)構(gòu)成系統(tǒng)的一個(gè)基本單位,由一組屬性和一組行為構(gòu)成。面向?qū)ο蟮姆椒▽?shù)據(jù)及對(duì)數(shù)據(jù)的操作方法放在一起,作為一個(gè)相互依存、不可分離的整體-對(duì)象。對(duì)同類型對(duì)象抽象出其共性,形成類。類中的大多數(shù)數(shù)據(jù),只能用本類的方法進(jìn)行處理。類通過(guò)一個(gè)簡(jiǎn)單的外部接口,與外界發(fā)生關(guān)系,對(duì)象與對(duì)象之間通過(guò)消息進(jìn)行通訊。這樣,程序模塊間的關(guān)系更為簡(jiǎn)單,程序模塊的獨(dú)立性、數(shù)據(jù)的安全性就有了良好的保障。通過(guò)實(shí)現(xiàn)繼承與多態(tài)性,還可以大大提高程序的可重用性,使得軟件的開發(fā)和維護(hù)都更為方便。(面向?qū)ο蠓椒ㄋ鶑?qiáng)調(diào)的基
5、本原則,就是直接面對(duì)客觀存在的事物來(lái)進(jìn)行軟件開發(fā),將人們?cè)谌粘I钪辛?xí)慣的思維方式和表達(dá)方式應(yīng)用在軟件開發(fā)中,使軟件開發(fā)從過(guò)分專業(yè)化的方法、規(guī)則和技巧中回到客觀世界,回到人們通常的思維。1-5 什么叫做封裝解: 封裝是面向?qū)ο蠓椒ǖ囊粋€(gè)重要原則,就是把對(duì)象的屬性和服務(wù)結(jié)合成一個(gè)獨(dú)立的系統(tǒng)單位,并盡可能隱蔽對(duì)象的內(nèi)部細(xì)節(jié)。1-6 面向?qū)ο蟮能浖こ贪男┲饕獌?nèi)容解: 面向?qū)ο蟮能浖こ淌敲嫦驅(qū)ο蠓椒ㄔ谲浖こ填I(lǐng)域的全面應(yīng)用,它包括面向?qū)ο蟮姆治觯∣OA)、面向?qū)ο蟮脑O(shè)計(jì)(OOD)、面向?qū)ο蟮木幊蹋∣OP)、面向?qū)ο蟮臏y(cè)試(OOT)和面向?qū)ο蟮能浖S護(hù)(OOSM)等主要內(nèi)容。1-7 簡(jiǎn)述計(jì)算機(jī)內(nèi)
6、部的信息可分為幾類)解: 計(jì)算機(jī)內(nèi)部的信息可以分成控制信息和數(shù)據(jù)信息二大類;控制信息可分為指令和控制字兩類;數(shù)據(jù)信息可分為數(shù)值信息和非數(shù)值信息兩類。 1-8 什么叫二進(jìn)制使用二進(jìn)制有何優(yōu)點(diǎn)和缺點(diǎn)解: 二進(jìn)制是基數(shù)為2,每位的權(quán)是以2 為底的冪的進(jìn)制,遵循逢二進(jìn)一原則,基本符號(hào)為0和1。采用二進(jìn)制碼表示信息,有如下幾個(gè)優(yōu)點(diǎn):1.易于物理實(shí)現(xiàn);2.二進(jìn)制數(shù)運(yùn)算簡(jiǎn)單;3.機(jī)器可靠性高;4.通用性強(qiáng)。其缺點(diǎn)是它表示數(shù)的容量較小,表示同一個(gè)數(shù),二進(jìn)制較其他進(jìn)制需要更多的位數(shù)。1-9 請(qǐng)將以下十進(jìn)制數(shù)值轉(zhuǎn)換為二進(jìn)制和十六進(jìn)制補(bǔ)碼:(1)2 (2)9 (3)93 (4)-32 (5)65535 (6)-1
7、解: (1) (2)10 = (10)2 = (2)16(2) (9)10 = (1001)2 = (9)16(3) (93)10 = ()2 = (5D)16(4) (-32)10 = ()2 = (E0)16(5) (65535)10 = ( )2 = (FFFF)16(6) (-1)10 = ( )2 = (FFFF)161-10 請(qǐng)將以下數(shù)值轉(zhuǎn)換為十進(jìn)制:(1)(1010)2 (2)()2 (3)( )2 (4)(7F)16 (5)(2D3E)16 (6)(F10E)16解: (1)(1010)2 = (10)10(2)()2 = (143)10(3)( )2 = (24515)10(
8、4)(7F)16 = (127)10(5)(2D3E)16 = (11582)10:(6)(F10E)16 = (61710)101-11 簡(jiǎn)要比較原碼、反碼、補(bǔ)碼等幾種編碼方法。解: 原碼:將符號(hào)位數(shù)字化為 0 或 1,數(shù)的絕對(duì)值與符號(hào)一起編碼,即所謂"符號(hào)絕對(duì)值表示"的編碼。正數(shù)的反碼和補(bǔ)碼與原碼表示相同。負(fù)數(shù)的反碼與原碼有如下關(guān)系:符號(hào)位相同(仍用1表示),其余各位取反(0變1,1變0)。補(bǔ)碼由該數(shù)反碼的最末位加1求得。 】第 二 章 C+簡(jiǎn)單程序設(shè)計(jì)2-1 C+語(yǔ)言有那些主要特點(diǎn)和優(yōu)點(diǎn)解: C+語(yǔ)言的主要特點(diǎn)表現(xiàn)在兩個(gè)方面,一是全面兼容C,二是支持面向?qū)ο蟮姆椒ā
9、+是一個(gè)更好的C,它保持了C的簡(jiǎn)潔、高效、接近匯編語(yǔ)言、具有良好的可讀性和可移植性等特點(diǎn),對(duì)C的類型系統(tǒng)進(jìn)行了改革和擴(kuò)充,因此C+比C更安全,C+的編譯系統(tǒng)能檢查出更多的類型錯(cuò)誤。 C+語(yǔ)言最重要的特點(diǎn)是支持面向?qū)ο蟆?-2 下列標(biāo)識(shí)符哪些是合法的Program, -page, _lock, test2, 3in1, mail, A_B_C_D解: Program, _lock, test2, A_B_C_D是合法的標(biāo)識(shí)符,其它的不是。、2-3 例中每條語(yǔ)句的作用是什么#include <>void main(void)cout<<"Hello!n"
10、cout<<"Welcome to c+!n"解: #include <> 201 / 42. 201 % 43. 201 / 解: 1 502 13 2-10 執(zhí)行完下列語(yǔ)句后,a、b、c三個(gè)變量的值為多少a = 30;b = a+;c = +a;解: a:32 ; b:30 ; c:32;2-11 在一個(gè)for循環(huán)中,可以初始化多個(gè)變量嗎如何實(shí)現(xiàn)解: 在for循環(huán)設(shè)置條件的第一個(gè)""前,用,分隔不同的賦值表達(dá)式?!坷纾篺or (x = 0, y = 10; x < 100; x+, y+)2-12 執(zhí)行完下列語(yǔ)句后,n
11、的值為多少int n;for (n = 0; n < 100; n+)解: n的值為1002-13 寫一條for語(yǔ)句,計(jì)數(shù)條件為n從100到200,步長(zhǎng)為2;然后用while和dowhile語(yǔ)句完成同樣的循環(huán)。!解: for循環(huán):for (int n = 100; n <= 200; n += 2); while循環(huán):int x = 100;while (n <= 200)n += 2; dowhile循環(huán):;int n = 100;don += 2; while(n <= 200);2-14 if ( x = 3 ) 和 if (x = = 3) 這兩條語(yǔ)句的差別是什
12、么解: 語(yǔ)句if(x = 3)把3賦給x,賦值表達(dá)式的值為true,作為if語(yǔ)句的條件;語(yǔ)句if(x = 3)首先判斷x的值是否為3,若相等條件表達(dá)式的值為ture,否則為false?!?-15 什么叫做作用域什么叫做局部變量什么叫做全局變量,如何使用全局變量 解: 作用域是一個(gè)標(biāo)識(shí)符在程序正文中有效的區(qū)域。局部變量,一般來(lái)講就是具有塊作用域的變量;全局變量,就是具有文件作用域的變量。 2-16 已知x、y兩個(gè)變量,寫一條簡(jiǎn)單的if語(yǔ)句,把較小的的值賦給原本值較大的變量。解: if (x > y)x = y;else n"&cout << "The
13、 size of a short int is:t" << sizeof(short) << " bytes.n"cout << "The size of a long int is:t" << sizeof(long) << " bytes.n"cout << "The size of a char is:tt" << sizeof(char) << " bytes.n"cout <
14、< "The size of a float is:tt" << sizeof(float) << " bytes.n"cout << "The size of a double is:t" << sizeof(double) << " bytes.n"return 0;程序運(yùn)行輸出:。The size of an int is: 4 bytes.The size of a short int is: 2 bytes.The size of a lo
15、ng int is: 4 bytes.The size of a char is: 1 bytes.The size of a float is: 4 bytes.The size of a double is: 8 bytes.2-20 打印ASCII碼為32127的字符。解: ?#include <>int main()for (int i = 32; i<128; i+)cout << (char) i;return 0;程序運(yùn)行輸出:$!"#$%G'()*+,./09:;<>ABCDEFGHIJKLMNOP_QRSTUVWXY
16、Z'abcdefghijklmnopqrstuvwxyz<|>s2-21 運(yùn)行下面的程序,觀察其輸出,與你的設(shè)想是否相同#include <>int main()unsigned int x;unsigned int y = 100;unsigned int z = 50;<x= y - z;cout << "Difference is: " << x;x = z - y;cout << "nNow difference is: " << x <<endl;
17、return 0;解: 程序運(yùn)行輸出:Difference is: 50Now difference is: 46注意,第二行的輸出并非 -50,注意x、y、z的數(shù)據(jù)類型。2-22 運(yùn)行下面的程序,觀察其輸出,體會(huì)i+與+i的差別。#include <>int main()int myAge = 39; n"!cout << "You are: " << yourAge << " years oldn"myAge+; .n"cout << "I am: "
18、 << myAge << " years old.n"cout << "You are: " << yourAge << " years oldn"cout << "Another year passesn"cout << "I am: " << myAge+ << " years old.n"cout << "You are: " &l
19、t;< +yourAge << " years oldn"cout << "Let's print it again.n"cout << "I am: " << myAge << " years old.n"cout << "You are: " << yourAge << " years oldn"return 0;解: 程序運(yùn)行輸出:I am 39 years o
20、ldYou are 39 years old·One year passesI am 40 years oldYou are 40 years oldAnother year passesI am 40 years oldYou are 41 years oldLet's print it againI am 41 years old#You are 41 years old2-23 什么叫常量什么叫變量解: 所謂常量是指在程序運(yùn)行的整個(gè)過(guò)程中其值始終不可改變的量,除了用文字表示常量外,也可以為常量命名,這就是符號(hào)常量;在程序的執(zhí)行過(guò)程中其值可以變化的量稱為變量,變量是需要用
21、名字來(lái)標(biāo)識(shí)的。2-24 變量有哪幾種存儲(chǔ)類型解: 變量有以下幾種存儲(chǔ)類型:auto存儲(chǔ)類型:采用堆棧方式分配內(nèi)存空間,屬于一時(shí)性存儲(chǔ),其存儲(chǔ)空間可以被若干變量多次覆蓋使用; ;register存儲(chǔ)類型:存放在通用寄存器中;extern存儲(chǔ)類型:在所有函數(shù)和程序段中都可引用;static存儲(chǔ)類型:在內(nèi)存中是以固定地址存放的,在整個(gè)程序運(yùn)行期間都有效。2-25 寫出下列表達(dá)式的值:1. 2 < 3 && 6 < 92. ! ( 4<7 )3. ! ( 3 > 5) | (6 < 2 )解: 1. true2. false3. true2-26 若a =
22、 1,b = 2,c = 3,下列各式的結(jié)果是什么1. a | b - c2. a b & -c3. a & b | c4. a | b & c#解: 1 -12 13 34 32-27 若a = 1,下列各式的結(jié)果是什么1. ! a | a2. a | a·3. a a4. a >> 2解: 1 12 -13 04 02-28 編寫一個(gè)完整的程序,實(shí)現(xiàn)功能:向用戶提問(wèn)"現(xiàn)在正在下雨嗎",提示用戶輸入Y或N。若輸入為Y,顯示"現(xiàn)在正在下雨。"; 若輸入為N,顯示"現(xiàn)在沒(méi)有下雨。";否則繼續(xù)
23、提問(wèn)"現(xiàn)在正在下雨嗎"#解: 源程序:#include <>#include <> void main()char flag;while(1)·cout << "現(xiàn)在正在下雨嗎(Yes or No):"cin >> flag;if ( toupper(flag) = 'Y')cout << "現(xiàn)在正在下雨。"break;if ( toupper(flag) = 'N')cout << "現(xiàn)在沒(méi)有下雨。"
24、break;程序運(yùn)行輸出:現(xiàn)在正在下雨嗎(Yes or No):x現(xiàn)在正在下雨嗎(Yes or No):l現(xiàn)在正在下雨嗎(Yes or No):q現(xiàn)在正在下雨嗎(Yes or No):n現(xiàn)在沒(méi)有下雨。或:現(xiàn)在正在下雨嗎(Yes or No):y現(xiàn)在正在下雨。2-29 編寫一個(gè)完整的程序,運(yùn)行時(shí)向用戶提問(wèn)"你考試考了多少分(0100)",接收輸入后判斷其等級(jí),顯示出來(lái)。規(guī)則如下:解: #include <> void main()int i,score;cout << "你考試考了多少分(0100):"cin >> sc
25、ore;|if (score>100 | score<0)cout << "分?jǐn)?shù)值必須在0到100之間!"elsei = score/10;switch (i)case 10:case 9:cout << "你的成績(jī)?yōu)閮?yōu)!"break;case 8:cout << "你的成績(jī)?yōu)榱迹?quot;break;case 7:case 6:¥cout << "你的成績(jī)?yōu)橹校?quot;break;default:cout << "你的成績(jī)?yōu)椴睿?quot; 程序
26、運(yùn)行輸出:%你考試考了多少分(0100):85你的成績(jī)?yōu)榱迹?-30 (1)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的菜單程序,運(yùn)行時(shí)顯示"Menu: A(dd) D(elete) S(ort) Q(uit), Select one:"提示用戶輸入,A表示增加,D表示刪除,S表示排序,Q表示退出,輸入為A、D、S時(shí)分別提示"數(shù)據(jù)已經(jīng)增加、刪除、排序。"輸入為Q時(shí)程序結(jié)束。要求使用if else語(yǔ)句進(jìn)行判斷,用break、continue控制程序流程。解: #include <>#include <> void main()"char choice,
27、c;while(1)cout << "Menu: A(dd) D(elete) S(ort) Q(uit), Select one:"cin >> c;choice = toupper(c);if (choice = 'A')*cout << "數(shù)據(jù)已經(jīng)增加. " << endl;continue;else if (choice = 'D')cout << "數(shù)據(jù)已經(jīng)刪除. " << endl;continue;,else if (
28、choice = 'S')cout << "數(shù)據(jù)已經(jīng)排序. " << endl;continue;else if (choice = 'Q')break;-程序運(yùn)行輸出:Menu: A(dd) D(elete) S(ort) Q(uit), Select one:a數(shù)據(jù)已經(jīng)增加. Menu: A(dd) D(elete) S(ort) Q(uit), Select one:d數(shù)據(jù)已經(jīng)刪除. Menu: A(dd) D(elete) S(ort) Q(uit), Select one:s數(shù)據(jù)已經(jīng)排序. !Menu: A(
29、dd) D(elete) S(ort) Q(uit), Select one:q (2)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的菜單程序,運(yùn)行時(shí)顯示"Menu: A(dd) D(elete) S(ort) Q(uit), Select one:"提示用戶輸入,A表示增加,D表示刪除,S表示排序,Q表示退出,輸入為A、D、S時(shí)分別提示"數(shù)據(jù)已經(jīng)增加、刪除、排序。"輸入為Q時(shí)程序結(jié)束。要求使用Switch語(yǔ)句。解: 源程序:#include <>#include <> void main()*char choice;while(1)cout <<
30、"Menu: A(dd) D(elete) S(ort) Q(uit), Select one:"cin >> choice;switch(toupper(choice)case 'A':)cout << "數(shù)據(jù)已經(jīng)增加. " << endl;break;case 'D':cout << "數(shù)據(jù)已經(jīng)刪除. " << endl;break;case 'S':cout << "數(shù)據(jù)已經(jīng)排序. " &l
31、t;< endl;break;case 'Q':exit(0);break;default:;<程序運(yùn)行輸出:Menu: A(dd) D(elete) S(ort) Q(uit), Select one:a數(shù)據(jù)已經(jīng)增加. Menu: A(dd) D(elete) S(ort) Q(uit), Select one:d數(shù)據(jù)已經(jīng)刪除. Menu: A(dd) D(elete) S(ort) Q(uit), Select one:s數(shù)據(jù)已經(jīng)排序. Menu: A(dd) D(elete) S(ort) Q(uit), Select one:q2-31 用窮舉法找出1100
32、間的質(zhì)數(shù),顯示出來(lái)。分別使用while,do-while,for循環(huán)語(yǔ)句實(shí)現(xiàn)。解: 源程序: 使用while循環(huán)語(yǔ)句:#include <>#include <> void main()-int i,j,k,flag;i = 2;while(i <= 100)flag = 1;k = sqrt(i);j = 2;while (j <= k)if(i%j = 0)flag = 0;break;j+;if (flag)cout << i << "是質(zhì)數(shù)." << endl;i+; 使用dowhile循環(huán)語(yǔ)句
33、:#include <>#include <> 。void main()int i,j,k,flag;i = 2;doflag = 1;k = sqrt(i);j = 2;doif(i%j = 0)flag = 0;break;j+;while (j <= k);#if (flag)cout << i << "是質(zhì)數(shù)." << endl;i+;while(i <= 100); 使用for循環(huán)語(yǔ)句:#include <>#include <> (void main()int i,j
34、,k,flag;for(i = 2; i <= 100; i+)flag = 1;k = sqrt(i);for (j = 2; j <= k; j+)*if(i%j = 0)flag = 0;break;if (flag)&cout << i << "是質(zhì)數(shù)." << endl;程序運(yùn)行輸出:2是質(zhì)數(shù).3是質(zhì)數(shù).5是質(zhì)數(shù).7是質(zhì)數(shù).11是質(zhì)數(shù).13是質(zhì)數(shù).17是質(zhì)數(shù).19是質(zhì)數(shù).23是質(zhì)數(shù).29是質(zhì)數(shù).31是質(zhì)數(shù).37是質(zhì)數(shù).41是質(zhì)數(shù).43是質(zhì)數(shù).47是質(zhì)數(shù).53是質(zhì)數(shù).59是質(zhì)數(shù).61是質(zhì)數(shù).67是質(zhì)數(shù).71是質(zhì)
35、數(shù).73是質(zhì)數(shù).79是質(zhì)數(shù).83是質(zhì)數(shù).89是質(zhì)數(shù).97是質(zhì)數(shù).2-32 比較Break語(yǔ)句與Continue語(yǔ)句的不同用法。解: Break使程序從循環(huán)體和switch語(yǔ)句內(nèi)跳出,繼續(xù)執(zhí)行邏輯上的下一條語(yǔ)句,不能用在別處;/continue 語(yǔ)句結(jié)束本次循環(huán),接著開始判斷決定是否繼續(xù)執(zhí)行下一次循環(huán); 2-33 定義一個(gè)表示時(shí)間的結(jié)構(gòu)體,可以精確表示年、月、日、小時(shí)、分、秒;提示用戶輸入年、月、日、小時(shí)、分、秒的值,然后完整地顯示出來(lái)。 解: 源程序見(jiàn)"實(shí)驗(yàn)指導(dǎo)"部分實(shí)驗(yàn)二2-34 在程序中定義一個(gè)整型變量,賦以1100的值,要求用戶猜這個(gè)數(shù),比較兩個(gè)數(shù)的大小,把結(jié)果提示給
36、用戶,直到猜對(duì)為止。分別使用while、dowhile語(yǔ)句實(shí)現(xiàn)循環(huán)。解: n Number one: "|cin >> one;cout << "Number two: "cin >> two;answer = Divider(one, two);if (answer > -1)cout << "Answer: " << answer;elsecout << "Error, can't divide by zero!".return 0;程
37、序運(yùn)行輸出:Enter two numbers.Number one:8Number two:2Answer: 43-8 編寫函數(shù)把華氏溫度轉(zhuǎn)換為攝氏溫度,公式為:C = (F - 32) * 5/9; 在主程序中提示用戶輸入一個(gè)華氏溫度,轉(zhuǎn)化后輸出相應(yīng)的攝氏溫度。解: 源程序見(jiàn)"實(shí)驗(yàn)指導(dǎo)"部分實(shí)驗(yàn)三3-9 編寫函數(shù)判斷一個(gè)數(shù)是否是質(zhì)數(shù),在主程序中實(shí)現(xiàn)輸入、輸出。解: #include <>#include <>int prime(int i); << endl;else)cout << i << "不是
38、質(zhì)數(shù)." << endl;int prime(int i)int j,k,flag;flag = 1;k = sqrt(i);for (j = 2; j <= k; j+)if(i%j = 0)flag = 0;break;if (flag)return 1;elsereturn 0;程序運(yùn)行輸出:請(qǐng)輸入一個(gè)整數(shù):11511151是質(zhì)數(shù).3-10 編寫函數(shù)求兩個(gè)整數(shù)的最大公約數(shù)和最小公倍數(shù)。>解: 源程序:#include <>#include <>int fn1(int i,int j); n"(7);(20);cout &
39、lt;< "Now Jack is " ;(cout << () << " years old and"cout << () << " pounds weight."return 0;程序運(yùn)行輸出:Jack is a Dog who is 2 years old and 10 pounds weight.Now Jack is 7 years old 20 pounds weight.4-9 設(shè)計(jì)并測(cè)試一個(gè)名為Rectangle的矩形類,其屬性為矩形的左下角與右上角兩個(gè)點(diǎn)的坐標(biāo),能
40、計(jì)算矩形的面積。解: 源程序:#include <>class Rectanglepublic:Rectangle (int top, int left, int bottom, int right);Rectangle () $int GetTop() const return itsTop; int GetLeft() const return itsLeft; int GetBottom() const return itsBottom; int GetRight() const return itsRight; void SetTop(int top) itsTop = t
41、op; void SetLeft (int left) itsLeft = left; void SetBottom (int bottom) itsBottom = bottom; void SetRight (int right) itsRight = right; <int GetArea() const;private:int itsTop;int itsLeft;int itsBottom;int itsRight;Rectangle:Rectangle(int top, int left, int bottom, int right)itsTop = top;itsLeft
42、= left;itsBottom = bottom;itsRight = right;int Rectangle:GetArea() const(int Width = itsRight-itsLeft;int Height = itsTop - itsBottom;return (Width * Height);int main()Rectangle MyRectangle (100, 20, 50, 80 );int Area = ();cout << "Area: " << Area << "n"return 0
43、;程序運(yùn)行輸出:Area: 3000Upper Left X Coordinate: 204-10 設(shè)計(jì)一個(gè)用于人事管理的People(人員)類??紤]到通用性,這里只抽象出所有類型人員都具有的屬性:number(編號(hào))、sex(性別)、birthday(出生日期)、id(身份證號(hào))等等。其中"出生日期"定義為一個(gè)"日期"類內(nèi)嵌子對(duì)象。用成員函數(shù)實(shí)現(xiàn)對(duì)人員信息的錄入和顯示。要求包括:構(gòu)造函數(shù)和析構(gòu)函數(shù)、拷貝構(gòu)造函數(shù)、內(nèi)聯(lián)成員函數(shù)、帶缺省形參值的成員函數(shù)、聚集。解: (本題用作實(shí)驗(yàn)四的選做題,因此不給出答案。4-11 定義一個(gè)矩形類,有長(zhǎng)、寬兩個(gè)屬性,有成員
44、函數(shù)計(jì)算矩形的面積 解: #include <>class Rectanglepublic:Rectangle(float len, float width)Length = len;Width = width;Rectangle();float GetArea() return Length * Width; float GetLength() return Length; float GetWidth() return Width; (private:float Length;float Width;void main()float length, width;cout <
45、;< "請(qǐng)輸入矩形的長(zhǎng)度:"cin >> length;cout << "請(qǐng)輸入矩形的寬度:"cin >> width;Rectangle r(length, width);cout << "長(zhǎng)為" << length << "寬為" << width << "的矩形的面積為:" << () << endl;程序運(yùn)行輸出:|請(qǐng)輸入矩形的長(zhǎng)度:5請(qǐng)輸入矩形的寬度:4長(zhǎng)為5寬
46、為4的矩形的面積為:204-12 定義一個(gè)"數(shù)據(jù)類型" datatype類,能處理包含字符型、整型、浮點(diǎn)型三種類型的數(shù)據(jù),給出其構(gòu)造函數(shù)。解: #include <>class datatypeenumcharacter,integer,floating_point vartype;union char c;int i;float f;public:datatype(char ch) vartype = character;c = ch;datatype(int ii) ¥vartype = integer;i = ii;datatype(float ff) v
47、artype = floating_point;f = ff;void print();*;void datatype:print() switch (vartype) case character:cout << "字符型: " << c << endl;break;case integer:cout << "整型: " << i << endl;<break;case floating_point:cout << "浮點(diǎn)型: " <&l
48、t; f << endl;break;void main() datatype A('c'), B(12), C;?();();();程序運(yùn)行輸出:字符型: c整型: 12浮點(diǎn)型: -4-13 定義一個(gè)Circle類,有數(shù)據(jù)成員半徑Radius,成員函數(shù)GetArea(),計(jì)算圓的面積,構(gòu)造一個(gè)Circle的對(duì)象進(jìn)行測(cè)試。解: #include <>class Circlepublic:Circle(float radius) Radius = radius;Circle()float GetArea() return * Radius * Radius
49、; private:float Radius;void main()float radius;cout << "請(qǐng)輸入圓的半徑:"。cin >> radius;Circle p(radius);cout << "半徑為" << radius << "的圓的面積為:" << () << endl;程序運(yùn)行輸出:請(qǐng)輸入圓的半徑:5半徑為5的圓的面積為:.4-14 定義一個(gè)tree類,有成員ages,成員函數(shù)grow(int years)對(duì)ages加上yea
50、rs,age()顯示tree對(duì)象的ages的值。解: #include <>class Tree int ages;public:Tree(int n=0);Tree();!void grow(int years);void age();Tree:Tree(int n) ages = n;Tree:Tree() age();$void Tree:grow(int years) ages += years;void Tree:age() cout << "這棵樹的年齡為" << ages << endl;void main())
51、Tree t(12);();(4);程序運(yùn)行輸出:這棵樹的年齡為12這棵樹的年齡為16(第 五 章 C+程序的基本結(jié)構(gòu)5-1 什么叫做作用域有哪幾種類型的作用域解: 作用域討論的是標(biāo)識(shí)符的有效范圍,作用域是一個(gè)標(biāo)識(shí)符在程序正文中有效的區(qū)域。C+的作用域分為函數(shù)原形作用域、塊作用域(局部作用域)、類作用域和文件作用域.5-2 什么叫做可見(jiàn)性可見(jiàn)性的一般規(guī)則是什么解: 可見(jiàn)性是標(biāo)識(shí)符是否可以引用的問(wèn)題;可見(jiàn)性的一般規(guī)則是:標(biāo)識(shí)符要聲明在前,引用在后,在同一作用域中,不能聲明同名的標(biāo)識(shí)符。對(duì)于在不同的作用域聲明的標(biāo)識(shí)符,遵循的原則是:若有兩個(gè)或多個(gè)具有包含關(guān)系的作用域,外層聲明的標(biāo)識(shí)符如果在內(nèi)層沒(méi)有
52、聲明同名標(biāo)識(shí)符時(shí)仍可見(jiàn),如果內(nèi)層聲明了同名標(biāo)識(shí)符則外層標(biāo)識(shí)符不可見(jiàn)。 5-3 下面的程序的運(yùn)行結(jié)果是什么,實(shí)際運(yùn)行一下,看看與你的設(shè)想有何不同。#include <>void myFunction(); int x = 5, y = 7; int main()cout << "x from main: " << x << "n"cout << "y from main: " << y << "nn"myFunction();cout
53、 << "Back from myFunction!nn"cout << "x from main: " << x << "n"cout << "y from main: " << y << "n"return 0;void myFunction()#int y = 10;cout << "x from myFunction: " << x << "
54、;n"cout << "y from myFunction: " << y << "nn"解: 程序運(yùn)行輸出:x from main: 5y from main: 7#x from myFunction: 5y from myFunction: 10Back from myFunction!x from main: 5y from main: 7 5-4 假設(shè)有兩個(gè)無(wú)關(guān)系的類Engine和Fuel,使用時(shí),怎樣允許Fuel成員訪問(wèn)Engine中的私有和保護(hù)的成員解: (源程序:class fuel;class
55、 enginefriend class fuel;private;int powerlevel;public;、engine() powerLevel = 0;void engine_fn(fuel &f);class fuelfriend class engine;private;int fuelLevel;.public:fuel() fuelLevel = 0;void fuel_fn( engine &e); 5-5 什么叫做靜態(tài)數(shù)據(jù)成員它有何特點(diǎn)解: 類的靜態(tài)數(shù)據(jù)成員是類的數(shù)據(jù)成員的一種特例,采用static關(guān)鍵字來(lái)聲明。對(duì)于類的普通數(shù)據(jù)成員,每一個(gè)類的對(duì)象都擁有一個(gè)
56、拷貝,就是說(shuō)每個(gè)對(duì)象的同名數(shù)據(jù)成員可以分別存儲(chǔ)不同的數(shù)值,這也是保證對(duì)象擁有自身區(qū)別于其它對(duì)象的特征的需要,但是靜態(tài)數(shù)據(jù)成員,每個(gè)類只要一個(gè)拷貝,由所有該類的對(duì)象共同維護(hù)和使用,這個(gè)共同維護(hù)、使用也就實(shí)現(xiàn)了同一類的不同對(duì)象之間的數(shù)據(jù)共享。¥5-6 什么叫做靜態(tài)函數(shù)成員它有何特點(diǎn)解: 使用static關(guān)鍵字聲明的函數(shù)成員是靜態(tài)的,靜態(tài)函數(shù)成員屬于整個(gè)類,同一個(gè)類的所有對(duì)象共同維護(hù),為這些對(duì)象所共享。靜態(tài)函數(shù)成員具有以下兩個(gè)方面的好處,一是由于靜態(tài)成員函數(shù)只能直接訪問(wèn)同一個(gè)類的靜態(tài)數(shù)據(jù)成員,可以保證不會(huì)對(duì)該類的其余數(shù)據(jù)成員造成負(fù)面影響;二是同一個(gè)類只維護(hù)一個(gè)靜態(tài)函數(shù)成員的拷貝,節(jié)約了系統(tǒng)的開銷,提
57、高程序的運(yùn)行效率。5-7 定義一個(gè)Cat類,擁有靜態(tài)數(shù)據(jù)成員HowManyCats,記錄Cat的個(gè)體數(shù)目;靜態(tài)成員函數(shù)GetHowMany(),存取HowManyCats。設(shè)計(jì)程序測(cè)試這個(gè)類,體會(huì)靜態(tài)數(shù)據(jù)成員和靜態(tài)成員函數(shù)的用法。解: 源程序:#include <>class Cat-public:Cat(int age):itsAge(age)HowManyCats+; virtual Cat() HowManyCats-; virtual int GetAge() return itsAge; virtual void SetAge(int age) itsAge = age;
58、 static int GetHowMany() return HowManyCats; private:(int itsAge;static int HowManyCats;int Cat:HowManyCats = 0;void TelepathicFunction();int main()const int MaxCats = 5;Cat *CatHouseMaxCats; int i;for (i = 0; i<MaxCats; i+)CatHousei = new Cat(i);TelepathicFunction();for ( i = 0; i<MaxCats; i+
59、)、delete CatHousei;TelepathicFunction();return 0;void TelepathicFunction()cout << "There are " << Cat:GetHowMany() << " cats alive!n"·程序運(yùn)行輸出:There are 1 cats alive!There are 2 cats alive!There are 3 cats alive!There are 4 cats alive!There are 5 cats alive!There are 4 cats alive!<There are 3 cats alive!There are 2 cats alive!There are 1 cats alive!There are 0 cats alive!5-8 什么叫做友元函數(shù)什么叫做友元類解: 友元函數(shù)是使用friend關(guān)鍵字聲明的函數(shù),它可以訪問(wèn)相應(yīng)類的保護(hù)成員和私有成員。友元類是使用friend關(guān)鍵字聲明的類,它的
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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)戶農(nóng)村電商金融服務(wù)合同4篇
- 乳制品2024年新型包裝材料采購(gòu)合同3篇
- 擔(dān)保合同權(quán)利義務(wù)協(xié)議書(2篇)
- 2025年度木材交易市場(chǎng)入駐經(jīng)營(yíng)合同3篇
- 2025版美容養(yǎng)生中心使用權(quán)轉(zhuǎn)讓合同4篇
- 2025年度綜合交通樞紐建設(shè)承包經(jīng)營(yíng)合同書范文4篇
- 2025年人體感應(yīng)觸摸屏系統(tǒng)銷售合同2篇
- 2025年度電競(jìng)館租賃合同匯編4篇
- 2025年度民間借貸信用評(píng)估與評(píng)級(jí)服務(wù)合同3篇
- 二零二五年度展會(huì)布展與現(xiàn)場(chǎng)管理一體化服務(wù)合同3篇
- 2023-2024學(xué)年度人教版一年級(jí)語(yǔ)文上冊(cè)寒假作業(yè)
- 2024醫(yī)療銷售年度計(jì)劃
- 人教版語(yǔ)文1-6年級(jí)古詩(shī)詞
- 上學(xué)期高二期末語(yǔ)文試卷(含答案)
- 高二物理題庫(kù)及答案
- 職業(yè)發(fā)展展示園林
- 七年級(jí)下冊(cè)英語(yǔ)單詞默寫表直接打印
- 2024版醫(yī)療安全不良事件培訓(xùn)講稿
- 中學(xué)英語(yǔ)教學(xué)設(shè)計(jì)PPT完整全套教學(xué)課件
- 移動(dòng)商務(wù)內(nèi)容運(yùn)營(yíng)(吳洪貴)項(xiàng)目五 運(yùn)營(yíng)效果監(jiān)測(cè)
- 比較思想政治教育學(xué)
評(píng)論
0/150
提交評(píng)論