C 語言程序設計試題試題及答案62_第1頁
C 語言程序設計試題試題及答案62_第2頁
C 語言程序設計試題試題及答案62_第3頁
C 語言程序設計試題試題及答案62_第4頁
C 語言程序設計試題試題及答案62_第5頁
已閱讀5頁,還剩47頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

C語言程序設計試卷,C++語言程序設計試題及答案

一、單項選擇題(每題1分,共20分)

1.C語言規(guī)定:在一個源程序中,main函數的位置(C)。

A.必須在最開始

B.必須在系統(tǒng)調用的庫函數的后面

C.可以任意

D.必須在最后

2.下面四個選項中,均是合法浮點數的選項是(B)o

A.+le+l5e-9.403e2

B.-.6012e-4-8e5

C.123e1.2e-.4+2e-l

D.

3.假設a=-14,b=3,那么條件表達式a<b?a:b+l的值為(A)0

A.-14B.-13C.3D.4

4.:intn,i=l,j=2;執(zhí)行語句n=i<j?i++:j++;那么i和j的值是(c).

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

5.為了判斷兩個字符串si和s2是否相等,應當使用(D)

A.if(sl==s2)B.if(sl=s2)

C.if(strcmp(si,s2))

D.if(strcmp(si,s2)==0)

6.以下正確的描述是(B)。

A.函數的定義可以嵌套,但函數的調用不可以嵌套。

B.函數的定義不可以嵌套,但函數的調用可以嵌套。

C.函數的定義和函數的調用均不可以嵌套。

D.函數的定義和函數的調用均可以嵌套。

7.在C語言中,下面對函數不正確的描述是(D)。

A.當用數組名作形參時,形參數組值的改變可以使實參數組之值相應改變。

B.允許函數遞歸調用。

C.函數形參的作用范圍只是局限于所定義的函數內。

D.子函數必須位于主函數之前。

8.如果在一個函數中的復合語句中定義了一個變量,那么以下正確的說法是(A)o

A.該變蚩只在該復合語句中有效

B.該變量在該函數中有效

C.該變量在本程序范圍內均有效

D.該變量為非法變量

9.以下正確的函數形式是(D)。

A.doublefun(intx,inty){z=x+y;returnz;}

B.fun(intx,y){intz;returnz;}

C.fun(x,y){intx,y;doublez;z=x+y;returnz;}

D.doublefun(intx,inty){doublez;z=x+y;returnz;}

10.以下程序的輸出結果是(B)o

#include<stdio.h>

#definePRINT(a)printf(int)(a))

voidmain(void)

(

intx=2;

PRINT(x*F(3));

}

A.10B.13C.11D.報錯

11.以下程序中編譯和運行結果均正確的一個是(C)<,

A.A.voidmain(void)

