南京信息工程大學C++期中試卷_第1頁
南京信息工程大學C++期中試卷_第2頁
南京信息工程大學C++期中試卷_第3頁
南京信息工程大學C++期中試卷_第4頁
南京信息工程大學C++期中試卷_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

南京信息工程大學濱江學院

2011—2012學年第一學期

面向對象程序設計課程試卷(期中卷)

注意:1、本課程為—必修(表明必修或選修),學時為51,學分為3

2、本試卷共10頁:考試時間120分鐘:出卷時間:2011年11月

3、姓名、學號等必須寫在指定地方;考試時間:2011年11月—日

4、本考卷適用專業(yè)年級:網(wǎng)絡工程、實驗班任課教師:李振宏

題號一二三四五七八九十十一十二總分

以上內容

得分

為教師填

閱卷入寫)

業(yè)年級班級

學號姓名

請仔細閱讀以下內容:

1、考生必須遵守考試紀律,本人已經閱讀并清楚了解《南京信息工程大學濱江學

院考試紀律規(guī)定》。

2、所有考試材料不得帶離考場。

3、考生進入考場后,須將學生證或身份證放在座位的左上角。

4、考場內不許抽煙、吃食物、喝飲料。

5、考生不得將書籍、作業(yè)、筆記、草稿紙帶入考場,主考教師允許帶入的除外。

6、考試過程中,不允許考生使用通訊工具。

7、開考15分鐘后不允許考生進入考場,考試進行30分鐘后方可離場。

8、考生之間不得進行任何形式的信息交流。

9、除非被允許,否則考生交卷后才能離開座位。

一、選擇題(每2.5分,共75分)

(1)卜列關于C++關鍵字的說法中正確的是D

A)關鍵字是用戶為程序中各種需要命名的“元素”所起的名字

B)關鍵字是對程序中的數(shù)據(jù)進行操作的一類單詞

C)關鍵字是在程序中起分割內容和界定范圍作用的一類單詞

D)關鍵字是C++中預先定義并實現(xiàn)一定功能的一類單詞

(2)下列關于C++函數(shù)的描述中正確的是B

A)主函數(shù)是程序的入口,它由用戶定義的函數(shù)調用

B)函數(shù)在調用之前必須先被聲明

C)每個用戶定義的函數(shù)只能被其他函數(shù)調用一次

D)函數(shù)是C++中面向對象程序設計框架的基本組成單元

(3)C++語言中運算對象必須是整型的運算符是A

A)%=B)/C)=D)<=

(4)在C++語言中,退格符是D

A)\nB)\tC)\fD)\b

(5)有如下程序段D

#include<iostream.h>

voidmain()

{inta=14,b=15,x;

charc='A';

x=(a&&b)&&(c<'B');

cout?x;}

執(zhí)行該程序段后,x的值為

A)tureB)falseC)0D)1

(6)#include<iostream.h>

voidmain()

{intn=9;

while(n>6){n—;

cout?n;}}

該程序的輸出結果是B

A)987B)876C)8765D)9876

(7)如下程序的執(zhí)行結果是A

#include<iostream.h>

voidmain()

{staticinta[]={1,7,3,9,5,11);

int*p=a;

*(p+3)+=4;

cout?*p?,',M?*(p+3);}

A)1,13B)1,16C)3,13D)1,14

(8)下面說明不正確的是D

A)chara[10]二"china”;

B)chara[10],*p=a;p=Mchina";

C)char*a;a=Hchina";

D)chara[10],*p;p=a="chinan;

(9)F列程序的輸出結果是C

#include<iostream.h>

voidmain()

{doubled=3.2;

intx,y;

x=1.2;

y=(x+3.8)/5.0;

cout?y*d?endl;}

A)3B)3.2C)0D)3.07

(10)有以下程序

#include<iostream.h>

intf(intn)

{if(n==l)return1;

elsereturnf(n-1)+1;}

voidmain()

{intij=0;

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

cout?j;}

