版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、復(fù)習(xí)要求:1C+語言概述(1)了解C+語言的基本符號(hào)。(2)了解C+語言的詞匯(保留字、標(biāo)識(shí)符、常量、運(yùn)算符、標(biāo)點(diǎn)符號(hào)等)。(3)掌握C+程序的基本框架(結(jié)構(gòu)程序設(shè)計(jì)框架、面向?qū)ο蟪绦蛟O(shè)計(jì)框架等)。(4)能夠使用Visual C+ 6.0集成開發(fā)環(huán)境編輯、編譯、運(yùn)行與調(diào)試程序。2數(shù)據(jù)類型、表達(dá)式和基本運(yùn)算(1)掌握C+數(shù)據(jù)類型(基本類型、指針類型)及其定義方法。(2)了解C+的常量定義(整型常量、字符常量、邏輯常量、實(shí)型常量、地址常量、符號(hào)常量)。(3)掌握變量的定義與使用方法(變量的定義及初始化、全局變量、局部變量)。(4)掌握C+運(yùn)算符的種類、運(yùn)算優(yōu)先級(jí)和結(jié)合性。(5)熟練掌握C+表達(dá)式類
2、型及求值規(guī)則(賦值運(yùn)算、算術(shù)運(yùn)算符和算術(shù)表達(dá)式、關(guān)系運(yùn)算符和關(guān)系表達(dá)式、邏輯運(yùn)算符和邏輯表達(dá)式、條件運(yùn)算、指針運(yùn)算、逗號(hào)表達(dá)式)。3C+的基本語句(1)掌握C+的基本語句,例如賦值語句、表達(dá)式語句、復(fù)合語句、輸入、輸出語句和空語句等。(2)用if語句實(shí)現(xiàn)分支結(jié)構(gòu)。(3)用switch語句實(shí)現(xiàn)多分支選擇結(jié)構(gòu)。(4)用for語句實(shí)現(xiàn)循環(huán)結(jié)構(gòu)。(5)用while語句實(shí)現(xiàn)循環(huán)結(jié)構(gòu)。(6)用dowhile語句實(shí)現(xiàn)循環(huán)結(jié)構(gòu)。(7)轉(zhuǎn)向語句(goto,continue,break和return)。(8)掌握分支語句和循環(huán)語句的各種嵌套使用。4數(shù)組、指針與引用(1)掌握一維數(shù)組的定義、初始化和訪問,了解多維數(shù)
3、組的定義、初始化和訪問。(2)了解字符串與字符數(shù)組。(3)熟練掌握常用字符串函數(shù)(strlen,strcpy,strcat,strcmp,strstr等)。(4)掌握指針與指針變量的概念、指針與地址運(yùn)算符、指針與數(shù)組。(5)掌握引用的基本概念、引用的定義與使用。5掌握函數(shù)的有關(guān)使用(1)函數(shù)的定義方法和調(diào)用方法。(2)函數(shù)的類型和返回值。(3)形式參數(shù)與實(shí)在參數(shù),參數(shù)值的傳遞。(5)遞歸函數(shù)。(6)函數(shù)重載。(7)內(nèi)聯(lián)函數(shù)。(8)帶有默認(rèn)參數(shù)值的函數(shù)。6熟練掌握類與對象的相關(guān)知識(shí)(1)類的定義方式、數(shù)據(jù)成員、成員函數(shù)及訪問權(quán)限(public,private,protected)。(2)對象和對
4、象指針的定義與使用。(3)構(gòu)造函數(shù)與析構(gòu)函數(shù)。(4)this指針的使用。(5)對象數(shù)組與成員對象。7掌握類的繼承與派生知識(shí)(1)派生類的定義和訪問權(quán)限。(2)繼承基類的數(shù)據(jù)成員與成員函數(shù)。8. 了解UML的一些相關(guān)知識(shí)(1)UML的發(fā)展史,建模對象。(2)UML的四種類型事物。(3)UML的四種關(guān)系。9. 函數(shù)、運(yùn)算符重載(1)掌握常用運(yùn)算符重載的方法,包括成員函數(shù)重載和友元函數(shù)的重載。(2)掌握虛函數(shù)和純虛函數(shù)的概念。 (3)在成員函數(shù)中實(shí)現(xiàn)自加,重載前置自加運(yùn)算符,重載后置自加運(yùn)算符. (4)重載加法運(yùn)算函數(shù)operator+, 重載賦值運(yùn)算函數(shù)operator=. (5)轉(zhuǎn)換類型運(yùn)算符1
5、0.多態(tài)性(1)運(yùn)算符重載的運(yùn)用。(2)虛函數(shù)的定義。(3)抽象類的聲明。一. 填空1、#include <iostream.h>Using namespace std;int add(int a,int b);int main()int x,y,sum;cout<<"Enter two numbers:"<<'n'/在下畫線處填上語句,完成用cin讀入x和y cin>>x; cin>>y;sum=add(x,y);cout<<"The sum is:"<<
6、;sum<<'n'return 0;int add(int a,int b)/在下畫線處填上語句,完成計(jì)算a與b的和并返回之 return a+b;2、#include <iostream.h>Using namespace std;int main()char name20;cout<<”Hello,your name:”;/在下畫線處填上語句,完成將字符串輸入到數(shù)組name中 cin>>name;/在下畫線處填上語句,完成將name數(shù)組用cout輸出 cout<<name<<endl;return 0;
7、3#include <iostream.h>Using namespace std;int mul(int x,int y) /mul函數(shù)1 return x*y; int mul(int x,int y,int z) /mul函數(shù)2 return x*y*z; void main()int a=3,b=4,c=5;/在下畫線處填上語句,用于調(diào)用mul函數(shù)1cout<<a<<'*'<<b<<'='<<mul(a,b)<<endl;/在下畫線處填上語句,用于調(diào)用mul函數(shù)2cout
8、<<a<<'*'<<b<<'*'<<c<<'='<< mul(a,b,c)<<endl; 4#include <iostream.h>Using namespace std;main()int *p; /聲明一個(gè)整型指針變量p/在下畫線處,用new關(guān)鍵字動(dòng)態(tài)分配一個(gè)int型存儲(chǔ)區(qū),并將首地址賦給pp=new int;*p = 10;cout<<*p; /在下畫線處填上語句,用于撤銷指針p,釋放p指向的存儲(chǔ)空間delete p;r
9、eturn 0;5#include <iostream.h>main()int *p;/在畫線處填上語句,用new關(guān)鍵字動(dòng)態(tài)分配一個(gè)int型存儲(chǔ)區(qū),并將首地址賦給pp=new int;if (!p)cout<<"allocation failuren"return 1;/在下畫線處填上語句,將p所指向的存儲(chǔ)區(qū)賦值20*p=20;cout<<*p;/在下畫線處填上語句,用于撤銷指針p,釋放p指向的存儲(chǔ)空間delete p;return 0;6下列程序的輸出結(jié)果是 7 。#include <iostream>using names
10、pace std;int main() int i = 5; int *p =& i;*p = 7; cout << i << endl; return 0;7下面是用來計(jì)算n的階乘的遞歸函數(shù),請將該函數(shù)的定義補(bǔ)充完整。(注:階乘的定義是n!=n*(n-1)*.*2*1)unsigned fact(unsigned n) if ( n<= 1) return 1; return n*fact(n-1) ; 8與成員訪問表達(dá)式p->name等價(jià)的表達(dá)式是 (*P).name 。9.UML的全稱為 Unified Modeling Language,統(tǒng)一
11、建模語言 。10.UML中有 結(jié)構(gòu)事物,動(dòng)作事物,分組事物,注釋事物 四種類型事物。11.UML中的四種關(guān)系為 依賴,關(guān)聯(lián),泛化,實(shí)現(xiàn) 。12.類Sample的構(gòu)造函數(shù)將形參data賦值給數(shù)據(jù)成員data。請將類定義補(bǔ)充完整。class Samplepublic:Sample(int data=0);Private:Int data;Sample:Sample(int data) 【this->data=data;】 (13)若表達(dá)式(x+(y-z)*(m/n)+3中的變量均為double型,則表達(dá)式值的類型為 【double】 。(14)有如下循環(huán)語句:For(int i=5
12、0; i>20; i-=2) cout<<i<<','運(yùn)行時(shí)循環(huán)體的執(zhí)行次數(shù)是 【15】 。(15)利用表達(dá)式ai可以訪問int型數(shù)組a中下標(biāo)為i的元素。在執(zhí)行了語句int *p=a;后,利用指針p也可訪問該元素,相應(yīng)的表達(dá)式是 【*(p+i)】 。(16)下面是一個(gè)遞歸函數(shù),其功能是使數(shù)組中的元素反序排列。請將函數(shù)補(bǔ)充完整。void reverse(int *a, int size)if(size<2) return;int k=a0;a0=asize-1;asize-1=k;reverse(a+1, size-1
13、);(17)有如下類定義:class Samplepublic:Sample();Sample();Private:Static int date;將靜態(tài)數(shù)據(jù)成員data初始化為0的語句是 【int Sample:data = 0;】(18)“圖形”類Shape中定義了純虛函數(shù)CalArea(),“三角形”類Triangle繼承了類Shape,請將Triangle類中的CalArea函數(shù)補(bǔ)充完整。class Shapepublic:virtual int CalArea()=0;class Triangle: public Shapepublic:Triangleint s, int h: s
14、ide(s),height(h) 【int CalArea(int side,int height)】 return side*height/2 ; private: int side; int height;二.選擇題1 建立派生類對象時(shí),3種構(gòu)造函數(shù)分別是a(基類的構(gòu)造函數(shù))、b(成員對象的構(gòu)造函數(shù))、c(派生類的構(gòu)造函數(shù)),這3種構(gòu)造函數(shù)的調(diào)用順序?yàn)椋ǎ〢 abc B acb C cab D cba答案:A2下面描述中,符合結(jié)構(gòu)化程序設(shè)計(jì)風(fēng)格的是(A) A)使用順序、選擇和重復(fù)(循環(huán))三種基本控制結(jié)構(gòu)表示
15、程序的控制邏輯 B)模塊只有一個(gè)入口,可以有多個(gè)出口 C)注重提高程序的執(zhí)行效率 D)不使用goto語句3下面概念中,不屬于面向?qū)ο蠓椒ǖ氖?D) A)對象 B)繼承 C)類 D)過程調(diào)用4關(guān)于面向?qū)ο蟮某绦蛟O(shè)計(jì)方法,下列說法正確的是(D) A)“封裝性”指的是將不同類型的相關(guān)數(shù)據(jù)組合在一起,作為一個(gè)整體進(jìn)行處理 B)“多態(tài)性”指的是對象的狀態(tài)會(huì)根據(jù)運(yùn)行時(shí)要求自動(dòng)變化 C)基類的私有成員在派生類的對象中不可訪問,也不占內(nèi)存空間 D)在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,結(jié)構(gòu)化程序設(shè)計(jì)方法仍有著重要作用5判斷字符型變量ch是否為大寫英文字母,應(yīng)使用表達(dá)式(D)A ) ch>='A' &a
16、mp; ch<='Z' B ) ch<='A' |ch>='Z'C ) 'A'<=ch<='Z' D ) ch>='A' && ch<='Z'6已知下列語句中的x和y都是int型變量,其中錯(cuò)誤的語句(C)A ) x=y+; B ) x=+y; C ) (x+y)+; D ) +x=y;7執(zhí)行語句序列(D)int n;cin >> n;switch(n) case 1: case 2: cout << &
17、#39;1' case 3: case 4: cout << '2' break;default: cout << '3'時(shí),若鍵盤輸入1,則屏幕顯示A)1 B)2 C)3 D)128關(guān)于動(dòng)態(tài)存儲(chǔ)分配,下列說法正確的是(B)A)new和delete是C+語言中專門用于動(dòng)態(tài)內(nèi)存分配和釋放的函數(shù)B)動(dòng)態(tài)分配的內(nèi)存空間也可以被初始化C)當(dāng)系統(tǒng)內(nèi)存不夠時(shí),會(huì)自動(dòng)回收不再使用的內(nèi)存單元,因此程序中不必用delete釋放內(nèi)存空間D)當(dāng)動(dòng)態(tài)分配內(nèi)存失敗時(shí),系統(tǒng)會(huì)立刻崩潰,因此一定要慎用new9)對類的構(gòu)造函數(shù)和析構(gòu)函數(shù)描述正確的是(A)A 構(gòu)造
18、函數(shù)可以重載,析構(gòu)函數(shù)不能重載 B 構(gòu)造函數(shù)不可以重載,析構(gòu)函數(shù)可以重載 C 構(gòu)造函數(shù)可以重載,析構(gòu)函數(shù)也可以重載 D構(gòu)造函數(shù)不能重載,析構(gòu)函數(shù)也不能重載(10)下列程序的輸出結(jié)果是(A)#include <iostream>using namespace std;int main() char a = "Hello, World" char *ptr = a; while (*ptr) if (*ptr >= 'a' && *ptr <= 'z') cout << char(*ptr +
19、'A' -'a'); else cout << *ptr; ptr+; return 0;A ) HELLO, WORLD B ) Hello, WorldC ) hELLO, wORLD D ) hello, world11) 已知:int m=10;在下列定義引用的語句中,正確的是(A)A ) int &x=m; B )int y=&m; C )int &z; D ) int &t=&m;(17)下列函數(shù)原型聲明中錯(cuò)誤的是(D)A ) void Fun(int x=0, int y=0); B ) void
20、 Fun(int x, int y);C ) void Fun(int x, int y=0);D ) void Fun(int x=0, int y);(12)已知程序中已經(jīng)定義了函數(shù)test,其原型是int test(int, int, int);,則下列重載形式中正確的是(B)A ) char test(int,int,int);B ) double test(int,int,double);C ) int test(int,int,int=0);D ) float test(int,int,float=3.5F);(13)已知函數(shù)f的原型是:void f(int *a, long &a
21、mp;b); 變量v1、v2的定義是:int v1;long v2;,正確的調(diào)用語句是(C) A) f(v1, &v2); B) f(v1, v2); C) f(&v1, v2); D) f(&v1, &v2);(14)有以下類定義class MyClasspublic: MyClass()cout<<1;則執(zhí)行語句MyClass a, b2, *p2;后,程序的輸出結(jié)果是(B)A)11 B)111 C)1111 D)11111(15)關(guān)于動(dòng)態(tài)存儲(chǔ)分配,下列說法正確的是(B)A)new和delete是C+語言中專門用于動(dòng)態(tài)內(nèi)存分配和釋放的函數(shù)B)動(dòng)態(tài)
22、分配的內(nèi)存空間也可以被初始化C)當(dāng)系統(tǒng)內(nèi)存不夠時(shí),會(huì)自動(dòng)回收不再使用的內(nèi)存單元,因此程序中不必用delete釋放內(nèi)存空間D)當(dāng)動(dòng)態(tài)分配內(nèi)存失敗時(shí),系統(tǒng)會(huì)立刻崩潰,因此一定要慎用new(16)關(guān)于友元,下列說法錯(cuò)誤的是(A)A)如果類A是類B的友元,那么類B也是類A的友元B)如果函數(shù)fun()被說明為類A的友元,那么在fun()中可以訪問類A的私有成員C)友元關(guān)系不能被繼承D)如果類A是類B的友元,那么類A的所有成員函數(shù)都是類B的友元(17)在公有派生的情況下,派生類中定義的成員函數(shù)只能訪問原基類的(C) A)公有成員和私有成員 B)私有成員和保護(hù)成員 C)公有成員和保護(hù)成員 D)私有成員、保護(hù)
23、成員和公有成員(18)在C+中用來實(shí)現(xiàn)運(yùn)行時(shí)多態(tài)性的是(D) A)重載函數(shù) B)析構(gòu)函數(shù) C)構(gòu)造函數(shù) D)虛函數(shù)(19)一個(gè)類可以同時(shí)繼承多個(gè)類,稱為多繼承。下列關(guān)于多繼承和虛基類的表述中,錯(cuò)誤的是(C) A)每個(gè)派生類的構(gòu)造函數(shù)都要為虛基類構(gòu)造函數(shù)提供實(shí)參 B)多繼承時(shí)有可能出現(xiàn)對基類成員訪問的二義性問題 C)使用虛基類可以解決二義性問題并實(shí)現(xiàn)運(yùn)行時(shí)的多態(tài)性 D)建立最派生類對象時(shí),虛基類的構(gòu)造函數(shù)會(huì)首先被調(diào)用(20)在一個(gè)類體的下列聲明中,正確的純虛函數(shù)聲明是(A)A) virtual void vf()=0; B) void vf(int)=0;C) virtual int vf(in
24、t); D) virtual void vf(int) (21)在下面的運(yùn)算符重載函數(shù)的原型中,錯(cuò)誤的是(A)A) Volume operator - (double, double);B) double Volume:operator- (double);C) Volume Volume: :operator - (Volume);D) Volume operator - (Volume, Volume);(22)下列關(guān)于繼承方式的描述中,錯(cuò)誤的是(D) A)如果不顯式地指定繼承方式,缺省的繼承方式是私有(private)B)采用公有繼承方式時(shí),基類中的公有成員在派生類中仍然是公有成員C)采
25、用保護(hù)繼承方式時(shí),基類中的保護(hù)成員在派生類中仍然是保護(hù)成員D)采用私有繼承方式時(shí),基類中的私有成員在派生類中仍然是私有成員(23)已知函數(shù)FA調(diào)用FB,若要把這兩個(gè)函數(shù)定義在同一個(gè)文件中,則: DA)FA必須定義在FB之前B)FB必須定義在FA之前C)若FA定義在FB之后,則FA的原型必須出現(xiàn)在FB的定義之前D)若FB定義在FA之后,則FB的原型必須出現(xiàn)在FA的定義之前(24)有如下兩個(gè)類定義class AA;class BB AA v1,*v2; BB v3; int *v4;其中有一
26、個(gè)成員變量的定義是錯(cuò)誤的,這個(gè)變量是:C A)v1B)v2C)v3D)v4(25)有如下類定義(13)B:class XX int xdata;public: XX(int n=0) : xdata (n) ;class YY : public XX int ydata;public: YY(int m=0, int n=0) : XX(m), ydata(n) ;YY類的對象包含的數(shù)據(jù)成員的個(gè)數(shù)是A)1B)2C)3D)4(26)下列有關(guān)運(yùn)
27、算符函數(shù)的描述中,錯(cuò)誤的是:CA)運(yùn)算符函數(shù)的名稱總是以operator為前綴B)運(yùn)算符函數(shù)的參數(shù)可以是對象C)運(yùn)算符函數(shù)只能定義為類的成員函數(shù)D)在表達(dá)式中使用重載的運(yùn)算符相當(dāng)于調(diào)用運(yùn)算符重載函數(shù)(27)下列字符串可以用作C+標(biāo)識(shí)符的是:DA)2009varB)gotoC)test - 2009D)_123(28)下列枚舉類型的定義中,包含枚舉值3的是:AA)enum test RED, YELLOW, BLUE, BLACK;B)enum test RED, YELLOW=4, BLUE, BLACK;C)enum test RED=-1, YELLOW,BLUE, BLACK;D)enu
28、m test RED, YELLOW=6, BLUE, BLACK;(29)有如下程序段:Cint i=1;while (1) i+; if(i = 10) break; if(i%2 = 0) cout << '*'執(zhí)行這個(gè)程序段輸出字符*的個(gè)數(shù)是A)10B)3C)4D)5(30)已知數(shù)組arr的定義如下:Dint arr5 = 1,2,3,4,5;下列語句中輸出結(jié)果不是2的是A)cout << *arr+1 <<endl;B)co
29、ut << *(arr+1)<<endl;C)cout << arr1 <<endl;D)cout << *arr <<endl; (31)計(jì)算斐波那契數(shù)列第n項(xiàng)的函數(shù)定義如下:BInt fib(int n) if (n = 0) return 1; else if (n = 1) return 2; else return fib(n-1)+fib(n-2);若執(zhí)行函數(shù)調(diào)用表達(dá)式fib(2),函數(shù)fib被調(diào)用的次數(shù)
30、是A)1B)2C)3D)4(32)Sample是一個(gè)類,執(zhí)行下面語句后,調(diào)用Sample類的構(gòu)造函數(shù)的次數(shù)是: DSample a2, *p = new Sample;A)0B)1C)2D)3(33)下列關(guān)于虛基類的描述中,錯(cuò)誤的是:CA)使用虛基類可以消除由多繼承產(chǎn)生的二義性B)構(gòu)造派生類對象時(shí),虛基類的構(gòu)造函數(shù)只被調(diào)用一次C)聲明“class B : virtual public A”說明類B為虛基類D)建立派生類對象時(shí),首先調(diào)用虛基類的構(gòu)造函數(shù)(34)下列關(guān)于運(yùn)算符重載的描述中,錯(cuò)誤的是: CA):運(yùn)算符不能重載B)類型轉(zhuǎn)換運(yùn)算符只能作為成員函數(shù)重載C)將運(yùn)算符作為非成員函數(shù)重載時(shí)必須定
31、義為友元D)重載運(yùn)算符應(yīng)完成“下標(biāo)訪問”操作(35)有如下類定義class A char *a;public:A():a(0)A(char *aa) /把a(bǔ)a所指字符串拷貝到a所指向的存儲(chǔ)空間a= A ;strcpy(a,aa);strcpy(a,aa);A() delete a;橫線處應(yīng)填寫的表達(dá)式是A)new charstrlen(aa)+1 &
32、#160; B)charstrlen(aa)+1C)charstrlen(aa) D)new charsizeof(aa)-1(36)將運(yùn)算符重載為類成員函數(shù)時(shí),其參數(shù)表中沒有參數(shù),說明該運(yùn)算是: (B)A)不合法的運(yùn)算符B)一元運(yùn)算符C)無操作數(shù)的運(yùn)算符D)二元
33、運(yùn)算符(37)下列選項(xiàng)中不屬于結(jié)構(gòu)化程序設(shè)計(jì)原則的是:A A)可封裝B)自頂向下C)模塊化D)逐步求精第 一 章 概述1-1 簡述計(jì)算機(jī)程序設(shè)計(jì)語言的發(fā)展歷程。解: 迄今為止計(jì)算機(jī)程序設(shè)計(jì)語言的發(fā)展經(jīng)歷了機(jī)器語言、匯編語言、高級(jí)語言等階段,C+語言是一種面向?qū)ο蟮木幊陶Z言,也屬于高級(jí)語言。1-2 面向?qū)ο蟮木幊陶Z言有哪些特點(diǎn)?解: 面向?qū)ο蟮木幊陶Z言與以往各種編程語言有根本的不同,它設(shè)計(jì)的出發(fā)點(diǎn)就是為了能更直接的描述客觀世界中存在的事物以及它們之間的關(guān)系。面向?qū)ο蟮木幊陶Z言將客觀事物看作具有屬性和行為的對象,通過抽象找出同一類對象的共同屬性(靜態(tài)特征)和行為(動(dòng)態(tài)特征),形成類。通過類的繼承與
34、多態(tài)可以很方便地實(shí)現(xiàn)代碼重用,大大縮短了軟件開發(fā)周期,并使得軟件風(fēng)格統(tǒng)一。因此,面向?qū)ο蟮木幊陶Z言使程序能夠比較直接地反問題域的本來面目,軟件開發(fā)人員能夠利用人類認(rèn)識(shí)事物所采用的一般思維方法來進(jìn)行軟件開發(fā)。C+語言是目前應(yīng)用最廣的面向?qū)ο蟮木幊陶Z言。1-3 什么是結(jié)構(gòu)化程序設(shè)計(jì)方法?這種方法有哪些優(yōu)點(diǎn)和缺點(diǎn)?解: 結(jié)構(gòu)化程序設(shè)計(jì)的思路是:自頂向下、逐步求精;其程序結(jié)構(gòu)是按功能劃分為若干個(gè)基本模塊;各模塊之間的關(guān)系盡可能簡單,在功能上相對獨(dú)立;每一模塊內(nèi)部均是由順序、選擇和循環(huán)三種基本結(jié)構(gòu)組成;其模塊化實(shí)現(xiàn)的具體方法是使用子程序。結(jié)構(gòu)化程序設(shè)計(jì)由于采用了模塊分解與功能抽象,自頂向下、分而治之的方
35、法,從而有效地將一個(gè)較復(fù)雜的程序系統(tǒng)設(shè)計(jì)任務(wù)分解成許多易于控制和處理的子任務(wù),便于開發(fā)和維護(hù)。 雖然結(jié)構(gòu)化程序設(shè)計(jì)方法具有很多的優(yōu)點(diǎn),但它仍是一種面向過程的程序設(shè)計(jì)方法,它把數(shù)據(jù)和處理數(shù)據(jù)的過程分離為相互獨(dú)立的實(shí)體。當(dāng)數(shù)據(jù)結(jié)構(gòu)改變時(shí),所有相關(guān)的處理過程都要進(jìn)行相應(yīng)的修改,每一種相對于老問題的新方法都要帶來額外的開銷,程序的可重用性差。由于圖形用戶界面的應(yīng)用,程序運(yùn)行由順序運(yùn)行演變?yōu)槭录?qū)動(dòng),使得軟件使用起來越來越方便,但開發(fā)起來卻越來越困難,對這種軟件的功能很難用過程來描述和實(shí)現(xiàn),使用面向過程的方法來開發(fā)和維護(hù)都將非常困難。 1-4 什么是對象?什么是面向?qū)ο蠓椒??這種方法有哪些特點(diǎn)?解: 從
36、一般意義上講,對象是現(xiàn)實(shí)世界中一個(gè)實(shí)際存在的事物,它可以是有形的,也可以是無形的。對象是構(gòu)成世界的一個(gè)獨(dú)立單位,它具有自己的靜態(tài)特征和動(dòng)態(tài)特征。面向?qū)ο蠓椒ㄖ械膶ο螅窍到y(tǒng)中用來描述客觀事物的一個(gè)實(shí)體,它是用來構(gòu)成系統(tǒng)的一個(gè)基本單位,由一組屬性和一組行為構(gòu)成。面向?qū)ο蟮姆椒▽?shù)據(jù)及對數(shù)據(jù)的操作方法放在一起,作為一個(gè)相互依存、不可分離的整體-對象。對同類型對象抽象出其共性,形成類。類中的大多數(shù)數(shù)據(jù),只能用本類的方法進(jìn)行處理。類通過一個(gè)簡單的外部接口,與外界發(fā)生關(guān)系,對象與對象之間通過消息進(jìn)行通訊。這樣,程序模塊間的關(guān)系更為簡單,程序模塊的獨(dú)立性、數(shù)據(jù)的安全性就有了良好的保障。通過實(shí)現(xiàn)繼承與多態(tài)性
37、,還可以大大提高程序的可重用性,使得軟件的開發(fā)和維護(hù)都更為方便。面向?qū)ο蠓椒ㄋ鶑?qiáng)調(diào)的基本原則,就是直接面對客觀存在的事物來進(jìn)行軟件開發(fā),將人們在日常生活中習(xí)慣的思維方式和表達(dá)方式應(yīng)用在軟件開發(fā)中,使軟件開發(fā)從過分專業(yè)化的方法、規(guī)則和技巧中回到客觀世界,回到人們通常的思維。1-5 什么叫做封裝?解: 封裝是面向?qū)ο蠓椒ǖ囊粋€(gè)重要原則,就是把對象的屬性和服務(wù)結(jié)合成一個(gè)獨(dú)立的系統(tǒng)單位,并盡可能隱蔽對象的內(nèi)部細(xì)節(jié)。第 二 章 C+簡單程序設(shè)計(jì)2-1 C+語言有那些主要特點(diǎn)和優(yōu)點(diǎn)?解: C+語言的主要特點(diǎn)表現(xiàn)在兩個(gè)方面,一是全面兼容C,二是支持面向?qū)ο蟮姆椒?。C+是一個(gè)更好的C,它保持了C的簡潔、高效、
38、接近匯編語言、具有良好的可讀性和可移植性等特點(diǎn),對C的類型系統(tǒng)進(jìn)行了改革和擴(kuò)充,因此C+比C更安全,C+的編譯系統(tǒng)能檢查出更多的類型錯(cuò)誤。 C+語言最重要的特點(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 解釋每條語句的作用是什么?#include <iostream.h>void main(void)cout<<"Hello!n"cout<&l
39、t;"Welcome to c+!n"解: #include <iostream.h> /指示編譯器將文件iostream.h中的代碼/嵌入到該程序中該指令所在的地方void main() /主函數(shù)名,void 表示函數(shù)沒有返回值 /函數(shù)體標(biāo)志cout<<"Hello!n" /輸出字符串Hello!到標(biāo)準(zhǔn)輸出設(shè)備(顯示器)上。cout<<"Welcome to c+!n" /輸出字符串Welcome to c+!在屏幕輸出如下:Hello!Welcome to c+!2-4 使用關(guān)鍵字const而不
40、是#define語句的好處有哪些?解: const定義的常量是有類型的,所以在使用它們時(shí)編譯器可以查錯(cuò);而且,這些變量在調(diào)試時(shí)仍然是可見的。2-5 請寫出C+語句聲明一個(gè)常量PI,值為3.1416;再聲明一個(gè)浮點(diǎn)型變量a,把PI的值賦給a。解: const float PI = 3.1416;float a = PI;2-6 在下面的枚舉類型中,Blue的值是多少?enum COLOR WHITE, BLACK = 100, RED, BLUE, GREEN = 300 ;解: Blue = 1022-7 注釋有什么作用?C+中有哪幾種注釋的方法?他們之間有什么區(qū)別?解: 注釋在程序中的作用是
41、對程序進(jìn)行注解和說明,以便于閱讀。編譯系統(tǒng)在對源程序進(jìn)行編譯時(shí)不理會(huì)注釋部分,因此注釋對于程序的功能實(shí)現(xiàn)不起任何作用。而且由于編譯時(shí)忽略注釋部分,所以注釋內(nèi)容不會(huì)增加最終產(chǎn)生的可執(zhí)行程序的大小。適當(dāng)?shù)厥褂米⑨?,能夠提高程序的可讀性。在C+中,有兩種給出注釋的方法:一種是延用C語言方法,使用"/*"和"*/"括起注釋文字。另一種方法是使用"/",從"/"開始,直到它所在行的行尾,所有字符都被作為注釋處理。2-8 什么叫做表達(dá)式?x = 5 + 7是一個(gè)表達(dá)式嗎?它的值是多少?解: 任何一個(gè)用于計(jì)算值的公式都可稱為表達(dá)
42、式。x = 5 + 7是一個(gè)表達(dá)式,它的值為12。2-9 下列表達(dá)式的值是多少?1. 201 / 42. 201 % 43. 201 / 4.0解: 1 502 13 50.252-10 執(zhí)行完下列語句后,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á)式。例如:for (x = 0, y = 10; x < 100; x+, y+)2-12 執(zhí)行完下列語句后,n的值為多少?i
43、nt n;for (n = 0; n < 100; n+)解: n的值為1002-13 寫一條for語句,計(jì)數(shù)條件為n從100到200,步長為2;然后用while和dowhile語句完成同樣的循環(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) 這兩條語句的差別是什么?解: 語句i
44、f(x = 3)把3賦給x,賦值表達(dá)式的值為true,作為if語句的條件;語句if(x = 3)首先判斷x的值是否為3,若相等條件表達(dá)式的值為ture,否則為false。2-15什么叫做局部變量?什么叫做全局變量,如何使用全局變量? 解: 局部變量,一般來講就是具有塊作用域的變量;全局變量,就是具有文件作用域的變量。 2-16 已知x、y兩個(gè)變量,寫一條簡單的if語句,把較小的的值賦給原本值較大的變量。解: if (x > y)x = y;else / y > x | y = xy = x;2-17 修改下面這個(gè)程序中的錯(cuò)誤,改正后它的運(yùn)行結(jié)果是什么?#include <io
45、stream.h>void main()int iint j;i = 10; /* 給i賦值j = 20; /* 給j賦值 */cout << "i + j = << i + j; /* 輸出結(jié)果 */return 0;解: 改正:#include <iostream.h>int main()int i;int j;i = 10; / 給i賦值j = 20; /* 給j賦值 */cout << "i + j = " << i + j; /* 輸出結(jié)果 */return 0;程序運(yùn)行輸出:i + j
46、= 302-18 編寫一個(gè)程序,運(yùn)行時(shí)提示輸入一個(gè)數(shù)字,再把這個(gè)數(shù)字顯示出來。解: 源程序:#include <iostream.h> int main()int i;cout << "請輸入一個(gè)數(shù)字:"cin >> i;cout << "您輸入一個(gè)數(shù)字是" << i << endl;return 0;程序運(yùn)行輸出:請輸入一個(gè)數(shù)字:5您輸入一個(gè)數(shù)字是52-19 運(yùn)行下面的程序,觀察其輸出,與你的設(shè)想是否相同?#include <iostream.h>int main()u
47、nsigned 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;return 0;解: 2-20什么叫常量?什么叫變量?解: 所謂常量是指在程序運(yùn)行的整個(gè)過程中其值始終不可改變的量,除了用文字表示常量外,也可以為常量命名,這就是符號(hào)常量;在程序的執(zhí)行過程中其值可以變化
48、的量稱為變量,變量是需要用名字來標(biāo)識(shí)的。2-21寫出下列表達(dá)式的值:1. 2 < 3 && 6 < 92. ! ( 4<7 )3. ! ( 3 > 5) | (6 < 2 )解: 1. true2. false3. true2-22編寫一個(gè)完整的程序,運(yùn)行時(shí)向用戶提問"你考試考了多少分?(0100)",接收輸入后判斷其等級(jí),顯示出來。規(guī)則如下:解: #include <iostream.h> void main()int i,score;cout << "你考試考了多少分?(0100):&quo
49、t;cin >> score;if (score>100 | score<0)cout << "分?jǐn)?shù)值必須在0到100之間!"elsei = score/10;switch (i)case 10:case 9:cout << "你的成績?yōu)閮?yōu)!"break;case 8:cout << "你的成績?yōu)榱迹?quot;break;case 7:case 6:cout << "你的成績?yōu)橹校?quot;break;default:cout << "你
50、的成績?yōu)椴睿?quot; 程序運(yùn)行輸出:你考試考了多少分?(0100):85你的成績?yōu)榱迹?-23用窮舉法找出1100間的質(zhì)數(shù),顯示出來。分別使用while,do-while,for循環(huán)語句實(shí)現(xiàn)。解: 源程序: 使用while循環(huán)語句:#include <iostream.h>#include <math.h> 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
51、)cout << i << "是質(zhì)數(shù)." << endl;i+; 使用dowhile循環(huán)語句:#include <iostream.h>#include <math.h> 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
52、;i+;while(i <= 100); 使用for循環(huán)語句:#include <iostream.h>#include <math.h> void main()int i,j,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是
53、質(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ì)數(shù).73是質(zhì)數(shù).79是質(zhì)數(shù).83是質(zhì)數(shù).89是質(zhì)數(shù).97是質(zhì)數(shù).2-24 比較Break語句與Continue語句的不同用法。解: Break使程序從循環(huán)體和switch語句內(nèi)跳出,繼續(xù)執(zhí)行邏輯上的下一條語句,不能用在別處;continue 語句結(jié)束本次循環(huán),接著開始判斷決定是否繼續(xù)執(zhí)行下一次循環(huán); 2-25 在程序中定義一個(gè)整型變量,賦以1100的值,要求用戶猜這個(gè)數(shù),比較兩個(gè)數(shù)的大小,把結(jié)果提示給用
54、戶,直到猜對為止。分別使用while、dowhile語句實(shí)現(xiàn)循環(huán)。解: /使用while語句#include <iostream.h> void main() int n = 18;int m = 0;while(m != n) cout << "請猜這個(gè)數(shù)的值為多少?(0100):"cin >> m;if (n > m)cout << "你猜的值太小了!" << endl;else if (n < m)cout << "你猜的值太大了!" <&
55、lt; endl;elsecout << "你猜對了!" << endl;/使用dowhile語句#include <iostream.h> void main() int n = 18;int m = 0;docout << "請猜這個(gè)數(shù)的值為多少?(0100):"cin >> m;if (n > m)cout << "你猜的值太小了!" << endl;else if (n < m)cout << "你猜的值太大了
56、!" << endl;elsecout << "你猜對了!" << endl;while(n != m); 程序運(yùn)行輸出:請猜這個(gè)數(shù)的值為多少?(0100):50你猜的值太大了!請猜這個(gè)數(shù)的值為多少?(0100):25你猜的值太大了! 請猜這個(gè)數(shù)的值為多少?(0100):10你猜的值太小了!請猜這個(gè)數(shù)的值為多少?(0100):15你猜的值太小了!請猜這個(gè)數(shù)的值為多少?(0100):18你猜對了! 第三章 函數(shù)3-1 C+中的函數(shù)是什么?什么叫主調(diào)函數(shù),什么叫被調(diào)函數(shù),二者之間有什么關(guān)系?如何調(diào)用一個(gè)函數(shù)? 解: 一個(gè)較為復(fù)雜的系
57、統(tǒng)往往需要?jiǎng)澐譃槿舾勺酉到y(tǒng),高級(jí)語言中的子程序就是用來實(shí)現(xiàn)這種模塊劃分的。C和C+語言中的子程序就體現(xiàn)為函數(shù)。調(diào)用其它函數(shù)的函數(shù)被稱為主調(diào)函數(shù),被其它函數(shù)調(diào)用的函數(shù)稱為被調(diào)函數(shù)。一個(gè)函數(shù)很可能既調(diào)用別的函數(shù)又被另外的函數(shù)調(diào)用,這樣它可能在某一個(gè)調(diào)用與被調(diào)用關(guān)系中充當(dāng)主調(diào)函數(shù),而在另一個(gè)調(diào)用與被調(diào)用關(guān)系中充當(dāng)被調(diào)函數(shù)。調(diào)用函數(shù)之前先要聲明函數(shù)原型。按如下形式聲明:類型標(biāo)識(shí)符 被調(diào)函數(shù)名 (含類型說明的形參表);聲明了函數(shù)原型之后,便可以按如下形式調(diào)用子函數(shù):函數(shù)名(實(shí)參列表)3-2 什么叫內(nèi)聯(lián)函數(shù)?它有哪些特點(diǎn)?解: 定義時(shí)使用關(guān)鍵字 inline的函數(shù)叫做內(nèi)聯(lián)函數(shù);編譯器在編譯時(shí)在調(diào)用處用函數(shù)
58、體進(jìn)行替換,節(jié)省了參數(shù)傳遞、控制轉(zhuǎn)移等開銷;內(nèi)聯(lián)函數(shù)體內(nèi)不能有循環(huán)語句和switch語句;內(nèi)聯(lián)函數(shù)的定義必須出現(xiàn)在內(nèi)聯(lián)函數(shù)第一次被調(diào)用之前;對內(nèi)聯(lián)函數(shù)不能進(jìn)行異常接口聲明;3-3 函數(shù)原型中的參數(shù)名與函數(shù)定義中的參數(shù)名以及函數(shù)調(diào)用中的參數(shù)名必須一致嗎?解: 不必一致,所有的參數(shù)是根據(jù)位置和類型而不是名字來區(qū)分的。 3-4 編寫函數(shù)把華氏溫度轉(zhuǎn)換為攝氏溫度,公式為:C = (F - 32) * 5/9; 在主程序中提示用戶輸入一個(gè)華氏溫度,轉(zhuǎn)化后輸出相應(yīng)的攝氏溫度。解: 源程序見"實(shí)驗(yàn)指導(dǎo)"部分實(shí)驗(yàn)三3-5 編寫函數(shù)判斷一個(gè)數(shù)是否是質(zhì)數(shù),在主程序中實(shí)現(xiàn)輸入、輸出。解: #include <iostream.h>#include <math.h>int prime(int i); /判一個(gè)數(shù)是否是質(zhì)數(shù)的函數(shù)void main()int i;cout << "請輸入一個(gè)整數(shù):"cin >> i;if (
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版舊機(jī)動(dòng)車在線評估及購買合同范本3篇
- 金融科技招投標(biāo)承諾函樣本
- 水利水電沖擊鉆作業(yè)合同
- 基層醫(yī)療衛(wèi)生機(jī)構(gòu)村醫(yī)生聘用
- 精英社區(qū)房產(chǎn)打印社交圈層
- 學(xué)?;顒?dòng)學(xué)生接送客車租賃合同
- 農(nóng)業(yè)機(jī)械焊接施工合同
- 2025版車抵押財(cái)產(chǎn)保全執(zhí)行合同范本3篇
- 農(nóng)業(yè)項(xiàng)目電子招投標(biāo)實(shí)施辦法
- 工業(yè)廠房電梯施工合同
- 跳繩興趣小組活動(dòng)總結(jié)
- 文物保護(hù)項(xiàng)目加固工程監(jiān)理細(xì)則
- 肋骨骨折查房演示
- 五年級(jí)語文備課組工作總結(jié)三篇
- 浙江農(nóng)林大學(xué)土壤肥料學(xué)
- “戲”說故宮智慧樹知到答案章節(jié)測試2023年中央戲劇學(xué)院
- 四大名著《西游記》語文課件PPT
- 三年級(jí)道德與法治下冊第一單元我和我的同伴教材解讀新人教版
- 紅星照耀中國思維導(dǎo)圖
- YY/T 0506.8-2019病人、醫(yī)護(hù)人員和器械用手術(shù)單、手術(shù)衣和潔凈服第8部分:產(chǎn)品專用要求
- GB/T 6478-2015冷鐓和冷擠壓用鋼
評論
0/150
提交評論