(

union

(

intn;

floatx;

}comm={1};

printf("%d”,comm.n);

}

B.B.voidmain(void)

(

union

(

intn;

floatx;

}comm={12.5};

H

printf("%fzcomm.x);

}

C.C.voidmain(void)

(

union

(

floatx;

intn;

}comm={12.5}

printf(n,comm.x);

)

D.D.voidmain(void)

(

union

(

intn;

floatx;

}comm=5;

printf("%d",comm.n);

)

12.設有定義:inta=l,*p=&a;floatb=2.0;charc=*A,;以下不合法的運算是

(A)。

A.p++;B.a--;C.b++;D.c——;

13.以下程序中調用scanf函數給變量a輸入數值的方法是錯誤的,其錯誤原因是(B)0

main()

int*p,*q,a,b;

p=&a;

printf("inputa:");

scanf("%d,\*p);

}

A.*p表示的是指針變量p的地址

B.*p表示的是變量a的值,而不是變量a的地址

C.*p表示的是指針變量p的值

D.*p只能用來說明p是一個指針變量

14.假設num、a、b和c都是int型變蚩,那么執(zhí)行表達式num=(a=4,b=16,c=32j;后

num的值為(C)。

A.4B.16C.32D.52

15.已有如下定義和輸入語句,假設要求al,a2,cl,c2的值分別為10,20,A和B,當從第

一列開始輸入數據時,正確的數據輸入月式是(C),(注:_表示空楮)

intal,a2,charcl,c2;

scanf(,,%d%c%d%c,*,&al,&cl,&a2,&c2);

A.10A_20_BB.10_A_20_BC.10A20BD.10A20_B

16.假設有點明:inta[10];那么對a數組元素的正確引用是(C)。

A.a[10]B.a[3.5]C.a[5-3]D.a[-l]

17.在C語言中,一維數組的定義方式為類型說明符數組名;(A)

A.[整型常量表達式]E.[表達式J

C.[整型常量]D.[整型表達式]

18.以下能對一維數組a進行正確初始化的語句是(C;。

A.ina[10]=(0,0.0,0,0);

B.inta[10]={};C.inta[]={0};

D.inta[10]={10*l:-;

19.以下程序段(C)o

x=-l;

do

x=x*x;

}

while(!x);

A.是死循環(huán)B.循環(huán)執(zhí)行二次

C.循環(huán)執(zhí)行一次D.有語法錯誤

20.以下關于do-while循環(huán)的不正確描述是(B)。

A.do-while的循環(huán)體至少執(zhí)行一次

B.do-while循環(huán)由do開始,用while結束,在while(表達式)后面不能寫分號

C.在do-while循環(huán)體中,一定要有能使while后面表達式的值變?yōu)榱悖ā凹佟保┑牟僮?/p>

D.do-while的循環(huán)體可以是復合語句

二、是非判斷題(每題1分,共15分)

1.C語言規(guī)定,標識符中的字母一般區(qū)分大、小寫。T

2.控制臺標準輸入設備一般是指鍵盤。T

3.使用while和do-while循環(huán)時,循環(huán)變量初始化的操作應在循環(huán)語句之前處理cT

4.循環(huán)體中continue語句的作用是結束整個循環(huán)的執(zhí)行。F

5.關系表達式的值是(:或1。T

6.假設有說明:int:a[3][4]={0}?那么只有元素a[0][0]可得到初值0。T

7.字符串作為一維數組存放在內存中。T

8.字符數組中的一個元素存放一個字符To

9.字符數組中的最后一個字符必須是10'F

10.形參為指針變室時,買參必須是數組名。F

11.用數組名作函數參數時傳遞的是數組的值。F

12.全局變量可以被任何一個函數中的任何一個表達式使用。T

13.一個函數可以帶回一個整型值、字符值、實型值等,也可以帶回指針型的數據。

14.表達式i++與++i在任何場合功能完全相同。

15.在賦值表達式中,賦值號左邊的變量和右邊的表達式之值的數據類型可以不相同。

三、多項選擇題(每題1分,共5分)

1.假設要求在if后一對圓跨括號中表示a不等于0的關系,那么不能正確表示這一關系

的表達式為(ABC).

A.a<>0

B.!a

C.a=0

D.a

E.a!=0

2.選出所有合法的常量(CEGIJ)o

B.-e-3

D.?BASIC'

E.,\045,

F.Ofd

G.OxfdaL

H.e8

I.

J."\""

3.以下關于函數原型說法錯誤的選項是:(ADFHI)

(1)對變量的定義"和''聲明"是一回事,對函數的''定義"和''聲明"也是一回事。

(2)在聲明函數原型時,允許只寫出參數的類型,而不必寫出參數的名稱。

(3)如果在定義函數時不指定函數類型,系統(tǒng)會隱含指定函數類型為int型。

(4)調用一個函數時,函數名、實參個數、實參類型必須與函數原型一致。

(5)如果被調函數的定義出現在主調函數之前,可以不必加以聲明。

(6)所有的函數之間可以互相調用。

(7)在C語言中,所有函數都是平行的,一個函數不能附屬于另一個函數,即不能嵌套定義

的。

(8)如果函數沒有返回值,在定義時可以省略函數類型。

(9)在C語言中,任何函數的定義都不允許為空。

(10)C語言規(guī)定,實參變量對形參變量的數據傳遞是、'值傳遞"。

4.請從下面關于指針的表達中,選出5個正確的表達。(ABDEH)

(1)指針即地址。

(2)指針須先賦值后使用。

(3)當指針p指向數組a的首址后,由于p和a都能引用數組元素,所以這里p和a是等價

的。

{4}int*p表示定義了一個指向int類型數據的指針變量po

(5)數組的指針是指數組的起始地址。

(6)假設有定義inta[4]z*p=a,那么p++后p指向數組a所占內存的第二個字節(jié)。

(7)使用指針變量作函數參數采取的是“值傳遞”的方式。

(8)相同類型的指針可以進行減法運算。

(9)指針變量和許多變量一樣可以進行四那么運算。

(10)指針p指向數組元素a[2],假設要其指向執(zhí)行p=p*2即可。

5.以下關于數組的表達中,5個最確切的說法是:(BEGHI)

(1)在聲明一個數組變量時必須指定大小。

(2)必須用常蚩表達式來說明一個數組變蚩的大小。

(3)在對數組進行初始化時大括號中的數據個數必須和數組的大小相同。

(4)有變量定義inta[3]={0,l,2},b[3]可以用b=a,使數組b的每個元素和a的每

個元素相等。

(5)在C語言中,可以將字符串作為字符數組來處理。

(6)定義了字符數組charc[11];為了給它賦值,可以用c="china”;。

⑺如果有chars[15]={"Iama\0student"};,那么stsrlen(s)的值為6。

(8)C語言中,二維數組中元素排列的順序是:按行存放。

(9)在C語言中,不能對局部的數組變量進行初始化。

(10)在聲明時對數組進行進行初始化必須指定數組大小。

四、程序運行結果題(每題4分,共20分)

1.(4分)

下面程序的運行結果是(?)O

#include<stdio.h>

voidmain(void)

(

inti;

chara[]="Timen,b[:=nTorn";

for(i=0;a!=*\0,&&b!=*\0,;i++)

if(a==b)

1r,,,,

if(a>=*a&&a<=z*)printf(%cza-32);

elseprintf(,,%cn,a-32);

elseprintf("*");

)

2.(4分)

下面程序的的運行結果是(①)。

i=l;s=3

do

(

s+=i++;

if(s%7==0)continue;

else++i;

}whlie(s<15);

printf("%dH,i);

3.(4分)

假設運行時輸入:5999,那么以下程序的運行結果(保存小數點后一位)是(①)。

voidmain(void)

(

intx;

floaty;

,,,,

scanf(%dz&x);

if(x>=0&&x<=2999)y=18+0.12*x;

if(x>=3000&&x<=5999)y=36+0.6*x;

if(x>=6000&&x<=L0000)y=54+0.3*x;

n

printf("%6.1fzy);

}

4.(4分)

以下程序的運行結果是(?)o

voidmain(void)

(

inta=l,k;

for(k=0;k<3;k++)printf("%4d",fl(a))

)

intfl(intx)

staticintz=3,y=0;

y++;

z++;

return(x+y+z);

)

5.(4分)

以下程序的功能是計算函數F(x,y,z)=(x+y)/(x-y)+i:z+y)/(z-y)的值,請選擇填空。

#include<stdio,h>

#include<math.h>

floatfunl(float,float);

voidmain(void)

(

floatx,y,z,sum;

scanf("%f%f%",&x,&y,&z);

sum=funl(①)+funl((2));

printf("sum=%f\n*',sum);

)

floatfunl(floata,floatb)

(

floatnum;

num=a/b;

rpturnnum;

}

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

1.下面程序的功能是用公式:nxn/6=:L/(:Lxl)+l/(2x2)+:L/(3x3)+....

求n的近似值,直到最后一項的值小于10e-6為止。

#include<stdio.h>

#include<math.h>

voidmain(void)

(

longi=l;

①pi=0;

while(i*i<=10e+6){pi=②;i++;}

pi=sqrt(6.0*pi);

printf("pi=%10.6f\nH,pi);

}

2.下面程序的功能是把以下給定的字符按其矩陣格式讀入數組strl中,并輸出行列號之

和是3的數組元素。

voidmain(void)

(

charstrl[4][3]={1A*,*b','C','d','E','f','G','h','I','j','K',1i'

};

intx,y,z;

for(x=0;x<4;x++)

for(y=0;①;y++)

(

z=x+y;

n

if(②)printf(%c\n"zstrl[x][y]);

}

)

3.以下程序的功能是用遞歸方法計算學生的年齡,第一位學生年齡最小,為10歲,其余

學生一個比一個大2歲,求第5位學生的年齡。

遞歸公式如下:

age(1)=10

age(n)=age(n-1)+2(n>l)

#include<stdio.h>

intage(intn)

intc;

if(n==l)c=10;

elsec=①;

returnc;

)

4.以下程序的功能是判斷輸入的年份是否是閏年。

voidmain(void)

(

intyear,yes;

scanf(,iyear);

if(year%400==0)yes=l;

elseif(①)yes=l;

else②;

if(yes)printf(*'%dis",year);

elseprintf(n%disnot",year);

printf("aleapyear.\n");

)

5.以下程序實現:輸入三個整數,按從大到小的順序進行輸出。

voidmain(void)

(

intx,y,z,c;

scanf(%d考d",&x,&y,&z);

if(①){c=y;y=z;z=c;}

if((2)){c=x;x=z;z=c;}

if(③){c=x;x=y;y=c;}

printf(”%d,%d,%d",x,y,z);

}

六、填空題(每題1分,共20分)

1.在C語言中,一個float型數據在內存中所占的字節(jié)數為(①)個字節(jié);一個double

型數據在內存中所占的字節(jié)數為(②)個字節(jié)。

一、單項選擇題

1.下面正確的字符常量是:

A)、'c"B)C)'WzD)

2.以下字符串中不能作為C++標識符使用的是:

A)WHILEE)userC)_lvarD)9stars

3.執(zhí)行語句序列的輸出結果是o

inti=0;

while(i<25)

i+=3;

cout<<i;

A)24B)25C)27D)28

4.以下符號中可以用作C++標識符的是o

A)radiusE)foo~barC)elseD)3room

5.假設a是int類型變量,那么表達式a=25/333的值是:

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

6.以下表達中不正確的選項是:

A)在不同的函數中可以使用相同名字的變量

B)函數中的形參是局部變量

C)在一個函數內部定義的變蚩只在本函數范圍內有效

D)在一個函數內部定義的變量在所有函數內部有效

7.變量的引用,其含義是指該變量的:

A.值B.類型C.別名D.地址

8.定義:chars[10];那么下面不表示s[1]的地址的是:

A.s+1B.*(s+1)C.&s[0]+lD.&s[1]

9.通常拷貝構造函數的參數是:

A.對象B.對象的成員C.對象的引用D.對象的指針

10.派生類對象的構造順序是先調用:

A.派生類的構造函數B.基類的構造函數

C.內嵌對象的構造函數D.友元類的構造函數

二、填空題

1.動態(tài)多態(tài)是指在—(1)時才確定使用哪個—(2)—函數的方式。

2.友員不是類的成員,但必須在(3)—予以聲明,它具有存取類的—(4)_成員的

特權。

3.C++中class與stru寸的主要區(qū)別是在缺省訪問權限時,_(5)—的成員為私有的,

而_(6)—的成員為公有的。

4.假設角定義詔句:inta=3,b=2;,那么表達式a<b?a:b的值是⑺。

