第3章基本程序语句.ppt

上传人:sccc 文档编号:5635071 上传时间:2023-08-04 格式:PPT 页数:84 大小:489.51KB
返回 下载 相关 举报
第3章基本程序语句.ppt_第1页
第1页 / 共84页
第3章基本程序语句.ppt_第2页
第2页 / 共84页
第3章基本程序语句.ppt_第3页
第3页 / 共84页
第3章基本程序语句.ppt_第4页
第4页 / 共84页
第3章基本程序语句.ppt_第5页
第5页 / 共84页
点击查看更多>>
资源描述

《第3章基本程序语句.ppt》由会员分享,可在线阅读,更多相关《第3章基本程序语句.ppt(84页珍藏版)》请在三一办公上搜索。

1、C语言的数据类型简介几个基本概念 C语言的三种基本数据类型基本运算符和表达式 C基本语句数据的输出数据的输入 简单程序设计举例,C语言程序设计,第3章 基本程序语句,2,3.1 C语言的数据类型简介,3,3.2几个基本概念,一、标识符 1标识符:是用来标识名称的,可以用来标识变量名、符号常量名、函数名、类型名、数组名、文件名等。C语言规定标识符只能由字母、数字和下划线组成,且第一个字符必须是字母或下划线。如:Day,month,student,name_1,s2,_12,_t13 注意:C语言中大写字母和小写字母被认为是两个不同的字符,大写字母A与小写字母a则表示不同的标识符。2标识符的分类

2、关键字分为三类 预定义标识符 用户标识符,4,二、常量:常量是指在程序运行中,其数值不能被改变的量1直接常量:是在程序中直接引用的数据 2符号常量 符号常量是用标识符来代表一个数据 符号常量的定义形式:#define 符号常量标识符 常量数据 例如:#define PI 3.14159,5,三、变量变量是指以标识符为名字,其值可以改变的量。变量分为整型、实型、字符型等。变量的定义形式:类型标识符 变量名1,变量名2,变量名3.;变量的初始化:在定义变量的同时给变量一个初始值。如:int a=5,b=3;注意:在同一程序块中,变量不能被重复定义;使用变量时必须“先定义,后使用”。,6,2、变量初

3、始化 在说明变量的同时给变量一个初始值。,例如,int a=5,b=3;int a=b=c=3;int a,b,c;a=b=c=3;,7,一、整型数据1、整型常量:(1)十进制形式:与数学上的整数表示相同;例如:12,-100,0(2)八进制形式:在数码前加数字0;例如:012=1*81+2*80=10(十进制)(3)十六进制形式:在数码前加0X(数字0和字母X)。例如:0 x12=1*161+2*160=18(十进制)*八进制的数码范围为07;018*十六进制的数码除了数字09外,还使用英文字母a f(或A F)表示1015。如:0 x1e,注意!,3.3C语言的三种基本数据类型,8,2、整

4、型变量()整型变量分类根据数据所占的二进制位数分为:int、short、long;同样存储长度的数据又分unsigned、signed;故可组合出六种类型。()整型数据的存储方式 数据在内存中是以二进制形式存储的。C语言中,一个int型数据通常用两个字节存放,其中最高位用来存放整数的符号,若最高位为0则表示该数为正数,若最高位为1则表示该数为负数。如:int i=-1;则存放形式为:,9,3、值域:由机器中数据的存储长度决定。如Turbo C中,有 short(2字节)int(2字节)long(4字节)关键字 所占位数 取值范围 short 16-3276832767 unsigned sho

5、rt 16 065535 int 16-3276832767 unsigned 16 065535 long 32-21474836482147483647 unsigned long 32 04294967295,10,main()int x,y,z,w;/*定义x,y,z,w为整型变量*/unsigned int k;/*定义k为无符号整型变量*/x=10;y=-20;k=30;z=x+k;w=y+k;printf(“x+k=%d,y+k=%dn”,z,w);,例3.1:,程序运行结果为:x+k=40,y+k=10,11,1、实型常量:(1)十进制小数形式:由数字和小数点组成;例如:3.4

