




版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 汽車采購(gòu)招標(biāo)管理辦法
- 生物化學(xué)學(xué)科核心素養(yǎng)導(dǎo)向的知識(shí)體系研究
- “春瓶”名稱的釋義及其原始功能探究
- 新媒體裝置交互-洞察及研究
- 培訓(xùn)機(jī)構(gòu)績(jī)效管理辦法
- 公益放映預(yù)算管理辦法
- 隱私保護(hù)成本效益-洞察及研究
- 社會(huì)治理:近二十年國(guó)內(nèi)社會(huì)治理創(chuàng)新研究
- 2025版生產(chǎn)安全事故應(yīng)急預(yù)案5匯編
- 檔案耗材供應(yīng)管理辦法
- 痛風(fēng)治療與護(hù)理課件
- T/CCBD 19-2022品牌餐廳評(píng)價(jià)規(guī)范
- 河南省南陽(yáng)市內(nèi)鄉(xiāng)縣2025屆數(shù)學(xué)七下期末調(diào)研試題含解析
- 校際結(jié)對(duì)幫扶協(xié)議書
- 第四版(2025)國(guó)際壓力性損傷潰瘍預(yù)防和治療臨床指南解讀
- 企業(yè)電工面試題及答案
- 倉(cāng)庫(kù)與生產(chǎn)線的有效對(duì)接計(jì)劃
- 《心律失?;颊叩淖o(hù)理》課件
- 2025江蘇省惠隆資產(chǎn)管理限公司招聘30人易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- (人教2024版)英語(yǔ)七年級(jí)上冊(cè)單詞默寫清單(新教材)
- 空腸管置管方法及護(hù)理
評(píng)論
0/150
提交評(píng)論