北邮C++ 实验四
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验四函数与数组的应用
【实验目的】
1.进一步掌握数据类型变量和常量的应用、运算符与表达式的应用、程序基本结构的应用。
2.熟悉定义函数的方法、函数实参和形参的对应关系以及“值”传递的方式。
3.掌握全局变量和局部变量的概念和使用方法。
4.理解并运用调用、递归调用、内联、重载和默认参数的函数,掌握函数调用的内部实现
机制。
5.学会使用头文件,理解多文件结构,理解编译预处理的概念。
【实验要求】
1.看懂讲义第三、四、五章所给出的典型例题,并在其上进行简单的修改,体会并理解所涉及到的内容。
2.完成实验所给出的题目,注意参照课本上的相应内容。
3.掌握编译器的调试功能,学会单步和设断点调试程序的方法。
【实验内容】
1.设计一个程序,用户输入一个整数,然后计算此数的绝对值、平方根、立方、自然对数值。
提示:绝对值函数:abs( );平方根:sqrt( );立方:pow( );自然对数:log( )
程序:
#include<iostream>
#include<cmath>
using namespace std;
void main()
{
int a;
float pow(int a);
cout<<"please input a mumber"<<endl;
cin>>a;
cout<<"jueduizhi is"<<abs(a)<<endl;
cout<<"pingfanggen is"<<sqrt(a)<<endl;
cout<<"lifang is"<<pow(a)<<endl;
cout<<"ziranduishu is"<<log(a)<<endl;
}
float pow(int a)
{
float sum;
sum=a*a*a;
return sum;
}
2.已知有10个常数21,56,178,9,21,70,206,90,16,88,并按照从小到大的顺序打印出来。
程序:
#include<iostream>
#include<cmath>
using namespace std;
void main()
{
int const N=10;
int shuzi[N]={21,56,178,9,21,70,206,90,16,88};
for(int j=0;j<10;j++)
{
for(int i=0;i<10;i++)
{
if(shuzi[i]<shuzi[i+1])
continue;
else
{
int k;
k=shuzi[i];
shuzi[i]=shuzi[i+1];
shuzi[i+1]=k;
}
}
}
for(j=0;j<10;j++)
{
cout<<shuzi[j]<<" ";
}
}
3.编一个程序验证哥德巴赫猜想,任何一个充分大的偶数(大于等于6)总可以表示成两个素数之和。
要求编一个求素数的函数prime(),它有一个int型参数,当参数值为素数时返回1,否则返回0。
程序:
#include<iostream>0
using namespace std;
void main()
{
int a;
cin>>a;
int prime(int a);
cout<<prime(a);
}
int prime(int a)
{
for(int i=2;i<a;i++)
{
if(a%i==0)
return 0;
else
return 1;
}
}
4.有一个3 X 4的矩阵,设计一个函数完成求其中的最大元素。
程序:
#include<iostream>
#include<cmath>
using namespace std;
void main()
{
const int a=3,b=4;
int o[a][b]={1,2,3,4,
5,6,7,8,
9,10,11,12};
int MAX=o[0][0];
int c=0;
int d=0;
for(int i=0;i<3;i++)
{
for(int j=0;j<4;j++)
{
if(MAX<o[i][j])
{
MAX=o[i][j];
c=i;
d=j;
}
}
}
cout<<o[c][d];
}
5.编一个程序,输入五个学生的学号(2006001~2006005)、语文成绩、英语成绩、数学成绩等数据,然后输出这五个学生的成绩表,并输出总分最高的学生学号和总分。
程序:
#include<iostream>
#include<cmath>
using namespace std;
struct student
{
long num;
float yuwenscore;
float shuxuescore;
float yingyuscore;
};
student stu[5]={{2006001,80,90,75},
{2006002,59,90,68},
{2006003,98,97,95},
{2006004,64,58,79},
{2006005,89,54,76}};
void main()
{
for(int i=0;i<5;i++)
{
cout<<stu[i].num<<" "<<stu[i].yuwenscore<<" "<<stu[i].shuxuescore<<" "<<stu[i].yingyuscore;
cout<<endl;
}
float sum1=stu[0].yuwenscore+stu[0].shuxuescore+stu[0].yingyuscore;
float sum2=stu[1].yuwenscore+stu[1].shuxuescore+stu[1].yingyuscore;
float sum3=stu[2].yuwenscore+stu[2].shuxuescore+stu[2].yingyuscore;
float chengji[3]={sum1,sum2,sum3};
float MAX=chengji[0];
int a=0;
for(int t=0;t<3;t++)
{
if(MAX<chengji[t])
{
MAX=chengji[t];
a=t;
}
}
cout<<"成绩最高的学生的学号和总分是"<<stu[t-1].num<<" "<<chengji[t];
}
【实验报告】
按实验题目的要求写出程序清单及运行结果。