華科C期末考試試卷答案_第1頁
華科C期末考試試卷答案_第2頁
華科C期末考試試卷答案_第3頁
華科C期末考試試卷答案_第4頁
華科C期末考試試卷答案_第5頁
已閱讀5頁,還剩4頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2008-2009學(xué)年度第二學(xué)期

華中科技人當(dāng)《C++語言程序設(shè)計(jì)》試卷(A)

(考試時(shí)間:150分鐘考試方式:閉卷)

所有答案必須寫在答題紙上

一、單項(xiàng)選擇題(30小題,每小題1分,共30分)

1、C++程序中的語句必須以(B)結(jié)束

A冒號(hào)B分號(hào)C空格D花括號(hào)

2、下列選項(xiàng)中,(A)不是分隔符

A標(biāo)識(shí)符B;C:D()

3、執(zhí)行語句

inta=10,b;

int&pa=a,&pb=b;

后,下列正確的語句是(B)

A&pb=a;Bpb=pa;C&pb=&pa;D*pb=*pa;

4、設(shè)I=1,J=2,則表達(dá)式I+++J的值為(C)

A1B2C3D4

5、執(zhí)行下列語句后,

intx,y;

x=y=1;++x||++y;

y的值是(C)

A不確定B0C1D2

6、逗號(hào)表達(dá)式

(x=4*5,x*5),x+25

的值為(D)

A25B20C100D45

7、已知inti,x,y;在下列選項(xiàng)中錯(cuò)誤的是(C)

Aif(x&&y)i++;Bif(x=y)i——;

Cif(xy)i——;Dif(x+y)i++;

8、i=2,執(zhí)行下列語句后的值為(B)

switch(i)

{case1:i++;

case2:i---;

case3:++i;break;

case4:i;

default:i++;

A1B2C3D4

9、已知inti=3;下面do_while語句執(zhí)行時(shí)循環(huán)次數(shù)為(B)

do{i一;cout?i?endl;}while(i!=1);

A1B2C3D無限

10、以下為死循環(huán)的程序段是(B)

Afor(intx=0;x<3;){x++;};

Bintk=0;

do{++k;}while(k>=0);

Cinta=5;while(a){a---;};

Dinti=3;for(;i;i---);

11、以下正確的函數(shù)原型為(1))

Af(intx;inty);Bvoid(x,y);

Cvoid(intx,y);Dvoidf(int,int);

12、有函數(shù)原型voidfun2(int*),下面選項(xiàng)中,正確的調(diào)用是(C)

Adoublex=2.17;fun2(&x);Binta=15;fun2(a*3.14);

Cintb=100;fun2(&b);I)fun2(256);

13、有聲明

intfund(int);int(*pf)(int)=fund;

下面選項(xiàng)正確的是(B)

Ainta=15;intn=fun4(&a);Binta=15;cout?pf(a*3.14);

Ccout?(*pf)(256);Dcout?*pf(256);

14、函數(shù)參數(shù)的默認(rèn)值不允許為(C,D)

A全局常量B全局變量

C局部變量D函數(shù)調(diào)用

15、下列的描述中(B)是錯(cuò)誤的。

A使用全局變量可以從被調(diào)用函數(shù)中獲取多個(gè)操作結(jié)果

B局部變量可以初始化,若不初始化,則系統(tǒng)默認(rèn)它的值為0

C當(dāng)函數(shù)調(diào)用完后,靜態(tài)局部變量的值不會(huì)消失

D全局變量若不初始化,則系統(tǒng)默認(rèn)它的值是0

16、以下對(duì)一維數(shù)組a的正確定義是(C)

Aintn=5,a[n];Cinta(5);

Bconstintn=5;inta[n];Dintn;cin?n;inta[n];

17^已知inta[10]=知1,2,3,4,5,6,7,8,9}和*p=a,則不能表示數(shù)組a中元素的式子是

(C)

A*aB*pCaDa[p-a]

18、以下不能對(duì)二維數(shù)組a進(jìn)行正確初始化的語句是(C)

Ainta[2][3]=0;

Binta[][3]={{0,1},{0});

Cinta[2][3]={{0,1},{2,3},{4,5}}

Dinta[][3]={{0,1},{2,3,4},{5,6},{7})

19、已知inta[3][3]={1,2,3,4,5,6,7,8,9},則不能表示數(shù)組元素a[2][1]的地址是(B)

