第三章最简单的C程序设计--顺序程序设计c语言程序设计谭浩强_第1页
第三章最简单的C程序设计--顺序程序设计c语言程序设计谭浩强_第2页
第三章最简单的C程序设计--顺序程序设计c语言程序设计谭浩强_第3页
第三章最简单的C程序设计--顺序程序设计c语言程序设计谭浩强_第4页
第三章最简单的C程序设计--顺序程序设计c语言程序设计谭浩强_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

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

文档简介

1、3.1 3.1 顺序程序设计举例顺序程序设计举例3.2 3.2 数据的表现形式及其运算数据的表现形式及其运算3.3 C3.3 C语句语句3.4 3.4 数据的输入输出数据的输入输出3.1 3.1 顺序程序设计举例顺序程序设计举例例3.1 有人用温度计测量出用华氏法表示的温度(如64。F),今要求把它转换为以摄氏法表示的温度(如17.8。C)。例例3.2 3.2 计算存款利息。计算存款利息。有有10001000元,想存一年。有三种方法可选:元,想存一年。有三种方法可选:(1 1)活期,年利率为)活期,年利率为r1r1;(2 2)一年期定期,年利率为)一年期定期,年利率为r2r2;(3 3)存两次

2、半年定期,年利率为)存两次半年定期,年利率为r3r3;请分别计算出一年后按请分别计算出一年后按3 3种方法所得的本息和。种方法所得的本息和。3.2.1 3.2.1 常量和变量常量和变量1.1.常量:常量:在程序运行过程中,其值不能被改变的在程序运行过程中,其值不能被改变的量称为常量。量称为常量。常量的分类:常量的分类:(1 1)整型常量)整型常量(2 2)实型常量)实型常量(3 3)字符常量(普通字符、转义字符)字符常量(普通字符、转义字符)(4 4)字符串常量)字符串常量(5 5)符号常量)符号常量3.2 3.2 数据的表现形式及其运算数据的表现形式及其运算v实型常量即实数,在语言中又称浮点

3、数,其实型常量即实数,在语言中又称浮点数,其值有两种表达形式:值有两种表达形式: 日常记数法日常记数法 如:如:1999.35 , -2001.981999.35 , -2001.98允许用允许用 指数记数法指数记数法 如如: 1.99935: 1.99935e3 e3 1.999351.9993510103 3错误记法如:错误记法如: e2.5 .e8 e8 ee2.5 .e8 e8 e1.E之前必须有数字;之前必须有数字;2.E之后的指数必须是整数之后的指数必须是整数规定:规定:2 2、转义字符:、转义字符:以以“”开头的特殊字符开头的特殊字符字符字符 含义含义 ASCIIASCII码码

4、n n 换行换行 10 10 t t 横向跳格横向跳格( (即跳到下一个输出区即跳到下一个输出区) 9) 9 b b 退格退格 8 8 r r 回车回车 13 13 f f 走纸换页走纸换页 12 12 反斜杠反斜杠 92 92 输出单引号输出单引号 39 39” 输出双引号输出双引号 34 34 dddddd 1 13 3 位八进制所代表的字符位八进制所代表的字符 xhhxhh 1 12 2 位十六进制所代表的字符位十六进制所代表的字符2 2、变量变量: :程序运行中其值可以改变的量程序运行中其值可以改变的量a a3030变量名变量名变量值变量值存储单元存储单元20002000变量地址变量地

5、址注意!变量必须注意!变量必须“先定义、后使用先定义、后使用”3、常变量eg:const int a=3;想一想:常变量与符号常量有什么不同?4、标识符:在计算机语言中,用来对变量名、函数、数组、类型等命名的有效字符序列统称为标识符。 标识符命名规则:以字母或下划线开头,以字母或下划线开头,其后的字符必须是字母、数字和下划线其后的字符必须是字母、数字和下划线3.2.2 数据类型3.2.3 整型数据1、整型数据的分类(1)基本整型(int):编译系统分配给int型数据2个字节或4个字节。(2)短整型(short int):编译系统分配给短整型数据2个字节。短整型变量的值的范围是-32768327

6、67(3)长整型(long int或long):visual c+编译系统分配给long型数据4个字节。(4)双长整型(long long int或long long):编译系统一般分配给双长整型数据8个字节。2、整型变量的符号属性见表3.2 (p45)int标识标识short(int)long(int) 类型名类型名短整型短整型长整型长整型整型整型字节数字节数242或或4Unsigned long 4Unsigned short 2Unsigned int 23、关于整型数据的修饰符unsigned和signed说明:(1)只有整型数据可以加修饰符unsigned和signed,实型数据不能

