第2章数据类型.ppt_第1页
第2章数据类型.ppt_第2页
第2章数据类型.ppt_第3页
第2章数据类型.ppt_第4页
第2章数据类型.ppt_第5页
已阅读5页,还剩41页未读, 继续免费阅读

下载本文档

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

文档简介

1、精讲多练C语言,第2章 基本数据类型 计算机教学实验中心 西安交通大学,教学目标,C语言的基本数据类型 整型、实型 格式化输入/输出函数 C语言的数据(形式) 常数、变量,学习要求,1掌握常量与变量、整型数与实型数的概念。 2掌握字符型数据与字符串型数据的概念以及二者的区别。 3掌握各种类型的变量说明及其初始化。 4掌握scanf()函数和printf()函数的使用方法。 5进一步熟悉C程序的编辑、编译、连接、运行的过程。,授 课 内 容,2.1 数据类型 2.2 常量 2.3 变量 2.4 常见的库函数 2.5 8进制和16进制常量 2.6 类型修饰符 程序设计举例 调试技术,2.1 数据类

2、型,计算机能够做许多事情。但是,归根到底计算机只能处理数据。 大千世界丰富多彩。为表现不同性质的事物,要用不同的数据类型。 在计算机中,为方便数据处理,采用两种基本形式存放数据。,数据,是对认识的事实性记载 是用来表示客观事物的符号 是指能够由计算机处理的数字、字母、符号、声音、图象、影视信息等。 是程序的必要组成部分和程序处理的对象。,数的表示,在计算机中为了区别不同的数,使用了不同的表示 方法。包括: 整数的表示 实数的表示 字符数据的表示 数组的表示,数据类型,计算机只能存放二进制数据。不同类型的事物如何区分和描述?由此产生数据类型。 不同类型的数据占据不同长度的存储单元。 不同类型的数

3、据对应不同的值域范围。 不同类型的数据对应不同的操作(运算)及规则。 数据类型越丰富,求解能力越强大。,图2.1 C语言数据类型的分类,基本数据类型,C语言的基本数据类型: 数据类型 类型说明浮 占用字节 字符型 char 1个 短整数 short 2个 整型 int 4个 浮点型 float 4个 双精度型 double 8个,数据在计算机中的存放,数据在计算机中采用二进制存放;一个字节8个二进制位,示意图如下:,数的表示范围:-2727-1(-128127) 显然,一个字节表示数的范围是有限的。要表示更大范围内的数,就要使用多个字节。,7,0,整数的存储格式,字符型 短整型 短整数表示范围

4、为:-215215-1(-3276832767) 长整型 长整数表示范围为:-231231-1,7,0,15,8,7,0,31,24,23,16,15,8,7,0,实数的表示,实数也称为浮点数,用于表示小数;有两种表示形式: 十进制形式:. 指数形式:.,一般浮点数的可以达到7位有效数字。例如1234.567。双精度浮点数的有效位数可以达到1516位。,尾数部分,指数部分,31,24,23,16,15,8,7,0,例2-1 输出基本数据类型字节的大小,/ Example 2-1:输出基本数据类型的字节大小 #include void main() printf(Type int has siz

