C++上机题目及答案1

2020-04-14 03:11

第一周上机题

以下语句描述了包含数学成绩的学生信息结构体及其数组a:

struct student{ char name[20]; float math; }; student a[10] = {{\张三\李四\王五\int count=3; // 数组中包含的学生数

编写两个函数分别实现在a数组中添加和删除学生信息。 要求:

1) 原数组已按数学成绩排序(降序),添加和删除学生信息后数组应仍为降序;2)以下数据用于添加:{\赵二\ {\钱六\,{\孙七\,80} 3) 注意:添加,删除后count数据要相应变化。

#include #include

struct student{ char name[20]; float math; };

int count=3;

void add(student a[10]); void dele(student a[10]); void print(student a[]);

void main(){ student a[10] = {{\张三\李四\王五\ int n=0; do{ cout<<\学生信息处理系统..................\ <<\ 1-删除\ <<\ 2-增加\ <<\ 3-结束\\n\ <<\请选择: \ cin>>n; if(n==1) dele(a); else if(n==2) add(a) ; else cout<<\谢谢使用本系统!\\n\ }while(n!=3); }

1

1.

void add(student a[10]){ student stu; int i=0,n=count; cout<<\请输入需增加的学生信息(姓名,成绩): \ cin>>stu.name>>stu.math; while(stu.mathi;n--) a[n]=a[n-1]; //腾位置 a[i]=stu; //插入 count++; print(a); }

void dele(student a[10]){ char name[20]; int i=0,n=count; print(a); cout<<\请输入需删除学生的姓名: \ cin>>name; while(strcmp(name,a[i].name)!=0 && i=n) cout<<\查无此人!\\n\ else { for(;i

void print(student a[]){ cout<<\最新学生信息: \\n\ for(int i=0;i2. 定义描述三维坐标点(x,y,z)的结构体类型变量,完成坐标点的输入和输出,并求两坐标

点之间的距离。 要求:

编写函数求两坐标点之间的距离。 #include #include

struct point{ double x,y,z; };

2

double distance(point a,point b);

void main(){ point a,b; cout<<\请分别输入两个点的坐标(x,y,z):\\n\ cin>>a.x>>a.y>>a.z; cin>>b.x>>b.y>>b.z; cout<<\点的坐标:\ cout<<\点的坐标:\ cout<<\两点的距离是:\}

double distance(point a,point b){ double d; d=sqrt((a.x-b.x)*(a.x-b.x) +(a.y-b.y)*(a.y-b.y) +(a.z-b.z)*(a.z-b.z)); return d; }

3. 某市青年歌手大赛聘请7名评委打分,下列程序协助进行评分统计。函数delmaxmin

的功能是对一个选手的得分做以下计算:去掉一个最高分,去掉一个最低分,然后对剩余得分求平均分并保存。函数sort完成对n名选手的得分按平均分从高到低排序。 【测试数据与运行结果】

测试数据:程序中给定的初始化测试数据 运行结果:

li: 94 97 98 96 100 99 97 97.40

zhang: 96 97 98 98 100 97 96 97.20 zhou: 95 100 99 96 97 96 97 97.00 以下语句描述了包含数学成绩的学生信息结构体及其数组a: struct{ char player_name[20];

double score[7],aver;

}PERSON[3];

#include struct P{ char name[20]; double score[7],aver; }PERSON[3];

double delmaxmin(double a[7]){ double aver=0,sum=0,max,min; max=min=a[0]; for(int i=0;i<7;i++){ if(a[i]>max) max=a[i];

3

if(a[i]

void sort(P p[3]){ int i,j; P a; for(i=0;i<3;i++) for(j=i+1;j<3;j++) //原程序:for(j=0;j<3;j++) if(p[i].aver

void main(){ int i,j; cout<<\请输入比赛选手的比赛数据:\ for(i=0;i<3;i++){ cin>>PERSON[i].name; for(j=0;j<7;j++) cin>>PERSON[i].score[j]; } for(i=0;i<3;i++) PERSON[i].aver=delmaxmin(PERSON[i].score); sort(PERSON);

cout<<\比赛成绩如下\ for(i=0;i<3;i++){ cout<

25个人围成一个圈,从第1个人开始顺序报号(1,2,3……),凡报号为3和3的倍数者退出圈子,找出最后留在圈子中的人原来的序号。

要求:

函数void seek( int *a , int n, int *pn) 按上述要求在a数组,找出最后留在圈子中的人原

4

来的序号并返回。

主函数是: void main( ){

int n=3; int num;

int a[25],*p=a;

for(int i=0; i<25; i++) p[i]=i+1; seek( a,n ,&num);

cout<<” 最后留在圈子中的人原来的序号是: ”<

#include #define NUM 10 #include

void seek( int*a,int n,int *pn);

void main( ){ int n=3; int num;

int a[NUM],*p=a;

for(int i=0; i

for(i=0;icout<<\最后留在圈子中的人序号是: \}

void seek( int*a,int n,int *pn){ int num=NUM; int k=1; int i;

cout<<\游戏中.......\\n\ while(num>1){ for(i=0;i1.编程要求

1) 编写函数int find(char *a , char *b),函数被调用时,a指向的数组中已

存储一个字符串,该字符串是一个包含了多个单词的英语句子。函数的

5


C++上机题目及答案1.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:初中英语八种基本时态总结

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: