C语言基本语法_第1页
C语言基本语法_第2页
C语言基本语法_第3页
C语言基本语法_第4页
C语言基本语法_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

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

文档简介

1、北京理工大学珠海学院北京理工大学珠海学院1 1第二讲第二讲C语言的基本语法语言的基本语法整理ppt2 2本讲主要内容本讲主要内容 C语言的基本元素语言的基本元素1 1 C语言的数据类型语言的数据类型2 2 C语言的常量和变量语言的常量和变量3 3 C语言的运算符和表达式语言的运算符和表达式4 4 C语言的基本输入输出语句语言的基本输入输出语句5 5整理ppt3 31、基本字符集基本字符集l 数数 字:字:0 1 2 3 4 5 6 7 8 9l 字字 母:母:a b c z A B C Zl 运算符:运算符:+ - * / % = = != = & | & | ( ) . !

2、? : , ; l 特殊符号:特殊符号:_(下划线下划线) 、回车、回车(r)、换行、换行(n) 制表符制表符(t)等等一、一、C语言的基本元素语言的基本元素-1整理ppt4 42. 标识符标识符标识符内容标识符内容:量名、变量名、数组名、类量名、变量名、数组名、类型名、存储方式名、函数名、文件名等。型名、存储方式名、函数名、文件名等。标识符规则:标识符规则:字母或字母或_(_(下划线下划线) )开头,后面是开头,后面是字母、字母、 _( _(下划线下划线) )或数字组成的字符串,要或数字组成的字符串,要求见名知意。求见名知意。call_n test39 _string1 abccall.n

3、39test -string1 c2.0合法合法非法非法一、一、C语言的基本元素语言的基本元素-2整理ppt5 5标识符说明标识符说明 (1) 在在C语言中,语言中, 标识符中大小写字母是有区别的。标识符中大小写字母是有区别的。程序中程序中基本上都采用小写字母表示各种标识符基本上都采用小写字母表示各种标识符,如变,如变量名、数组名、函数名等。书写的各种语句也均用小量名、数组名、函数名等。书写的各种语句也均用小写字母,而大写字母只用来定义宏名等,用的不多。写字母,而大写字母只用来定义宏名等,用的不多。 (2) 不同的系统对标识符的长度有不同的要求,不同的系统对标识符的长度有不同的要求, 有有的要

4、求为的要求为6个字符,有的允许使用个字符,有的允许使用8个字符,而个字符,而VS2012的标识符有效长度不受限制。的标识符有效长度不受限制。 (3) 除了少数情况下使用单个字符作标识符外(如:除了少数情况下使用单个字符作标识符外(如:循环变量名),一般的应做到循环变量名),一般的应做到见名知意见名知意,以提高程序,以提高程序的可读性。如用的可读性。如用sum表示和,表示和,score表示成绩,表示成绩, max表表示最大等等。示最大等等。整理ppt6 63. 关键字关键字autobreakcase charconstcontinuedefaultdo double elseenumextern

5、float for gotoifintlong register returnshortsignedsizeof static structswitchtypedefunion unsigned voidvolatilewhile标识符或标识符或由由C语言系统定义语言系统定义一、一、C语言的基本元素语言的基本元素-3整理ppt7 74. 运算符运算符 (数组下标数组下标)、( )、 .、-(成员选择成员选择)-(负号负号)、(求反求反)、+(递增递增)、-(递减递减) 、*(指针取值指针取值) 、&(指针取指针取地址地址)!(逻辑非逻辑非)、sizeof(求数据类型或变量对应内存的字节

6、数求数据类型或变量对应内存的字节数)、/(除法除法)、*(乘法乘法)、% (取模取模)、 +(加法加法)、-(减法减法)、 (右移右移)(小于小于) 、 (大于大于) 、=(大于等于大于等于)、=(等等于于)、!=(不等于不等于)&(位与位与)、(异或异或)、|(位或位或)、&(逻辑与逻辑与)、|(逻辑或逻辑或) ?: (条件运算符条件运算符)= (赋值赋值)、+=、-=、*= 、/=、 %= 、=、&= 、=、 |=, (逗号运算符逗号运算符)x+y x%y 2*x-yab x=a+=3xy & ab a=2,a+3,a+ -i一、一、C语言的基本元素语言的基

