《c 語言程序設(shè)計》作業(yè)4_第1頁
《c 語言程序設(shè)計》作業(yè)4_第2頁
《c 語言程序設(shè)計》作業(yè)4_第3頁
《c 語言程序設(shè)計》作業(yè)4_第4頁
《c 語言程序設(shè)計》作業(yè)4_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

《C++語言程序設(shè)計》作業(yè)4

關(guān)于C++語言程序設(shè)計期末復(fù)習(xí)題的一些說明

適用對象:開放??坪推胀▽?朴嬎銠C網(wǎng)絡(luò)專業(yè)、計算機應(yīng)用技術(shù)專業(yè),以及其

他相關(guān)專業(yè)

教材版本:C++語言程序設(shè)計李寧編中央廣播電視大學(xué)出版社

其它說明:在本期末復(fù)習(xí)題中規(guī)定整型(int)數(shù)據(jù)占用4個字節(jié)的存儲單元。

一、單項選擇題

1.下列符號中,不可以作為變量名的是。

A.Iist_p_9B.PA123

C.readyD.for

2.由C++目標文件連接而成的可執(zhí)行文件的缺省擴展名為。

A.cppB.exe

C.objD.lik

3.在每個C++程序中都必須包含有這樣?個函數(shù),該函數(shù)的函數(shù)名為。

A.mainB.MAINC.nameD.function

4.設(shè)x和y均為bool量,則x&&y為真的條件是。

A.它們均為真B.其中一個為真C.它們均為假D.其中一個為假

5.下列表達式中正確的是.

A.(k++)++B.k—j

C.k-/=5D.(k+3)=5

6.執(zhí)行下面程序段的輸出結(jié)果是.

intx=4,y=-55;

if(x>0)if(x>10)cout?,,AAMelsecoutvv“BB”

elseif(y<-8)if(y>-20)cout?"CC"elsecout?MDDM;

A.AAB.BBC.CCD.DD

7.下面四個程序段中,輸出23個*號的程序段是o

A.for(inti=l;i<23;i++)coul

B.for(inti=23;i>=0;i-)cout?***;

C.inti=23;while(i>0){coutvv'*';i—;}

D.inti=0;while(0<=23){coutvv'*';i++;}

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

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

C.inta[]D.inta[5]

9.假定a為一個整型數(shù)組名,則元素a[4]的字節(jié)地址為。

A.a+4B.a+8C.a+16D.a+32

10.要定義一個int型二維數(shù)組a,并使其各元素具有初值:

2300

4050

0000

則正確的定義語句是0

A.inta[][]={2,3,0,0,4,0,5,0,0,0,0,0);

B.inta[][4]={2,3,0,0,4,0,5,0,0,0,0。};

C.inta[3][4]={{2,3},{4?5});

D.inta[][]={{2,3,0,0},{4,0,5,0},{0,0,0,0));

11.在下面的函數(shù)聲明中,存在著語法錯誤的是o

A.voidBC(inta,int)B.voidBD(int,int)

C.voidBE(int,int=5)D.intBF(intx;inty)

12、下面的哪個保留字不能作為函數(shù)的返回類型?o

A.voidB.intC.newD.long

13.已知intf(int);和intg(int);分別是函數(shù)f和g的原型。下列語句中,將函數(shù)f作為語句調(diào)用的

有0

A.f(3)+g(3);B.p/=f(3);C.g(f(3));D.f(g⑶);

14.已知?函數(shù)的形參說明為intarr[5][6],在下列說明中,與此等效的形參說明為一。

A.intarr[][]B.int|5][]C.int*a[6]D.int(*a)[6]

15.已知函數(shù)f的原型是:intf(chara,char*b=NULL,doublec=0.0);

則卜列調(diào)用中,不能正確地調(diào)用f函數(shù)的是____。

A.f(99)B.f('A',4.5)C.f('A',"123”)D.f((char)65;,123")

16.已知函數(shù)的原型是:intf(int,int=0,double=0.0);

則下列函數(shù)中可以加以重載的是O

A.intf(int);B.intf(int,int);C.f(int,int,double);D.f(intdouble);

17.已知一函數(shù)中有下列變量定義,其中屬于靜態(tài)變量的是o

A.inta=5;B.staticdoubleb;C.registercharc;D.autoshortd;

18.已知一個運行正常的的程序中有下面兩個語句:

