第二章C简单程序设计.ppt

上传人:sccc 文档编号:5988749 上传时间:2023-09-11 格式:PPT 页数:90 大小:256.54KB
返回 下载 相关 举报
第二章C简单程序设计.ppt_第1页
第1页 / 共90页
第二章C简单程序设计.ppt_第2页
第2页 / 共90页
第二章C简单程序设计.ppt_第3页
第3页 / 共90页
第二章C简单程序设计.ppt_第4页
第4页 / 共90页
第二章C简单程序设计.ppt_第5页
第5页 / 共90页
点击查看更多>>
资源描述

《第二章C简单程序设计.ppt》由会员分享,可在线阅读,更多相关《第二章C简单程序设计.ppt(90页珍藏版)》请在三一办公上搜索。

1、1,第二章 编程基础,2,2.1 C+程序的基本框架,例2.1.1 编写程序:在计算机屏幕上显示:Hello,C+!算法描述:输出:Hello,C+!,3,源程序清单:/屏幕输出Hello,C+!,#include using namespace std;void main()coutHello,C+!endl;,/预编译命令/using命令/主函数名/表示函数的开头/函数体/表示函数的结束,4,编程约定:,1C+程序中“/”符号表明后续字符为注释信息 C+提供了两种注释方法:/其后至换行的所有字符为注释信息。/*/夹在“/*”与“*/”之间的所有字符为注释信息。,5,2.#include 是

2、一条预编译命令#include,所谓头文件是系统提供的能实现某些特定功能的文件库文件的扩展名为.h,在#include命令中若省略库文件的扩展名,就必须在所有#include命令后添加using命令,即程序第三行的using namespace std;语句。但若头文件已加扩展名,就不能使用using命令。因此本程序的预编译命令可以写成:#include 或#include using namespace std;注意#include预编译命令后不加分号。,6,3.C+语言程序是由一个或多个函数组成的文件,在组成程序的函数中,必须有且只有一个主函数main。函数名之后必须有一对小圆括号“()”

3、,括号中可以有参数。main函数在程序中位置并无限定,可以是任意的。但主函数main代表了程序执行的起始点和终止点,即不管程序里有多少个函数,不管main函数位置如何,程序总是从主函数main的第一条语句开始执行,并结束于主函数的最后一条语句。,7,程序的框架结构均为:,#include using namespace std;void main()函数体,8,(1)“”与“”必须配对使用,“”之间的内容为函数体,函数体内可以包含任意多行语句。(2)C+规定每个语句的最后以“;”结束。(3)C+程序的书写很灵活,一行可书写多个语句,一个语句可以写成多行,但书写时首先应该考虑程序的可读性。(4)

4、主函数的书写也可以是如下形式:int main()函数体return 0;,9,例如,#include int main()coutHello,C+!endl;return 0;,10,4.cout对象,符号“”:是插入运算符,它指示计算机把其右端用双引号括起来的字符串输送到屏幕。coutHello,C+!endl;如在屏幕上输出 Today is Sunday,可使用coutToday is Sundayendl;其中endl起换行的作用。,11,C+是区分大小写的,系统提供的关键字都必须严格使用英文小写,如#include、cout、main 注意所有标点也必须使用西文标点,只有双引号里、

5、注释语句里可以使用中文。,12,2.2 C+程序的开发过程,使用Visual C+6.0编辑、运行、调试例2.1.1中的程序 操作方法:(1)编辑:使用编辑器输入C+语句,称为C+源程序即源文件,扩展名为.cpp。(为纯文本文件)(2)编译:将源文件翻译和解释为二进制代码,称为目标文件,扩展名为.obj。(3)链接:,将经常使用的标准程序预先编辑并编译构成库文件,库文件与目标文件连接起来,生成可直接运行的可执行文件,扩展名为.exe。(4)运行:运行编译连接好的可执行文件,将输出程序的运行结果。,13,2.目前常用的C+系统有Microsoft Visual C+和Borland C+Buil

6、der,二者都是在一个集成环境中包含编辑器和编译器,即所谓的集成开发环境IDE(Integrated Development Environment)。本教材采用Visual C+6.0版本介绍程序设计的基本方法,但在本教材中所学的C+语句可在大多数C+系统中使用。,14,3.在Visual C+中可以创建许多不同类型的应用程序,本书重点讲解创建控制台应用程序的方法,所谓控制台应用程序,是指运行在DOS窗口的程序。,15,介绍使用Visual C+6.0创建和运行一个C+程序的步骤:安装Visual C+6.0启动Visual C+6.0创建项目 在项目中添加源文件保存 编译 连接 运行 关闭