7、本元素-4整理ppt8 85. 分隔符分隔符 分隔符内容:空格字符、水平制表符、垂直制表符、分隔符内容:空格字符、水平制表符、垂直制表符、换行符、换页符及注释和逗号等,也称为空白字符。换行符、换页符及注释和逗号等,也称为空白字符。 分隔规则:在相邻的变量、关键字和常量、函数之分隔规则:在相邻的变量、关键字和常量、函数之间需要用一个或多个空白字符(其效果是一样的)间需要用一个或多个空白字符(其效果是一样的)将其分开将其分开 。 逗号也是分隔符,用于相邻同类项之间的分隔。例逗号也是分隔符,用于相邻同类项之间的分隔。例如编程计算如编程计算1+2案例中定义变量语句:案例中定义变量语句: int x=1

8、, y=2, z;一、一、C语言的基本元素语言的基本元素-5整理ppt9 9C语言把处理的数据进行分类,从语言把处理的数据进行分类,从数据的表示、取数据的表示、取值范围和对应的操作值范围和对应的操作等方面进行划分,形成不同的等方面进行划分,形成不同的数据类型数据类型通过程序中数据类型的描述确定存放数据的空间大通过程序中数据类型的描述确定存放数据的空间大小,确保小,确保C程序中的每个数据都属于一个确定的、程序中的每个数据都属于一个确定的、具体的数据类型。具体的数据类型。不同类型数据采取不同的存储形式;不同类型数据采取不同的存储形式;不同类型数据在内存中占有不同的存储空间;不同类型数据在内存中占有

9、不同的存储空间;不同类型数据对应不同的取值范围;不同类型数据对应不同的取值范围;不同类型数据确定了允许对其进行不同的操作类型。不同类型数据确定了允许对其进行不同的操作类型。1、数据类型数据类型的含义的含义二、数据类型二、数据类型整理ppt1010构造类型构造类型指针类型指针类型空类型空类型(无值类型无值类型枚举类型枚举类型数组类型数组类型结构类型结构类型联合类型联合类型 二、数据类型二、数据类型整理ppt1111按照数据在程序中的取值分为两类:按照数据在程序中的取值分为两类:值保持不变值保持不变-常量常量 x = 2 + y值随程序运行变化值随程序运行变化-变量变量单精度单精度 float双精

10、度双精度 double基本数据类型基本数据类型整理ppt12121、整型数据、整型数据-1整型数据包括整型常量和整型变量整型数据包括整型常量和整型变量 六种六种形式形式基本整型基本整型短整型短整型长整型长整型无符号整型无符号整型无符号短整型无符号短整型无符号长整型无符号长整型int short intlong int unsigned intunsigned short unsigned long整理ppt1313整型变量的取值范围整型变量的取值范围(在(在VS2010中)中)1、整型数据整型数据-2整理ppt1414有符号与无符号整型数的区别有符号与无符号整型数的区别 a=a=32a=-1

11、a=a=15a=-215=-32-1整理ppt15151. 求法:正数的补码与原码相同;负数的补码对原码求法:正数的补码与原码相同;负数的补码对原码即得即得补码补码。或者由反码加。或者由反码加1也可求得也可求得补码。补码。0补补的两种的两种表示是什么?表示是什么?数的补码表示数的补码表示2. 补码的表示范围补码的表示范围 当当n=16时,补码的表示范围是:时,补码的表示范围是:+127补补= 0000 0000 0111 1111 -128补补= 1111 1111 1000 0000由此可得由此可得补码表示范围的公式补码表示范围的公式是是2n1(2n11)整理ppt1616数的补码举例数的补

12、码举例问题:已知问题:已知a=4,b=16,计算,计算 4 -16 根据根据 a补补+b补补= a+b补补有:有: a+b补补 =+4补补+16补补 1 1 1 1 0 1 0 0 0 0 0 0 0 1 0 0 + 1 1 1 1 0 0 0 0 1000110016 原原= 10010000 连同符号连同符号一起运算一起运算4 补补 = 00000100 16 反反= 11101111 16 补补= 11110000 整理ppt17171)定义形式)定义形式三种三种形式形式单精度单精度双精度双精度长双精度长双精度 floatdoublelong double2)占存储空间)占存储空间481

