電大C語(yǔ)言程序設(shè)計(jì)A期末模擬試題_第1頁(yè)
電大C語(yǔ)言程序設(shè)計(jì)A期末模擬試題_第2頁(yè)
電大C語(yǔ)言程序設(shè)計(jì)A期末模擬試題_第3頁(yè)
電大C語(yǔ)言程序設(shè)計(jì)A期末模擬試題_第4頁(yè)
電大C語(yǔ)言程序設(shè)計(jì)A期末模擬試題_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

C語(yǔ)言程序設(shè)計(jì)A期末模擬試題一1.C++語(yǔ)言是在語(yǔ)言的基礎(chǔ)上發(fā)展起來(lái)

一、單項(xiàng)選擇題(每小題2分,共20分)的。

1.由C++目標(biāo)文件連接而成的可執(zhí)行文件的缺省擴(kuò)展2.當(dāng)執(zhí)行cin語(yǔ)句時(shí),從鍵盤上輸入每個(gè)數(shù)據(jù)后

名為()。必須接著輸入一個(gè)符,然后才能繼續(xù)輸入下一

A.cppB.exeC.objD.個(gè)數(shù)據(jù)。

lik3.假定x是一個(gè)邏輯量,則x&&false的值為

2.x>D&&x<=10的相反表達(dá)式為()oO

A.x<=()||x>10B.x<=3&&x>104.元素類型為char的二維數(shù)組a[10][30]共占用

C.x<=0||x<=10D.x>0&&x>10字節(jié)的存儲(chǔ)空間。

3.在下面的一維數(shù)組定義中,哪一個(gè)有語(yǔ)法錯(cuò)誤。5.局部變量具有局部生存期,存放在內(nèi)存的

(C)棧_區(qū)中。

A.inta[]={l,2,3};B.inta[10]={0);6.已知語(yǔ)句wcout?p;”的輸出是“Hello!”,則

C.inta[];D.inta[5];語(yǔ)句"cout?*p;"輸出的是。

4.假定p是具有double類型的指針變量,則表達(dá)式7.對(duì)類中常量成員的初始化是通過(guò)在構(gòu)造函數(shù)中

++P使P的值(以字節(jié)為單位)增加(C)。給出的來(lái)實(shí)現(xiàn)的。

A.1B.4C.sizeof(double)8.在重載一個(gè)單目運(yùn)算符時(shí),參數(shù)表中沒(méi)有參數(shù),

D.sizeof(p)說(shuō)明該運(yùn)算符函數(shù)只能是類的。

5.當(dāng)打nclu加后面的文件名用雙引號(hào)括起來(lái)時(shí),尋找9.假定用戶為類AB定義了一個(gè)構(gòu)造函數(shù)“AB(int

被包含文件的方式是(B)。aa):a(aa)()",則定義該類的對(duì)象時(shí),有種定

A.直接按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索目錄義格式。

B.先在源程序所在目錄搜索,再按系統(tǒng)設(shè)10.在每個(gè)成員函數(shù)中,隘含的第一個(gè)參數(shù)的參數(shù)

定的標(biāo)準(zhǔn)方式搜索目錄名為。

C.僅僅搜索源程序所在目錄三、程序填充題(對(duì)程序、函數(shù)或類中劃有橫線的位置,

I).搜索當(dāng)前邏輯盤上的所有目錄根據(jù)題意按標(biāo)號(hào)把合適的內(nèi)容填寫到程序下面相應(yīng)標(biāo)

6.假定指針變量p定義為“int*p=newint(100);號(hào)的后面。每小題6分,共24分)

要釋放P所指向的動(dòng)態(tài)內(nèi)存,應(yīng)使用語(yǔ)句(A)。1.斐波那契數(shù)列的第1和第2個(gè)數(shù)分別為。和1,

A.deletep;B.delete*p;C.從第三人數(shù)開(kāi)始,每個(gè)數(shù)等于其前兩個(gè)數(shù)之和。求斐波

delete&p;D.delete[]p;那契數(shù)列中的前20個(gè)數(shù),要求每行輸出5個(gè)數(shù)。

7.假定AA為一個(gè)類,a為該類公有的數(shù)據(jù)成員,pxitinc1ude<iostream.h>

