《简单程序设计课件.ppt》由会员分享,可在线阅读,更多相关《简单程序设计课件.ppt(108页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、简单程序设计第1页,此课件共108页哦C语言基础 一、字汇表l1、基本字符集l英文字母(大写和小写各26个),数字(0至9),下划线。它们可以拼写成保留字、标识符和常数数值。l括号:()第2页,此课件共108页哦专用符号:+-*/%=!?:.,&|;#空白符和空字符 空白符:空格符、水平制表符(Tab)、换行符(n)空字符:0 是字符串结束符 只能以字符常量或串常量形式出现的字符:如$等 第3页,此课件共108页哦2、单词 为了按照一定的语法规则构成C语言的各种成分(如常量、变量等),C语言规定了基本词法单位(即单词)。l六种:保留字、标识符、常量、运算符、分隔符、注释符第4页,此课件共108
2、页哦3、保留字和标识符(一)保留字(也称关键字)保留字是具有特定含义的,专门用来说明C语言的特定成分的一类单词。例:for用于定义循环语句 int用来说明整型变量第5页,此课件共108页哦下面是C语言中的关键字(32个):auto break case char const continue default dodouble else enum externfloat for goto if int long register return short signed sizeof static struct switch typedef unionunsigned void volatile
3、while第6页,此课件共108页哦(1)用于对变量的类型和属性说明的保留字有:char int float double void(基本类型名)long short signed unsigned (类型修饰符)enum struct union (用于描述构造类型)static auto extern register const volatile(属性说明符)typedef(用于类型定义)(2)用于描述语句的保留字有:if else switch case default goto(用于分支和转移语句)for while do break continue (用于循环语句)return(
4、函数返回语句)(3)用于计算指定对象所占存储单元数(字节数)运算符:sizeof第7页,此课件共108页哦注意:1)保留字都用小写字母书写,不能用大写字母表示。2)保留字有特定的用途,不能用于其它场合。第8页,此课件共108页哦(二)标识符(1)定义:标识符就是一个名字,是用户为程序中的符号常量、变量名、函数名、数组名、类型和文件等所起的名字。(2)命名规则:字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。第9页,此课件共108页哦l下面是一些合法的标识符。Program to to_ file_10 a_b_c _sum。l下面是不合法的标识符。yes?M.D.John 2f
5、rom yes/no$123#123 yes no ab 第10页,此课件共108页哦(3)注意1)C语言中大、小写敏感,即大、小写字母是两个不同的字符。例:sum和SUM表示两个不同的标识符。2)标识符的长度(有效字符个数)视系统而定。Turbo C则规定前32个字符有效,超过部分忽略。3)“见名知义”area count total search第11页,此课件共108页哦 数据类型、运算符和表达式(一)C的数据类型一、数据的定义:计算机加工处理的对象。单值、多值(结构化的)二、数据类型:指明数据的结构形式。在程序中,任何数据都必须指定其数据类型。三、C语言中的数据类型第12页,此课件共1
6、08页哦数据类型整数类型字符类型枚举类型实数类型单精度型双精度型数组类型结构类型共同体类型基本类型构造类型指针类型空类型第13页,此课件共108页哦(二)常量和变量在C程序中参加运算的数据,可以是常量,也可以是变量。一、常量1、定义:又称常数,是指在程序运行过程中其值不能被改变的量。如10,3.14等都是常量。2、特点:常量直接以值的形式出现。第14页,此课件共108页哦3、符号常量)定义:用标识符命名的常量。例:用标识符PI代替3.14159,PI就是符号常量。2)目的:可使常量的含义明确,易读性强,也便于编写通用程序。3)定义方式:宏定义#define PI 3.14159 通常,符号常量
7、用大写字母表示,变量用小写字母表示,以示区别。第15页,此课件共108页哦二、变量1)定义:变量是指在程序运行过程中其值可以被改变的量。例如,计算圆面积的C语句 s=3.14159*r*r;其中的s和r都是变量。r可以取不同的数值,s的值将随r的值的不同而不同。第16页,此课件共108页哦2)、变量的基本特征l名字(变量名):实际上是一个符号地址。l存储单元:用于存放变量的值l变量的值 可以在程序运行中随时被改变。l类型 例如,整型变量、实型变量、字符型变量等。第17页,此课件共108页哦3)注意(1)“先定义,后使用”l 便于查错。对源程序编译时,编译程序一旦发现未定义的变量名(或变量名写错
8、),就会指出其未被定义,从而可以很快地发现错误。l每一个变量被指定为某一确定类型,在编译时就能为其分配相应的存储单元。l每一变量属于一种类型,便于在编译时检查对该变量所进行的运算是否合法。例如,求余运算符“%”要求两边操作数类型必须为整型,若为实型编译程序会给出错误信息。第18页,此课件共108页哦(2)首次使用前赋初值 随机值、有的系统中置零(3)可以在程序中修改变量的值 手段:赋值语句、定义时赋值 scanf、参数传递 第19页,此课件共108页哦(三)整型数据一、整型常量:三种书写形式1、十进制:可带正负号的数字串 100 18 02、八进制:以0开头,可带正负号的数字串 0123 相当
9、于十进制的83 (182+281+380=83)-011 当于十进制的 -9注意,八进制数中的每个数字位必须是0到7。第20页,此课件共108页哦3、十六进制整数:l 以0 x(或0X)开头,就是用十六进制表示的整数。l每个数字位可以是0到9、a到f(或A到F)。0 x123 表示十进制的 291 -0X12 表示十进制的 -18第21页,此课件共108页哦二、整型变量 1、基本整型的标识符定义(整型名)int 2、整型变量的定义格式 类型名 变量名 或 类型名 变量名1,变量名2,变量名n例:int i1,i2;/*定义整型变量i1和i2*/int I=10;/*定义整型变量I,并赋初值*/
10、第22页,此课件共108页哦l3、整型数据在内存中的存放形式l int i;l i=10;i0 0 0 0 0 0 0 00 0 0 0 1 0 1 010取值范围:-3276832767符号位第23页,此课件共108页哦4.整型修饰符1)long long int 或 long (长整型)取值范围:-231(231-1)例:long i;2)short short int 或 short (短整型)取值范围:-215(215-1)例:short i;第24页,此课件共108页哦l3)unsigned l unsigned int x;l 或 unsigned x;(无符号整型)l取值范围:0
11、(216-1)l unsigned short x;l取值范围:0(216-1)l unsigned long x;l取值范围:0(232-1)l4)signed (缺省的,符号整型)l int 就是 signed int第25页,此课件共108页哦5、测试一个变量(或某种类型的量)在内存中所占的字节数 sizeof(类型名)或 sizeof 表达式 或 sizeof (表达式)其结果是该类型(或表达式值类型)的量所占字节数。例:sizeof(float)的值为4若x是一整型变量,则sizeof (x)的值为2。第26页,此课件共108页哦(四)实型数据带有小数点的数称为实数(也称浮点数)。一
12、、实型常量1十进制数形式书写格式:由数字和小数点组成(注意必须有一个小数点)例:3.14,0.123(或.123),123.0(或123.),0.0-3.14,-0.123(负数前面要加负号)第27页,此课件共108页哦2指数形式 又称科学记数法。是为了便于表示绝对值特别大(或特别小)的实数而设计的。书写格式:必有e(或E),e前(即尾数部分)必须有数字,且e后面的指数部分必须是整数。例:180000000.0,可表示为1.8e08 其中1.8是尾数,e08是指数(代表108)0.000000123,可表示为1.23e7 (或1.23E7)不合法的:e3,9.8e2.1,.e3,e第28页,此
13、课件共108页哦二、实型变量1、实数类型的标识符:按精度要求分为单精度型和双精度型两种。float -单精度型 double-双精度型2、定义实型变量的方式:float x,y;/*定义x,y为单精度实数变量*/double z;float f1,f2=3.14;第29页,此课件共108页哦3、实型数据在内存中的存放形式+.314159 1数符小数部分指数部分(带阶符)第30页,此课件共108页哦4、注意:1)在一般系统中,一个float型数据在内存中占4个字节,一个double型数据占8个字节。单精度实数提供7位有效数字,双精度实数提供15至16位有效数字,可表示的数值的范围,不同的系统略有
14、不同。进行数值计算时,若单精度实型所提供的精度不能满足要求,可使用双精度实型。2)实型常量无单双精度之分,一个实型常量可以赋给float型变量,也可赋给double型变量,根据变量的类型来截取相应的有效位数。例:float a=123456.789 ;第31页,此课件共108页哦(五)字符型数据一、字符常量1、书写格式:用一对单引号将字符括起来。A,a,*,k,6 注意:1)A 与a不同 2)只能是一个字符2、取值范围:ASCII第32页,此课件共108页哦3、转义字符1)、定义:以反斜杠“”开头的字符序列。2)、含义:将反斜杠后面的字符转变成另外的意义。n 中的 n 不代表字母n而作为“换行
15、符”。第33页,此课件共108页哦常用的转义字符及含义 第34页,此课件共108页哦3)例:101 (八进制)-A (65)x41 (十六进制)-A (65)0或x0 -ASCII码为0的控制字符4)区别:0 与 0第35页,此课件共108页哦二、字符变量字符变量用来存放单个字符1、字符类型标识符 char2、字符变量定义方式 char c1,c2;/*c1、c2被定义为字符变量*/char ch=a;第36页,此课件共108页哦3、一个字符变量在内存中占一个字节 即:每个字节存放一个字符例:a -ASCII码为970 1 1 0 0 0 0 1第37页,此课件共108页哦三、字符串常量1、定
16、义:用一对双引号括起来的字符序列。例:”CHINA”、”How do you do.”1234”、”a”2、特点:每一个字符串的结尾加一个“字符串结束标志”(0,它是一个ASCII码值为0的字符),以此为标记判定字符串是否结束。第38页,此课件共108页哦3、字符常量和字符串常量的主要区别是:l 字符常量用单引号,而字符串常量用双引号。l 字符常量的引号里只能括一个字符,而字符串引号里可以括任意多个字符(包括0个,1个,2个)。第39页,此课件共108页哦在内存中的存储不同区别a与“a”“a”的存储结构:a的存储结构:注意:字符串中的0是系统自动加上的。a001100001 00000000
17、a01100001第40页,此课件共108页哦小结l常量的书写格式l变量的定义方式 先定义,后使用;使用前赋初值 变量值可被修改;定值的手段 例:(变量定义时赋初值)int a,b,c=5;int a=5,b=5,c=5;int a=b=c=5;(错误的)第41页,此课件共108页哦 运算符和表达式 l(一)、C运算符简介l c语言的运算符范围很宽,把除了控制语句和输入输出以外的几乎所有的基本操作都作为运算符处理,例如将赋值符“=”作为赋值运算符,方括号作为下标运算符等。C的运算符有以下几类。l 1算术运算符 (见282节)l 2关系运算符 (=!=)l 3逻辑运算符 (!|)l 4位运算符
18、(|&)l 5赋值运算符 (=及其扩展赋值运算符)第42页,此课件共108页哦l 6条件运算符 (?:)l 7.逗号运算符 (,)l 8指针运算符 (*和&)l 9求字节数运算符 (sizeof)l 10强制类型转换运算符 (类型)l 11分量运算符 ()l 12下标运算符 ()l 13其它 (如函数调用运算符()l 第43页,此课件共108页哦 运算符和表达式(二)、表达式:由运算符号和括号将运算对象(常量、变量、函数等)按一定的规则连接起来的有意义的式子。算术表达式 C表达式 2AB 2*A*B (1+X)/(A*B)sqrt(x*y)第44页,此课件共108页哦注意:一个常量,一个变量,
19、或一个函数式是表达式的最简单形式,例如:la /变量a是一个表达式l1.5 /常量是一个实型表达式lx /这是一个字符型表达式lsin(x)/这也是一个表达式,而且带有函数运算符sin()第45页,此课件共108页哦C语言的表达式l算术表达式 (算术运算符)l赋值表达式(赋值运算符)l逗号表达式(逗号运算符)l关系表达式(关系运算符)l逻辑表达式(逻辑运算符)第46页,此课件共108页哦一、算术表达式1、算术运算符:+(加)、(减)、*(乘)、/(除)、%(求余)例:5+2结果为7 5.0+2 结果为7.0 5/2 结果为 2 5%2 结果为 1 5.0/2.0 结果为2.5第47页,此课件共
20、108页哦注意:l“”除了用作减法运算外,还可作负值运算符,如:3,b等。l 对“/”运算符(除运算)来说,若参加运算的两个操作数都是整数,则结果也是整数,如7/4的结果值为1(只取结果值的整数部分);只要其中有一操作数为实型,则计算结果为实型。l 求余运算符“%”要求两边的操作数都是整数,如7%4的结果值为3(取7除以4后所得的余数部分)。第48页,此课件共108页哦(t+3)%7例:今天是星期三,t天之后是星期几?(设 星期日0、星期一1、星期六6)第49页,此课件共108页哦(t+2)%7+1推广:若(设 星期一1、星期六6、星期日7、)第50页,此课件共108页哦2、运算符的优先级与结
21、合性例:假设int i;float f;double d;long l;计算:-10+a+i*f-d/l 第51页,此课件共108页哦l二目运算中的左右操作数的 优先级规则算术运算符的优先级分为三级,从高到低排列次序如下。一级:负号()二级:*/%三级:+当然,通过加圆括号可以改变这种优先关系,因为圆括号的优先级最高。第52页,此课件共108页哦lC语言规定了各种运算符的结合方向(结合性)负值运算符是自右至左(即先与右边的运算对象结合)其它基本算术运算符是自左至右当相同优先级的运算符同时出现在表达式中,系统将按照运算符的结合性规定其运算规则。第53页,此课件共108页哦例:假设int i;fl
22、oat f;double d;long l;计算:-10+a+i*f-d/l 第54页,此课件共108页哦3、数据类型的转换第55页,此课件共108页哦注意:l横向朝左的箭头表示必定的转换,以提高运算精度 l纵向箭头方向只表示向高类型转换,不要理解为int型先转换成unsigned型,再转换成long,再转换成double型。通俗地讲,在进行混合运算时,char、short必定自动转换成int,float必定自动转换成double,其它的类型转换根据具体情况而定。第56页,此课件共108页哦4、类型转换(1)分类自动类型转换(隐式转换)强制类型转换(显式转换)(2)强制类型转换格式:(类型名)
23、表达式 第57页,此课件共108页哦例如:(int)(a+b)/将a+b的值转换成整型 (int)a+b /只将a转换成整型,然后与b相加 (float)5/3第58页,此课件共108页哦5、自增自减运算符两个单目运算符:+:使变量的值增1 :使变量的值减1+和既可以出现在运算对象的前面(称为前缀运算符),如+i,i。也可以出现在运算对象的后面(称为后缀运算符),如i+,i。第59页,此课件共108页哦例:+i 若i=5 结果为 6 若 i=5.4 结果为 6.4 i+若i=5 结果为 6 若 i=5.4 结果为 6.4第60页,此课件共108页哦例:-i 若i=5 结果为 4 若 i=5.4
24、 结果为 4.4 i-若i=5 结果为 4 若 i=5.4 结果为 4.4第61页,此课件共108页哦l前缀运算符的作用:使用变量之前,先将变量的值加1(对+)或减1(对)。例如:int i=5;则执行赋值语句 j=+i;/j=6,i=6l后缀运算符的作用:先使用变量的值,再将变量值加(对+)1或减1(对)。例如:int i=5;则执行赋值语句 j=i+;/j=5,i=6第62页,此课件共108页哦注意:(1)自增、自减运算符只能用于变量,不能用于常量或表达式。如:+(x+y)、5+等都是非法的。(2)+和的结合方向是“自右至左”。(3)在表达式中使用自增、自减运算符时要慎重。例:printf
25、(“%d,%d”,j,j+);第63页,此课件共108页哦二、赋值表达式1赋值运算符=(亦称赋值号)例:int x=5,y=7,z=8;float a,b=3.5,c;第64页,此课件共108页哦2、赋值表达式 定义:由赋值运算符将一个变量和一个表 达式连接起来的式子。格式:变量名=表达式作用:将赋值运算符右边表达式的值赋给左边的变量。例:x=a+b;(赋值语句 ;语句结束符)第65页,此课件共108页哦注意(1)赋值运算符“=”左侧必须是变量名(2)如果“=”两侧的类型不一致,但都是数值型或字符型时,赋值时系统自动将表达式类型转换成赋值号左侧变量的类型,然后再赋值。例:int x=3.54;
26、/x的值为3(结果为整型,取整数部分)第66页,此课件共108页哦(3)赋值运算符与数学上的等号是一样的,但含义却不同。例:x=x+1;/若x=100,则x值变为10(4)赋值表达式中的表达式可以是另一赋值表达式,即赋值运算可以连续进行(从右向左结合)。例:a=(b=8)亦可写成 a=b=8 a=b=c=d=8 等价于 a=(b=(c=(d=8)第67页,此课件共108页哦3、复合赋值运算符在赋值符“=”之前加上其它运算符。(两个运算符之间不能加空格)例如:+=*=/=%=(算术运算与赋值运算结合)其余:&=|=第68页,此课件共108页哦目的简化程序书写,提高运算效率。例:a+=b 等价于
27、a=a+b a*=b+c 等价于 a=a*(b+c)a%=b+c 等价于 a=a%(b+c)第69页,此课件共108页哦三、逗号运算符1、逗号运算符 ,2、逗号表达式 定义:用逗号将两个(或多个)表达式连接起来的式子。格式:表达式1,表达式2 含义:先计算表达式1的值,再计算表达式2的值,而整个逗号表达式的值是表达式2的值 例:a=8,a*10 /a=80第70页,此课件共108页哦逗号运算符是所有运算符中级别最低的。例:x=(a=3,6*3)(赋值表达式)结果:将一个逗号表达式的值18赋给x。x=a=3,6*a (逗号表达式)结果:x和a的值为3,整个表达式的值为18。第71页,此课件共10
28、8页哦关系运算符和关系表达式 1、关系运算符(六种)小于 大于 =大于等于 =等于 !=不等于 用以表示两个运算对象之间的大小关系。第72页,此课件共108页哦2、关系表达式(1)定义:关系运算符将两个表达式连接起来的式子。例如:xy a+by为“真”时,该表达式的值为1;否则,表达式的值为0。l可以将关系表达式的运算结果赋给一个整型变量或字符型变量 例:int x=10,y=5;z=xy;则 z的值为1 第74页,此课件共108页哦例:用表达式描述下列叙述(1)单位圆内的点坐标(x,y)。(x*x+y*y)0第75页,此课件共108页哦4、关系运算符的优先级算术运算符 高(左到右)关系运算符
29、(左到右)赋值运算符 低(右到左)(,=)高 (=,!=)低例:例:ch=getchar()!=Q (错)(错)(ch=getchar()!=Q (对)(对)第76页,此课件共108页哦逻辑运算符和逻辑表达式1、逻辑运算符(三个)!(非)&(与)|(或)l“!”是单目运算符,只有一个运算对象,如:!al“&”是双目运算符,有两个运算对象,如:a&bl“|”是双目运算符,有两个运算对象,如:a|b。第77页,此课件共108页哦逻辑运算的真值表逻辑运算的真值表 注意:注意:C语言中,判断一个量的语言中,判断一个量的“真假真假”时,以非零为时,以非零为“真真”,零,零为为“假假”。但逻辑表达式的值为
30、。但逻辑表达式的值为1或或0。第78页,此课件共108页哦2、逻辑表达式(1)定义:用逻辑运算符将表达式连接起来的式子。(2)作用:把若干个关系表达式组合起来进行复杂的判断。(3)逻辑表达式的值:逻辑值(0或1)(注意:C语言没有逻辑类型)第79页,此课件共108页哦例如:3&4 结果为 1 0&8、1&0 结果都是 0 0|0 结果为 0 0|8、1|0、3|4 结果都是 1 e=(ad)可将其赋给整型变量或字符型变量。第80页,此课件共108页哦3、逻辑运算符的优先级 !(右到左)高算术运算符关系运算符&(左到右)|(左到右)赋值运算符 低第81页,此课件共108页哦例:用表达式描述下列叙
31、述(1)判断字符变量ch的内容是否是数字字符。c=0&c0)&(a%100=0)(3)在a,b,c三个数中,a不是最大的,也不是最小的。(ba)&(ac)|(ca)&(ab)第82页,此课件共108页哦格式输出函数printf()1、一般格式:printf(格式控制,输出表列);2、格式控制格式控制是用双引号括起来的字符串。它包括两种信息:l格式说明l普通字符 第83页,此课件共108页哦(1)格式说明 由“%”和格式字符组成。作用:将输出的数据转换为指定的格式后再输出。printf(%d%d,a,b);格式说明总是由“%”开始。(2)普通字符 即需要原样输出的字符。printf(a=%d b
32、=%dn,a,b);第84页,此课件共108页哦格式字符(小写字母):%d 十进制带符号的整数(对正数不输出符号)%o 八进制无符号的整数(不输出前导符0)%x(X)十六进制无符号的整数(不输出前导符0 x)%u 十进制无符号的整数%c 输出一个字符%s 输出一个字符串%f 小数形式输出单、双精度实数%e(E)指数形式输出单、双精度实数第85页,此课件共108页哦3、输出表列(1)printf()函数中的“输出表列”部分是由表达式组成的。(2)这些表达式应当与“格式控制”字符串中的格式说明符的类型一一对应(3)各表达式之间用逗号分隔。例:printf(%d,x+y);printf(x=%d,y
33、=%f,ch=%c,x,y,ch);第86页,此课件共108页哦例:#include stdio.h main()int x=10;float y=123.14;char ch;printf(input ch=);ch=getchar();printf(x=%d,y=%f,ch=%c,x,y,ch);运行结果显示:(VC)input ch=ax=10,y=123.139999,ch=a第87页,此课件共108页哦4、附加格式字符在“%”与格式字符之间可以插入附加字符(1)l(小写字母)用于长整型数,可加在格式符d,o,x,u的前面 若 long x=12345678;则 printf(x=%l
34、d,x);结果:x=12345678第88页,此课件共108页哦(2)m(一个具体正整数)数据输出宽度(总列数)例:printf(“%4d,%4d”,a,b);若 a=123,b=12345 则 123,12345 (表示一个空位)第89页,此课件共108页哦(3)m.n(m,n一个具体正整数)对实数而言,m为数据输出宽度(总列数),n表示输出几位小数。例:若 float a=123.456 printf(“%8.2f,%f”,a,a);则 123.45,123.456000(默认6位)第90页,此课件共108页哦 对字符串而言,m为数据输出宽度(总列数),n表示截取的字符个数。例:print
35、f(%3s,%7.2s,HELLO,HELLO);结果:HELLO,HE第91页,此课件共108页哦(4)(负号)输出的数据在域内向左对齐例:printf(%-10sn,HELLO);结果:HELLO 第92页,此课件共108页哦例:#include stdio.h main()int a=123,b=12345,c=-1;float f=123.456;printf(%4d,%4d,%d,%o,%xn,a,b,c,c,c);printf(%f,%10f,%10.2f,%.2f,%-10.2fn,f,f,f,f,f);printf(%3s,%7.2sn,HELLO,HELLO);printf(
36、%-10sn,HELLO);运行结果:运行结果:(VCVC环境下,环境下,代表空位)代表空位)123,12345,-1,37777777777,ffffffff123,12345,-1,37777777777,ffffffff123.456001,123.456001,123.456001,123.456001,123.46,123.46,123.46123.46,123.46,123.46HELLO,HELLO,HEHEHELLOHELLO第93页,此课件共108页哦printf()小结(1)格式说明符应当与所对应的表达式类型相一致。比如,输出整型数据时,可以使用格式字符d,o,x,u等。(
37、2)m为指定的数据输出宽度。如果数据的实际宽度大于m,则突破m的限制,按数据的实际宽度输出;如果数据的实际宽度小于m,则按m指示的宽度输出,输出时向右对齐,左端补空格。(3)负号“”表示如果数据的输出宽度小于m,则输出时数据向左对齐,右端补空格。第94页,此课件共108页哦printf()小结(续)(4)“%m.nf”表示输出的浮点型数据共占m列(含小数点),其中小数点后有n位数字。(5)“%m.ns”表示输出的字符串共占m列,但只取字符串左端的n个字符。这n个字符输出在m列的右侧,左边补空格。(6)对于o或x格式符,输出的数值不带符号位,而是将符号位也看作数值的一部分。因此,不能直接输出负的
38、八进制或十六进制数。(7)如果想输出字符“%”,则应该在“格式控制”字符串中连续写两个“%”,即两个“%”号表示一个“%”字符。第95页,此课件共108页哦格式输入函数scanf()1、格式:scanf(格式控制,地址表列);“格式控制”:同printf “地址表列”:由若干个地址组成的表列,可以是变量的地址,也可以是字符串的首地址。第96页,此课件共108页哦例:main()int a,b,c;scanf(%d%d%d,&a,&b,&c);printf(%d,%d,%dn,a,b,c);第97页,此课件共108页哦2、取地址符号:&例:scanf(%d%d,&a,&b);输入3 4 (空格分
39、隔数据)若输入3,4 (error)例:scanf(a=%d,b=%d,&a,&b);输入:a=3,b=4 若输入:3 4 (error)3,4 (error)a=3 b=4 (error)第98页,此课件共108页哦输入:34 45 23 13 34 后结果:34,4523.000000,1例:#include stdio.h main()int a,b;float f;char ch;scanf(%d%d,&a,&b);scanf(%f%c,&f,&ch);printf(%4d,%4dn,a,b);printf(%f,%c,f,ch);第99页,此课件共108页哦输入:1 2 后,输出结果
40、为:1,2,例:#include stdio.hmain()char ch1,ch2,ch3;scanf(%c%c,&ch1,&ch2);scanf(%c,&ch3);printf(%c,%c,%c,ch1,ch2,ch3);第100页,此课件共108页哦scanf()小结(1)scanf()函数中的“格式控制”后面应当是变量的地址,而不应是变量名。(2)可以指定输入数据所占列数,系统自动按指定域宽截取所需数据。如:scanf(%3d%3d,&a,&b);输入123456系统自动将123赋给a,456赋给b。第101页,此课件共108页哦scanf()小结(续)(3)输入数据时不能规定精度。例
41、如 scanf(“%8.4f”,&a)是不合法的。(4)“格式控制”串中除了格式说明以外还有其它字符,则在输入数据时这些字符在相应的位置上应原样输入。例如 scanf(%d,%d,&a,&b);执行时应输入:12,34 第102页,此课件共108页哦(5)从键盘输入的数据,必须以ENTER结束,系统才能读取。C语言系统把最后输入的回车键放入键盘缓冲区的ASCII码是10(解释为回车换行)。第103页,此课件共108页哦(6)在用“%c”格式字符输入时,空格和“转义字符”都作为有效字符输入。如:scanf(%c%c%c,&c1,&c2,&c3);若输入:a b c /*a与b,及b与c之间各有一
42、个空格符 */则字符a送给c1,空格字符送给c2,字符b送给c3。第104页,此课件共108页哦例:输入圆的半径,求圆面积。main()float r,area;printf(“输入圆半径:);scanf(%f,&r);area=3.14*r*r;printf(area=%fn,area);第105页,此课件共108页哦getchar()和putchar()1、getchar()函数:字符输入的标准函数 功能:调用该函数时计算机将等待用户从标准输入设备(即键盘)键入一个字符并返回其值,同时将接收到的字符自动回送到屏幕的当前光标位置上。用法:ch=getchar();/读入的字符放入变量ch中 或 getchar();第106页,此课件共108页哦2、putchar()函数:字符输出的标准函数 功能:它将所带的字符型参数的值输出到标准输出设备(即屏幕的当前光标位置)上。用法:putchar(ch);/显示ch字符 注意:putchar()函数带有一个字符型的参数。第107页,此课件共108页哦例:用putchar()函数显示从键盘输入的那个字符。#include stdio.h main()char ch;ch=getchar();putchar(ch);第108页,此课件共108页哦