7、加;(2)对无符号整型数据用“%u”格式输出。%u表示用无符号十进制数的格式输出。3.2.4字符型数据1、字符与字符代码 并不是任意写一个字符,程序都能识别。目前大多数系统采用ASCII字符集, ASCII字符集包括了127个字符。所有的127个字符都可以用7个二进制位表示。所以在C中,指定用一个字节存储一个字符。字节的第一位置为 0。!注意区分1和整数12 2、字符变量、字符变量字符变量的定义:字符变量的定义:char c1,c2;char c1,c2;字符变量的赋值:字符变量的赋值:c1=A;c1=A;c2=b;c2=b;字符数据的存储形式和使用方法字符数据的存储形式和使用方法v字符数据以

8、字符数据以ASCIIASCII码的形式存放码的形式存放c1=a; c1=a; c2=b;c2=b;0110000101100010c1c1c2c29798c1c1c2c2结论:字符数据和整型数据的存储从形式上没有什结论:字符数据和整型数据的存储从形式上没有什 么区别,这样就使得字符型数据和整型数据么区别,这样就使得字符型数据和整型数据之间可以通用。之间可以通用。注意:赋给字符变量的整数范围为注意:赋给字符变量的整数范围为01270127在输出字符变量的值时,可以选择以十进制整数形在输出字符变量的值时,可以选择以十进制整数形式输出,或以字符形式输出。式输出,或以字符形式输出。如:如:char c

9、=“?”;printf(“%d %cn”,c,c);3.2.5 浮点型数据 实数的指数形式称为浮点数。实数在计算机内存中按照规范化指数形式存储(把小数部分中小数点前的数字为0、小数点后第1位数字不为0的表现形式)。浮点数类型分类:浮点数类型分类:类型类型定义定义字字节节范围范围单精度实型单精度实型 float f;float f;4 41.21.2* *1010-38 -38 3.43.4* *10103838 (6(6位位) )双精度实型双精度实型 double d;double d;8 82.32.3* *1010-308-308 1.71.7* *1010308308(15(15位位)

10、)长双精度实长双精度实型型long long double ld;double ld;8 8或或16163.4e-3.4e-49321.1e4932(1949321.1e4932(19位位) )由于实型变量是由有限的存储单元组成的,由于实型变量是由有限的存储单元组成的,因此能提供的有效数字总是有限的。在有效因此能提供的有效数字总是有限的。在有效位以外的数字将被舍去,由此可能会产生一位以外的数字将被舍去,由此可能会产生一些误差。些误差。3.2.6 3.2.6 怎样确定常量的类型怎样确定常量的类型 -从常量的表示形式判断其类型从常量的表示形式判断其类型 整型常量:不带小数点的数值是整型常量。 浮点

11、型常量:凡以小数点形式或指数形式出现的实数,都是浮点型常量,在内存中都以指数形式存储。 C编译系统把浮点型常量都按双精度处理,分配8个字节。 特别说明: 可以在整数的末尾加大写字母L或小写字母l,表示它是长整型。如123L,234l 可以在实型常量后面加字母F或f,表示是float型常量;也可以在实型常量后面加字母L或l,表示是long double型常量。3.2.7 运算符和表达式算术运算符算术运算符 +、-、*、/、%、+、-关系运算符关系运算符、=、=、=、!=逻辑运算符逻辑运算符!(非)(非)&(与)(与)|(或)(或)赋值运算符赋值运算符=、+=、-=、*=、/=、%=C运运算算符符

12、分分类类1 1、基本的算术运算符、基本的算术运算符+、-、*、/、%(求余)(求余)其中:/ 若两个操作数均为整型,则为整除运算。%两个操作数只能为整数如:如:8/3=2 而而 8.0/3=2.66610%4=2 而而 10.0%4 出错!出错!2、自增、自减运算符+ -l作用:使变量值加1或减1l种类:u前置:+i,-i (先执行i+1或i-1,再使用i值)u后置:i+,i- (先使用i值,再执行i+1或i-1)例例1:设:设 int i=3 , j;执行:执行:j=+i;i=i+1;j=i;j=4i=4执行:执行:j= i +;j=i;i=i+1;j=3i=4例例2:设:设 int x=5