為指向該類對(duì)象的一個(gè)指針,則訪問(wèn)px所指對(duì)象中數(shù)voidnain()(

據(jù)成員a的格式為()ointf,i;

A.px(a)B.px[a]C.px->acout?"斐波那契數(shù)列:\n”;

D.px.afl=0;f2=l;

8.棧具有()的操作特性。cout?setw(6)<<fl?setw(6)<<f2;

A.先進(jìn)先出B.先進(jìn)后出C.for(i=3;i<=20;i++)(

進(jìn)出無(wú)序1).進(jìn)出任意f=(1);

9.對(duì)于任一個(gè)類,用戶所能定義的構(gòu)造函數(shù)的個(gè)數(shù)至cout?setw(6)<<f;

多為(3if((2))cout<<endl;

A.0B.1C.2D.任意fl=f2;

個(gè)f2=—(3);

10.下列對(duì)派生類的描述中錯(cuò)誤的說(shuō)法是:)

cout?endl;

A.派生類至少有一個(gè)基類)

B.派生類可作為另一個(gè)派生類的基類

C.派生類除了包含它直接定義的成員外,還(1)(2)(3)

包含其基類的成員2.對(duì)數(shù)組a[n]按升序進(jìn)行的選擇排序算法

D.派生類所繼承的基類成員的訪問(wèn)權(quán)限保voidSelectSort(inta[],___(1)___)

持不變(

二、填空題(每題2分,共20分)inti,j,k;

for(i=l;i<n;i++){〃進(jìn)行n-1次選擇A(){a=0;}

和交換(1)—{)〃定義構(gòu)造函數(shù),用參數(shù)aa初

k=i-l;始化數(shù)據(jù)成員a

for(j=i;j<n;j++)};

if(a[j]<a[k])___(2)____;main(){

intx=a[i-l];a[i-l]=a[k];〃定義類A的指針對(duì)象p

―⑶_;_(3)_;〃用p指向動(dòng)態(tài)對(duì)象并初始化為

)整數(shù)5

)

(1)(2)(1)(2)

(3)(3)

3.已知一個(gè)類的定義如下:四、理解問(wèn)答題(寫出前兩小題的程序運(yùn)行結(jié)果和指

#inc1ude<iostream.h>出后兩小題的程序(或函數(shù))所實(shí)現(xiàn)的功能。每小題6

classAA{分,共24分)

inta[10];1.ttinclude<iostream.h>

intn;#include<stdlib.h>

public:voidmain()

voidSetA(intaa[],intnn);〃用數(shù)組aa初始(

化數(shù)據(jù)成員a,inta[8]={25,48,32,85:64,18,48,29);

〃用nn初始化數(shù)intmax,min;

據(jù)成員nmax=min=a[0];

intMaxA();〃從數(shù)組a中前n個(gè)元素中查找最for(inti=0;i<8;i++){

大值if(x>a[i])max=a[i];

voidSortAO;〃采用選擇排序的方法對(duì)數(shù)組a中if(x<a[i])min=a[i];

前n個(gè)元素}

〃進(jìn)行從小到大排序cout?,,max:w<<max<<endl;

voidInserlA。;〃采用插入排序的方法對(duì)數(shù)組acout?,,min:z,<<min<<endl;

中前n個(gè)元素進(jìn)行從小到大排序)

voidPrintAO;〃依次輸出數(shù)組a中的前n個(gè)元2.#include<iostream.h>

素voidmciinO

);(

for(inti=l,s=0;i<20;i++){

該類中MaxAO函數(shù)的實(shí)現(xiàn)如下,請(qǐng)?jiān)跇?biāo)號(hào)位置補(bǔ)if(i%2==0||i%3==0)continue;

充適當(dāng)?shù)膬?nèi)容。cout?i?,';

int____(1)__s+=i;

{)

intx=a[0];cout<<s?endl;

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

if(a[i]>x)—(2)—;3.voidtrans(intx)

