第一章作业答案.
1.编写程序,将华氏温度转化为摄氏温度:公式:C=(5/9)*(F-32)程序代码:
#include
using namespace std;
void main()
{float F,C;
cout<<"Please input F:";
cin>>F;
C=5*(F-32)/9.0;
cout<<"C="< } 运行结果: 2.编写程序,输入圆柱体的半径r和高h,计算圆柱体的体积。程序代码: #include using namespace std; #define PI 3.14159 void main() {float r,h,v; cout<<"Please input r h:"; cin>>r>>h; v=PI*r*r*h; cout<<"v="< } 运行结果: 3.输入三角形的三条边a,b,c,利用海伦公式计算三角形的面积area.若则area= 程序代码: #include #include using namespace std; void main() {float a,b,c,p,area; cout<<"Please input a b c:"; cin>>a>>b>>c; if((a+b>c)&&(b+c>a)&&(a+c>b)) {p=(a+b+c)/2.0; area=sqrt(p*(p-a)*(p-b)*(p-c)); cout<<"area="< } else cout<<"input error!"< 运行结果: 4.输入a,b,c的值,求一元二次方程: 的解。 程序代码: #include #include using namespace std; void main() {float a,b,c,p,x1,x2; cout<<"Please input a b c:"; cin>>a>>b>>c; p=b*b-4*a*c; if(p>=0) {x1=(-b+sqrt(p))/(2*a); x2=(-b-sqrt(p))/(2*a); cout<<"x1="< cout<<"x2="< } else cout<<"NO real root!"; } 运行结果 第二章作业答案 1.输入一个整数,计算该数的阶乘。 程序代码: #include using namespace std; void main() {int i,n,p=1; cin>>n; for(i=1;i<=n;i++) p=p*i; cout< } 运行结果: 2.连续输入若干个整数,输入0结束。统计其正整数的个数,并计算其中正整数的总和、平均值并输出。 程序代码: #include using namespace std; void main() {int a,n=0; float avg,sum=0; do {cin>>a; if(a>0){n++;sum+=a;} }while(a!=0); avg=sum/n; cout<<"n="< cout<<"avg="< cout<<"sum="< } 3.输出所有的水仙花数。所谓“水仙花数”是一个三位数,其各位数字的立方和等于该数本身。如153=13+53+33 程序代码: #include using namespace std; void main() {int a,b,c,n; for(n=100;n<1000;n++) {a=n%10; b=n%100/10; c=n/100; if(n==a*a*a+b*b*b+c*c*c) cout< } } 运行结果: 第三章作业答案 1.编写程序输出两个数的最大公约数和最小公倍数。 2.计算100---300之内所有素数的和。 3.计算s=1-1/3+1/5-1/7+…1/99 4. N是一个四位数,它的9倍恰好是其反序数(例如:123的反序数是321),求N的值。 第一题: 程序代码: //用辗转相除法求最大公约数; #include using namespace std; void main() {int m,n,r,temp; cin>>m>>n; temp=m*n; while(r=m%n) {m=n; n=r; } cout<<"最大公约数="< 运行结果: 第二题: 程序代码: #include using namespace std; void main() {int n,i,s=0; for(n=100;n<300;n++) {for(i=2;i if(n%i==0)break; if(i==n)s+=n; } cout<<"s="< } 运行结果: 第三题: 程序代码: #include {int n=1; float s=0,f=1,p; for(n=1;n<100;n+=2) {p=f/n; s=s+p; f=-f; } cout<<"s="< 运行结果: 第四题: 程序代码: #include {int n,a,b,c,d; for(n=1000;n<10000;n++) {a=n/1000; //千位 b=n%1000/100;//百位 c=n%100/10; //十位 d=n%10; //个位 if(9*n==d*1000+c*100+b*10+a) cout< } } 运行结果: 第四次作业答案 1. 编写两个函数,分别计算两个整数的最大公约数和最小公倍数, 并在主函数中调用该函数,并输出结果。 2. 编写一个判断素数的函数,函数原型为:int isprime(int n),在主 函数中调用该函数,计算100—1000之间所有素数的和。 3. 编写一个函数,f(n)=,并在主函数中输出f(10)的值。 (说明自然对数ln的函数原型为double log(float x) . 4. 编写一个计算阶乘的函数,函数原型为int fac(int n),在主函数中 调用该函数,计算: S=M!+N! . 第一题: 程序代码: #include using namespace std; //求最大公约数 int gcd(int m,int n) {int r; while(r=m%n) { m=n;n=r; } return n; } //求最小公倍数 int lcd(int m,int n) {return m*n/gcd(m,n); } void main() {int a,b; cin>>a>>b; cout<<"最大公约数为:"< } 运行结果: 第二题: 程序代码: #include using namespace std; //判断素数的函数,若n为素数,函数返回1,否则返回0;int isprime(int n) {int i; for(i=2;i if(n%i==0)return 0; return 1; } void main() {int i,s=0; for(i=100;i<1000;i++) if(isprime(i))s=s+i; cout<<"s="< } 运行结果: 第三题: 程序代码: #include #include using namespace std; double f(int n) {int i; double s=0; for(i=2;i<=n;i++) s=s+log(i); return sqrt(s); } void main() { cout< } 运行结果: 第四题: 程序代码: #include using namespace std; //用递归编写计算阶乘的函数int fac(int n) {if(n==0||n==1)return 1; else return n*fac(n-1); } void main() {int M,N,s; cin>>M>>N; s=fac(M)+fac(N); cout< } 运行结果: 第五章 第六次上机内容 1、定义一个3行4列的数组,计算所有数据的平均值,并输出最大 值和最小值和它的行号和列号。 2、编写程序,实现一个一维数组的反序存放。 3、用选择排序法实现10整数由小到大排序。 4、用冒泡法实现10整数由大到小排序。 第一题: 程序代码: #include void main() {int a[3][4]={{12,6,25,10},{14,9,20,16},{30,22,5,21}}; int i,j,m,n,k,l,max,min; max=min=a[0][0]; m=n=0; for(i=0;i<3;i++) for(j=0;j<4;j++) if(a[i][j]>max){max=a[i][j];m=i;n=j;} else if(a[i][j] cout<<"行号:"< cout<<"行号:"< } 运行结果: 第二题: 程序代码: #include #define N 6 void main() {int a[N]={12,10,20,21,30,25}; int i,t; for(i=0;i {t=a[i];a[i]=a[N-i-1];a[N-i-1]=t;} for(i=0;i cout< cout< } 运行结果: 第三题: 程序代码: #include #define N 10 //选择排序 void main() {int a[N]={30,21,15,38,25,35,18,28,45,20}; int i,j,t,k; for(i=0;i {k=i; for(j=i+1;j if(a[j] if(k!=i){t=a[i];a[i]=a[k];a[k]=t;} } for(i=0;i cout< cout< } 运行结果: 第四题: 程序代码: #include #define N 10 //冒泡排序,由大到小排序 void main() {int a[N]={30,21,15,38,25,35,18,28,45,20}; int i,j,t,k; for(i=0;i {k=0; for(j=0;j if(a[j] {t=a[j];a[j]=a[j+1];a[j+1]=t;k=1;} if(k==0)break; } for(i=0;i cout<