A&a[2][1]B*(a[2]+1)

Ca[2]+1D*(a+2)+1

20、若用數(shù)組名作為調(diào)用函數(shù)的實(shí)參,則傳遞給形參的是(A)

A數(shù)組存儲(chǔ)首地址C數(shù)組的第一個(gè)元素值

B數(shù)組中全部元素的值D數(shù)組元素的個(gè)數(shù)

21、下列描述中,錯(cuò)誤的是(A)

A輸出字符指針就是輸出字符串

B輸出字符指指針的間接引用就是輸出單個(gè)字符

C具有相同字符的兩個(gè)字符串常量相等

D兩個(gè)數(shù)組名的比較是地址的比較

22、判斷字符串si是否大于字符串s2的表達(dá)式為(D)

Asi>s2Bstrcmp(si,s2)==0

Cstrcpy(si,s2)>0Dstrcmp(s2,si)>0

23、在下列結(jié)構(gòu)變量的定義中,不正確的是(D)

AstructemployeeBstruct

{charname[20];{charname[20];

longcode;longcode;

}emp;}emp;

CstructemployeeDstruct

{charname[20];{charname[20];

longcode;longcode;

);}employee;

employeeemp;employeeemp;

24、假定有以下聲明和定義,則下面引用形式錯(cuò)誤的的(B)

structstudent

{intnum;

floatscore;

}stu[3]={{1001,80},{1002,75},{1003,91}},*p=stu;

Ap->numB(p++).numC(p++)->numD(*p).num

25、若有以下聲明和定義,則下列錯(cuò)誤的引用是(D)

structworker

{intno;

charname[20];

}w,*p=&w;

Aw.noBp->noC(*p).noD*p.no

26、關(guān)于類和對(duì)象不正確的說法是(C)

A類是一種類型,它封裝了數(shù)據(jù)和操作

B對(duì)象是為類的實(shí)例

C一個(gè)類的對(duì)象只有一個(gè)

D一個(gè)對(duì)象必屬于某個(gè)類

27、下面對(duì)構(gòu)造函數(shù)的不正確描述是(B)

A系統(tǒng)可以提供默認(rèn)的構(gòu)造函數(shù)。

B構(gòu)造函數(shù)可以有參數(shù),所以也可以有返回值

C構(gòu)造函數(shù)可以重載。

D構(gòu)造函數(shù)可以設(shè)置默認(rèn)參數(shù)。

28、在類定義的外部,可以被訪問的成員有(C)

A所有類成員Bprivate或protected的類成員

Cpublic的類成員Dpublic或private的類成員

29、在下列選項(xiàng)中,(C)是錯(cuò)誤的。

Agets和函數(shù)puts可以輸入輸出包含空格的字符串

Bcin不能輸入包含空格的字符串

Ccout不能輸出包含空格的字符串

D使用賦值運(yùn)算符總可以對(duì)字符數(shù)組整體賦值

30、下列選項(xiàng)中,(C)具有文件作用域。

A語句標(biāo)號(hào)B局部變量C全局變量D形式參數(shù)

二、程序填空(每空2分,共10分)

1、函數(shù)yanghui的功能是把楊輝三角形的數(shù)據(jù)賦給二維數(shù)組的下半三角,請(qǐng)?zhí)羁铡?/p>

voidyanghui(intx[6][6])

(

inti,j;

x[0][0]=l;

for(i=l;i<6;i++)

(

x[i][0]=_x[i][i]—(1)=1;

for(j=l;j<i;j++)

x[i]|j]=c(i,j)(2);〃此處c(i,j)為求組合的函數(shù)

2、函數(shù)fun的功能是逆置數(shù)組元素,數(shù)組a有n個(gè)元素,請(qǐng)?zhí)羁铡?/p>

voidfun(inta[],intn)

{inti,t;

for(i=0;i<_n/2_(3)___;i++)

(

t=a[i];

a[i]=a[_n-l-i_(4)___];

_a[n-l-i]_(5)___=t;

)

)

三、程序分析題:給出下面各程序的輸出結(jié)果。(5小題,每小題4分,共20分)

1>將下列程序的運(yùn)行結(jié)果寫在右邊空白位置

#include<iostream.h>

voidmain()

