C语言重要习题例题.ppt_第1页
C语言重要习题例题.ppt_第2页
C语言重要习题例题.ppt_第3页
C语言重要习题例题.ppt_第4页
C语言重要习题例题.ppt_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1. 单分支选择结构,例5.3 输入一个整数求绝对值,#include void main () int a,absa; printf (“Enter one number: “); scanf (“%d“, ,2. 双分支选择结构(if/else结构),使用双分支结构改写例题5.3 main () int a,absa; printf (“Enter one number: “); scanf (“%d“, ,#include void main() int year, leap; scanf(“%d“,例5.5写程序,判断某一年是否是闰年,例给出公元某年,判断该年是否为闰年 分析:判断闰年的方法如下:(满足下列条件之一) (1)若公元年数是4的倍数,不是100的倍数,为闰年 (2)若公元年数是4、400的倍数,为闰年,main () int year, a, b; do printf (“Enter a year number: “); scanf (“%d“, /*循环结束条件判断,year为非正常值*/ ,例 计算n!=123n。 #include voidmain () int i,n; long p; /*阶乘值可能超过整数表示范围,p定义成长整型*/ printf (“Please enter n: “); scanf (“%d“, /*以长整型格式输出结果*/ ,请思考:(1)若要打印出从1到n之间的所有整数的阶乘值,那么,程序如 何修改呢? (2)若要求1!+2!+3!+n!,程序如何修改?,用递归方法计算n的阶乘,5!4!5,4!3!4,.,1!1,float fac (int n) float f; if(n0) printf(“n0, data error!”); else if(n=0|n=1) f=1; else f=fac(n-1)*n; return f; ,补充例题 输入两个正整数,求其最大公约数和最小公倍数 例如 18 ,12 最大公约数是6 ,最小公倍数是18*12/6=36 算法:求最大公约数可采用辗转相除法(欧几里德算法),main() int a,b,n1,n2,t printf (“Enter n1,n2:n“); scanf (“%d,%d“, ,main () long f1=1,f2=1,f; /* 定义长整型数 */ int i; printf(“%12ld %12ldn”,f1,f2); /* 输出数列的前两个初值 */ for (i=3; i=40; i+) f = f1 + f2; printf(“%12ld “,f); /* 输出长整型数 */ if (i%2 = 0) printf(“n”); /* 控制输出格式,2个数/行 */ f1 = f2; f2 = f; ,6.7 求Fibonacci数列1,1,2,3,5,8,的前40个数,一维数组程序举例,7.2 用数组来处理Fibonicci数列的前20项(1,1,2,3,5,8,13,21) F1 = 1 n = 1 F2 = 1 n = 2 Fn = Fn-1 + Fn-2 n 3 程序: main () int i; int f20 = 1,1; /* f1、f2已知 */ for(i=2; i20; i+) fi = fi-1 + fi-2; for(i=0; i20; i+) if (i%5 = 0) printf(“n”); /*每行输出5个项*/ printf(“%12d“,fi); ,main() int a11; int i,j,t; printf(“input 10 number:n“); for(i=1;iai+1) t=ai;ai=ai+1;ai+1=t; printf(“the sorted numbers:n“); for(i=1;i11;i+) printf(“%d”,ai); /*输出数组*/ ,用起泡法对n个数排序,#include void main() void sort(int array,int ); int a10,; printf(enter the array); for(;) scanf(,); sort(a, 10); printf(the sorted array); for(;) printf(,); printf(); ,例 8.13 用选择法对数组中10个整数按由小到大排序。,void sort(int array,int )/*排序函数*/ int ,; for(;) ; for(;) if(array array) =; =arrayk; arrayk=arrayi; arrayi=t; ,# define N 11 main () int i,j,aNN; for(i=1;iN;i+) aii=1; ai1=1; for (i=3;iN;i+) for (j=2;j=i-1;j+) aij= ai-1j-1+ai-1j; for (i=1;iN;i+) for(j=1;j=i;j+) printf (“%6d“,aij); printf (“n“); printf (“ n “); ,例 编程打印如下的杨辉三角形(要求打印出十行),补充例题:输入a,b,c三个整数,要求输出其中最大值和最小值(用函数完成) int fmax(int,int,int); int cmin(int,int,int); int max(int,int); int min(int,int); main() int a,b,c, cmax,cmin; printf(“please enter the numbers: a,b,c”); scanf(“%d,%d,%d”, ,int fmin(int x,int y,int z) int k; k=min(x,min(y,z); return k; ,int min(int x,int y) int k; k=xy?x:y; return k; ,#include main ( )

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论