




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、123432个关键字:(auto break case char constcontinue default do double elseenum extern float for gotoif int long register returnshort signed sizeof static structswitch typedef unsigned union voidvolatile while567C数据类型基本类型构造类型指针类型空类型void定义类型typedef数值类型字符类型char枚举类型enum整 型浮点型单精度型float双精度型double短整型short长整型lon
2、g整型int数组结构体struct共用体union8910例1.2 /*求两数之和*/ main( ) int a , b , sum ; /*定义变量定义变量*/a=123 ; b=456 ;sum= a + b ; printf (“Sum is %dn”, sum) ; Sum is 579 11例1.3 求两数之最大值 main( ) int a , b , c ; scanf (”%d,%d”, &a, &b) ; c=max(a , b) ; /*调用自定义函数max */ printf (“max=%dn”, c) ; int max(int x , int y)
3、 /*自定义函数*/ int z ; if (xy) z=x ; else z=y ; return(z) ; 121314151617图图1.5 用流程图描述算法用流程图描述算法NYz= yz= xx y ?开始开始输入输入x和和y结束结束输出输出z18输入输入x、y的值的值xy T F z = x z = y输出输出z的值的值19第一章第一章 1.1 1.1 引言引言算法的特性算法的特性(1 1)有穷性。)有穷性。 (2 2)确定性。)确定性。 (3 3)有效性。)有效性。 (4 4)输入。)输入。 (5 5)输出。)输出。 2021结构化程序设计的三种基本结构:结构化程序设计的三种基本结
4、构:1) 顺序结构顺序结构 传统流程图 N-S流程图 AB开始结束其中:A、B为操作框,可由一条或多条语句实现。222) 选择结构选择结构(分支结构) 传统流程图 N-S流程图 入口 出口ABPT FT F其中:P为分支判断条件; A、B必有一个且只有一个被执行; A、B之一可是空操作,用 表示。23 3) 循环结构循环结构当型循环当型循环先判断后循环,有可能一次也不循环。 入口 F T PA当P为真 A出口其中:P为循环判断条件; A为要重复执行的操作,称为循环体;24 直到型循环直到型循环先循环后判断,至少循环一次。 入口 F T PA A直到P为真 出口其中:P为循环判断条件; A为要重
5、复执行的操作,称为循环体;25算法举例算法举例例:计算5! (12345) 当型循环 直到型循环 2627 一一. . 上机过程:上机过程:编译编译正确正确正确正确正确正确有错误有错误有错误有错误编辑编辑运行运行2829装载装载c程序程序编辑编辑c程序程序运行运行c程序程序(ctrl+F9)正确正确?看结果看结果(alt+F5)运行下一程序运行下一程序?是是是是否否退出退出否否2.上机过上机过程流程图程流程图:30F3F3(打开源程序)打开源程序)F2F2(保存当前源程序)保存当前源程序) F9F9(编译当前源程序)编译当前源程序) CTRL+F9CTRL+F9(运行当前源程序)运行当前源程序
6、) ALT+F5ALT+F5(查看运行结果)查看运行结果)3.编写、编写、运行运行C C程序程序时常用功时常用功能键能键31三、需要记住的三、需要记住的TCTC中一些常用功能键中一些常用功能键F1:F1:帮助。帮助。 F2F2:将当前文件存盘。将当前文件存盘。 F3F3:装载原有文件或给新文件命名。装载原有文件或给新文件命名。 F4F4:程序运行到光标所在行。程序运行到光标所在行。 F5F5:放大或缩小活动窗口切换。放大或缩小活动窗口切换。F6F6:开或关活动窗口切换。开或关活动窗口切换。F7F7:单步运行程序,跟踪进入函数内部运行。单步运行程序,跟踪进入函数内部运行。F8F8:单步运行程序,
7、不跟踪进入函数内部。单步运行程序,不跟踪进入函数内部。 第一章第一章 1.3 1.3 C C语言集成开发环境语言集成开发环境323334 数据类型、运算符与表达式数据类型、运算符与表达式 CHAPTER 235数据类型、运算符与表达式数据类型、运算符与表达式 的数据类型的数据类型v C语言提供的数据结构是以数据类型形式出现的v 数据在内存中存放的情况有数据类型决定v 数据的操作要依靠运算符实现,而数据和运算符共同组成了表达式。36数据类型、运算符与表达式数据类型、运算符与表达式 的数据类型的数据类型数组类型数组类型数据类型数据类型构造类型构造类型空类型空类型指针类型指针类型双精度双精度单精度单
8、精度实型(浮点型)实型(浮点型)字符型字符型枚举类型枚举类型基本类型基本类型整型整型结构体类型结构体类型共用体类型共用体类型373.2常量与变量常量与变量 3.2.1常量和符号常量常量和符号常量常量常量: :在运行过程中,其值不能被改变的量称为常量。在运行过程中,其值不能被改变的量称为常量。 分类:整型实型字符字符串分类:整型实型字符字符串符号常量符号常量,用一个标识符代表的常量。,用一个标识符代表的常量。习惯上,符号常量名用大写,变量用小写,以示区别。习惯上,符号常量名用大写,变量用小写,以示区别。u1,0,123为整型常量为整型常量u 4.6, 1.23为实型常量为实型常量u a, d 为
9、字符常量为字符常量u #define PRICE 255 A=PRICE*A+6 C=PRICE+C/120PRICE是标识符,符号常量是标识符,符号常量383.2.2 变变 量量变量变量:在程序运行过程中,其值可以改变的量称为变量。:在程序运行过程中,其值可以改变的量称为变量。标识符标识符:用来标识变量名、符号常量名、函数名、类型名:用来标识变量名、符号常量名、函数名、类型名、数组名、文件名的有效字符序列称为标识符。、数组名、文件名的有效字符序列称为标识符。 由字母、数字和下划线三种字符组成,且第一个字由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。符必须为字母或下划线。u
10、合法的变量名如:合法的变量名如: average,abd, a, s2, student_name, _initu不合法的变量名:不合法的变量名:M.D.John, 1a, #33, ab3. C 3. C 语言要求对变量语言要求对变量“先定义,后使用先定义,后使用”。393.3 整型数据整型数据 3.3.1 整型常量整型常量由一系列数字组成。也可带有减号,但不使用加号。由一系列数字组成。也可带有减号,但不使用加号。u十进制整数:十进制整数:123,-456,0u八进制整数:以八进制整数:以0 0开头的数据,如:开头的数据,如:-011,0123u十六进制整数:以十六进制整数:以0 x0 x开
11、头的数据,如:开头的数据,如:0 x123 整型常量的分类根据其值的范围而决定其类型,整型常量的分类根据其值的范围而决定其类型,并可以赋值给类型相匹配的整型变量。并可以赋值给类型相匹配的整型变量。402412.整型变量的分类整型变量的分类 整型整型 int int 在内存中以二进制形式存放,每一个整型变量在内存中占在内存中以二进制形式存放,每一个整型变量在内存中占2 2个字节。个字节。短整型短整型 以以short intshort int表示或以表示或以shortshort表示,表示, 一般与一般与intint占有的内存相同。占有的内存相同。长整形长整形以以long intlong int表示
12、或以表示或以longlong表示,表示,一般占有在内存中字节为一般占有在内存中字节为intint两倍。两倍。无符号型无符号型只能存放正整数,它的表示是在上述三种类型之前加上只能存放正整数,它的表示是在上述三种类型之前加上unsignedunsigned423. 整型变量的定义整型变量的定义对变量的定义一般放在函数的开头部分。对变量的定义一般放在函数的开头部分。例例2.1main() int a,b,c,d; unsigned u; a = 12; b =24; u =10; c = a+u; d = b+u; printf(“a + u = %d, b + u = % dn”, c, d);
13、a+u = 22, b+u =a+u = 22, b+u =1414不同类型的数可以直接运算不同类型的数可以直接运算434.整型数据的溢出整型数据的溢出main()int a,b; a=32767; b=a+1; printf(“%d,%d”,a,b); 运行结果为运行结果为 32767,-327683.3.3 整型常量的类型整型常量的类型 一个整常量,其值在一个整常量,其值在-215-215215-1内可认为是内可认为是 int 型,并可赋型,并可赋值给值给 int 型和型和 long int 型变量;型变量; 一个整常量,其值在一个整常量,其值在 231 231-1 范围内则认为它是范围内
14、则认为它是 long int 型,可赋值给一个型,可赋值给一个 long int 型变量;型变量; 常量中无常量中无 unsigned 型,但一个非负值的整常量可以赋给型,但一个非负值的整常量可以赋给 unsigned 型整变量;型整变量;44小数的符号位小数的符号位指数的符号位指数的符号位45u实型常量不分实型常量不分float和和double,根据范围赋值给相应的变量。,根据范围赋值给相应的变量。u如:如:float a;double b;a=111111.111; b=111111.111a中实际存储的是中实际存储的是111111.1 (7位有效位有效)b中实际存储的是中实际存储的是11
15、1111.111 (全部有效全部有效)463.5 3.5 字符型数据字符型数据3.5.1字符常量字符常量1. 定义定义用一对单引号括起来的单个字符,称为字符常量。例如,A、等。2.转义字符转义字符语言还允许使用一种特殊形式的字符常量,就是以反斜杠“ ”开头的字符序列。h473.5.2 字符型变量字符型变量 字符变量的类型关键字为字符变量的类型关键字为char,一般占用一般占用1字节内存单元字节内存单元。 1.变量值的存储变量值的存储 将一个字符常量存储到一个字符变量中,实际上是将该将一个字符常量存储到一个字符变量中,实际上是将该字符的字符的ASCII码值(无符号整数)存储到内存单元中。码值(无
16、符号整数)存储到内存单元中。 例如:例如: char ch1, ch2; /*定义两个字符变量:定义两个字符变量:ch1,ch2*/ ch1=a; ch2=b; /*给字符变量赋值给字符变量赋值*/ a、b的的ASCII码为码为97、98 。 2.特性特性 1)字符数据在内存中存储的是字符的字符数据在内存中存储的是字符的ASCII码;码; 2)语言允许字符型数据与整型数据之间通用语言允许字符型数据与整型数据之间通用,可以互相可以互相赋值。赋值。 3)字符数据也可以整数形式输出。字符数据也可以整数形式输出。48 c1=97,c2=9849 例例2 大小写字母的转换。大小写字母的转换。 main(
17、) char c1,c2; c1=a; c2=b; c1=c1-32;c2=c2-32; printf(“%c c2=%cn”,c1,c2); 程序运行结果:程序运行结果: A B 50数据类型、运算符与表达式数据类型、运算符与表达式 字符型数据字符型数据3.5.3 字符串常量字符串常量u用双引号括起来的字符序列。用双引号括起来的字符序列。如:如:“How do you do”, “CHINA”, “a”, “$ 123.34” 等。等。u字符串可以一次输出。字符串可以一次输出。如:如:printf(“How do you do”);uC语言规定:在存储字符串常量时,由系统在字符串的语言规定:
18、在存储字符串常量时,由系统在字符串的末尾自动加一个末尾自动加一个0作为字符串的结束标志。在内存作为字符串的结束标志。在内存中中,对字符串常量是采用字符数组表示,即用一个字符对字符串常量是采用字符数组表示,即用一个字符型数组来存放一个字符串。型数组来存放一个字符串。 u注意:注意: a是字符常量,是字符常量,“a”是字符串常量,二者不是字符串常量,二者不同。同。51综上所述,字符常量综上所述,字符常量AA与字符串常量与字符串常量 AA是两回事:是两回事:(1 1)定界符不同:字符常量使用单引号,而字符串常)定界符不同:字符常量使用单引号,而字符串常量使用双引号;量使用双引号;(2 2)长度不同:
19、字符常量的长度固定为)长度不同:字符常量的长度固定为1 1,而字符串常,而字符串常量的长度,可以是某个整数;量的长度,可以是某个整数;(3 3)存储要求不同:字符常量存储的是字符的)存储要求不同:字符常量存储的是字符的ASCIIASCII码码值,而字符串常量,除了要存储有效的字符外,还要存值,而字符串常量,除了要存储有效的字符外,还要存储一个结束标志储一个结束标志00。523.6 3.6 变量赋初值变量赋初值在变量定义的同时可以为变量赋初值。在变量定义的同时可以为变量赋初值。如:如:int a=3; (相当于相当于 int a; a=3;)float f = 3.56;char c = a;i
20、nt a,b,c = 5 ; 表示只给表示只给c赋初值。赋初值。(相当于(相当于int a,b,c; c = 5;)533.7 各类数值型数据间的混合运算各类数值型数据间的混合运算u不同类型的数据(整型、实型、字符型)可进行混合运算。不同类型的数据(整型、实型、字符型)可进行混合运算。如:如:10 + a + 1.5 8765.1234 * b u必须首先将它们转换成同一类型的数值。必须首先将它们转换成同一类型的数值。u转换原则是由低向高转换,运算结果为最高级别的类型。转换原则是由低向高转换,运算结果为最高级别的类型。 double double floatfloatlonglongunsig
21、nedunsignedintintchar,shortchar,short表示必须要转换表示必须要转换表示由低向高表示由低向高高高低低54数据类型、运算符与表达式数据类型、运算符与表达式 混合运算混合运算如:如:10 +a + i 10 +a + i * * f - f - d/ed/eintdoubledoubledouble+double55例例2-52-5:已知:已知: float a=2.0; int b =6,c =3;float a=2.0; int b =6,c =3;求解:求解: a a* *b/c-1.5+ b/c-1.5+ A A +abs(-5)= +abs(-5)=?1
22、2.0/34.04.0 - 1.5 - 1.52.52.5+65(+65(int)int)67.567.55 572.572.5第二章第二章 2.3 2.3 运算符和表达式运算符和表达式563.8 算术运算符和算术表达式算术运算符和算术表达式1.基本的算术运算基本的算术运算: 、*、% % 是模运算,即求余运算,要求整数。是模运算,即求余运算,要求整数。 如:如:7%4的结果是的结果是3。说明:说明: 5/3的结果仍是整数,小数部分被忽略。的结果仍是整数,小数部分被忽略。 5.3/3或或5/3.0的结果为的结果为double型。型。 C编译系统将实型常量作为双精度来处理。如果参加、编译系统将实
23、型常量作为双精度来处理。如果参加、*、/ 运算的两个数中有一个数为实数,则结果是运算的两个数中有一个数为实数,则结果是double型。型。2.算术表达式算术表达式:用算术运算符将运算对象按:用算术运算符将运算对象按C的语法规则连接起的式子。的语法规则连接起的式子。 例如:例如:a * b/c1.5+a优先级(算术运算)优先级(算术运算): ()() * / % + 在同一级别中,采取由左至右的结合方向。在同一级别中,采取由左至右的结合方向。 如:如:a-b+c 相当于相当于 (a-b)+c573.强制类型转换运算符可将一个表达式转换成所需类型。强制类型转换运算符可将一个表达式转换成所需类型。其
24、一般形式为:其一般形式为:(类型名)(表达式)(类型名)(表达式) 例如:例如:(double) a (int) (x+y) (float) (5%3) 在强制类型转换时,得到一个所需类型的中间变量,原在强制类型转换时,得到一个所需类型的中间变量,原来变量的类型未发生变化。来变量的类型未发生变化。5859数据类型、运算符与表达式数据类型、运算符与表达式 运算符和表达式运算符和表达式4.自增、自减运算符自增、自减运算符使变量的值加使变量的值加1或减或减1。如:如:i, i 在使用在使用i之前,先使之前,先使i的值加(减)的值加(减)1 i, i 在使用在使用i之后,再使之后,再使i的值加(减)的
25、值加(减)1例如:例如:i的值为的值为3,则,则 j= + + i; j的值为的值为4,i的值为的值为4 j= i + +; j的值为的值为3,i的值为的值为4又如:又如: printf(“%d”, +i); 输出结果为输出结果为4 printf(“%d”,i+); 输出结果为输出结果为3单独使用时,单独使用时, i , i 等价等价60第二章第二章 2.3 2.3 运算符和表达式运算符和表达式结合性:结合性:自右向左自右向左例:例:i = 2; i = 2; j = -i+;j = -i+;分析:分析:(1 1)+、-、+ +、- -是同级运算符,结合方向:是同级运算符,结合方向:。(2 2
26、) - -i+i+等价于等价于 - -(i+i+)(3 3) 对于括号内的自增运算,要先使用对于括号内的自增运算,要先使用i i,再使再使i i增加增加1 1。运算结果:运算结果: i i的值为的值为3 3,j j的值为的值为-2-2。61623.9 赋值运算符和赋值表达式赋值运算符和赋值表达式1.赋值运算符:赋值运算符:“=” 。2.复合赋值运算复合赋值运算:在赋值符号前加上其它运算符号。在赋值符号前加上其它运算符号。 +=,-=,*=,/=,%=,=,&=,=,|= 例如:例如: a + = 3; 等价于等价于a = a + 3; x * = y + 8; 等价于等价于x = x
27、* ( y + 8 ); x % = 3; 等价于等价于x = x % 3;6364数据类型、运算符与表达式数据类型、运算符与表达式 运算符和表达式运算符和表达式4.赋值表达式:赋值表达式: 由赋值运算符将一个变量和一个表达式连接由赋值运算符将一个变量和一个表达式连接起来的式子。起来的式子。 一般形式为:一般形式为:u例如:例如:int a=12;求下列运算的结果求下列运算的结果 a aa aa a * * a a a aa aa a * * a=12-12 a=12-12 * * 12=-132) 12=-132)a a-132-132a aa a(-132)=(-132)+(-132)=-
28、264(-132)=(-132)+(-132)=-264a=-264a=-2646566数据类型、运算符与表达式数据类型、运算符与表达式 运算符和表达式运算符和表达式3.10 逗号运算符和逗号表达式逗号运算符和逗号表达式u逗号运算符又称为逗号运算符又称为“顺序求值运算符顺序求值运算符”,是所有运算符,是所有运算符中级别最低的,它将两个表达式连接起来。中级别最低的,它将两个表达式连接起来。 一般形式为一般形式为:表达式表达式1,表达式,表达式2u求解过程是:先求解表达式求解过程是:先求解表达式1,再求解表达式,再求解表达式2,整个逗,整个逗号表达式的值是表达式号表达式的值是表达式2的值。的值。
29、例如:例如: a=3*5, a*4; a的值为的值为15,表达式的值为,表达式的值为60 (a=3*5, a*4), a+5; a的值为的值为15, 表达式的值为表达式的值为20 又如:又如: x=(a=3, 6*3); x的值为的值为18 x=a=3, 6*a x的值为的值为3, 表达式的值为表达式的值为186768 694.1 C4.1 C语句概述语句概述 用用C语言编写的程序称为语言编写的程序称为C语言源程序语言源程序,简称,简称C程序。程序。 C语言一般由一个或若干个函数组成,而这些函数可以保存在一个语言一般由一个或若干个函数组成,而这些函数可以保存在一个或几个源程序中,这些文件都以或
30、几个源程序中,这些文件都以.C作为文件扩展名。作为文件扩展名。 例例 求园的面积求园的面积#DEFINE PI=3.1415926#DEFINE PI=3.1415926main()main() float r,s;float r,s; r = 20; r = 20; s = r s = r * * r r * * PI; PI; printf (“area=%f ”,s); printf (“area=%f ”,s); area=1256.637C C程序程序源程序文件源程序文件1 1源程序文件源程序文件i i源程序文件源程序文件n n预编译命令预编译命令函数函数1 1函数函数n n变量申明
31、部分变量申明部分执行部分(语句)执行部分(语句)语句是计算语句是计算机执行的最机执行的最小单位小单位70C语句分类语句分类 和其他高级语言一样和其他高级语言一样,C语言的语句也是用来向计算机发出操作命语言的语句也是用来向计算机发出操作命令的。一条语句经过编译后生成若干条机器指令。在令的。一条语句经过编译后生成若干条机器指令。在C语言中只有可执语言中只有可执行语句行语句,没有非执行语句。没有非执行语句。 C语句有以下五类语句有以下五类: 控制语句,完成一定的控制功能;控制语句,完成一定的控制功能; if( ) else (条件语句) for( ) (循环语句) while( ) (循环语句) d
32、o while ( ) (循环语句) continue (结束本次循环语句) break (中止执行switch或循环语句) Switch (多分支选择语句) goto (转向语句) return (从函数返回语句)71 函数调用语句,由一次函数调用加一个分号构成一个语句,函数调用语句,由一次函数调用加一个分号构成一个语句, 如:如:printf (“This is a C statement.”); 表达式语句,由一个表达式构成一个语句,表达式语句,由一个表达式构成一个语句, 如:如: a=3 (是表达式,不是语句)(是表达式,不是语句) a=3; (是语句)(是语句) 空语句,只有一个分号
33、,什么也不做;空语句,只有一个分号,什么也不做; 复合语句,用复合语句,用 把一些语句括起来成为复合语句。相当一条语句,把一些语句括起来成为复合语句。相当一条语句,哪里有语句,哪里就可用复合语句。哪里有语句,哪里就可用复合语句。 if (ab) max=a; min=b; 复合语句最后一个语句中最后的分号不能忽略不写。复合语句最后一个语句中最后的分号不能忽略不写。724.2 赋值语句赋值语句u 赋值表达式后面加上分号,构成赋值语句。赋值表达式后面加上分号,构成赋值语句。u 功能:将数据赋给变量。功能:将数据赋给变量。 如如: x=3.1; a=d+ 123 + b/d;u 程序中基本的命令行必
34、须是一个语句,表达式不能单独构成语句。程序中基本的命令行必须是一个语句,表达式不能单独构成语句。 例如:例如: d+ 123 + b/d 是一个表达式是一个表达式 a =d+ 123 + b/d;是一个赋值语句;是一个赋值语句 特点:特点: C语言中的赋值号语言中的赋值号“ = ”作为赋值运算符;作为赋值运算符; 作为赋值表达式可以被包括在其他表达式之中;作为赋值表达式可以被包括在其他表达式之中; if(ab)0) t=a; 赋值语句可以连接赋值;赋值语句可以连接赋值; a=b=c=2;734.3 数据输入输出的概念数据输入输出的概念 1. 所谓输入输出是以计算机主机为主体而言的。主机向外所谓
35、输入输出是以计算机主机为主体而言的。主机向外部设备部设备 “输出输出” ,外部设备向主机,外部设备向主机“输入输入”。 2.C语言本身不提供输入输出语句,语言本身不提供输入输出语句,输入和输出操作是由函输入和输出操作是由函数数实现。实现。 C语言通过调用四个系统函数来实现输入输出。语言通过调用四个系统函数来实现输入输出。 printf(),scanf(),getchar(), putchar() 3.在使用在使用C语言库函数时,要用到预编译命令语言库函数时,要用到预编译命令“#include”将将有关的有关的“头文件包括到用户源文件中。头文件包括到用户源文件中。 在调用标准输入输出库函数时,文
36、件开头应有以下预编译在调用标准输入输出库函数时,文件开头应有以下预编译命令:命令: #include 或或 #include”stdio.h”744.4 字符数据的输入输出字符数据的输入输出1.字符输出函数字符输出函数putchar() 向终端输出一个字符。向终端输出一个字符。 如:如:putchar(c);); 输出变量输出变量c的值,的值,c可以是字符型变量或整型变量。可以是字符型变量或整型变量。 例例3.13.1#include “stdio.h”#include “stdio.h”main()main() char a,b,c; char a,b,c; a= B; b= O;c= Y;
37、 a= B; b= O;c= Y; putchar(a);putchar(b);putchar(c); putchar(a);putchar(b);putchar(c); BOY75也可以输出控制字符,如也可以输出控制字符,如putchar(n)输出一个换行符。输出一个换行符。u 输出其它转义字符输出其它转义字符 putchar(101); 输出输出 A; putchar(); 输出单引号输出单引号 putchar(015); 使输出回车,不换行使输出回车,不换行 例例3.23.2#include #include main()main() char a,b,c; char a,b,c; a=
38、 B; b=O;c=Y; a= B; b=O;c=Y; putchar(a); putchar(a); putchar(n)putchar(n); putchar(b); putchar(b); putchar(n)putchar(n); putchar(c); ; putchar(c); putchar(n)putchar(n); ; BOY762.字符输入函数字符输入函数getchar() 从终端(或系统隐含指定的输入设备)输入一个字符。从终端(或系统隐含指定的输入设备)输入一个字符。 一般形式为:一般形式为: getchar();(); 函数的值就是从输入设备得到的字符函数的值就是从输入
39、设备得到的字符 例例 #include “stdio.h”#include “stdio.h”main()main() char c; char c; c=getchar(); c=getchar(); putchar(c); putchar(c); aa77 例例 从键盘上输入一个大写字母,分别用大小从键盘上输入一个大写字母,分别用大小写字母形式输出,同时输出它们的写字母形式输出,同时输出它们的asciiascii码。码。#include “stdio.h”#include “stdio.h”main()main()char c1,c2; char c1,c2; c1=getchar();
40、c1=getchar(); printf(“%c,%dn”,c1,c1); printf(“%c,%dn”,c1,c1); c2=c1+32; c2=c1+32; printf(“%c,%dn”,c2,c2); printf(“%c,%dn”,c2,c2); AA ,65A ,65a ,97a ,97784.5格式输入与输出函数格式输入与输出函数1.格式输出函数格式输出函数printf() 按规定格式向终端输出若干个任意类型的数据。按规定格式向终端输出若干个任意类型的数据。一般格式一般格式: printf: printf(控制格式,输出列表)(控制格式,输出列表)被输出的数据,可以被输出的数据
41、,可以是常量、变量、表达式是常量、变量、表达式用双引号括起的转换控制字用双引号括起的转换控制字符串,它包括两种信息:符串,它包括两种信息:格式说明,格式说明,由由% %开始。如:开始。如:%d,%f,%c%d,%f,%c普通字符,要输出的字符普通字符,要输出的字符printf(“%d %d”,a,b)格式说明格式说明 输出列表输出列表printf(“ a=%d b=%d”,a,b); 控制格式控制格式 输出列表输出列表79printf()格式字符格式字符隐含输出隐含输出6位小数位小数80printf()附加格式说明字符附加格式说明字符例如:%ld 输出十进制长整型数 %m.nf 右对齐,m位域
42、宽,n位小数或n个字符 %-m.nf 左对齐 81例例1.1. main()main() int x1=123; int x1=123; long x2=123456; long x2=123456; printf(x1=%d,x1=%5d,x1=%-5d,x1=%2dn, x1,x1,x1,x1); printf(x1=%d,x1=%5d,x1=%-5d,x1=%2dn, x1,x1,x1,x1); printf(x2=%ld,x2=%8ld,x2=%5ldn,x2,x2,x2); printf(x2=%ld,x2=%8ld,x2=%5ldn,x2,x2,x2); 程序运行结果如下:程序运行
43、结果如下:x1=123,x1=x1=123,x1=123,x1=123123,x1=123,x1=123,x1=123x2=123456,x2=x2=123456,x2=123456,x2=123456123456,x2=123456821122a=11, b=22m= -1, 177777, ffff, 65535n=-13035n=12345678983e,形式输出:尾数中的整数部分占一位,小数点占一位,尾数中的小数部分占5位;指数部分占4位(如e-03),共计11位。也可使用格式符%g,让系统根据数值的大小,自动选择%f或%e格式、且不输出无意义的零。84最简单的最简单的C程序设计程序设
44、计 数据输出数据输出在使用在使用printf()函数时要注意:函数时要注意: 有些系统要求格式字符必须用小写字母;有些系统要求格式字符必须用小写字母;2. 格式控制符中,可包含转义字符;格式控制符中,可包含转义字符;3. 格式说明必须以格式说明必须以“ % ”开头;开头; 欲输出字符欲输出字符 % 则应在则应在“格式控制格式控制”字符串中用字符串中用连续两个连续两个 % 表示。表示。5. 不同的系统在实现格式输出时,输出结果可不同的系统在实现格式输出时,输出结果可能会有一些小的差别。能会有一些小的差别。852.格式输入函数格式输入函数scanf()把从输入设备输入的数值按先后顺序存入在内存的把
45、从输入设备输入的数值按先后顺序存入在内存的地址中去。地址中去。u 一般格式一般格式: scanf(格式控制,地址列表格式控制,地址列表) 例例 main()main() int a,b,c; int a,b,c; scanf(“%d%d%d”,&a,&b,&c); scanf(“%d%d%d”,&a,&b,&c); printf(“%d,%d,%d”,a ,b ,c); printf(“%d,%d,%d”,a ,b ,c); 3 4 53 4 53 3,4 4,5 5 86最简单的最简单的C程序设计程序设计 数据输入数据输入scanf()格式字符
46、格式字符87最简单的最简单的C程序设计程序设计 数据输入数据输入scanf()附加格式说明字符附加格式说明字符正整数)88在使用在使用scanf()函数时要注意:函数时要注意:uScanf()函数中的函数中的“格式控制格式控制”后面应当是变量后面应当是变量地址;地址;u如果在如果在“格式控制格式控制”字符串中除了格式说明以字符串中除了格式说明以外还有其他字符,则在输入数据时应输入与这外还有其他字符,则在输入数据时应输入与这些字符相同的字符;些字符相同的字符;u在用在用“%c”格式输入字符时,格式输入字符时,空格字符和空格字符和“转转义字符义字符”都作为有效字符输入;都作为有效字符输入; u在输
47、入数据时,遇到以下情况时该数据认为结在输入数据时,遇到以下情况时该数据认为结束:束: 遇空格,或按回车;遇空格,或按回车; 遇指定的宽度结束,如遇指定的宽度结束,如“3d”,只取只取3列;列; 遇非法输入遇非法输入89 例例 输入三角形的边长,求三角形的面积。输入三角形的边长,求三角形的面积。 area = sarea = s* *(s-a)(s-a)* *(s-b)(s-b)* *(s-c) (s-c) s = (a+b+c)/ 2 s = (a+b+c)/ 2#include stdio.h#include stdio.h#include math.h#include math.hmain
48、()main() float a,b,c,s,area; float a,b,c,s,area; scanf(%f,%f,%f, &a, &b, &c); scanf(%f,%f,%f, &a, &b, &c); s = 1.0/2 s = 1.0/2 * * (a+b+c); (a+b+c); area = sqrt(s area = sqrt(s* *(s-a)(s-a)* *(s-b)(s-b)* *(s-c);(s-c); printf(a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2fn, a,c,b,s); printf(
49、a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2fn, a,c,b,s); printf(area=%7.2fn,area); printf(area=%7.2fn,area); 3,4,6 a= 3.00, b= 4.00, c= 6.00, s= 6.50 area= 5.334.6 顺序结构程序设计举例顺序结构程序设计举例90关系运算符和关系表达式915.1 关系运算符和关系表达式1.关系运算符关系运算符u关系运算实际上是两个量的比较,比较的结果只有两种可能:关系运算实际上是两个量的比较,比较的结果只有两种可能:真真(1)、假、假(0)。 例如:例如: a 3 ? 当当a=5
50、时,比较的结果为真;时,比较的结果为真; 当当a=1时,结果为假。时,结果为假。uC语言提供语言提供6种关系运算符种关系运算符 (小于小于) (大于大于) = (大于或等于大于或等于) = 相等相等 != 不等不等 922.关系表达式关系表达式u用关系运算符或者等式运算符将两个表达式连接起来,叫关系表达式。用关系运算符或者等式运算符将两个表达式连接起来,叫关系表达式。u合法的关系表达式:合法的关系表达式: ab、 a+bb+c、 (a=3)(b=5)、 (a=3)(b=5)、 ab)(b=0的值为真(在计算机中记为的值为真(在计算机中记为1)。)。 u例:例:a=3, b=2, c=1, 则则
51、: (1)ab的值为的值为1(2)(ab)=c的值为真(即的值为真(即1)(3)b+cb中中d的值为的值为ab的值,为。的值,为。(5)f=abc中中f的值为的值为c的值,为。的值,为。93关系、等式和逻辑运算符关系、等式和逻辑运算符关于优先次序关于优先次序u,=为同一级别,为同一级别, =和和!=为同一级别。为同一级别。u在同一级别中,采取由左至右的结合方向。在同一级别中,采取由左至右的结合方向。u 算术运算符算术运算符关系运算符关系运算符赋值运算符赋值运算符高高低低 例例 ca+b c(a+b)ca+b c(a+b)ab!=c (ab)!=cab!=c (ab)!=ca=bc a = =
52、(bc)a=bc a = = (bc a = (bc)a=bc a = (bc) 等式运算符等式运算符945.2 逻辑运算符逻辑运算符u逻辑运算:产生真假值的运算。逻辑运算:产生真假值的运算。u逻辑运算符:逻辑运算符: &逻辑与逻辑与(AND) | 逻辑或逻辑或(OR) ! 逻辑非逻辑非(NOT)u“&”和和“|”是双目运算符。是双目运算符。 u“!”是一元运算符是一元运算符. 如:如: a & b a,b同时为真,则表达式为真同时为真,则表达式为真 a | b a,b只要有一个为真,表达式为真只要有一个为真,表达式为真 !a a为真,则表达式为假为真,则表达式为假95
53、关系、等式和逻辑运算符关系、等式和逻辑运算符逻辑运算符的优先级逻辑运算符的优先级u! & | 逻辑运算符逻辑运算符 “&” 和和 “|” 低于关系运算符,低于关系运算符,“!”高于高于算术运算符算术运算符 ab & xy 相当于相当于: (ab) & (xy) a=b|x=y 相当于相当于: (a=b) | (x=y) !a | ab 相当于相当于: (!a ) | (ab)! ! 算术算术 关系关系 逻辑逻辑 赋值赋值96逻辑表达式逻辑表达式u用逻辑运算符将关系表达式或逻辑量连接起来就是逻辑表达式。用逻辑运算符将关系表达式或逻辑量连接起来就是逻辑表达式。u在在
54、C语言中,当判断一个量的真假时,一切非数均被当成语言中,当判断一个量的真假时,一切非数均被当成真真来处来处理。理。 例如:若例如:若a=4, 则则!a的值为的值为 若若a=4, b=5, 则则a & b的值为的值为 a | b的值为的值为 !a | b的值为的值为 4 & 0|2 的值为的值为u区分下面的表达式中算术运算量,关系运算量和逻辑运算量:区分下面的表达式中算术运算量,关系运算量和逻辑运算量: 53 & 2| 83是两个数值间的比较,结果为是两个数值间的比较,结果为 1& 2是两个非值(逻辑量)间的运算,结果为是两个非值(逻辑量)间的运算,结果为 1|8
55、4-!0,根据优先级根据优先级,先计算先计算!,结果为,结果为97 例例 判断某一年是否是闰年。条件是:判断某一年是否是闰年。条件是: 能被能被4 4整除,但不能被整除,但不能被100100整除;整除; 能被能被4 4整除,又能被整除,又能被400400整除。整除。 用用yearyear表示年份,判断闰年的逻辑表达式为:表示年份,判断闰年的逻辑表达式为: (year%4=0 & year%100!=0)|(year % 400=0) 如果给如果给yearyear输入一个值,使上面的表达式的值为时,则输入一个值,使上面的表达式的值为时,则yearyear所代所代表的年份就是闰年。表的年份
56、就是闰年。 变换一下角度,如何判断变换一下角度,如何判断yearyear不是闰年?不是闰年? !( (year%4=0 & year%100!=0)|(year % 400=0) )当当yearyear的值使表达式的值为时,则的值使表达式的值为时,则yearyear所代表的就不是闰年。所代表的就不是闰年。关系、等式和逻辑运算符关系、等式和逻辑运算符985.3 if 语句语句if 语句的三种形式语句的三种形式uif用来判断给定的条件的真假,并决定执行哪一种操作。用来判断给定的条件的真假,并决定执行哪一种操作。1. if 语句语句条件满足时执行表达式后面的语句,然后继续执行以下的条件满足时
57、执行表达式后面的语句,然后继续执行以下的语句。条件不满足时,越过语句。条件不满足时,越过if表达式后面的语句,往下执表达式后面的语句,往下执行。行。表达式语句真(非0)假(0)例如:如果输入的是正数,例如:如果输入的是正数,则打印出来。则打印出来。if (x0) printf(%d,x);99选择结构程序设计选择结构程序设计 if if语句语句if 语句的三种形式语句的三种形式2. if 语句语句1 else 语句语句2条件满足时,执行语句条件满足时,执行语句1,然后继续执行,然后继续执行if以下的语句。以下的语句。条件不满足时,执行语句条件不满足时,执行语句2,然后继续执行,然后继续执行if
58、以下的语句。以下的语句。表达式语句1语句2真假PYNAB例如:输出两个数中较大的一个。例如:输出两个数中较大的一个。if (xy) printf(%d,x) ;else printf(%d,y);100选择结构程序设计选择结构程序设计 if if语句语句if 语句的语句的 第三种形式第三种形式if 语句语句1; else if 语句语句2; else if 语句语句3; else if 语句语句4; else 语句语句5 表达式1表达式2表达式3表达式4语句1语句2语句3语句4语句5 假假假假真真真真101选择结构程序设计选择结构程序设计 if if语句语句例如:商场促销,购物例如:商场促销,
59、购物500元以上,元以上,8折折;购物购物300元以上,元以上,85折折;购物购物100元以上,元以上,9折折;购物购物50元以上,元以上,95折折;购物购物50元以元以下,不打折。根据消费量,计算优惠率。下,不打折。根据消费量,计算优惠率。 设:消费量为设:消费量为 money; 折扣为折扣为 cost; 实际花费实际花费 priceif (money500) cost=0.2; else if (money300) cost=0.15; else if (money100) cost=0.1; else if (money50) cost=0.05; else cost=0;price=m
60、oney-(money*cost);102选择结构程序设计选择结构程序设计 if if语句语句If 语句的嵌套语句的嵌套u嵌套的定义:在嵌套的定义:在if 语句中又包含一个或多个语句中又包含一个或多个if 语句。语句。u嵌套的一般形式:嵌套的一般形式:If ( ) if ( ) 语句1 else 语句2Else if ( ) 语句3 else 语句4(注意!(注意! If 与与else的配对关系。)的配对关系。)103 例例 比较两个整数的关系。比较两个整数的关系。#include main( ) int x, y; printf (Enter integer X and Y:); scanf (%d%d, &x, &y); if ( x != y ) if ( x y ) printf (XYn); else printf (Xb) t=a; a=b; b=t; printf(%5.2f,%5.2f,a,b); 输入为输入为 3.6, -3.23.6, -3
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 部门安全生产培训考题课件
- 部门信息安全培训感想课件
- 温湿度协同调控-洞察及研究
- 边坡坍塌安全培训内容课件
- 基于循环经济的甲维盐水剂包装材料绿色化路径
- 基于大数据挖掘的适应症拓展潜力评估与医保目录准入障碍研究
- 基于分子动力学模拟的1,3-环己二酮热稳定性与结晶行为预测研究
- 圆形果冻标准化生产中的工艺瓶颈突破
- 国际标准对接中防火泥高温蠕变测试方法的技术代差问题
- 围兜尺寸标准化与成人个体差异的适配性研究
- GB/T 8295-2008天然橡胶和胶乳铜含量的测定光度法
- GB/T 19960.1-2005风力发电机组第1部分:通用技术条件
- 生产作业管理讲义
- 二年级上册《树之歌》优秀课件
- 锅炉安全技术规程
- 初中音乐《快乐的女战士》《水草舞》课件
- 战现场急救技术教案
- 易制毒化学品岗位责任制度
- 气力输送计算
- 新人教版小学美术五年级上册教学设计(全册)
- 公共关系学授课教案
评论
0/150
提交评论