C++课程实习及答案全解

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

实验题目(共4题,第1题)标题:1、字符串输入输出时限:1000ms内存限制:10000K总时限:3000ms描述:编写一个简单的控制台应用程序,先输入姓名,如“John”,再输出问候语,如“Hello,John!”。输入:John输出:Hello,John!输入样例:John输出样例:Hello,John!提示:1、使用string类定义字符串对象,需包含头文件string;2、使用cin和提取符从键盘输入数据,使用cout和插入符输出结果到屏幕,需包含头文件iostream;3、注意使用名称空间std。来源:#includeiostream#includestdio.h#includestdlib.husingnamespacestd;intmain(){chars[10];gets(s);coutHello,s!endl;return0;}示例代码----------------------------------------------#includeiostream#includestringusingnamespacestd;intmain(){stringszName;cinszName;coutHello,szName!endl;return0;}-----------------------------------------------------实验题目(共4题,第2题)标题:2、求3个数的平均值时限:1000ms内存限制:10000K总时限:3000ms描述:从键盘上输入3个浮点数,求这3个数的平均值。输入:3个浮点数输出:3个数的平均值输入样例:1.51.61.3输出样例:1.46667提示:1、用usingnamespacestd;明确名字空间2、用cin对象,采用运算符输入数据3、用cout对象,采用运算符输出数据来源:#includeiostreamusingnamespacestd;intmain(){floata,b,c,aver=0;cina;cinb;cinc;aver=(a+b+c)/3.0;coutaverendl;return0;}示例代码-----------------------------------#includeiostreamusingnamespacestd;intmain(){floatx1,x2,x3;cinx1x2x3;cout(x1+x2+x3)/3endl;return0;}---------------------------------------------实验题目(共4题,第3题)标题:3、求鞍点时限:1000ms内存限制:10000K总时限:3000ms描述:输入一个二维矩阵,找出其中所有鞍点。如果矩阵有鞍点,则输出鞍点的信息:行号、列号、值;如果没有鞍点,则输出“Notfound!”。所谓“鞍点”,是指满足以下条件的矩阵中的一个数:在它所在的行上最小、所在列上最大。该题中假设矩阵中任意两个数互不相等。输入:输入数据有多行:第一行是矩阵的行数m和列数n从第二行起共包含m行,每行包含n个数,为矩阵的一行数据输出:如果矩阵有鞍点,输出鞍点的信息,包括:所在行、所在列、值如果没有鞍点,输出Notfound!输入样例:34112356471245669016773418输出样例:2016提示:1、要求用动态内存分配来完成,可用new和delete实现;2、屏幕输出只有2016(加回车换行),不能有其它信息。来源:#includeiostreamusingnamespacestd;voidan(inth,intl){intma,mi,a=0,b=0;int**p;p=newint*[h];for(inti=0;ih;i++){p[i]=newint[l];}for(inti=0;ih;i++){for(intj=0;jl;j++){cinp[i][j];}}intflag=0;for(inti=0;ih&&flag==0;i++){mi=p[i][0];a=i,b=0;for(intj=0;jl;j++){if(p[i][j]mi){mi=p[i][j];a=i,b=j;}}for(intt=i+1;th;t++){ma=mi;if(map[t][b])ma=p[t][b];}if(ma==mi){flag=1,coutabmaendl;}}if(flag==0)coutNotfound!endl;delete[]p;}intmain(){inth,l;cinhl;an(h,l);return0;}示例代码-----------------------------------------------------------------------------------------------------------#includeiostreamusingnamespacestd;intmain(){int**mat;int*matRow,*matCol;intnMaxRow=0,nMaxCol=0;boolbFind=false;intnTargetRow=0,nTargetCol=0,nSaddlePoint=0;inti,j;//coutPleaseinputthenumberofrowsandthenumberofcolumns:endl;cinnMaxRownMaxCol;//Allocatememoriesforthetwodimensionalmatricesmat=newint*[nMaxRow];for(i=0;inMaxRow;i++)mat[i]=newint[nMaxCol];matRow=newint[nMaxRow];//BufferstosavetheminimumelementineachrowmatCol=newint[nMaxCol];//Bufferstosavethemaximumelementineachcolumn//Inputtheelements//coutPleaseinputtheelements:endl;for(i=0;inMaxRow;i++)for(j=0;jnMaxCol;j++)cinmat[i][j];//Findtheminimumelementineachrowfor(i=0;inMaxRow;i++){intnMin=mat[i][0];for(j=1;jnMaxCol;j++){if(mat[i][j]nMin)nMin=mat[i][j];}matRow[i]=nMin;}//Findthemaximumelementineachcolumnfor(j=0;jnMaxCol;j++){intnMax=mat[0][j];for(i=1;inMaxRow;i++){if(mat[i][j]nMax)nMax=mat[i][j];}matCol[j]=nMax;}//Findthesaddlepointfor(i=0;inMaxRow&&!bFind;i++){for(j=0;jnMaxCol;j++){if(mat[i][j]==matRow[i]&&mat[i][j]==matCol[j]){nTargetRow=i;nTargetCol=j;nSaddlePoint=mat[i][j];bFind=true;break;}}}//Outputthesearchedrowandcolumnandthecorrespondingsaddlepointif(!bFind)coutNotfound!endl;elsecoutnTargetRownTargetColnSaddlePointendl;//Releasememoriesdelete[]matCol;delete[]matRow;for(i=0;inMaxRow;i++)delete[]mat[i];delete[]mat;return0;}---------------------------------------------------------------------------------------------------------------实验题目(共4题,第4题)标题:4、链表操作时限:1000ms内存限制:10000K总时限:3000ms描述:建立一个链表,每个节点包括学生的学号、姓名、性别、年龄。先输入5个学生的数据,再输入一个年龄,如果链表中有年龄等于此年龄的记录,则删除所有年龄等于此年龄的记录,否则在链表的最后增加一个新节点,学号为180姓名为aaa,性别为male。。输入:创建链表时输入5个职工的职工号和工资,学号为大于100且小于200的整数,姓名为长度小于20的字符串,性别为长度小于10的字符串,年龄为大于等于0且小于200的整数。输出:按顺序输出链表中的所有数据,每个数据占一行。输入样例:101zhangsanmale30103lisifemale18105wangwumale25107maliumale28109niuqifemale2228输出样例:101zhangsanmale30103lisifemale18105wangwumale25109niuqifemale22提示:要求用动态内存分配实现,注意new和delete的使用。来源:#includeiostreamusingnamespacestd;classnode{private:int_num,_age;string_name,_sexy;public:node(intnum,intage,stringname,stringsexy){_num=num;_age=age;_name=name;_sexy=sexy;}voiddisplay(void){cout_numendl;cout_nameendl;cout_sexyendl;cout_ageendl;}intsame(intage){if(age==_age)return1;return0;}};classLinkedList{public:node*Node;LinkedList*next;LinkedList(intnum,intage,stringname,stringsexy){Node=newnode(num,age,name,sexy);next=NULL;}};intmain(void){intnum,age;stringname,sexy;cinnumnamesexyage;LinkedListhead(num,age,name,sexy);LinkedList*p=&head;for(inti=1;i=4;i++){cinnumnamesexyage;p-next=newLinkedList(num,age,name,sexy);p=p-next;}cinage;LinkedList*pp=&head;intflag=0;while(pp!=NULL){if(pp-Node-same(age))flag++;elsepp-Node-display();pp=pp-next;}if(!flag){noden(180,age,aaa,male);n.display();}return0;}示例代码------------------------------------------------------------------------------------------

1 / 71
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功