5.表達式:26%3=(8),32/5=(9)0

6.類的成員包括_(10)_和(11)兩種,在面向對象的術語中,前者稱為屬性、后

者稱為方法。其訪問權限有三種,由符號_(12)、_(13)__和_(14)_指定,其中具有

權限的成員只有關中的成員函數才能訪問、而具有__(16)__權限的成員在任何函數

中都可訪問。

7.對基類成員的初始化,必須在派生類構造函數的(L7)中進行。

8.C++源程序文件的獷展名是(18),頭文件的擴展名是(19)o

9.假設n為整型,那么表達式n=(float)2/3的值是(20)。

三、寫出程序的運行結果

1.寫出程序運行結果

include<iostream.h>

#include<string.h>

classCRect

private:

charcolor[10];

intleft;

inttop;

intlength;

intwidth;

public:

CRect();

CRect(char*c,intt,intlef,intlen,intwid);

voidSetColor(char*c);

voidSetSize(int1=100,intvz=100);

voidMove(intt,int1);

voidDraw();

};

CRect::CRect()

(

strcpy(color,“Black");

top-0;

left=0;

length=0;

width=0;

}

CRect::CRect(char*c,intt,intlef,intlen,intwid)

(

strcpy(color,c);

top=t;

leftlef;

length=len;

width=wid;

}

voidCRect::SetColor(char*c)

(

strcpy(color,c);

}

voidCRect::SetSize(int1,intw)

(

length=l;

width=w;

}

voidCRect::Move(intt,int1)

(

top=t;

left=1;

)

voidCRect::Draw()

(

cout?”矩形左上角坐標為("?left??top?")H?endl;

cout<<"矩形長和寬分別為"<<length<<<<width<<endl;

cout<<”矩形的顏色是"?color?endl;

)

voidmain()

CRectr;

r.SetColor(*'Red");

r.Move(10,20);

r.SetSize(100,200);

r.Draw();

r.Move(50,50);

r.SetColor(nBlue");

r.Draw();

)

2.寫出程序運行結果

#include<iostream.h>

classA

(

intxzy;

public:

A()

(

x=0;

y=0;

)

A(inta,intb)

|

x=a;

y=b;

}

~A()

if(x==y)

cout<<"x=yn?endl;

else

cout<<"x!=yn<<endl;

}

voidDisplay()

(

cout<<"x=H<<x<<",y=n<<y<<endl;

}

};

