c++实验答案参考_第1页
c++实验答案参考_第2页
c++实验答案参考_第3页
c++实验答案参考_第4页
c++实验答案参考_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

试验__7__试验汇报教学班级:35学生学号:0322学生姓名:贾启彬试验日期:.5.7试验地点:7408(机房)指导教师签名:__________试验成绩:___________一、试验目的1.掌握对一组同类型的数据进行插入、删除、排序和查找等的常用算法;2.掌握数值型一维数组的使用措施;二、试验任务1.输入n个数,找出所有不小于n个数的平均值的那些数及最小数。2.设有有序(值从小到大)的两组数据,将这两组数据有序合并(合并过程数据一直保持有序)。(提醒:两组原始数据用一维数组a,b表达,合并后的数据用一维数组c表达,ia,ib分别代表目前待放入到数组c中去的数组a,b的下标,ic指向数组c中目前寄存数据的下标,如下图所示。)三、试验成果(源程序+注释)#include<iostream>usingnamespacestd;voidmain(){inta[20],b=0,i,j,n,c;cout<<"inputn:";cin>>n;cout<<"input"<<n<<"numbers"<<endl;for(i=0;i<n;i++){cin>>a[i];b=b+a[i];}c=b/n;for(j=0;j<n;j++)if(a[j]>c)cout<<"thenumberis:"<<a[j]<<endl;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(a[i]>a[j]){c=a[i];a[i]=a[j];a[j]=c;}cout<<"smallest:"<<a[0]<<endl;}}#include<iostream>usingnamespacestd;voidmain(){inti,j,t=0,ic=0,a[5],b[7],c[12];cout<<"please5input(smalltobig):";for(i=0;i<5;i++)cin>>a[i];cout<<"another7one:";for(i=0;i<7;i++)cin>>b[i];for(i=0;i<5;i++){c[ic]=a[i];ic++;}for(i=0;i<7;i++){c[ic]=b[i];ic++;}for(i=0;i<=ic;i++) for(j=i+1;j<=ic+1;j++) if(c[i]>c[j]) {t=c[i];c[i]=c[j];c[j]=t;}for(i=0;i<=ic;i++){if(c[i]==c[i+1])continue;cout<<c[i]<<endl;}}试验__8__试验汇报教学班级:35学生学号:0322学生姓名:贾启彬试验日期:.5.14试验地点:7408(机房)指导教师签名:__________试验成绩:___________一、试验目的1.掌握对一组同类型的数据进行插入、删除、排序和查找等的常用算法;2.掌握二维数值型数组的使用措施;二、试验任务1.输出如下杨辉三角形。111121133114641151010511615201561172135352171182856705628811936841261268436912.有一种3*4的矩阵,规定编程序找出每一行中值最大的那个元素并与该行第1列的元素互换。三、试验成果(源程序+注释)#include<iostream> //文字包括命令#include"iomanip"usingnamespacestd;voidmain(){inti,j,a[10][10];for(i=0;i<10;i++) for(j=0;j<=i;j++) //双重嵌套循环构造 if(j==0||j==i)a[i][j]=1; elsea[i][j]=a[i-1][j-1]+a[i-1][j]; //为各个数组元素赋值,每行第j个元素等于上 一行第j个和第j-1个元素之和cout<<"杨辉三角是:"<<endl;for(i=0;i<10;i++){for(j=0;j<9-i;j++) //当行数i与列数j关系为j<9-i时输出两个空cout<<setw(2)<<""; 格,而列数j<i+1时输出对应位的元素。同步for(j=0;j<=i;j++) 每行之后要换行。 cout<<setw(2)<<a[i][j]<<""; cout<<endl;}}#include<iostream>#include<iomanip>usingnamespacestd;voidmain(){inta[3][4],n,m,x,max=0,k; //定义数组和对应变量。cout<<”pleaseinput12:”<<endl;for(n=0;n<3;n++)for(m=0;m<4;m++)cin>>a[n][m]; //输入3*4矩阵,for(n=0;n<3;n++) {for(m=0;m<4;m++)if(max<a[n][m]) //将每行最大值赋给max,同步用x {max=a[n][m]; 记住最大值的列数,每行执行完循环,x=m;} 互换第一列和最大值元素的值。 {k=a[n][x];a[n][x]=a[n][0];a[n][0]=k;} }cout<<endl;for(n=0;n<3;n++) //按次序输出数组元素,同步每行结 {for(m=0;m<4;m++) 束记住换行。cout<<setw(5)<<a[n][m];cout<<endl; }}试验__9__试验汇报教学班级:35学生学号:0322学生姓名:贾启彬试验日期:.5.21试验地点:7408(机房)指导教师签名:__________试验成绩:___________一、试验目的1.纯熟指针变量的使用,理解其编程技巧;2.纯熟指针变量做函数参数,理解其传递过程;3.纯熟指向数组元素的指针,理解指针引用数组元素的编程技巧。二、试验任务1.使用指针法在的一组数据中,找出其中最大值所在的位置并输出。2.使用指针法对一维数组a中的数据按降序排列。三、试验成果(源程序+注释)#include<iostream>usingnamespacestd;voidmain(){inta[20],*p,n,i,max;cout<<"inputn:"<<endl;cin>>n;cout<<"inputnnumber:"<<endl;for(p=a;p-a<n;p++)cin>>*p;for(p=a,max=*a;p-a<n;p++)if(max<*p){max=*p;i=p-a+1;}cout<<"largest:"<<max<<endl;cout<<"position:"<<i<<endl;}#include<iostream>#include<iomanip>usingnamespacestd;voidmain(){inti,j,a[20],*p,n,t;cout<<"inputn:"<<endl;cin>>n;cout<<"input"<<n<<"numbers"<<endl;for(p=a;p-a<n;p++)cin>>*p;p=a;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(*(p+i)<*(p+j)){t=*(p+i);*(p+i)=*(p+j);*(p+j)=t;}for(p=a;p-a<n;p++)cout<<setw(3)<<*p;}试验__10__试验汇报教学班级:35学生学号:0322学生姓名:贾启彬试验日期:.5.28试验地点:7408(机房)指导教师签名:__________试验成绩:___________一、试验目的1.理解寄存常用的系统函数的头文献;2.掌握常用系统函数的功能和使用措施;3.掌握返回值的概念和运用。二、试验任务1.接受顾客输入的数值,计算该数的绝对值和该绝对值以10为底的对数值,并输出计算成果。(提醒:使用内置的绝对值函数和对数函数。)2.编写两个子函数,分别求两个整数的最大公约数和最小公倍数,并编写主函数调用这两个子函数,输出成果,两个整数由键盘输入。三、试验成果(源程序+注释)#include<iostream>#include<cmath>usingnamespacestd;voidmain(){doublex,f,l;cout<<"pleaseinput:"<<endl;cin>>x;f=fabs(x);l=log10(f);cout<<"绝对值:"<<f<<endl;cout<<"对数值:"<<l<<endl;}#include<iostream>usingnamespacestd;voidmain(){inta,b,max,min;intminy(inta,intb);intmaxy(inta,intb);cout<<"pleaseinput2numbers:"<<endl;cin>>a>>b;max=maxy(a,b);min=miny(a,b);cout<<"最大公约数:"<<max<<endl;cout<<"最小公倍数:"<<min<<endl;}intmaxy(inta,intb){inti,j;i=a<b?a:b;j=a>b?a:b;while(a%i!=0||b%i!=0){i-=1;}returni;}intminy(inta,intb){inti,j;i=a<b?a:b;j=a>b?a:b;while(j%a!=0||j%b!=0){j+=1;}returnj;}试验__11__试验汇报教学班级:35学生学号:0322学生姓名:贾启彬试验日期:.6.4试验地点:7408(机房)指导教师签名:__________试验成绩:___________一、试验目的1.掌握自定义有返回值函数的概念、定义及使用;2.掌握自定义void函数的概念、定义及使用;3.掌握自定义有返回值函数与自定义void函数在定义及使用上的区别;4.掌握函数参数间的数据传递。二、试验任务1.设计一种程序,用来计算输入的两个整数的加、减、乘、除,每一种计算要单独用一种顾客自定义的void函数来实现,接受输入数据也要用void函数来实现,输入数据中不包括0。2.将键盘输入的10个整数按从小到大的次序排序(冒泡法),规定排序功能用自定义函数实现。三、试验成果(源程序+注释)一#include<iostream>usingnamespacestd;voidinput(int&a,int&b){cin>>a>>b;}voidadd(int&a,int&b,int&c){c=a+b;}voidsub(int&a,int&b,int&c){c=a-b;}voidmul(int&a,int&b,int&c){c=a*b;}voiddiv(int&a,int&b,int&c){c=a/b;}voidmain(){inta,b,c;cout<<"请输入a,b的值:"<<endl;input(a,b);add(a,b,c);cout<<"a+b="<<c<<endl;sub(a,b,c);cout<<"a-b="<<c<<endl;mul(a,b,c);cout<<"a*b="<<c<<endl;div(a,b,c);cout<<"a/b="<<c<<endl;}二#include<iostream>usingnamespacestd;voidline(inta[]){inti,j,t;for(i=0;i<10;i++)for(j=0;j<10-i-1;j++)if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}voidmain(){inta[10],i;cout<<"请输入第10个数:"<<endl;for(i=0;i<10;i++)cin>>a[i];line(a);cout<<"数组a排序后:"<<endl;for(i=0;i<10;i++){cout<<a[i]<<"";}}试验__12__试验汇报教学班级:_______学生学号:__________学生姓名:___________试验日期:___________试验地点:_________(机房)指导教师签名:__________试验成绩:___________一、试验目的1.建立文献、读写文献的操作;2.文献指针的定位操作。二、试验任务1.编写一种程序,用来从键盘读取本班同学的期末成绩,并把该成绩保留在score.dat文献中。Score.dat文献内容如下:number Chinese English C 1 87 76 67 2 67 87 65 3 76 88 87 4 46 89 88 2.编写一种程序,用来读取上题创立的score.dat数据文献,并计算其平均成绩和期末总成绩。把计算的成果存在statistics.dat文献中,并输出成绩有不及格的学生的学号。其格式如下:number Chinese English C total average1 87 76 67 230 76.672 67 87 65 219 733 76 88 87 251 83.674 46 89 88 223 74.3三、试验成果(源程序+注释)#include<iostream>#include<fstream>usingnamespacestd;intmain(){ intnum,chi,eng,c,i,n; fstreamfile1; file1.open("C:\\score.dat",ios::out); if(!file1) cout<<"文献打开失败!"<<endl; else { cout<<"请输入学生个数:\n"; cin>>n; file1<<"number"<<"\t"<<"Chinese"<<"\t"<<"English"<<"\t"<<"C\n";//写入文献头部内容 for(i=0;i<n;i++) { cout<<"请输入第"<<i+1<<"个学生成绩:格式为“numberChineseEnglishC”:"<<endl; cin>>num>>chi>>eng>>c; file1<<num<<"\t"<<chi<<"\t"<<eng<<"\t"<<c<<endl;//由键盘接受数据,写入文献 } file1.close(); } return0;}#include<iostream>#include<fstream>usingnamespacestd;structstudent{ intnum,chi,eng,c,total; doubleave;}stu[10];//定义构造体变量用于储存学生数据voidspaces(chars[])//该函数用于清空字符串s{ s[0]=0;s[1]=0;s[2]=0;}intcharstoint(chars[])//该函数用于将3位或3位如下数字字符串转化为int类型{ inti,n=0; for(i=0;i<3;i++) if(s[i]>='0'&&s[i]<='9') { s[i]-='0'; n++; } switch(n) { case0:break; case1:returns[0]; case2:returns[0]*10+s[1]; case3:returns[0]*100+s[1]*10+s[2]; }}intmain(){ intnum,chi,eng,c,i,a; intline/*第line组数据*/,n/*第n个数据*/; charch,s[3]; fstreamfile1; file1.open("C:\\score.dat",ios::in); if(!file1) cout<<"文献打开失败!\n"; else { i=0; while((file1.get(ch))&&(ch!='\n'))//碰到第一种换行结束,即跳过第一行标题栏 cout<<ch; cout<<"\ttotal\taverage"<<endl; line=0;a=0;n=1;spaces(s);//以line和d表达目前读取位置,a自0-2循环写入s while(file1.get(ch)) { if(ch=='\n') { stu[line].c=charstoint(s);//获得c成绩 stu[line].total=stu[line].chi+stu[line].eng+stu[line].c;//计算总分 stu[line].ave=stu[line].total/3.0;//计算平均分 //cout<<"目前是第"<<line<<"行第"<<n<<"个"; //cout<<"s="<<charstoint(s)<<endl;//该处s已为该行最终一种数 cout<<stu[line].num<<'\t'<<stu[line].chi<<'\t'<<stu[line].eng<<'\t'<<stu[line].c; cout<<'\t'<<stu[line].total<<'\t';cout<<fixed;cout.precision(1);cout<<stu[line].ave<<'\n';//输出成果 a=0;n=1;spaces(s);//已至行末,故初始化a,n,s数据 line++;//行号加1 } if(ch=='\t') { switch

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论