13、;执行:执行:printf(“%d”,+x);x=x+1;printf(“%d”, x);输出:输出:6x的值为的值为6执行:执行:printf(“%d”, x+);printf(“%d”, x);x=x+1;输出:输出:5x的值为的值为6注注1 1:+、-运算运算只能用于变量只能用于变量,不能用于常量和表达式!,不能用于常量和表达式! (i+1i+1)+; 5+ 5+; 注注2 2:+、-运算优先级高于运算优先级高于+ +、- -、* *、/ / -i+ -i+; - -(i+i+) i+ji+j;(i+i+)+j+j注注3.3. + +、-运算不易理解,使用是运算不易理解,使用是尽量避免尽

14、量避免复杂使用。复杂使用。3、算术表达式和运算符的优先级与结合性C算术表达式:运算符的优先级:运算符的结合性:4 4、不同类型数据间的混合运算、不同类型数据间的混合运算程序中不同类型的数据可以进行运算。如果一个运算符的两侧的数据类型不同,则先自动进行类型转换,使二者具有同一种类型,然后进行运算。转换规律为(见p54)5 5、强制类型转换、强制类型转换v一般形式:一般形式:(类型名类型名)(表达式)表达式)例例 ( (int)(x+yint)(x+y) ) ( (int)x+yint)x+y (double)(3/2) (double)(3/2) (int)3.6 (int)3.6 v说明:强制

15、转换得到所需类型的中间变量,原变说明:强制转换得到所需类型的中间变量,原变量类型不变量类型不变 例例 main() float x; int i; x=3.6; i=(int)x; printf(“x=%f,i=%d”,x,i); 结果:结果:x=3.600000,i=3语言程序设计 第二章C6 6、C C运算符运算符C C运运算算符符算术运算符:(算术运算符:(+ - + - * * / % + - / % + -)关系运算符:(关系运算符:( = != = !=)逻辑运算符:(!逻辑运算符:(! & |& |)位运算符位运算符 :(:( | & | &)赋值运算符:(赋值运算符:(= =

16、及其扩展)及其扩展)条件运算符:(条件运算符:(?:?:)逗号运算符:(,)逗号运算符:(,)指针运算符:(指针运算符:(* * & &)求字节数求字节数 :(:(sizeofsizeof)强制类型转换:(类型)强制类型转换:(类型)分量运算符:(分量运算符:(. -. -)下标运算符:(下标运算符:( )其它其它 :(:(( )( ))3.3 C3.3 C语句语句C程序程序源程序文件源程序文件1源程序文件源程序文件2源程序文件源程序文件n预处理命令预处理命令全局变量声明全局变量声明函数函数1函数函数n函数首部函数首部函数体函数体局部变量声明局部变量声明执行语句执行语句C C语句分类语句分类控

17、制语句控制语句 if()elseif()else (条件语句)条件语句) for()for() (循环语句)循环语句) while()while() (循环语句)循环语句) dowhiledowhile() () (循环语句)循环语句) continuecontinue (结束本次循环)结束本次循环) breakbreak (中止中止switchswitch或循环语句)或循环语句) switchswitch (多分支选择语句)多分支选择语句) gotogoto (转向语句)转向语句) returnreturn (从函数返回语句)从函数返回语句)函数调用语句函数调用语句printf(Thispr

18、intf(This is a c statement.); is a c statement.);表达式语句表达式语句i=i+1i=i+1(不是语句)不是语句)i=i+1;i=i+1;(是语句)是语句)x+yx+y; ;(是语句,但无实际意义)是语句,但无实际意义)空语句空语句 ; ;复合语句复合语句 z= z=x+yx+y; ; t=z/100; t=z/100; printf(%f,tprintf(%f,t) ); ; 3.3.2 3.3.2 最基本的语句最基本的语句-赋值语句赋值语句例3.4 给出三角形的三边长,求三角形的面积。解题思路-编写程序-运行结果-程序分析1、赋值运算符格式:格

