初級(jí)程序員2018下半年下午試題_第1頁(yè)
初級(jí)程序員2018下半年下午試題_第2頁(yè)
初級(jí)程序員2018下半年下午試題_第3頁(yè)
初級(jí)程序員2018下半年下午試題_第4頁(yè)
初級(jí)程序員2018下半年下午試題_第5頁(yè)
已閱讀5頁(yè),還剩3頁(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)介

初級(jí)程序員2018下半年下午試題(總分:89.30,做題時(shí)間:150分鐘)試題一(總題數(shù):1,分?jǐn)?shù):14.90)1.

閱讀以下說(shuō)明和流程圖,填寫流程圖中的空缺。

【說(shuō)明】

設(shè)[a1b1],[a2,b2]…,,[an,bn]是數(shù)軸上從左到右排列的n個(gè)互不重疊的區(qū)間(a1<b1<a2<b2<…<an<bn)以下流程圖將一個(gè)新的區(qū)間[A,B](A<B)添加到上述區(qū)間集,形成新的從左到右排列的若干個(gè)互不重疊的區(qū)間(若A、B落在原有的兩個(gè)區(qū)間,則以原有區(qū)間最左端點(diǎn)和最右端點(diǎn)為基準(zhǔn),形成新的區(qū)間)最后依次輸出這些區(qū)間的端點(diǎn)。

例如,給定區(qū)間集[1,2],[4,6],[8,10],[13,15],[17,20],添加區(qū)間[5,14]后,依次輸出1,2,4,15,17,20,表示合并后的區(qū)間集[1,2],[4,15],[17,20]。

該流程圖采用的算法是:先在a1,b1,a2,b2,…,anbn中掃描定位A點(diǎn),再繼續(xù)描定位B點(diǎn),在掃描過(guò)程中隨時(shí)輸出已確定的區(qū)間的端點(diǎn)值。

【流程圖】

(分?jǐn)?shù):14.90)__________________________________________________________________________________________

正確答案:((1)A

(2)ai

(3)bi

(4)A,B

(5)B)解析:試題二(總題數(shù):1,分?jǐn)?shù):14.80).閱讀以下C語(yǔ)言代碼,回答下列問(wèn)題。(分?jǐn)?shù):14.80)1.

【C語(yǔ)言代碼1】

#include<stdio.h>

intmain()

{

inta,tmp,b=0;

scanf("%d",&a);

tmp=a<0?-a:a;

while(tmp){

b=b*10+tmp%10;

tmp=tmp/10;

}

if(a==b||-a==b)

printf("Palindromicnumber.\n");

printf("a=%db=%d\n",a,b);

return0;

}

【問(wèn)題1】

寫出【C語(yǔ)言代碼1】運(yùn)行時(shí)分別輸入-1331、795的輸出結(jié)果。(分?jǐn)?shù):7.40)__________________________________________________________________________________________

正確答案:(輸入-1331的結(jié)果是:

Palindromicnumber.

a=-1331,b=1331

輸入795的結(jié)果是:

a=795,b=597)解析:2.

【C語(yǔ)言代碼2】

#include<stdio.h>

intmain()

{

chargrade;

intpoints;

for(grade='A';grade<'F;grade++)

{

switch(grade){

case

'A':

points=4;break;

case

'B':

points=3;

case

'C':

points=2;

case

'D':

points=1;break;

case

'E':

case

'W':

points=0;

}

if(points>0)

printf("Passed,points=%d\n",points);

else

printf("Failed\n");

}

return=0;

}

【問(wèn)題2】

寫出【C語(yǔ)言代碼2】運(yùn)行時(shí)的輸出結(jié)果。(分?jǐn)?shù):7.40)__________________________________________________________________________________________

正確答案:(輸出結(jié)果是:

Passed,point=4

Passed,point=1

Passed,point=1

Passed,point=1

Failed)解析:試題三(總題數(shù):1,分?jǐn)?shù):14.90)1.

閱讀以下說(shuō)明和C語(yǔ)言代碼,填寫程序中的空缺處。

【說(shuō)明】

某地電價(jià)分三檔:

(1)當(dāng)月用電量不超過(guò)180度時(shí),每度電0.5元。

(2)當(dāng)月用電量超出180度但不超過(guò)360度的部分,每度電0.55元。

(3)當(dāng)月用電量超過(guò)360度的部分,每度電0.7元。

