C语言第3章ppt课件_第1页
C语言第3章ppt课件_第2页
C语言第3章ppt课件_第3页
C语言第3章ppt课件_第4页
C语言第3章ppt课件_第5页
已阅读5页,还剩98页未读 继续免费阅读

下载本文档

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

文档简介

,C程序设计,第3章基本程序语句,3.1C语言的数据类型简介3.2几个基本概念3.3C语言的3种基本数据类型3.4基本运算符和表达式3.5C基本语句3.6数据的输出3.7数据的输入3.8简单程序设计举例,教学目标,第3章基本程序语句,掌握C程序中标识符的命名规则掌握常量、变量的定义掌握C程序的基本数据类型掌握C程序的基本运算符和表达式掌握C程序的基本语句掌握C程序的输入和输出,第3章基本程序语句,重点C程序的数据类型C程序的运算符及使用C程序的基本语句C程序的输入、输出,难点C程序的运算符及输入、输出,3.1C语言的数据类型,数据类型,3.2几个基本概念,一、标识符C语言规定标识符只能由字母、数字和下划线组成,且第一个字符必须是字母或下划线。,注意:1、第一个字符必须为字母或下划线,2、C语言中大写字母和小写字母被认为是两个不同的字符,大写字母A与小写字母a则表示不同的标识符。,3、在取名的时,一般采用“见名知义”的原则,标识符的分类:,3.2几个基本概念,标识符,3.2几个基本概念,二、常量,常量是指在程序运行中,其数值不能被改变的量,直接常量:50,100,4.6,a,符号常量:使用标识符来代表常量#definePI3.1415926,#includemain()floatl,s;l=2*3.14*6;s=3.14*6*6;printf(“l=%f,s=%f”,l,s);,例:求半径为6的圆的周长,面积是多少?,#definePI3.14/*定义符号常量*/,PI,PI,习惯上符号常量名用大写,#definePI3.1415926,3.1415926,含义清晰方便修改方便录入,使用符号常量的优点:,3.2几个基本概念,例:符号常量使用#include#definePRICE30/*定义符号常量*/main()floattotalMoney,price;/*定义变量*/intnum,total;num=10;total=num*PRICE;printf(total=%d,total);,注意:不可以对符号常量进行赋值!,3.2几个基本概念,3.2几个基本概念,三、变量,变量是指以标识符为名字,其值可以改变的量,一个变量被赋予一个变量名,在内存中占据一定的存储单元。,(1)变量名要合法;,在程序设计中,变量的命名的要求:,(4)应避免过长和不便于书写的单词作为变量名;,(5)C语言的数据类型、变量名与函数名严格区分大小写;,(6)建议变量名称采用“驼峰表示法”。,(2)同一变量名不可以重复定义;,(3)应“见名知意”;,注意:C语言要求所有的变量一定先定义,后使用,3.2几个基本概念,3.3C语言3种的数据类型,一、整型数据,1、整型常量,即整常数,*八进制的数码范围为07;*十六进制的数码除了数字09外,还使用英文字母af(或AF)表示1015。如:0 x1e,注意!,018,3.3C语言3种的数据类型,2、整型变量,3.3C语言3种的数据类型,如果将一个变量的数据类型定义成整型,则此变量就称为整型变量,1.整型数据在内存中的存放形式,整型数据在内存中占用2个字节数值是以补码表示的,3.3C语言3种的数据类型,例:整型数10的二进制存储形式,例:整型数-10的二进制存储形式,3.3C语言3种的数据类型,2.整型变量的分类,整型变量分为三类:,基本型,短整型,长整型,3.3C语言3种的数据类型,3.整型变量的定义,3.3C语言3种的数据类型,语法:数据类型变量名;,main()longs;/指定s为长整型变量intn;/指定n为基本整型变量shortm;/指定m为短整型变量unsignedlongk;/指定k为无符号长整型变量,3.3C语言3种的数据类型,inta;a=1;a=a+1;,变量的定义及使用,例:,1,2,注意:对变量值的存取是通过变量名实现的,例.整型数据的溢出,maininta,b;a=32767;b=a+1;printf(%d,%d,a,b);,运行结果为:32767,-32768,3.3C语言3种的数据类型,注意:在定义变量的类型时,不仅要考虑数据类型的特点和数据范围,还要考虑实际应用问题的需要。,4.整型常量的类型,(1).一个整数,如果值在-32768+32767范围内,认为它是int型,可以赋值给int或longint型变量(2).一个整数,如果值在-2147483648+2147483647范围内,认为它是长整型,可以赋值给longint型变量,3.3C语言3种的数据类型,3.3C语言3种的数据类型,(3).如果某一计算机系统的C版本,确定shortint与int型数据在内存中占据的长度相同,则它的表数范围与int型相同。(4).一个整常量后面加上一个字母u或U,认为是unsignedint型,如12345u(5).在一个整常量后面加一个字母l或L,则认为是longint型常量,如123L,3.3C语言3种的数据类型,二、实型数据,1、实型常量,实数又称为浮点数,有两种表达方式:(1)小数表示法如:0.123、123.0(2)科学记数法如:123e3或123E3、123E-2,注意,小数点不能单独出现;0.0.e或E的两边必须有数,且其后面必须为整数;如:6E0.2e5,2、实型变量,3.3C语言3种的数据类型,如果将一个变量的数据类型定义成实型,则此变量就称为实型变量,(1).整型数据在内存中的存放形式,实型变量在内存中占用4个字节,(2)实型变量分类,3.3C语言3种的数据类型,3.3C语言3种的数据类型,实型变量的定义:类型说明符变量名floatx,y;(指定x、y为单精度实数)doublez;(指定z为双精度实数)longdoublet;(指定t为长双精度实数),3.3C语言3种的数据类型,例:实型数据的舍入误差mainfloata,b;a=123456.789e5;b=a+20;printf(%f,b);,C编译系统将实型常量作为双精度来处理,如:floatf;f=2.45678*4523.65;,f=2.45678f*4523.65F;,3.3C语言3种的数据类型,(3)实型常量的类型,3.3C语言3种的数据类型,三、字符型数据,C的字符常量是用单引号括起来的一个字符如:a、b、c、?。,注意:不能用来表示字符,因为字符代表转义字符的开始。,1、字符常量,转义字符及其含义,3.3C语言3种的数据类型,3.3C语言3种的数据类型,例:转义字符的使用,#includemain()printf(“abctderftgn”);,2、字符变量,3.3C语言3种的数据类型,如果将一个变量的数据类型定义成字符型,则此变量就称为字符型变量,在内存中占用1个字节,字符变量的定义:类型说明符变量名如:charc1;c1=a;,注意:字符型变量只能存放1个字符,而不能存放1个字符串。,3.3C语言3种的数据类型,3、字符数据在内存中的存储形式,charc1,c2;c1=a;c2=b;,c1,97,c2,98,0110001,0110010,将一个字符常量放到一个字符变量时,是将字符的相应ASCII码值放到存储单元中。即:字符型数据是以ASCII码存储的。,3.3C语言3种的数据类型,maincharc1,c2;c1=97;c2=98;printf(%c%cn,c1,c2);printf(%d%dn,c1,c2);,运行结果为:ab9798,例:向字符变量赋以整数,结论:字符型数据和整型数据是通用的,3.3C语言3种的数据类型,例:大小写字母的转换,maincharc1,c2;c1=a;c2=b;c1=c1-32;c2=c2-32;printf(%c%cn,c1,c2);,运行结果为:AB,4、字符串常量,3.3C语言3种的数据类型,字符串常量是用双引号括起来的字符序列(0N个字符)。,如:Howdoyoudo.,a,123.45都是字符串常量。,注意:,C语言中没有专门存放字符串常量的数据类型,但可以用字符数组的形式存放。,字符串常量在内存中以每个字符的ASCII码存放,并且在最后添加一个字符串结束标记0。,3.3C语言3种的数据类型,因此,字符a和字符串a的区别是:字符a:在内存中占1字节(值为97),字符串“a”:在内存中占2字节(值为97和0),charc;c=a;,注意:不要将一个字符串常量赋给一个字符变量,/*字符a可以赋值给字符型变量c*/,/*字符串“a”不能赋给字符变量*/,c=a;,3.3C语言3种的数据类型,3.3C语言3种的数据类型,四、变量赋初值,程序设计中经常需要对一些变量预先设置初始值。C允许在定义变量的同时指定其初值,inta=1;floatf=2.5;doubled=2.6;charc=a;inta,b,c=7;/*指定c的初值为7,未指定a、b的初值*/,例如:,inta=8,b=8,c=8;,注意:若要对多个变量指定相同的初值,要分别进行初始化。,inta=b=c=8;,或者:inta=8;intb=8;intc=8;,3.3C语言3种的数据类型,3.4基本运算符和表达式,算术运算符+-*/%关系运算符=!=逻辑运算符!b=a+;结果b=3,a=4先使用后加b=+a;结果b=4,a=4先加后使用,自增、自减运算符,例:inta=5,b=5,c,d;c=-a;d=b-;a=?b=?c=?d=?,(1)+和-运算符只能用于变量,不能用于常量和表达式。,如:5+;,(2)+和-的结合方向为“右结合”。如:-a+-(a+),(a+b)+;,#defineONE1ONE+;,a+b+;,3.4基本运算符和表达式,三、赋值运算符,3.4基本运算符和表达式,a=3;(常数3赋给变量a)a=b;(将一个变量b的值赋给a)a=b+c+1;(表达式b+c+1的值赋给变量a),赋值运算符使用赋值符号“=”,它的作用是将一个常量、变量或表达式的值赋给变量,如:,3.4基本运算符和表达式,复合的赋值运算符,a=a+3,x*=y+8,x=x*(y+8),举例:,复合的赋值运算符是将其他运算符和赋值运算符结合在一起使用,实现运算、赋值功能的结合+=*=/=%=,3.4基本运算符和表达式,由赋值运算符将一个变量和一个表达式连接起来的式子称为“赋值表达式”。,赋值表达式,赋值运算符为右结合,将其右侧表达式的值赋给左侧的变量,整个赋值表达式的值就是被赋值的变量的值,一般形式为:变量赋值运算符表达式,例:a=3;a=b;a=b+c+1;,赋值时的类型转换,如果赋值运算符两侧的数据类型不同时,在赋值时需要进行类型转换。,(1)float、double-intinta=6.5;a的值为6,(2)int-floatdoublea=6;a的值为6.000000,3.4基本运算符和表达式,3.4基本运算符和表达式,(5)int、float、double-char截取整型、实型数据(整数部分)值的低8位送到字符型变量。,(3)double-float截取double型数据值的前7位有效数字,(4)char-int字符型数据只占整型数据的低8位,3.4基本运算符和表达式,赋值运算符右侧的表达式,不仅可以为算术表达式、逻辑表达式,还可为赋值表达式、条件表达式等。,例5:#includemain()inta=2;print(%d,a-=a+=a*a);,结果:0,如:a=b=c=5表达式值为5,a、b、c值均为5a=5+(b=10)表达式值为15,a值为15,b值为10,3.4基本运算符和表达式,习题一:,1、a=5+(b=6)a=?b=?,2、a=(b=4)+(c=6)a=?b=?c=?,3、a=(b=10)/(c=2)a=?b=?c=?,4、a的初值为2,b的初值为3a+=3a=?,a+=ba=?,a%=b+5a=?,3.4基本运算符和表达式,四、关系运算符和关系表达式,1.关系运算符,优先级相同(高),优先级相同(低),关系运算符的结合性:自左至右,左结合,2、关系表达式,3.4基本运算符和表达式,用关系运算符将两个表达式连接起来的式子。,一般形式为:表达式关系运算符表达式(a+b)(b+c)(ab)(bc)(a,一般形式为:表达式1?表达式2:表达式3,max=xy?x:y;,表达式1为真是表达式2的值表达式1为假是表达式3的值,3.4基本运算符和表达式,结合性:自右至左;y=x10?x/10:x0?x:-x;等价于:y=x10?x/10:(x0?x:-x);当x的值为15时,表达式的结果为:1当x的值为5时,表达式的结果为:-5,3.4基本运算符和表达式,七、逗号运算符和逗号表达式,一般形式为:表达式1,表达式2,.,表达式n,先求解表达式1的值,再求解表达式2的值整个逗号表达式的值是表达式n的值,例1:a=5;a=a+5,a+9,整个表达式的值是19,3.4基本运算符和表达式,例main()inta=3,b=4,c=5;printf(%d,%d,%d,a,b,c);printf(%d,%d,%d,(a,b,c),b,c);,结果:3,4,55,4,5,3.4基本运算符和表达式,八、强制类型转换运算符,在程序设计中,经常需要将某种数据类型强制转换成指定的类型,这时可以用强制类型转换来实现。,语法如下:(数据类型)(变量或表达式);,3.4基本运算符和表达式,例如:inta=2,b=5;floatx=4.4;则有:表达式结果b/a2(float)b/a2.5(float)(b/a)2.0(int)x%a+x4.4(int)x%(a+x)不合法,强制类型转换时,得到所需类型的中间变量,而原来变量的类型不会改变。,注意:,3.5C基本语句,C语句可以分为以下四大类:(1)简单语句(包括输入/输出语句)(2)空语句(3)复合语句(4)流程控制语句,一、简单语句,1、表达式语句,由一个表达式加一个分号构成。,表达式,;,2、函数调用语句,函数调用语句由一个函数调用加上分号“;”构成。,例:printf(CProgram.);,3.5C基本语句,3、空语句,只有分号“;”组成的语句称为空语句。空语句是什么也不执行的语句。在程序中空语句可用来作空循环体。,例:for(i=1;i100000000;i+);可做延时使用,3.5C基本语句,4、复合语句,可以用把一些语句括起来称为复合语句。z=x+y;t=z/100;printf(%f,t);,3.5C基本语句,(1)所谓输入输出是以计算机为主体而言的。,(2)C语言本身不提供输入输出语句,输入和输出操作是由C函数库中的函数来实现的。,(3)使用系统库函数时,要用预编译命令“#include”将有关的“头文件”包含到用户源文件,3.6数据的输入输出,一、字符数据的输入输出,1、putchar函数,作用:向终端输出一个字符。一般形式:putchar(c);,putchar(97);putchar(n);putchar(a);,3.6数据的输入输出,2、getchar()函数,作用:是从终端输入一个字符。,一般形式:getchar();,3.6数据的输入输出,3.6数据的输入输出,(3)使用本函数前必须包含文件“stdio.h”。,(1)getchar()函数只能接收单个字符,输入数字也按字符处理。输入多于一个字符时,只接收第一个字符。,使用getchar()函数应注意几个问题:,(2)该函数没有参数。,3.6数据的输入输出,例:#includemain()charc1,c2;c1=getchar();c2=getchar();putchar(c1);putchar(c2);printf(n);,3.6数据的输入输出,这两个函数的原型在头文件“stdio.h”中。使用时必须包含该头文件。,格式输入scanf函数,格式输出printf函数,标准库函数,#include,二、格式输入与输出,1、printf函数(输出函数),3.6数据的输入输出,一般形式:printf(格式控制,输出表列);,printf(a=%d,b=%d,a,b);,3.6数据的输入输出,格式字符(1),3.6数据的输入输出,例:a=123,b=12345;printf(“%4d,%4d”,a,b);,例:a=1235790printf(“%-9d”,a);,例:a=23printf(“%d,%o”,a,a);,例:a=23printf(“%d,%o,%x”,a,a,a);,3.6数据的输入输出,格式字符(2),3.6数据的输入输出,例:charc=a;printf(“%c”,c);printf(“%3c”,c);,例:按指定格式输出字符串#includemain()printf(“%3s,%7.2s,%.4s,%-5.3sn”,”CHINA”,”CHINA”,”CHINA”,”CHINA);,3.6数据的输入输出,格式字符(3),3.6数据的输入输出,#includemain()floatx,y;x=111111.111;y=222222.222;printf(“%f”,x+y);,%f不指定字段宽度,整数全部输出,并输6位小数,3.6数据的输入输出,#includemain()floatf=123.456;printf(“%f%10f%10.2f%.2f%-10.2fn”,f,f,f,f,f);,格式字符(4),3.6数据的输入输出,3.6数据的输入输出,使用printf函数要注意的问题:,(1)除X,E,G外,其他格式字符必须用小写字母,如%d不能写成D。(2)可以在printf函数中的“格式控制”字符串内包含转义字符。(3)d、o、x、u、c、s、f、e、g等字符,如用在“%”后面就作为格式符号。(4)如果想输出字符“%”,则应该在“格式控制”字符串中用连续两个%表示。,1、scanf函数(输入函数),3.6数据的输入输出,作用:scanf函数是格式输入函数,按指定格式从键盘上把数据输入到指定的变量之中。,一般形式:scanf(格式控制,地址表列),scanf(“%d”,3.6数据的输入输出,格式说明,使用scanf函数时应注意的问题(1),3.6数据的输入输出,(1)scanf函数中的“格式控制”后面应当是变量地址,而不是变量名。(2

温馨提示

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

评论

0/150

提交评论