{inti,s=0;

for(i=0;i<5;i++)

switch(i)

{case0:s+=i;break;

case1:s+=i;break;

case2:s+=i;break;

default:s+=2;

)

cout<〈"s="<<s<<endl;

S=7

2、將下列程序的運(yùn)行結(jié)果寫在右邊空白位置

/include<iostream.h>

intfl(inta,intb){returna+b;}

intf2(inta,intb){returna-b;}

intf3(int(*t)(int,int),inta,intb){return(*t)(a,b);

voidmain()

{int(*p)(int,int);

P=fl;

cout<<f3(p,4,8)<<endl;

P=f2;

cout?f3(p,8,4)?endl;

)

12

4

3、將下列程序的運(yùn)行結(jié)果寫在右邊空白位置

intf(int[][3],int,int);

#include<iostream.h>

voidmainO

{inta[][3]={0,1,2,3,4,5,6,7,8};

cout?f(a,3,3)?endl;

)

intf(inta[][3],introw,intcol)

{inti,j,t=1;

for(i=0;i<row;i++)

for(j=0;j<col;j++)

{a[i][j]++;

if(i=j)t*=a[i][j];

}

returnt;

}

45

4、將下列程序的運(yùn)行結(jié)果寫在右邊空白位置

#include<iostream.h>

#include<math.h>

classpoint

{public:

point(floatx,floaty)

{a=x;b=y;cout<<"點(diǎn)("<<a<<","<<b<<")";}

friendfloatd(point&A,point&B)

{returnsqrt((A.a-B.a)*(A.a-B.a)+(A.b-B.b)*(A.b-B.b));}

private:

floata,b;

};

voidmain()

{pointpl(2,3);

cout<<“到〃;

pointp2(4,5);

cout<<”的距離是:"<<d(pl,p2)?endl;

)

點(diǎn)(2,3)到點(diǎn)(4,5)的距離是:2.82843

5、將下列程序的運(yùn)行結(jié)果寫在右邊空白位置

#include<iostream.h>

classT

{public:

T(intx){a=x;b+=x;};

staticvoiddisplay(Tc)

{cout<<,,a=,/<<c.\t'<X"b=〃<〈c.b<<endl;}

private:

inta;

staticintb;

);

intT::b=5;

voidmainO

{TA(3),B(5);

T::display(A);

T::display(B);

}

a=3b=13

a=5b=13

四、程序設(shè)計(jì)題(4小題,每小題10分,共40分)

1、輸入某學(xué)生成績,若成績在通常情況下85分以上輸出”verygood",若成績在60分到

85分之間輸出"goodH,若成績低于60分輸出"nogood”。

#include<iostream>

usingnamespacestd;

voidmainO

(

intscore;

cout<<〃輸入分?jǐn)?shù):〃;

cin>>score;

if(score>=85)cout?,zverygood!〃;

elseif(score>=60)cout?z,good!";

elsecout?/znogood!”;

}

2、編寫一個(gè)程序,包含三個(gè)重載的display函數(shù)和一個(gè)主函數(shù)。要求第一個(gè)函數(shù)輸出double

值,前面用字符串“adouble:"引導(dǎo),第二個(gè)函數(shù)輸出一個(gè)int值,前面用字符串“aint:"

引導(dǎo),第三個(gè)函數(shù)輸出一個(gè)char字符值,前面用字符串"achar:"引導(dǎo),在主函數(shù)中分別

用double>int和char型變量作為實(shí)參調(diào)用display函數(shù)。

#include<iostream>

usingnamespacestd;

voiddisplay(doublex)

(

cout<<z,adouble:zz<<x;

)

voiddisplay(intx)

(

cout<<z,aint:〃<〈x;

)

voiddisplay(charx)

{

cout<<,,achar:zz?x;

)

voidmain()

(

display(1.345);cout<<endl;

display(3);cout<<endl;

display('a');cout<<endl;

)

3、編寫程序,按照指定長度生成動(dòng)態(tài)數(shù)組,用隨機(jī)數(shù)對(duì)數(shù)組元素賦值,然后逆置該數(shù)組元

素。輸出逆置前后的數(shù)組元素序列。要求逆置時(shí)不使用輔助數(shù)組。

#include<iostream>

#include<ctime>

#include<cstdlib>

#include<iomanip>

usingnamespacestd;

voidmain()

(

intn;

cout<<"輸入數(shù)組長度:”;

cin>>n;

int*p=newint[n];

srand(unsigned(time(0)));

for(int*a=p;a<p+n;++a)

(

*a=rand()%n;

溫馨提示

  • 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)論