例如,某戶A一個(gè)月的用電量為150度,其電費(fèi)為150×0.5=75.00元;某戶B用電量為280度,其電費(fèi)為180×0.5+(280-180)×0.55=145.00元;某戶C用電量為450度,其意費(fèi)為180×0.5+(360-180)×0.55+(450-360)×0.7=90.0+99.0+63.0=252.00元。

下面程序運(yùn)行時(shí)讀入m(m>0)個(gè)住戶某月的用電量,計(jì)算該月每戶應(yīng)繳的電費(fèi)并輸出,同時(shí)找出這m個(gè)住戶中該月的最大用電量和最小用電量。

【C代碼】

#include<stdio.h>

#defineMAXQT100000

//用電量的最大值

doubleproc(intqt)

{//計(jì)算并返回月用電量qt時(shí)的電量

Doublefee=0.0;

if(______)

fee=qt*0.5;

else

if(______)

fee=180*0.5+(qt-180)*0.55;

else

fee=______;

returnfee;

}

intmain()

{

intm;

//住戶數(shù)

intqt,minimum=MAXQT,maximum=0;

//用電量,最小用電量,最大用電量

scanf("%d",&m);

while(m>0){

scanf("%d",&qt);

if(qt<0||qt>MAXQT)continue;

printf("%.21f\n",proc(qt));

if(______)

minimum=qt;

elseif(______)

maximum=qt;

______;

}

printf("maximum=%d,minimum=%d\n",maximum,minimum);

return0;

}

(分?jǐn)?shù):14.90)__________________________________________________________________________________________

正確答案:(qt<=180

qt<=360

180*0.5+(360-180)*0.55+(qt-360)*0.7

minimum>qt

maximum<qt

m--)解析:試題四(總題數(shù):1,分?jǐn)?shù):14.90)1.

閱讀以下說(shuō)明和C語(yǔ)言代碼,填寫程序中的空缺處。

【說(shuō)明】

函數(shù)insertElem的功能是在元素升序排列的數(shù)組中加入一個(gè)新元素并保持?jǐn)?shù)組元素升序排列的特點(diǎn)。在maln函數(shù)中輸入若干表示價(jià)值的實(shí)數(shù),輸入為0或負(fù)數(shù)或?qū)崝?shù)個(gè)數(shù)超出限定數(shù)量時(shí)終止,調(diào)用insertElem將價(jià)格按升序保存在數(shù)組pdata中,最后輸出所輸入的實(shí)數(shù)。

【C語(yǔ)言代碼】

#defineARRSZ10001

voidinsertElem(doublearr[],intn,doubleelem)

/*arr空間足夠大且其元素按照升序排列,將elem插入arr中并保持其升序特點(diǎn)*/

{inti;

doubletmp;

if(n==0||elem>=arr[n-1]){______=elem;return;)

for(i=n-1;i>=0&&elem<arr[i];i--){//查找插入位置并將元素后移

______;

}

______=elem;

//將元素放入最終位置

}

intmain()

{intidx,n=0;

Doubleprice,pdata[ARRSZ];

do

{

scanf("%lf",&price);

if(price<=0)______;

insertElem(______);//調(diào)用insertElem將price的值加入pdata數(shù)組

n++;

}while(n<ARRSZ);

for(idx=0;______;idx++)

//按升序輸出所輸入的實(shí)數(shù)

printf("%2lf\t",pdata[idx]);

return0;

}

(分?jǐn)?shù):14.90)__________________________________________________________________________________________

正確答案:(arr[n]

arr[i+1]=arr[i]

arr[i+1]

break

pdata,n,price

idx<n)解析:試題五(總題數(shù):1,分?jǐn)?shù):14.90)1.

閱讀以下說(shuō)明和Java程序,填寫程序中的空缺處。

【說(shuō)明】

以下Java代碼實(shí)現(xiàn)一個(gè)簡(jiǎn)單樂(lè)器系統(tǒng),音樂(lè)類(Music)可以使用各類樂(lè)器(Instrument)進(jìn)行演奏和調(diào)音等操作,對(duì)部分樂(lè)器進(jìn)行建模,其類圖如下圖所示,包括樂(lè)器(Instrument)、打擊樂(lè)器(Percussion)、弦樂(lè)器(Stringed)、管樂(lè)器(Wind)、木管樂(lè)器(Woodwind)、銅管樂(lè)器(Brass)。

類圖

【Java代碼】

importjavautilArrayList.

enumNote(/'枚舉各種音調(diào)'/)

MIDDLE_C.C_SHARP,B_FLAT,

//其他略

}