—⑶__;(

chara[10];

inti=0,rem;

(1)⑵do{

(3)rem=x%16;

4.classA{x=x/16;

inta;if(rem<10)a[i]=48+rem;〃'O'

public:字符的ASCII碼為48

elsea[i]=55+rem;〃'A'7.C8.B9.El10.D

字符的ASCII碼為65

i++;.、填空題

}while(x!=O);1.C2.空白3.false(或0)4.300

while(i>0)cout<<a[i];5.棧6.H7.初始化表

cout?endl;8.成員函數(shù)9.110.this

)

三、程序填充題

4.char*f(char*s){1.(1)fl+f2(2)i%5==0(3)

intn=strlen(s);f

char*r=newchar[n+l];2.(1)intn(2)k二j

for(inti=0;i<n;i++)⑶a[k]=x

if(s[i]>=,a&&s[i]<=,z)3.(1)AA::MaxA()(2)x=a[i]

r[i]=s[i]-,a'+'A';⑶returnx

elser[i]=s[i];4.(1)A(intaa):a(aa)⑵A*p

r[n]=,\0*;⑶p=newA(5)

returnr;

)四、理解問(wèn)答題

1.

五、編程題(每小題6分,共12分)max:85

1.求出從鍵盤上輸入的10個(gè)整數(shù)中的最大值,要求min:18

輸入變量用x表示,存儲(chǔ)最大值的變量用max表示。

2.

2.根據(jù)下面類中Reverse函數(shù)成員的原型和注釋寫157111337

出它的類外定義。3.

classAA{

int*a;此函數(shù)用于把十進(jìn)制整數(shù)x轉(zhuǎn)換為十六進(jìn)制數(shù)字串輸

intn;出

intMS;4.

public:根據(jù)參數(shù)s所指向的字符串,生成一個(gè)由r所指向的

voidInitAA(intaa[],intnn,intms){新字符串并返回,該字符串使s字符串中的小寫字母均

if(nn>ms){cout?*Error!〃<<endl;變?yōu)榇髮憽?/p>

cxit(l);)

MS=ms;五、編程題

n=nn;

a=newint[MS];1.ftinclude<iostreani.h>

for(inti=0;i<MS;i++)a[i]=aa[i];voidmain()

)(

AA*ReverseO;〃對(duì)于調(diào)用該函數(shù)的對(duì)象,將其aintx,max;

數(shù)組中前n個(gè)cin?x;

〃元素值按相反的次序排列,返回指向該對(duì)max=x;

象的指針。for(inti=0;i<9;i++){

);cin?x;

if(x>max)max=x;

C語(yǔ)言程序設(shè)計(jì)A期末模擬試題一)

參考答案cout<</zmax:/,?max?endl;

}

一、單選題2.

1.B2.A3.C4.B5.C6.AAA*AA::Reverse()

C.(first+length-l)%MSI),

(first+length)%MS

inti,x;8.假定AB為一個(gè)類,則執(zhí)行“ABrl=r2;”語(yǔ)

for(i=0;i<n/2;i++){句時(shí)將自動(dòng)調(diào)用該類的()。

x=a[i];a[i]=a[n-l-i];a[n-l-i]=x;A.無(wú)參構(gòu)造函數(shù)B.帶參構(gòu)造函數(shù)C.賦

)值重載函數(shù)D.拷貝構(gòu)造函數(shù)

returnthis;9.雙目運(yùn)算符重載為普通函數(shù)時(shí),其參數(shù)表中應(yīng)

)帶有()個(gè)參數(shù)。

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

10.當(dāng)派生類中有和基類一樣名字的成員時(shí),一般

C語(yǔ)言程序設(shè)計(jì)A期末模擬試題二來(lái)說(shuō),()o

一、單項(xiàng)選擇題(每小題2分,共20分)A.將產(chǎn)生二義性B.派生類

1.編寫C++程序一般需經(jīng)過(guò)的幾個(gè)步驟依次是的同名成員將覆蓋基類的成員

C.是不能允許的D.基類的

A.編譯、編輯、連接、道試同名成員將覆蓋派生類的成員

B.編輯、編譯、連接、詭試二、填空題(每題2分,共20分)

C.編譯、調(diào)試、編輯、連接1.行尾使用注釋的開(kāi)始標(biāo)記符為。

D.編輯、調(diào)試、編輯、連接2.設(shè)enumPrintstatus{ready=2,busy,error};

2.假定一個(gè)二維數(shù)組的定義語(yǔ)句為“int則cout?busy的輸出結(jié)果是3

a[3][4]={{3,4},{2.8.6));",則元素的值為3.重載一個(gè)函數(shù)的條件是:該函數(shù)必須在參數(shù)的

(A)。個(gè)數(shù)或參數(shù)的—類型一上與其它同名函數(shù)有所不同。

A.0B.4C.8I).64.定義一個(gè)函數(shù)模板要用到的第一個(gè)修飾符是一

3.函數(shù)重載是指(A)otemplate

A.兩個(gè)或兩個(gè)以上的函數(shù)取相同的函數(shù)5.與結(jié)構(gòu)成員訪問(wèn)表達(dá)式p->name等價(jià)的表達(dá)式

名,但形參的個(gè)數(shù)或類型不同是O

B.兩個(gè)以上的函數(shù)取相同的名字和具有相6.如果一個(gè)派生類的基類不止一個(gè),則這種繼承

同的參數(shù)個(gè)數(shù),但形參的類型可以不同稱為O

