C语言程序设计教程 第2版 教学课件 ppt 宗大华 陈吉人 《C语言》课件-2

上传人:E**** 文档编号:89346746 上传时间:2019-05-23 格式:PPT 页数:36 大小:1.40MB
返回 下载 相关 举报
C语言程序设计教程 第2版  教学课件 ppt 宗大华 陈吉人 《C语言》课件-2_第1页
第1页 / 共36页
C语言程序设计教程 第2版  教学课件 ppt 宗大华 陈吉人 《C语言》课件-2_第2页
第2页 / 共36页
C语言程序设计教程 第2版  教学课件 ppt 宗大华 陈吉人 《C语言》课件-2_第3页
第3页 / 共36页
C语言程序设计教程 第2版  教学课件 ppt 宗大华 陈吉人 《C语言》课件-2_第4页
第4页 / 共36页
C语言程序设计教程 第2版  教学课件 ppt 宗大华 陈吉人 《C语言》课件-2_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《C语言程序设计教程 第2版 教学课件 ppt 宗大华 陈吉人 《C语言》课件-2》由会员分享,可在线阅读,更多相关《C语言程序设计教程 第2版 教学课件 ppt 宗大华 陈吉人 《C语言》课件-2(36页珍藏版)》请在金锄头文库上搜索。

1、第2章 数据类型、运算符与表达式,1.,2.,3.,本章讲述内容:,5.,C语言的基本数据类型 ;,C语言认可的常量及其表示法 ;,C语言中变量的数据类型、存储类型 ;,C语言中的运算符和由它们组成的表达式 。,4.,C语言中完整变量说明的组成 ;,未带星号的数据类型,在C语言的保留字里有自己的名字,它们的长度是已知的。一个常量或变量若有这样的数据类型,那么它占用的字节数,C语言早就规定好了。,实型被分成单精度和双精度,即是日常所说的实数。,2.1 C语言的数据类型,所谓一个数据的“数据类型”,是该数据自身的一种属性,它告诉编译程序,这个数据要在内存中占用多少个字节。程序中涉及的各种数据(常量

2、、变量),都必须存放在内存里,因此这是数据的极为重要的信息。,.,.,C语言的各种数据类型,数据类型,基本类型,结构类型,指针型,空类型,整型,实型,字符型,带符号整型,无符号整型,带符号整型,带符号短整型,带符号长整型,无符号整型,无符号短整型,无符号长整型,单精度型,双精度型,数组型,结构型(*),共享型(*),枚举型(*),(1),在基本类型中,虽把整型数据分成带符号整型与无符号整型两种,又各有短和长之分,其实那是我们最熟悉的数据类型,即是日常所说的整数。,(2),(3),(4),带有星号的数据类型,是C语言没 给出定义的类型。若要使用,必须编程者自 己先给出定义,确定其占用的字节数,才

3、能说明具体的变量。,不同类型数据所占用的内存区域大小是不同的,这个区域的字节数被称为是这种数据类型的“长度”。,.,基本数据类型,数据类型符,占用字节数(长度),整型,int,2,短整型,short int,2,长整型,long int,4,无符号整型,unsigned int,2,无符号短整型,unsigned short,2,无符号长整型,unsigned long,4,单精度实型,float,4,双精度实型,double,8,字符型,char,1,.,“结构型”、“共用型”、“枚举型”的称谓,只是一种笼统提法。比如用户要在自己的程序里使用所谓的结构型数据类型,那么必须先给出这个结构型数据

4、类型的定义:它叫什么名字,它由哪些成分构成(从而知道一个这种类型的数据总共需要占用多少个字节)。然后,才能用这个名字去说明一个变量,使其具有这种结构型的数据类型。至于定义一个结构型、共享型或枚举型的数据类型的方法,将在第7章中介绍。,2.2 常 量,2.2.1 整型常量,.,所谓“常量”,是指在程序执行过程中,其值不能改变的量。C语言中有四种常量:整型常量、实型常量、字符常量和字符串常量。一个常量的类型,由它的书写格式确定,无须事先加以说明。,.,值为整数的常量称为“整型常量”,简称“整常量”,它包括正整数、零和负整数。整常量的数据类型是整型(int)的。,.,整常量的十进制、八进制和十六进制

