《C语言程序设计简单程序设计实用教案》由会员分享,可在线阅读,更多相关《C语言程序设计简单程序设计实用教案(38页珍藏版)》请在金锄头文库上搜索。
1、1C+语言(yyn)的产生C+是从C语言发展演变而来的,首先是一个更好的C引入了类的机制,最初的C+被称为“带类的C”1983年正式取名为C+从1989年开始C+语言的标准化工作于1994年制定了ANSI C+标准草案于1998年11月被国际标准化组织(ISO)批准(p zhn)为国际标准,成为目前的C+C+语言(yyn)概述第1页/共37页第一页,共38页。2C+的特点(tdin)全面兼容C它保持了C的简洁(jinji)、高效和接近汇编语言等特点对C的类型系统进行了改革和扩充C+也支持面向过程的程序设计,不是一个纯正的面向对象的语言支持面向对象的方法C+语言(yyn)概述第2页/共37页第二
2、页,共38页。3C+程序(chngx)实例例2-1/2_1.cpp#include using namespace std;void main() coutHello!n; coutWelcome to c+!n;运行(ynxng)结果:Hello!Welcome to c+!C+语言(yyn)概述第3页/共37页第三页,共38页。4C+字符集大小写的英文字母:AZ,az数字字符(z f):09特殊字符(z f):空格!#%&*_(下划线)+=-/;.,()C+语言(yyn)概述第4页/共37页第四页,共38页。5词法(cf)记号关键字 C+预定义的单词(dnc)标识符 程序员声明的单词(dn
3、c),用来命名程序正文中的一些实体文字 在程序中直接使用符号表示的数据操作符 用于实现各种运算的符号分隔符 () , : ; 用于分隔各个词法记号或程序正文空白符 空格、制表符(TAB键产生的字符)、换行符(Enter键所产生的字符)和注释的总称C+语言(yyn)概述第5页/共37页第五页,共38页。6标识符的构成(guchng)规则以大写字母、小写字母或下划线(_)开始。可以由以大写字母、小写字母、下划线(_)或数字09组成(zchn)。大写字母和小写字母代表不同的标识符。C+语言(yyn)概述第6页/共37页第六页,共38页。7基本(jbn)数据类型和表达式整型:short/int/lon
4、g (八、十、十六进制)实型:float/double(默认常数为doubleo类型 故float f=123.45有警告(jnggo))字符型:char布尔型:bool (true、false)字符串常量:this符号常量:const 数据类型 常量名=常量值基本基本(jbn)(jbn)数据数据类型类型P24 表2-1第7页/共37页第七页,共38页。8变量(binling)(binling)初始化例: int a=3; double f=3.56; char c=a; int c(5);Page 8基本(jbn)数据类型和表达式第8页/共37页第八页,共38页。9运算符及表达式运算符及表达
5、式Page 9基本(jbn)数据类型和表达式算术运算符:+ - * ? % + -赋值运算符:= 及复合的赋值运算符逗号运算符:,关系运算符: = = !=逻辑(lu j)运算符:! & |条件运算符:? :sizeof运算符:计算某种类型的对象在内存中所占的字节数。位运算符:& | (操作数必为整型)第9页/共37页第九页,共38页。10运算符优先级括号(kuho)+,-,sizeof*, /, %+, -=, !=位运算&|?:赋值运算逗号运算低高基本(jbn)数据类型和表达式第10页/共37页第十页,共38页。11混合运算(ynsun)时数据类型的转换一些二元运算(yn sun)符(算术
6、运算(yn sun)符、关系运算(yn sun)符、逻辑运算(yn sun)符、位运算(yn sun)符和赋值运算(yn sun)符)要求两个操作数的类型一致。在算术运算(yn sun)和关系运算(yn sun)中如果参与运算(yn sun)的操作数类型不一致,编译系统会自动对数据进行转换(即隐含转换),基本原则是将低类型数据转换为高类型数据。char,short,int,unsigned,long,unsigned long,float,double低 高基本(jbn)数据类型和表达式第11页/共37页第十一页,共38页。12当参与运算的操作数必须是bool型时,如果操作数是其它(qt)类型
7、,编译系统会自动将非0数据转换为true,0转换为false。位运算的操作数必须是整数,当二元位运算的操作数是不同类型的整数时,也会自动进行类型转换,赋值运算要求左值与右值的类型相同,若类型不同,编译系统会自动将右值转换为左值的类型。可以采用强制类型转换。基本(jbn)数据类型和表达式混合运算(ynsun)时数据类型的转换第12页/共37页第十二页,共38页。13语句(yj)声明语句表达式语句选择语句循环(xnhun)语句跳转语句复合语句标号语句 基本(jbn)数据类型和表达式第13页/共37页第十三页,共38页。14简单的输入(shr)、输出数据(shj)的输入与输出 在C+中,将数据从一个
8、对象到另一个对象的流动抽象为“流”。流在使用前被建立,使用后被删除。从流中获取数据的操作符称为提取操作,向流中添加数据的操作称为插入操作。数据的输入与输出是通过I/O流来实现(shxin)的,cin和cout是预定义的流类对象。一、输出 cout表达式表达式其中,变量变量其中, 是提取符输入的值用空格分隔,也可以(ky)分行输入,不能用逗号分隔。第15页/共37页第十五页,共38页。16简单的输入(shr)、输出数据(shj)的输入与输出三、简单的I/O格式(g shi)控制 (iomanip) 操纵符名操纵符名含义含义dec数值数据采用十进制表示数值数据采用十进制表示hex数值数据采用十六进
9、制表示数值数据采用十六进制表示oct数值数据采用八进制表示数值数据采用八进制表示ws提取空白符提取空白符endl插入换行符插入换行符ends插入空字符插入空字符setw(int)设置域宽设置域宽第16页/共37页第十六页,共38页。17简单(jindn)的输入、输出数据的输入(shr)与输出三、简单的I/O格式(g shi)控制 (iomanip) 操纵符名操纵符名含义含义fixed定点数格式输出,小数定点数格式输出,小数6位位scientific科学记数法格式输出,小数科学记数法格式输出,小数6位位setprecision(int)设置有效位数(普通显示方式)或设置有效位数(普通显示方式)或
10、精度(定点或科学记数法方式)精度(定点或科学记数法方式)boolalpha使使bool类型的数据输出结果为类型的数据输出结果为true或或false第17页/共37页第十七页,共38页。18简单的输入(shr)、输出数据的输入(shr)与输出三、简单(jindn)的I/O格式控制 (iomanip) #include #include using namespace std;void main()float f=12.456789f; coutsetprecision(3)fendl;运行结果:12.5coutfixedsetprecision(3)fendl;运行结果:12.457第18页/
11、共37页第十八页,共38页。20顺序结构分支(fnzh)结构循环结构算法(sunf)的基本控制结构算法(sun f)的基本控制结构第20页/共37页第二十页,共38页。21P39 例2-2P40 例2-3P42 例2-4P43 例2-5P44 例2-6P46 例2-7P47 例2-8P49 例2-9P50 例2-10算法(sun f)的基本控制结构第21页/共37页第二十一页,共38页。22typedef语句(yj)为一个已有的数据类型(lixng)另外命名语法形式typedef 已有类型(lixng)名 新类型(lixng)名表;例如typedef double area,volume;ty
12、pedef int natural;natural i1,i2;area a;volume v;自定义数据类型第22页/共37页第二十二页,共38页。23枚举(mij)类型enum只要将需要的值一一列举出来,便构成了一个枚举(mi j)类型。枚举(mi j)类型的声明形式如下:enum 枚举(mi j)类型名 值列表;例如:enum weekdaysun,mon,tue,wed,thu,fri,sat;自定义数据类型第23页/共37页第二十三页,共38页。24枚举(mij)类型enum枚举类型应用说明:对枚举元素(yun s)按常量处理,不能对它们赋值。例如,不能写:sun=0;枚举元素(yu
13、n s)具有默认值,它们依次为: 0,1,2,.。也可以在声明时另行指定枚举元素(yun s)的值,如:enum weekdaysun=7,mon=1,tue,wed,thu,fri,sat;枚举值可以进行关系运算。整数值不能直接赋给枚举变量,如需要将整数赋值给枚举变量,应进行强制类型转换。自定义数据类型第24页/共37页第二十四页,共38页。25例2-11设某次体育比赛的结果有四种可能:胜(win)、负(lose)、平局(tie)、比赛取消(cancel),编写程序顺序输出这四种情况。分析:由于比赛结果只有四种可能,所以(suy)可以声明一个枚举类型,声明一个枚举类型的变量来存放比赛结果。自
14、定义数据类型第25页/共37页第二十五页,共38页。#include using namespace std;enum game_result WIN, LOSE, TIE, CANCEL;void main() game_result result; enum game_result omit = CANCEL; int count; for (count = WIN ; count = CANCEL ; count+) result = (game_result)count; if (result = omit) cout The game was cancelledn; else cou
15、t The game was played ; if (result = WIN) cout and we won!; if (result = LOSE) cout and we lost.; cout n; return 0;26第26页/共37页第二十六页,共38页。运行(ynxng)结果 The game was played and we won! The game was played and we lost. The game was played The game was cancelled27第27页/共37页第二十七页,共38页。28结构(jigu)体结构(jigu)的声明
16、结构的概念结构体是由不同数据类型(lixng)的数据组成的集合体。声明结构类型(lixng) struct 结构名 数据类型(lixng) 成员名 1; 数据类型(lixng) 成员名 2; : 数据类型(lixng) 成员名 n; ;自定义数据类型第28页/共37页第二十八页,共38页。29结构(jigu)体结构(jigu)的声明举例:struct student /学生信息结构体 int num; /学号 char name20; /姓名 char gender; /性别 int age; /年龄(ninlng) float score; /成绩 char addr30; /住址自定义数据
17、类型第29页/共37页第二十九页,共38页。30结构(jigu)体结构(jigu)变量说明变量说明形式 结构名 结构变量名;注意:结构变量的存储类型概念、它的寿命(shumng)、可见性及使用范围与普通变量完全一致。结构变量说明在结构类型声明之后,二者也可同时进行。结构变量占内存大小可用 sizeof 运算求出: sizeof(运算量)自定义数据类型第30页/共37页第三十页,共38页。31结构(jigu)体结构(jigu)变量的初始化和使用初始化说明结构变量的同时(tngsh)可以直接设置初值。使用结构体成员的引用形式:结构变量名.成员名自定义数据类型第31页/共37页第三十一页,共38页。
18、32例2-12结构体变量的初始化和使用#include #include using namespace std;struct student /学生(xu sheng)信息结构体 int num;/学号 char name20;/姓名 char gender;/性别 int age;/年龄stu=97001,Lin Lin,F,19;int main() coutsetw(7)stu.numsetw(20)stu.name setw(3)stu.sexsetw(3)stu.age;自定义数据类型运行(ynxng)结果: 97001 Lin Lin F 19第32页/共37页第三十二页,共38
19、页。33联合体声明形式(xngsh):union 联合名 数据类型 成员名 1; 数据类型 成员名 2; : 数据类型 成员名 n; ;联合体类型变量说明的语法形式(xngsh)联合名 联合变量名;引用形式(xngsh):联合名.成员名自定义数据类型第33页/共37页第三十三页,共38页。34例: union uarea char c_data; char c_data; short s_data; short s_data; long l_data; long l_data; uareac_datal_datas_data联合体自定义数据类型第34页/共37页第三十四页,共38页。35无名(
20、wmng)联合无名联合没有标记(bioj)名,只是声明一个成员项的集合,这些成员项具有相同的内存地址,可以由成员项的名字直接访问。例:union int i; float f;在程序中可以这样使用:i=10;f=2.2;自定义数据类型第35页/共37页第三十五页,共38页。36小结(xioji)与复习建议主要内容C+语言概述、基本数据类型和表达式、数据的输入与输出、算法的基本控制结构、自定义数据类型达到的目标(mbio)掌握C+语言的基本概念和基本语句,能够编写简单的程序段。实验任务实验二作业2-132-142-172-282-362-37第36页/共37页第三十六页,共38页。37感谢您的欣赏(xnshng)!第37页/共37页第三十七页,共38页。内容(nirng)总结1。第1页/共37页。第2页/共37页。第3页/共37页。大小写的英文字母:AZ,az。#%&*_(下划线) +=-/。.,()。char c=a。|。float f=12.456789f。如果与setiosflags(ios:scientific)合用,可以控制指数表示法的小数位数。对枚举(mi j)元素按常量处理,不能对它们赋值。第36页/共37页第三十八页,共38页。