voidmain()

(

Aal,a2(2,3);

al.Display();

a2.Display();

)

3.寫出程序運行結果

#include<iostream.h>

classA

(

private:

intn;

public:

A(inti)

n=i;

)

operator++()

(

n++;

)

operator++(int)

(

n+=2;

}

voidDisplay()

(

cout<<nn=*'<<n<<endl;

}

};

voidmain()

(

Aa(2),b(2);

a++;

++b;

a.Display();

b.Display();

}

4.寫出程序運行結果

#include<iostream.h>

intfund(intn);

intfunc2(intn);

voidmain()

intsum;

sum=func2(5);

cout<<sum<<endl;

}

intfund(intn)

(

if(n==l)

return1;

else

returnn*funcl(n-1);

}

intfunc2(intn)

(

ints=0;

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

s+=fund(i);

returns;

}

四、編程(根據要求填上程序缺少的局部)

1.完成如下的程序,使得輸出為:

1234

#include<iostream.h>

#include<math.h>

classA

private:

_(1)___________

protected:

________(2)__________

public:

A(inta,intb,intc)

{

X=a;

Y=b;

Z=c;

)

intGetX()

(

returnX;

}

intGetY()

(

returnY;

)

intGetZ()

(

returnZ;

)

};

classB(3)

private:

intK;

public:

B(inta,intb,intc,intd)(4)

(

K=d;

)

voidShow()

|

cout<<GetX()<<GetY()<<Z<<K<<endl;

)

};

voidmain()

(

Bb(l,2,3,4);

c.Show();

)

2.在主函數中定義有30個元素的數組s,函數funcl0的功能是將2、4、6、…、56、

58、60分別賦給數組元素s[0]、s[l]%s[2]、...、s[27]、s[28]、s[29]o函數

func20的功能是按順序將數組的每5個元素求平均值并存入數組w中(即將s[0]、

s[l].s[2]、s[3]ss:4]的平均值存入w[0]中,s[5]、s[6]、s[7]、s[8]、s[9]

的平均值存入w[l]中,…)。請?zhí)羁帐钩绦蛘_運行。

#include<iostream.h>

#include<math.h>

voidfund(doubles;])

int1,k;

for(k=2,i=0;i<30;i++)

s[i]=k;

_______(5)__

)

1

voidfunc2(doubles:],doublew[])

(

doublesum;

inti,k;

for(k=0,i=0,sum=0;i<30;i++)

(

___________(6)____________

if((i+l)%5==0)

(

w[k]=sum/5;

___________(7)_

k++;

)

}

}

voidmain()

(

doubles[30],w[6];

fund(s);

func2(s,w);

C++程序設計試題及答案(-)答案

一、單項選擇題

1.C

2.D

3.A

4.A

5.B

6.D

7.D

9.c

10.b

二、填空題

1.執(zhí)行,成員

2.類中,私有

3.class.struct

4.2

5.2,6

6.數據成員,函數成員

7.public,private,protect,私有,公共

8.?cpp.h

三、寫出程序的運行結果

1.矩形左上角坐標為50,50

矩形長和寬分別為100,1C0

矩形的顏色是Blue

2.x=0,y=0

x=2,y=3

x=y

x!=y

3,n=3

n=4

4,5

四、編程(根據要求填上程序缺少的局部)

1.intX,Y;

2.intZ;

3.publicA

4.:A(a,bzc)

5.k+=2;

6.sum+=s[i];

7.sum-0;

C++程序設計試題及答案(二)

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

1.當使用關鍵字(1)作為函數返回類型時,該函數不返回任何值。

2.在類中必須聲明成員函數的_(2)成員函數的—(3)_局部可以寫在類外。

3.如果需要在被調函數運行期間,改變主調函數中實參變量的值,那么函數的形參應該是一

(4)—類型或—(5)_芟型。

4.當一個變蚩被聲明為另一個變量的引用時,此變量就成為被引用變量的此時,

對其中一個變量值的修改,_(7)_〔會/不會)影響到另一個變量的值。

