1、c+实验教学班级:_11_ 学生学号:99_ 学生姓名:_张恒_实验日期:_ 实验地点: _7103_(机房) 指导教师签名:_ 实验成绩:_ 一、实验目的1掌握常用系统函数的功能及使用方法;2掌握自定义有返回值函数的概念、定义及使用方法。二、实验任务1、实现功能:根据键盘输入的数x,计算分段函数f(x)的值。(1) 主函数功能:从键盘输入数x,通过调用子函数得到计算结果并输出。(2) 子函数功能:定义有返回值函数,实现计算该分段函数值的功能。要求:求平方根和绝对值使用数学函数sqrt(x)、fabs(x)。(3) 输入输出格式请参考以下样张: 2、实现功能:110加减乘运算训练系统。(1)
2、主函数功能:随机产生一个110加减乘算术式(数字在110之间随机产生,运算符在加减乘中随机产生,如2+3=、8-4=、6*3=),要求用户输入计算结果,通过调用子函数得到正确答案,判断用户输入的计算结果是否正确并输出结论。(2) 子函数功能:定义有返回值函数,实现加减乘算术式的计算功能。(3) 输入输出格式请参考以下样张: 3. 实现功能:计算a的b次方与b的a次方的和。(1) 主函数功能:从键盘输入两个整数a、b(a0, b0),通过调用子函数计算a的b次方与b的a次方的和并输出结果。(2) 子函数功能:定义有返回值函数,实现计算a的b次方的功能。(3) 输入输出格式请参考以下样张: 4、实
3、现功能:求两个正整数的最大公约数、最小公倍数。(1) 主函数功能:从键盘输入两个正整数,通过调用两个子函数分别得到最大公约数、最小公倍数并输出结果。(2) 子函数1功能:定义有返回值函数,实现求两个正整数的最大公约数的功能。子函数2功能:定义有返回值函数,实现求两个正整数的最小公倍数的功能。(3) 输入输出格式请参考以下样张:5、实现功能:计算正整数mn之间所有完数之和。(1) 主函数功能:从键盘输入两个整数m、n(m0, n0, mn),通过调用子函数判断出mn之间所有完数,计算所有完数之和并输出结果。(2) 子函数功能:定义有返回值函数,实现判断正整数是否为完数的功能。(完数是指:该数所有
4、因子(不含自身)之和等于该数,如28=1+2+4+7+14)。(3) 输入输出格式请参考以下样张: 三、实验结果(源程序 + 注释)1.#include#includeusing namespace std;double zheng(double x);void main() double x,y; cout99 张恒endl; coutx; y=zheng(x); couty=y0) return(sqrt(x); else return(fabs(x); 2.#include#includeusing namespace std;int add(int m,int n);int minus
5、(int m,int n);int mul(int m,int n);void main() int x,y,hao,i=1; cout99 张恒endl; srand(time(NULL); hao=1+rand()%(3-1+1); x=1+rand()%(10-1+1); y=1+rand()%(10-1+1); switch(hao) case 1: cout请计算x+y=; add( x,y); case 2: cout请计算x-y=; minus( x,y); case 3: cout请计算x*yresult; if(m+n=result) cout计算正确!endl; retur
6、n(m+n); else cout计算错误!m+n=m+nresult; if(m-n=result) cout计算正确!endl; return(m-n); else cout计算错误!m-n=m-nresult; if(m*n=result) cout计算正确!endl; return(m*n); else cout计算错误!m*n=m*nendl; return(m*n);3.#includeusing namespace std;double zhang(double x,double y);void main() cout99 张恒endl; double a,b; coutab;
7、couta的b次方为:zhang(a,b)endl; coutb的a次方为:zhang(b,a)endl; couta的b次方与b的a次方的和为:zhang(a,b)+zhang(b,a)endl;double zhang(double x,double y) double sum=1,i=1; while(i=y) sum=sum*x; i=i+1; return(sum);4.#includeusing namespace std;int zhang(int x,int y);int heng(int x,int y);void main() cout99 张恒endl; int a,b;
8、 coutab; cout最大公约数:zhang(a,b)endl; cout最小公倍数:heng(b,a)endl; int zhang(int x,int y) int t,r; if(xy) t=x;x=y;y=t; r=x%y; if(r=0) coutp,q两数的最大公约数为:xendl; else while(r!=0) x=y; y=r; r=x%y; return(y); int heng(int x,int y) int sum=x; while(sum%y!=0) sum=sum+x; return(sum);5.#include using namespace std;int num(int a);void main() cout99 张恒endl; int m,n,t,s=0; coutm0):mn; for(t=m;t=n;t+) s=num(t)+s; coutmn之间所有完数之和为:sendl;int num(int a) int i,sum=0; for(i=1;ia;i+) if(a%i=0) sum=sum+i; if(a!=0&sum=a) return a; else return 0;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1