程序運行后的輸出結果是B

A)4B)3C)2D)1

(IDC++語言中類的定義的結束聲明的符號是A

A)}B),C);D){

(12)關于類定義中的語句錯誤的是B

classA

{inti;

Aa;

A*b;

char*ch;};

A)inti;B)Aa;C)A*b;D)char*ch;

(13)執(zhí)行下面的程序段后,變量k中的值為A

#include<iostream.h>

voidmain()

{intk=3,s[2];

s[0]=k;k=sL1]*10;

cout?k;}

A)不定值B)33C)30D)10

(14)關于語句

#include<iostream>

usingnamespacestd;

voidmain()

{cout?100.8989663?'';

cout?fixed?100.8989663?'';

cout?scientific?100.8989663?'r;}

的輸出結果為A

A)100.899100.8989661.008990e+002

B)100.8989663100.8989661.008990e+002

C)100.899100.8989661.008989e+002

D)100.899100.89896631.008989e+002

(15)以下程序的結果是D

#include<iostream.h>

voidmain()

{char*p="abcdefgh",*r;

long*q;

q=(long*)p;

q++;

r=(char*)q;

cout?r?endl;}

A)defgB)cdefC)ghabD)efgh

(16)以下程序的輸出結果是A

#include<iostream.h>

voidmain()

{charc=1z’;

cout?c-25;}

A)97B)ZC)z-25D)z

(17)有以下程序

#include<iostream.h>

structSTU

{charnum[10];

floatscore[3];};

voidmain()

{structSTUs[3]={{"2002「',90,95,85},

{"20022",95,80,75},

{"20023H,100,95,90}},*p=s;

inti;

floatsum=0;

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

sum=sum+p->score[i];

cout?sum;}

程序運行后的輸出結果是B

A)260B)270C)280D)285

(18)下面程序段中,for循環(huán)的執(zhí)行次數(shù)是B

char*s=u\ta\018bcu;

for(;*s!='\0';s++)cout?

A)9B)5C)6D)7

(19)下列程序的運行結果是A

#include<iostream.h>

voidfun(int*a,int*b)

{int*k;

k=a;a=b;b=k;}

voidmain()

{inta=2004,b=9,*x=&a,*y=&b;

fun(x,y);

cout?a?'fn?b?endl;}

A)20049B)92004C)00D)編譯時出錯

(20)以下程序的輸出結果是D

#include<iostream.h>

intf()

{staticinti=0;

ints=l;

s+=i;i++;

returns;}

voidmain()

{inti,a=0;

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

cout?a;}

A)20B)24C)25D)15

(21)以下C++語言中用于單行注釋的是A

A)//B)/*C)*/D)I

(22)在32位的計算機中,一個char型數(shù)據(jù)所占的內存長度的字節(jié)是B

A)4B)1C)2D)8

(23)若變量已正確定義并賦值,以下符合C++語言語法的表達式是B

A)a:=b+lB)a=b=c+2C)int18.5%3D)a=a+7=c+b

(24)有如下程序:A

#include"iostream.h"

voidmain()

(

intx=1,a=0,b=0;

switch(x){

case0:b++;

case1:a++;

case2:a++;b++;

)

cout?na=n?a?vvnb=n?b;

)

該程序的輸出結果是

A)a=2,b=l

B)a=l,b=l

C)a=l,b=0

D)a=2,b=2

(25)有以下程序C

#include"iostream.hn

voidmain()

{

inti=l,j=l,k=2;

if((j++llk++)&&i++)

cout?i?V'?j??k;

cout?endl;

)

執(zhí)行后輸出結果是

A)1,1,2B)2,2,1C)2,2,2D)2,2,3

(26)若有說明inta[3][4]則a數(shù)組元素的非法引用是D

A)a[0][2*1]B)a[1][3]C)a[4-2]E0]D)a[0][4]

(27)若有語句int*point,a=4;和point=&a;下面均代表地址的?組選項是D