5.友員不是類的成員,但必須在(8)_予以聲明,它具有存取類的_(9)_成員的特權。

6.如果需要在被調函數運行期間,改變主調函數中實參變量的值,那么函數的形參應該是

類型或—(11)_類型。

7.友員不是類的成員,但必須在(12)_予以聲明,它具有存取類的成員的特

權。

8.如果需要在被調函數運行期間,改變主調函數中實參變量的值,那么函數的形參應該是

_(14)_類型或(15)_類型。

9.下面程序將字符數組a復制到字符數組b中。

main()

(

chara[]=nIamaboy.",b[20];

inti;

for(i=_(16)_;a[i]!=*\0';i++)

—(17);

}

(18);

}

10.下面程序的功能是計算1-3+5-7+...-99+101的值存在s中,請?zhí)羁铡?/p>

#include<stdio.h>

main()

intizt=l,s=0;

for(i=l;i<=101;_(19)_)

(

s=s+i*t;

t=_(20)_;

}

)

二、判斷以下說法的正確性,正確的劃錯誤的劃x(10分,每個題目2分)

1.如果派生類的成員函數的原型與基類中被定義為虛函數的成員函數原型相同,那么,這個

函數自動繼承基類中虛函數的特性。

2.在C++中,關鍵字class與struct具有完全相同的作用。

3.假設有定義:doublex[3][5];那么x數組行下標的上限是3,下限是1。

4.說明函數原型時不需要指明每個參數的類型,只需要說明每個參數的名字就可以了。

5.如果在一個程序塊中有兩個變量具有相同的名字,并且都有效,只是它們的作用域不司,

那么優(yōu)先訪問作用域較大的那個變量。

三、單項選擇題(30分,顯題2分)

1.程序段

inta,b;

a=5;

b=a++;

cout<<b;

的輸出應為:

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

2.程序段

inti,a;

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

a=i;

cout<<i;

的輸出應為;

A)0B)9C)10D)11

3.以下有關函數重載的表達中,錯誤的選項是o

A)函數重載就是用相同的函數名定義多個函數

B)重載函數的參數列表必須不同

C)重載函數的返回值類型必須不同

D)重載函數的參數可以帶有默認值

4.int*plz*p2,a[10];

pl=a;

p2=&a[5];

那么p2-pl的值為:

A)無法確定B)10C)5D)12

5.變量的指針,其含義是指該變量的:

A)值B)地址C)名D)一個標志

6.派生類的成員函數不能訪問基類的o

A)公有成員和保護成員B)公有成員

C)私有成員D)保護成員

7.數字字符0的ASC1工值為48,假設有以下程序

voidmain()

chara=*1',b=*2*;

cout<<b++<<,;

cout<<b-a<<endl;

)

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

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

8.有以下程序

voidmain()

inta[3][3],*p,i;

p=&a[O][0];

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

p[i]=i;

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

cout<<a[1][i];

}

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

A)012B)123C)234D)345

9.以下表達中錯誤的選項是:

A)對于double尖型數組,不可以直接用數組名對數組進行整體輔I人或輸出

B)數組名代表的是數組所占存儲區(qū)的首地址,其值不可改變

C)程序執(zhí)行中,數組元素的下標越界時,系統(tǒng)給出''下標越界"的出錯信息

D)可以通過賦初值的方式確定數組元素的個數

10.有以下程序

voidmain()

inta[]={l,2,3,4,5,6,7,8,9,0},*p;

for(p=a;p<a+10;p++)

cout?*p<<;

}

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

A)1,2,3,4,5,63,8,9,0,B)2,3,4,5,6,7,8,9,10,1,

C)0,1,2,3,4,5,63,8,9,D)1,1,1,1,1,1,1,1,1,1,

11.有以下程序

voidmain()

(

intc=35;

intb=c&c;

cout<<b;

}

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

A)0B]70C)35D)1

12.執(zhí)行以下程序段后,正確的結果是:

inti=0zs=l;

while(i<3)

s+=i;

i++;

}

cout<<s;

A)5B)6C)4D)3

13.執(zhí)行以下程序段后,正確的結果是:

chara[7]=wabcdef;

charb[4]="ABC";

strcpy(a,b);

