版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2006年北理計算機復試上機題2009-09-1910:481.寫一個程序判斷字符串中數(shù)字的位置(不限制使用面向對象編程)例如:輸入
a3b4c5
輸出
246
實現(xiàn):
#include<iostream>
#include<ctype.h>
usingnamespacestd;
intmain()
{
charc_arr[100];
inti,len=0;
cout<<"Pleaseenterastring:"<<endl;
cin>>c_arr;
while(c_arr[len++]);
cout<<c_arr<<endl;
for(i=0;i<len;i++)
{
if(isdigit(c_arr))
{
cout<<i+1<<"";
}
}
cout<<endl;
return0;
}
2.寫一個類,能接受int型的變量,接收變量后能存儲原變量(譬如12345)和其反向變量(54321),最多處理數(shù)量為10個,當輸入達到10個或者輸入變量為0的時候停止。并且在類銷毀前輸出存儲的所有變量。例如:輸入:12345,2234,0
輸出:12345
54321
22344322
實現(xiàn):
#include<iostream>
usingnamespacestd;
typedefstructs_store
{
intnum;
intreverseNum;
}s_store;
classCStore
{
public:
CStore(){};
~CStore(){};
voidsetS_st(intnum,intsub);
voidsetCount();
voidprint(intsub);
intgetCount();
protected:
private:
staticintcount;
s_stores_st[10];
};
intCStore::count=0;
intmain()
{
CStorecs;
intnum,size;
cout<<"Pleaseenteryourdata:"<<endl;
cin>>num;
cs.setS_st(num,cs.getCount());
cs.setCount();
//cout<<"countis:"<<cs.getCount()<<endl;
while(cs.getCount()<10)
{
cin>>num;
if(num==0)
{
break;
}
cs.setS_st(num,cs.getCount());
cs.setCount();
//cout<<"Inwhilecountis:"<<cs.getCount()<<endl;
}
size=cs.getCount();
//cout<<"sizeis:"<<size<<endl;
for(inti=0;i<size;i++)
{
cs.print(i);
cout<<endl;
}
return0;
}
voidCStore::setS_st(intnum,intsub)
{
s_st[sub].num=num;
intb=0,a;
while(num>0)
{
b*=10;
a=num%10;
b+=a;
num/=10;
}
s_st[sub].reverseNum=b;
}
voidCStore::setCount()
{
count++;
}
intCStore::getCount()
{
returncount;
}
voidCStore::print(intsub)
{
cout<<s_st[sub].num<<""<<s_st[sub].reverseNum;
}
3.寫一個CTriangle類,要求可以接受CTriangle(y,x)形式的構造,創(chuàng)建在坐標系中的直角三角形樣子如下A
|\
|
\
|
\
|
\B----------C三點的坐標分別是A(0,y)B(0,0)C(x,0)實現(xiàn)+運算,并且能夠處理鍵盤連續(xù)輸入若干個(少于十個)三角形,并且連加(相加時候三角形邊長長度相加,方向同第一個三角形)。輸入0后結束并輸出最后得出的三角形的三個坐標值。例如:
輸入:1
2
-1
-5
輸出:A(0,7),B(0,0),C(2,0)
實現(xiàn):
#include<iostream>
#include<cmath>
#include<iomanip>
usingnamespacestd;
classCTriangle
{
public:
CTriangle(doubley,doublex);
~CTriangle(){};
voidset(doubley,doublex);
voidaddTriangle();
voidprintShape();
voidprint();
protected:
private:
doublex;
doubley;
};
intmain()
{
CTrianglectrgle(10,-4),ctrgle1(10,4),ctrgle2(10,-4),ctrgle3(-10,-4);
ctrgle.printShape();
ctrgle.print();
ctrgle1.printShape();
ctrgle1.print();
ctrgle2.printShape();
ctrgle2.print();
ctrgle3.printShape();
ctrgle3.print();
ctrgle.addTriangle();
ctrgle.printShape();
return0;
}
CTriangle::CTriangle(doubley,doublex)
{
set(y,x);
}
voidCTriangle::set(doubley,doublex)
{
this->y=y;
this->x=x;
}
voidCTriangle::addTriangle()
{
set(0,0);
doubleyval,xval;
intcount=0;
boolxjudge=true,yjudge=true;
cout<<"Pleaseenterthevalues:"<<endl;
cin>>xval>>yval;
if(xval<0)
{
xjudge=false;
}
if(yval<0)
{
yjudge=false;
}
while(xval)
{
this->y+=abs(yval);
this->x+=abs(xval);
cin>>xval;
if(!xval)
{
break;
}
cin>>yval;
}
if(!xjudge)
{
this->x=(this->x)*(-1);
}
if(!yjudge)
{
this->y=(this->y)*(-1);
}
print();
}
voidCTriangle::printShape()
{
inti,num;
if(y>0&&x>0)
{
for(i=0;i<y;i++)
{
if((i+1)%2==0)
{
cout<<endl;
continue;
}
cout<<"|"<<setw(3*i/2+1)<<"\\"<<endl;
}
for(i=0;i<x*5;i++)
{
cout<<"-";
}
}
elseif(y<0&&x>0)
{
for(i=0;i<x*5;i++)
{
cout<<"-";
}
for(i=int(abs(y)-1);i>=0;i--)
{
if((i+1)%2==0)
{
cout<<endl;
continue;
}
cout<<"|"<<setw(3*i/2+1)<<"/"<<endl;
}
}
elseif(y>0&&x<0)
{
num=int(abs(y)-1);
for(i=num;i>=0;i--)
{
if((i+1)%2==0)
{
cout<<endl;
continue;
}
cout<<setw(3*i/2+4)<<"/"<<setw(num+4-(3*i/2))<<"|"<<endl;
}
cout<<endl;
for(i=0;i<abs(x*5);i++)
{
cout<<"-";
}
}
elseif(y<0&&x<0)
{
for(i=0;i<abs(x*5);i++)
{
cout<<"-";
}
cout<<endl;
num=int(abs(y));
for(i=0;i<abs(y);i++)
{
if((i)%2==0)
{
cout<<endl;
continue;
}
cout<<setw(3*i/2+1)<<"\\"<<setw(num+4-3*i/2)<<"|"<<endl;
}
}
cout<<endl;
}
voidCTriangle::print()
{
cout<<"A(0,"<<this->y<<"),B(0,0),C("
<<this->x<<",0)"<<endl;
}Timelimit:1Seconds
TotalSubmit:155
AcceptedSubmit:3題目要求:現(xiàn)有一筆經(jīng)費可以報銷一定額度的發(fā)票。允許報銷的發(fā)票類型包括買圖書(A類)、文具(B類)、差旅(C類),要求每張發(fā)票的總額不得超過1000元,每張發(fā)票上,單項物品的價值不得超過600元?,F(xiàn)請你編寫程序,在給出的一堆發(fā)票中找出可以報銷的、不超過給定額度的最大報銷額。具體的輸入輸出格式規(guī)定如下:
輸入格式:測試輸入包含若干測試用例。每個測試用例的第1行包含兩個正數(shù)Q和N,其中Q是給定的報銷額度,N(<=30)是發(fā)票張數(shù)。隨后是N行輸入,每行的格式為:
mType_1:price_1Type_2:price_2...Type_m:price_m
其中正整數(shù)m是這張發(fā)票上所開物品的件數(shù),Type_i和price_i是第i項物品的種類和價值。物品種類用一個大寫英文字母表示。當N為0時,全部輸入結束,相應的結果不要輸出。輸出格式:對每個測試用例輸出1行,即可以報銷的最大數(shù)額,精確到小數(shù)點后2位。輸入樣例:
200.003
2A:23.50B:100.00
1C:650.00
3A:59.99A:120.00X:10.00
1200.002
2B:600.00A:400.00
1C:200.50
1200.503
2B:600.00A:400.00
1C:200.50
1A輸出樣例:
123.50
1000.00
1200.50題目描述:輸入:兩行
第一行:M和N
第二行:X
M和N是一個十進制數(shù),M和N都在[2-35]之間,X是一個M進制數(shù),X在[1-2*10^19]
輸出:一行
第一行:現(xiàn)在要求你將M進制數(shù)X轉換成N進制數(shù)輸出
注:A相當于10,B相當于11,Z相當于35
輸入一:
1610
F
輸出一:
152009年山東大學計算機復試上機題目【網(wǎng)友回憶版】文章來源:勤思教育轉載請標明出處和鏈接
,閱讀次數(shù):[103]次一共兩個題,每個50分,上機環(huán)境不限,編程語言不限,只要求結果,不要源代碼,數(shù)據(jù)隨機生成。題目均非準確描述,但保持了原意
【1】輸入一個整數(shù),它可以由n(n>=2)個連續(xù)整數(shù)相加得到,輸出所有可能的連續(xù)整數(shù)序列,每個序列占一行,數(shù)字之間用空格分開,數(shù)據(jù)從小到大,每列按最小元素遞增順序排列,如果找不到,輸出none
例:21=1+2+3+4+5+6
21=6+7+8
則輸出123456
678
【2】某國設計了一種導彈防御系統(tǒng),但有缺陷,導彈來襲時,第一枚炮彈可以達到任意高度,但以后的任意一炮均不能超過前一發(fā)炮彈高度?,F(xiàn)在僅有一套這樣的系統(tǒng)
輸入:來襲的導彈數(shù)目(不超過100枚)
輸出:1:能夠攔截的導彈數(shù)目30分
2:若要攔截所有導彈,需要幾套這樣的系統(tǒng)20分
其實第一問就是找一個遞減序列的長度,第二問就是找一下有幾個這樣的遞減序列。
本次上機使用了一個考試系統(tǒng),要求先編好這兩個程序,然后輸入你的姓名,系統(tǒng)就會隨機生成兩個題目的輸入數(shù)據(jù),運行后將結果在5分鐘內輸入提交,否則時間用完,重新生成一組輸入數(shù)據(jù),最多有三次機會。
很遺憾,第一次使用這樣的東西,我得了0分。而且與編程無關,反正編程我也不行,不過我得到的第一個數(shù)據(jù)實在比較簡單:98
可以用筆算得到結果,無需程序。我分解對了,但填錯位置了。(苦笑),第二個我也知道怎么弄,不過一著急,數(shù)錯個數(shù)了。
希望師弟師妹吸取教訓。第一題是給定一個程序,關于字符串的,要求輸入并調試,說出此程序的意圖。意圖是按字母順序對兩個字符串比較排序。第二問要求用盡可能少的語句對該程序進行修改,使其能夠對兩個字符串比較長度排序
實現(xiàn):
#include<iostream>
#include<string>
usingnamespacestd;
intmain()
{
stringstr1,str2;
cout<<"請輸入兩個字符串"<<endl;
cin>>str1>>str2;
if(str1<str2)
{
cout<<str2<<">"<<str1<<endl;
}
else
{
cout<<str1<<">"<<str2<<endl;
}
/*
if(str1.length()<str2.length())
{
cout<<str2<<"islongthan"<<str1<<endl;
}
else
{
cout<<str1<<"islongthan"<<str2<<endl;
}
*/
return0;
}第二題是要求編寫一個日期類,要求按xxxx-xx-xx的格式輸出日期,實現(xiàn)加一天的操作,不考慮閏年問題,所有月份設為30天。本題黑盒測試時,輸入2004年3月20日,得到加一天后時間為2004-3-21,能得一部分分數(shù)。輸入2004年3月30日,得到加一天后時間為2004-4-1,能得一部分分數(shù)。輸入2004年12月30日,得到加一天后時間為2005-1-1,且有時間越界處理,能得全部分數(shù)。
實現(xiàn):
#include<iostream>
usingnamespacestd;
classd_date
{
public:
d_date();
~d_date(){};
voidsetD_date(intyear,intmonth,intday);
d_dateaddToD_date();
voidprint();
protected:
private:
intyear;
intmonth;
intday;
};
intmain()
{
intyear,month,day;
d_dated_dat;
while(true)
{
cout<<"請輸入年、月、日"<<endl;
cin>>year;
cin.ignore(2);
cin>>month;
cin.ignore(2);
cin>>day;
cin.ignore(2);
d_dat.setD_date(year,month,day);
d_dat=d_dat.addToD_date();
cout<<"加一天以后是:"<<endl;
d_dat.print();
}
return0;
}
d_date::d_date()
{
year=1900;
month=1;
day=1;
}
voidd_date::setD_date(intyear,intmonth,intday)
{
this->year=year;
if(month<0||month>12)
{
cout<<"對不起,您輸入的月份有誤,將自動設置為1月"<<endl;
this->month=1;
}
else
this->month=month;
if(day<0||day>30)
{
cout<<"對不起,您輸入的日期有誤,將自動設置為1日"<<endl;
this->day=1;
}
else
this->day=day;
}
d_dated_date::addToD_date()
{
day++;
if(day>30)
{
day=1;
month++;
}
if(month>12)
{
month=1;
year++;
}
return*this;
}
voidd_date::print()
{
cout<<this->year<<"-"<<this->month<<"-"<<this->day<<endl;
}
第三題要求編寫一個復數(shù)類,要求有4條。一是有構造函數(shù),能對復數(shù)初始化。二是對復數(shù)c1,c2,c3.....能實現(xiàn)連加運算,令c=c1+c2+c3+.....此處可以重載加法操作符。三是有函數(shù)實現(xiàn)兩個復數(shù)相加,并按照a+ib的形式輸出。四是能實現(xiàn)對一個復數(shù)c=a+ib,定義doublex=c有效,使x的值為實部和虛部之和。
實現(xiàn):
#include<iostream>
usingnamespacestd;
classPluralism
{
public:
Pluralism();
~Pluralism(){};
Pluralism&operator+(constPluralism&);
voidsetPluralism();
voidaddAnother(constPluralism&);
voidprint();
doublequalificatory();
protected:
private:
doublereal;
doublevain;
};
intmain()
{
Pluralismp_p1,p_p2,p_p3,p_p4;
cout<<"Entervaluelike13:"<<endl;
p_p1.setPluralism();
cout<<"p_p1is:";
p_p1.print();
p_p2.setPluralism();
cout<<"p_p2is:";
p_p2.print();
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年光建一體化科技公司施工設備安全防護管理制度
- 2026江蘇南京大學化學學院助理招聘備考題庫帶答案詳解(新)
- 2025年國際商法專業(yè)入學考試題及答案
- 2025年美容師考試技術方面的提升方法試題及答案
- 2025年河北工勤人員技師考試工程測量員訓練題及答案
- 2025年大數(shù)據(jù)技術與工程專業(yè)入學考試題及答案
- 2026江蘇南京大學化學學院博士后招聘備考題庫及答案詳解一套
- 2026江蘇南京大學化學學院博士后招聘備考題庫帶答案詳解(培優(yōu)b卷)
- 2026江蘇南京大學化學學院博士后招聘備考題庫附參考答案詳解(預熱題)
- 2026江蘇南京大學化學學院科研人員招聘備考題庫附參考答案詳解(黃金題型)
- 淺談醫(yī)藥價格管理現(xiàn)狀透析
- 全屋定制合同協(xié)議模板2025年標準版
- 起重機檢測合同協(xié)議
- 黨支部書記2025年度抓基層黨建工作述職報告
- 2025年數(shù)字人民幣應用基礎考試模擬試卷及答案
- 2025版過敏性休克搶救指南(醫(yī)護實操版)
- 孕婦監(jiān)護和管理課件
- 2026年安全員之A證考試題庫500道(必刷)
- 眼科疾病常見癥狀解析及護理指南
- 《2+N糖尿病逆轉治療行業(yè)規(guī)范與操作流程》
- 注射用伏欣奇拜單抗-臨床用藥解讀
評論
0/150
提交評論