A)a,point,*&aB)&*a,&a,*point

C)*&point,*point,&aD)&a,&*point,point

(28)若已定義的函數(shù)有返回值,則以下關于該函數(shù)調用的敘述中錯誤的是B

A)函數(shù)調用可以作為獨立的語句存在B)函數(shù)調用可以無返回值

C)函數(shù)調用可以出現(xiàn)在表達式中D)函數(shù)調用可以作為一個函數(shù)的形參

(29)若運行時給變量x輸入12,則以下程序的運行結果是A

#include<iostream.h>

voidmain()

(

intx,y;

cin?x;

y=x>12?x+10:x-12;

cout?y;

cout?endl;

)

A)0B)22C)12D)10

(30)以下類定義中可能會引起錯誤的語句是D

classA

(

public:

?A(){}//l

inti;//2

private:

intj;//3

A(inti){i++;}//4

);

A)1B)2C)3D)4

二、填空題(共25分)

(1)C++語言標識符是以字母或【1】下劃線開頭的,由字母,數(shù)字和下劃線組成的字符串。

(2)在內存中,存儲字符'X'要占用1個字節(jié),存儲字符串〃X"要占用【2】2個字節(jié)。

(3)mystrlen函數(shù)的功能是計算str所指字符串的長度,并作為函數(shù)值返回,請?zhí)羁铡?/p>

intmystrlen(char*str)

{inti;

for(i=0;[3]strfil!='\0';i++);

return(i);}

(4)以下函數(shù)用來求出數(shù)組的最大元素在數(shù)組中的下標并存放在k所指的存儲單元中。請?zhí)羁铡?/p>

#include<iostream.h>

voidfun(int*s,intt,int*k)

{inti;

*k=0[4];

[5]for(i=l;ivi:i++)

if(s[*k]<s[i])*k=i;}

voidmain()

{inta[10]={876,675,896,101,301,401,980,431,451,777),k;

fun(a,10,&k);

cout?k?a[k];}

(5)如果一個類中定義了成員對象,則該類的對象和成員對象先被初始化的是【6】成員對象。

(6)請在mian函數(shù)中填空使下面程序的輸出結果為11。

#include<iostream.h>

classA

