欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

2020年华科计算机考研机试题答案(没弄懂题目的意思)

发布时间:2025/5/22 编程问答 44 豆豆
生活随笔 收集整理的这篇文章主要介绍了 2020年华科计算机考研机试题答案(没弄懂题目的意思) 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

2020年华科研究生复试机试题,包含测试数据和题目,里面是文档和要所报文件。供考研学子学习使用。此数据量有点大,涉及到链表,数据转换,和容器。以下代码都是我写的,欢迎交流。原题目和测试文档链接地址是[https://download.csdn.net/download/qq_41476542/12415227]。供需要测试的人使用


在这里插入图片描述

在这里插入代码片 // HK2020ProAndAns.cpp : Defines the entry point for the console application. //#include "stdafx.h"#include <iostream> #include <fstream> #include <string> #include <limits.h> #include <windows.h> #include <VECTOR> #include <list> using namespace std;struct points {int xuhao;用于最终得出结果int inumber;int Ep[200];vector<int> vetoreverypoint;用于存每一个数值 }; vector<points> vecP; vector<int> vecPlastselect; typedef list <int> intList; unsigned int iLinenumber=0;有多少个集合 unsigned int iAllPoint=0;有多少个元素int IAllpoint[2000000][200];///二维数组用于表示所有的点(不能放进函数中定义,否则内存不够) int IAllnuber[2000000]; int Itemp=0;///临时变量 void CharToInt(char *Intput,unsigned int * OutPut) {sscanf((LPSTR)(LPCTSTR)Intput,"%d",&OutPut); } void selectjiHe( vector<points> vecP) {int selectstart=0;int selectCharstart=0;Itemp=vecP.size();int selectPoint=1,sj=0;while(true){Itemp=vecP[selectstart].vetoreverypoint[selectCharstart];Itemp=vecP[selectPoint].vetoreverypoint[sj];if (vecP[selectstart].vetoreverypoint[selectCharstart]!=vecP[selectPoint].vetoreverypoint[sj]){Itemp=vecP[selectPoint].vetoreverypoint.size();if (selectPoint<iLinenumber&&sj==Itemp){sj=0;selectPoint++;}else if (selectPoint<iLinenumber&&sj<Itemp){sj++;}else if(selectPoint>iLinenumber){cout<<"留下集合%d"<<selectPoint<<endl;}}else{Itemp=vecP[selectstart].vetoreverypoint.size();if (selectstart<iLinenumber&&selectCharstart>=Itemp){selectstart++;}else if (selectstart<iLinenumber&&selectCharstart<Itemp){selectCharstart++;}else if (selectstart>iLinenumber){break;}}}} void tanxinselect(vector<points> vecP) {//vecPlastselect=vecP;Itemp=vecP.size();points tempTaget;intList _intList;int ijiheveceornumber=0;int IRecordBkPoint=0;///记录断点位置// for (int i=0;i<Itemp-1;i++) // { // for (int paixuj=0;paixuj<Itemp-1-i;paixuj++) // { // if (vecP[paixuj].inumber<=vecP[paixuj+1].inumber) // { // tempTaget=vecP[paixuj]; // vecP[paixuj]=vecP[paixuj+1]; // vecP[paixuj+1]=tempTaget; // cout<<"paixuj"<<paixuj<<endl; // } // // } // cout<<"i="<<i<<endl; // }往list容器里面存数据for(int j=0;j<iAllPoint;j++){_intList.push_back(j);}for(int vj=0;vj<iAllPoint;vj++){vecPlastselect.push_back(vj);}int bkLargeTosmall=0;///记录从大道小的擦除地方int ivecp=0;list<int>::reverse_iterator Iter;intList::iterator iter_e;int vetlarg=vecPlastselect.size();for (int n=0;n<Itemp;n++){int sizetrmp=_intList.size();if (sizetrmp==0){bkLargeTosmall=n;break;}if (vecPlastselect.size()==0){bkLargeTosmall=n;}cout<<"留下的元素为"<<n<<endl;cout<<"容器大小为"<<vecPlastselect.size()<<endl;if (vecPlastselect.size()==0){bkLargeTosmall=n;break;}else{int iitemp;int num=vecP[n].inumber;for (int mv=0;mv<num;mv++){sizetrmp=_intList.size();int jjt=0;bkLargeTosmall=n ;int ite=0; // for (iter_e=_intList.begin();iter_e!=_intList.end();iter_e++) // { // iitemp=vecP[n].vetoreverypoint[mv]; // ite=*iter_e; // cout<<"*iter_e为"<<*iter_e<<endl; // if(iitemp == *iter_e) // { // // //_intList.erase(iter_e); // _intList.remove(iitemp); // sizetrmp=_intList.size(); // // break; // bkLargeTosmall=n; // iter_e=_intList.begin(); // // } // // } /// // for (Iter=_intList.rbegin();Iter!=_intList.rend();Iter++ ) // { // iitemp=vecP[mv].vetoreverypoint[jjt]; // if(iitemp == *Iter) // { // // _intList.erase((Iter).base()); // cout<<"*iter_e为"<<*Iter<<endl; // list<int>::iterator iter = _intList.erase((++Iter).base()); // Iter = list<int>::reverse_iterator(iter); // // // } // // } ite=0;if (vecPlastselect.size()==0){bkLargeTosmall=n;}iitemp=vecP[n].vetoreverypoint[mv];for (int vpi=0;vpi<vecPlastselect.size();vpi++){if(iitemp ==vecPlastselect[vpi] ){ite++;vecPlastselect.erase(vecPlastselect.begin()+vpi);break;} }}}}int Iputpoint;for(int bk=0;bk<bkLargeTosmall;bk++){Iputpoint=vecP[bk].xuhao;cout<<"留下的元素为"<<Iputpoint<<endl;} }int main() {string str;//利用string来接受读入的源代码points vectorPoint;ifstream file("D:\\我的文档\\WeChat Files\\xpj13098878561\\FileStorage\\File\\2020-05\\计算机专业实践考核\\SetCoveringTestData\\test01.txt");int Itempshuzu[200];int cnt = 1;//记录当前行号if (!file.is_open()){cout << "文件打开失败!" << endl;}string Lineone="";//取第一行数据确定用多少个数组char Ctemp[1000];//用于临时存储数据getline(file, Lineone);char ClineNumber[10]={0};char AllPoint[10]={0};int Onebk=0;int j=0;for ( j=0;j<50;j++){if (Lineone[j]==' '){Onebk=j;break;}else{ClineNumber[j]=Lineone[j];}}Itemp=0;for ( j=Onebk+1;j<50;j++){if (Lineone[j]=='\n'||Lineone[j]==' '||Lineone[j]=='\0'){break;}else{AllPoint[Itemp]=Lineone[j];Itemp++;}}sscanf((LPSTR)(LPCTSTR)ClineNumber,"%d",&iLinenumber);sscanf((LPSTR)(LPCTSTR)AllPoint,"%d",&iAllPoint);//string strTempnumber="";int number=0;//strTempnumber.Format("%d",number);int everyLinenumber=0;//每个集合元素个数int Linelength=0;//用于表示每行的长度int acm=10; // int smal[acm]; // int IAllpoint[100][200];///二维数组用于表示所有的点int IEPTP=0;//每个元素存储的位置去存进二维数组中int tln=0;//用于给char赋值,表示赋值过程中的位置int Icen;//用于隔开每个点的字符串int IGetPointNumber=0;//用于表示获取到的集合的数量 // int ll=1;int oneJihePoint=0;//一个集合的点数int INumbertimes=0;///用于存放数量的个数for(int ll=1;ll<iLinenumber*3+1;ll++){getline(file, str);if (ll%2==0){Linelength=sizeof(str);memset(Ctemp,0,1000);for(tln=0;tln<Linelength;tln++){Ctemp[tln]=str[tln];}sscanf((LPSTR)(LPCTSTR)Ctemp,"%d",&everyLinenumber);IAllnuber[INumbertimes]=everyLinenumber;INumbertimes++; }if (ll%3==0){IEPTP=0;Icen=0;Linelength=str.length();memset(Ctemp,0,1000);for(tln=0;tln<Linelength;tln++){if (str[tln]==' '){sscanf((LPSTR)(LPCTSTR)Ctemp,"%d",&Itemp);IAllpoint[IGetPointNumber][IEPTP]=Itemp; vectorPoint.xuhao=IGetPointNumber;vectorPoint.vetoreverypoint.push_back(Itemp);vectorPoint.inumber=everyLinenumber;Icen=0;IEPTP++;}else{Ctemp[Icen]=str[tln];Icen++;}}vecP.push_back(vectorPoint);}//cout<<str<<endl;}tanxinselect(vecP);// selectjiHe(vecP);system("pause"); }

总结

以上是生活随笔为你收集整理的2020年华科计算机考研机试题答案(没弄懂题目的意思)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。