6、,4.,.3。(2)指数形式:“十进制小数”+“e(或E)”+“十进制数整数”。例如:12.5e-6 表示12.510-6。小数点不能单独出现;0.0.e或E的两边必须有数,且其后面必须为整数;如:6E0.2 e5 2、实型变量(分类和值域):关键字 字节数 取值范围 精度(位)float 4 3.410-38 3.41038 7 double 8 1.710-308 1.710308 15,注意,二、实型数据,12,1、常量:(1)用单引号括起来的一个字符;如:A、1、?等。(2)用单引号括起来的由反斜杠()引导的转义字符。字符形式 功能 n 换行 t 横向跳格 b 退格 r 回车 反斜杠字

7、符 单引号字符 ddd 8进制数表示的ASCII码对应的字符 xhh 16进制数表示的ASCII码对应的字符,三、字符型数据,13,例如:字符A的ASCII码为:65D(十进制)=41H(十六进制)=101Q(八进制)字符A可以表示为A、x41、101。2、变量的分类和值域:分类:char 和 unsigned char;值域:每个字符型数据在内存中占一个字节;包括ASCII字符表中的所有字符(可显示字符和非显示字符)。3、字符串常量:是用一对双引号括起来的字符序列。如:“SHANGHAI”,“FGHijk”,“CHINA”。字符串常量的存放:每个字符均以其ASCII码存放,且在最后加一个“空

8、字符”,注意,a与“a”的区别。,14,120、-100、0;0120、072;0 xFFFF、0 x1e、0X28AF,0XED4;120L,200L;长整型常量 3.14、-3.1、5.12E-6;a、#、n、101;099、12f、0 xg、48EA;019.5、1e-08;实型常量只能用十进制形式表示 2.1E10.2、E-6、6.4E+4.8、E9;changsha、+?ab;、p、ab;,课堂练习:,请判断这些常量正确与否:,15,一、C运算符简介 按操作功能运算符大致可分为算术运算符、关系运算符、逻辑运算符、按位运算符以及其它运算符如赋值运算符、条件运算符、逗号运算符等。表达式是

9、由操作数和运算符组成的序列。,3.4基本运算符和表达式,算术运算符+-*/%关系运算符=!=逻辑运算符!&位运算符|&赋值运算符=条件运算符?:逗号运算符,指针运算符*和&求字节数运算符 sizeof强制类型转换运算符分量运算符 下标运算符 其它运算符号,16,二、算术运算符和算术表达式 1、基本的算术运算符+(加):3+4、+3-(减):3-5、-5*(乘):3*5/(除):5/2的值为2;5.0/2的值为2.5;%(取余):5%3的值为2;-5%3的值为-2;5%(-3)的值为2;-5%(-3)的值为-2;12.3%3 若a能被b整除,则有:a%b=0,17,2、算术表达式用算术运算符和括

10、符将操作数连接起来的式子。优先级:()*、/、%+、-结合性:从左至右;表达式的值:数值型(int、long、unsigned、double);,例如:已知:float a=2.0;int b=6,c=3;求解:a*b/c-1.5+a+fabs(-5)=?,18,float a=2.0;int b=6,c=3;a*b/c-1.5+a+fabs(-5),12.0/3,5,4.0-1.5,2.5+97(int),99.5+5,104.5(double),19,1、赋值运算符=2、赋值表达式:用赋值运算符将变量和表达式连接起来的式子一般形式为:赋值运算符优先级:赋值运算符的优先级比算术运算符低。结合

11、性:自右至左(右结合性)。求值规则:先计算“=”右边表达式的值,再将其值赋给左边的变量。表达式的值:赋值号左边变量的值即为赋值表达式的值。例如:(1)x=(y=12)/4 y值为12,x值为3,表达式的值为3(2)x=y=12/4 y值为3,x值为3,表达式的值为3(3)x=(y=12/4)y值为3,x值为3,表达式的值为3(4)(x=y)=12/4,三、赋值运算符和赋值表达式,20,3、复合赋值运算符*=、/=、%=、+=、-=,=,&=、=、=注意:复合运算符是一个运算符,但功能上,是两个运算符功能的组合。例如:(1)a+=b 相当于 a=a+b a*=b 相当于 a=a*b a*=b+c

