嵌入式Linux下C程序设计-02-0简单程序设计.ppt

上传人:牧羊曲112 文档编号:6569741 上传时间:2023-11-13 格式:PPT 页数:48 大小:782KB
返回 下载 相关 举报
嵌入式Linux下C程序设计-02-0简单程序设计.ppt_第1页
第1页 / 共48页
嵌入式Linux下C程序设计-02-0简单程序设计.ppt_第2页
第2页 / 共48页
嵌入式Linux下C程序设计-02-0简单程序设计.ppt_第3页
第3页 / 共48页
嵌入式Linux下C程序设计-02-0简单程序设计.ppt_第4页
第4页 / 共48页
嵌入式Linux下C程序设计-02-0简单程序设计.ppt_第5页
第5页 / 共48页
点击查看更多>>
资源描述

《嵌入式Linux下C程序设计-02-0简单程序设计.ppt》由会员分享,可在线阅读,更多相关《嵌入式Linux下C程序设计-02-0简单程序设计.ppt(48页珍藏版)》请在三一办公上搜索。

1、嵌入式Linux下QT程序设计,主讲:成宝宗,简单程序设计,3,本章主要内容,基本数据类型和表达式数据的输入与输出程序控制语句自定义数据类型,4,C+语言的产生,C+是从C语言发展演变而来的,首先是一个更好的C引入了类的机制,最初的C+被称为“带类的C”1983年正式取名为C+从1989年开始C+语言的标准化工作于1994年制定了ANSI C+标准草案于1998年11月被国际标准化组织(ISO)批准为国际标准,成为目前的C+,5,C+的特点,全面兼容C它保持了C的简洁、高效和接近汇编语言等特点对C的类型系统进行了改革和扩充C+也支持面向过程的程序设计,不是一个纯正的面向对象的语言支持面向对象的

2、方法,6,C+字符集,大小写的英文字母:AZ,az数字字符:09特殊字符:!#%.,:?(),7,词法记号,关键字C+预定义的单词标识符程序员声明的单词,它命名程序正文中的一些实体文字在程序中直接使用符号表示的数据操作符用于实现各种运算的符号分隔符(),:;用于分隔各个词法记号或程序正文空白符空格、制表符(TAB键产生的字符)、垂直制表符、换行符、回车符和注释的总称,8,标识符的构成规则,以大写字母、小写字母或下划线(_)开始。可以由以大写字母、小写字母、下划线(_)或数字09组成。大写字母和小写字母代表不同的标识符。,表1-1 常用基本数据类型描述,常量,C+程序中的数据可分为常量与变量两大

3、类。常量是在程序运行过程中不变的量,变量是在程序运行过程中可发生变化的值。在编程时,常量和变量必须遵循“先声明,后使用”的原则,即所有常量和变量必须在使用前用说明语句进行说明,否则编译时将会产生错误。,声明常量,根据常量的定义方法区分,常量可分为如下两种:const常量宏常量其中,用const定义的常量,称为正规常量,其说明语句的一般形式为:const=;而宏常量是用#define定义的常量,其说明语句的一般形式为:#define,变量,变量可以用来存储程序中需要处理的数据。在使用变量前,需要使用声明语句对变量进行声明。C+中变量说明语句的一般形式为:;变量名表的格式主要有如下的三种:=,=,

4、14,变量的存储类型,auto属于一时性存储,其存储空间可以被若干变量多次覆盖使用。register存放在通用寄存器中。extern在所有函数和程序段中都可引用。static在内存中是以固定地址存放的,在整个程序运行期间都有效。,运算符和表达式,运算符,C+语言中的运算符是可以让C+语言编译器能够识别的具有运算意义的符号。编译器把这些符号及其组成的表达式翻译成相应的机器代码,就可以由计算机运行得出正确的结果。C+提供的基本运算符有以下几种:算术运算符、关系运算符、逻辑运算符、位运算符、条件运算符、赋值运算符、逗号运算符、sizeof运算符及其它运算符(这是按功能分的)。不同的运算符,需要指定的

5、操作数的个数并不相同。根据运算符需要的操作数的个数,可将其分为三种:单目运算符(一个操作数)、双目运算符(两个个操作数)和三目运算符(三个操作数)。,程序设计方法,程序设计(Programming)是指设计、编制、调试程序的方法和过程。按照结构性质,有结构化程序设计与非结构化程序设计之分。结构化程序设计方法主要使用顺序、选择、循环三种基本结构,形成具有复杂层次的结构化程序 面向对象程序设计方法是以“对象”为中心进行分析和设计的,使这些对象形成了解决目标问题的基本构件,即解决从“怎么做”到“做什么”的问题。,运算符的优先级,表达式,表达式是由运算符和操作数组成的式子,运算符可以是前面一节介绍过的

6、各种运算符。操作数包含了常量、变量、函数和其他一些命名的标识符,最常见的表达式是常量和变量。此外,由于C+中由于运算符很丰富,因此表达式的种类也很多。常见的表达式有如下六种:算术表达式。例如,a+5.2/3.0-9%5关系表达式。例如,m=x逻辑表达式。例如,!a&8|7条件表达式。例如,a4?+a:-a赋值表达式。例如,a=7逗号表达式。例如,a+5,a=7,a+=4,语句,一般说来,C+语句和表达式并没有严格区分。一个表达式,加上一个分号后,可以直接形成语句。例如,算术表达式3+2,为其加上分号,写成如下形式:3+2;这就是语句了。计算机可以执行该语句,但它并不改变程序的运行逻辑。当然,这

7、条语句并没有实际意义。当一些表达式组合起来,完成某一相对完整的功能后,再加一个分号表示结束,这就组成一条语句。如下面的语句:a=3+2;这就是一条赋值语句,其改变了a的值。,数据的输入与输出,I/O的书写格式 C+数据的输入与输出是通过I/O流来实现的,I/O流输入或输出的是一系列字节。当程序需要在屏幕上显示输出时,可以使用插入符“”向cout输出流中插入字符。cout是预定义的流类对象,“”是预定义的插入符,格式如下:cout 表达式表达式 例如,语句 coutThis is a sample.,he said.n;的输出结果为 This is a sample.,he said.,当程序需

8、要执行键盘输入时,可以使用提取操作符“”从cin输入流中抽取字符,格式如下:cin表达式表达式cin是预定义的流类对象,“”是预定义的提取符。例如:int a;char c;cinac;要求从键盘上输入两个变量的值,两数之间以空格分隔。若输入 4 8 这时,变量a获取值为4,变量b获取值为8的ASCII值38(十六进制)。因为变量c的数据类型为char,cin能够知道输入的变量类型。,数据的输入与输出,简单的I/O格式控制C+的I/O流类库提供了一些控制符,可以直接嵌入到输入/输出语句中来实现I/O格式控制。使用格式控制符首先必须在源程序的开头包含iomanip。,数据的输入与输出,在使用se

9、tw(n)时要注意:如果一个输出量需要比setw(n)确定的字符数更多的字符,则该输出量将使用它所需要的宽度。例如:float amount=3.14159;coutsetw(4)amountendl;其运行结果为3.14159。它并不按4位宽度,而是按实际宽度输出。,setw(n)仅仅影响下一个数值输出,换句话说,使用setw设置的间隔方式并不保留其效力。例如:coutsetw(8)1020endl;运行结果为-1020 运行结果中的下划线表示空格整数20并没有按宽度8输出。setw()的默认宽度为0,意思是按输出数值表示的宽度输出,所以20就紧挨10了。,I/O格式控制例题。,按十六进制、

10、八进制和十进制的格式输出数据例题。提示:这三个控制符都是在iostream定义的,所以无需加入头文件iomanip。,算法的基本控制结构,顺序结构分支结构循环结构,if 语句 三种形式,if(表达式)语句例:if(x y)cout y)cout x;else cout y;if(表达式1)语句1else if(表达式2)语句2else if(表达式3)语句3 else 语句 n,一般形式if()if()语句 1 else 语句 2else if()语句 3 else 语句 4注意语句 1、2、3、4 可以是复合语句,每层的 if 与 else 配对,或用 来确定层次关系。,一般形式switch