C.兩個(gè)以上的函數(shù)名字不同,但形參的個(gè)7.在一個(gè)用數(shù)組實(shí)現(xiàn)的隊(duì)列類中,假定數(shù)組長(zhǎng)度

數(shù)或類型相同為MS,隊(duì)首元素位置為Crsl,隊(duì)列長(zhǎng)度為length,則

D.兩個(gè)以上的函數(shù)取相同的函數(shù)名,并且插入一人新元素的位置為。

函數(shù)的返回類型相同8.向一個(gè)隊(duì)列中插入元素就是把該元素放到

4.假定p指向的字符串為”string”,若要輸出________元素的后一位置上。

這個(gè)字符串的地址值,則使用(D)。9.假定用戶只為類AB定義了一個(gè)構(gòu)造函數(shù)

A.cout<<*s;B.cout<<s;C.cout?&s;“AB():a(0),b(0){}",則定義該類對(duì)象x的定義語(yǔ)句

D.cout<<(void*)s;“ABx;”是(正確/錯(cuò)誤)的。

5.在類作用域中能夠通過(guò)直接使用該類的()10.除了運(yùn)算符外,其他重載的運(yùn)算符

成員名進(jìn)行訪問(wèn)。都可以被派生類繼承。

A.私有B.公用C.保護(hù)

D.任何三、程序填充題(對(duì)程序、函數(shù)或類中劃有橫線的

6.假定AA為一個(gè)類,a為該類公有的數(shù)據(jù)成員,位置,根據(jù)題意按標(biāo)號(hào)把合適的內(nèi)容填寫到程序下面相

若要在該類的一個(gè)成員函數(shù)中訪問(wèn)它,則書(shū)寫格式為應(yīng)標(biāo)號(hào)的后面。每小題6分,共24分)

()。1.統(tǒng)計(jì)字符串中英文字母?jìng)€(gè)數(shù)的程序。

A.aB.AA::aC.a()D.^include<iostream.h>

AA::a()intcount(charstr[]);

7.在一個(gè)用數(shù)組實(shí)現(xiàn)的隊(duì)列類中,假定數(shù)組長(zhǎng)度voidmain(){

為MS,隊(duì)首元素位置為first,隊(duì)列長(zhǎng)度為length,則charsi[80];

隊(duì)尾(即最后一個(gè))元素的位置為()。cout?MEnteraline:0;

A.length+1B.cin>>sl;

first+lcngthcout<<vcount=M?count(si)<<cndl;

)—⑶__;

intcount(charstr[]){i++;

intnum=0;〃給統(tǒng)計(jì)變量賦初值}

for(inti=0;str[i];i++)}

if(str[i]>=,a*&殳str[i]<=,z,

)(1)(2)

—(2)—;(3)

—⑶;

)4.已知一個(gè)利用數(shù)組實(shí)現(xiàn)棧的類定義如下:

constintARRAY_SIZE=10;

(1)(2)classStack(

(3)public:

voidInitO{top=T;}〃初始化棧為空

2.從健盤上輸入一個(gè)正整數(shù),然后把它轉(zhuǎn)換成voidPush(intnewElem);//向棧中壓入一個(gè)

的二進(jìn)制數(shù)的每一位存放到一維數(shù)組中,最后輸出該二元素

進(jìn)制數(shù),注意二進(jìn)制數(shù)的存放是按照從低位到高位的次intPopO;〃從棧頂彈出一個(gè)元

序進(jìn)行的。素

#include<iostream.h>boolEmpty(){〃判棧空

voidmain()if(top==-l)returntrue;elsereturn

{false;}

intx;intDepth()(returntop+1;}//返回棧的深度

cout?!ㄝ斎胍粋€(gè)整數(shù):“;voidPrint();

cin?x;〃按照后進(jìn)先出原則依次輸M板中每個(gè)元

inta[20],k=0,r;素,直到??諡橹?/p>

do{private:

r=x%2;intclem[ARRAY_SIZE];〃用于保存堆棧元素的

a[k++]=r;數(shù)組

x=—(1)—;inttop;〃指明棧頂元素位置的

}while(一⑵—);指針

for(—k;k>=O;k-)__(3)};

cout<<end);

)該類的Pop和Print函數(shù)的實(shí)現(xiàn)分別如下:

_(1)_(

(1)(2)if(top==-l){

(3)cout<<"???,z?endl;

3.假定有定義為“slruclNODE{intdata;NODE*exit(1);〃中止運(yùn)行

next;};",下面算法根據(jù)table數(shù)組中的n個(gè)元素建立)

一個(gè)表頭指針為L(zhǎng)的鏈表,鏈表中結(jié)點(diǎn)值的順序與數(shù)組return___(2)___;

元素值的順序正好相反。

voidf6(NODE*&L,inttablet],intn)

(voidStack::Print(){

L=NULL;while(!Empty())

if(n<=0)return;cout<<___(3)___<<'’;

inti=0;)

NODE*p;

while(___(1)___){(1)(2)

p=newNODE;(3)

p->data=___(2)___;

p->next=L;四、理解問(wèn)答題(寫出前兩小題的程序運(yùn)行結(jié)果和指

出后兩小題的程序(或函數(shù))所實(shí)現(xiàn)的功能。每小題6inti=10,a;

分,共24分)while(i>0){

1.#include<iomanip.h>a=rand()%100+10;

constintN=5;intj,k=intJsqrt(a)+le-5);

voidmain()〃sqrt(x)為求x的平方根函數(shù)

{for(j=2;j<=k;j++)

inti,p=l,s=0;if(a%j==0)break;

for(i=l;i<N;i++){if(j>k){cout?a?:*;i-;}

P=P*i;)

s=s+p;}

cout?setw(5)?i<<setw(5)<<p;

cout?setw(5)?s<<endl;

)

)4.intf8(constchar*strl,constchar*str2)

2.#include<iostream.h>(

#include<string.h>inti=0;

classCI){while(strl[i]&&str2[i])

char*a;if(strl[i]==str2[i])i++;

intb;elseif(strl[i]>str2[i])return

public:1;

voidInit(char*aa,intbb)elsereturn-1;

(if(strl[i]==str2[i])return0;

a=newchar[strlen(aa)+l];elseif(strl[i]>str2[i])return1;

strcpy(a,aa);elsereturn-1;

b=bb;}

}

char*GetaO{returna;}五、編程題(每小題6分,共12分)

intGetb(){returnb;)1.按照下面函數(shù)原型語(yǔ)句編寫一個(gè)函數(shù),返回二

voidOutput(){cout<<a<<>維數(shù)組中所有元素的平均值,假定采用變量v

,?b?endl;}存放平均值。

);

voidmain()2.根據(jù)下面類中MaxMin函數(shù)成員的原型和注釋

(寫出它的類外定義。

CDdx,dy;classAA{

chara[20];int*a;

dx.Init(,/abcdef,,?30);intn;

strcpy(a,dx.GetaO);intMS;

strcat(a,"xyz");public:

dy.Init(a,dx.Getb()+20);voidInitAA(intaa[],intnn,intms){

dx.Output();if(nn>ms)(cout?*Error!^<<endl;

dy.Output0;exit(1);}

MS=ms;

)n=nn;

a=newint[MS];

3.#include<iostream.h>for(inti=0;i<MS;i++)a[i]=aa[i];

#include<stdlib.h>}

#include<math.h>intMaxMin(int&x,int&y);〃從數(shù)組a的前n個(gè)

voidmain()元素中求出

〃最大值和最小值,并分別由引用參數(shù)x

和y帶回,);

〃同時(shí)若n大于0則返叵1,否則返回0。

C語(yǔ)言程序設(shè)計(jì)A期末模擬試題二for(i=0;i<m;i++)

參考答案for(j=0;j<n;j++)

v+=a[i][j];

三、單選題v/=m*n;

1.B2.A3.A4.D5.B6.Areturnv;

7.C8.1)9.C10.B)

2.

四、填空題intAA::MaxMin(int&x,int&y)

1.//2.33.類型4.template{

5.(*p).name6.多繼承intmx,my;

7.(rirst+length)%MS8.隊(duì)尾9.正確mx=my=a[0];

10.賦值for(inti=l;i<n;i++){

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

三、程序填充題if(a[i]<my)my=a[i];

1.(1)str[i]>=>A'&&str[i]<=,7:(2)}

num++(3)returnnumx=mx;y=my;

2.(1)x/2(2)x!=0(3)if(n>0)return1;elsereturn0;

cout<<a[k]}

3.(1)i<n(2)tablefi](3)L=pC語(yǔ)言程序設(shè)計(jì)A期末模擬試題三

4.(1)intStack::Pop()(2)elem[top-]一、單項(xiàng)選擇題(每小題2分,共20分)

⑶PopO1.C++程序的基本模塊為()o

A.表達(dá)式B.標(biāo)識(shí)符C.語(yǔ)句

四、理解問(wèn)答題D.函數(shù)

1.

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論