cout<<a[5];

A)eB)fC)0D)無輸出

14.以下帶缺省值參數的函數說明中,正確的說明是

A)intFun(intx,inty=2,intz=3);

B)intFun(intx=l,inty,intz=3);

C)intFun(intx,inty=2,intz);

D)intFun(intx=l,inty,intz);

15.拷貝構造函數的作用是:

A)進行數據類型的轉換

B)用對象調用成員函數

C)用對象初始化對象

D)用一般類型的數據初始化對象

四、寫出程序的運行結果(20分,每題10分)

1.函數sub的功能是什么?寫出運行結果。

1.函數sub的功能是什么?寫出運行結果。

#include<iostream.h>

longsub(intnum)

inti;

longsubsum=l;

for(i=l;i<=num;i+-)

subsum*=i;

return(subsum);

}

voidmain()

(

inti;longsum=0;

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

(

sum+=sub(i);

cout<<i<<?sum?endl;

)

}

2,寫出程序運行結果

#include<iostream.h>

classBase

public:

voidWhoAml()

(

cout<<"ClassBass"?endl;

}

virtualvoidWho()

(

cout<<"ClassBass"?endl;

)

};

classDerived:publicBase

(

public:

voidWhoAml()

(

cout<<"ClassDerived"<<endl;

}

voidWho()

cout<<"ClassDerived"?endl;

}

};

voidmain()

Base*p;

Baseb;

Derivedd;

p=&b;

p->WhoAmI();

p->Who();

p=&d;

p->WhoAmI();

p->Who();

)

五、編程(根據要求填上程序缺少的局部)(20分,每題10分)

1.函數Ccnvert()將一個數字字符串轉換為對應的整數,請埴空,實現函數的功能。

#include<iostream.h>

intConvert(char*str);

voidmain()

chars[10]="12345”;

intn=Convert(s);

cout<<n<<endl;

)

intConvert(char*str)

(

intnum=Ozdigit;

for(inti=0;(1);i++)

(

digit=(2);

num=num*10+digit;

}

returnnum;

}

2.函數Convert()將一個數字字符串轉換為對應的整數,請?zhí)羁眨瑢崿F函數的功能。

#include<iostream.h>

intConvert(char*str);

voidmain()

chars[10]="12345”;

intn=convert(s);

cout<<n<<endl;

)

intConvert(char*str)

(

intnum=0,digit;

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

(

digit=(4);

num=num*10+digit;

)

returnnum;

}

C++程序設計試題及答案(Z)

一、填空題

1.void

2.函數頭,函數體

3.引用,指針

4.別名,會

5.類中,私有

6.引用,指針

7.類中,私有

8.引用,指針

9.a[i]=b[i]a[i]=*\0'

10.i=i+2

二、判斷以下說法的正確性

1.7

2.x

3.x

4.x

5.x

三、單項選擇題

1.C

2.B

3.A

4.D

5.B

6.D

7.B

8.A

9.D

10.B

11.D

12.B

13.A

14.C

四、寫出程序的運行結果

1.從1連乘到num

5,1.53

2.ClassBass

ClassBass

ClassDerived

ClassDerived

五、編程(根據要求填上程序缺少的局部)

1.(1)i<strlen(str)

(2)str[i]

2.(1)i<10

(2)s[i]

c十十程序設廿試題及答案(三)

時間:2021-07-1718:54來源:未知作者:admin點擊:2840次

標簽:

C++程序設計試題及答案(三)學號:專業(yè):層次:姓名:題號一二三四五六

七八九十總分得分注意:所有答案都要寫在答題卡上一、單項選擇題1.設有數組

定義:chararray[]=China;那么數組array所占的空間為:A)4個字節(jié)B)5個字

節(jié)C)6個

C++程序設計試題及答案[三)

學號:專業(yè):層次:姓名:

題號

總分

得分

注意:所有答案都要寫在答題卡上

一、單項選擇題

1.設有數組定義:chararray[]="China";那么數組array所占的空間為:

A)4個字節(jié)B)5個字節(jié)C)6個字節(jié)D)7個字節(jié)

2.以下選項中,與實現運行時多態(tài)性無關的是o

A)重載函數B)虛函數C)指針D)引用

3.假設a是int類型變量,那么計算表達式a=1000%999的值是:

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

4.下面程序段中,for循環(huán)的執(zhí)行次數是:

inti-10;

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

cout<<;