int*pl,*p2=&a;

pi=b;

由此可知,變量a和b的類型分別是o

A.int和intB.int*和intC.int*和intD.int*和int*

19.假設(shè)p是一指針變量,下列表達式中正確的是。

A.++p++B.(++p)++C.++(p++)D.p++-=3

20.設(shè)有程序段如下:

intk;

intA[10];

則下列表達式中,與元素A[k]等效的是____o

A.A+kB.*A+kC.*(A+k)D.A+*k

21.設(shè)有數(shù)組定義

inta[3][4]={{1,23,4},{5,6,7,8},{9,10,11,12}};

則表達式*(*(a+2)+l)的值是o

A.5B.6C.9D.10

22.要使語句:p=newint[10];能夠正常執(zhí)行,p應(yīng)定義為:

A.intp;B.intp|10];C.int*p;D.int(*p)|10];

23.已知函數(shù)f的原型為:voidf(int&a,char*b);

變量s,t的定義是:ints;chart[]=HABCDM;

把s和t分別作為第一參數(shù)和第二參數(shù)來調(diào)用函數(shù)f,正確的調(diào)用語句是

A.f(&s,&t);B.f(&s,t);C.f(s,t);D.f(s,&t);

24.設(shè)有如下定義

structPerson{

char*name;

char*sex;

intage;

floatpay;

}p={“李小莉",“女”,23,370};

則下列語句中正確的是

A.cout?(*p).name?endlB.cout?p->name?endl

?(*p).sex?endl?p->sex?endl

?(*p).age?endl?p->age?endl

?(*p).pay?endl;?p->pay?endl;

C.cout?p[name]?endlD.cout?p.name?endl

?p[sex]?endl?p.sex?endl

?p[age]?endl?p.age?endl

?p[pay]?endl;?p.pay?endl;

25.設(shè)有定義如下:

unionABC{

charch;

intia;

int*ipa;

doubledb;

};

則表達式sizeof(ABC)的值是.

A.17B.8C.4D.1

26.假定AB為一個類,則該類的拷貝構(gòu)造函數(shù)的聲明語句為o

A.AB&(ABx)B.AB(ABx)

C.AB(AB&)D.AB(AB*x)

27.對于結(jié)構(gòu)中定義的成員,其隱含訪問權(quán)限為o

A.publicB.protected

C.privateD.static

28.當使用fstream流類定義一個流對象并打開一個磁盤文件時,文件的隱含打開方式為—。

A.ios::inB.ios::out

C.ios::intIios::outD.沒有

29.假定AB為一個類,則執(zhí)行'ABa(4),b⑶,*p⑵;”語句時,自動調(diào)用該類構(gòu)造函數(shù)的次數(shù)為<

A.3B.4C.6D.9

30.假定要對類AB定義加號操作符重載成員函數(shù),實現(xiàn)兩個AB類對象的加法,并返回相加結(jié)果,則該

成員函數(shù)的聲明語句為:o

A.ABoperator+(AB&a,AB&b)B.ABoperator+(AB&a)

C.operator+(ABa)D.AB&operator+()

二、填空題

1.執(zhí)行“cout?43?,-,?l8?,=>?43-18?endl;w語句后得到的輸出結(jié)果為_。

2.已知'A'?Z的ASCII碼為65~90,當執(zhí)行“charch=14*5+2;cout?ch?endl;M

語句序列后,得到的輸出結(jié)果為O

3.使用const語句定義一個標識符常量時,則必須對它同時進行o

4.表達式x=x+l表示成增量表達式為o

5.若x=5,y=10,則x>y和x<=y的邏輯值分別為和。

6.C++語言中的每條基本語句以作為結(jié)束符,每條復(fù)合語句以

作為結(jié)束符。

7.執(zhí)行“cout?charC'A',+2)?endl;w語句后得到的輸出結(jié)果為。

8.float和double類型的大小分別為和。

10.關(guān)系表達式x+y>5的相反表達式為o

11.表達式:x=625,i=(x>100?10:100)的值是。

12.執(zhí)行intx=4,y;y=x-+3;語句后,變量x的值是__,y的值是?

13.執(zhí)行程序段

intx=5,y=10;

x+=y;y=x-y;x-=y;

后變量X的值是____,y的值是。