abstractclassinstrument(/'樂(lè)器')

______//play方法

abstractvoidadjust()

//adjust抽象方法

}

classWind______{

publicvoidplay(Noten){System,out,println("Wind.play()"+n);)

publicvoidadjust(){System,out,println("Wind.adjust()");}

}

/*類Percussion和Stringed實(shí)現(xiàn)代碼略*/

classBrass______{

publicvoidplay(Noten){System,out,println("Brass.play()"+n);}

publicvoidadjust(){System,out,println("Brass,adjust()");}

}

classWoodwindextendsWind{

publicvoidplay(Noten){System.out.println("Woodwind.play()"+n);}

}

publicclassMusic{

voidtune(Instrumenti){i.play(Note.MIDDLE_C);

}

voidadjust(Instrumenti){i.adjust();

}

voidtuneAll______e

{

for(intj=0;j<e.size();j++){

Instrumenti=e.get(j);

adjust(i);

tune(i);

}

}

publicstaticvoidmain(String[]args){

______music=newMusic();

ArrayList<Instument>orchestra=newArrayList<>();

orchestra.add(newWind());

orchestra.add(newWoodw/nd());

music.tuneAll(orchestra):

}

}

(分?jǐn)?shù):14.90)__________________________________________________________________________________________

正確答案:(abstractvoidplay(Noten)

extendsinstrument

extendsWind

ArrayList<Instrument>

Music)解析:試題六(總題數(shù):1,分?jǐn)?shù):14.90)1.

閱讀下列說(shuō)明和C++代碼,填寫程序中的空缺處。

【說(shuō)明】

以下C++代碼實(shí)現(xiàn)一個(gè)簡(jiǎn)單樂(lè)器系統(tǒng),音樂(lè)類(Music)可以使用各類樂(lè)器(Instument)進(jìn)行演奏和調(diào)音等操作。對(duì)部分樂(lè)器進(jìn)行建模,其類圖如下圖所示,包括樂(lè)器(Instrument)、打擊樂(lè)器(Perussion)、弦樂(lè)器(Stringed)、管樂(lè)器(Wind)、木管樂(lè)器(Woodwind)、銅管樂(lè)器(Brass)。

類圖

【C++代碼】

#include<iostream>

#include<vector>

usingnamespacestd;

enumNote{/*枚舉各種音調(diào)*/

MIDDLE_C,C_SHAR,B_FLAT

//其他略

};

classInstrument

{/*抽象基類,樂(lè)器*/)

public:

______;

//純虛函數(shù)play

virtualvoidadjust()=0;

//adjust函數(shù)接口

};

classWind:______{

public:

voidplay(Noten){cout<<"Wind.play()"<<n>>endl;}

voidadjust(){cout<<"Wind.adjust()"<<endl;}

};

/*類Percussion和Stringed實(shí)現(xiàn)代碼略*/

classBrass:______{

public:

voidplay(Noten){cout<<"Brass.play()"<<n<<endl;}

voidadjust(){cout<<"Brass.adjust()"<<endl;}

};

classWoodwind:publicWind{

public:

voidplay(Noten)(cout<<"Woodwind.play()"<<n<<endl;}

};

classMusic{

public:

voidtune(Instrument*i)

{i->play(MIDDLE_C);}

voidadjust(Instrument*i)

{i->adjust();}

voidtuneAll(______v){/*為每個(gè)樂(lè)器定調(diào)*/

vector<Instrument*>::iteratorit;

for(it=v.begin();it!=v.end();it++)

{

this->adjust(*it);

this->tune(*it);

}

}

};

intmain(){

______music=newMusic();

vector<Instrument*>orchestra;

orchestra.push_back(new

Wind());

orchestra.push_back(newWoodwind());

music->tuneAll(orchestra);

}

【C++代碼】

#include<iostream>

#include<vector>

usingnamespacestd;

enumNote{/*枚舉各種高調(diào)*/

MIDDLE_C,C_SHARP,B_FLAT//其他略

};

classInstrument(/*抽象基類,樂(lè)器*/

public:

______;//純虛函數(shù)play

virtualvoidadjust()=0;

//adjust函數(shù)接口

};

classWind:______{

public:

voidplay(Noten){count<<"Wind.play()"<<n<<endl;}

voidadjust(){count<<"Wind.adjust()"<<endl;}

};

/*類Percussion和Stringed實(shí)現(xiàn)代碼略*/

classBrass:______{

public:

voidplay(Noten){cout<

溫馨提示

  • 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)論