12、 相当于 a=a*(b+c)而不是 a=a*b+c(2)设a=12,计算表达式a+=a-=a*12和a+=a-=a*=12 的值,21,4赋值时的类型转换,实型数据赋给整型(字符型)变量:去掉小数部分;如:int f=23.457;变量f的值为23。整型(字符型)数据赋给实型变量:补足有效位。字符型数据赋给整型变量:将字符数据(8位)放到整型变量的低8位中,高8位进行“符号扩展”。一个int、short、long、unsigned型数据赋给一个char 型变量:截取低8位赋给字符型变量。带符号的整型数据(int型)赋给long型变量:进行符号扩展。带符号的long型数据赋给int型变量时,只截

13、取低16位赋给int变量。unsigned int 型数据赋给long int变量:高位补0。int 型数据赋给unsigned int变量:内存情况不变,但若是负数,其符号位也作为数值赋给unsigned 型变量。,22,5、自增与自减运算符+i,-i:先使变量i的值增1(或减1),再使用变量i的值作为整个表达式的值来参加其它的运算;i+,i-:先使用变量i的值进行其它运算,再使变量i的值增1(或减1)。,等价于 i=i+1;,j=i;i+;所以i的值为4,j的值为3。,i+;j=i;所以i的值为4,j的值为4。,例如:,(1)i+;+i;(2)i=3;j=i+;(3)i=3;j=+i;,2

14、3,结合性:自右至左。如:i=2;j=-i+;等价于:j=-(i+);即:j=-i;i+;“+”与”-“是同优先级 所以i的值为3,j的值为-2。,24,/*pro03_02.c*/#include main()int a,b;a=5;b=5;b=b+a+;printf(a=%d,b=%dn,a,b);a=5;b=5;b=+a-b;printf(a=%d,b=%dn,a,b);,运行结果a=6,b=10a=6,b=1,25,1、6种关系运算符:=!=2、关系表达式:用关系运算符将表达式连接起来的式子 优先级:(=)(=!=)结合性:自左至右;表达式的值:若为真,则结果为1;若为假,则结果为0。

