ImageVerifierCode 换一换
格式:DOCX , 页数:44 ,大小:38.91KB ,
资源ID:21338880      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/21338880.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C++上机题目及答案1Word文档格式.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C++上机题目及答案1Word文档格式.docx

1、n 3-结束nn请选择: ; cinn; if(n=1) dele(a); else if(n=2) add(a) ; else cout谢谢使用本系统!n while(n!=3);void add(student a10) student stu; int i=0,n=count; coutstu.namestu.math; while(stu.mathai.math & ii;n-) an=an-1; /腾位置 ai=stu; /插入 count+; print(a);void dele(student a10)请输入需删除学生的姓名:name; while(strcmp(name,ai.

2、name)!=0 &/找人 if(i=n) cout查无此人! else for(;in-1;i+) ai=ai+1; /删除 count-; print(a); void print(student a)n最新学生信息: n for(int i=0;count;i+)ai.nametai.mathstruct point double x,y,z;double distance(point a,point b); point a,b;请分别输入两个点的坐标(x,y,z):a.xa.ya.z;b.xb.yb.z;a点的坐标:a.x,a.ya.zb点的坐标:b.xb.yb.za,b两点的距离是:

3、distance(a,b)max) max=ai; if(aimin) min=ai; aver+=ai; aver-=max+min; return aver/5;void sort(P p3) int i,j; P a; for(i=0;3; for(j=i+1;jj+) /原程序:for(j=0;j+) if(pi.averpj.aver)/原程序: if(pi.averPERSONi.scorej; PERSONi.aver=delmaxmin(PERSONi.score); sort(PERSON);比赛成绩如下PERSONi.name coutPERSONi.scorejPERSO

4、Ni.aver第二周 上机题1.查找并输出同时出现在两个一维数组中的整数,每个一维数组中的元素均按升序排列,并且每个数组中的元素没有重复值。函数int coincidence_count ( int *a , int *b; int *c) 按上述要求在a数组和b数组上查找,将找到的数据保存到c所指向的的数组中。a数组中的数据:1,2,4,8,10,12,13,14,16,18b数组中的数据:3,4,7,8,9,10,12,13,16,19int coincidence_count(int *a,int*b,int *c);void print(int *d,int n); int a=1,2

5、,4,8,10,12,13,14,16,18; int b=3,4,7,8,9,10,12,13,16,19,c10; int k=coincidence_count(a,b,c);原始数据:n 数组a: print(a,10);n 数组b: print(b,10);n结果显示: n 数组c: print(c,k);int coincidence_count ( int*a,int*b,int*c) int *pa=a,*pb=b,*pc=c; while(paa+10 & pbb+10) if(*pa*pb)pa+; else if(*pb*pa) pb+; else *pc+=*pa+;

6、return (pc-c);void print(int *d,int n) int *pd=d; while(pdd+n)*pd+*pa+; max_min(a,&max,&min);max=amax 在数组中位置是:maxmin=aminminmax)max=*a,*pa=i; else if(*amin)min=*a,*pb=i;附加题:3.25个人围成一个圈,从第1个人开始顺序报号(1,2,3),凡报号为3和3的倍数者退出圈子,找出最后留在圈子中的人原来的序号。函数void seek( int *a , int n, int *pn) 按上述要求在a数组,找出最后留在圈子中的人原来的序

7、号并返回。主函数是:void main( )int n=3;int num;int a25,*p=a;for(int i=0;25; i+) pi=i+1;seek( a,n ,&num);cout” 最后留在圈子中的人原来的序号是: ”num void seek( int*a,int n,int *pn);int aNUM,*p=a;NUM;for(i=0;i+)coutsetw(3)ai;n最后留在圈子中的人序号是:num+1 1) for(i=0; if(ai=0) continue; if(k+%3=0) ai=0; num-; else *pn=i; if(ai!=0)cout第三周

8、上机题目题目:1从一个整型数组中删除所有小于数组元素平均值并且不是素数的那些整数。【编程要求】1)编写函数int del(int r , int n),计算r数组中前n个整数的平均值,删除数组中所有小于该平均值并且不是素数的那些数,函数返回r数组中剩余整数的个数。2)编写main函数,声明数组resource并用测试数据初始化,调用del函数处理数组resource中的数据,将resource数组中剩余的整数输出到屏幕。数组初始数据为: 17 5 6 18 8 28 17 5 18 28int del(int r , int n);int sh(int n); int resource=17,