11、(表达式)case 常量表达式 1:语句1 case 常量表达式 2:语句2 case 常量表达式 n:语句n default:语句n+1,switch 语句,执行顺序以case中的常量表达式值为入口标号,由此开始顺序执行。因此,每个case分支最后应该加break语句。,每个常量表达式的值不能相同,次序不影响执行结果。,可以是多个语句,但不必用。,可以是整型、字符型、枚举型,32,while 语句,形式while(表达式)语句,执行顺序先判断表达式的值,若为 true 时,执行语句。,do-while 语句,一般形式do 语句while(表达式),执行顺序先执行循环体语句,后判断条件。表达式

12、为 true 时,继续执行循环体与while语句的比较:while 语句执行顺序 先判断表达式的值,为true时,再执行语句,对比下列程序:,程序1:#include using namespace std;int main()int i,sum=0;cin i;while(i=10)sum+=i;i+;cout sum=sum endl;return 0;,程序2:#include using namespace std;int main()int i,sum=0;cin i;do sum+=i;i+;while(i=10);cout sum=sum endl;return 0;,34,35

13、,for 语句,语法形式for(初始语句;表达式1;表达式2)语句,循环前先求解,每次执行完循环体后求解,36,break 和 continue 语句,break语句使程序从循环体和switch语句内跳出,继续执行逻辑上的下一条语句。不宜用在别处。continue 语句结束本次循环,接着判断是否执行下一次循环。,37,循环结构与选择结构相互嵌套,#include using namespace std;int main()for(int n=100;n=200;n+)if(n%3!=0)cout n;return 0;,38,编写程序输出以下图案,*,#include using namesp

14、ace std;int main()const int N=4;for(int i=1;i=N;i+)/输出前4行图案 for(int j=1;j=8-2*i;j+)cout;for(int j=1;j=2*i-1;j+)cout*;cout endl;,39,/输出后3行图案for(int i=1;i=N-1;i+)for(int j=1;j=7-2*i;j+)cout*;cout endl;return 0;,40,自定义数据类型,42,自定义数据类型:枚举类型enum,只要将需要的变量值一一列举出来,便构成了一个枚举类型。枚举类型的声明形式如下:enum 枚举类型名 变量值列表;例如:e

15、num WeekdaySUN,MON,TUE,WED,THU,FRI,SAT;,43,自定义数据类型:枚举类型enum,枚举类型应用说明:对枚举元素按常量处理,不能对它们赋值。例如,不能写:SUN=0;枚举元素具有默认值,它们依次为:0,1,2,.。也可以在声明时另行指定枚举元素的值,如:enum WeekdaySUN=7,MON=1,TUE,WED,THU,FRI,SAT;枚举值可以进行关系运算。整数值不能直接赋给枚举变量,如需要将整数赋值给枚举变量,应进行强制类型转换。,44,自定义数据类型:结构体结构的声明,结构的概念结构是由不同数据类型的数据组成的集合体。声明结构类型 struct 结

16、构名 数据类型 成员名 1;数据类型 成员名 2;数据类型 成员名 n;;,45,自定义数据类型:结构体结构的声明,举例:struct Student/学生信息结构体 int num;/学号 string name;/姓名 char gender;/性别 int age;/年龄 float score;/成绩 string addr;/住址;,46,自定义数据类型:结构体结构变量说明,变量说明形式结构名 结构变量名;注意:结构变量的存储类型概念、它的寿命、可见性及使用范围与普通变量完全一致。结构变量说明在结构类型声明之后,二者也可同时进行。结构变量占内存大小可用 sizeof 运算求出:sizeof(运算量),47,自定义数据类型:结构体结构变量的初始化和使用,初始化说明结构变量的同时可以直接设置初值。使用结构体成员的引用形式:结构变量名.成员名,48,自定义数据类型:联合体,声明形式:union 联合名 数据类型 成员名 1;数据类型 成员名 2;:数据类型 成员名 n;;联合体类型变量说明的语法形式联合名 联合变量名;引用形式:联合名.成员名,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号