東南大學(xué)C第二學(xué)期期末復(fù)習(xí)二含答案_第1頁
東南大學(xué)C第二學(xué)期期末復(fù)習(xí)二含答案_第2頁
東南大學(xué)C第二學(xué)期期末復(fù)習(xí)二含答案_第3頁
東南大學(xué)C第二學(xué)期期末復(fù)習(xí)二含答案_第4頁
東南大學(xué)C第二學(xué)期期末復(fù)習(xí)二含答案_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、一、選擇題:(每題1分,共30分)1. 以下程序的輸出結(jié)果是 一A) 1B) 70 9D) 11ttincludeOvoid fut (int*s, int p23)*s二pll 1; void main ()static int a2 3 = 1, 3, 5, 7, 9, 11;int *p;p二new int;fut (&p, a);cout<<*p<<endl;2. 執(zhí)行以下程序后,y的值是,B) 一A) 17B) 18C) 10D) 20 ttincludeO void main ()static int a2, 4, 6, & 10;int y

2、二0, x, *p; p 二&al;for (x 二 0;x 3;x+)y+二* (p+J ;cout<<y<<endl;3.定義一下類:class X int a ;public* X (int x=0 ) a二 x ; ;class Y: public X int b;pub lie :Y ( int x=0, int y二0) : X (y) b 二 x :;在下列選項(xiàng)的說明語句中,存在語法錯(cuò)誤的是(OAD. Y b3 ( 10 ) ; XC. X b2 ( 2 , 3 ) ; Y &a2 二 b2 ;a3 ( b3 );4. 下列尖于虛函數(shù)描述中

3、正確的是M 。A. 虛函數(shù)可以是一個(gè)static類型的靜態(tài)成員B. 虛函數(shù)可以是一個(gè)非靜態(tài)成員C. 虛函數(shù)實(shí)現(xiàn)靜態(tài)多態(tài)性D. 基類中釆用virtual說明一個(gè)虛函數(shù)后,派生類中定義相同的原 型的虛函數(shù)時(shí)5可不必加virtual說明5. 若磁盤上己存在某個(gè)文本文件,其全路徑文件名為:d : ¥dir¥,下列語句中能以”讀文本文件”的方式打開該文件的是血°A 辻 stream file( d:¥dir¥“);B. fstream file( "d:¥¥dir¥¥” );C fstream file

4、(ios:in);( d:¥dir¥);D. ifstream * file二new ifstream( d:¥¥dir¥¥”);6. 定義如下變量和數(shù)組:int i ;int x二1, 2, 3, 4, 5, 6, 7, 8, 9;則以下語句的輸出結(jié)果是©°for(i=0 ; i<3 ; i卄)coutxi 2-i;7.A- 159 B 147 C.357 D. 369void g( (void*) (int, int,int), int, int)的參數(shù)個(gè)數(shù)是(A) oA. 3個(gè)B5個(gè)C. 1個(gè)D無法確定

5、8. 現(xiàn)需要對(duì)list類對(duì)象使用的邏輯運(yùn)算符“二重載,以下函數(shù)聲 明(28)是正確的。A. 1 ist & list : : operator'' (const list &a);B. list list : : operato(const list &a);C. bool & list: : operator 二二(const list & a):D bool list : * operator (const list &a);9. 若有說明:int t 3 2, *p=t 0;能正確表示t 2 1的一組表達(dá)式是_(D)_A)

6、*(t+2)+1, *(p0+5), *t+3B) *(t+2+l),*譏2l,*(t2+l)C) * (t+2) +1, *p5, * (t 0 +2) +1D) *(*(t+2)+l),p5,*(t2+l)10.若有說明:int t3 2,*p=t01;能正確表示t0的一組表達(dá)式是_(27)_A) * (t+0),P*pD)*t+O. *dOI11 若有說明:int t 3 21;則表達(dá)式:&tO+l表示(B) _A)第1行的行指針,一級(jí)指針B)第1行的行指針,二級(jí)指針0元素t 0的地址D)元素t 1 0的地址12設(shè)有說明:int *p, *q, *t,x=5;運(yùn)行以下程序段,輸出