13、6注意:实型常量不区分单精度和双精度!注意:实型常量不区分单精度和双精度!2、实型数据、实型数据-1 实型数据就是数学中的实数,一律作为实型数据就是数学中的实数,一律作为有符号的数据使用。有符号的数据使用。 整理ppt18184)输入输出形式)输入输出形式 %f, %lf 3)变量的取值范围)变量的取值范围 类型类型 长度长度数的范围数的范围有效数字有效数字单精度单精度float4 10- 38 10386 7位位双精度双精度double8 10- 308 1030815 16位位长双精度长双精度long double16 10- 4931 10493218 19位位2、实型数据实型数据-2整

14、理ppt1919 实型数据在计算机中以实型数据在计算机中以指数形式指数形式存储,单精度存储,单精度float变量占四个字节。一个字节存放指数部分变量占四个字节。一个字节存放指数部分, 三个三个字节存数值部分。字节存数值部分。5)float型数的表示范围型数的表示范围2、实型数据实型数据-3整理ppt20203、字符型、字符型字符型常量:字符型常量: a 、b 字符型变量字符型变量: char ch;C语言采用语言采用ASCII码字符集,即用码字符集,即用1个个字节存放字节存放1个字符的个字符的ASCII码值。码值。字符型使用关键字字符型使用关键字char表示,表示,ASCII码码值的范围为值的

15、范围为0255。整理ppt21211)在程序运行中,其值保持不变)在程序运行中,其值保持不变2)表示方法:)表示方法: 3)符号常量:)符号常量: #define PI 3.14159又称为宏定义,给常量定义一个标识符,称宏名,大写。又称为宏定义,给常量定义一个标识符,称宏名,大写。三、三、C语言的常量和变量语言的常量和变量整型整型 100,125,-100实型实型 3.14 , 0.125字符型字符型 a, b字符字符串常量串常量 string1、常量、常量整理ppt2222宏定义应用举例宏定义应用举例/* 符号常量(宏定义)的使用符号常量(宏定义)的使用 */#include /定义符号常

16、量定义符号常量PRICE,值为,值为30 #define PRICE 30void main() int num,total; num=10; total=num* PRICE; /使用符号常量使用符号常量 printf(total=%d,total);#include /定义符号常量定义符号常量PIPI,值,值为为3.14159263.1415926#define PI 3.1415926void main() float r,s; r=2.3; s=PI*r*r; printf(%f,s);整理ppt2323 3. 变量通过变量通过变量名变量名来标识。来标识。 1. 在程序运行中,值发生变

17、化;在程序运行中,值发生变化;2. 必须先定义,再使用;必须先定义,再使用;int a=3,b=10;类型类型 变量名表变量名表内存内存a3 变量名和内存中的存储单元变量名和内存中的存储单元相对应。编写程序时通过变量名相对应。编写程序时通过变量名来存、取存储单元。来存、取存储单元。2、变量、变量b10整理ppt2424 (1)以)以字母或下划线开头字母或下划线开头,后面可以跟字母、下,后面可以跟字母、下划线和数字划线和数字(2)不能用不能用系统中的系统中的关键字关键字作为变量名作为变量名(3)变量名中的字母是)变量名中的字母是区分大小写区分大小写的:的: sum、stu_name、_age、L

18、ts_1_2、a2 32c、x.y、start+9、c2.0 非法非法 NAME name 表示两个不同的标识符。表示两个不同的标识符。有关变量名的规定有关变量名的规定整理ppt2525变量定义格式变量定义格式存储类型存储类型 数据类型关键字数据类型关键字 变量名标识符变量名标识符; 【例例】定义变量示例定义变量示例int a; unsigned long sum; float r; char ch;int a, b, c=4; 整理ppt2626定义多个同类型变量方法定义多个同类型变量方法在同一个语句中可以定义两个及两个以上在同一个语句中可以定义两个及两个以上相同类型的变量。相同类型的变量。