14.與賦值語句:y=OK?(READY?-l:0):l:等效的嵌套的if語句為:

15.執(zhí)行語句i=10;do{couti";}while(i+3);后,將顯示出個*號。

16.設(shè)有下面的定義

ints[10]=(1,2,3,4,5,6,7,8,9,10);

intsum=0;

清完善下面的語句實現(xiàn)求數(shù)組S的所有元素之和,并保存在變量sum中:

for(int;;j++);

17.執(zhí)行語句序列

charstrl[10]="ABCD",str2[10]="XYZxyz";

for(inti=0;strl[i]=str2[i];i++);

后,數(shù)組strl中的字符串是,數(shù)組str2中的字符串是。

18.執(zhí)行下面程序段

charstrl[10]="ABCD”,str2[10]="XYZxyz";

if(strcmp(strl,str2)>0)

cout?strl?endl;

else

cout?str2?endl;

后的輸出結(jié)果是。

19.執(zhí)行“typedefintABC[10]:"語句把ABC定義為具有10個整型元素的__。

20.假定一個二維數(shù)組為a[M][N],則a[i]的地址值(以字節(jié)為單位)為。

21.已知函數(shù)f的定義是:

intf(intn){n*=2;returnn+1;}

則執(zhí)行

intm=5,n=3;

m=f(n);

后,變量m的值是,n的值是o

22.如果在一函數(shù)定義中使用修飾符,則聲明該函數(shù)不允許其它程序文件中的函

數(shù)調(diào)用。

23.已知一函數(shù)模板定義為

template<classType>Typeincre(Typen)(returnn+1;}

則函數(shù)調(diào)用incre(5.0)使用得該函數(shù)模板產(chǎn)生的實例化函數(shù)為:

24.已知文件fileA.cpp中的一些函數(shù)需要訪問在另一個文件fileB.cpp中定義的全局整型

變量var,則在文件fileAcpp的首部對變量var應(yīng)聲明為。

25.變量分為全局和局部兩種,變量沒有賦初值時,其值是不確定的。

26.假定p所指對象的值為25,p+1所指對象的值為46,則執(zhí)行“(*p)++;”語句后,p所

指對象的值為.

27.假定要訪問一個結(jié)構(gòu)指針p所指對象中的b指針成員所指的對象,則表示方法為一

28.假定一個一維數(shù)組的定義為“char*a[8];",則該數(shù)組所含元素的個數(shù)為,

所占存儲空間的字節(jié)數(shù)為。

29.假定a是一個二維數(shù)組,則a[i皿的指針訪問方式為?

30.設(shè)px是指向一個類動態(tài)對象的指針變量,則執(zhí)行“deletepx;”語句時,將自動調(diào)用

該類的。

31.若需要把一個函數(shù)“voidF();”定義為一個類AB的友元函數(shù),則應(yīng)在類AB的定義

中加入一條語句:。

32.若要在程序文件中進行標準輸入輸出操作,則必須在開始的#include命令中使用

___________頭文件。

33.假定一個結(jié)構(gòu)類型定義為

"structD{inta;union{intb;doublec;};D*d⑵;},

則該類型的大小為字節(jié)。

34.對一個類中的數(shù)據(jù)成員的初始化可以通過構(gòu)造函數(shù)中的實現(xiàn),也可

以通過構(gòu)造函數(shù)中的實現(xiàn)。

35.假定AB為一個類,則執(zhí)行“AB語句時,系統(tǒng)自動調(diào)用該類的構(gòu)造函數(shù)的次

數(shù)為。

36.假定類AB中有一個公用屬性的靜態(tài)數(shù)據(jù)成員bb,在類外不通過對象名訪問該成員bb

的寫法為.

37.請完成下面的一個類的定義:

classABC{

private:

inta,b;

public:

ABC(intaa,intbb=5)

{

;//將aa的值賦給a

:〃將bb的值賦給b

)

1:

intABC::fA(){returna+b;)

intABC::tB(){returna*b;}

三、下列程序運行后的輸出結(jié)果

1.#include<iostream.h>

voidmain()

ints=0;

for(inti=l;;i++){

if(s>50)break;

if(i%2=0)s+=i;

1

cout?"i,s="?i?M,"?s?endl;

)

2.#include<iostream.h>

inta=5;

voidmain(){

inta=l0,b=20;

cout?a?M,,?b?endl;

{inta=0,b=0;

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

a+=i;b+=a;

)

cout?a?""?b?n"?::a?endl;

1

cout?a?HH?b?endl;

1

3.#include<iostream.h>

voidSB(charch){

switch(ch){

case"A":case"a":

cout〈〈"well!”;break;

case"B":case"b":

cout?ngood!";break;

case"C":case"cn:

cout?"pass!n;break;

default:

cout?nnad!";break;

1

)

voidmain(){

charal="b,,,a2="C",a3=Hf";

SB(al);SB(a2);SB(a3);SB("A");

cout?endl;

)

4.#include<iostream.h>

voidmain()

(

chara[]="abcdabcabfgacd";

intiI=O,i2=O,i=O;

while(a[ij){

if(a[i]="a")il++:

if(a[i]="b")i2++;

i++;

)

cout?il?n"?i2?endl;

)

5.#include<iomanip.h>

voidmain()

{

inta[9]={2,4,6,8,10/2,14,16,18};

for(inti=0;i<9;i++){

cout?setw(5)?*(a+i);

if((i+l)%3==0)cout?endl;

)

}

6.#include<iomanip.h>

voidLE(int*a,int*b){

inix=*a;

*a=*b;*b=x;

cout?*a?n"?*b?endl;

I

voidmain()

(

intx=10,y=25;

LE(&x,&y);cout?x?""?y?endl;

)

7.#include<iostream.h>

#include<string.h>

voidmain(){

char*a[5]={"studentn,"worker","cadre","soldier"."peasant");

char*pl,*p2;

pl=p2=al0];

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

if(strcmp(a[i],pl)>0)pl=a[i];

if(strcmp(a|i],p2)<0)p2=a[i|;

}

cout?pl?""?p2?endl;

}

8.#include<iomanip.h>

intLB(int*n){

ints=l;

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

s*=*a++;

returns;

)

voidmain(){

inta[]={1,2,3,4,5,67,8);

intb=LB(a,5)+LB(&a[3],3);

cout<<"b="?b?endl;

)

9.#include<iostream.h>

classA{

inta.b;

public:

A(){a=b=0;}

A(intaa,intbb){

a=aa;b=bb;

cout?a?"H?b?endl;

)

};

voidmain()

(

Ax,y(2,3),z(4,5);

)

10.#includev沁slream.h>

template<classTT>

classFF{

TTal,a2,a3;

public:

FF(TTbl,TTb2,TTb3){

al=bl;a2=b2;a3=b3;

)

TTSum(){returnai+a2+a3;}

};

voidmain()

(

FF<int>x(2,3,4),y(5,7,9);

cout?x.Sum()?n"?y.Sum()?endl;

)

11.#include<iostream.h>

#include<string.h>

structWorker(

charname[15];//姓名

intage;//年齡

floatpay;〃工資

};

voidmain(){

Workerx;

char*t=nliouting";

intd=38;floatf=493;

strcpy(,t);

x.age=d;x.pay=f;

cout?x.name?""?x.age?",'?x.pay?endl;

}

12.#include<iostream.h>

classA{

inta;

public:

A(intaa=O){a=aa;}

~A(){cout?"DestructorA!n?a?endl;}

};

classB:publicA{

intb;

public:

B(intaa=0,intbb=0):A(aa){b=bb;}

~B(){cout?"DestructorB!n?b?endl;}

};

voidmain(){

Bx(5),y(6,7);〃后定義的變量將先被釋放

)

四、寫出下列每個函數(shù)的功能

1.#include<iostream.h>

intSA(inta,intb){

if(a>b)return1;

elseif(a==b)return0;

elsereturn-1;

}

2.floatFI(intn){

〃n為大于等于1的整數(shù)

floatx,y=0;

do{

cin?x;

n--;y+=x*x;

}while(n>0);

returny;

3.doubleSF(doub!ex,intn)(

〃n為大于等于0的整數(shù)

doublep=l,s=l;

for(inti=l;i<=n;i++){

p*=x;

s+=p/(i+l);

)

returns;

}

4.floatFH(){

floatx,y=0,n=0;

cin?x;

while(x!=-l){

n++;y+=x;

cin?x;

)

if(n==0)returny;elsereturny/n;

)

5.#include<iostream.h>

voidWA(inla[],intn){

溫馨提示

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

評論

0/150

提交評論