第2章 基本数据类型与简单程序设计.ppt_第1页
第2章 基本数据类型与简单程序设计.ppt_第2页
第2章 基本数据类型与简单程序设计.ppt_第3页
第2章 基本数据类型与简单程序设计.ppt_第4页
第2章 基本数据类型与简单程序设计.ppt_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第2章 基本数据类型与简单程序设计,2.1 C语言的基本数据类型 2.2 常量和变量 2.3 赋值语句 2.4 数据的输出 2.5 数据的输入 2.6 运算符和表达式 本章小结,2。1 C语言的基本数据类型,常用标准数据类型,2。2 常量和变量,2。2。1 常量和符号常量 在程序的运行过程中,其值保持不变的量称为常量。 #define PI 3.1415926 此后,凡在文件中出现的PI均可用3.1415926来代替。,2。2。2 整型常量,除了我们比较熟悉的整型常量如: 100、0、-256之外,Turbo C2.0中还有其他形式的整型常量。见表2-2。,例如:0235等于十进制数157,即

2、282 +381 +580 =157。 -0X23等于十进制数 -35。,任何类型的数据在计算机中都是以二进制补码形式存储的。 正数的补码等于其原码,而负数的补码等于其原码的反码+1。,例如: 0000 0000 0101 0011 表示 83 1111 1111 1010 1101 表示 -83 0000 0000 0000 0000 0000 0000 0101 0011 表示 83L 1111 1111 1111 1111 1111 1111 1010 1101 表示 -83L,2。2。3 浮点型常量,C语言中的浮点类型主要分为单精度和双精度浮点型两种。 除了十进制数的浮点表示法(如12

3、34.56)外,浮点数还可采用科学表示法: 1.23456e2 0.345E-3,出现在字母e(或E)之前的小数点,其左边和右边应有一位数字 在字母e(或E)之后必须是整数。 .123、1.34E1.2均是非法的浮点数。,2。2。4 字符型数据,C的字符常量是用单引号(即撇号)括起来的一个字符。 如 *、a、A、,变量名和符号常量名的命名方法相同,都是用标识符表示。 标识符就是一个名字,其命名必须按照一定的规则进行,只能由字母、数字和下划线组成,且第一个字符必须为字母或下划线,不允许使用数字。 如下面是合法的标识符。 Class_1, _abc1, id, a1b2, sum, total,下

4、面是不合法的标识符: a b /* 标识符不能含空格符 */ 1a /* 标识符不能以数字打头 */ #abc /* 标识符不能使用# */ xyz-1 /* 标识符不要把减号“-”和下划线“_”混淆 */,注意:大写字符和小写字符被认为是两个不同的字符。 如: a1和A1是两个不同的变量。 变量和符号常量的不同之处在于:变量的值可以改变,而符号常量则不行。,例2-1,int i, j, k; long a1, a2; 上面两行语句定义了3个int型变量i, j, k 和2个长整型变量a1、a2。,例2-2,float x1, x2; /* 定义2个单精度浮点型变量 */ double z1,

5、 z2; /* 定义2个双精度变量 */ float x; double y; x = 123456.789; /* 给变量赋初值 */ y = 123456.789;,2。3 赋值语句,所谓赋值,就是将一个数据存入一个连续的具有若干存储单元的存储空间中,该存储空间有一个名字,就是前面介绍的变量名。 对一个变量进行定义后,这个变量如果没有进行赋值,它的值是不确定的。,2。3。1 赋值语句的格式与功能,一般形式: 变量 = 表达式; 功能: 首先计算赋值号“=”右边表达式的值, 然后将结果值送给赋值号“=”左边的变量。 例如: g = 9.8; g = 10 + 20 - 9; “=”不是等号,

6、而是赋值号。,例2-1,char c1, c2; c1 = a; c2 = b; 上面定义了2个字符型变量 c1, c2,一个字符型变量可存放一个字符。 将一个字符常量存放到一个字符变量中,实际上并不是把该字符本身放到内存中,而是将该字符的相应的ASCII码存放内存单元中。 C语言字符型数据与整型数据之间可以通用。,例2-2,#include main( ) char c1 = a, c2; int k; k = c1; /* 将字符型变量c1赋给整型变量k */ c2 = 97; /* 将整数97赋给字符型变量c2 */ printf(%c, %c, %d, c1, c2, c1); /*