19、规定:变量名之间用规定:变量名之间用逗号逗号作为间隔符,第作为间隔符,第一个变量名与数据类型关键字之间用空格一个变量名与数据类型关键字之间用空格(空格的个数不限)作为间隔符。(空格的个数不限)作为间隔符。例如:例如:double x, y;整理ppt27271) 定义形式:定义形式:2)占存储空间:)占存储空间:1个字节个字节char 变量表;变量表;3)输入输出形式:)输入输出形式: %c a a ASCIIASCII值为值为 97 97 内存中存储形式内存中存储形式0 1 1 0 0 0 0 14)字符型数据在内存中以相应的)字符型数据在内存中以相应的ASCII值存储值存储3. 字符型变量

20、字符型变量整理ppt2828 以以“”开头后跟一个特殊字符或数字称为开头后跟一个特殊字符或数字称为转义字符。转义字符。n 换行换行t 横横向跳格向跳格(制表符制表符)r 回回车车反反斜杠斜杠ddd ddd表示表示1到到3个个八进制八进制数字数字xhhh hhh表示表示1到到3个个十六进制十六进制数字数字printf(%d t %d t,a,b); printf(%d n%d n,a,b);若:若:a为为1,b为为0, 则则4、转义字符、转义字符输出输出:1010整理ppt2929转义字符表示法转义字符表示法整理ppt3030ddd 表示表示1到到3个个八进制八进制数字对应数字对应ASCII字符

21、字符xhhh 表示表示1到到3个个十六进制十六进制数字对应数字对应ASCII字符字符10114160 x41x61x30printf(%c,%c,%cn,a,b,c); printf(%c,%c,%cn,x,y,z);若:若:a =101 ,b =141,c= 60;若:若:x =x41,y =x61,z=x30; 转义字符举例转义字符举例输出输出: A,a,0输出输出: A,a,0表示表示 A 八进制八进制101十进制的十进制的65表示表示 a表示表示 0表示表示 A 十六进制十六进制41十进制的十进制的65表示表示 a表示表示 0整理ppt3131分析程序看结果分析程序看结果【例例】转义字

22、符应用举例。转义字符应用举例。/* 字符输出与转义字符应用字符输出与转义字符应用 */#include void main( ) printf(abct defrgthn); printf(it jkbbbl m); printf(Yb=n);整理ppt32321. 1. 运算符运算符运算符运算符 x = 5 + b * c 算术运算符算术运算符赋值运算符赋值运算符关系运算符关系运算符逻辑运算符逻辑运算符逗号运算符逗号运算符条件运算符条件运算符 C 中运算符中运算符四、四、C语言的运算符和表达式语言的运算符和表达式3232整理ppt33332、运算符的优先级顺序、运算符的优先级顺序优先级高优先

23、级高优先级低优先级低整理ppt3434* 优先级:运算符的执行顺序优先级:运算符的执行顺序 * 结合性:优先级相同时的结合方向结合性:优先级相同时的结合方向u 一元运算符的优先级高于二元运算符,二一元运算符的优先级高于二元运算符,二元运算符的优先级高于三元运算符;元运算符的优先级高于三元运算符;u 算术运算符的优先级高于关系运算符,关算术运算符的优先级高于关系运算符,关系运算符的优先级高于逻辑运算符系运算符的优先级高于逻辑运算符u 一元运算符从右向左结合(右结合)一元运算符从右向左结合(右结合)u 多数二元运算符从左向右结合(左结合)多数二元运算符从左向右结合(左结合)运算符的优先级与结合性运

24、算符的优先级与结合性整理ppt35353、表达式书写方法、表达式书写方法 必须在一行内书写,没有上(下)角标。必须在一行内书写,没有上(下)角标。 为保证运算次序,必要时可以加小括号进行为保证运算次序,必要时可以加小括号进行限定,并且只能用小括号。限定,并且只能用小括号。 不能出现不能出现C语言中不允许的字符,如语言中不允许的字符,如、等。等。整理ppt36361)算数表达式算数表达式 用算术运算符和小括号将运算量连接起来的、符用算术运算符和小括号将运算量连接起来的、符合合C语言语法规则的式子,称为语言语法规则的式子,称为C语言的算术表语言的算术表达式。达式。 举例:举例: 4+8 A 1 8

