2008年北理复试上机题
2017-02-23 22:21
246 查看
历年北京理工大学复试上机题题目汇总:
http://blog.csdn.net/u014552756/article/details/78505845
1、存储一组姓名,如Apple,Tom,Green,Jack要求能排序、按字母顺序插入、并显示。
4、设计一个程序能计算日期的间隔,如输入两个日期分别为2008-2-3和2008-3-9计算相隔多少天,或2008-2-3加上100天后的日期是多少。
http://blog.csdn.net/u014552756/article/details/78505845
1、存储一组姓名,如Apple,Tom,Green,Jack要求能排序、按字母顺序插入、并显示。
#include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { string s; vector<string> st; cout<<"请输入单词,以00结束:"<<endl; vector<string>::iterator i; while(cin>>s) { if(s=="00") break; st.push_back(s); sort(st.begin(),st.end()); for(i=st.begin(); i!=st.end(); i++) { if(i==st.begin()) cout<<*i; else cout<<" "<<*i; } cout<<"请输入单词,以00结束:"<<endl; } return 0; }
#include <iostream> #include <algorithm> #include <string> using namespace std; int main() { int n=0; string s,str[105]; while(cin>>s) { str[n++]=s; sort(str,str+n); for(int i=0; i<n; i++) { if(i==0) cout<<str[i]; else cout<<" "<<str[i]; } cout<<endl; } return 0; }2、输入文件名及路径创建该文件,并把从键盘输入的内容保存到该文件,最后将该文件的路径、该文件名及文件中的内容输出到屏幕。
#include <iostream> #include <string> #include <fstream> using namespace std; int main() { string fname,name,road,cont; cout<<"请输入文件路径及其文件名:格式如E:\\xx\\xx\\xx.txt"<<endl; cin>>fname; ofstream out(fname.c_str());//c_str()函数返回一个指向正规C字符串的指针 cout<<"请输入文件的内容,以00结束:"<<endl; while(cin>>cont) { if(cont=="00") break; out<<cont<<endl; } int j; for(int i=0; i!=fname.length(); i++) { if(fname[i]=='\\') j=i; } road=fname.substr(0,j-1); name=fname.substr(j+1,fname.length()); cout<<"文件路径为:"<<road<<endl<<"文件名为:"<<name<<endl; cout<<"文件内容为:"; cont=""; ifstream in(fname.c_str()); while(in>>cont) { cout<<cont<<" "; } return 0; }3、设计捕获两种不同类型的异常,一个是被0除,另一个是数组越界。
#include <iostream> #include <vector> using namespace std; class A {}; class B {}; int main() { int a,b,length; vector<int> arr; cout<<"请输入除数和被除数:"<<endl; cin>>a>>b; try { if(b==0) throw A(); else cout<<"数值正常可以进行计算,其结果为:"<<a/b<<endl; cout<<"请输入数组长度:"<<endl; cin>>length; cout<<"请输入数组内容,以0结束"<<endl; int i=0; while(cin>>a) { if(a==0) break; arr.push_back(a); i++; } if(i>length) throw B(); else { vector<int>::iterator j; for(j=arr.begin(); j!=arr.end(); j++) cout<<*j<<" "; } } catch(A) { cout<<"0不可以作为除数。"<<endl; } catch(B) { cout<<"数组发生了越界。"<<endl; } catch(...) { cout<<"发生了其他异常。"<<endl; } return 0; }
4、设计一个程序能计算日期的间隔,如输入两个日期分别为2008-2-3和2008-3-9计算相隔多少天,或2008-2-3加上100天后的日期是多少。
#include <iostream> using namespace std; int Getdays(int y,int m,int d)//求距离1年1月1日的距离 { int month[12]= {31,28,31,30,31,30,31,31,30,31,30,31}; int year=y-1; int days=year*365+year/4-year/100+year/400;//求出包括平年闰年的天数总和 if(y%4==0&&y%100!=0||y%400==0)//若当前年为闰年则二月加一天 month[1]=29; for(int i=0; i<m-1; i++) days+=month[i]; days+=d-1; return days; } void Getdate(int y,int m,int d,int n) { int dd=n; int month[12]= {31,28,31,30,31,30,31,31,30,31,30,31}; if(y%4==0&&y%100!=0||y%400==0)//若当前年为闰年则二月加一天 month[1]=29; int t1=month[m-1]-d;//距离当前月结束还有多少天 int t2=0;//距离下一年1月1日还有多少天 for(int i=m-1; i<12; i++) t2+=month[i]; t2-=d; if(n<=t1)//加上n天后在本月 { d+=n; cout<<"加上"<<dd<<"天后的日期为:"; cout<<y<<" "<<m<<" "<<d<<endl; } else if(n>t1&&n<=t2)//加上n天后还在本年 { m+=1;////将日期转为下个月的1日 d=1; n=n-t1-1; if(n==0) { cout<<"加上"<<dd<<"天后的日期为:"; cout<<y<<" "<<m<<" "<<d<<endl; } else { for(int i=m-1; i<12; i++) { if(n-month[i]<0) { d+=n; cout<<"加上"<<dd<<"天后的日期为:"; cout<<y<<" "<<m<<" "<<d<<endl; break; } else { n-=month[i]; m+=1; } } } } else if(n>t2)//加上n天后不在本年 { int flag=0; y+=1;//将日期转为下一年的1月1日 m=1; d=1; n=n-t2-1; if(n==0) { cout<<"加上"<<dd<<"天后的日期为:"; cout<<y<<" "<<m<<" "<<d<<endl; } else { for(int j=y; n!=0; j++) { if(flag==1) break; int t=0; if(y%4==0&&y%100!=0||y%400==0)//若当前年为闰年 { t=n-366; month[1]=29; } else { t=n-365; month[1]=28; } if(t<=0)//日期在当前年 { for(int i=m-1; i<12; i++) { if(n-month[i]<0) { d+=n; cout<<"加上"<<dd<<"天后的日期为:"; cout<<y<<" "<<m<<" "<<d<<endl; flag=1; break; } else { n-=month[i]; m+=1; } } } else//日期不在本年 { n=t; y+=1; } } } } } int main() { int y1,y2,m1,m2,d1,d2,op,n; cout<<"请输入所需要的功能:1、计算两个日期的间隔。2、计算一个日期加上一百天后的结果。"<<endl; cin>>op; if(op==1)//计算两个日期的间隔 { cout<<"请输入第一个日期:"<<endl; cin>>y1>>m1>>d1; cout<<"请输入第二个日期:"<<endl; cin>>y2>>m2>>d2; int t1=Getdays(y1,m1,d1); int t2=Getdays(y2,m2,d2); if(t1>t2) cout<<t1-t2<<endl; else cout<<t2-t1<<endl; } else if(op==2)//计算一个日期加上一百天后的结果 { cout<<"请输入日期:"<<endl; cin>>y1>>m1>>d1; cout<<"请输入相隔天数:"<<endl; cin>>n; Getdate(y1,m1,d1,n); } else return 0; return 0; }
相关文章推荐
- 北理07年复试上机之实现学生类并实现信息一些操作
- 2016年北理复试上机题
- 又一版 A+B 浙大计算机研究生复试上机考试-2008年
- 清华大学2008年复试上机题 解题报告
- 2003年北理复试上机题
- 2002年北理复试上机题(A)
- HDU1877 又一版A+B 浙大计算机研究生复试上机考试-2008年
- hdu 1881 毕业bg (01背包变形)浙大计算机研究生复试上机考试-2008年
- 2002年北理复试上机题(B)
- 2001年北理复试上机题(A)
- 北航2008年计算机复试上机
- 北京航空航天大学 2008年复试上机题 解题报告
- 北理04年复试上机之重载运算符
- 2001年北理复试上机题(B)
- 北理04年复试上机之实现一个多项式的类
- 北理04年复试上机之一元二次方程
- 2014年北理复试上机题
- 2010年北理复试上机题
- 2000年北理复试上机题
- 北理05年复试上机之实现日期类