7、結(jié)果是一(C)A) 5隨機(jī)數(shù)B)隨機(jī)數(shù)5 C)出錯(cuò)D) 5 5p 二 new int ;t 二 p;p 二 q;q 二 t; delete p;cout<<*p<<, ¥t*qendl:二、閱讀程序題1以下程序運(yùn)行后,輸出結(jié)果是 (3) (4)。(8分)ttinclude <>int f (int a, int b) 4*if (a>b) return b+a;else coutb*f (+a, -一b) (< ' 助;24*return a*f (a, b);void main () int n;n=f (1, 3);cout

8、<n<<, ¥n ;2程序ncludevoid fun (int *s,int n) int f二10;if (n=l ' n=2) *s=l;else fun (&f, n-2);*s=f*5;coutf« ¥n ;void main() int x=20;fun (&x, 5); cout<< * x- *x« ¥n ;程序輸出的第一行是4,第二行是5,第三行是6o3程序include <>ttinclude <>Doublex, u, v, f (double)

9、, g (double), t (double,double(*) (double);void main () u 二 t (x, f);v 二 t (x, g):cout<<* J u=, Csetw (4) <<u<endl:cout v二Csetw (4) <<v<endl ;double t (double a, double (*f) (double) return (*f) (a*a);double f (double x ) return x+;double g (double x) return ;程序輸出的前2行分別是:7,8

10、u二18 v二144程序include ”class base int i ; public:base (int 1=0) : i (I) virtual int sum() return i:;class D : public baseint j;public:D(int 1=0, int J=0) : base (I) , j (J) int sum() return base: : sum () + j ; ; void call (base b) coutsum 二"()(endl;void main() base b (10),* pb;D d(10, 47);pb 二&a

11、mp;d;call(b);call(d);call (*pb);,是第二行是10第三行是程度輸出的第一行911 05 程序ncludeint f (int x)int s=0;for(int j 二 2;j二 x;j+)if(x%j=0) x/二 j;s+二 j ;return s;void main(void) for(int i二3;i10;i+)if (i=f (i) cout<<i<<endl ;程序運(yùn)行后輸出的第一行是11第二行是13第三行是146 程度ttinclude ”void f (int j) 辻(! j) cout«j: return;

12、if(j%2) f(j/10) ; coutj%10;else cout«j%10;f (j/10) :void main() f (0) ;cout« ¥n ;f (1357) ; cout,¥n,;f (2468) ; cout<, ¥n ;第二行是程序運(yùn)行后輸出的第一行是第二行是7程序ncludeOclass Xpublic:void virtual f () coutX: 11 (endl; void virtual g()coutCX: 22氣endl;g(int i 二 10) cout<class A:public X

13、public:void f () coutA: : 33 (<endl;class B:public A public:void f () coutB: 44, z«endl: void B:55 endl:;void main(void)B b;X *px 二&b ;0px->f () : px->g();程序輸出的第一行是,第二行是,第三行是8程序ttinclude (>class A int x;X=1A_1public*A_2A(int a)A_2 x=a;2coutx= ¥x,¥t' ¥n ;A 2A (

14、A &s) x=+l ; cout«, f A_2* Ye,¥n ;A() coutCxC* ¥t' <W ¥rr ;void main(void)f2=A(fl) ; fl 二 A(f2); f 2二A (fl);程序共輸出行,第一行是,第四行是,第六行是ox=4, y=10A9程序ttincludeOclass Aint y ;static int x;public:operator int () return x+y;A operator +(int) return A(x+, y+) ;A(int x二2, int y二3)

15、 A: :x 二 x+x;A: :y 二 y+y;void print () coutx 二二"yendl;int A*:x=23;void main(void)0;A a(30, 5),b(10, 8),c;for (i=l;i<=3;i+)p=p+-:i+ ;/ A0;int i 二 a+b; cout"i 二"i<endl; C卄;0;程序輸出的第一行是_,第二行是一四行是一,第五行是010. ttinclude <>int i=l;int fac (int n) static int f 二 1 ;f 二 f*n; return (

16、f);void main () int i, p=0;for (i二1;i<=3;i+)p二fac (i);coutpendl;for (i=l;i<=3;i+)p=p+-:i+ ;/ A0;for (i=l: i<=3; i+) p=p+-: i+ ;/ AP二 0;'第三行是'第cout<<p«,p二 1;for(i二1:i二3;i+) p 二 p*-:i; cout<<p<<endl;問題1:該程序的第一行輸出為(11. 下列程序的輸出結(jié)果是一 0ncludeint a二100;void fun (int i

17、, int j, int *k) j+二 i ;*k=j-i;void main() int a, b, c;fun(17, 1 & &a);fun(19, a, &b);fun (a, b, &c);cout<<a<<5 , <<c<<endl*#knclude<>12. W程序運(yùn)行后,輸出結(jié)果是_A public:/ B第二行輸出為1& 18 , 18int i ;void print () cout<i insert A ¥n;class B:public Apublic:

18、¥n ; insertvirtual void print () cout<i,2 insert Bclass C*public Bpublic*C( )A:i二10; int i;3void print ()Ccout<<i<<,insert C ¥n;cout<<i<<* insert A: : i ¥n ;void main() A a;A *pa;B b, *pb;C c, *pc;=1+二 1+二 1) ; pc 二&c;pc->print () ; pb 二&c;pb->

19、print () ; pa 二&c;pa->print ();三、完善程序1.下面程序的功能是:先輸入一行字符串,并從輸入的字符串中找到最小的字符(其ASCII值最?。?,用min保存該字符。然后將該字符前的 所有字符順序向后移動(dòng)一個(gè)字符的位置。最后,將保存的字符放在該 字符串的第0個(gè)位置上。例如:設(shè)輸入的字符串為“bcdfae”,其中字 母a為最小字符,經(jīng)移動(dòng)處理后,輸出的字符串為“abcdfe”。ttincludeOvoid fun ( / char * strchar mun, *p; ;p二q二strmin 二 *p+;whil e(*p!=0)if () min 二 *p

20、 ; q 二 p ;/ *p<minp+;P 二 q ;While() *P 二 *(pT); Tq>st:r/p *q 二 min;void main () char str 80;(str, 80);fun (str) ; cout<<str<<r ¥ ;2. 本程序被完善后輸出以下結(jié)果。C+ languge programmingThe end at this time of day!ttincludeOttincludeOclass Apublic'static int i:char *ps;A (char) / /*sps 二 n

21、ew char strlen(s)+l;strcpy (, s) ; /ps、A()P, q辻() cout<<z, The end; 7'i=0else coutat this time of day! ¥nif(ps) deleteps;i+ ;A & operator 二(A &b) ifps 二 new char strlen ()+1;/strcpy (ps,;else ps二0;return;/,;* this;int A:i;void main() A si ( "programniing” ), s2 (“C+ langu

22、ge'') ; cout ¥t,;s2二si;cout«<* ¥n';3. 以下程序功能是:從一個(gè)字符串str中刪除或添加一個(gè)指定的字符, 若指定的字符C出現(xiàn)在str中,則從str中刪除第一個(gè)值為c的字符; 否則把字符C添加到str的尾部。在程序中,函數(shù)dele ()從字符串中 刪除一個(gè)字符;函數(shù)add ()添加一個(gè)字符到字符尾部;函數(shù)search ()用于查找指定的字符是否在字符串中,若在,則返回所在位置,否則 返回0。ttinclude <>Sinclude (>char *sercher(char *s, ch

23、ar ch) while (*s)if (*s+二二 ch) return; /sTreturn 0;void dele (char *s,char ch) char *pl 二 search (s, ch), *p2 二 pl+1;wh訂e (*p2) *p 1 二/*p2+*pl¥0,;void add (char *s,char ch) wh訂e(*s) s+;二ch;*s¥0 '/*s+void main() char str80二abcl2123, c;cout<<str<<, ¥n ;cout“輸入一個(gè)字符";

24、cin>>c;void ; if (search (str, c) fp 二 dele; / (*p) (charchar)else fp=add;fp ( ) ; coutCsfo ;/ (str, c)4. 班主任根據(jù)全班n個(gè)學(xué)生某課程的考試成績建立一個(gè)鏈表,每個(gè)節(jié)點(diǎn)包 括學(xué)號(hào)、成績和該成績?cè)谌嗟拿?。最后按排名順序輸出學(xué)號(hào)和成績。程序10分ttincludeOstruct nodeint grade, n;long num; node *point;;node *trans (node *h, int n) /建立含報(bào)名者的檔案鏈表node *p;p 二 new node

25、;c in>>p->num>>p->grade;p->n 二 0; ;/ node *h=pfor (int i二0; inT ; i+) p->point 二 new node; ; ,/p 二 p->point;c in»p->num>>p->grade ; p->n 二 0;p-> point 二 NULL;:return h;node *sort (node *head, int n) /按成績排名次并輸出node *p,*q;int t二0, k二 1; p 二 head;while(

26、k<=n) p 二 head;while(p!二NULL)if (&&p->grade>t) , 7p->n 二二 0t-p->grade; q 二 p; p 二 p->point;else p=p->point;q->n 二 k; ; /k+; 七二 0;cout <q->num<<, ¥t' <q->grade<<, ¥t' <q->n<<* ¥n ;return head;void main () node

27、student; int n;student 二 NULL; cin>>n;student二trans(student, n);cout«z, ¥nnumber:, « ¥t “ <z, grade* / « ' ¥t排名:¥n;student 二 sort (student, n);class Square public Point /帶顏色的矩形(square)類double hx, hy;char *color;public*Square () hx二0;hy二0;Square (double

28、 xv, double yv, double hxv, double hyv, char *s) :(11)hx 二 hxv ; hy 二 hyv ;co1ornew charL9;strcpy (color,s);Square () : Point (rr) /拷貝構(gòu)造函數(shù) / Square&rrhx 二;hy 二;color 二 new char strlen() +6;strcat (strcpy( ),“);/. /color,/Yellowvoid Show();void Square: : Show() /輸出矩形的左下角坐標(biāo)寬度高度和顏色Point: : ;/Show()cout¥twidth=,hx« jhigh二Chy;coutcolor=, * <<color,¥n ;void main () Square si (1, 3, 6, 9, "red"), s2 (si);cout矩形¥t';0;cout<”矩形¥t';0;6 以下程序?qū)崿F(xiàn)一個(gè)由動(dòng)態(tài)數(shù)組構(gòu)成的線性表的類,在該類的線性表中存 放若干個(gè)實(shí)數(shù)。通過重載運(yùn)算符實(shí)現(xiàn)兩個(gè)線性對(duì)應(yīng)元素間的賦值,重載 提取

溫馨提示

  • 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. 人人文庫網(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)論