25、/5 5.5*4 5%2 ( b+sqrt(b*b 4*a*c)/(2*a) 5.6%2 (不正确)(不正确)整理ppt37371 1)将一个常量或一个表达式的值赋给一个变量称为)将一个常量或一个表达式的值赋给一个变量称为赋值,含有赋值运算符的表达式称为赋值表达式赋值,含有赋值运算符的表达式称为赋值表达式 。x = 5 y = x + 10 2)可以将一个实型赋给一个整型,或将一个整型)可以将一个实型赋给一个整型,或将一个整型赋给一个实型赋给一个实型int x; x=5.3; x的值为的值为 5float y; y=5; y的的值为值为 5.0000003)赋值运算的优先级)赋值运算的优先级比

26、算术运算低比算术运算低4)赋值运算的结合性)赋值运算的结合性从右向左从右向左x = y = 52)赋值运算符与赋值表达式赋值运算符与赋值表达式整理ppt3838关于赋值表达式的几点说明:关于赋值表达式的几点说明: 赋值号赋值号“=”的左边必须是一个变量名(一般称为左值),的左边必须是一个变量名(一般称为左值),赋值号的右边必须是赋值号的右边必须是C语言中合法的表达式。语言中合法的表达式。 赋值运算符的优先级只比逗号运算符高,比其他所有运赋值运算符的优先级只比逗号运算符高,比其他所有运算符优先级别都低(算符优先级别都低(14级)。赋值运算符具有右结合性。级)。赋值运算符具有右结合性。 赋值运算的

27、功能是先求出右边表达式的值,然后把此值赋值运算的功能是先求出右边表达式的值,然后把此值赋给左边的变量赋给左边的变量。确切地讲,就是把数据(表达式计算。确切地讲,就是把数据(表达式计算结果)放入该变量的存储单元中去。结果)放入该变量的存储单元中去。 赋值表达式的值就是被赋值的变量的值。赋值表达式的值就是被赋值的变量的值。 在定义变量时不允许连续赋值。例如,在定义变量时不允许连续赋值。例如,int a=b=c=5; 是是不合法的。不合法的。 如果赋值运算符两边的数据类型不相同,系统将自动进如果赋值运算符两边的数据类型不相同,系统将自动进行类型转换,即把赋值号右边的类型转换成左边的类型。行类型转换,

28、即把赋值号右边的类型转换成左边的类型。 整理ppt3939赋值表达式应用举例赋值表达式应用举例【例例】 分析下列程序。分析下列程序。/* 赋值时类型转换示例赋值时类型转换示例 */#include void main() int a,b=322; float x,y=8.88; char c1=a,c2; a=y; x=b; a=c1; c2=b; printf(%d,%f,%d,%c,a,x,a,c2);整理ppt4040a+=5 a=a+5赋值运算符两侧出现赋值运算符两侧出现相同的变量相同的变量 算术运算与赋值算术运算与赋值运算相结合运算相结合3)复合赋值运算符和赋值表达式)复合赋值运算符

29、和赋值表达式格式:变量格式:变量 双目操作符双目操作符= 表达式;表达式;二元操作符:二元操作符:+、-、*、/、%、0?打印打印a的值的值选择结构选择结构YNX=100?x=1 sum=0语句语句条件条件循环结构循环结构5656一般每个程序都要用到数据的输入输出。一般每个程序都要用到数据的输入输出。数据输入:通过外设将数据输入内存。数据输入:通过外设将数据输入内存。数据输出:将内存的数据通过外设输出数据输出:将内存的数据通过外设输出。 C语言的输入输出通过调用系统函数实现,这些语言的输入输出通过调用系统函数实现,这些输入输出函数一般存于输入输出函数一般存于stdio.h库文件。使用输入输库文

30、件。使用输入输出函数要用预译命令指出连接的库文件,程序编译出函数要用预译命令指出连接的库文件,程序编译连接时将其与用户程序相连。连接时将其与用户程序相连。如:如: #include 或或#include stdio.h 1、输入输出的含义、输入输出的含义57572、格式输入输出函数、格式输入输出函数【例例】输入一个整数半径,以单精度数形式输出圆的输入一个整数半径,以单精度数形式输出圆的面积。面积。 #include int main() int r; float s=0; printf(请输入圆的半径:请输入圆的半径:); scanf(%d,&r); s=3.1415926*r*r;