5、书写形式,(1),十进制整常量的书写形式,十进制整常量是通常意义下的整数。例如,112,2 008,58,0等。要注意,在C语言中用十进制表示整常量时,第一个数字不能是0(除了0本身外)。,(2),八进制整常量的书写形式,八进制整常量是在通常意义下的八进制整数前加上前缀数字“0”构成的。0112是八进制数112,即是十进制的74;00表示八进制数0,也是十进制的0。,(3),十六进制整常量的书写形式,十六进制整常量是在通常意义下的十六进制整数前加上前缀“0x”(数字0和小写字母x)构成。0x15表示十六进制数15,它是十进制的21;+0xFF表示十六进制数+FF,它是十进制的+255;0x0表

6、示十六进制数0,也就是十进制的0 。,.,八进制和十六进制整常量前的前缀“0”和“0x”,只起标识作用,用来避免与C语言的标识符相混淆,否则C编译程序无法区分哪些是标识符,哪些是整型常量,没有什么实际的意义。,.,整型或短整型常量要占用内存的2个字节,存放时是将其相应的二进制数放在2个字节(16个二进制位)里,其数值范围是十进制的 32 768+32 767 ;长整型常量要占用内存的4个字节,存放时是将相应的二进制数放在4个字节(32个二进制位)里,其数值范围是十进制的2 147 483 648+2 147 483 647。若是长整型常量,在程序中书写时,需在它的末尾加上小写字母“l”,或大写

7、字母“L”,以便区分。,例:,画出整常量286、0374和0x8A6C在内存中的存放形式。,解:,C总是将数值转换成二进制数后存放在单元里的。,0374(= 27 + 26 + 25 + 24 + 23 + 22)是八进制整常量,占内存2个字节:,0x8A6C(= 215 + 211 + 29 + 26 + 25 + 23 + 22)是十六进制整常量,占内存2个字节:,286:,0,0,0,0,0,0,0,1,0,0,0,1,1,1,1,0,0374:,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0x8A6C:,1,0,0,0,1,0,1,0,0,1,1,0,1,1,0,0

8、,286(=28 + 24 + 23 + 22 + 21)是十进制整常量,占内存2个字节:,(1),(2),(3),12、012和0x12是整型常量,分别是十进制整数、八进制整数和十六进制整数;12L、012L和0x12L是长整型常量,分别是十进制长整数、八进制长整数和十六进制长整数。注意,虽然12和12L有相同的数值,但12在存储器中占用2个字节,12L在存储器中占用4个字节。,区分12、012、0x12、12L、012L、0x12L哪些是整型常量,哪些是长整型常量?,例:,解:,例:,解:,编写一个程序,将十进制整数31,按照十进制、八进制和十六进制的形式输出。,程序实现,(1),#inc

9、lude “stdio.h“ main() printf (“the decimal number of 31 = %d n“, 31); printf (“the octal number of 31 = %o n“, 31); printf (“the hexadecimal number of 31 = %x n“, 31); ,(2),分析与讨论,由于格式符“%d”、“%o”、“%x”能够控制数据的输出形式,因此在函数printf()里,可利用“%d”、“%o”和“%x”分别决定31以十进制形式、八进制形式以及十六进制形式的输出。程序运行后,观察用户窗口,其输出如图所示。,.,2.2.

10、2 实型常量,.,值为实数的常量称为“实型常量”,简称“实常量”。在C语言中,实常量只有十进制的书写形式,没有八进制和十六进制的实常量。,.,在C语言中,十进制的实常量可以用一般形式与指数形式两种办法来表示。,(1),一般形式的十进制实常量就是通常的实数,由整数、小数点和小数3部分构成。小数点是必须的,整数或小数部分可以省略。例如12.245、1.2345、0.618、.123、123.,都是C语言中合法的实常量。要注意:123表示整数,123.表示实数。,(2),指数形式的十进制实常量由尾数、小写字母e或大写字母E以及指数3部分构成。e或E必须要有,尾数部分可以是整数,也可以是实数。指数部分