7、工作空间打开程序退出Visual C+6.0系统,16,例2.2.2 上机调试程序,找出错误并修改:/*屏幕输出Hello,C+!*/#include int main()coutHello,C+!endl,17,2.3变量与常量,例2.3.1 编程输出下列文本:*2008北京欢迎你!*算法描述:输出:*输出:2008北京欢迎你!输出:*,18,源程序清单:,#include using namespace std;void main()cout*endl;cout 2008北京欢迎你!endl;cout*endl;,19,编程技巧:,1.程序处理的对象是数据,数据有多种形式,如数值数据、文字

8、数据、图像数据、声音数据等,但最基本、最常用的数据是数值数据和文字数据。2.C+中数据有常量和变量之分,在程序运行过程中,值可以改变的量称为变量,值不能被改变的量称为常量。常量有字面值常量和符号常量两种,字面常量又称为常数或直接常量,是可以从其字面形式直接判别的常量。如2、3均为整型常量,“Hello,C+!”、“2008北京欢迎你!”、“*”均为字符串型常量等。C+中的字面常量有整型、实型、字符型、布尔型、字符串型五类,20,常量:值不能被改变的量,整型常量 实型常量 字面常量 字符常量常量 字串符常量 布尔型常量 符号常量,直接在程序中使用的数值而不使用内存,21,1、整型常量,整型常量即

9、整数,包括正整数、负整数和零。C+中的整型常量可以用十进制、八进制和十六进制表示:十进制:如 15,-235,0八进制:以0打头,由数字07组成,如 07,0327,-02十六进制:以0X或0 x打头,由09,AF(大小写均可)组成。如-0 x7,OX5bf 了解:长整型常量的表示方法是加后缀字母l或L,如 712l,0 x5fL。无符号型整型常量的表示方法是加后缀字母u或U,如 712u,0 x5fU。,22,2、实型常量(浮点数或实型常数),实型常量是指包含小数点的数,C+中的实数只允许使用十进制,它有两种表示形式:一般形式:由正负号、数字和小数点组成,必须有且仅有一个小数点。如 0.0、

10、0.123、.123、123.0、123.、-0.123等。,23,指数形式:,尾数e或E指数其中:e或E前后必须有数字,指数部分必须为整数。在尾数部分小数点左边为一位非零数称为规范化的指数形式,系统输出时均按规范化的指数形式输出。如325.123可表示为3251.23E-1、325.123E0、32.5123E1、3.25123E2、0.325123E3等,但系统在用指数形式输出时,输出规范化的指数形式3.25123E2。下面表示是错误的:E4/不能没有尾数1.23E4.5/指数部分必须为整数,24,3、字符常量,字符常量是用单引号括起来的单个字符,在内存中存储的是该字符的ASCII码值,占

11、用一个字节。对于数字、字母、标点符号等可见字符使用一对单引号将字符括起。如:A、a、$、!、?、5 对于控制字符等不可显示的字符以及其他一些特殊字符常量,C+采用转义字符描述,即由一个反斜杠符和一个符号组成。,25,下表中列出了C+中定义的常用转义字符,26,4、字符串常量,字符串常量是用双引号括起来的若干个字符,如“”、“A”、“12.42”、“Program”。系统将自动在其尾部追加一个0字符作为串结束符。,27,如:字符串“Program”有7个字符,在内存中存储时实际占用8个字节长度为n个字符的字符串常量,在内存中占用n+1个字节 注意:A 和”A”的区别,28,5、布尔型常量,布尔型

12、常量的取值只有两个:false(逻辑假)、true(逻辑真)。,29,整型常量 实型常量 字面常量 字符常量常量 字串符常量 布尔型常量 符号常量,30,例2.3.2使用计算机计算2与3的和并显示在屏幕上,31,源程序清单:#includeusing namespace std;void main()int a,b,sum=0;a=2;b=3;sum=a+b;couta“+”b“=”sumendl;,32,C+的数据类型分为两大类:,基本数据类型和非基本数据类型。基本数据类型包括整型、实型、双精度型、字符型、布尔型(逻辑型)。非基本数据类型是指根据C+语法规则由基本数据类型构造出来的类型,如数