7、字符变量既可按字符形式输出,亦可按整型输出 */ printf(n %d, %c, k, k ); /* 整型变量既可按整型形式输出,亦可按字符型输出 */ getch(); ,运行结果: a, a, 97 97, a,例2-3 将小写字母转换成大写字母。,#include main( ) char c1,c2; int i, j; c1 = a; c2 = c1-32; /* c2 = A */ printf(%c, %c, c1, c2 ); getch(); ,运行结果: a, A,2。3。2 赋值语句中的类型转换,“=”左边变量与右边表达式的数据类型不一致时,C编译系统会自动实现数据类

8、型的转换。 转换的原则是,将赋值号右边的表达式值的类型转换成与左边变量相同的类型后再赋值。 例如: int a; long b; char c; a = b; /* long型变量b的值变换成int型后再赋给a */ b = a; /* int型变量a的值变换成long型后再赋给b */ b = a + c; /* int型a + c的值变换成 long型后再赋给 b */,当右边表达式值的类型比左边变量的类型要长时,会对右边的数据进行截取,仅取出与左边变量类型相同的长度,这意味着,会丢失高位字节或高位字。 例2-4 main( ) int a =350, b; char c ; c = a;

9、 b = c; printf(%d, %d, %d , a, c, b ); getch( ); ,运行结果为: 350, 94, 94,2。4 数据的输出,2。4。1 字符输出函数 putchar( ) 函数putchar( ) 的功能是把一字节的代码值所代表的字符输出到显示器上。 常用格式如下: putchar( c ); 其中参数C可以是字符常量、变量或字符表达式。,例2-5 字符输出函数putchar( )的功能,#include main( ) char c =A; putchar( c ); /* 输出字符A */ putchar(n); /* 输出换行符 */ putchar(#

10、); /* 输出字符# */ getch( ); ,2。4。2 格式化输出函数printf( ),格式化输出函数是按指定的格式完成输出过程。 一般使用形式如下: printf(输出格式串, 表达式表 ); 其中,输出格式串包含“格式符”或非格式符。“格式符”以%开头后面跟一个字母。,格式符见表2-4。,printf( ) 函数的功能是凡遇格式符,就将对应的表达式的值按指定格式输出到显示器上,凡遇非格式符,则原样输出。 输出格式串中的转换说明符与表达式的个数必须相同,它们按各自的先后顺序一对应,如图2-2所示。,例如: a =100; b =200; printf(%d + %d = %d n,

11、 a, b, a + b ); 输出结果为: 100 +200 =300(换行),例2-8,#include main( ) float x1 = 123.5678, x2 = -4567.789; printf(x1 = %f, x2 = %f n, x1, x2 ); printf(x1 = %8.2f t x2 = %8.2f n, x1, x2 ); getch( ); /* 按任意键 */ printf(%c%3c n, *, * ); printf(%d%3d n, 11, 22 ); ,运行结果为 x1 = 123.567802, x2 = -4567.789062 x1= 12

12、3.57 x2 = -4567.79 (按任意键后显示) * * 11 22,2。5 数据的输入,数据的输入,一般是以键盘为处理对象的,从键盘接受字符和数据。 字符输入函数getchar( ) 和输出函数putchar( ),是以一个字节的字符代码为单位来完成输入输出过程的。在程序中使用这两个函数时,要求在程序开头包含头文件stdio.h。即 #include ,2。5。1 字符输入函数 getchar( ),功能是接收从键盘上输入的字符。 在程序中使用这个函数输入字符时,可以用另一个变量接收读取的字符,例如: c = getchar( );,例2-9 字符输入函数getchar( )的功能,