11、只能是整数 (可以带+或符号)。例如2.75e3,6.E5,.123E+4等都是C语言合法的以指数形式表示的实常量;而.E8,e3,3.28E,8.75e3.3等都不是C语言合法的实常量。,可用不同的尾数和指数表示同一实数。若尾数写成是小数点前有且仅有一位非0数字,那就称它为“规范化的指数形式”。比如,125.46规范化的指数形式是1.2546e2。在C语言中,以指数形式输出实数时,都按规范化的指数形式输出。,.,实常量属于实型。如果它是单精度的,则要用内存的4个字节来存放它;如果它是双精度的,那么要用内存的8个字节来存放它。在printf()函数里,若把格式符换成“%f”或“%e”,就可把要

12、输出的实型值,按一般形式或指数形式(单精度)加以输出。,.,在printf()函数里,如果把格式符换成“%c”,就可以把要输出的字符常量按对应的字符形式打印出来。,2.2.3 字符常量,C语言中,用一对单引号前、后括住的单个字符被称为“字符常量”。比如,b、G、=、%、 n、x41和110等,都是字符常量。若要得到反斜杠“”这个字符常量,在程序中应写成;要得到单引号“”这个字符常量,在程序中应写成“。,.,.,C语言区分大小写,因此a和A是两个不同的字符常量。字符常量为字符(char)型数据,在内存需一个字节(8个二进制位)来存放该字符的ASCII码值(见附录2)。,.,ASCII码的数值范围

13、是十进制的0128。若限制整常量的值在0128之间,那么从整常数的角度看,它是这个整常数的数值;从字符常数的角度看,它是某字符的ASCII码值。所以,在0128之间,整常量和字符常量可以通用。,.,例:,编写一个程序,将整常量100 按十进制和字符两种形式加以输出;将字符常量9按字符和十进制两种形式加以输出。,#include “stdio.h“ main() printf (“the decimal form of 100 is %d n“, 100); printf (“the character form of 100 is %c n“, 100); printf (“the chara

14、cter form of 9 is %c n“, 9); printf (“the decimal form of 9 is %d n“, 9); ,2.2.4 字符串常量,.,在C语言中,用一对双引号前、后括住的零个或若干个字符,被称为“字符串常量”,简称“字符串”。如“a character string“、“G“、“486“和“t“Name Addressn“等都是字符串。要注意,若双引号内没有何字符,即“,称为“空字符串”。,.,一个字符串中所含的字符个数,称为该“字符串的长度”。字符串中若有转义字符,应把它视为一个字符来计算。,.,内存中存放字符串时,是存放串中每个字符的ASCII码

15、值。各字符串所含字符数是不同的,因此在存放完字符串里的字符后,还要用一个字节存放一个ASCII码值为0的字符,以标识该字符串的结束。这个ASCII码值为0的字符,称为“空字符”,程序中以转义字符“0”的形式来书写,它是字符串的“结束标记”。,例:,解:,画出字符串“This is a book“在内存中的存放形式。,该字符串共14个字符,因此要分配给它15个字节,前14个字节存放14个字符对应的ASCII码值,最后一个字节存放字符串结束符“0”。图中,每一个字节里存放的数值,是该字符的十进制ASCII码值,下面列出的是ASCII码值对应的字符。,84,104,0,105,115,32,105,

16、115,32,97,32,98,111,111,107,T,h,i,s,i,s,a,b,o,o,k,0,空格符,字符串结束符,ASCII码值,对应的字符,0是视空字符(即NULL)为一个字符常量。在内存里用一个字节存放它的ASCII码值(十进制的0)。,例:,在C语言中,a和“a“有什么区别?,97,97,0(或NULL),(1),a是一个字符常量。在内存中,用一个字节存放a,存放字母a的ASCII码值(十进制的97)。,(2),“a”是一个长度为1的字符串常量。在内存中,要用两个字节存放“a”,第一个字节存放字母a的ASCII码值(十进制的97),第二个字节存放字符串结束符“0”。,内存中的字符a,内存中

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号