{private:

inta;

intb;

public:

A():a(0),b(1){)

voidshow(){cout?a?"M?b;});

classB

{private:

inta;

intc;

public:

B():a(1),c(1){}

voidshow(){cout?a?""?c;}};

classC:publicA,publicB

{};

voidmain()

{Ccc;

[7]cc.B::show。;}

(7)C++在重載運算符中,如用成員函數(shù)重載?元運算符參數(shù)表中需要【8】Q個參數(shù),如用友元函數(shù)重載?

元運算符參數(shù)表中需要【9】L個參數(shù)。

(8)以下程序的輸出結果是【10】以。

#include<iostream.h>

voidmain()

(

inta=0;

a+=(a=8);

cout?a;

)

(9)以下程序的執(zhí)行結果為acdb【11】o

#include<iostream.h>

classA

(

public:A(){cout?nan;}

?A(){cout?nbn;}

classB:publicA

public:

B(){cout?ucn;}

?B(){cout?"d";}

);

voidmain()

(

Bb;

)

(10)我們通常用到的cin>>,是屬于途【12】輸入。

二、程序理解

1、寫出運行結果

voidreFunction(charb[],intcurrent,intsize)

(

if(current<size)

{reFunction(b,current+1,size);

cout?blcurrent]?”

intmain()

{constintarraySize=8;

chararr[arraySize]={才Jb丁c:dje7f,g,h};

reFunction(arr,0,arraySize);

cout?endl;

return0;

)

Arr中的字符串反序輸出

2、寫出下面函數(shù)的功能

boolWhatIsThis(constchar*s1,constchar*s2)

(

for(;*sl!='\0'&&s2!='\0';sl++,s2++)

if(*sl!=*s2)returnfalse;

if(si=='\0'&&s2=='\0')returntrue;elsereturnfalse;

)

比較兩個字符串是否相等,是返回true,否則返回false

3、請寫出下列程序的功能,以及當輸入為“efghik”時的輸出結果。

intmain()

(

inti;

charstrl[10],str2[10];

cin?strl;

for(i=0;strl[iJ!=W;++i)

str2[i]=strl[i]-+4A*;

str2[i]='\0';

cout?str2?endl;

return0;

)

將字符串中小寫字母轉換為大寫字母,EFGHIK

4。寫出運行結果

intfun(int*a,intsize)

{intmax=0,i;

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

if(a[i]>a[max])max=i;

returnmax;

)

doublefun(double*a,intsize)

{doublemax=0;

for(inti=0;i<size;++i)

if(a[il>max)max=a[i];

returnmax;

)

intmain()

{inta[]={3,7,2,9,1,5,0,8,7,4);

doubleb[]={3.3,7.7,9.9,5.5,4.4,8.8,1.1,2.2,0,6.6};

cout?max(a,10)?endl;

cout?max(d,10)?endl;

)

3

9.9

三、程序填空

1,完成下面程序,使得程序輸出結果為:a=45b=56

voidswap(int*x,int*y)

inttmp;

Tmp="x:

*y=tmp:;

)

intmain()

(

inta=56,b=45;

swap(&a,&b);

cout?Ha="?a?"b="?b?endl;

return0;

2、求1+1/1!+1/2!+1/3!+…+1/20!

#include<iostream>

usingnamespacestd;

intmain()

{doublee=1;

doublet=1;

intn;

for(n=l;nv=20;n++)

{t=t*n;;

e=e+l/t:;}

cout?"1+1/1!+1/2!+1/3!+-+1/20!n?e?endl;

return0;

3。完成二分查找程序:對一個有序數(shù)組,首先匹配中間位置的元素,如匹配成功,則返回該中間位置的下標值;

否則,如待查關鍵字大于中間元素,拋開前面的元素,從中間元素的下-元素到數(shù)組尾部范圍重復以上匹配;

如待查關鍵字小于中間元素,拋開后面的元素,從數(shù)組首部到中間元素的前一元素范圍重復以上匹配;如果

查找失敗,則返回-1。

intBinarySearch(intA[],intkey,intn){

intlow=0;//下界結點的下標

inthigh=n-l;//上界結點的下標

intmid;//中間結點的下標

while(lowvhigh){

Mid=(low+high)/2;

if(A[mid]==key)returnmid:;

elseif(key<A[mid])high=mid-l;;

elselow=mid+1;;

)

return;

四、編程題(共20分)

1.編程用如下的格式輸出乘法九九表。(5分)

*123456789

1123456789

24681012141618

39121518212427

4162024283236

52530354045

636424854

7495663

86472

981

#include<iostrcam>

#include<iomanip>

usingnamespacestd;

voidmain()

inti,j,k;

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

cout?setw(3)?i;

cout?endl;

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

f

cout?setw(3)?i;

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

(

ifg)

cout?setw(3)?^^

else

cout?setw(3)?i*j;

)

cout?endl;

1

2。已知一四位數(shù)a2b3能被23整除,編一程序求此四位數(shù)。(5分)

#include<iostream>

usingnamespacestd;

voidmain()

(

inti,j;

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

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

if((a*1000+2*100+b*10+3)%23==0)

cout?a?2?b<<3

C++程序設計試卷2

一、判斷題(1x10)

1.C++表達式4/8.0+4/7的值為double型,值為1.07。

2.定義c為一個整型變量,則表達式c&&'\0’的值恒為0。

3.若一個C++程序中說明一個全局變量I;則該程序所有的函數(shù)都可以引用此全局變量。

4.一個完整的C++程序從編譯預處理指令處開始執(zhí)行。

5.在C++中,當定義變量時不區(qū)分大小寫。

6.C++規(guī)定:在每一個字符串的結尾加上一個空字符以便系統(tǒng)據(jù)此判斷字符串是否結束。

7.C++語言中break語句和continue語句的區(qū)別在于:break語句是終止本次循環(huán),continue

語句是結束所有循環(huán)。

8.p為一指針變量,則表達式(*p)++和*(p++)兩個表達式的值是一樣的,都是指向下一個單元的

值。

9.數(shù)組是若干相同類型的數(shù)據(jù)的集合,每個元素可以由數(shù)組名和下標構成。

10.C++中,如果在定義函數(shù)時加上關鍵字extern,則表示此函數(shù)是外部函數(shù),可以被其他文件調

二、選擇題(2x15)

1、若x是一變量,則x||!x的值是()

A.為trueB.為false

C.與x的值有關、D.與x的值相反

2.C++源程序文件的后綴名為:

A.cppB.exe

C.objD.lik

3、對于有返回值的函數(shù),要結束函數(shù)運行必須使用語句

A.breakB..return

CcontinueD.main

4.所謂的靜態(tài)存儲即在程序運行期間分配固定的

A.作用范圍B.存儲單元

C.變量類型D.變量名稱

5、語句while(!x);中的x等價于

A.x==0B.x!=1

C.x==5D.x==1

6、語句for(l=0J=0;l〈=100;l++)j=j+l;的結果為

A.500B.100

C.5000D.5050

7.給出以下定義:inta,*p;則下面正確的賦值語句為

A.p=a;B.&p=a;

C.p=&a;D.p=*a;

8.表達式'c'&&'d'、'c'&&''0'和!‘c'『c'v='d'的值為

A.000B.101

C.110D.111

9.在下列對字符串的定義中,錯誤的是

A.charstr[10]=),china,';B.char*str="china”;

C.char*str[10]={'c','h','i','n','a',''0'};D.charstr[]=,,china";

10.若有inta=4;floatb=14.70,能正確表示a+b對a取余的表達式是()

A.(a+b)/cB.(a+b)%c

C.(int)((a+b)%c)D.(a+(int(b)))%c

11.下面對函數(shù)的正確的定義語句是

A.floatfunction(inta,b);B.floatfunction(inta;b);

C.floatfunction(inta,intb);D.floatfunction(inta;intb);

12.設已定義數(shù)組chararray[20]=,,lamstudent,,,

則函數(shù)strlen(array)的返回值()

A.11B.12C.13D.14

13.在函數(shù)內部定義的變量稱為

A.全局變量B.局部變量

C.整型變量D.字符型變量

14、已定義一個數(shù)組intarray[10];則對此數(shù)組正確的引用是()

A.cout?array[10];B.cout?array(0);

C.intb;b=array[O]+array;D.cout?array[5+4];

15、如果一外部變量只允許被本文件引用,

則應在該外部變量定義前加上修飾()

A.staticB.externC.registerD.auto

三、填空(1x14).

1.一個可以執(zhí)行的C++語言的源程序文件經過編譯后生成的文件的擴展名為

2.函數(shù)類型定義時,如果在函數(shù)前加void,則表示該函數(shù)。

3、一個整型變量和一個長整型變量在內存中所占的字節(jié)數(shù)分別為字節(jié)和

字節(jié)。

4.過程化程序設計方法中,每個程序單位由三部分構成,即:、、

5.一個整型數(shù)組的元素個數(shù)為10個,則在內存中必須至少有字節(jié)的空間才可以存

放.

6inta=3,則表達式(int)(a+6.5)%2+(a=b=5)的值為。

7在指針的概念中表示的含義為;而"&”表示的含義為.

8設x、y和z都是整型變量,則表達式(x=1,y=33,z=34)的值為

9標識符只可以由三種字符組成,他們是一、和數(shù)字.

四、簡答題(20)1、請用C++語言的表達式表示下列代數(shù)式。

(1)y]s(s-a)(s-b)(s-c)

⑵土就3

3

2定義結構體類型student,該結構體包含的成員為name(字符型)、age(整型)、sex(字符型)、

number(整型),定義一個student類型指針變量std。

五、閱讀程序(26)

(一).寫出下列程序的輸出結果是(5x2)

1.#include<iostream>usingnamespacestd;

intmain(){inti=1,sum=O;

do{sum+=i;i++;}while(i<=100)

cout?,,sum=,,?sum?endl;return0;}

2.#include<iostream>usingnamespacestd;

intmain(){charstr1[]="llovechina!",str2[20],*p1,*p2;

p1=str1;p2=str2;

for(;*p1!=>\0,;p1++,p2++)

{*p2=*p1;

*p2=>\0,;

p1=str1;p2=str2;}

cout?,,str1is:"?p1?endl;

cout?"str2is:M?p2?endl;

return0;}

(二)程序填空(2x8)

1.使用子函數(shù)求兩個實數(shù)的和

#include<iostream>

usingnamespacestd;

intmain()

{;〃子函數(shù)聲明

floata,b,c;coutv<”輸入兩個實數(shù)”;cin?a?b;

c=;〃子函數(shù)調用

cout?"兩個實數(shù)a和b的和為:"<<c<vendl;

return0;}

floatadd(floatx,floaty)

{floatz;z=x+y;;}

2.用冒泡排序法對輸入的20個整數(shù)從大到小進行排序

#include<iostream>

usingnamespacestd;

intmain()

{inta[20],i,j,k,max;

cout?"\nPleaseinput20data:\n";

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

cin?;

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

for(;;j++)

if()

{k=a[j];

a[j+1]=k;}

cout?,\n,;

for(i=0;i<20;i++)cout?a[i]?n

return0;}

參考答案

一、判斷題

x,N,q,x,x,q,x,q,q,?

二、選擇題

A,A,B,B,A,D,C>B,C,D,C,A,B,D,A

三、填空題

[、.obi_____

2、無返回值

3、4個,4個

4、預處理指令、聲明部分、函數(shù)。

5、40

6、6

7、指針運算符,取地址符

8、34

9、字母、下劃線

四、簡答題

1、請用C++語言的表達式表示下列代數(shù)式。

(1)sqrt(s*(s-a)*(s-b)*(s-c))

(2)(4*TT*R*R*R)/3

2、structstudent

{charname;

intage;

charsex;

intnumber;

}std;

五、閱讀程序

(?).寫出下列程序的輸出結果是

1>__________sum=5050________________________

2、str1="llovechina!"

str2="llovechina!"

(-)程序填空

floatadd(floatx,floatv)

add(a,b)_______

return⑵

2、_afi]

i=o:i=20-i

a「l>a「+1l

a「l=aR+1l;

C++程序設計試卷

一、判斷題(1X10)

1.C++表達式4/7和4.0/7的值是相等的,且都為double型。()

2.若有int1=10,j=0;則執(zhí)行完語句if(j=0)I++;else1-;1的值為11。()

3.若有intI=10,j=2;則執(zhí)行完I*=j+8;后I的值為28。

4.字符串“china”在內存中占據(jù)的存儲空間是5個字節(jié)。

5.一個可執(zhí)行的C++語言程序可以包含若干個函數(shù),但至少必須包含一個main。函數(shù)。

()

6.一個C++語言程序可由若干個源程序文件構成,每個源程序文件也必須包含一個main。

函數(shù)。

7.在變量定義intsum,SUM;中sum和SUM是兩個相同的變量名。()

8.一個變量的地址就稱為該變量的“指針”。()

9.在C++語言中,所有函數(shù)都是平行的,即在定義函數(shù)時是相互獨立的,一個函數(shù)并不

從屬于另一個函數(shù)。()

10.C++中,在定義函數(shù)時的參數(shù)是“形式參數(shù)”,在調用函數(shù)時的參數(shù)是“實際參數(shù)”。

二、選擇題(2X10)

1.源程序文件的擴展名是:()

A).CPPB).CC).DLLD).EXE

2.循環(huán)至少被執(zhí)行了一次的語句為()

A).for循環(huán)B).while循環(huán)