15、,35 的值为 0;32 的值为 0;3+(43 的值为1。算术运算符优先级高于关系运算符关系运算符优先级高于赋值运算符,例如,四、关系运算符和关系表达式,26,1、3种逻辑运算符:&|!逻辑量:可以是整型、实型、字符型和指针类型,0假 非0真;如:0,0.0,0,NULL都代表假。2、逻辑表达式:用逻辑运算符将表达式连接起来的式子 优先级:!&|结合性:自左至右;表达式的值:若为真,则结果为1;若为假,则结果为0。,五、逻辑运算符和逻辑表达式,27,int a=5;float b=3.5;!a(0)!(a 0)(0)(a 0)(1),例如,28,!高 算术运算符 关系运算符&和|赋值运算符

16、低,4-0,1&2,8 4,1,0,1,5 3&2|8 4-!5,29,注意:在逻辑表达式的求解中,并不是所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符。例如:(1)a=0;b=1;c=a+结果:a为0,b为0,c为0,d为1。,30,逻辑表达式一般用于控制语句中的条件:例如:(1)n是小于m的偶数:nm&n%2=0(2)year是闰年:(能被4整除但不能被100整除或能被400整除)year%4=0&year%100!=0|year%400=0,31,1、条件运算符?和:,它们与三个操作数组组成三元运算。2、形式为:?:3、求值规则和表达式的值:

17、真(非0),求解表达式2 求解表达式1 条件表达式的值 假(0),求解表达式3例如:int max,a=5;b=3;max=ab?a:b max及赋值表达式的值均为5;ab?a:b+1 条件表达式的值为4。,六、条件运算符,32,又如:-a=b+?a+:b+(a=a-1;)4=3(b=b+1;)?a+:b+a为4 b为4 0 4(b=b+1;)表达式值为4 b为5 a值为4,b值为5,条件表达式的值为4。4、优先级:逻辑条件赋值,33,5、结合性:自右至左;y=x10?x/10:x0?x:-x;等价于:y=x10?x/10:(x0?x:-x);当x的值为15时,表达式的结果为:1 当x的值为5

18、时,表达式的结果为:-5七、逗号运算符:,形式:逗号表达式1,逗号表达式2,逗号表达式n 求值规则:从左至右依次计算各表达式的值;优先级:最低;结合性:自左至右;表达式的值:最后一个表达式的值。,34,例如:a b y 表达式 y=a=4,b=5,a+b;4 5 4 9 y=(a=4,b=5,a+b);4 5 9 9 y=(a=4,b=5),a+b;4 5 5 9 y=a=(4,b=5),a+b;5 5 5 10注意:C语言常用逗号作为分隔符,例如:int a=3,b=4,c=5;printf(“%d,%d,%d”,(a,b,c);printf(“%d,%d,%d”,a,(a,b,c),c);

19、结果为3,5,5,35,强制类型转换:指将表达式的类型强制转换为指定的类型,其一般形式为:(类型名)表达式其作用:将表达式的结果的类型强制转换为类型名所指的类型。,例如,八、强制类型转换运算符,(int)(3.4+2.8)的值为6,强制类型转换时,得到所需类型的中间变量,而原来变量的类型不会改变。,注意:,36,例如:int a=2,b=5;float x=4.4;则有:表达式 结果 b/a 2(float)b/a 2.5(float)(b/a)2.0(int)x%a+x 4.4(int)x%(a+x)不合法,37,C语言的语句可分为以下四类:简单语句(包括输入/输出语句)、空语句、复合语句和

20、流程控制语句。简单语句又有表达式语句和函数调用语句。本章只介绍简单语句、空语句和复合语句的使用。,3.5 C基本语句,38,一、简单语句表达式语句就是一个表达式加上一个分号。如:A+;x=1;,函数调用语句由函数调用表达式加分号构成。printf(“%d”,a);,3空语句空语句用一个分号表示,其一般形式为:;,39,C 语言有丰富的标准函数库,可提供各类函数供用户调用调用标准库函数可完成预先设定好的操作.例如调用标准库函数求数学函数值:sin(x)、cos(x)、exp(x)(求ex)、fabs(x)(求x的绝对值)、log(x)(求lnx)等。,40,表达式语句举例,#include#in

21、cludemain()int a=2,b=4;float x,y;x=a/2+sqrt(b);/*x=3.0*/a+;/*a=3*/y=x*a;/*y=9.0*/printf(“x=%6.2f,y=%6.2f”,x,y);,41,程序说明,注意表达式类型转换注意赋值类型输出结果:x=3.00,y=9.00,42,调用调用标准库函数要注意以下几点,在程序中要包含相应的头文件,例如:#include,#include,调用规则:函数名(参数表),有返回值的函数要作为表达式的一部分,如:Y=sin(1.7);在表达式中调用函数,实际上是转去执行一段预先设计好的程序,求出结果后返回调用点。所以函数的值

22、又叫函数的返回值。,43,无返回值的函数可作为语句调用。,printf(“%d”,a);调用它不是为了得到返回值(函数值),是为了完成某项任务。,函数调用举例,Y=sin(1.12);Y1=sin(x);Y2=3*sin(x+1.12)+sqr(x);Y3=sin(sqrt(x+1.12);,44,二、复合语句:用一对花括号将多条语句组合在一起,在语法上相当于一条语句。,1、一般形式:内部数据说明;语句1;语句n;注意:(1)在复合语句中说明的变量,是局部变量,仅在 复合语句中有效。(2)复合语句的 之后,不能有分号。,45,复合语句(程序块)示例,main()int x=1;int x=2;

23、int x=3;printf(“x=%d”,x);printf(“x=%d”,x);printf(“x=%d”,x);,46,3.6 数据的输出,C语言本身不提供输入输出语句,得由标准I/O库函数提供。输入输出库函数很丰富,可以从键盘、显示器、磁盘文件和硬件端口进行输入或输出操作。本节主要介绍用于显示器输出的两个函数。,47,一、格式输出函数,1.格式输出函数原型:int printf(char*format,argument,),stdio.h,函数功能:按规定格式向输出设备(一般为显示器)输出数据,并返回输出的字符数。这个函数可以输出多字信息。,48,2.格式输出函数的一般形式,print

24、f(“格式控制字符串”,输出项表);,49,3.格式输出函数示例程序,#include“stdio.h”main()int i=97;char ch=a;printf(“i=%d,%cn”,i,i);,两个输出项都是变量i,但以不同的格式输出,一个是输出的整型数,一个输出的是字符a.其格式是由%d与%c控制的.,输出结果:i=97,a,50,int i=97;char ch=a;printf(“i=%d,%cn”,i,i);输出结果:i=97,a,printf(“i=%d,%cn”,i,i);,两个输出项都是变量i,但以不同的格式输出,一个是输出的整型数,一个输出的是字符a.其格式是由,%d与

25、%c控制的.,in i=97;cha=a;(“i=%d,%cn”,i,i);输出结果:i=97,a,双引号括起来的普通字符,在屏幕上原样输出。,51,4、格式说明,每个格式说明都必须以“%”开头,以一个格式字符结束,在此之间可以根据需要插入“长度说明”、“宽度说明”、左对齐符号“-”等。,格式说明与输出参数表要按顺序一一对应,且各输出项的数据类型要与对应的格式字符相符,常见的格式字符,()d格式符:用来输出十进制整数。有以下几种用法:%d,按整型数据的实际长度输出。%md,按指定宽度m输出整型数据,若数据位数小于m,则数据靠右对齐,左边补空格,否则按实际长度输出。%-md,按指定宽度m输出整型

26、数据,若数据位数小于m,则数据靠左对齐,右边补空格,否则按实际长度输出。,52,如:int a=12,b=2345;printf(“%d,%3d,%-3d,%3dn”,a,a,a,b);则输出结果为:12,12,12,2345%ld或%mld(%-mld),按实际长度或指定宽度m输出long型数据,若数据位数小于m,则左边(或右边)补空格,否则按实际长度输出。如:long a=12,b=2345;printf(“%ld,%3ld,%-3ld,%3ldn”,a,a,a,b);对于long型数据,必须用%ld格式输出,若用%d格式输出,则会发生运行结果错误。一个int型数据可用%d或%ld格式输出

27、。,53,()o格式符:用来以八进制形式输出整数,即将内存单元中的所有二进制数值(包括符号位)转换成八进制形式输出,输出的数值不带符号。,如:int a=-1;printf(“%d,%on”,a,a);输出结果为:-1,37777777777 对long型数据,可以用%lo形式输出。也可以指定长度输出,用%mo、%-mo等形式输出,54,()x(X)格式符:用来以十六进制形式输出整数,即将内存单元中的所有二进制数值(包括符号位)转换成十六进制形式输出,输出的数值也不带符号。用大写X表示输出结果中的a、b、c、d、e、f用大写字母A、B、C、D、E、F输出。,如:int a=-1;printf(

28、“%d,%o,%x,%Xn”,a,a,a);输出结果为:-1,37777777777,ffffffff,FFFFFFFF 对long型数据,同样可以用%lx形式输出。也可以指定长度输出,用%mx、%-mx等形式输出。,55,()u格式符:用来以十进制形式输出unsigned型数据,即将内存中的二进制数据(包括符号位)全部转换成十进制形式输出,输出的数值不带符号。一个有符号的(int)整数可以用%u格式输出,反之,一个unsigned型数据也可用%d、%o、%x格式输出。,【例3.6】main()int a=-2;unsigned b=65535;printf(“a=%d,%o,%x,%un”,

29、a,a,a,a);printf(”b=%d,%o,%x,%un”,b,b,b,b);,输出结果为:a=-2,37777777776,fffffffe,4294967294b=-1,37777777777,ffffffff,4294967295,56,()c格式符:用来输出一个字符。也有指定宽度输出%mc(%-mc),字符的左边(右边)补空格。一个整数只要其值在0255之间,也可以用字符形式输出,在输出前先转换成相应的ASCII字符;反之,一个字符也可以用整数形式输出。,如:char c=a;int a=65;printf(“c=%c,%dna=%3c,%dn”,c,c,a,a);输出结果为:c

30、=a,97a=A,65,57,()s格式符:用来输出一个字符串。,有如下用法:%s:按实际长度输出;%ms(或%-ms):输出字符串占m列,若字符串长度大于m,则按实际长度输出,否则若字符串长度小于m,则字符串右(左)对齐,左边(或右边)补空格;%m.ns(或%-m.ns):输出字符串占m列,但只取字符串左端的n个字符输出,这n个字符的左边(或右边)补空格;若nm,则m自动取n的值,保证n个字符正常输出;若省略m,则m等于n。如:printf(“%s,%6s,%-6s,%-4.2s,%4.2n”,”CHINA”,”CHINA”,”CHINA”,”CHINA”,”CHINA”);输出结果为:CH

31、INA,CHINA,CHINA,CH,CH,58,()f格式符:用来以小数形式输出实数(包括单、双精度)。,%f:整数部分全部输出,小数部分输出6位。%m.nf(或%-m.nf):输出数据占m列(包括整数部分、小数点和小数部分),小数位数为n位。如果数值宽度小于m,则数值靠右(左)对齐,左边(或右边)补空格;否则,整数部分全部输出,小数部分为n位;若省略m,则整数部分全部输出,小数部分为n位。,59,格式举例,main()float f=123.456;printf(“%f%10f%-10.2f%.2f%10.2fn”,f,f,f,f,f);,结果为:123.456001123.4560011

32、23.46123.46123.46,60,()e格式符:以指数形式输出实数,%e:输出数据宽度共占11位(Turbo C2.0中),其中整数部分非零数字占1位,小数点占1位,小数部分占5位,指数部分占4位(e占1位,指数符号占1位,指数占2位)。%m.ne(-%m.ne):m、n、-字符的含义与前面的f格式中相同,这里的n是指输出的数据的小数部分(又称尾数)的位数。,61,()g格式符:用来输出实数,根据数值的大小,自动选取f格式或e格式(选择输出时占宽度较小的一种)输出,且不输出无意义的0。,float f=123.456;printf(“%f,%e,%gn”,f,f,f);运行结果为:12

33、3.456001,1.234560e+002,123.456,62,printf格式字符,63,5调用函数printf时的注意事项,在格式控制字符串中,格式说明与输出项从左到右在类型上必须一一对应匹配。在格式控制字符串中,格式说明与输出项的个数应该相同。如果要输出百分号(%),则在格式控制串中用两个连续的百分号(%)来表示。在调用printf函数时,输出项有自增(自减)运算时,计算输出项的顺序从右至左。,64,二、字符输出函数,stdio.h,函数原型:int putchar(int),作用:向标准输出设备(一般为显示器)输出一个字符,并返回返回概字母的ASCII码值。参数可以是字符常量,变量

34、或整型数。,putchar(97);putchar(n);putchar(a);,65,3.7数据的输入,一、格式化输入函数(scanf函数)1.格式输入函数原型int scanf(char*format,argument,)函数功能:从键盘输入任何类型的数据给所指定的单元,并返回输入的数据个数。2格式输入函数一般形式scanf(“格式控制字符串”,地址列表);“格式控制字符串”的含义与printf函数相同;“地址列表”是由若干个地址组成的列表,可以是变量的地址,也可以是字符串的首地址,或后面要学习的指针变量。,66,【例3.9】#include main()int a,b;float c;s

35、canf(“%d%d%f”,运行时,344.3(输入数据给变量a b c)a=3b=4c=4.300000(输出结果)格式控制字符串说明了需要输入数据的类型:两个整型数和一个单精度实型数。&a,&b和&c是变量a,b和c的地址。,67,3格式说明,scanf函数中的格式控制字符串中可以包括:普通字符、转义字符和格式说明。普通字符和转义字符是在程序执行过程中需要从键盘原样输入的内容。格式说明是以“%”开头,以格式字符结束,中间可以插入长度说明、宽度说明等。格式字符表示输入数据转换后的数据类型。,68,scanf格式字符,69,4、使用scanf应注意:,scanf函数格式控制字符串中的普通字符不

36、是用于输出的,都是要求输入的。如scanf(”x=%d”,则在运行时,系统提示错误,运行终止,返回0。,70,在格式控制字符串中,格式说明与输入项的个数应该相同。若格式说明个数比输入项个数少,多余的输入项则得不到正确数据;若格式说明个数比输入项个数多,则对于多的格式输入的数据不使用。执行scanf()输入数值型数据时,在两个数据之间允许以一个或多个空格间隔,也可以用回车键、tab键分隔。但在输入字符型数据时,不能用分隔符,否则分隔符也作为有效字符输入给对应的变量。,71,如:执行语句scanf(“%d%d%d”,以下输入数据的方法都是正确的:3 5 8 35 8 358,72,执行语句scan

37、f(“%d%c%d”,输入第二个数据前不能有分隔符,若输入3 c 2则变量b和c得不到正确数据。若输入 3c2或3c 2则能得到正确结果。,73,long型数据一定要用%ld格式输入,double型数据一定要用%lf格式输入,否则运行结果错误。实数输入时不允许规定精度,象%10.4f是不合法的。可以指定输入数据所占的宽度,系统自动按指定的宽度截取数据。如:scanf(“%2d%3d%2d”,输入以下数据121345678变量a、b、c的值分别为:12、134、56,74,%与格式字符之间有*号时,该数据会被禁止使用。如:scanf(“%2d%*3d%2d”,输入以下数据121345678变量a

38、、b的值分别为:12、56中间的134三位数字跳过去不使用。在输入数据时,遇到下列情况则认为该数据输入结束:遇空格,或回车、Tab键。遇指定的宽度结束。遇非法输入。,75,二、字符输入函数,int getchar(void),stdio.h,从输入设备(一般为键盘)上输入一个字符。它每被调用一次,就从标准输入设备上取一个自符,返回值是该字符的ASCII编码值。可以赋给字符变量或整型变量。,执行getchar()是输入字符后要回车。,76,3.8 程序举例,例3.10 输入圆的半径,输出圆的周长和面积。分析:1.定义实型变量r、l、s用于存放半径、周长、面积;2.调用输入函数,输入r:3.分别利

39、用周长公式和面积公式求出l、s;4.调用输出函数输出l、s。,77,程序:,#include void main()float r,l,s;scanf(“%f”,&r);/*输入一个浮点数据,存入地址&r*/l=2*3.14159*r;/*计算周长,赋值给l*/s=3.14159*r*r;/*计算面积,赋值给s*/printf(“n l=%8.4f”,l);/*周长占8个字符宽,4位小数*/printf(“n s=%8.4f”,s);/*输出面积,数据共占8个字符宽,4位小数*/,78,分析:1.输入小写字母存入变量a;2.转换成大写a=a-32;3.输出 a.,例3.11 从键盘输入一个小写

40、字母,用大写形式输出该字母。,79,#include“stdio.h”void main()char a;printf(“Input a lowercase letter:”);a=getchar();a=a-32;/*将大写字母转换成对应的小写字母*/printf(“%c n”,a);思考:如何使程序可以处理任何字符的输入。即判断输入的是小写字母,才转换成大写;如果输入的其他字符,则直接输出。,程序:,80,例3.12 从键盘输入一个学生三门课程的成绩,求其平均成绩并输出,保留一位小数。分析:1输入三门课程成绩存入变量a、b、c;2求平均成绩aver=(a+b+c)/3;3输出 aver。,

41、81,#include“stdio.h”void main()float a,b,c,aver;printf(“input a,b,c:”);scanf(“%f%f%f”,&a,&b,&c);aver=(a+b+c)/3;printf(“%.1f n”,aver);,程序:,82,分析:1输入两个整数存入变量x和y;2交换两变量x和y的值;3输出 a。对第2步再细化:2.1 把x的值先赋给一个临时变量t,t=x;2.2 把y的值赋给变量x,x=y;2.3 把t的值赋给变量y,y=t。,例3.13 从键盘输入两个整数给两个变量x和y,交换变量x和y和值,然后输出。,83,#include“stdio.h”void main()int x,y,t;printf(“input x,y:”);scanf(“%d%d”,printf(“x=%d y=%d n”,x,y);,程序:,本章小结,C语言的运算符丰富,数据类型也丰富,库函数多。C语言本身没有提供输入输出语句,其输入输出操作都是通过函数调用来实现的。本章介绍了常用的几种运算符、基本的数据类型以及输入输出标准函数,并且通过实例说明了编制简单程序的方法。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号