13、#include main( ) char ch; ch = getchar( ); printf(ch = %c, ch = %d n, ch, ch ); getch( ); 当执行到语句:ch = getchar( ); 时,计算机就会等待用户击键(等待输入)。,2。5。2 格式化输入函数 scanf( ),scanf( ) 函数的功能是按指定的格式从键盘接受输入信息。 一般使用格式如下: scanf(“格式串”,地址表 ); “格式串”中既可以含格式符,也可以含非格式符。 输入时,凡遇非格式符,要求原样输入,凡遇格式符,按指定格式输入数据。,输入格式符表,例2-10 从键盘上输入直径d

14、的值,然后计算圆的面积area和周长len。,# define PI 3.1415926 main( ) float d, area, len, r; printf(请输入直径的值:); scanf(%f , ,2.6 运算符和表达式,将运算符和运算对象按一定规则连接起来就成为表达式.,2.6.1 算术运算符,说明:,1. 模除运算是两个整数相除后取余数;要求 % 两边必须是整型数据。 2. 若算术运算符两边均为整数,则结果仍为整数。 例: 7 / 3 = 2 1 / 2 = 0 3. 若参加运算的两个数中有一个数为实数,则结果为double型。 4. 每个运算符都有一个优先级。如乘除的优先级

15、高于加减。,在表达式求值时,按运算符的优先级高低次序进行。如先乘除,后加减。 ( )可改变运算次序。 若在一个运算符对象两侧的运算符的优先级相同,则按规定的“结合方向”处理。 有些运算符的结合方向为“从右到左”,即“右结合性”。,2.6.2 自增、自减运算符 “右结合性”,优先级为2。,“+”为自增运算符,“-”为自减运算符。 自增、自减运算表达式的结合方向都是自右至左。 但 +k与k+ 的不同之处在于: 前者先执行k = k + 1,然后再使用k的值; 而后者则先使用k的值,再执行k = k +1。,例2-11,#include main( ) int i, j, k; k = 30; i

16、= k+; /* 先将k值30赋给i,再使k值增1,此时k =31, i = 30 */ printf(i = %d, k = %d, i, k ); j = +k; /* k值先增1,再将k值赋于i,此时k =32, i = 32 */ printf(n j = %d, k = %d, j, k ); ,运行结果: i = 30, k = 31 j = 32, k = 32,2.6.3 赋值运算符 “右结合性”,优先级为14。,赋值运算符为“=” 例2-12 main( ) float k, x, y; x = ( k = 9.8 ) +7; printf(k = %5.1f, x = %5

17、.1f n , k, x ); y = k = 9.8 + 7; printf(k = %5.1f, y = %5.1f n, k, y ); ,运行结果: k= 9.8, x= 16.8 k= 16.8, y= 16.8,2.6.4 逗号运算符,逗号运算符将两个表达式连接起来。其优先级15,最低。 格式:表达式1,表达式2 功能:先求解表达式1,再求解表达式2。整个逗号表达式的值为表达式2的值。在很多情况下,使用逗号表达式只是想求出各个表达式的值。,例2-13,main( ) int i, j = 0123; /* 012是八进制数,其等价的十进制数是83*/ i = 0 x3a; /* 0

18、 x3a是十六进制数,其等价的十进制数是58*/ printf(%d, %d n , i, j ); ,运行结果: 58, 83,2.7 常用的数学函数,在使用数学函数之前,要求在程序开头包含头文件math.h,即: #include 以下函数的参数类型和函数值类型均为实型。 sqrt( x ) 求x的开平方,x0。 pow( x,y ) 求xy exp(x ) 求ex abs(x) 求x的绝对值,n为int整型数。 fabs(x) 求x的绝对值,n为double型浮点小数。 log( x ) 求x的对数,以e为底,x0。 log10( x ) 求x的对数,以10为底,x0。 sin( x ) 求x的正弦,x的单位为弧度。 cos(x ) 求x的余弦,x的单位为弧度。 tan(x ) 求x的正切,x的单位为弧度。 rand() 产生032767范围内的整数随机数。,例2-14:输入一个正数x,求x的开平方。,#include main( ) float x,y; printf(input x:); scanf(%f, ,运行程序的结果是: input x: 81 sqrt ( 81.00) = 9.00,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论