A)9B)10C)8D)7

5.有以下程序

voidmain()

(

inta[3][3],*p,i;

p=&a[0][0];

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

p[i]=i;

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

cout<<a[1][i];

}

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

A)012B)123C)234D)345

6.以下表達中錯誤的選項是:

A)對于double類型數組,不可以直接用數組名對數組進行整體輸入或輸出

B)數組名代表的是數組所占存儲區(qū)的首地址,其值不可改變

C)程?蜂蔥兄校??樵?氐南鹵暝澆紙保?低掣??Idqu。;下標越界”的出錯信息

D)可以通過賦初值的方式確定數組元素的個數

7.有以下程序

voidmain()

(

inta[]={l,2,3,4,5,6,7,8,9,0},*p;

for(p=a;p<a+10;p++)

cout<<*p<<;

)

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

A)1,2,3,4,5,63,8,9,0,B)2,3,4,5,6,7,8,9,10,1,

C)0,1,2,3,4,5,63,8,9,D)1,1,1,1,1,1,1,1,1,1,

8.有如下函數模板定義:

template<classT>

Tfunc(Tx,Ty)

(

returnx*x-y*y;

)

在以下對func0的調用中,錯誤的選項是

A)func(3,5);B)func(3.0,5.5)

C)func(3,5.5)D)func((double)3,5.5)

9.有如下類聲明:

classA

(

intx;

public:

A(intn)

(

x=n;

}

};

classB:publicA

(

inty;

public:

B(inta,intb);

);

以下函數中哪一個是正確的構造函數

A)B::B(inta,intb):x(a)zy(b){)

B)B::B(inta,intb):A(a),y(b){)

C)B::B(inta,intb):x(a),B(b){}

D)B::B(inta,intb):A(a),B(b){)

10.類的析構函數的作用是

A)對象的初始化B)刪除對象時的清理任務

C)與一般成員函數一樣D)類的初始化

二、填空題

1.假設要訪問指針變量P所指向的數據,應使用表達式_(1)_O

2.面向對象程序設計中的多態(tài)性包括靜態(tài)多態(tài)性和動態(tài)多態(tài)性,前者由_(2)—機制支持,

而后者那么由_(3)—機制支持。

3.引入虛基類的目的是為了解決多重繼承中的(4)和(5)—問題。

4、有一種只在循環(huán)語句或switch語句中使用的流程控制語句,表示該語句的關鍵字是

—(6)_o

5.下面程序的功能是計算1-3+5-7+...-99+101的值存在s中,請?zhí)羁铡?/p>

#include<stdio.h>

main()

(

intizt=l,s=0;

for(i=l;i<=101;(7))

(

s=s+i*t;

t=_(8)_;

}

}

6.在C++語言中,邏輯假用—(9)表示。

7.類的成員包括_(10)—和_(11)—兩種,在面向對象的術語中,前者稱為屬性、

后者稱為方法。其訪問權限有三種,由符號_(12)._(13)—和—(14)_指

定,其中具有—(15)—權限的成員只有類中的成員函數才能訪問、而具有_(16)_權

限的成員在任何函數中都可訪問。

8.構造函數是一個特殊的成員函數,其特殊性表現在創(chuàng)立對象時會(17)o構造函

數名必須與—(18)—相同.

9.函數重載是指一組函數具有相同的_(19)_,在函數調用時,編譯程序根據—

(20)個數和類型確定使用那一個版本。

三、判斷以下說法的正確性,正確的劃4,錯誤的劃X

1.析構函數是一個函數體為空的成員函數。

2.函數重載可以實現動態(tài)多態(tài),虛函數可以實現靜態(tài)多態(tài)。

3.假設有定義:doublex[3][5];那么x數組列下標的上限是5,下限是1。

4.不能在類的構造函數中對其靜態(tài)數據成員進行初始化。

5.在C++中,可以使用關鍵字struct定義類。

6.用class定義的類中,默認的訪問權限是私有的。

7.一個類中必須要有公有成員和私有成員。

8.如果在一個程序塊中有兩個變量具有相同的名字,并且都有效,只是它們的作用域不司,

那么優(yōu)先訪問作用域較小的那個變量。

9.如果一個成員函數只訪問一個類的靜態(tài)數據成員,那么可將該成員函數說明為靜態(tài)成員函

數。

10.構造函數不能

溫馨提示

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

評論

0/150

提交評論