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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

南通大学C++课程设计答案.docx

1、南通大学C+课程设计答案2013年VC+ 课程设计1、任意输入一个4位自然数。调用一个自定义函数输出该自然数的各位数字组成的最大的数。#includevoid f4(int a)int b4; int j; b0=a%10; b1=(a/10)%10; b2=(a/100)%10; b3=a/1000; for(int q=0;q4;q+) for(int i=q+1;ibq) j=bq; bq=bi; bi=j; for(int p=0;p4;p+) coutbp;int main()int a; couta; while(a1000) couta; f 4(a);2、输入一个三位整数,输出

2、其各位数字组成的最大数。#includevoid f4(int a)int b3; int j; b0=a%10; b1=(a/10)%10; b2=(a/100)%10; for(int q=0;q3;q+) for(int i=q+1;ibq) j=bq; bq=bi; bi=j; for(int p=0;p3;p+) coutbp;int main()int a; couta; while(a99) couta; f 4(a);总结:本题主要是将各位数字放入数组中,再对它进行排序。编写函数drop用于判断自然数n是否是降序数,若是,则返回1,否则返回0,#includeint drop(

3、int n)int n1=n%10,n2;while(n=10)n/=10;n2=n%10;if(n2=n1)n1=n2;elsereturn 0;return 1;void main()int n;coutn;if(drop(n)coutn是降序数!n;elsecoutn不是降序数:n;本题主要思路主要是先求出各个位上的数字,再依次比较大小。3、设计一个程序,求出5100间的所有素数,要求每行输出5个素数,判断一个整数是否为素数要求用一个函数来实现。#include#includeint love (int a)for(int i=2;ia;i+) if(a%i=0)return 0;ret

4、urn 1;void main()int a=0;for(int b=5;b100;b+)if(love(b) if(a%5=0) coutn; coutbt; a+; 本题的主要思路:本题主要是考察判断一个数是否为素数的主要算法。要搞清楚课本上的素数的算法。4、下列程序求250之间所有素数的累加和。#include#includevoid main()int i,j,m,sum;for(sum=0,i=2;i50;i+)j=(int)sqrt(i);for(m=2;mj)sun+=i;coutsumendl;5,求阶乘#includeint fun(int n)int i,s;for(i=s

5、=1;in; s=0; for(k=0;k=n;k+) s+=fun(n); coutsendl;6.用牛顿的迭代法求一元方程的在x=1,5附近你的根,要求精度为10-8。#include#includeint love()float a=1.5; float b=3; float y; do y=(a+b)/2; if(2*pow(y,3)-4*pow(y,2)+3*b-6)0) a=y; else b=y while(fabs(a-b)pow(10,-8);return y;void main()cout方程的根为:n; coutlove();思路:本题主要是运用迭代法进行阶乘的运算。也需

6、要关注一下其他方法求阶乘7、编写程序,求过函数调用,求正整数m,n的最大公约数和最小公倍数。#includeint love(int a,int b)int t; if(ab) t=a; a=b; b=t; if(a%b=0) return b; love(b,a/b); void main()int a,b,c; couta; coutb; c=love(a,b); cout两个数的最大公约数是:c; cout两个数的最小公倍数:(a*b)/c;思路:本题主要运用的是牛顿的迭代法。8、.编写程序,通过函数调用,判断任一整数是否是回文数。#includebool love(char *p);v

7、oid main()char *i;couti;love(i);bool love(char *p)char *u;u=p;while(u)u+;u-;while(u=p)if(*u!=*p) return 0;p+;u-;return 1;总结:本题主要抓住用指针数组来进行回文数的判定。要注意指针数组和数组指针的区别。#includevoid delsame(char a,n)foe(int i=0;im-1;i+)if(ai=ai+1)for(int j=i+1;jm-1l;j+)aj=aj+1;m-;i-;void main()char *p;cout;2011年秋改错题:#includ

8、e#include#includeint primes25;int isPrimes(int n)for(int i=2;isqrt(n);i+) if(n%i=0)return 0; return 1;int fun(int i,int &j,int &k)int sum=0;j=k=0;while(kprimesi)j+; sum=0;elseif(sumprimesi)k+;elsereturn 1;return 0;void main()int i,j,low,high,count=0;for(i=2;i100;i+)if(!isPrimes(i)primescount+=i;cout

9、小于100的素数中满足条件的素数为:endl;for(i=0;icount;i+)if(fun(i,low,high)coutprimesi=;for(j=low;jhigh;j+)coutprimesj+;coutprimeshigh;试着定义一个类ID,实现根据某人的身份证号码判断其所在年份的虚岁年龄。#include#includeclass IDchar id19; int age;public: ID char(char *p) strcpy(id,p);age=0; int substr(char *p0,char n0,int n) int s=0; char *p=p0+n0;

10、 for(int i=0;in;i+) s=s*10+(*p-0); p+; return s;void fun(int y1)int y;y=subsr(id,6,4);cout指定年份:y1endl;age=y1-y+1;void print()cout身份证:idendl; cout虚岁年龄:ageendl;void main()int y; char str20; coutystr; ID test (str); test.fun(y); test.print();2011年秋改错题:#include#includevoid process(char *str,int &maxlen,

11、char *subs)char *ptr =str,c;int len;maxlen=0;while(*ptr)len=1;while(*ptr=*(ptr+1)len+; ptr+;if(lenmaxlen)maxlen=len; c=*ptr;ptr+;for(int i=0;imaxlen;i+)*(subs+i)=c;*subs=0;void main()char *text,subt100; int len; text=new char100; cout请输入字符:; cin.getline(text,100); process(text,len.subt); cout该字符串的最长

12、平台的长度为:lenendl; cout该字符串的最长平台:subtendl; deletetext;编程:定义一个类num,实现求大于整数m的最小的k个自反数,若将某个整数各位数字反序排列后得到的整数与原数相等,则称这个整数是自反数#includeclass NUMint n,m;public: NUM(int x=0) n=x; m=0; void decrease() int t=n,count=0; int a15; while(t) acount+=t%10;t=t/10; for(int i=0;icount-1;i+) for(int j=i+1;jcount;j+) if(ai

13、aj) int t=ai; ai=aj; aj=t; for(i=0;icount;i+) m=m*10+ai; void print()cout该数的降序数位:mendl;void main()int x;coutx;NUM n1(x);n1.decrease ();n1.print();2011年秋改错题:#include#includeint countStr(char *str,char *substr)int n=0; char *p,*r; while(*str) p=str; r=substr; while(*r) if(*r=.) r+; p+; else break; if(

14、*p+=.) n+; str+; return n;void main()char str80,subs5;int n;cout输入主串:;cin.getline(str,80);coutsubs;n=counStr(str,subs);cout子串在主串中出现的次数为:nendl;试着定义一个类,Num,其功能是求出1000以内的所有满足下列条件的整数:1,该整数是一个素数,2,其各位数字之和与它的平方数的各位数字之和相等。#includeclass NUMint *p,m,k;public: NUM(int t1,int t2) m=t1;k=t2; p=new int k; int isinv(int n) int s0=n,s1=0; while(s0) s1=s1*10+s0%10; s0/=10; if(s1=n) return 1; return 0; void fun()for(int i=0;ik;i+) cout*(p+i)t;coutendl;NUM ()delete p;void main()int m,k;coutmk;cout大于k个自反数为:;NUM test(m,k);test.fun();test,print();

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

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