31、printf(圆的面积是:圆的面积是:%fn, s); return 0;5858格式:格式:printf(格式控制串格式控制串,输出表,输出表)功能:按指定格式向显示器输出数据功能:按指定格式向显示器输出数据返值:正常,返回输出字节数;出错,返回返值:正常,返回输出字节数;出错,返回EOF(-1)输出表:要输出的数据(可以没有,多个时以输出表:要输出的数据(可以没有,多个时以“,”分分隔)隔)格式控制串:包含两种信息格式控制串:包含两种信息格式说明:格式说明:%修饰符修饰符格式字符格式字符 ,用于指定输出格式,用于指定输出格式普通字符或转义序列:原样输出普通字符或转义序列:原样输出3、格式输

32、出函数、格式输出函数-15959int a=567;printf (“%d”,a);int a=255;printf(“%x”,a);int a=65;printf(“%o”,a);int a=567;printf(“%u”,a);char a=65;printf(“%c”,a);printf(“%s”,“ABC”);float a=567.789;printf(“%e”,a);float a=567.789;printf(“%f”,a);float a=567.789;printf(“%g”,a);printf(“%”);567ff101567AABC5.677890e+002567.789

33、000567.789%3、格式输出函数、格式输出函数-2说明说明: :p除除X X、E E、G G外,格式字符要用小写外,格式字符要用小写p格式字符与输出项个数应相同,按先后顺序一一对应格式字符与输出项个数应相同,按先后顺序一一对应, ,否则否则, ,若格式字符少若格式字符少, ,按其个数自左向按其个数自左向右输出值右输出值, ,若格式字符多若格式字符多, ,多出的将输出不确定值多出的将输出不确定值. .p输出转换输出转换: :格式字符与输出项类型不一致格式字符与输出项类型不一致, ,自动按指定格式输出自动按指定格式输出, ,但但intint与与floatfloat不能互用不能互用 。6060

34、附加格式说明符附加格式说明符(修饰符修饰符)整理ppt61614、格式输入函数格式输入函数-1格式格式: scanf(格式控制格式控制参数参数,地址表),地址表)功能:按指定格式从键盘读入数据,存入地址表指定功能:按指定格式从键盘读入数据,存入地址表指定的存储单元中的存储单元中,并按回车键结束并按回车键结束返返回回值:正常,返回输入数据个数值:正常,返回输入数据个数p地址表:变量的地址,常用取地址运算符地址表:变量的地址,常用取地址运算符&p格式字符格式字符:d,i,o,x,u,c,s,f,e例例 scanf(%d,&a);p 输入:输入:10 p 则则 a=10例例 scan

35、f(%x,&a);p 输入:输入:11 p 则则 a=17整理ppt62624、格式输入函数格式输入函数-2d, i输入有符号的十进制数输入有符号的十进制数u输入无符号的十进制数输入无符号的十进制数o输入无符号的八进制数输入无符号的八进制数x,X输入无符号的十六进制数输入无符号的十六进制数c输入单个字符,空格、回车、制表符等也作为有效字输入单个字符,空格、回车、制表符等也作为有效字符输入符输入s输入字符串,以非空白字符开始,遇到第一个空白字输入字符串,以非空白字符开始,遇到第一个空白字符(包括空格、回车、制表符)时结束符(包括空格、回车、制表符)时结束f输入实数,小数、指数形式均可输入

36、实数,小数、指数形式均可E,e,g,G与与f作用相同作用相同6363附加格式说明符附加格式说明符(修饰符修饰符)l修饰符修饰符功功 能能hm*用于用于d,o,xd,o,x前,指定输入为前,指定输入为shortshort型整数型整数用于用于d,o,xd,o,x前,指定输入为前,指定输入为longlong型整数型整数用于用于e,fe,f前,指定输入为前,指定输入为long doublelong double型实数型实数指定输入数据宽度,遇空格或不可转换字符则结束指定输入数据宽度,遇空格或不可转换字符则结束抑制符,指定输入项读入后不赋给变量抑制符,指定输入项读入后不赋给变量例例 scanf(“%4d

37、%2d%2d”,&yy,&mm,&dd); 输入输入 19991015 则则1999yy, 10 mm, 15 dd例例 scanf(“%3d%*4d%f”,&k,&f); 输入输入 12345678765.43 则则123k, 8765.43f例例 scanf(“%2d %*3d %2d”,&a,&b); 输入输入 12 345 67 则则12a, 67b例例 scanf(“%3c%2c”,&c1,&c2); 输入输入 abcde 则则ac1, d c2整理ppt6464一般以空格、一般以空格、TAB或回车键作为分隔符或