5、e of %d bytes.n,sizeof(int); printf(Type char has size of %d bytes.n,sizeof(char); printf(Type long has size of %d bytes.n,sizeof(long); printf(Type float has size of %d bytes.n,sizeof(float); printf(Type double has size of %d bytes.n,sizeof(double); ,常数和变量,变化的量称变量; 不变化的量称常量; 常量和变量是计算机语言中数据的两种基本形式。,

6、2.2 常量,整型常量 0, 1, 2, 637, 32767, 32768, 0L, 1L, 2L, 637L, 32767L, 32768L, 实型常量 0.0, 1.0, 2.68, 3.141593, 637.312, 0.0E0, 6.28e-10, 4.75E20 , 1.267E20, 字符常量 a, A, 1, , +, n(换行), r(回车), t(横向跳格), (单引号), 字符串常量. Visual C+, 12.34, This is a string.n, ,常数,符号常数 整型常数 实型常数 字符型常数 8进制常数 16进制常数,符号常数,用#define定义的常

7、数;类似变量,但不是变量。 例如: #define PI 3.1415926 #define MAXNUM 10000 可以出现在表达式中; f1= r * r * PI; 但是不能作左值,下列用法是错误的: PI = PI*PI ; const double pi = 3.14159265358979; /pi变为一个符号常量C90定义方法,文字数据表示,文字数据有两种: 单个字符, 例如,A、0 、 等 字符串,例如,“This is a string .” 计算机中的文字使用ASCII字符,总共有128个: 10个阿拉伯数字 52个英文字母 32控制字符(非显示字符) 34个特殊字符 A

8、SCII码对应的字符: A的值65、a的值97(差是32) 0的值48 回车键的值13、ESC键的值27 问号?的值63、*的值42,数据基本形式,在实际数据处理过程中,有些数据经常变化(大批量),而有些数据不变化(个别)。 变化的量称变量,不变化的量称常量。常量和变量是计算机语言中数据的两种基本形式。 常量和变量的运算规则是有区别的。,2.3 变量,的数据变量说明语句的格式为: ; 4种整数数据类型的说明符分别为: char c1, c2;/ 说明了2个字符型变量 short x, y; /说明2个短整数变量 int i, j, k;/ 说明了3个整型变量 long len;/ 说明了1个长

9、整型变量 说明浮点类型和双精度类型的变量 float average, sum;/ 说明了两个浮点类型的变量 double distance, weight;/ 说明了两个双精度类型的变量,1、变量,变量定义 变量命名规则 变量使用规则 变量初始化 变量引用 类型修饰符,(1)变量定义,用基本数据类型描述符说明的对象是定义的变量。 例如: int i,j,k,*p; float eps,f0,f15; char c0,c1,c2100; double array1010;,(2)变量(标识符)命名,命名规则: (1)变量名只能由字母、数字或下划线组成; (2)变量名的第一个字符必须是字母或下划

10、线; (3)变量名长度不超过32个字符(TC); (4)不要用保留字定义变量名(有32个保留字)。 合法变量名: a、 b1、 _area、employee_name 不合法变量名: 1-name、 max one 、float 、*account,(3)变量使用规则,先定义,后使用; 例如: int a,b,c; a=1;b=2; c= a+b; 下列用法是错误的: b=a+c; printf( “max=%dn”,max); 不能用保留字作变量名 例如: sin=1.0; printf= “Print Formatting.”;,(4)变量初始化,变量初始化就是给变量赋初值;有两种形式:

11、先定义,再赋初值; 例如: int sum,fac; sum=0;fac=1; 定义时赋值 例如: char c=A; int count = 0;,(5)变量引用,作为“左值”,出现在赋值语句左边; 例如: i=i+1; sum=sum+i; 出现在表达式中; 例如: x1 = (x0 + x / x0)/ 2 ; 作为函数的参数; 例如: printf(“max=%dn”,max(a,b); 作为数组的下标表达式; 例如: cij=aik*akj;,(6)类型修饰符,在基本数据类型前加类型修饰符,可以改变数据表示的范围。常用的有: unsigned 无符号 long 长型 short 短型

12、 例如: unsigned char 表示范围变为0255 unsigned int 表示范围变为065535,2.4 常见库函数,格式化输出函数 printf(,输出列表); 格式字符串:由数据格式和一般字符组成 printf(“%lf+%lf=%7.2lfn”,a,b,c) 格式化输入函数 scanf(,); scanf(“%d ,%f , %c”, a=12.541; b=34.479; c=a+b; printf(%lf + %lf=%lf n,a, b, c); printf(%-7.2lf+%7.2lf=%7.2lfn,a,b,c); ,例2-3 显示一个字符的编码值。,/ Exa

13、mple 2-3:显示一个字符的编码值 #include void main() char ch; printf(Please enter a character: ); scanf(%c, ,数学库函数,abs(x) - 计算整型数据x的绝对值,函数值为整型。 fabs(x) - 计算x的绝对值。 sqrt(x) - 计算x的平方跟。 exp(x) - 计算ex 。 log(x) - 计算ln(x),以e为底的对数。 log10(x) - 计算lg(x),以10为底的对数。 pow(x,y) - 计算xy。y为双精度型(或浮点型)。 sin(x) - 计算x的正弦值。其中x使用弧度。 cos

14、(x) - 计算x的余弦值。其中x使用弧度。 tan(x) - 计算x的正切值。其中x使用弧度。 asin(x) - 计算x的反正弦值。 acon(x) - 计算x的反余弦值。 atan(x) - 计算x的反正切值。,例2-4 输入两个角度值x、y,计算如下式子的值,程序设计举例,例2-5 编制一个函数mylower(),将大写字母转换为小写字母。 例2-6 互换二个整型变量的值。 例2-7 输入一个四位无符号整数,反序输出这四位数的四个数字字符,数字字符间加空格。 例2-8 利用迭代公式求平方根。,例2-5 将大写字母转换为小写字母。,算法分析: C0205.C是将大写字符转换为小写,用到转

15、换公式: stri=stri-A+a; 将小写字符转换为大写,用下列公式: stri=stri-a+A;,C0205.C子程序,/ Example 2-5:将大写字母转换为小写字母 #include int mylower(int ch) if(ch=A ,C0205.C主程序,void main() char s100,t100; printf(nPlease input string:n); scanf(%s,s); for(int i=0;si!=0;i=i+1) /将字符串中每一个大写字符转换成小写字母 ti=mylower(si); ti=0; printf(nThe result

16、is: %s.n,t); ,例2.8 VC0301.CPP,用牛顿迭代法求平方根。迭代公式为: 迭代结束的条件为: 算法分析: 定义两个变量X0、X1 X1取初值1.0 循环执行:迭代公式 判别X0和X1的相对误差eps 若大于eps,继续执行 否则,得到结果的根;结束循环。,程序逻辑功能框图,输入成绩X,X0 = X1 X1 = ( X0+X / X0 ) / 2,打印结果X1,X1=1.0,|(X0-X1)/X1|=eps?,是,否,程序模块结构,主函数main(),子函数求平方根 newton_sqrt( ),求平方根子函数newton_sqrt( ),/ Example2.8: 用牛顿

17、迭代公式求平方根 #include #include #define EPS 1.0e-10 double newton_sqrt(double x) double x0, x1; x1 = 1.0; if(x0.0) do x0 = x1; x1 = (x0+x/x0)/2; while(fabs(x0-x1)/x1)=EPS); return x1; else return x; ,求平方根程序主函数main(),/ 用于计算平方根的主函数 main() double x, y; printf(nPlease input the value : ); scanf(%lf, ,字符和字符串的区别,字符是用单引号括起来的单个字符,它在存储器中占1个字节; 字符串是用双引号括起来的一串字符,它在存储器中占n+1个字节,即字符串的结束符0也占1个字节的位置。 A和“A”是有区别的;前者是字符常数,后者是字符串常数。,2.7 调试技术:Developer Studio 的文本编辑器,Undo和Redo 查找和替换 Find& Replace Find in Files 编程指导信息 List

温馨提示

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

评论

0/150

提交评论