0.do循環(huán)D).任一種循環(huán)

3.整型變量i定義后賦初值的結果是:()

inti=2.8*6;

A)12B)16C)17D)18

4、下列表達式的值為false的是:()

A)1<3&&5<7B)!(2>4)C)3&&0&&1D)!(5<8)||(2<8)

5、設inta=10,b=ll,c=12;表達式(a+b)<c&&b==c的值是:()

A)2B)0C)-2D)1

6、下列程序執(zhí)行完后,x的值是:()

intx=0;

for(intk=0;k<90;k++)if(k)x++;

A)0B)30C)89D)90

7、下列程序段循環(huán)次數(shù)是:()

intx=-10;while(++x)cout<<x<<endl;

A)9B)10C)11D)無限

8、表示“大于10而小于20的數(shù)“,正確的是:()

A)10<x<20B)x>10||x<20

C)x>10&x<20D)x>10&&x<20

9、在下面的一維數(shù)組定義中,哪一個有語法錯誤()

A),inta[]={1,2,3};B).inta[10]={0};

C).inta[n]D).inta[5]

10、設a=l,b=2,貝U(a++)+b與a+(++b)這兩個表達式的值分別為:()

A)3,3B)3,4C)4,3D)4,4

三、填空(2X15).

1、描述命題“A小于B或小于C”的表達式為—[1]o

