信息技术全国联赛C语言教学课件之数据类型.ppt_第1页
信息技术全国联赛C语言教学课件之数据类型.ppt_第2页
信息技术全国联赛C语言教学课件之数据类型.ppt_第3页
信息技术全国联赛C语言教学课件之数据类型.ppt_第4页
信息技术全国联赛C语言教学课件之数据类型.ppt_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

第3章数据类型、运算符和表达式,主要内容:1.数据类型2.常量和变量3.基本数据类型:整型、实型、字符型4.最常用的运算符和表达式:算术运算符和算术表达式、赋值运算符和赋值表达式,引入,假设某任务中有如下数据需要处理:1024、65536、123.5、123.456789e10、a、name设计算法前,需要先定义数据结构:即如何在计算机中表示这些数据?编程时,函数的说明部分就是对数据结构的描述,可执行部分是对算法的具体描述。那么,在C语言中如何描述数据结构呢?数据类型数据结构描述完毕,然后是算法的C语言描述了。算法是对数据处理过程的描述,数据处理过程许多基本操作是如何实现的呢?运算符和表达式,3.1C的基本语法单位,1、字符集characterset2、关键字keyword3、标识符identifier标识符命名规则:(1)由字母、数字及下划线组成,且不能以字母开头。(2)不能与关键字同名(3)尽量“见名知义”例如:下列标识符,是否合法?为什么?areaifscorestudent_no2daymonth_3int_sumno*3/*定义变量r、v*/printf(nenterr:);scanf(%f,由例题分析可知:常量:在程序的运行过程中其值不能被改变的量。如程序中的3,4符号常量:用一个标识符代表一个有特定含义的常量。如PI变量:在程序的运行过程中其值可以被改变的量。如r,v提示:变量必须先定义,后使用,原因有两个:(1)系统根据变量的类型为其分配合适的存储单元。如系统给r,v各分配大小为4B的单元(2)编译系统根据变量的类型进行语法检查。如r%5是非法的表达式,3.3基本数据类型:整型、实型、字符型,主要掌握各种类型的常量表示、变量的定义、所占存储空间的大小、取值范围,一、整型:用于表示整数所占内存空间:随机器而异,一般微机上一个整型数据占2B的内存空间。整型的可用修饰符:shortintlongintunsignedint/unsignedshort/unsignedlong,整型变量的定义(或说明):如:inta,c,no;longs;unsignedx,y;等整型常量:decimal:12-30octal:024056hexadecimal:0 x3A-0X34longint:12L0L问题:要定义两个变量x和y,分别用于存放数据1024和65536,如何确定x和y类型?,分析:首先,要处理的数据为整型;其次,根据数据的大小确定其具体类型:1024可用int型变量保存,65536必须用longint型变量才能保存。程序:main()intx;longy;x=1024;y=65536;printf(nx=%d,y=%ld,x,y);说明:若x,y均定义为long型,程序运行如何?若x,y均定义为int型,程序运行结果如何?,二、实型,Float:单精度浮点型Double:双精度浮点型所占空间大小:在一般微机上,float型数据占4B,double型数据占8B。当然double型数据的表示范围大。实型变量的定义:floatr,v;doublez,a,x;floatresult;等,实型常量:(1)小数形式:可由正负号、小数点和数字组成。如:12.35-78.090.789.145(2)指数形式:用科学计数法表示的实数。如:44e30.34e12问题:若程序重要处理的数据为:123.5和123.456789e10,设该数据分别用变量a、b保存,试问a、b的类型如何确定?分析:首先该数据均为实型;其次,根据数据的大小及精度,可确定a为float型即可,b必须为double型。,程序如下:main()floata;doubleb;a=123.5;b=123.456789e10;printf(na=%f,b=%f,a,b);运行结果:a=123.500000,b=1234567890000.000000若改为:floatb;运行结果如下:a=123.500000,b=1234567954432.000000,三、字符型char,Size:占1B,只能保存一个字符。其取值范围为:0255字符常量:普通字符:用单引号括起来的一个字符,如af*#2转义字符:用单引号括起来的、以开头的字符序列,如nt100x10字符常量的值是该字符的ASCII码值(即该字符在你的机器中所用的字符集中的编码)如字符0的值是整数48字符串:用双引号括起来的字符序列,如a$#%123n(空串)注:字符串存储时,系统自动在字符串的末尾加上字符串结束标记0,比较字符常量a与字符串常量a:aaa0字符变量的定义及使用:charch1,ch2;/*定义两个字符变量ch1,ch2*/unsignedcharss;/*定义一个无符号字符变量ss*/,97,970,例3.5定义两个变量c、d,用于保存字符a、b,然后按字符和数值两种形式输出变量c、d的值。main()charc,d;c=a;d=b;printf(n%c%c,c,d);printf(n%d%d,c,d);Rusult:ab9798若将第三行改为:c=97;d=98;结果如何?结论:在字符的ASCII码(0255)内字符与整数可通用。,3.4变量的初始化(自学),如intr=6;等价于intr;r=6;应用:编程时,当定义变量时就已知该变量的值,则可以使用初始化的方式给变量赋值。注意:inti=j=k=0;是错误的。正确的应为:inti=0,j=0,k=0;,3.5运算符和表达式,运算符:规定了对数据的基本操作。主要掌握:各运算符的功能、优先级和结合方向。本章只介绍最常用的运算符:算术运算符、赋值运算符及其表达式,3.5.1算术运算符和算术表达式,1.基本算术运算符和表达式:+*/%如:10%34/26+87/578-9特点:双目运算符,即要求有两个操作数。%运算符要求两个操作数必须是整型数。如8.4%4是错误的。其他的算术运算都是通过调用数学函数实现的,其对应的头文件是:math.h如pow(x,y)表示xy,自增、自减运算符:+-功能:使变量自增1、自减1例如:计算110的和。main()intn=0,j;for(j=1;j=10;j+)n=n+j;printf(nsum:%d,n);说明:j+等价于j=j+1,同理,k-等价于k=k-1自加、自减运算符的前缀和后缀用法的区别:例如:main()inti=6,j=6,k=6,h=6,m,n,x,y;m=i+;n=+j;x=k-;y=-h;printf(ni=%d,m=%d,j=%d,n=%d,i,m,j,n);printf(nk=%d,x=%d,h=%d,y=%d,k,x,h,y);运行结果:i=7,m=6,j=7,n=7k=5,x=6,h=5,y=5,结论:前缀:n=+j;等价于j=j+1;n=j;(j先加1,后参与表达式的运算)后缀:m=i+;等价于m=i;i=i+1;(i先参与表达式的运算,然后加1),3、算术表达式的计算:当一个表达式中包含多个算术运算符时,如何计算呢?表达式的计算方法:按优先级由高到低进行,相同优先级的运算符按结合方向计算。例如计算:4+5*8/1012%5/2优先级:先+-负号,后*/%,然后+-结合性:+-(负号)自右向左;其他的,自左向右,算术表达式的书写,要求自学注意:表达式中的符号均写在同一行中,不能有上标或下标。合理运用括号,保证原数学表达式的运算顺序。,3.5.2类型转换,1.当参加运算的两个操作数类型不同时,先将“低”类型的数据转换为“高”类型,再计算。隐式转换(系统自动进行的转换)类型高低:参见p38例如:计算表达式2.5*4+12-1.52.:当需要将某数据转换成指定类型时使用强制类型转换。例如,函数sqrt的原型:doublesqrt(double)如果要计算整数n的平方根,应写为:root=sqrt(double)n);,例3.8含有牵制类型转换的表达式的计算。main()inta=2,b=3;floatx=3.5,y=2.5,z;z=(float)(a+b)/2+(int)x%(int)y;printf(n%f,z);运行结果:3.500000,3.5.3赋值运算符和表达式,赋值:给变量提供数据的一种方法。1.赋值表达式:变量=表达式作用:先计算“=”右边表达式的值,然后将其送给“=”左边的变量。如area=r*r*3.14s=0n=n+2优先级:比算术运算符低,仅高于逗号运算符。结合性:自右向左若定义:inta=2;则表达式b=c=a+4的计算过成为:先计算:c=a+4得该表达式的值为6;然后计算:b=6得该赋值表达式的值为6。,复合赋值表达式:变量op=表达式等价于:变量=变量op(表达式)例如:k+=2等价于k=k+2x*=3+6等价于x=x*(3+6)3.赋值运算中的类型转换:当赋值号“=”右边表达式的值与“=”左边的变量的类型不同时,先将“=”右边表达式的值转换成“=”左边变量的值,然后再赋值。suchas:intn

温馨提示

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

评论

0/150

提交评论