國家二級(C++)機試模擬試卷3 (三)_第1頁
國家二級(C++)機試模擬試卷3 (三)_第2頁
國家二級(C++)機試模擬試卷3 (三)_第3頁
國家二級(C++)機試模擬試卷3 (三)_第4頁
國家二級(C++)機試模擬試卷3 (三)_第5頁
已閱讀5頁,還剩18頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

國眼家二級(C++)機試模擬試卷第1套

一、程序改錯題(本題共[題,每題7.0分,共[分c)

1、使用VC6打開考生文件夾下的工程tesll4_l,此工程包含一個源程序文件

testl4」.cpp,但該程序運行有問題,請改正程序中的錯誤,使該程厲的輸出結(jié)果

如下:member1=5mcmbcr2=5member1=7mcmbcr2=9源程序文件tcst14_l.cpp清單

如下:#include<iostream.h>classMyClass{/**************found

*****************friendvoidsetMember(MyClassmyObj,charmeml)

{myObj.member1=mcmI;myObj.mcmbcr2=mcm1;cout<<*'member1="<<

myObi.member1<<"member2="<<myObj.member2<<endl;}/**************

found***************;voidsetMember(MyClass&myObj,charmem1,char

mcm2){myObj.member1=mcm1;myObj.mcmbcr2=mcm2;cout<<"member1:

<<myObj.member1<<"member2=,'<<myObj.member2<<endl;}private:

charmember1:charmember2:):voidmain()(MyClasstheObj:

/**************found****************/theObj.setMember(thcObj,5);

theObj.setMember(theObj,'7',,9');!

標準答案:⑴錯誤:friendvoidsetMember(MyClassmyObj,charmem1)正確:friend

voidsetMcmbcr(MyClass&myObj>charmem1)(2)錯誤:voidsetMembcr(MyClass

&myObj,charmemI,charmem2)正確:friendvoidsetMembe(MyClass&

myObj,charmem1,charmem2)(3)錯誤:theObj.setMember(theObj/5,):

theObj.setMember(theObj>T,'9');正確:setMember(theOebj,5);

setMember(theObj,

知識點解析,(I)主要考查考生對于友元函數(shù)定義的掌握.應該使用引用調(diào)用才能

改變該對象的成員值;(2)主要考查考生對于友元函數(shù)重載的掌握,因為前面已經(jīng)

有了同名函數(shù),很明顯這個函數(shù)也應該為友元函數(shù),所以關(guān)鍵字friend聲明;(3)

主要考查考生是否會使用友元函數(shù),調(diào)用友元函數(shù)和普通函數(shù)的方法一樣,不需要

使用對象訪問。

二、簡單應用題(本題共I題,每題L0分,共[分0)

2、請編寫一個函數(shù)charMaxCharacmr(char*str),該函數(shù)返回參數(shù)str所指向的字

符串中具有最大ASCII碼的那個字符(如字符申“world”中字符,w,具有最大的ASCII

碼)。當str所指向的字符串為空時,則返回空字符0x0或、0、輸出結(jié)果如下:

GoodMorning!Maxchar:r注意:部分源程序已存在文件test15_2.cpp中。請勿修

改主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)MaxCharacter的花括號中填寫

若干語句。文件testl5_2.cpp的內(nèi)容如下:#inckide<iostream.h>#include<

slring.h>charMaxCharacter(char*str);voidmain(){charstr|100|;strcpy(str,

"GoodMorning!'*);charmaxc=MaxCharacter(str);cout<<str<<endl;cout<<

"Maxchar:"<<maxc<<endl;)charMaxCharacter(char*str){}

標準答案:charMaxCharacter(char*str){if(str==NULL)return0x0;char

maxChar=0x0:intlen=strlen(str);for(inti=0;i<len;i++){if(str[i]>maxChar;

maxChar=str[i];}returnmaxChar:)

知識點解析:本題考查的是考生應用for和if等基本控制語句解決實際問題的能

力。注意字符的大小可以直接比較,實際上比較的就是字符的ASCII碼的值。

三、綜合應用題(本題共1題,每題1.0分,共1分。)

3、使用VC6打開考生文件夾下的工程testl3_3。此工程包含一個testl3_.cpp,其

中定義了類Vector,但類的定義并不完整。請按要求完成下列操作,將程序補充完

整。(1)完成構(gòu)造函數(shù)的定義,把數(shù)據(jù)成員size初始化為參數(shù)s的值,數(shù)據(jù)成員

buffer指向動態(tài)申請的int型size大小的空間。請在注釋“〃**1**”之后添加適當?shù)?/p>

語句。(2)完成拷貝構(gòu)造函數(shù)的定義,注意解決多次刪除的問題。請在注釋

“〃**2***之后添加適當?shù)恼Z句。(3)完成成員函數(shù)elem的定義,該函數(shù)返回buffer

的第ndx個元素的值.注意如果ndx超界.請輸出“errorinindex」請在注釋

“//**3**”之后添加適當?shù)恼Z句。(4)完成析構(gòu)函數(shù)的定義,要求先將字符d打印在

屏幕上,再釋放buffer指向的空間。請在注釋“〃**4**”之后添加適當?shù)恼Z句。輸

出結(jié)果如下:1234567891012345678910dd注意:除在指定的位置添加語句外,請

不要改動程序中的其他語句。源程序文件testl3_3清單如下:#include<iostream.h

>#include<stdlib.h>classVector{public:Vector(ints=100);Vector(Vector

&v):int&elem(intndx);voiddisplayO;voidset();?Vector。:protected:int

size;int"buffer;);Vector::Vector(ints)(//**1**}Vector::

Vector(Vector&v){〃**2**for(inti=0;i<size;i++)

{*(buffer+i)=*(v.buffer+i);})int&Vector::elem(intndx){//**3**{cout<<

"errorinindex"<<endl;exit(l);)returnbuffer|ndx|;)voidVector::displayO

{for(intj=0;j<size;j++)cout<<elem(i)<<endl;}voidVector::set()

{for(intj=0;i<size;j++)elem(j)=j+l;)Vector::?Vector。{〃**4**}void

main(){Vectora(10);Vectorb(a);a.set();b.set();a.displayO;b.display。;}

標準答案:(1)size=s;buffer=newint[size];(2)size=v.size;buffer=newint[size];

(3)if(ndx<O||ndx>=size)(4)cout<<"d"<<endl;delete[]buffer:

知識點解析:本題主要考查考生對于類的構(gòu)造函數(shù)與成員函數(shù)定義的掌握,注意

(2)中賦值的應用,為了防止重復刪除,不能直接將指針賦值,必須使用動態(tài)申請

new建立??塊新的空間,并且將原來對象的成員全部復制到新的空間中:(4)中對

動態(tài)一維數(shù)組空間刪除的時候,應該使用delete關(guān)鍵字,并不管原數(shù)組大小是多

少,一律只寫一對中括號“口”加上變量名。

國甌家二級(C++)機試模擬試卷第2套

一、程序改錯題(本題共[題,每題7.0分,共[分0)

1、使用VC6打開考生文件夾下的工程lesll7_l,止;工程包含一個源程序文件

test17_l.W,但該程序運行有問題,請改正程序中的錯誤,使程序的輸出結(jié)杲如

卜:VehiclemessageCarmessageVehiclemessage源程序文件test17_l.cpp清單如

下:#include<iostream.h>classvehicle{intwheels;floatweight;public:

/*****************found*****************/voidmessaoe(void){cout*^^

"Vehiclemessage\n";));classcar:publicvehicle{intpassengerjoad;public:

/*****************found*****************/voidn*iessa℃(void){cout^^

message\n";));classtruck:publicvehicle{intpassenger_load;floatpayload;public:int

pa$sengers(void){returnpassenger_1oad;)};voidmain(){vehicle*unicycle;

1J.。d。(f

uni?cyci|e=newvefh?ic|le,/不干4不?不f.2不不不不不不不不不不w不?不1?不£*[ouncfli不不干不W不不不不不不不不不不??不?*.不?1?不/

unicycle.messagcOdeleteunicycle;unicycle=ncwcar;unicycle->messagc();delete

unicycle;unicycle二newtruck;unicycle->inessage();deleteunicycle;)

標準答案:(1)錯誤:voidmessage(void){cout<Vehiclemessage\nH;}正確:

virtualvoidmessage(void){cout<<"Vchiclcmcssagc\n";)(2)錯誤:void

message(void){cout>>"Cannessage\n";)正確:voidmessage(void){eoulVV

"Cannessage\nn;}(3)錯誤:unicycle.message();正確:unicycle->message();

知識點解析:(I)主要考查考生對于虛函數(shù)使用規(guī)則的掌握,要實現(xiàn)對函數(shù)message

的動態(tài)聯(lián)編應該使用虛函數(shù),否則產(chǎn)生的是靜態(tài)聯(lián)編,調(diào)用的函數(shù)輸出結(jié)果就與要

求不符;(2)主要考查考生對于流輸出操作的掌握,該處錯誤的使用了流輸入操

作;(3)主要考查考生是否能分清對象和對象指針,對象指針使用調(diào)用成員函

數(shù),而對象使用調(diào)用成員函數(shù)。

二、簡單應用題(本題共7題,每題7.0分,共I分0)

2、編寫函數(shù)Fun(),該區(qū)數(shù)的功能是從字符串中刪除指定的字符,同一字母的大、

小寫按不同字符處理。例如:程序執(zhí)行時輸入字符串為turbocandborlandC++,

從鍵盤上輸入字符n,則輸出后變?yōu)閠urbocadborladC++。如果輸入的字符在字符

串中不存在,則字符串照原樣輸出。注意:部分源程序已存在文件tesll8_2.cpp

中。請勿改動主函數(shù)腳in和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填

入所編寫的若干語句。文件testl8_2.cpp的內(nèi)容如下:#includc<stdio.h>#includc

<iostieain.h>#include<coiiio.li>voidfun(chars[],intc){)voidmain(){static

charstr[]="turbocandborlandC++”;charch;coutVV"原始字符串:\n"VVstrVV

endl;coutVV”輸入一個字符:";cin>>ch;fun(str.ch);cout<<"str=n<<str<<

endl;)

標準答案:voidfun(chars[]>intc){inti=0;char*p;p=s;while(*p){if(*p!=c)

{s[i]=*p;i++;}p++;}s[i]='\0';}

知識點解析:本題考查用字符指針來控制字符數(shù)組中的元素。指針p初始化時應指

向字符數(shù)組的首地址s,之后利用p逐個取得數(shù)組口的元素,然后用取得的字符逐

個與要刪除的字符進行比較,如果二者相同,則跳過該字符,去取下一個數(shù)組元

素,這樣最終得到的字符串中就把要刪除的字符去掉了。最后不要忘記要手動地加

上一個字符串結(jié)束標記'\0'。

三、綜合應用題(本題共[題,每題7.0分,共[分°)

3、使用VC6打開考生文件夾下的工程testl6_3,此工程(1淀義類Cat的保護數(shù)據(jù)

成員itsAge用于表示年齡,它是int型的數(shù)據(jù)。請在注釋“//**1**”之后添加適當?shù)?/p>

語句。(2)定義類Cat的保護數(shù)據(jù)成員GctAge()的類外定義,返回成員的itsAge

值,請在注釋“//**2*”之后添加適當?shù)恼Z句。(3)完成成員函數(shù)SetAge(intage)的類

外定義,把數(shù)據(jù)成員itsAge賦值為參數(shù)age的值,請在注釋7/**3**”之后添加適當

的語句。(4)完成成員函數(shù)Meow的類外定義,使其輸出字節(jié)符串“meow”到屏幕

上。請在注釋”后添加適當?shù)恼Z句。輸出結(jié)果如下:meow.kittyisacat

whois5yearsold.meow.注意:除在指定位置添加語句之外,請不要改動程序

中的其他內(nèi)容。源程序文件testH3.epp清單如下:#include<iostream.h>class

Cat{public:intGetAge();voidSetAge(intage);voidMeow();protected://**1**};int

Cat::GctAgc(){//**2**)voidCat::SctAge(intage){//**3**}voidCat::Mcow()

{}voidmain(){Catkitty;kitty.Meow();kitty.SetAge(5);cout<<"kittyisa

catwhoiscout<<kitty.GctAge();cout<<nyearsold.\n";kitty.Meow();}

標準答案:(1)intitsAge;(2)returnitsAge;(3)itsAge=age;(4)cout<<

"meowAn";

知識點解析:本題主要考查考生對于類的定義和成員函數(shù)的定義的深刻理解,考查

的都是最基本的操作。

家二級(C++)機試模擬試卷第3套

一、程序改錯題(本題共7題,每題7.0分,共I分0)

1、使用VC6打開考生文件夾下的工程tesl27」,此工程包含一個源程序文件

test27_l.cpp,但該程序運行有問題,請改正函數(shù)中的錯誤,使該程序的輸出結(jié)果

為;100源程序文件tesl27_l.cpp清單如卜:#include<iostream.h>template<

classT>classpair{Tvaluel,value2;public:pair(Tfirst,Tsecond){valuel=first;

va]ue2=second*}/*****************(bund*****************/char“elmax()?}?

/*****************found*****************/TpairT*oetmax(){T*retval.

/*****************found*****************/retva]—valuel^^valueO''',valueI?

value2;returnretval;}voidmain(){pair<int>myobject(100,75);coul<<

myobject.getmax()<<end1;}

標準答案:(1)錯誤:chargetmax。;正確:Tgetmax();(2)錯誤:缺少模板的聲明

正確:templaie〈classT>(3)錯誤:relval=valuel>value2??valuel:value2;IE

確:retval=valuel>value2?valuel:value2:

知識點解析:(I)主要考查考生對于模板使用的理解,該函數(shù)屬于模板類定義的一

部分,對于返回值類型,應該使用模板類名稱T,這樣編譯的時候才,能被接受:

(2)主要考查考生是否掌握了模板的使用,前面的模板類己經(jīng)聲明完成了,在類的

外面定義類的成員函數(shù)時仍然需要使用模板的聲明,這樣在后面的函數(shù)定義體中才

能使用模板類;(3)主要考查考生對于“表達式17表達式2:表達式3”語句的掌

握,這個語句是一個復合語句,先計算第一個表達式,如果為真則整個式子值為表

達式2的值,否則為表達式3的值,題目中錯誤的使用了兩個問號;

二、簡單應用題(本題共[題,每題7.0分,共I分。)

2、請編寫一個函數(shù)sortnum(intnum),參數(shù)num是一個三位的整數(shù),該函數(shù)將

num的百位、十位和個位的數(shù)字進行重排,并返回由上述的三個數(shù)字組成的最大的

二位數(shù).注意:部分源程序已存在文件te"28_2.cpp中.如輸入456后,輸出結(jié)果

如下:654請勿修改主函數(shù)main和其他函數(shù)中的彳三何內(nèi)容,僅在函數(shù)sortnum的

花括號中填寫若干語句。文件tesl28_2.cpp的內(nèi)容如下:#include<iostream.h>int

sortnum(intnum){}voidmain()(intnum;intresult=0;coutVV”請輸入一個三位

數(shù)”;cin>>num;cout<<sortnum(num)<<end1;)

標準答案:intsortnum(intnum){intnumber[3],i,j,temp;for(i=0;i<3;i++)

{number[i]=num%10;num=num/10;)for(i=0;i<2;i++){for(j=i+l;j<3;j++)if

(numberlj|<=number|i]){temp二number|j];number|j]=number|i|;number[i|

=temp;}}num=numbcr[2]*100+number[1]*10+numbcr[0j;returnnum;}

知識點解析:本題除考查考生對基本控制結(jié)構(gòu)和數(shù)組訪問的熟練程度外,還考查了

考生根據(jù)實際需要,建立模型,對數(shù)字進行排序的能力,答案中所示時是冒泡排序

法。請注意程序中數(shù)組下標的范圍和兩層for循環(huán)嵌套中循環(huán)變量的取值情況。

三、綜合應用題(本題共1題,每題7.0分,共7分。)

3、使用VC6打開考生文件夾下的工程tesl26_3。此工程包含一個lest26_3.cpp,其

中定義了類queue,但該類的定義并不完整。請按要求完成下列操作,將程序補充

完整。(1)完成類queue的無參數(shù)的構(gòu)造函數(shù)的定義,要求把數(shù)據(jù)成員bl和cl都初

始化為0,同時輸出queueinilialized。請在注釋**”之后添加適當?shù)恼Z句,(2)

完成類queue的成員函數(shù)qput(intj)的定義,它的功能是把新的元素加入隊列,過

程是先依據(jù)bl的值判斷數(shù)組是否已經(jīng)滿了,如果是就輸出queueisfull,否則bl自

加一,并且把參數(shù)j的值存入bl指向的數(shù)組元素中,請在注釋“〃**2**”之后添加適

當?shù)恼Z句。(3)完成類queue的成員函數(shù)qget()的定義,它的功能是把隊列開頭的元

素提取出隊列,并返回該值,過程是先比較el和bl的值判斷隊列是否已空,如果

是就輸出queueisempty,否則el自加一,并且把el指向的數(shù)組元素返回,請在注

釋“//**3***之后添加適當?shù)恼Z句。程序輸出結(jié)果如下:queueinitializedqueue

initialized33114422ffi?;除在指定位置添加語句之外,請不要改動程序中的其

他內(nèi)容。源程序文件test26_3.cpp清單如下:#include<iostream.h>classqueue

{intq[100]:intbl,el;public:queue():voidqput(intj);intqget(););

queue::queue(){//**)**}voidqueue::qput(intj){{cout<<"queueis

full\n":return;}bl++;q[bl]=j;)intqueue::qget(){//**3**{cout<<"queueis

empty\nu;return0;}el++;returnq[cl];)voidmain(){queueaa,bb;

aa.qpul(l1);bb.qpul(22);aa.qput(33);bb.qput(44);cout<<aa.qget()<<""VV

aa.qget()<<,,\n";cout<<bb.qget()<<n"<<bb.qget()<<"\nH;}

標準答案:(1)bl=el=O;cout<<"queueinitializcd\n";(2)if(bl==100)(3)if(el==bl)

知識點解析:主要考查考生對于具體的一個隊列類的掌握,對列是一種特殊的存儲

結(jié)構(gòu),使用先進先出原則,題目中bl和el分別指向隊列的開頭和結(jié)尾,其中⑵是

隊列的標準插入操作,(3)是隊列的標準的刪除操作,注意它們的操作方式和先判

斷后操作的原則。

家二級(C++)機試模擬試卷第4套

一、程序改錯題(本題共I題,每題1.0分,共I分0)

1、使用VC6打開考生文件夾下的工程testl5」,化工程包含一個源程序文件

testl5_I.cpp,但該程序運行有問題,請改正程序中的錯誤,使該程序的輸出結(jié)果

如下:Myobjecthasmember7源程序文件testl5_Lcpp清單如下:#include<

iostream.h>classMyClass{public:MyClass(intmern){memher=tnem:)?

MyClass(){)intGetAge()const{returnmember;)private:intmember;};

/*****+********+**found*************/voidmain(){intmem=7.

/***************found***************/MyClassmyObj=MakeObject(niem);

cout<<"Myobjecthasmembcrn<<myObj->GetAge()<<endl;

/*********************************/delete,}MyClass*MakeObject(int

mem){MyClass*pMyClass=newMyClass(mem);returnpMyClass;}

標準答案:(1)添加函數(shù)定義MyClass次MakeObject(intmcm);(2)錯誤:MyClass

myObj=MakeObject(mem);正確:MyClass*myObj=MakeObject(mem);⑶錯誤:

delete;正確:deletemvObj;

知識點解析:(1)主要考查考生對于函數(shù)定義規(guī)則的理解,在使用前先定義,這是

規(guī)定;(2)主要考查考生對于指針的掌握,因為函數(shù)返回值為指針,所以返回值必

須賦值給一個指針類型的變量:(3)主要考查考生是否會使用delete釋放空間,使

用delete刪除一個指針時,只需要直接把指針變量的名稱寫在后面。

二、簡單應用題(本題共1題,每題1.0分,共7分0)

2、請編寫一個函數(shù)voidfun(charss[]),該函數(shù)將字符串ss翻轉(zhuǎn),如ss為\23abc”

則翻轉(zhuǎn)后為“cba321"。注意:用數(shù)組方式及for循環(huán)來實現(xiàn)該函數(shù)。注意:部分源

程序已存在文件tesll6_2.cpp中。請勿修改主函數(shù)main和其他函數(shù)中的任何內(nèi)

容,僅在函數(shù)fun的花括號中填寫若干語句。文件test16_2.cpp的內(nèi)容如下:

#include<iostream.h>#include<string.h>voidfun(charss[]);voidmain()(char

s[80];cout<<”請輸入字符串:cin>>s;fun(s);cout<<”逆序后的字符串:'<<

sVVendl;)voidfun(charss[]){)

標準答案:voidfun(cha「ss[]){intn=strlcn(ss);for(inti=0;i<(n/2);i++){char

c=ss[i];ss[i]=ss[n-l-i];ss[n-l-i]=c;)}

知識點解析:本題考查的是考生利用數(shù)組及f。!?循環(huán)、if條件判斷等基本控制語句

解決實際問題的能力,基本算法是根據(jù)字符串的對稱性把對應的兩個字符串互相換

位。

三、綜合應用題(本題共1題,每題7.0分,共7分。)

3、使用VC6打開考生義件夾下的工程tesll4_3,此工程包含一個testl4_3.cpp,其

中定義了類File,但類的定義并不完整。請按要求完成下列操作,將程序補充完

整。(1)完成構(gòu)造函數(shù)的定義,使數(shù)據(jù)成員filename,content指向為空。請在注釋

“〃**]**,,之后添加適當?shù)恼Z句;⑵完成函數(shù)set_contents的定義,該函數(shù)為content

申請新的空間來存儲new_content的內(nèi)容,成功返回true,失敗返回false。請在注

釋“//**2***之后添加適當?shù)恼Z句;(3)完成成員函數(shù)copy(File&source,File&

large。的定義,該函數(shù)實現(xiàn)將source的內(nèi)容拷貝至target的功能,注意必須使月已

經(jīng)定義的成員函數(shù)來實現(xiàn)。請在注釋“〃**3**”之后添加適當?shù)恼Z句:(4)完成析構(gòu)

函數(shù)的定義,要求釋放content指向的空間。請在注釋“//**4**”之后添加適當?shù)恼Z

句。輸出結(jié)果如下:fi!e2:file1conlenlsfile2:I'ile2conlcnls注意:除在指定的位

置添加語句外,請不要改動程序中的其他語句。源程序文件testl4—3.epp清單如

卜:#include<iostream.h>#include<string.h>classFile{private:char

file_name[64];char*contents;public:File(char*filename){//**1**);

File::^File(){//**4**}voidprintfile(){cout<<file_name<<":"<<contents

<<endl;)friendboolcopy(File&source,File&target);boolset_contents(char*

new_contents););boolFile::set_contents(char*new_contents){//**2**

if(contents==NULL)returnfalse:strcpy(contents,new_contents):returntrue;}

boolcopy(File&source,File&target){//**3**}voidmain{){File

f2("filc2");fl.sct_contcnts(*'filclcontents");copy(fl,f2);f2.printfilc();

f2.set_contents("file2contents,);f2.printfile();}

標準答案:(I)strcpy(file_name,filename);contents=NULL;(2)contents=new

char[(strlen(new_contents)+1)];(3)returntarget.setcontents(source.contents);(4)

delete口contents;

知識點解析:主要考查點為類的構(gòu)造函數(shù)的定義、字符串函數(shù)的使用及動態(tài)空間的

申請與釋放等,注意字符串函數(shù)的使用,其中strlen返回字符串含有字符的數(shù)目,

strcpy是將參數(shù)2的字符串賦值給參數(shù)1的字符串。

家二級(C++)機試模擬試卷第5套

一、程序改錯題(本題共7題,每題分,共7分。)

1、使用VC6打開考生文件夾下的工程lest28」,此工程包含一個源程序文件

test28」.cpp,但該程序運行有問題,請改正程序中的錯誤,使該程序的輸出結(jié)果

為:55源程序文件tcs128_l.cpp清單如下:#includc<iostrcam.h>class

A{public:/*****************found*****************staticintn=l;

^^(){n++?}?|*/*****************found*****************intn—0

intmain(){Aa;Ab[3];A*c=newA;c=&a;/*****************found

*****************cout<<c,n<<endl;cout<<A::n<<endl;return0;}

標準答案:(1)錯誤:staticintn=l;正確:sialicintn;(2)錯誤:intn=0;正

確:intA::n=0:(3)錯誤:cout<<c.n<<endl;正確:cout<<c->n<<

endl;

知識點解析:(1)在類的聲明中只能對靜態(tài)數(shù)據(jù)成員進行引用性聲明,不能進行靜

態(tài)數(shù)據(jù)成員的初始化:(2)由于靜態(tài)數(shù)據(jù)成員是類的成員,所以在初始化時必須限

定它所屬的類:(3)c為類的對象指針,訪問類成員函數(shù)時使用符號而不能

二、簡單應用題(本題共7題,每題7.0分,共[分0)

2、請編寫一個函數(shù)sonnum(inlnum),參數(shù)num是一個三位的整數(shù),該函數(shù)將

num的百位、十位和個位的數(shù)字進行重排,并返回由上述的三個數(shù)字組成的最大的

三位數(shù)。注意:部分源程序已存在文件test28_2.cpp中。如輸入456后,輸出結(jié)果

如下:654請勿修改主函數(shù)main和其他函數(shù)中的彳三何內(nèi)容,僅在函數(shù)sorlnum的

花括號中填寫若干語句。文件test28_2.cpp的內(nèi)容如下:#include<iostream.h>int

sortnum(intnum)(}voidmain(){intnum;intresult=0;coutVV”請輸入一個三位

數(shù)cin>>num;cout<<sorlnum(num)<<endl;)

標準答案:intsortnum(intnum){intnumber[3],i,j,temp;for(i=0;i<3;i++)

{number[i]=num%10;num=num/10;)for(i=0;i<2;i++){for(j=i+l;j<3;j++)if

(niimber[j]<=number[i]){temp=number[j];number|j]=number[i];number[i]

=temp;}}num二number[2]*100+number11]*10+numbeii0|;returnnum;}

知識點解析:本題除考查考生對基本控制結(jié)構(gòu)和數(shù)組訪問的熟練程度外,還考查了

考生根據(jù)實際需要,建立模型,對數(shù)字進行排序的能力,答案中所示時是冒泡排序

法。請注意程序中數(shù)組下標的范圍和兩層for循環(huán)嵌套中循環(huán)變量的取值情況。

甌家二級(C++)機試模擬試卷第6套

一、選擇題(本題共39題,每題1.0分,共39分。)

1、長度為一個字節(jié)的二進制整數(shù),若采用補碼表示,且由4個“1”和4個“0”組

合,則可表示最小的整數(shù)是()。

A、-127

B、-121

C、-15

D、-7

標準答案:B

知識點解析:整數(shù)在計算機中有原碼、反碼和補碼3種不同的表示方法。負數(shù)的反

碼是符號位為“1”,絕對值部分和原碼相反。負數(shù)的補碼是符號位為“1”,絕對值部

分為反碼的最低位加“1”。正整數(shù)的表示方法只有原碼一種。A項的補碼為

(10000001),B項的補碼為(10000111),C項的補碼為(11110001),D項的補碼為

(HlllOOl)o

2、計算機硬件唯一直接理解的語言是()。

A、機器語言

B、匯編語青

C、C語言

D、FORTRAN語言

標準答案:A

知識點解析:計算機硬件唯一能直接理解的語言是機器語言,各種高級語言編制的

程序都要經(jīng)過解釋或編譯程序轉(zhuǎn)換成機器語言,計算機才能理解和執(zhí)行。

3、下列有關(guān)算法及其性質(zhì)的敘述中,錯誤的是()。

A、算法的設計一般采用由粗到細、由抽象到具體的逐步求精方法

B、算法必須具有確定性、有窮性和可行性等基本性質(zhì)

C、算法至少需要有1個輸入量

D、評價算法的好壞需要考慮執(zhí)行時占用的計算機資源

標準答案:C

知識點解析:算法可以有。個或多個輸入量,但至少產(chǎn)生一個輸出量(包括參量狀

態(tài)的變化)。

4、分組交換也稱包交換,下列關(guān)于其特點的表述中錯誤的是()。

A、線路利用率高

B、可以建立優(yōu)先級

C、收發(fā)雙方可不同時工作

D、適用于實時或交互通信方式的應用

標準答案:D

知識點解析:包交換的缺點是延時較長,不適用于實時或交互通信方式的應用。

5、按照工程化概念開發(fā)軟件產(chǎn)品,其正確的工作流程是()。

A、軟件設計.需求分析.編碼與調(diào)試.測試.交付使用

B、需求分析-軟件設計-編碼與調(diào)試-測試-交付使用

C、軟件設計-編碼與調(diào)試-需求分析-交付使用-測試

D、需求分析-編碼與調(diào)試■軟件設計-測試-交付使用

標準答案:B

知識點解析:本題考查校照工程化概念開發(fā)軟件產(chǎn)品的工作流程。

6、下列選項中,不屬于“軟件危機”產(chǎn)生的主要原因的是()。

A、計算機硬件發(fā)展速度緩慢致使軟件開發(fā)受限

B、軟件開發(fā)過程中很難進行質(zhì)量管理和進度控制

C、隨著問題的復雜度增加,軟件開發(fā)效率下降

D、對軟件需求分析的重要性認識不夠

標準答案:A

知識點解析:軟件危機產(chǎn)生的主要原因是選項B、C、D,不包括選項A。

7、下列關(guān)于測試用例的說法中,不正確的是()。

A、測試用例是軟件測試的核心

B、測試的“深度”與測試用例的數(shù)量成比例

C、測試工作量與測試用例的數(shù)量無關(guān)

D、測試用例包括輸入集和輸出集

標準答案:c

知識點露析:測試工作量與測試用例的數(shù)量成比例。

8、深度為7的滿二叉桎的葉子結(jié)點數(shù)為()。

A、16

B、32

C、64

D、128

標準答案:C

知識點解析:根據(jù)二叉樹的性質(zhì),深度為N的滿二叉樹的葉子結(jié)點的數(shù)目為2N-

9、設某循環(huán)隊列的容量為50,頭指針front=5(指向隊頭元素的前一位置),尾指針

rcar=29(指向隊尾元素),則該循環(huán)隊列中共有()個元素。

A、24

B、34

C、45

D、55

標準答案:A

知識點解析:在循環(huán)隊列中因為頭指針指向隊頭元素的前一個位置,所以是從第6

個位置開始有數(shù)據(jù)元素,所以隊列中的數(shù)據(jù)元素的個數(shù)為29-5=24。

10、在關(guān)系數(shù)據(jù)庫中,用來表示實體之間聯(lián)系的是()。

A、表

B、數(shù)據(jù)表

C、二維表

D、簡表

標準答案:C

知識點》析:在關(guān)系數(shù)據(jù)庫中,二維表用來表示實體之間的聯(lián)系。

11、下列關(guān)于信息系統(tǒng)的敘述中,錯誤的是()。

A、廣播/電視是一種雙向的、點到多點的信息交互系統(tǒng)

B、網(wǎng)絡聊天是一種雙向的,以信息交互為主要目的的系統(tǒng)

C、電話是一種雙向的、點對點的、以信息交互為主要目的的系統(tǒng)

D、雷達是一種以感測和識別為主要目的的系統(tǒng)

標準答案:A

知識點解析:廣播/電視是一種單向的、點對多點(面)的以信息傳遞為主要目的的

系統(tǒng)。

12、作為信息處理熱點技術(shù)之一的“多媒體技術(shù)”中的媒體,強調(diào)的是()。

A、存儲媒體

B、表現(xiàn)媒體

C、傳輸媒體

D、感覺媒體

標準答案:D

知識點解析:媒體分為感覺媒體、表示媒體、存儲媒體、傳輸媒體和表現(xiàn)媒體5

種,“多媒體技術(shù)”中的媒體強調(diào)的是感覺媒體。

13、下列關(guān)于定點數(shù)與浮點數(shù)的敘述中,錯誤的是()。

A、在實數(shù)的浮點表示中,階碼是一個整數(shù)

B、整數(shù)是實數(shù)的特例,也可以用浮點數(shù)表示

C、實數(shù)的補碼是其對應的反碼在最后一位加1

D、相同長度的浮點數(shù)和定點數(shù),前者可表示的數(shù)的范圍要大于后者

標準答案:

知識曾解析C:正整數(shù)的補碼與其原碼一致;負整數(shù)的補碼是其對應的反碼在最后一

位加lo

14、下列選項中,均屬于通用軟件的是()。

A、WindowsXP>AutoCAD、PowerPoint

B、VisualFoxPro>Excel、SPSS

C、Word、Photoshop>Excel

D^C++、CorelDrawsFirefox2.0

標準答案:C

知識點解析:軟件可以分為系統(tǒng)軟件和應用軟件兩類,應用軟件又可以分為針對具

體應用問題而專門開發(fā)的定制應用軟件和在許多行業(yè)和部門中可以廣泛使用的通用

應用軟件。

15、在Inlemet中,域名服務器的主要功能是實現(xiàn)()的轉(zhuǎn)換。c2=cl+32:prinlf("%

c,%c\n",cl,c2);}程序運行輸入65回車后,輸出結(jié)果為()。

A、1P地址到域名(主機名字)

B、域名到IP地址

C、主機IP地址和路由器IP地址

D、路由器IP地址

標準答案:B

知識點解析:在Internei中,把域名翻譯為IP地址的軟件稱為域名系統(tǒng)(DNS),運

行域名系統(tǒng)的主機稱為域名服務器。域名服務器的主要功能是實現(xiàn)入網(wǎng)主機名字和

IP地址的轉(zhuǎn)換。

16、在數(shù)據(jù)庫管理系統(tǒng)提供的語言中,負責數(shù)據(jù)的模式定義與數(shù)據(jù)的物理存取構(gòu)建

的是()。

A、數(shù)據(jù)定義語言

B、數(shù)據(jù)操縱語言

C、數(shù)據(jù)控制語言

D、數(shù)據(jù)編程語青

標準答案:A

知識點解析:數(shù)據(jù)定義語言、數(shù)據(jù)操縱語言和數(shù)據(jù)控制語言中,都是數(shù)據(jù)庫管理系

統(tǒng)提供的。其中,數(shù)據(jù)定義語言負責數(shù)據(jù)的模式定義與數(shù)據(jù)的物理存取構(gòu)建;數(shù)據(jù)

操縱語言負責數(shù)據(jù)的操縱,包括查詢及增加、刪除、修改等操作:數(shù)據(jù)捽制語言負

責數(shù)據(jù)完整性、安全性的定義與檢查,以及并發(fā)控制、恢復功能。

17、已有定義“charc=";inta=l,b;”(此處c的初道為空格字符),執(zhí)行

"b=!c&&a:"后b的值為()。

A、0

B、I

C、2

D、3

標準答案:A

知識點解析:本題中c為空格字符,其ASCH碼為32,所以!c=0,在邏輯與運算

中,只要有一項假,其值就為0,所以b的值為0。

18、變量已正確定義為整型,則表達式“n=i=2,++i,i++;”的值為()。

A、1

B、2

C、3

D、4

標準答案:c

知識點。析:本題考查數(shù)據(jù)型及逗號表示式的運算。在逗號表達式中,其值取最后

一個表達式的值為3。

19、若有定義“intk;”,下列程序段的輸出結(jié)果為()。for(k=2;k<6:k++,

k++)printf("##%d",k);

A、*#2

B、##4

C、##2##4

D、#2#4

標準答案:C

知識點解析:程序運行時,printf中"%d”前的內(nèi)容原樣輸出,所以第一次輸出

##2,接著k兩次自加為4,繼續(xù)循環(huán),接著輸出##4,接著k兩次自加為6,此時

不符合循環(huán)條件,所以輸出結(jié)果為"##2##4”。

20、按照軟件測試的一股步驟,集成測試應排列在()之后.

A、單元測試

B、系統(tǒng)測試

C、驗收測試

D、以上均不正確

標準答案:A

知識點解析:軟件測試過程分4個步驟進行,單元測試、集成測試、驗收測試和系

統(tǒng)測試,由此可看出集成測試在單元測試之后進行。

21、在軟件工作的3個要素中,支持軟件開發(fā)的各個環(huán)節(jié)控制和管理的是()。

A、方法

B、工具

C、對象

D、過程

標準答案:D

知識點解析:軟件工作的3個要素是方法、工具和過程。方法是完成軟件工程項目

的技術(shù)手段;工具支持軟件的開發(fā)、管理、文檔生成;過程支持軟件開發(fā)的各個環(huán)

節(jié)控制和管理。

22、二維表中元組的分量是不可分割的基本數(shù)據(jù)項是指分量的()。

A、唯一性

B、原子性

C、有限性

D、統(tǒng)一性

標準答案:B

知識點解析:元組分量的原子性是指二維表中元組的分量是不可分割的基本數(shù)據(jù)

項。

23、設變量a和b已正確定義并賦初值,則a=a+b等價的賦值表達式為()。

A、a=a+(b-a)

B、a=b-(a+b)

C、-a=b

D、a=-b

標準答案:D

知識點解析:本題考查運算符與賦值表達式。二a-b可表示為a=a?(a+b),也可化

簡成a=-bo

24、若整型變量a和b中的值分別為7和9,要求按以下格式輸出a和b的值:

a=7b=9則輸出的語句“printf("%a,b);”的橫線處應填寫的內(nèi)

容是()。

A、a=%c\nb=%c\n

B、a=%(i/nb=%d/n

C、a=%d\nb=%d\n

D、a=%a\nb=%b\n

標準答案:c

知識點謁析:本題考查兩個知識點:標準輸出函數(shù)的格式與轉(zhuǎn)義字符。\n為轉(zhuǎn)義

字符,其意義為換行,%d代表以整型的格式輸出相應位置變量的值。其他字符按

原樣輸出。

25、假設用一長度為50的數(shù)組(數(shù)組元素的下標從0到49)作為棧的存儲空間,棧

底指針bottom指向棧底元素,棧頂指針top指向棧頂元素,如果bottom=49,

top=30(數(shù)組下標),則棧中的元素數(shù)量為()。

A、19

B、18

C、30

D、27

標準答案:A

知識點解析:當前棧中的所有元素的個數(shù)就是用棧底指針減去棧頂指針。

26、基本路徑測試不屬于()。

A、白盒測試

B、黑盒測試

C、結(jié)構(gòu)測試

D、邏輯驅(qū)動測試

標準答案:B

知識點解析:根據(jù)定義,軟件測試按照功能劃分,可以分為白盒測試和黑盒測試。

其中,白盒測試方法也稱為結(jié)構(gòu)測試或邏輯驅(qū)動測試,其主要方法有邏輯覆蓋、基

本路徑測試等。

27、結(jié)構(gòu)化程序設計的3種基本控制結(jié)構(gòu)不包括()。

A、選擇結(jié)構(gòu)

B、循環(huán)結(jié)構(gòu)

C、順序結(jié)構(gòu)

D、逆向結(jié)構(gòu)

標準答案:D

知識點解析:結(jié)構(gòu)化程序設計的3種基本控制結(jié)構(gòu)是選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)和順序結(jié)

構(gòu)。

28、在E--R圖中,表示實體聯(lián)系的框是()。

A、矩形

B、圓形

C、菱形

D、橢圓形

標準答案:C

知識點解析:本題考查E-R的關(guān)系。在E-R圖中,用菱形來表示實體之間的聯(lián)

系;矩形表示實體集;橢圓形表示屬性。

29、表達式“(int)((double)(5/2)+2.5)”的值為()。

A、2

B、2.5

C、4

D、5

標準答案:C

知識點露斤:因為5和2都是整型數(shù)據(jù),進行5/2運算后值為2,然后2再經(jīng)強

制轉(zhuǎn)換成雙精度型變?yōu)?.0,這個值再與2.5相加等于4.5,此值再經(jīng)過整型數(shù)

據(jù)轉(zhuǎn)換為4。

30、若變量x、y已定義為血類型,且x的值為99,y的值為9,則將輸出語句

printf(,x/y)補充完整后,其輸出的計算結(jié)果形式為x/y=l1。橫線處應

填寫的是()。

A^x/y=%d

B、x/y=mod

C、x/y=sum

D^x/y=count

標準答案:A

知識點解析:根據(jù)程序要求的格式輸出結(jié)果的格式控制符為“x/y=%d”。

31、有下冽程序#includevoidmain。{charcl,c2;scanf("%c"&cl);

while(cl<65IIcl>90)scanf(H%c",&cl);c2=cl+32:printf(n%c,%c\n”,cl,

c2);}程序運行輸入65回車后,輸出結(jié)果為()。

A、65

B、不能輸出結(jié)果

C、33

D、無法確定

標準答案:B

知識點解析:當輸入65時,不符合while循環(huán)語句的要求,程序就會終止,不能

往下執(zhí)行。

32、下列程序運行后的輸出結(jié)果是()。#includevoidmain(){intk=l,S=0;

do{if<10);printf("s=%dkn",s);}

A、s=0

B、s=l

C、k=0

D、k=l

標準答案:A

知識點解析:囚為變量k的值為1,它對2的余數(shù)不等于0,退出循環(huán)。執(zhí)行下一

條語句,輸出s=0。

33、下列程序運行時,若輸入labcdef2dfv回車>,則輸出結(jié)果為()。#includevoid

main(){chara=0,ch;whilc((ch=gctchar())!=,\n'){if(a%

2!=0&.&.(ch>='a'&&ch<='z'))ch=ch-'a'+'A':a++;putchar(ch);}

printf("n");}

A、laCcEdF2Df

B、!AeCeDf2dF

C、1AcCeDf2Df

D、laCcEdF2dF

標準答案:B

知識點解析:從鍵盤獲取字符,這個程序的功能是對輸入的字符,如果這個字符對

2的余數(shù)不等于0,并且在這個小寫字母言和2之間,則把這個字符轉(zhuǎn)換成大寫字

母。

34、下列程序執(zhí)行后的輸出結(jié)果是()。#includevoidfun(int*a){a[0]=a[i];}void

main(){inta[10]={10,9,8,7,6,5,4,3,2,1),i;for(i=2;i>=0;i-

-)fun(&a[i]);for(i=0:i<10:i++)printf("%dH,a[i]);printf(H\nM);)

A、7987654321

B、7787654321

C、10987654321

D、7777654321

標準答案:D

知識點解析:子函數(shù)fun(inl*a)的功能是把數(shù)組的后一個元素值賦給其前一個元

素。在主函數(shù)第1個for循環(huán)語句中,經(jīng)過3次循環(huán)執(zhí)行,把數(shù)組a[10]中的前3個

元素分別更換為7。在第2個for循環(huán)語句中,把數(shù)組a[10]中所有元素輸出。

35、下列橫線處應填寫的內(nèi)容是()。#includeint;voidmain(){intx,

y(*p)();scanf("%d%d”,&x,&y);p=max;printf('%d\n",(*p)(x,y));}int

max(inta,intb){return(a>b?a:b);}

A、min(inta,intb)

B、max(inta,intb)

C、sum(mta,intb)

D、mod(inta,intb)

標準答案:B

知識點解析:在程序的開始對定義在后面的子函數(shù)進行說明,在本程序中,就要對

max(inta,intb)函數(shù)說明。

36、下列程序用來判斷指定文件是否能正常打開,橫線處應填寫的內(nèi)容是()。

#includcmain(){FILE*fp;if(((fp=fopcn(Htest.txt'\"r"))!=________))printf("文

件打開成功!\nM);elseprinlf("親能打開文件!\nH);}

A、NULL

B、文件打開成功!

C、未能打開文件!

D、以上均不正確

標準答案:A

知識點解析:在本題中,fopen函數(shù)如果成功打開了文件,返回文件指針,否則返

回NULLo

37、下列程序把3個NODETYPE型的變量鏈接成一個簡單的鏈表,并在while循

環(huán)中輸出鏈表結(jié)點數(shù)據(jù)域中的數(shù)據(jù)。橫線處應填入的內(nèi)容是()。#includestruct

node{intdata:structnode*next:);typedfenodeNODETYPE;voidmain()

{NODETYPEa,b,c*h,*p;a.data=10;b.data=20;c.data=30;h=&a;

a.next=&b;b.next=&c;c.next='\0';p=h;while(p){printf("%d,”,

p->data);;}printf("\n");}

A、&a

B、*p

C、p++

D、p--

標準答案:C

知識點解析:在本題程序中,循環(huán)語句中的NODETYPE型指針變量p加1,指向

下一個NODETYPE型元素。

38、下列程序的輸出結(jié)果是()。#includevoidmain(){inti,j,sum;for(i=3:

i>=l;i-){sum=0;for(j=l;j<=i;j++)sum+=i*j;|pnntf(H%d\n",sum);}

A、0

B、1

C、2

D、3

標準答案:B

知識點解析:本題考查for循環(huán)的使用。由于每次進行第1層for。循環(huán)時,sum的

值都會清零,所以直接考慮i=l時里層循環(huán)的變化即可,j=1時,sun=0+l*l=l;之

后j=2,不符合循環(huán)條件,跳出內(nèi)層循環(huán),此時i=0,亦跳出外層循環(huán),故sum值

為1。

39、下列程序的輸出結(jié)果是()。#includevoidmain(){intj,a[]={L3,5,7,9,

IL13,15},*p=a+5;fdr(j=3;j;j—){switch(j){case1:case2:printf(M%

d”,*p++);break;case3:printf(n%d",*(-p));}}}

A、3311

B、3517

C、9111

D、9911

標準答案:D

知識點解析:本題考查switch…case開關(guān)語句。當j=3時,執(zhí)行switch。),輸出

a[4],為9;j-為2,當j=2時,輸出a[4],為9,j自減或為1;當j=l時,輸出

a[5],為H。循環(huán)結(jié)束。

二、基本操作題(本題共I題,每題1.0分,共1分。)

40、使用VC++6.0打開考生文件夾下的源程序文件I.cpp,該程序運行時有錯

誤,請改正錯誤,使得程序通過運行。程序輸出結(jié)果為5al注意:不要改動main

函數(shù),不能增加或刪除行,也不能更改程序的結(jié)構(gòu),錯誤的語句在//*******

*error********的下面。試題程序:#includetemplate//********error*

*******tmin(tx,ty){retum(x>y)?y:x;}voidmain(){intn=5://***

*****eppor********charc="a"?intd—1*(/********error******

**COUK

標準答案:(1)應改為“Tmin(Tx,Ty)”。(2)應改為"charc=/;(3)應改為

“usingnamespacestd;

知識點解析:C++是區(qū)分大小寫的,“template(classT)”語句中定義的模板類為T不

是3所以第1處的“tmin(tx,ty)”修改為"Tmin(Tx,Ty)“。第2處"charc="a";"

語句中的變量a為char型,賦值為字符a,在C++中應該使用單引號標注字符變

量,而不是雙引號,所以修改為“charc=W;在程序中用到C++標準庫時,要

使用std標準命名空間進行限定。cout為標準庫函數(shù),所以要聲明cout是在命名空

間std中定義的流對象,即添加Tusingnamespacestd;

三、簡單應用題(本題共[題,每題7.0分,共[分0)

41、使用VC++6.0打開考生文件夾下的源程序文件2.cpp。完成fun函數(shù),其功

能是求出M

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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

提交評論