2、假定x和y整型,其值分別為16和5,則X%Y和X/Y的分別為【分和【3】。

3、一個C++語言程序總是從[4]開始執(zhí)行。

4、C++語言程序中出現(xiàn)的/*……*/部分或〃……部分所起的作用是—【5】_。

5、C++規(guī)定:在每一個字符串的結尾加上??個,以便系統(tǒng)據(jù)此判斷字符串是否結束。

6、若有intx=4,y=7;則表達式x*=x+y的值為[7]。

7、過程化程序設計方法中,程序有三種基本結構,即:-[8]、、

8、C++語言中所提供的循環(huán)控制語句有三種,即:____[11]、【12]、

[13]□

9、C++語言中用來存放變量地址的變量稱作—[14]o

10、作為語句標號使用的C++保留字case和default只能用于—【15]一語句的定義體中。

四、簡答題(5X3)

1.請用C++語言的表達式表示下列代數(shù)式。

*3+s_________________

1)----2)y/s(s-a)(s-b)(s-c)

工一〉

2.根據(jù)要求定義數(shù)據(jù)類型或變量

定義結構體類型date,該結構體包含的成員為year(整型)、month(整型)、day(整型),再定

義date型變量birthday□

五、分析程序運行結果(15)

1.寫出下列程序的輸出結果。