38、回车键作为分隔符其它字符做分隔符:格式串中两个格式符间字符其它字符做分隔符:格式串中两个格式符间字符例例 scanf(%d%o%x,&a,&b,&c); printf(a=%d,b=%d,c=%dn,a,b,c); 输入输入 123 123 123 输出输出 a=123,b=83,c=291例例 scanf(a=%d,b=%d,c=%d, &a, &b, &c); 输入输入 a=12,b=24,c=36 输入分隔符的指定输入分隔符的指定-1例例 scanf(%d:%d:%d, &h, &m, &s); 输入输入 12:30

39、:45 则则12 h, 30 m, 45 s例例 scanf(%d,%d, &a, &b) 输入输入 3,4 则则3a, 4 b整理ppt6565 说明:说明: 用用“%c”格式符时,空格和转义字符作为有格式符时,空格和转义字符作为有效字符输入效字符输入p输入数据时,遇以下情况认为该数据结束:输入数据时,遇以下情况认为该数据结束: 遇空格、遇空格、TAB、或回车或回车 遇宽度结束遇宽度结束 遇非法输入遇非法输入p输入函数留下的输入函数留下的“垃圾垃圾”:解决方法:解决方法:(1) 用用getchar()清除清除(2) 用函数用函数fflush(stdin)清除全部剩余内容清除全

40、部剩余内容(3) 用格式串中空格或用格式串中空格或“%*c”来来“吃掉吃掉”(4) 用用%1s代替代替%c,因为它完全忽略空格和回车符,因为它完全忽略空格和回车符输入分隔符的指定输入分隔符的指定-2整理ppt6666例例 int x; char ch; scanf(%d, &x); scanf(%c, &ch);或或 scanf(%*c%c, &ch); scanf(%1s, &ch);例例 int x; char ch; scanf(%d, &x); ch=getchar(); printf(x=%d,ch=%dn, x, ch);执行:执行:123

41、输出:输出:x=123,ch=10例例 int x; char ch; scanf(%d,&x); scanf(%c,&ch); printf(x=%d,ch=%dn, x, ch);执行:执行:123 输出:输出:x=123,ch=10例:例: scanf(%c%c%c, &c1, &c2, &c3); 若输入若输入a b c 则则ac1, c2, b c3例:例: scanf(%d%c%f,&a,&b,&c); 若输入若输入1234a123o.26 则则 1234 a, a b, 123 c输入分隔符的示例输入分隔符的示例67

42、67格式:格式:getchar( )功能功能:从键盘读一字符从键盘读一字符返值返值:正常正常,返回读取的代码值;返回读取的代码值;出错出错,返回返回EOF(-1)getchar函数函数注意:注意:n getchar( )函数没有参数,本身不能提供用于存放字符的变函数没有参数,本身不能提供用于存放字符的变量,因此一般使用形式为:变量量,因此一般使用形式为:变量=getchar()n 利用利用getchar( )读入字符时,不是读入一个字符后立刻响应读入字符时,不是读入一个字符后立刻响应,而是先读入缓冲区,待回车后再一并执行。通常用前置,而是先读入缓冲区,待回车后再一并执行。通常用前置printf( )函数加入提示信息。函数加入提示信息。n getchar()从键盘缓冲区中自左向右顺序读取数据的(这被从键盘缓冲区中自左向右顺序读取数据的(这被称为数据流)。称为数据流)。5、字符输入字符输入函数函数整理ppt6868#include int main() char ch1,ch2,ch3; ch1=getchar( ); /从键盘输入一个字符并存到从键盘输入一个字符并存到ch1中中 getchar( ); /消除回车符的影响,即吃掉回车符号消除回车符的影响,即吃掉回车符号 ch2=getchar( ); /从键盘输入一个字符并存到从键盘输入一个字符并存到ch2中中 ge

温馨提示

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

评论

0/150

提交评论