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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

C上机作业答案讲解.docx

1、C上机作业答案讲解 第一章作业答案1. 编写程序,将华氏温度转化为摄氏温度:公式:C=(5/9)*(F-32)程序代码:#includeusing namespace std;void main()float F,C; coutF; C=5*(F-32)/9.0; coutC=Cendl;运行结果:2.编写程序,输入圆柱体的半径r和高h,计算圆柱体的体积。程序代码:#includeusing namespace std;#define PI 3.14159void main()float r,h,v; coutrh; v=PI*r*r*h; coutv=vendl;运行结果:3.输入三角形的三

2、条边a,b,c,利用海伦公式计算三角形的面积area.若 则area= 程序代码:#include#includeusing namespace std;void main()float a,b,c,p,area; coutabc; if(a+bc)&(b+ca)&(a+cb) p=(a+b+c)/2.0; area=sqrt(p*(p-a)*(p-b)*(p-c); coutarea=areaendl; else coutinput error!endl;运行结果:4.输入a,b,c的值,求一元二次方程: 的解。程序代码:#include#includeusing namespace std

3、;void main()float a,b,c,p,x1,x2; coutabc; p=b*b-4*a*c; if(p=0) x1=(-b+sqrt(p)/(2*a); x2=(-b-sqrt(p)/(2*a); coutx1=x1endl; coutx2=x2endl; else coutNO real root!;运行结果第二章作业答案1. 输入一个整数,计算该数的阶乘。程序代码:#includeusing namespace std;void main()int i,n,p=1; cinn; for(i=1;i=n;i+) p=p*i; coutn!=pendl;运行结果:2. 连续输入

4、若干个整数,输入0结束。统计其正整数的个数,并计算其中正整数的总和、平均值并输出。程序代码:#includeusing namespace std;void main()int a,n=0; float avg,sum=0; do cina; if(a0)n+;sum+=a; while(a!=0); avg=sum/n; coutn=nendl; coutavg=avgendl; coutsum=sumendl;3. 输出所有的水仙花数。所谓“水仙花数”是一个三位数,其各位数字的立方和等于该数本身。如153=13+53+33程序代码:#includeusing namespace std;v

5、oid main()int a,b,c,n; for(n=100;n1000;n+) a=n%10; b=n%100/10; c=n/100; if(n=a*a*a+b*b*b+c*c*c) coutnendl; 运行结果:第3章作业答案1. 编写程序输出两个数的最大公约数和最小公倍数。2. 计算100-300之内所有素数的和。3. 计算s=1-1/3+1/5-1/7+1/994. N是一个四位数,它的9倍恰好是其反序数(例如:123的反序数是321),求N的值。第一题:程序代码:/用辗转相除法求最大公约数;#includeusing namespace std;void main()int

6、m,n,r,temp; cinmn; temp=m*n; while(r=m%n) m=n; n=r; cout最大公约数=nendl; cout最小公倍数=temp/nendl;运行结果:第二题:程序代码:#includeusing namespace std;void main()int n,i,s=0; for(n=100;n300;n+) for(i=2;in;i+) if(n%i=0)break; if(i=n)s+=n; couts=sendl;运行结果:第三题:程序代码:#includeusing namespace std;void main()int n=1; float s

7、=0,f=1,p; for(n=1;n100;n+=2) p=f/n; s=s+p; f=-f; couts=sendl;运行结果:第四题:程序代码:#includeusing namespace std;void main()int n,a,b,c,d; for(n=1000;n10000;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) coutnendl; 运行结果:第四次作业答案1. 编写两个函数,分别计算两个整数的最大公约数和最小公倍数,并在主函数中调用

8、该函数,并输出结果。2. 编写一个判断素数的函数,函数原型为: int isprime(int n),在主函数中调用该函数,计算1001000之间所有素数的和。3. 编写一个函数,f(n)= ,并在主函数中输出f(10)的值。(说明自然对数 ln的函数原型为 double log(float x) .4. 编写一个计算阶乘的函数,函数原型为 int fac(int n),在主函数中调用该函数,计算:S=M!+N! .第一题:程序代码:#includeusing namespace std;/求最大公约数int gcd(int m,int n)int r; while(r=m%n) m=n;n=

9、r; return n;/求最小公倍数int lcd(int m,int n)return m*n/gcd(m,n);void main()int a,b; cinab; cout最大公约数为:gcd(a,b)endl; cout最小公倍数为:lcd(a,b)endl;运行结果:第二题:程序代码:#includeusing namespace std;/判断素数的函数,若n为素数,函数返回1,否则返回0;int isprime(int n)int i; for(i=2;in;i+) if(n%i=0)return 0; return 1;void main()int i,s=0; for(i=

10、100;i1000;i+) if(isprime(i)s=s+i; couts=sendl;运行结果:第三题:程序代码:#include#includeusing 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() coutf(10)endl;运行结果:第四题:程序代码:#includeusing namespace std;/用递归编写计算阶乘的函数int fac(int n)if(n=0|n=1)return 1; else return

11、 n*fac(n-1);void main()int M,N,s; cinMN; s=fac(M)+fac(N); coutM!+N!=sendl;运行结果:第五章第六次上机内容1、 定义一个3行4列的数组,计算所有数据的平均值,并输出最大值和最小值和它的行号和列号。2、 编写程序,实现一个一维数组的反序存放。3、 用选择排序法实现10整数由小到大排序。4、 用冒泡法实现10整数由大到小排序。第一题:程序代码:#includevoid main()int a34=12,6,25,10,14,9,20,16,30,22,5,21; int i,j,m,n,k,l,max,min; max=min

12、=a00; m=n=0; for(i=0;i3;i+) for(j=0;jmax)max=aij;m=i;n=j; else if(aijmin)min=aij;k=i;l=j; coutmax=maxendl; cout行号:m列号:nendl; coutmin=minendl; cout行号:k列号:lendl;运行结果:第二题:程序代码:#include#define N 6void main()int aN=12,10,20,21,30,25; int i,t; for(i=0;iN/2;i+) t=ai;ai=aN-i-1;aN-i-1=t; for(i=0;iN;i+) couta

13、i ; coutendl;运行结果:第三题:程序代码:#include#define N 10/选择排序void main()int aN=30,21,15,38,25,35,18,28,45,20; int i,j,t,k; for(i=0;iN-1;i+) k=i; for(j=i+1;jN;j+) if(ajak)k=j; if(k!=i)t=ai;ai=ak;ak=t; for(i=0;iN;i+) coutai ; coutendl;运行结果:第四题:程序代码:#include#define N 10/冒泡排序,由大到小排序void main()int aN=30,21,15,38,

14、25,35,18,28,45,20; int i,j,t,k; for(i=0;iN-1;i+) k=0; for(j=0;jN-i-1;j+) if(ajaj+1) t=aj;aj=aj+1;aj+1=t;k=1; if(k=0)break; for(i=0;iN;i+) coutai ; coutendl;运行结果:第七次作业1.定义一个二维数组int a34,分别用指针法和下标法输出其内容。2.用数组作为函数参数,并通过函数调用还回最大值,最小值和平均值。函数原型维: void fun(int a10, int *max,int *min,float *avg)3.编写一个函数void

15、fun(int a,int n),将a中的n个元素按反序存放,在main函数中调用该函数,分别用数组和指针作为实参。4.用冒泡法或选择法编写一个排序的函数,然后在主程序中调用该函数实现10个整数的排序。第一题程序代码:#includevoid main()int a34=1,2,3,4,5,6,7,8,9,10,11,12; int i,j; int *p; int (*pp)4;/用下标法实现; for(i=0;i3;i+) for(j=0;j4;j+) printf(%3d,aij); printf(n); /用列指针实现; p=&a00; for(i=0;i12;i+) printf(%

16、3d,*(p+i); printf(n); /用行指针实现; pp=a; for(i=0;i3;i+) for(j=0;j4;j+) printf(%3d,*(*(pp+i)+j); printf(n);运行结果截图:第二题:程序代码:#includevoid fun(int a10, int *max,int *min,float *avg)int i,s=0; *max=*min=a0; for(i=0;i10;i+) if(*maxai) *min=ai; s+=ai; *avg=s/10.0;void main()int a10=10,21,8,22,40,23,32,26,30,12

17、; int max,min; float avg; fun(a,&max,&min,&avg); printf(max=%dn,max); printf(min=%dn,min); printf(avg=%6.2fn,avg);运行结果截屏:第三题:程序代码:#includevoid fun(int a,int n)int i,t; for(i=0;in/2;i+) t=ai;ai=an-i-1;an-i-1=t;void main()int a6=20,12,6,21,29,15; int *p,i; /用数组作为函数的实参; printf(原先数组的序列:n); for(i=0;i6;i+

18、) printf(%4d,ai); printf(n); printf(用数组作为实参,交换后的序列:n); fun(a,6); for(i=0;i6;i+) printf(%4d,ai); printf(n); /用指针作为函数的实参 printf(用指向数组的指针作为实参,再次交换后的序列:n); p=a; fun(p,6); for(i=0;i6;i+) printf(%4d,ai); printf(n);运行结果截屏:第四题:程序代码:#include/用选择法编写数组排序函数,按从小到大顺序排序void sort1(int a,int n)int i,j,k,t; for(i=0;i

19、n-1;i+) k=i; for(j=i+1;jaj)k=j; if(k!=i)t=ai;ai=ak;ak=t; /用冒泡法排序,按从小到大顺序排序void sort2(int a,int n)int i,j,t,f; for(i=0;in;i+) f=1; for(j=0;jaj+1) t=aj;aj=aj+1;aj+1=t;f=0; if(f=1)break; void main()int a10=40,23,26,20,35,55,12,43,37,45; int i;printf(排序前的序列:n);for(i=0;i10;i+) printf(%4d,ai); printf(n);

20、printf(选择排序后的序列:n); sort1(a,10); for(i=0;i10;i+) printf(%4d,ai); printf(n冒泡排序后的序列:n); sort2(a,10); for(i=0;i10;i+) printf(%4d,ai); printf(n);运行结果截屏:第八次作业1. 设数组aN中已经有n个数并已按从小到大顺序排序。要求输入一个数x,将其插入到数组中,使数组仍然有序。#includeusing namespace std;void main()int a10=4,6,8,10,20; int i,j,x; cinx; for(i=0;ix)/ 寻找插入

21、点; for(j=9;ji;j-)/将元素向后移动一位; aj=aj-1; ai=x; /空出位置,插入元素x; break; for(i=0;i10;i+) coutai ;2. 编写函数int ff(char *s),判断s所指字符串是否为“回文串”,即前后对称。如abcba为回文串,若是返回1,否则返回0,并在主程序中调用该函数,对输入的字符串进行判断。#include#includeint ff(char *s)int n,i; n=strlen(s); for(i=0;iss; if(ff(ss)coutYES!endl; else coutNO!endl;3. 编写一个函数 voi

22、d strcp(char *s1,char *s2),将字符数组s1中下标为偶数的元素复制到另一个字符数组s2中。在主程序中调用该函数,输出这个字符串。#include/将字符串s1中下标为偶数的字符复制到s2中。void strcp(char *s1,char *s2)int i=0,j=0; for(i=0;s1i!=0;i+) if(i%2=0)s2j+=s1i; s2j=0;int main()char s=Nanchang!; char ss10; strcp(s,ss); coutsendl; coutssendl;return 0;4. 输入一行字符,统计其中字母,数字,空格和其

23、他字符的个数。#includeint main()char s100; int B=0,L=0,D=0,S=0,T=0,i; cin.getline(s,100,n); for(i=0;si!=0;i+) if(si=A&si=a&si=0&si=9)D+; else if(si= ) S+; else T+; cout大写字符个数:Bendl; cout小写字符个数:Lendl; cout数字字符个数:Dendl; cout空格字符个数:Sendl; cout其他字符个数:Tendl; return 0;第九次作业1、编写一个程序,采用类计算n! ,并输出10!的值.#includeclass JSpublic: JS(int a)/构造函数; n=a; int fac()/计算N的阶乘; int i,p=1; for(i=1;in;i+) p=p*i; return p; private: int n;int main()JS obj(10);/定义对象; int s; s=obj.fac();/调用对象的方法计算阶乘; coutsendl; return 0;2、定义并实现一个矩形类,有长宽两个属性,定义一个构造函数初始化对象,用成员函数GetS()、GetL分别计算其面积和周长

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

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