13、组、指针、引用、类、结构、联合、枚举等。,33,变量的概念 变量的命名变量 变量的类型 变量的定义 变量的初始化,34,变量的概念,变量是用于临时存放数据的内存单元,所谓变量是指在程序运行的过程中该内存单元的内容可以改变变量在使用前必须先定义,即给变量命名、指定数据类型、赋初值,35,变量的命名,变量的命名必须遵循C+的标识符命名规则 标识符的规则标识符只能包含字母、数字和下划线,不能有标点符号和空格;必须以字母或下划线开头,36,关于标识符需注意的问题:,不能使用关键字;大小写敏感。例如:length和Length是不同的变量名。用户声明变量时总习惯是以字母开头变量的命名应符合标识符的规则,

14、见名识意,习惯上变量使用小写字母命名,若是由多个单词组成,第二个及其以后的每个单词第一个字母大写,37,如:判断下列变量名是否正确sum_1 2max(原因:short(原因:,38,变量的类型,变量使用哪种数据类型取决于它要存储的数据,39,选学,C+的基本数据类型有有符号型(默认为有符号型)和无符号型(加前缀unsigned)但当使用中变量的值均为正值时,可以将符号位用于表示数值以扩大变量的表数范围,即设为无符号型,加上unsigned前缀,如unsigned int表示无符号整型。,40,选学,定义变量的数据类型时还必须考虑数据的溢出,变量中存放的数据超出了该类型变量的范围,会发生溢出,

15、使得结果出错。如short型变量中最大存放32767,如果存放32768即会发生溢出,得到-32768,为什么会是-32768呢?原来,它好象汽车的里程表一样,数据达到最大值后又从最小值开始计数。解决数据溢出的办法是将存放此数据的变量类型定义为具有更大存储范围的类型,41,变量的定义与初始化,变量必须“先定义,后使用”,42,例2.3.3 编写适合小学生使用的加法程序(求键盘输入的两个数的和),算法描述:,43,源程序清单:#include using namespace std;void main()double a,b,sum;/定义了三个double型变量 coutab;/由键盘输入数据

16、分别存入变量a、b中 sum=a+b;/a与b相加的和赋给变量sum couta+b=sum endl;,44,变量的概念 变量的命名变量 变量的类型 变量的定义 变量的初始化,45,标准输入输出流的使用,46,cin的格式,cin变量名1变量名2变量名n;其中“”称为提取运算符,该语句的作用是等待从键盘输入数据,接收后依次存入变量1-变量n中。在需要用户从键盘输入几个数据时,输入数据的个数、类型必须与接收变量一致,输入数据之间可以用空格、回车或Tab键分隔开,输入完所有数据后,使用回车键表示输入结束。判断cin3;cinendl;,47,cout的格式:,cout表达式1表达式2表达式m;其

17、中“”称为插入运算符,该语句的作用是将表达式1的值、表达式2至表达式n的值依次显示在计算机屏幕上,endl起换行输出的作用。表达式可为常量、字面值、变量或由运算符将它们连接起来,48,cout流使用时有几种常见情况:,Int(1)输出字符串,coutToday is Sunday;(2)输出其它数值,cout56.3;(3)输出一个变量,coutgrade;(4)输出多个变量,coutabc;为提高可读性也可写成:couta=a,b=b,c=c;(5)输出变量a、b、c的值并分别占一行可使用 coutaendl;coutbendl;coutcendl;或:coutaendlbendlcendl

18、;,49,例2.3.4 设计一个程序,从键盘输入一个圆的半径,输出面积和周长。,思路分析:因涉及到数值计算,所以将圆的半径、面积、周长的数据类型均定义为double型。,50,源程序清单:#include using namespace std;void main()double r=0.0;double area=0.0;double circum=0.0;coutr;area=3.14*r*r;circum=2*3.14*r;cout面积为:area endl;cout周长为:circum endl;,51,符号常量,在编程时经常遇到的问题,当我们的程序中需要多次使用某个不变的数值时,可以

19、使用符号常量来代替,即符号常量,就是用标识符代表一个常量。,52,符号常量的使用规则,符号常量的特点是先定义后使用,而且定义时一定要赋初值,在程序中间不能改变其值。定义符号常量时习惯使用大写字母。,53,.符号常量的定义格式如下:,54,例2.3.4可改写为:,#include void main()const double PI=3.14;/使用符号常量PI double r=0.0;double area=0.0;double circum=0.0;coutr;area=PI*r*r;circum=2*PI*r;cout面积为:area endl;cout周长为:circum endl;,

20、55,现在我们再来总结一下完整C+程序的基本框架:,#include directivesusing namespace std;int main()声明常量 声明变量 输入语句 计算语句 输出语句 return 0;,56,2.4 运算符与表达式2.4.1算术运算符与算术表达式,57,例2.4.1求键盘输入的两个非0整数的和、差、积以及平均数。,58,源程序清单:#include using namespace std;void main()int a,b;double avg=0;coutab;avg=(a+b)/2.0;couta+b=a+bendl;couta-b=a-bendl;co

21、uta*b=a*bendl;cout平均数=avgendl;,59,表达式是计算求值的基本单位,可以将表达式理解为用于计算的公式,它由运算符(如+-*/)、运算量(也称操作数,可以是常量、变量等)和括号组成。执行表达式所规定的运算得到的结果值便是表达式的值。,60,C+提供了丰富的运算符,算术运算符、赋值运算符、逗号运算符,下章将继续介绍关系运算符、逻辑运算符、条件运算符 本章重点介绍算术运算符、赋值运算符、逗号运算符,61,算术运算符,62,算术运算符和表达式,基本数据类型和表达式,63,计算下列结果1/31/3.01.0/3,64,65,计算下列结果10%310%51%3,66,结合性是指

22、当表达式中的多个运算符优先级相同时,是按照从左至右的顺序执行,还是从右至左的顺序执行,从左至右称为左结合,从右至左称为右结合。,67,例:(1)设int a=5,b=2;float c=5.0,d=2.0;分别求a/b、a%b、c/d、a+a%b/b、a%d 的值。(2)已知int a=3467,写出计算其个、十、百、千位的表达式。解:a%10的值为7,a/10%10的值为6,a/100%10的值为4,a/1000%10或a/1000的值为3。(3)写出表示奇数、偶数的通式。解:x%2的值为0表示偶数,x%2的值为1表示奇数。(4)如下的表达式是否正确?(x+y)(x-y)解:错误,乘号不能省

23、略,应改为(x+y)*(x-y)。5x+1解:错误,乘号不能省略,应改为5*x+1。,68,2.4.2 赋值运算符与赋值表达式,例2.4.2.1编程计算奖金数额,奖金按销售额的5%计算。,69,源程序清单:/求奖金数#include using namespace std;void main()double sales=0.0;double bonus=0.0;coutsales;bonus=0.05*sales;cout销售额为:salesendl;cout奖金为:bonusendl;,70,赋值运算符和赋值表达式 简单的赋值运算符=,举例:n=n+5类型:赋值号左边对象的类型值:等号左边对

24、象被赋值后的值结合性:右结合 a=b=c=1;,Page 70,基本数据类型和表达式,71,赋值运算符和赋值表达式 复合的赋值运算符,有10种复合运算符:+=,-=,*=,/=,%=,=,&=,=,|=例:a+=3 等价于 a=a+3 x*=y+8 等价于 x=x*(y+8),基本数据类型和表达式,72,赋值运算符和赋值表达式 赋值表达式举例,a=5表达式值为5a=b=c=5表达式值为5,a,b,c均为5a=5+(c=6)表达式值为11,a为11,c为6a=(b=4)+(c=6)表达式值为10,a为10,b为4,c为6a=(b=10)/(c=2)表达式值为5,a为5,b为10,c为2a+=a-

25、=a*a 相当于:a=a+(a=a-a*a),Page 72,基本数据类型和表达式,73,注:,(1)不能用赋值语句给常量赋值。(2)表达式的数据类型必须和要赋值变量的数据类型匹配,否则系统将进行隐式类型转换(参见下节),编译时出现警告信息。(3)变量每次只能存储一个值,当另一个值赋给该变量后,新值会取代原有的值。如:执行语句a=5;a=10;后,变量a中的值为10。(4)age=age+1;表示将变量age的值增加1后再赋给age,即age中的值增加了1。age=age-1;表示age的值减少了1。,74,例2.4.2.2写出程序的运行结果:,#include using namespace

26、 std;void main()int i=5,j=5;int m=10,n=10;i+;+j;couti jendl;couti+jendl;m-;-n;coutm nendl;coutm-nendl;,75,自增(+)、自减(-)运算符只能用于变量,不能用于常量。,(1)i+表示先使用变量i的值,然后i值增加1;(2)i-表示先使用变量i的值,然后i值减少1;(3)+j 表示j值先增加1,然后再使用j的新值;(4)-j 表示j值先减少1,然后再使用j的新值;,76,+、-结合方向自右向左。,如-i+表示-(i+)。尽管自增、自减运算符有使程序简洁干练、提高编译效率的优点,但有时难于理解和调

27、试,容易产生二义性,如-i-,因此使用时要特别注意。,77,2.4.3 逗号运算符与逗号表达式,例2.4.3写出程序运行结果:#include using namespace std;void main()int x=0,y=2;int a=5,i=0,j=0;x=(a=3*5,a*4);y=(i=2,j=2,i+,-j);coutxendlyendl;,78,逗号运算符的使用格式为:,表达式1,表达式2,表达式3,表达式n计算机运行时先求解表达式1的值,再求解表达式2的值最后求解表达式n的值,表达式n的值作为整个表达式的值。,79,逗号运算符是所有运算符中级别最低的运算符。当多种运算符存在于

28、同一表达式时,需考虑各种运算符的优先级,我们已学的运算符的优先级为:算术运算符 赋值运算符 逗号运算符。,80,运算符优先级,括号+,-,sizeof,-(取负运算)!*,/,%+,-,=,=,!=&|?:赋值运算=逗号运算,,低,高,81,2.5 类型转换,2.5.1字符型数据的类型转换例2.5.1 将从键盘输入的小写字母转换成大写字母输出。#include using namespace std;void main()char c1;coutc1;c1=c1-32;cout大写字母为:c1endl;,82,(1)以字符形式输出时,首先将ASCII码转换成相应字符。(2)以整数形式输出时,直

29、接将ASCII码作为整数输出。(3)二者可进行运算、相互赋值。,83,2.5.2自动类型转换,例2.5.2 写出程序运行结果:#include using namespace std;void main()int a1=10,a2=5,k;double b,c,s;b=38.425,c=12.0;char c1=A,c2=B;s=b+a1-c;k=c1+c2+a1+b;coutk,sendl;,84,如果表达式值的数据类型与要赋值变量的数据类型不一致,大多数程序设计语言使用隐含类型转换来转换表达式值的类型,使其与变量的数据类型一致。所谓隐含类型转换是由系统自动进行,因常常会影响程序结果的准确率

30、,所以系统会出现警告信息,编程时要避免出现此类情况。,85,隐含类型转换原则:,(1)赋值号右边类型转换为赋值号左边变量的类型。(2)多种类型数据混合运算时,低类型转换为高类型 横向箭头表明必须的转换,即char和short int型在参加运算时必须先转换成 int 型。float型在参加运算时必须先转换成double 型。纵向箭头表明数据类型级别的高低,即运算对象为不同类型时转换的方向,如整型变量a与double型变量b求和运算时,整型变量a将转换为double型参加运算。(3)浮点型转换为整型时,去掉小数部分。(4)双精度转换为单精度时,四舍五入。,86,87,2.5.3强制类型转换,例2

31、.5.3 写出程序运行结果:#include using namespace std;void main()double x=0.0;int i=0;char c1=A,c2=b;x=3.6;i=(int)x;couti xendl;c1=c1+32;coutint(c1);coutc1;coutc2-32;coutchar(c2-32)endl;,88,强制类型转换的一般形式为:,数据类型(表达式)或(数据类型)表达式如本题中i=(int)x;也可以写为i=int(x);若将double型数据3.5转换成float型,可以用float(3.5)或(float)3.5。,89,注意:,1.float型数据强制类型转换为整型时直接取整数部分,double型数据强制类型转换为float型时直接去除多余位数。2.强制转换变量的类型使用时,只得到中间结果,原变量的类型不发生变化。比如i=(int)x;语句执行后x的类型仍为原来类型,只是i中得到了(int)x的结果。3.当float型变量的初始化值不为0.0时,需要使用强制类型转换。比如:float PI=float(3.14);或float PI=(float)3.14;,90,

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

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号