书签 分享 收藏 举报 版权申诉 / 81
上传文档赚钱

类型C语言程序设计任务驱动式-教程(PPT美化详细版)2单元-C语言程序设计基础课件.pptx

  • 上传人(卖家):三亚风情
  • 文档编号:3606311
  • 上传时间:2022-09-24
  • 格式:PPTX
  • 页数:81
  • 大小:3.97MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《C语言程序设计任务驱动式-教程(PPT美化详细版)2单元-C语言程序设计基础课件.pptx》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    语言程序设计 任务 驱动 教程 PPT 美化 详细 单元 基础 课件
    资源描述:

    1、2单元C语言程序设计基础C语言程序设计任务驱动式 教程(第2版)工业和信息化人才培养规划教材国家精品资源共享课程配套教材高职高专计算机系列人 民 邮 电 出 版 社上一单元,我们制作了小名片,现在更进一步提出问题,如何用程序语言描述一个人的年龄、性别、身高、体重?在程序中,数据又是如何存储的?带着这些问题,我们继续学习C语言吧。在本单元,将通过几个小任务介绍C语言中的标识符、常量、变量、简单数据类型、基本运算符号、表达式和数据类型转换等。这是以后深入学习C语言的重要基础。问题引入Question Introduction目录导航任务1 计算圆的面积整型与实型数据、常量与变量任务2 编制密码字符

    2、型数据思考与训练单元小结任务3 分离数字问题运算符与表达式任务1 计算圆的面积整型与实型数据、常量与变量在C语言中,整型、实型数据如何描述,什么是常量,什么是变量?在解答这些问题之前,先看一道数学问题。已知圆的半径r,求圆的面积s。工 作 任 务任务1 计算圆的面积整型与实型数据、常量与变量思 路 指 导已知:圆的半径r,整型。计算中用到圆周率PI的值为3.14,它是实型数据,并且在运算中值不可变。输出:圆的面积s,实型数据。处理:利用圆面积公式,求得圆面积。(一)标识符1系统标识符相 关 知 识(2)语句定义符。(3)预处理语句。(1)类型说明符。(一)标识符2用户标识符用户自定义的标识符称

    3、为用户标识符。C语言规定,标识符只能是由字母(AZ、az)、数字(09)、下画线组成的字符串,并且其第一个字符必须是字母或下画线。例如,_fen、aaa、a2、book、BOOK、h2h都是合法的标识符。【思考】以下标识符合法吗?3s,s*T,-3x,bowy-1 在使用标识符时还必须注意以下几点。(1)标识符是区分大小写的。例如,BOOK和book 是两个不同的标识符。(2)标识符虽然可由程序员随意定义,但标识符是用于标识某个量的符号。因此,命名应尽量有相应的意义,以便阅读理解,做到“见名知意”。(3)标识符不能和关键字相同。(二)常量和变量1常量用编译预处理语句#define规定一个标识符

    4、代表一个常量。在程序之前定义符号常量,通常常量名用大写字母标识。/*符号常量的使用*/#include#define PRICE 10/声明常量void main()int total,num;/声明变量 num=5;total=num*PRICE;/应用常量 printf(%d,total);通常说的常数,从表面形式即可判断它属于哪种数据类型。例如,234是整型,5.89是实型,7是字符型等。常量声明格式一般为:#define 例:#define PI 3.14直接常量符号常量(二)常量和变量2变量在C语言中,使用变量前必须先定义。定义变量的形式如下。类型说明符 变量名1,变量名2,;其中,

    5、方括号中的内容为可选项,可以同时定义多个相同类型的变量,之间用逗号分隔,如int a,b,c;。(1)定义变量。在C语言中,使用变量前必须先定义。定义变量的形式如下。类型说明符 变量名1=初值1,变量名2=初值2,;例如,float x=4.5;、char ch1=t,ch2=h;等都是合法的初始化变量语句。(2)初始化变量。(二)常量和变量给变量赋值是指把一个数据传送到系统给变量分配的存储单元中。定义变量时,系统会自动根据变量类型为其分配存储空间。但是如果此变量在定义时没有被初始化,那么它的值就是一个无法预料的、没有意义的值,所以通常要给变量赋予一个有意义的值。给变量赋值的一般形式如下。变量

    6、=表达式;例如:x=6;j=j+k;(3)给变量赋值。(二)C语言的发展和特点对于赋值语句,有如下说明。“=”在C语言中是赋值符号,不是等号。C语言中判断两个数值是否相等用比较运算符“=”赋值运算是把“=”右边表达式的值赋给“=”左边的变量。因此,像a=a+1这样的在数学中认为是不成立的表达式,在C语言中却是认可的,它表示将a原来的值加上1后再赋给a。允许辗转赋值,即允许一个表达式中包含多个“=”。例如:int x,y,z;x=y=z=1;表示先把1赋给变量z,再把z的值赋给变量y,最后将y的值赋给变量x。(三)C语言的数据类型C语言中的数据是有类型的,数据的类型简称数据类型。例如,整型数据、

    7、实型数据、字符型数据、字符数组类型(字符串)分别代表我们常说的整数、实数、字符、字符串。C语言提供的数据类型如图2-1所示。图2-1 C语言的数据类型(三)C语言的数据类型1基本数据类型整型数据(1)整型常量。八进制整型常数。八进制整型常数。八进制整型常数。八进制整型常数必须以0开头,即以0作为八进制数的前缀。数码取值为07。八进制数通常是无符号数。015(十进制为13)、0101(十进制为65)、0 177 777(十进制为65 535)十六进制整型常数的前缀为0X或0 x。其数码取值为09、AF或af。0X2A(十进制为42)、0XA0(十进制为160)、0XFFFF(十进制为65535)

    8、十进制整型常数没有前缀。其数码为09。237、568、65 535、1627(三)C语言的数据类型(2)整型变量。基本型短整型长整型无符号型类型说明符为int。类型说明符为short int。类型说明符为long int或long。类型说明符为unsigned。无符号型又可与上述3种类型匹配而构成以下3种类型。无符号基本型:类型说明符为unsigned int或unsigned。无符号短整型:类型说明符为unsigned short。无符号长整型:类型说明符为unsigned long。(三)C语言的数据类型表2-1整型数据表示范围及占用字节数类型说明符数的范围字节int2 147 483 6

    9、482 147 483 647(2312311)4unsigned(int)04 294 967 295(02321)4short(int)32 76832 767(2152151)2unsigned short(int)065 535(02161)2long(int)2 147 483 6482 147 483 647(2312311)4unsigned long(int)04 294 967 295(02321)4(三)C语言的数据类型声明整型变量的例子如下。int a,b,c;/a、b、c为整型变量long x,y;/x、y为长整型变量unsigned p,q;/p、q为无符号整型变量给

    10、整型变量赋值,可以采用如下两种方式。int a;a=10;/先声明,后赋值int a=10;/声明同时赋值(三)C语言的数据类型2基本数据类型实型数据(1)实型常数。实型常数又称为浮点型数据,按其能够表示的精度和范围,又分为单精度实型(float)、双精度实型(double)。单精度型数值的有效数字为67位,双精度型数值的有效数字为1516位。十进制小数由数字和小数点组成。小数点前表示整数部分,小数点后面表示小数部分。例如,0.234、123.23、.345都是合法的表示形式。指数形式又称科学表示法。包含数值部分和指数部分。数值部分表示方法同十进制小数形式,指数部分是一个可以是正数或负数的整型

    11、数据,中间e或E连接起来。例如,1e12、10e2、1.23E+2 等都是合法的指数表示法。(三)C语言的数据类型(2)实型变量。表2-2实型数据表示范围及占用字节数类型说明符数的范围有效数字占用字节数float3.41037 3.41038674double1.710307 1.71030815168实型数据的表示方法有两种形式:十进制小数形式和指数形式。十进制小数形式:指数形式:由数字09和小数点组成。例如,0.0、21.0、0.12、100.0、12.1等均为合法实数。由十进制数,加阶码标志“e”或“E”以及阶码(只能是整数,可以带符号)组成。一般形式为aEn,其值为a10n。例如,3.

    12、1e5(3.1105)、2.5E2(2.5102)注意:e大小写皆可,e前面的数字不能省,就是1也不能省,后面的数字一定要是整数。实型变量定义的格式和书写规则与整型相同。任务1 计算圆的面积整型与实型数据、常量与变量任 务 实 施已知半径,求圆的面积,程序代码如下。/*求圆的面积*/#define PI 3.14/声明常量main()int r;/圆半径r float s;/圆面积s r=2;s=PI*r*r;printf(s=%.2f,s);运行结果如图2-2所示。任务1 计算圆的面积整型与实型数据、常量与变量特 别 提 示(1)允许在一个类型说明符后,说明多个相同类型的变量。逗号主要用在类

    13、型说明和函数参数表中,分隔各个变量。空格多用于语句各单词之间,作间隔符。在关键字和标识符之间必须有一个以上的空格符作间隔,否则会出现语法错误,例如,把int a;写成 inta;,则C编译器会把inta当成一个标识符处理,其结果必然出错。(2)变量说明必须放在变量被使用之前。一般放在函数体的开头部分。(3)分隔符。在C语言中采用的分隔符主要有逗号和空格两种。各变量名之间用逗号间隔。类型说明符与变量名之间至少用一个空格间隔,如int a,b。任务1 计算圆的面积整型与实型数据、常量与变量以“/”开头的为单行注释,其后一行为注释内容;以“/*”开头并以“*/”结尾为多行注释,在“/*”和“*/”之

    14、间的即为注释内容。程序编译时,不对注释作任何处理。注释可出现在程序中的任何位置,用来向用户提示或解释程序的意义。利用注释调试程序,也是在调试程序过程中经常使用的调试方法。可将暂不使用的语句用注释符括起来,使编译跳过不做处理,待调试结束后再去掉注释符。(4)注释符。C语言的注释符分为单行注释和多行注释。目录导航任务1 计算圆的面积整型与实型数据、常量与变量任务2 编制密码字符型数据思考与训练单元小结任务3 分离数字问题运算符与表达式任务2 编制密码字符型数据编制一个密码器,实现给友军发送加密电报,报文由小写字母an组成,在发报时每输入一个字母,输出与其相邻的下一个字母。工 作 任 务任务2 编制

    15、密码字符型数据思 路 指 导输入:输入小写字母an,并存储到变量word中。输出:加密后的字母存储到变量password中,输出password。处理:输入字符型数据,输出加1后的字符型数据。基本数据类型字符型数据相 关 知 识(1)字符常量。C语言中有两种类型的字符常量。普通字符:用单引号括起来的单个字符,如%、2、a、A。a和A不同。单引号中的空格符也是一个字符常量。字符常量在内存中占一字节,存放的是字符的ASCII值,如,a的值是97,A的值是65,2的值是50。基本数据类型字符型数据转义字符:是以“”开头的具有特殊含义的字符,常用的转义字符见表2-3。转义字符说明n回车换行t横向跳到下

    16、一个制表位置b退格r回车反斜杠字符“”单引号符双引号符ddd13位八进制代表的字符xhh12位十六进制数据代表的字符表2-3转义字符基本数据类型字符型数据(2)字符串常量。字符串常量是用双引号括起来的零个、一个或多个字符序列,如Beijing、I m a student、%d%d等都是合法的字符串常量。(3)字符变量。字符变量用来存放字符常量,即只能存放单个字符,在内存中占1字节的存储空间。其定义方式如下。char c1,c2;也可以在定义时赋值:char c1=a,c2=b;注意:C语言中没有字符串变量,不能将一个字符串常量赋给一个字符型变量,例如,char c1=Beijing;是错误的。

    17、要想存放一个字符串,必须使用数组。基本数据类型字符型数据一个字符常量存放到字符型变量中,实际上存放的是该字符的二进制形式的ASCII值:A为65,B为66,a为97,b为98。正是因为字符数据的这种特殊存储形式,使得字符数据和整型数据之间可以进行运算。在输出时,一个字符型数据既可以以字符形式输出,又可以以整数形式输出。说明计算机使用特定的整数编码来表示对应的字符。美国信息交换标准编码(AmericanStandard Code for Information Interchange,ASCII)。ASCII是一个标准,其内容规定了把英文字母、数字、标点、字符转换成计算机能识别的二进制数的规则,

    18、并且得到了广泛认可和遵守。附录2为常用字符与ASCII代码对照表,供大家查阅使用。ASCII大致由以下两部分组成。(1)ASCII 非打印控制字符。ASCII表上的数字031分配给了控制字符,用于控制像打印机等一些外围设备。(参见ASCII表中的031)(2)ASCII打印字符。数字32127分配给了能在键盘上找到的字符,当查看或打印文档时就会出现。(参见ASCII表中的32127)。基本数据类型字符型数据例2.2字符型变量的输出main()char c1,c2;c1=a;c2=b;printf(%c,%cn,c1,c2);printf(%d,%d,c1,c2);运行结果:a,b97,98基本

    19、数据类型字符型数据例2.3大小写字母转换main()char c1,c2;c1=a;c2=b;c1=c1-32;c2=c2-32;printf(%c%c,c1,c2);运行结果:AB从ASCII表中可以看到,每个小写字母比大写字母的ASCII值大32,即a=A+32。任务2 编制密码字符型数据任 务 实 施编制密码程序代码如下。/*编制密码程序*/#include void main()char word,password;printf(请输入an的一个字母:);/输出提示 scanf(%c,&word);/输入字符 password=word+1;printf(加密后的字母为%cn,pass

    20、word);运行结果如图2-3所示任务2 编制密码字符型数据特 别 提 示(1)字符型数据除转义字符外,其值是由单引号引起来的一个字符。(2)字符3和数字3是不同的。ASCII表规定3的值是51。目录导航任务1 计算圆的面积整型与实型数据、常量与变量任务2 编制密码字符型数据思考与训练单元小结任务3 分离数字问题运算符与表达式任务3 分离数字问题运算符与表达式编写一个程序,从键盘输入一个三位整数,将其逆序输出。例如,输入123,输出321。工 作 任 务任务3 分离数字问题运算符与表达式思 路 指 导已知:一个三位整数存储到变量n中。输出:将n逆序输出。处理:将这个三位数分解,分别求出百位(n

    21、/100)、十位(n/10%10)、个位(n%10),然后逆序输出。运算符与表达式相 关 知 识运算符与表达式运算符:运算符是表示各种运算的符号。C把除了控制语句和输入/输出以外几乎所有的基本操作都作为运算符处理,所以C语言运算符可以看作是操作符。表达式:使用运算符将常量、变量、函数连接起来,构成表达式。运算符与表达式在C语言中除了提供一般高级语言的算术、关系、逻辑运算符外,还提供赋值运算符、位操作运算符、自增自减运算符等。运算符的常见类型及其作用如表2-4所示。运算符类型作用算术运算符用于处理四则运算赋值运算符用于将表达式的值赋给变量比较运算符用于表达式的比较,并返回一个真值或假值逻辑运算符

    22、用于根据表达式的值返回一个真值或假值位运算符用于处理数据的位运算sizeof运算符用于求字节数长度表2-4常见的运算符类型及其作用运算符与表达式相 关 知 识(1)算术运算符。1算术运算符和算术表达式+(正号,如+3)-(负号,如-2)+(加法运算符,如3+5)-(减法运算符,如5-2)*(乘法运算符,如3*5)/(除法运算符,如5/3,5.0/3)%(模运算符或求余运算符,如7%4)说明 两个整数相除的结果为整数。例如,5/3的值为1,舍去小数部分,而5.0/3的值为1.67(保留两位小数后)。求余也称为求模,要求运算符%两边的两个操作数均为整型,结果为两数相除所得的余数。例如,8%5的值为

    23、3。运算符与表达式相 关 知 识(2)算术表达式。用算术运算符和括号将运算对象(也称操作数)连接起来的、符合C语法规则的式子称为算术表达式。运算对象可以是常量、变量、函数等。例如,下面是一个合法的C算术表达式。a*b/c-1.5+a说明C语言算术表达式的书写形式与数学表达式的书写形式有一定的区别,如下所示。C语言算术表达式的乘号(*)不能省略。例如,数学式b2-4ac对应的C表达式应该写成:b*b-4*a*c。C语言表达式中只能出现字符集允许的字符。例如,数学式r2对应的C表达式应该写成:PI*r*r(其中PI是已经定义的符号常量)。C语言算术表达式不允许有分子分母的形式(即所有字符必须写在同

    24、一行中)。例如,(a+b)/(c+d)。运算符与表达式相 关 知 识(3)算术运算符的优先级与结合性。C语言规定了运算符的“优先级”和“结合性”,详见附录3运算符的优先级和结合方向表。在表达式求值时,先按运算符的“优先级别”从高到低依次执行。例如,表达式ab*c等价于a(b*c),因为“*”“/”运算符的优先级高于“+”“”运算符。如果在一个运算对象两侧的运算符的优先级别相同,则按规定的“结合方向”处理。【思考】ab+c,到底是(ab)+c还是a(b+c)?(b先与a参与运算还是先与c参与运算?)查附录3可知:加+、减运算优先级别相同,结合性为“自左向右”,也就是说,b先与左边的a结合。所以a

    25、b+c等价于(ab)+c。左结合性(自左向右结合方向):运算对象先与左边的运算符结合。右结合性(自右向左结合方向):运算对象先与右边的运算符结合。运算符与表达式相 关 知 识(3)算术运算符的优先级与结合性。在书写多个运算符的表达式时,应当注意各个运算符的优先级,确保表达式中的运算符能以正确的顺序参与运算。对于复杂表达式,为了清晰起见,可以加圆括号“()”强制规定计算顺序(不要用和)。可以使用多层圆括号,此时左右括号必须配对,运算时从内层括号开始,由内向外依次计算表达式的值。运算符与表达式相 关 知 识(1)赋值运算符、赋值表达式。2赋值运算符和赋值表达式p 赋值运算符:“=”是赋值运算符。p

    26、 赋值表达式:由赋值运算符组成的表达式称为赋值表达式。一般形式为变量赋值符表达式p 赋值表达式的求解过程为:将赋值运算符右侧的表达式的值赋给左侧的变量,同时整个赋值表达式的值就是刚才所赋的值。p 赋值的含义为:将赋值运算符右边表达式的值存放到左边变量名标识的存储单元中。例如,x=10+y;执行赋值运算(操作),将10+y的值赋给变量x,同时整个表达式的值就是刚才所赋的值。运算符与表达式 整个赋值表达式的值就是被赋值变量的值。例如,分析x=y=z=3+5这个表达式。根据优先级:原式x=y=z=(3+5);根据结合性(从右向左):x=(y=(z=(3+5)x=(y=(z=3+5)。序号表达式变量(

    27、值)表达式值1z=3+5z(8)82y=(z=3+5)y(8)83x=(y=(z=3+5)x(8)8表2-5运算步骤运算符与表达式相 关 知 识(2)复合赋值运算符。在赋值符“=”之前加上某些运算符,可以构成复合赋值运算符,复合赋值运算符可以构成赋值表达式。C语言中的许多运算符可以与赋值运算符一起构成复合运算符,即+=,-=,*=,/=,%=复合赋值表达式的一般形式为:=复合赋值表达式的一般形式等价于:=例如:n+=1 等价于 n=n+1x*=y+1 等价于 x=x*(y+1)注意:赋值运算符、复合赋值运算符的优先级比算术运算符低。运算符与表达式赋值运算符、赋值表达式举例。a=5a=b=5a=

    28、(b=4)+(c=3)例2.4假如a=12,分析:a+=a=a*aa+=a-=a*aa+=a-=(a*a)a+=(a-=(a*a)a+=(a=a-(a*a)a+=(a=a-a*a)a=a+(a=a-a*a)运算符与表达式相 关 知 识(3)自增、自减运算符及表达式。自增、自减运算符使变量的值增1或减1,形如:+i i+-i i-其中,+I、i(前置运算):先自增、自减,再参与运算;i+,i(后置运算):先参与运算,再自增、自减。例如,i=3,分析j=+i;j=i+;j=+i;i先自增,再赋值给j,i的值是4,j的值是4。j=i+;i先赋值给j,再自增,j的值是3,i的值是4。自增、自减运算符只

    29、用于变量,而不能用于常量或表达式。运算符与表达式例如,6+、(a+b)+、(i)+都不合法。+、的结合方向是“自右向左”(与一般算术运算符不同)。例如:i+(i+),合法。自增、自减运算符常用于循环语句中,使循环变量自动加1,也用于指针变量,使指针指向下一个地址。说明不管是前缀+还是后缀+,对于变量的作用都是加1操作;但对于表达式来讲,+在前的表达式用的是变量加1以后的新值,+在后的表达式用的是变量原来的值。-运算符与+相同。运算符与表达式相 关 知 识(4)有关表达式使用过程中的问题说明。C运算符和表达式使用灵活,但是ANSI C并没有具体规定表达式中的子表达式的求值顺序,允许各编译系统自己

    30、安排。这可能导致有些表达式对不同编译系统有不同的解释,并导致最终结果不一致。C语言有的运算符为一个字符,有的由两个字符组成,C编译系统在处理时尽可能多地将若干字符组成一个运算符(在处理标识符、关键字时也按同一原则处理),如i+j将解释为(i+)+j而不是i+(+j)。为避免误解,最好采用大家都能理解的写法,比如通过增加括号明确组合关系,改善可读性。C语言中类似的问题还有函数调用时实参的求值顺序,C标准也无统一规定。总之,不要写别人看不懂(难看懂),也不知道系统会怎样执行的程序。运算符与表达式3逗号运算符和逗号表达式逗号表达式的一般形式为:表达式1,表达式2,表达式n逗号表达式的求解过程是:自左

    31、向右,求解表达式1,求解表达式2求解表达式n。整个逗号表达式的值是表达式n的值。例如,逗号表达式3+5,6+8的值为14。例2.5分析a=3*5,a*4的值查附录3可知,“=”运算符优先级高于“,”运算符(事实上,逗号运算符级别最低)。上面的表达式等价于:(a=3*5),(a*4)所以整个表达式计算后值为60(其中a=15)。运算符与表达式例2.6分析下列程序main()int x,a;x=(a=3,6*3);/*a=3 x=18*/printf(%d,%dn,a,x);x=a=3,6*a;/*a=3 x=3*/printf(%d,%dn,a,x);运行结果为3,183,3逗号表达式主要用于将

    32、若干表达式“串联”起来,表示一个顺序的操作(计算)。在许多情况下,使用逗号表达式的目的只是想分别得到各个表达式的值,而并非一定需要得到和使用整个逗号表达式的值。运算符与表达式4位运算符表2-6位运算符运算符运算范例&按位与0&0值是00&1值是01&1值是11&0值是0|按位或0|0值是00|1值是11|1值是11|0值是1取反0值是11值是0运算符与表达式续表运算符运算范例按位异或00值是001值是111值是010值是1 左移000001011值是0000101010000101 右移000001011值是00000010100001011值是10000010运算符与表达式下面的运算都是针对

    33、byte类型的数,也就是1字节大小的数。(1)与运算符“&”是将参与运算的两个二进制数进行“与”运算,如果两个二进制位都为1,则该位的运算结果为1,否则为0。例如,将5和12进行与运算,5对应的二进制数为00000101,12对应的二进制数为00001100,具体演算过程如下。00000101&00001100 00000100运算结果为00000100,对应数值4。运算符与表达式(2)位运算符“|”是将参与运算的两个二进制数进行“或”运算,如果二进制位上有一个值为1,则该位的运行结果为1,否则为0。例如,将5与12进行或运算,具体演算过程如下。00000101|00001100 000011

    34、01 运算结果为00001101,对应数值13。(3)位运算符“”只针对一个操作数进行操作,如果二进制位是0,则取反值为1;如果是1,则取反值为0。例如,将5进行取反运算,具体演算过程如下。00000101 11111010运算结果为 11111010,对应数值10。运算符与表达式(4)位运算符“”是将参与运算的两个二进制数进行“异或”运算,如果二进制位相同,则值为0,否则为1。例如,将5与12进行异或运算,具体演算过程如下。00000101 00001100 00001001运算结果为00001001,对应数值9。(5)位运算符“”就是将操作数的所有二进制位向左移动一位。运算时,右边的空位补

    35、0,左边移走的部分舍去。例如,一个byte类型的数字5用二进制表示为00000101,将它左移一位,具体演算过程如下。00000101”就是将操作数的所有二进制位向右移动一位。运算时,左边的空位根据原数的符号位补0或者1(原来是负数就补1,是正数就补0)。例如,一个byte的数字5用二进制表示为00000101,将它右移一位,具体演算过程如下。00000101 1 00000010运算结果为00000010,对应数值2。运算符与表达式同一种数据类型在不同的编译系统中所占空间不一定相同,例如,在基于16位的编译系统中,int类型占2字节,而在32位的编译系统中,int类型占4字节。为了获取某一数

    36、据或数据类型在内存中所占的字节数,C语言提供了sizeof运算符,使用sizeof运算符获取数据字节数,其基本语法规则如下。sizeof(数据类型名称);或sizeof(变量名称);5sizeof运算符运算符与表达式例2.7 计算每种数据类型所占内存的大小void main()/通过变量名称计算变量所属 数据类型占用内存大小 int v_int=10;double v_double=111.0;printf(v_int:%dn,sizeof(v_int);printf(v_double:%dn,sizeof(v_double);/通过类型名称计算各基本数据类型所占内存大小 printf(cha

    37、r:%dn,sizeof(char);printf(short:%dn,sizeof(short)printf(long:%dn,sizeof(long);printf(float:%dn,sizeof(float);printf(double:%dn,sizeof(double);printf(unsigned char:%dn,sizeof(unsigned char);printf(unsigned short:%dn,sizeof(unsigned short);printf(unsigned int:%dn,sizeof(unsigned int);printf(unsigned l

    38、ong:%dn,sizeof(unsigned long);运行结果如图2-4所示。运算符与表达式说明C语言运算符又分为单目、双目、三目3种。进行运算时,只需要一个运算对象的运算符为单目运算符,如正号(+)、负号(-)、自增(+)、自减(-)等;进行运算时,需要两个运算对象的运算符为双目运算符,如算术运算符:加(+)、减(-)、乘(*)、除(/)等;C语言中只有一个三目运算符,运算时需要3个运算对象,即条件运算符(?:),见第4单元的拓展与提高。任务3 分离数字问题运算符与表达式任 务 实 施三位整数逆序输出,程序清单如下。/*三位数逆序输出*/#include void main()int

    39、n,a1,a2,a3;printf(请输入三位整数:);scanf(%d,&n);a1=n/100;/求百位 a2=n/10%10;/求十位 a3=n%10;/求个位 printf(%d%d%dn,a3,a2,a1);/逆序输出运行结果如图2-5所示。任务3 分离数字问题运算符与表达式特 别 提 示(1)分离数字是C语言的基础算法之一,请读者认真理解并学会。(2)“%”符号是求余运算符,%符号两边要求是整数。(一)进制及进制转换拓展与提高1进制(1)二进制(2)八进制(3)十六进制二进制是一种“逢二进一”的机制,它用0和1两个符号来描述。当用二进制表示十进制数字2时,由于二进制的数码只有0和1

    40、,所以根据“逢二进一”的规则,需要向高位进一位,表示为0010。同理,使用二进制表示十进制数字4时,继续向高位进一位,表示为0100。八进制是一种“逢八进一”的进制,它由07八个符号来描述。当使用八进制表示十进制数字8时,由于表示八进制的符号只有07,因此,根据逢八进一的规则,需要向高位进一位,表示为10。同理,使用八进制表示十进制数字16时,继续向高位进一位,表示为20。十六进制是一种“逢十六进一”的进制,它由 09、AF十六个符号来描述。当使用十六进制表示十进制数字16时,由于表示十六进制的符号只有09、AF,因此,根据逢“逢十六进一”的规则,需要向高位进一位,表示为10。同理,使用十六进

    41、制表示十进制数字32时,继续向高位进一位,表示为20。(一)进制及进制转换2进制转换相 关 知 识(1)十进制与二进制之间的转换(1)十进制与二进制之间的转换 十进制转二进制十进制转二进制可以采用除2取余的方式。也就是说,将要转换的数,先除以2,得到商和余数,将商继续除以2,得到商和余数,此过程一直重复直到商为0。最后将所有得到的余数倒序排列,即可得到转换结果。二进制转十进制二进制转化成十进制要从右到左用二进制位上的每个数去乘以2的相应次方,例如,将最右边第一位的数乘以2的0次方,第二位的数乘以2的1次方,第n位的数乘以2的n1次方,然后把所有乘的结果相加,得到的结果就是转换后的十进制。(一)

    42、进制及进制转换相 关 知 识(2)八进制与二进制之间的转换将二进制数自右向左每3位分成一段(若不足3位,用0补齐),然后将二进制每段的3位转为八进制的一位,转换过程中数值的对应关系如表2-7所示。二进制八进制00000011010201131004101511061117接下来,用二进制数00101110演示如何转为八进制,具体演算过程如下。每3位分成一段,结果为000 101 110。将每段的数值分别查表替换,结果如下。110610150000 将替换的结果组合,组合后的八进制为0065(注意八进制必须以0开头)。(一)进制及进制转换相 关 知 识(3)十六进制与二进制之间的转换将二进制转换

    43、为十六进制与将二进制转换为八进制类似,不同的是,要将二进制数每4位分成一段(若不足4位,则用0补齐),查表转换即可。二进制转十六进制过程中数值的对应关系如表2-8所示。二进制十六进制二进制十六进制00000100080001110019001021010A001131011B010041100C010151101D011061110E011171111F接下来,二进制数01000110转换为十六进制,具体步骤如下。每4位分成一段,结果为0100 0110。将每段的数值分别查表替换,结果如下。0110 60100 4 将替换的结果组合,转换的结果为0 x46或0X46(注意十六进制必须以0 x或

    44、者0X开头)。(二)数据类型转换1自动转换图2-7数据类型转换例如,对于表达式:3.141 592 65*2*1.5-2 269 978其中,3.141 592 65为双精度浮点型,2为整型,1.5为单精度浮点型,2 269 978为长整型,根据规则,均转换为双精度浮点型再运算。(二)数据类型转换2强制转换强制转换是通过类型转换运算来实现的。其功能是把表达式的运算结果强制转换成类型说明符表示的类型,其一般形式为:(类型说明符)(表达式)功能是把表达式结果的类型转换为圆括号中的数据类型。注意,类型名必须用括号()括起来。表达式一般用括号()括起来,但单个变量可以不用括号括起来。例如:(doubl

    45、e)i(int)5.5%2(float)(5%3)注意:数据前面的圆括号称为强制类型转换符,优先级高于算术运算符。强制类型表达式的类型是(类型名)代表的类型,原来变量本身的类型不变。(二)数据类型转换例2.8数据类型强制转换#include void main()int x;float y=10.5;x=(int)y%4;printf(x=%d,y=%.2f,x,y);运行结果如下。x=2,y=10.50(三)经典算法例2.9累加程序#include void main()int x=0;x=x+1;x=x+2;x=x+3;x=x+4;x=x+5;printf(1+2+3+4+5=%dn,x)

    46、;代码x=0;是给x赋初值,重点关注:x=x+1;这行代码使用了非常经典的累加算法,即把“=”右边表达式的值赋给左边的变量。注意:累加算法x的初值为0,累乘算法x的初值为1。累乘和累加相似,例如,计算1*2*3*4*5,程序代码如例2.10所示。1累加和累乘所谓累加,就是将一系列的数字分别相加,最后得到一个结果。例如,计算1+2+3+4+5,程序代码如例2.9所示。(三)经典算法例2.10累乘程序#include void main()int x=1;x=x*1;x=x*2;x=x*3;x=x*4;x=x*5;printf(1*2*3*4*5=%dn,x);(三)经典算法2交换两个变量的值假设

    47、有两个变量,x=10,y=8,现在要求使得x=8,y=10,该如何交换两个变量的值呢?这是非常经典的交互算法。这里需要使用第3个变量来临时保存数值,如图2-8所示,引入第3个变量z。程序代码如例2.11所示。(a)(b)(c)(d)图2-8交换算法示意图(三)经典算法例2.11交换两个变量的值#include void main()int x,y,z;x=10,y=8;printf(交换前x=%d,y=%dn,x,y);z=x;/借助第三变量交换两个变量的值 x=y;y=z;printf(交换后x=%d,y=%dn,x,y);运行结果为交换前x=10,y=8交换后x=8,y=10目录导航任务1

    48、 走进C语言世界C语言概述任务2 制作一张自己的名片C程序框架结构思考与训练单元小结单元小结Summary本单元重点介绍了变量与常量的应用、基本数据类型及其表示方法、算术运算符、赋值运算符、逗号运算符、sizeof运算符、位运算符及表达式、数制及数制转换、数据类型转换等知识点,另外通过例题展示了一些仅仅使用变量的经典算法,这些算法是学习更复杂算法的基础。通过本单元的学习,读者能够了解C语言程序的基础知识,为后续学习做好准备。目录导航任务1 走进C语言世界C语言概述任务2 制作一张自己的名片C程序框架结构思考与训练单元小结思考与训练1讨论题(1)C语言为什么规定对所有用到的变量都要“先定义,后使

    49、用”?(2)定义变量时一定要赋初值吗?不赋初值的变量一定不能用吗?(3)不同类型数据之间在进行运算时,结果类型应该如何确定?2选择题(1)以下正确的C语言标识符是()。A%XBa+bCa123Dtest!(2)已定义int a,b;,则以下不正确的C语句是()。Aa*=5;Bb/=2;Ca+=1.75;Db%=a;(3)若x、i、j和k都是整型变量,则执行下面的表达式后,x的值为()。x=(i=4,j=16,k=32)Thinking and practicing思考与训练 A4B16C32D52(4)C语言中的标识符只能由字母、数字和下画线3种字符组成,且第一个字符()。A必须是字母B必须为

    50、下画线 C必须为字母或下画线D可以是字母、数字、下画线中的任一字符(5)下面正确的字符常量是()。AcBCw D(6)设x、y均为float型变量,则以下赋值语句不合法的是()。A+x;By=(x%2)/10;Cx*=y+8;Dx=y=0;Thinking and practicing思考与训练(7)下列不正确的转义字符是()。A B C 19 D 0(8)下列不是C语言常量的是()。Ae2B074CaD 0(9)若定义了int x;则将x强制转化成双精度类型应该写成()。A(double)xBx(double)Cdouble(x)D(x)double (10)在C语言中,要求参加运算的数必须

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:C语言程序设计任务驱动式-教程(PPT美化详细版)2单元-C语言程序设计基础课件.pptx
    链接地址:https://www.163wenku.com/p-3606311.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库