19、式:变量名变量名 = 数值或表达式数值或表达式作用作用:变量变量:值值 将等号右边的值将等号右边的值传给左边的变量传给左边的变量例例 a=3;a=3; d= d=funcfunc();(); c=d+2; c=d+2;注注:等号的左边等号的左边不可以是不可以是常量或表达式常量或表达式!例例 3=x-23=x-2* *y; y; a+ba+b=3; =3; 2、复合赋值运算符、复合赋值运算符+=、-=、*=、/=、%=格式:格式:变量变量 (运算符运算符)=表达式表达式如:如:a*=2等价格式:等价格式:变量变量 =变量变量 (运算符运算符) 表达式表达式如:如:a =a *2又如:又如:有:有

20、:a=2;b=3;c=5;1) a+=b; a=a+b; a=52) a*=b+c; = a=a*(b+c); =a=2*(3+5)=163) a%=c+2;= a=a%(c+2);=a=2%(5+2)=23、赋值表达式、赋值表达式 格式:格式: 如:如:x=1x=1表达式的值表达式的值= =变量的值变量的值如:如:1. a=b=5中中有两个赋值表有两个赋值表达式:达式:b=5 b的值为的值为5 该表达式的值为该表达式的值为5a=(b=5) a的值为的值为5(表达式表达式b=5的值的值) 该表达式的值为该表达式的值为5 注意区分:注意区分:变量的值变量的值和和表达式的值表达式的值2. a =

21、( b = 4 ) + ( c = 6 )赋值表达式赋值表达式1值为值为4赋值表达式赋值表达式2值为值为6赋值表达式赋值表达式3值为值为4+6=10故:故:表达式的值表达式的值=10a=10 b=4 c=63. a+= a-=a*a赋值表达式赋值表达式1赋值表达式赋值表达式2若:若:a=3则:则:a-=a*a a=a-a*a=-6a的值为的值为-6,表达式的值为表达式的值为-6a+=(a-=a*a) a=a+()=-6+(-6)=-12a的值为的值为-12,表达式的值为表达式的值为-12小结:小结: 尽量使用简单赋值!尽量使用简单赋值!4 4、赋值过程中的类型转换、赋值过程中的类型转换 如果赋

22、值运算两侧的类型一致,则直接赋值。如果赋值运算两侧的类型一致,则直接赋值。如果赋值运算符两侧的类型不一致,但都是数值型或字符型,如果赋值运算符两侧的类型不一致,但都是数值型或字符型,在赋值时要进行类型转换。类型转换是由系统自动转换的。在赋值时要进行类型转换。类型转换是由系统自动转换的。规则如下:规则如下:p62p625.5.赋值表达式和赋值语句赋值表达式和赋值语句注意:注意: 1. 1.要区分赋值表达式和赋值语句。要区分赋值表达式和赋值语句。 2.2.赋值表达式的末尾没有分号,赋值语句的末尾必赋值表达式的末尾没有分号,赋值语句的末尾必须有分号。须有分号。 3.3.在一个表达式中可以包含一个或多

23、个赋值表达式,在一个表达式中可以包含一个或多个赋值表达式,但绝不能包含赋值语句。但绝不能包含赋值语句。6.6.变量赋初值变量赋初值-定义变量的同时赋值定义变量的同时赋值intint a=3; a=3;double f=3.56;double f=3.56;char c=a;char c=a;1.1.可以对被定义的变量中的一部分赋初值;可以对被定义的变量中的一部分赋初值;intint a,b,ca,b,c=5;=5;2.2.可以对几个变量赋予同一个初值;可以对几个变量赋予同一个初值;intint a=3,b=3,c=3; a=3,b=3,c=3;IntInt a=b=c=3; a=b=c=3;

24、3.4 数据的输入输出3.4.1 3.4.1 输入输出举例输入输出举例例例3.5 3.5 求求axax2 2+bx+c=0+bx+c=0方程的根。方程的根。a,b,ca,b,c由键由键盘输入,设盘输入,设b b2 2-4ac0-4ac03.4.2 数据的输入输出的概念输入输出数据输入输出3.6 3.6 字符数据的输入输出字符数据的输入输出1 1. .用用putcharputchar函数输出一个字符函数输出一个字符格式:格式:putcharputchar( (字符变量字符变量) )功能:向显示器输出一个字符功能:向显示器输出一个字符准备工作:使用时必须将准备工作:使用时必须将库文件库文件“std

25、io.hstdio.h”包含到用户源文件中。包含到用户源文件中。预编译语句:预编译语句:# include “# include “stdio.hstdio.h”放在源文件开头放在源文件开头 例例3.1 输出几个字符输出几个字符#includemain( ) char a,b,c; a=B;b=O;c=Y; putchar(a);putchar(b);putchar(c); BOY注:注:putchar()函数一次只能输出一个字符!函数一次只能输出一个字符!#include main() int c; char a; c=65; a=B; putchar(c); putchar(n); put