9、5,6,18,8,28,n;6;resourcei n=del(resource,6);n运行结果:int del(int r , int n) int *p1=r,*p2=r,i=0; float avr=0; while(p1r+n)avr+=*p1+; avr/=6; p1=r;r+n) if(*p1avr & sh(*p1)=0) p1+;continue; *p2+=*p1+ ; return (p2-r);int sh(int n) int j; j=sqrt(n); for(int i=2;=j; if(n%i=0) break; if(i(j+1) return 0; retu

10、rn 1;2编程要求1)编写函数int find(char *a , char *b),函数被调用时,a指向的数组中已存储一个字符串,该字符串是一个包含了多个单词的英语句子。函数的功能找出字符数组a中字符串中最长的单词并存入b所指向的数组中,函数返回最长单词在字符串的起迭位置下标。2)编写main函数,接受键盘输入的一个英文句子。调用find函数找到该句子中最长的单词,将最长单词及其在字符串中的起始位置下标输出到屏幕。int find(char *a , char *b); char a80,b80; int n;请输入的一个英文句子: cin.getline(a,80);bn起始下标是:fi

11、nd(a,b)max) max=p1-p2; p3=p2; p2=p1; strncpy(b,p3,max); *(b+max)=0 return (p3-a);附加题3重新排列一维数组元素的顺序,使得左边的所有元素均为偶数并按由大到小的次序存放,右边的所有元素均为奇数并按由小到大的次序存放。数组原始数据为:17 15 10 14 16 17 19 18 13 12输出结果:18 16 14 12 10 13 15 17 17 191)编写函数void resort(int *x, int n),使得左边的所有元素均为偶数并按由大到小的次序存放,右边的所有元素均为奇数并按由小到大的次序存放。(

12、可根据编程需要增加函数)2)编写main函数,接受键盘输入数据,调用resort函数完成上述功能,并输出结果。void resort(int *x, int n);void sort(int *a,int n); int a10=0;请输入十个数据:i+)cini+) coutsetw(4) resort(a,10);n输出结果:void resort(int *x, int n) int a10,*i,*j,*pa=a,*px=x; while(pxx+10) *pa+=*px+; sort(a,10); i=x,j=x+9; for(pa=a;paa+10;) if(*pa%2=0) *i

13、+=*pa+; else *j-=*pa+;void sort(int *a,int n) int *i,*j,temp; for(i=a;a+n-1;a+n; if(*i*j) temp=*i,*i=*j,*j=temp;4【程序功能】生成一个n阶螺旋方阵,将其存放到一个二维数组中并输出。当n为5时,输出如下螺旋方阵:1)编写函数void rot( int matNN, int n) 生成一个n阶螺旋方阵,并存放到一个二维数组mat中;2)编写主函数,由主函数调用rot函数完成上述功能,并按行输出结果。#define N 7void rot( int matNN, int n); int a

14、NN=0,k=1; rot(a,N); int *p=a0; int n=1;p=&aN-1N-1;p+)setw(6)*p; if(k+%N=0)cout0) for(i=1;=4 & n0; if(i%2=1) x=-x;z=x;/(上下移动)向下-指针每次移动N位 向上-指针每次移动-N位 向左指针每次移动-1位 else n-;y=-y;z=y; /(左右移动)向右-指针每次移动+1位,向左-指针每次移动-1位 for(j=0;j+,p1+=z) *p1=num+; p1-=z; if(i%2=1)p1-=y; /调整起点位置 else p1-=x;第五周上机题目1编写一个求积分的函数

15、,该函数的原型如下: float Integral(int a, int b, float (*fun)(float); 该函数返回值为积分结果,形参a,b分别为积分上下限,fun是被积函数。 1)积分算法:将积分区域划分为若干个小区间,求出所有小区间中被积函数下的面积之和即为函数在积分区域内的积分值;小区间面积可用梯形近似;2) 用积分函数分别求解y=x2和y=2x+1两个函数在0,1区域内的积分值。float f1(float x) return x*x;float f2(float x) return (2*x+1);float Integral(int a, int b, float

16、(*fun)(float);第一个积分值:Integral(0,1,f1)第二个积分值:Integral(0,1,f2)float Integral(int a, int b, float (*fun)(float) float h,y; y=(fun(a)+fun(b)/2; h=(b-a)/1000.0; for(i=1;1000;i+)y+=fun(h*i); return (y*h);2编程题(20分)1)编写函数int fun(long *x),找出所有满足以下特性的六位整数:它是一个完全平方数(完全平方数是指该数是某个整数的平方);该数同时也是回文数(回文数是指该数等于它的反序数)。例如,是836的平方并且是回文数,因此是满足所给条件的六位整数。将所有满足上述条件的六位整数存入x指向的数组中,函数返回x指向的数组中整数的个数。2)编写main函数,声明result数组,调用fun函数将所有满足条件的六位整数存入result数组中,将result数组中的数据

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1