#include<iostream>m=++i+j++;

usingnamespacestd;n=(++i)+(++j)+m;

intmainOcout?i?,\t'?j?,\t,?

{charm?,\t'<<n?endl;

cl=,a',c2='d',c3='f'return0;

cl+=2;)

c2+=2;運行結果:

c3+=2;

cout?cl?c2<<c3?endl;3.寫出下列程序的輸出結果。

return0;#include<iostream>

)usingnamespacestd;

運行結果:intmainO

{constintn=5;

2.寫出下列程序的輸出結果。inta[n]={9,6,3,4,5},i,t;

#include<iostream>for(i=0;i<n/2;i++)

usingnamespacestd;{t=a[i];a[i]=a[n-i-l];a[n-i

inti,j,m,n;

intmain()for(i=0;i<n;i++)

{i=5;

j=6;cout<<endl;

return0;

)

運行結果:

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

for(_[1];【2】

六、程序填空題(10)

;j++)

if(a[j]<a[i])

{t=a[j];

1、用選擇法對十個整數(shù)排序?!?】;

#include<iostream>[4];}

usingnamespacestd;for(i=l;i<=10;i++)

intmain()cout<<a[i]<<w";

{intcout?endl;

a[10]={5,4,6,9,8,3,7,2,1,0},ireturn0;

,j,t;)

參考答案

-、判斷題(10分,每題1分)

12345678

XXXXVXXV

9101112131415

VV

二、選擇題(20分,每題2分)

12345678

ACBCBCAD

9101112131415

CB

三、語法填空題(30分,每空2分)

【1】A<BIIA<C【2】1【3】3【4】主函數(shù)

【5】注釋【6】’\0,【7】44【8】順序

【9】選擇【10】循環(huán)【11】while語句

【12】dowhile語句【13]for語句【14】指針變量【15】Switch

四、簡答題。(15)

1請用C++語言的表達式表示下列代數(shù)式

(1)(x*x*x+5)/(x-y)(2)sqrt(s*(s-a)*(s-b)*(s-c))

2根據(jù)要求定義數(shù)據(jù)類型或變量

structdate

{intyear;

intmonth;

intday;

}birthday;

五、分析程序運行的結果(15)

1、cfh2、7812273、54369

六、程序填空題(20分,每空2分)

[1]i=i+l[2]i<=9[3]a[i]=a[il[4]a[i|=t

第_27—頁共6頁

2009?2010學年第1學期考試科目:《面向對象程序設計》

考試類型:(閉卷)考試考試時間:120分鐘

學號姓名年級專業(yè)07電氣

題號一二三四五總分

得分

評閱人

一、填空題(本題共20小題,每小題1分,共20分)

1.面向對象程序設計將數(shù)據(jù)及對數(shù)據(jù)的量但放在一起,作為一個相互依存,不可分

割的整體來處理,即對象。

2.對象的四大基本特性是多態(tài)性、繼承性、抽象性和封裝性。為了使類中的成員

不能被類外的函數(shù)通過成員操作符訪問,則應把該成員的訪問權限定義為私有

(private)屬性。

3.C++語言的標準輸入對象是cin,源文件擴展名為CPP.

4.C++中定義常量的關鍵字是const,定義虛函數(shù)所用的關鍵字是virtual。

5.C++中進行輸入、輸出操作時,將數(shù)據(jù)對象從輸入流提取出來的運算符是>>,插入

到輸出流的運算符是《。

6.在#include命令中所包含的頭文件,可以是系統(tǒng)定義的頭文件,也可以是用戶自己一

定義的頭文件。

7.類的繼承是指子類繼承基類的一數(shù)據(jù)邈—和成員函數(shù)。

8.不同對象可以調用相同名稱的函數(shù),但可導致完全不同的行為的現(xiàn)象稱為多態(tài)性

__O

9.C++的流庫預定義了4個流,它們是cin、cout^cerr>Fnclogo

10.設類A有成員函數(shù)voidFun(void);若要定義一個指向類成員函數(shù)的指針變量pafn來

指向Fun,該指針變量的聲明語句是:void(A::*pafn)()0

11.設在程序中使用如下語句申請了一個對象數(shù)組:Point*ptr=newPoint[2];則在需

要釋放ptr指向的動態(tài)數(shù)組對象時,所使用的語句是delete口供「。

12.在保護派生中,基類權限為Private的成員在派生類中一不可訪問_。

13.類A有如下成員函數(shù):intA::fun(doublex){return(int)x/2;};intA::fun(intx){return

第_28—頁共6頁

x*2;}。設a為類A的對象,在主函數(shù)中有ints=a.fun(6.0)+a.fun(2),則執(zhí)行該語

句后,s的值為工。

14.C++中多態(tài)性包括兩種多態(tài)性:靜態(tài)多態(tài)性和動態(tài)多態(tài)性。前者是通過函數(shù)重

載實現(xiàn)的,而后者是通過虛函數(shù)和動態(tài)聯(lián)編來實現(xiàn)的。

15.將指向對象的指針作為函數(shù)參數(shù),形參是對象指針,實參是對象的—地址

16.在繼承機制下

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論