26、char(a);运行结果:运行结果:A B例格式格式: :getchargetchar( )( )功能:从功能:从计算机终端(一般是显示器的计算机终端(一般是显示器的键盘键盘)输入)输入一字符一字符返值:正常,返回读取的代码值;出错返值:正常,返回读取的代码值;出错, ,返回返回EOF(-1)EOF(-1)2 2 用用getchargetchar 函数输入一个字符函数输入一个字符例例3.2 3.2 输入单个字符输入单个字符# #includeinclude main( )main( ) char c; char c; c= c=getchargetchar();(); putchar(cput

27、char(c);); a a运行结果:运行结果:P65 P65 例例3.23.2:区分不同情况下的输入产生的输:区分不同情况下的输入产生的输出?出?P66 P66 例:例:getchargetchar的其他使用形式。的其他使用形式。3.7 3.7 简单的格式输入与输出简单的格式输入与输出3.7.1 3.7.1 printfprintf 函数(格式输出函数)函数(格式输出函数)1.1.printfprintf 函数的一般格式函数的一般格式printfprintf( (格式控制格式控制, ,输出列表输出列表) )例:例:printf(printf( %d%d %d,a,b%d,a,b););pri

28、ntf(printf( a a=%d b=%=%d b=%d,a,bd,a,b););格式声明输出列表按原样输出 10 11 a=10 b=11如果如果a为为10,b为为11输输出结果如下出结果如下11112.2.printfprintf格式字符格式字符s sd,id,io ox,Xx,Xu uf fe,Ee,Eg,Gg,Gc c输出一个字符串输出一个字符串格式符格式符 说明说明用带符号用带符号十十进制数形式输出整数进制数形式输出整数( (正数前的正数前的+号不输出号不输出) )用用8 8进制无符号形式输出整数进制无符号形式输出整数( (不输出前导符不输出前导符0)0)用用1616进制无符号形

29、式输出整数进制无符号形式输出整数( (不输出前导符不输出前导符0 0 x)x)用用无符号十无符号十进制形式输出整数进制形式输出整数用小数形式输出单用小数形式输出单, ,双精度数双精度数( (缺省输出缺省输出6 6位小数位小数) )用标准指数形式输出单用标准指数形式输出单, ,双精度数双精度数选用选用 % %f, %e f, %e 格式中输出宽度较短的一种格式中输出宽度较短的一种输出一个字符输出一个字符s s3.7.2 3.7.2 scanfscanf函数(格式输入函数)函数(格式输入函数)1. 1. scanfscanf的一般形式:的一般形式: scanfscanf( (格式控制,地址列表格式

30、控制,地址列表) )例:例:main()main() intint a,b,ca,b,c; ; scanf(%d%d%d,&a,&b,&cscanf(%d%d%d,&a,&b,&c);); printf(%d,%d,%dn,a,b,cprintf(%d,%d,%dn,a,b,c);); acb5 5 8 8 4 4 5,8,45,8,45 54 48 82.scanf2.scanf的格式字符的格式字符格式字符格式字符说明说明d,id,i输入有符号的十进制整数输入有符号的十进制整数u u输入无符号的十进制整数输入无符号的十进制整数o o输入无符号的八进制整数输入无符号的八进制整数x,Xx,X输入

31、无符号的十六进制整数(大小写作用相同)输入无符号的十六进制整数(大小写作用相同)s s输入字符串,将字符串输入到一个字符数组中,在输输入字符串,将字符串输入到一个字符数组中,在输入时以非空白字符开始,以第一个空白字符结束。字入时以非空白字符开始,以第一个空白字符结束。字符串以串结束标志符串以串结束标志00作为其最后一个字符作为其最后一个字符f f输入实数,可以用小数形式或指数形式输入输入实数,可以用小数形式或指数形式输入e,E,g,Ge,E,g,G与与f f作用相同,作用相同,e e与与f,gf,g可以互相替换(大小写作用相可以互相替换(大小写作用相同)同)c c输入单个字符输入单个字符sanfsanf函数使用说明函数使用说明1 1、sca

温馨提示

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

最新文档

评论

0/150

提交评论