嵌入式系统导论C语言2

上传人:我** 文档编号:114666864 上传时间:2019-11-12 格式:PPT 页数:56 大小:87.50KB
返回 下载 相关 举报
嵌入式系统导论C语言2_第1页
第1页 / 共56页
嵌入式系统导论C语言2_第2页
第2页 / 共56页
嵌入式系统导论C语言2_第3页
第3页 / 共56页
嵌入式系统导论C语言2_第4页
第4页 / 共56页
嵌入式系统导论C语言2_第5页
第5页 / 共56页
点击查看更多>>
资源描述

《嵌入式系统导论C语言2》由会员分享,可在线阅读,更多相关《嵌入式系统导论C语言2(56页珍藏版)》请在金锄头文库上搜索。

1、嵌入式系统导论,C语言部分-程序设计,程序设计,程序设计的一般步骤: 1. 确定数据结构。 2. 确定算法。 3. 编程。 4. 调试。 5. 整理源程序并总结资料。,算法,所谓算法,是为解决某一特定的问题,所给出的一系列确切的、有限的操作步骤。 算法设计 程序实际上是用计算机语言所描述的算法。也就是说,依据算法所给定的步骤,用计算机语言所规定的表达形式去实现这些步骤,即为源程序。,在算法设计中应遵循的准则: (1) 可执行性。 (2) 确定性。 (3) 有穷性。 (4) 输入。 (5) 输出。,算法的描述,目前,对算法的描述,一般采用自然语言、一般流程图或N-S结构流程图。 常用流程图符号,

2、结构化程序设计的概念,结构化程序由3种基本结构组成:顺序结构、选择结构、循环结构。使用这基本结构编写的程序,称为结构化程序。,顺序结构流程图,选择结构流程图,循环结构流程图,结构化程序设计步骤,顺序程序设计,输入两个整数,交换他们的值 main() int a,b,n; scanf(“%d%d“,n=a; a=b; b=n; printf(“a=%d,b=%dn“,a,b); ,分支程序设计,if语句 格式:if(表达式) 语句 ; 例:求输入数据的绝对值 main() int x; scanf(“%d“,if (x0) x=-x; printf(“|x|=%d n“,x); ,if-else

3、语句 格式: if(表达式)语句1;else语句2; 例:输入一个整数,输出其符号 #include main() int x;,char c; scanf(“%d“, ,if-else语句嵌套 例:输入一个字符,此字符为数字输出YES,为字母输出NO,否则输出HELLO main() char ch; scanf(“%c“,if(ch=0 ,多分支语句:switch-case 格式:switch(表达式) case 常量1:语句组1; break; case 常量n:语句组n; break; default:语句组n+1; ,例:输入两个整数和一个运算符号,进行计算 main() char

4、ch; int i,j,m,n; scanf(“%d,%c,%d“,switch(ch) case +:m=i+j; printf(“%d %c %d = %dn“,i,ch,j,m); break; case -:m=i-j; printf(“%d %c %d = %dn“,i,ch,j,m); break;,case *:m=i*j; printf(“%d %c %d = %dn“,i,ch,j,m); break; case /:m=i/j; printf(“%d %c %d = %d“,i,ch,j,m); if (i%j) printf(“.%dn“,i%j); break;,def

5、ault:printf(“input error!n“); ,switch语句嵌套 例:设计一个把5分制转为百分制的程序 5分制: 5+, 5, 5-,4+,4,4-, 3, 2, 1 百分制: 100,90,85,80,75,70,60,60,60,main() char c1,c2; printf(“input score:“); scanf(“%c%c“,switch(c1) case 5:switch(c2) case +:printf(“score=100n“); break; case n:printf(“score=90n“); break; case -:printf(“sco

6、re=85n“); break; break;,case 4:switch(c2) case +:printf(“score=80n“); break; case n:printf(“score=75n“); break; case -:printf(“score=70n“); break; break;,case 3:printf(“score=60n“); break; case 2: case 1:printf(“score60n“); break;,default:printf(“input error!n“); ,循环程序设计,for语句 格式:for(表达式1;表达式2;表达式3)

7、语句 例:输入10个数据,求其平均数值 main() int i; float f,sum,ave;,sum=0; for(i=0;i10;i+) scanf(“%f“, ,while语句 格式:while(表达式)语句; 例:输入字符,直到回车键为止,统计输入字符个数。 #include main() int n;,char ch; n=0; while(ch=getchar()!=n) n+; printf(“number of char = %d n“,n); ,do-while语句 格式:do 语句 while(表达式) 例:用下列公式求圆周率 /4=1 - 1/3 + 1/5 1/7

8、 + 1/n;精度1/n的绝对值小于10-4时结束,#include main() float pi,x,i,n; pi=0; n=1; i=1.0;,do x=1/i*n; pi=pi+x; i=i+2; n=-1*n; while(fabs(x)=1e-4); printf(“pi=%fn“,4*pi); ,例:设计一个程序,求出1到100累加的和。 main() int i,sum; sum=0; i=0 ;,while(i100) i+; sum=sum+i; printf(“sum=%dn“,sum); ,循环嵌套: 例1:将100元钱换成面值为5元、1元、0.5元的钞票100张,要

9、求每种钞票不少于1张,问有几种组合。 main() int i,j,k; float n,sum; printf(“i j kn“);,for(i=1;i20;i+) for(j=1;j100;j+) for(k=1;k200;k+) n=i+j+k; sum=5*i+j+0.5*k; if(n=100 ,例2:输入一个数求其阶乘,输入负数结束。 main() int n,i; unsigned long mul; scanf(“%d“,while (n=0) if(n0) mul=1; for(i=n;i0;i-) mul=mul*i; else mul=1; printf(“%d!=%ld

10、 n“,n,mul); scanf(“%d“, ,例:输出101到200的质数。 main() int flag,n,i,m; for(n=101;n201;n+) flag=1; i=2;,do m=n%i; i+; if(m=0) flag=0; while(m!=0 ,例:求两个数的最大公约数 main() int m,n,r; scanf(“%d%d“, ,r=m%n; while(r!=0) m=n; n=r; r=m%n; printf(“%dn“,n); ,一维数组,数组的定义方式: int a10; int r3=1,2,3; int s=1,2,3; 当int str5=1,

11、2,3时,str3,str4为0,char str110; char str23=a,b,c; char str33=“abc”; char str4=a,b,c; char str55=a,b,c; str53为0,例:输入10个字符,反向输出 main() int i; char a10; for(i=0;i=0;i-) printf(“%c“,ai); ,例:输入非波那契数列 f(0)=1,f(0)=1, f(n)=f(n-1)+f(n-2) main() int n,f20=1,1;,for(n=2;n20;n+) fn=fn-1+fn-2; for(n=0;n20;n+) if(n%

12、5=0)printf(“n“); printf(“%10d“,fn); ,例:插入排序 main() /* int string18=9,38,65,97,76,12,27,49; */ int string18; int i,j,n=8,x,a,b=8; for(i=0;in;i+) scanf(“%d“,for(i=0;in-1;i+) printf(“%d,“,string1i); printf(“%d!n“,string1n-1); for(i=1;in;i+) x=string1i; j=i-1;,while(x=0) string1j+1=string1j; j-; string1j+1=x; for(a=0;ab-1;a+) printf(“%d,“,string1a); printf(“%d!n“,string1b-1); ,for(i=0;in-1;i+) printf(“%d,“,string1i); printf(“%d!n“,string1n-1); ,二维数组,int a23=1,2,3,4,5,6; int a23=1,2,3,4,5,6;,

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

当前位置:首页 > 高等教育 > 大学课件

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