《基本程序语句》PPT课件.ppt_第1页
《基本程序语句》PPT课件.ppt_第2页
《基本程序语句》PPT课件.ppt_第3页
《基本程序语句》PPT课件.ppt_第4页
《基本程序语句》PPT课件.ppt_第5页
已阅读5页,还剩79页未读 继续免费阅读

下载本文档

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

文档简介

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标识符的分类 关键字 分为三类 预定义标识符 用户标识符,4,二、常量:常量是指在程序运行中,其数值不能被改变的量 1直接常量 :是在程序中直接引用的数据 2符号常量 符号常量是用标识符来代表一个数据 符号常量的定义形式: #define 符号常量标识符 常量数据 例如: #define PI 3.14159,5,三、变量 变量是指以标识符为名字,其值可以改变的量。 变量分为整型、实型、字符型等。 变量的定义形式:类型标识符 变量名1 ,变量名2,变量名3.; 变量的初始化:在定义变量的同时给变量一个初始值。 如: int a=5, b=3; 注意:在同一程序块中,变量不能被重复定义; 使用变量时必须“先定义,后使用” 。,6,2、变量初始化 在说明变量的同时给变量一个初始值。,例如,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)。 例如: 0x12=1*161+2*160=18(十进制) * 八进制的数码范围为07; 018 * 十六进制的数码除了数字09外, 还使用英文字母a f (或A F)表示1015。 如:0x1e ,注意!,3.3 C语言的三种基本数据类型,8,2、整型变量 ()整型变量分类 根据数据所占的二进制位数分为: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 short 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, 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 回车 反斜杠字符 单引号字符 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码存放,且在最后加一个“空字符”,注意, a与“a”的区别。,14,120 、 -100、 0; 0120、 072; 0xFFFF、 0x1e、0X28AF,0XED4 ; 120L, 200L ; 长整型常量 3.14、 -3.1、 5.12E-6 ; a 、#、n、101 ; 099、12f、 0xg 、48EA ; 019.5 、1e-08; 实型常量只能用十进制形式表示 2.1E10.2、E-6、6.4E+4.8、E9 ; “changsha“ 、“+?ab“ ; 、p 、ab ;,课堂练习:,请判断这些常量正确与否:,15,一、C运算符简介 按操作功能运算符大致可分为算术运算符、关系运算符、逻辑运算符、按位运算符以及其它运算符如赋值运算符、条件运算符、逗号运算符等。 表达式是由操作数和运算符组成的序列。,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、算术表达式 用算术运算符和括符将操作数连接起来的式子。 优先级:() *、/、% +、- 结合性:从左至右; 表达式的值: 数值型(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、赋值表达式:用赋值运算符将变量和表达式连接起来的式子 一般形式为: 赋值运算符 优先级: 赋值运算符的优先级比算术运算符低。 结合性:自右至左(右结合性)。 求值规则: 先计算“=”右边表达式的值,再将其值赋给左边的变量。 表达式的值:赋值号左边变量的值即为赋值表达式的值。 例如:(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 相当于 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型变量时,只截取低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;,23,结合性:自右至左。 如: 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=10 a=6,b=1,25,1、6种关系运算符:= = != 2、关系表达式:用关系运算符将表达式连接起来的式子 优先级: (= )( = != ) 结合性:自左至右; 表达式的值: 若为真,则结果为1; 若为假,则结果为0。,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,! 高 算术运算符 关系运算符 &和| 赋值运算符 低,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、 求值规则和表达式的值: 真(非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时,表达式的结果为:-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); 结果为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语言的语句可分为以下四类:简单语句(包括输入/输出语句)、空语句、复合语句和流程控制语句。简单语句又有表达式语句和函数调用语句。 本章只介绍简单语句、空语句和复合语句的使用。,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 #include main() 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); 在表达式中调用函数,实际上是转去执行一段 预先设计好的程序,求出结果后返回调用点。 所以函数的值又叫函数的返回值。,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; 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.格式输出函数的一般形式,printf(“格式控制字符串”,输出项表);,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与%c控制的.,in i = 97; cha = a; (“i =%d ,%cn”, i, i ); 输出结果: i = 97,a,双引号括起来的普通字符,在屏幕上原样输出。,51,4、格式说明,每个格式说明都必须以“%”开头,以一个格式字符结束,在此之间可以根据需要插入“长度说明”、“宽度说明”、左对齐符号“-”等。,格式说明与输出参数表要按顺序一一对应,且各输出项的数据类型要与对应的格式字符相符,常见的格式字符,()d格式符:用来输出十进制整数。 有以下几种用法: %d,按整型数据的实际长度输出。 %md,按指定宽度m输出整型数据,若数据位数小于m,则数据靠右对齐,左边补空格,否则按实际长度输出。 %-md,按指定宽度m输出整型数据,若数据位数小于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格式输出。,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(“%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”,a,a,a,a); printf(”b=%d,%o,%x,%un”,b,b,b,b); ,输出结果为: a=-2,37777777776,fffffffe, 4294967294 b=-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=a,97 a=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”); 输出结果为: CHINA , 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.456001123.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); 运行结果为: 123.456001,1.234560e+002,123.456,62,printf格式字符,63,5调用函数printf时的注意事项,在格式控制字符串中,格式说明与输出项从左到右在类型上必须一一对应匹配。 在格式控制字符串中,格式说明与输出项的个数应该相同。 如果要输出百分号(%),则在格式控制串中用两个连续的百分号(%)来表示。 在调用printf函数时,输出项有自增(自减)运算时,计算输出项的顺序从右至左。,64,二、 字符输出函数,stdio.h,函数原型:int putchar(int),作用:向标准输出设备(一般为显示器)输出一个字符,并返回返回概字母的ASCII码值。参数可以是字符常量,变量或整型数。,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; scanf(“%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函数格式控制字符串中的普通字符不是用于输出的,都是要求输入的。如scanf(”x=%d”, 则在运行时,系统提示错误,运行终止,返回0。,70,在格式控制字符串中,格式说明与输入项的个数应该相同。若格式说明个数比输入项个数少,多余的输入项则得不到正确数据;若格式说明个数比输入项个数多,则对于多的格式输入的数据不使用。 执行scanf( )输入数值型数据时,在两个数据之间允许以一个或多个空格间隔,也可以用回车键、tab键分隔。但在输入字符型数据时,不能用分隔符,否则分隔符也作为有效字符输入给对应的变量。,71,如:执行语句 scanf(“%d%d%d”, 以下输入数据的方法都是正确的: 3 5 8 3 5 8 3 5 8,72,执行语句 scanf(“%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、b的值分别为:12、56 中间的134三位数字跳过去不使用。 在输入数据时,遇到下列情况则认为该数据输入结束: 遇空格,或回车、Tab键。 遇指定的宽度结束。 遇非法输入。,75,二、字符输入函数,int getchar(void),stdio.h,从输入设备(一般为键盘)上输入一个字符。它每被调用一次

温馨提示

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

评论

0/150

提交评论