《C简单程序设计》PPT课件.ppt

上传人:za****8 文档编号:2988542 上传时间:2019-12-05 格式:PPT 页数:45 大小:771.01KB
返回 下载 相关 举报
《C简单程序设计》PPT课件.ppt_第1页
第1页 / 共45页
《C简单程序设计》PPT课件.ppt_第2页
第2页 / 共45页
《C简单程序设计》PPT课件.ppt_第3页
第3页 / 共45页
点击查看更多>>
资源描述
C+语言程序设计基础,第2章 C+简单程序设计,2.1 C+语言概述 2.2 基本数据类型和表达式 2.3 数据的输入与输出 2.4 算法的基本控制结构 2.5 自定义数据类型,2.1 C+语言概述,C+的产生 20世纪60年代英国剑桥大学学者开发BCPL 1970年美国Bell实验室提出B语言 1972年Bell实验室对B语言改进推出C语言 1980年AT&T贝尔实验室的Bjarne Stroustrup博士创建C+语言,-4-,C+的历史,几十年来,许多编程语言如流星般闪过,而C+一直占据着世界顶级编程语言的宝座。针对PC机、智能手机和MP3等嵌入式设备,以及其它众多计算机环境,C+语言始终是不错的选择。 C+的标准不断更新 目前使用的是ANSI/ISO C+(ISO/IEC 1482:2003),2003年发布 下一个标准为C+11,2011年10月发布,2.1.3 C+程序实例,/*第一个C+程序 作者:CPP 版本:1.0*/ #include /文件包含命令 using namespace std; int main() /主函数头 /主函数体 cout“Hello!“endl; /输出数据 cout“Welcome to C+!“endl; return 0; ,2.1.4 字符集,2.1.5 词法记号,关键字(保留字):已被C+语言本身使用,不能作为其它用途使用的单词,P22 标识符: 由字母、数字、下划线组成且由字母或下划线开头的字符串。 标识符是区分大小字母的。 标识符的有效长度视不同系统而定。 不能使用C+语言的关键字。,判断下列标识符是否合法: Result,List-2,_first2, first_&,2first,2.2 基本数据类型和表达式,逻辑类型bool,整数类型,浮点类型,空类型void,char short int long,float double long double,基本数据类型,用于函数和指针,取值只有true和false,signed有符号,unsigned无符号,2.2.2 常量,在程序运行期间其值不发生变化的数据。 1、整型常量 十进制整数:如123,0,-456 八进制整数(以0开头):如012 十六进制整数(以0X开头):如0x12 长整型用L作后缀; 无符号型用U作后缀; 无符号长整型用UL或LU均可。 练习题:在C+语言中,029是一个 。 A)八进制数;B)十进制数;C)十六进制数;D)非法数,一般表示无符号数据,2、实型常量,只有十进制表示 一般形式实数 整数和小数部分可省其一,但不能都省 如1.3,.13,13.,0.0 指数形式实数 由尾数、指数和字母e组成 E前后都要有数字,且E后的指数必须为整数 判断:e2,2.1e-5,2.1e3.5,-5.1e2,e 浮点型常量缺省为double,加后缀f表示float,加l表示long double,3、字符常量,由两个单引号括起的一个字符,如A、5、 具有数值,值为字符的ASCII码 转义序列:以开头 字母:用于输出格式控制或特殊字符,P26,如 n、 t、 、 ddd:用三位八进制数表示一个字符常量,如 101 xhh:两位十六进制数表示一个字符常量,如x41 练习题: “abcn“在内存中占几个字节?“abcn“呢? 字符串“ABC“在内存中占几个字节?,4、字符串常量,由双引号括起的字符序列(不一定是C+字符集中的字符,只要C+编译器支持即可) 字符串中每一字符用一个字节存放,并且系统自动在字符串尾加0 字符串的处理由字符数组来实现 练习题:x和“x“有什么不同?,2.2.3 变量,变量声明的一般形式: ; double x,y,z; int a=2,b=-6,c(3);,2.2.4 符号常量,将一个变量声明为一个常量 const ; const (); const ; const (); const int MAX=10; int const PI(3.14);,2.2.5 运算符与表达式,1、算术运算符 -(取负)、+(取正):右结合 +、-、*、/、%(不能用于浮点型):左结合 +、-:+a;-a;a+;a- :右结合 对变量本身来说运算结果一样 前置:变量先+1或-1,再参加表达式的运算 后置:变量先参加运算,然后再+1或-1 练习题: a=7*2 + -3%5 - 4/3; int x=11,则x+*1/3的值为( ),x为( ) int x=11,则+x*1/3的值为( ),x为( ),2.赋值运算符,赋值运算符:(右结合) 注:表达式和常变量不能作为左值 当=两边数据类型不一致时,编译器会在赋值前将右操作数自动转换为同左操作数相同的类型。 赋值复合运算符:+=、-=、*=、/=、%=、 =、&=、=、|= 变量 op= 表达式 变量=变量op表达式 a+=3 a=a+3、x*=y+8 x=x*(y+8),思考: int a=12; a+=a-=a*a;,作为一个整体参与运算,3.逗号运算符,d1,d2,d3,d4 最后一个表达式的值就是逗号表达式的值,float x(10.5f),y(1.8f),z(0); z=(x+=5, y+=x+0.2); z=(z=8, x=5, y=3);,int a=1,b=2,c; c = (a+, a+=b, a+b);,4.逻辑运算符,关系运算符:、=、3)+(y-x)=1);,逻辑运算符,单目:! 双目:&、| 操作数:非0为真,0为假 表达式值:真为1,假为0 注意:C+规定:在一个逻辑表达式中,当计算出一个子表达式的值后便可确定整个逻辑表达式的值时,后面的子表达式就不再计算。,int x,y,z; x=y=z=1; -x,5.条件运算符,d1?d2:d3(右结合),int x=2,y=0,z; z=(y=0)?+x:y+); z=(y!=5?x+1:y+); z=(y=5)?x+1:+y);,思考: 若有(exp)?a+:b-,则能完全与 (exp)等价的是 。 A)(exp=0) B)(exp!=0) C)(exp=1) D)(exp!=1),6.sizeof运算符,sizeof() 返回变量或数据类型在内存中所占的字节数 double z(0); int k; k=sizeof(float); k=-1*sizeof(z); k=sizeof(10.2);,7.位运算,逻辑位运算符:(单目)、,unsigned char x=0133,y=0xff; z=xy; char x=-27,y; y=x3;,负数在计算机内部以补码形式存在,8. 运算符优先级与结合性,元素/成员-单目-双目-三目-赋值-逗号 算术-移位-关系-逻辑位-逻辑 结合性 大多数为从左至右,只有三类是从右至左 右结合:单目、三目和赋值,9. 数据类型转换,只有数据类型相同的数据才能进行运算 显式:(数据类型名称); int a=2,b(0);float c=4.8;b=(int)c+a; 隐式:char-short-int-long-float-double int a(2); float b=12.5;double c=1.2e3; 15+a*b-c/a,2.3 数据的输入与输出,#include 输出: cout int a,b; cinab;,2.3.3 简单的I/O格式控制,dec:设置数制为十进制 hex:设置数制为十六进制 cout setw(int):设置输出场宽 coutsetw(4)17endl;,2.4 算法的基本控制结构,选择结构 循环结构 其他控制语句,2.4.1 用if语句实现选择结构,提出问题: 根据学生分数判断是否及格? 根据学生分数如何进行分级? 分支语句 条件可以是逻辑、关系,甚至是算术表达式。 if(3) cout“ok!n“; 分号是分支语句中内嵌语句所要求的。,if () ; else if () ; else if () ; else ;,练习:判断某一年是否闰年,#include using namespace std; int main() int year; coutyear; if(year%4=0 ,ifelse的配对关系,else与上方最近的未配对的if相配对,判断三个程序哪个正确?,if(x0) y=-1; else if(x=0) y=0; else y=1;,if(x=0) if(x0) y=1; else y=0; else y=-1;,y=0; if(x=0) if(x0) y=1; else y=-1;,if(P 1) if(P 2) 语句1; else 语句2;,switch语句,switch () case : case : case : default: ,以case中的常量表达式值为入口标号,由此开始顺序执行,直到遇到break或switch的退出switch语句。,switch例题,输入月份,输出是哪个季节? 要求用switch语句完成 春:3、4、5 夏:6、7、8 秋:9、10、11 冬:12、1、2,2.4.3 循环结构,提问:从键盘上输入10个整数并求和,怎么编程? 回答:在程序中用cin,写10个提取符。 提问:从键盘上输入500个整数并求和,怎么编程? 回答:这个,嗯? 不会让我写500个 循环:反复执行同一段程序,直到满足一定的条件后才停止执行该段程序。,?,1、while语句,while() ; 语句部分可以是复合语句; 先判断,后执行; 应有使循环趋于结束的语句,否则出现死循环。 while的循环体可以是空语句。 例:通过键盘输入一个正整数n,然后求出n!。,while循环例题,思考:程序作下列改动 1、r不赋初值? 2、while后加; 3、while后复合语句不加,#include using namespace std; int main() int n,r(1); cinn; while(n=1) r*=n; n-; coutrendl; return 0; ,课后思考题:用0.1mm厚的纸对折,问对折多少次后,其厚度超过了地球直径(12742公里),2、do-while语句,do ; while(); 先执行,后判断 例:用do-while循环语句实现n!,#include using namespace std; int main() int n,r(1); cinn; do r*=n; n-; while(n=1); coutrendl; return 0; ,do-while循环语句例题,学生在操场上排队,5人一行余2人,7人一行余3人,3人一行余1人,编程求该校的学生总人数(不超过 一千人)的所有可能解。,int n=1000; do if(n%5=2 ,3、for语句,for(d1;d2;d3) ; d1:循环变量赋初值;可省但分号不能省。 d2:控制循环结束的条件;可省,条件永远为真,无限循环下去。 d3:控制循环变量的增减,以使循环条件逐步趋于假。可省,须在循环体中为循环变量增减,确保正常结束。 例:用for循环语句实现n!,求表达式1,表达式2非0?,语句,求表达式3,Y,for 语句的下一语句,N,2.4.4 循环结构的嵌套,循环体内包含另一个完整的循环语句。 for、while、do-while之间可以相互嵌套。,for( ; ; ) for( ; ; ) ,while( ) while( ) ,do for( ; ; ) while( );,多重循环例题,百元百鸡问题:公元五世纪末,古代数学家张丘建在算经中提出:“鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡,问鸡翁、母、雏各几何?”,int cock,hen,chick; for(cock=0;cock=19;cock+) for(hen=0;hen=33;hen+) chick=100-cock-hen; if(cock*5+hen*3+chick/3=100 ,2.4.5 其他控制语句,1、break语句 退出switch语句; 跳出循环体 例题:输入两个正整数,求出其最大公约数。,break;,2、continue语句,结束本次循环,继续执行下一次循环 例题:输出100200之间不能被3整除的数,并且每五个一行。,3. goto语句,无条件转向语句 一般形式:goto 语句标号; 语句标号放在某一语句行的前面,标号后加冒号。语句标号起标识语句的作用,与goto 语句配合使用。 goto语句只能在一个函数内进行转向。 尽量不要使用。,2.5 自定义数据类型,2.5.1 typedef声明: typedef ; 例1: typedef int INTEGER; INTEGER a,b; 例2: typedef int arr10; arr a; 自定义类型的作用 改善程序的可读性(取一个有意义的类型别名)。 书写简练 提高程序的可移植性,2.5.2 枚举类型enum,由一组枚举常量构成的集合,它指出了这种类型的变量的所有合法取值。 枚举类型定义方法: enum 标识符1,标识符2,标识符n; 例题:enum Color red,green,blue; enum Color red,green=5,blue; 定义枚举变量的方法:Color a,b; 赋值:a=red; b=blue; 枚举值的比较: if(a= =red) if(bblue),
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!