C程序设计复习题详解

上传人:ni****g 文档编号:552728884 上传时间:2023-04-15 格式:DOC 页数:19 大小:69.01KB
返回 下载 相关 举报
C程序设计复习题详解_第1页
第1页 / 共19页
C程序设计复习题详解_第2页
第2页 / 共19页
C程序设计复习题详解_第3页
第3页 / 共19页
C程序设计复习题详解_第4页
第4页 / 共19页
C程序设计复习题详解_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《C程序设计复习题详解》由会员分享,可在线阅读,更多相关《C程序设计复习题详解(19页珍藏版)》请在金锄头文库上搜索。

1、C+程序设计复习题详解1、求100999中的。所谓水仙花数是指一个三位数,它的每位数字的立方之和等于该数。例如,因为153135333,所以153为水仙花数。(P86.T19)#include using namespace std;int main ()int i,j,k,n; coutnarcissus numbers are:endl; for (n=100;n1000;n+) i=n/100; j=n/10-i*10; k=n%10; if (n = i*i*i + j*j*j + k*k*k) coutn ; coutendl;return 0; 2、从键盘里输入n个整数,然后对n个

2、整数从小到大排序后输出,要求n也从键盘输入。方法1#includeusing namespace std;int main()int i,j,n;int a100=1;coutn;cout输入要比较的数字:endl;for(i=0;iai;cout排序后的数字为:endl;for(j=0;jn-1;j+)for(i=0;iai+1)int t;t=ai;ai=ai+1;ai+1=t;for(i=0;in;i+)coutai ;coutendl;return 0;方法2#includeusing namespace std;struct Numberint num;Number *next;in

3、t main()void add(Number *);void output_num(Number *);void sort(Number *);Number *head=new Number;/初始化头指针head-next=NULL;add(head);coutendl你输入的要排序的数为:endl;output_num(head);sort(head);coutendl排序后的数为:endl;output_num(head);return 0;void add(Number *head)Number *p1=NULL,*p2=NULL;p1=head;for(;)cout请输入要排序的数

4、字,输入结束:p1-num;if(p1-num=0)break;p2=new Number;p1-next=p2;p1=p2;p1-next=NULL;void output_num(Number *head)Number *p=head;while(p-next!=NULL)coutnumnext;coutnext-next)!=NULL;)p2=p1-next; if(p1-num)(p2-num) temp.num=p1-num; p1-num=p2-num; p2-num=temp.num;bsort=false; p1=p1-next;if(bsort)break;3、求1+2+3+

5、100。(例3.10)#includeusing namespace std;int main()int i,sum=0;for(i=1;i=100;i+)sum=sum+i;coutsumendl;return 0;4、用下面公式求的近似值。/41-1/3+1/5-1/7+直到最后一项的绝对值小于10-7为止。(例3.12)#include#include#includeusing namespace std;int main()int s=1;double n=1,t=1,pi=0;while(fabs(t)1e-7)pi=pi+t;n=n+2;s=-s;t=s/n;pi=pi*4;cou

6、tpi=setiosflags(ios:fixed)setprecision(6)piendl;return 0;5、编写程序,判断某一年是否为闰年。(例3.8)#includeusing namespace std;int main()int year;bool leap;coutyear;if(year%4=0)if(year%100=0)if(year%400=0) leap=true;else leap=false;else leap=true;else leap=false;if(leap)coutyear is;elsecoutyear is not;cout a leap yea

7、r.endl;return 0;6、求数学式子:a+aa+aaa+.+aa.a的值,其中:a是一个数字,最后一项是一个由n个a构成的数字。如:2+22+222+2222+22222(此时,a为2,n为5),a和n由键盘输入。#includeusing namespace std;int main() int a,n,i,s=0,t=0; coutan; for(i=1;i=n;i+) t=t+a; s=s+t; a=a*10; couta+aa+aaa+.=sendl; return 0;7、有5个人坐在一起,问第5个人多少岁?他说比第4个人大两岁。问第4个人岁数,他说比第3个人大两岁。问第3

8、个人,又说比第2个人大两岁。问第2个人,说比第1个人大两岁。最后问第1个人,他说是10岁。请问第5个人多大?(例4.10)#includeusing namespace std;int age(int);int main()coutage(5)endl;return 0;int age(int n)int c;if(n=1) c=10;else c=age(n-1)+2;return c;8、写一个递归程序函数,求n!。(例4.11)#includeusing namespace std;int f(int);int main()int n;cinn;if(n0)coutn0,错误!endl;

9、elsecoutn!=f(n)endl;return 0;int f(int n)int i;if(n=1) i=1;if(n=2) i=2;else i=n*f(n-1);return i;9、分别利用非递归和递归的方法编写函数求斐波那契数列第 n 项。输出数列中前20个元素的值。(3.13)非递归法:#include #include using namespace std;int main()long f1,f2; int i; f1=f2=1; for(i=1;i=20;i+) coutsetw(12)f1setw(12)f2; if(i%2=0) coutendl; f1=f1+f2

10、; f2=f2+f1; return 0; 递归法:#include #include using namespace std;int f(int);int main()int i=20 ; for (i=1;i=20;i+)coutsetw(12)f(i) ;if(i%5=0) coutendl;return 0; int f(int n) int a; if(n=1|n=2) a=1;else a= f(n-1)+f(n-2); return a; 10、输入3个字符串,要求将字母按由小到大的顺序输出。(例5.11)#include#includeusing namespace std;int main()string string1,string2,string3,temp;coutstring1string2string3;if(string2string3) temp=string2;string2=string3;string3=temp;if(string1=string2) coutstring1 string2 string3endl;else if(string1=string3) coutstring2 string1 string3endl;else coutstring2 string3 string1endl;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 习题/试题

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号