简单C语言程序设计.ppt
《简单C语言程序设计.ppt》由会员分享,可在线阅读,更多相关《简单C语言程序设计.ppt(74页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、简单简单C语言程序设计语言程序设计2回顾回顾v程序是为执行一项任务而编写的有序指令集程序是为执行一项任务而编写的有序指令集vC程序的程序的特点特点vC语言的语言的组成组成vC程序的编译和运行过程程序的编译和运行过程 编译器将源程序转换成机器能理解的程序编译器将源程序转换成机器能理解的程序 连接器用于连接相关的目标文件以生成可执行程连接器用于连接相关的目标文件以生成可执行程序序3本章要点本章要点C语言的数据类型、运算符语言的数据类型、运算符C语言的常量和变量语言的常量和变量C语言的表达式语言的表达式常用数学函数常用数学函数4#include int main()int celsius,fahr;
2、fahr=100;celsius=5*(fahr-32)/9;printf(“fahr=%d,celsius=%dn“,fahr,celsius);执行程序的输出结果为:执行程序的输出结果为:fahr=100,celsius=372.1 温度转换温度转换例例2.1 求华氏温度求华氏温度100F对应的摄氏温度对应的摄氏温度52.1.1 内存v内存可以理解为一排井然有序的小开关,每个开关有内存可以理解为一排井然有序的小开关,每个开关有两个状态:开表示两个状态:开表示1,断表示,断表示0,所以每个开关表示一,所以每个开关表示一个二进制数,个二进制数,0或或1,称为一个,称为一个位(位(bit).v为
3、管理方便,为管理方便,8个位为一组,称为一个个位为一组,称为一个字节(字节(byte)v然后为所有字节从然后为所有字节从0开始编号,这个编号称为字节的开始编号,这个编号称为字节的地址地址v2的的10次方次方(1024)个字节称为个字节称为1kv2的的20次方次方(1048576)个字节称为)个字节称为1Mv2的的30次方次方(1073741824)个字节称为)个字节称为1G62.1.2 变量int celsius,fahr;celsius=5*(fahr-32)/9;v变量是计算机里一块变量是计算机里一块特定的内存特定的内存,它由一个或多个连续的,它由一个或多个连续的字节组成。字节组成。v每个
4、变量都有一个名称,表示内存中的这个位置,以便通每个变量都有一个名称,表示内存中的这个位置,以便通过变量名过变量名读取读取该位置的数据或该位置的数据或存储存储一个新数值。一个新数值。v变量的值不是固定的,随时都可以改变,且次数不限。变量的值不是固定的,随时都可以改变,且次数不限。7编写程序时,通常使用变量来存储数据,方便后面使用这个数据或者修改这个数据的值。变量变量程序内存存储 fahr计算5*(fahr-32)/9将值存储为celsius10032输出fahr和celsius8内存变量用来存储数据,系统需要知道每个变量要存储什么类型的数据,然后为每个变量分配一块足够大的内存空间,用来该类型的数
5、据2.1.3 数据类型数据类型数据属于不同类别AfricaThe quick brown foxTRUE数据 非数值数值整型非整型9002.129999/12/20032.175123Jackie Chanchar数据类型非数值数值整型intshort intlong intdoublefloat非整型9整型变量类型整型变量类型 short int 2个字节个字节-2-15至215-1,-32768至+32767整数变量还分为几种不同的类型,以存储不同范围的整数 int 4个字节个字节-2-31至231-1,-2147438648至+2147438647 long int 4个字节个字节-2-
6、31至至231-1,-2147438648至至+2147438647_int64long long int8个字节个字节-2-63 至 263-11、数据类型所占字节数,取决于所使用的编译器2、shortint可以简写为short,long int可以简写为可以简写为long3、不同编译器对64位的支持不同,在VC中只支持_int64,gcc/g+支持longlong,windows平台的gcc/g+也支持_int6410无符号的整数类型无符号的整数类型 unsigned short int 2个字节个字节0至216-1,0至+65535 unsignedint 4个字节个字节0至232-1,
7、0至+4294967295 unsignedlong int 4个字节个字节0至232-1,0至+4294967295unsigned_int64unsignedlong long int8个字节个字节0至264-1,0至至18445744073709551615当处理不能为负的数据时,可以使用无符号类型,所占内存与有符号型相同,但对正数的表示范围比有符号型大一倍112.1.4 变量的声明和使用变量的声明和使用v声明变量:声明变量:int celsius,fahr;v定义时初始化变量:定义时初始化变量:int celsius,fahr=100;v定义后初始化变量:定义后初始化变量:fahr=1
8、00;。v给变量赋值,除了给一个直接的值以外,还给变量赋值,除了给一个直接的值以外,还可以通过计算获得如:可以通过计算获得如:celsius=5*(fahr-32)/9;12变量的命名规则变量的命名规则在 C 语言中,变量命名需要遵循一定的规则有效名称有效名称principalcost_pricemarks_3lastnamecity无效名称无效名称123ratecurrency$discount%zip codev变量的命名规则:变量的命名规则:n变量名可以由字母、数字和 _(下划线)组合而成n变量名不能包含除 _ 以外的任何特殊字符,如:%、#、逗号、空格等n变量名必须以字母或 _(下划线
9、)开头n变量名不能包含空白字符(换行符、空格和制表符称为空白字符)nC 语言中的某些词(例如 int 和 float 等)称为保留字,具有特殊意义,不能用作变量名nC 语言区分大小写,因此变量 price 与变量 PRICE 是两个不同的变量132.1.5 赋值运算赋值运算v赋值运算符赋值运算符 =v赋值表达式:用赋值表达式:用=将一个将一个变量变量和一个和一个表达式表达式连接连接起来的式子起来的式子 变量 表达式例如:例如:fahr=100;celsius=5*(fahr-32)/9;n计算计算赋值运算符右侧表达式的值赋值运算符右侧表达式的值n将赋值运算符右侧表达式的值将赋值运算符右侧表达式
10、的值赋给赋给左侧的变量左侧的变量 的左边必须是一个变量的左边必须是一个变量14分析错误程序分析错误程序/求两个整数的和#includeintmain()inta,b,sum;sum=a+b;a=3;b=5;printf(%dn,sum);return0;该程序为何得不到正确结果?错误原因是受数学思维的影响,吴以为sum=a+b;是建立sum和a+b之间的一个等量关系 赋值运算“=”表示的是一个动作:先计算表达式的值,再存入赋值号左边的变量中,既不表示数学中的等量代换,也不表示相等关系执行sum=a+b;语句是,因为a和b中的值都不确定,是随机的,所以其和也是随机的,然后把这个数赋给了sum该程
11、序为何得不到正确结果?152.1.6 格式化输出函数格式化输出函数printfprintf(%d,count);printf将一些信息按照指定的格式送到标准输出(显示器)count输出参数表:待输出的数据,可以是常量、变量或表达式格式:printf(“格式控制串格式控制串”,输出输出参数参数表表)%d 格式字符串:指定数据的输出格式16输出格式输出格式printf(“fahr=%d,celsius=%dn,fahr,celsius);普通字符,原样输出%开头的是转换说明,对应与后面一个输出参数,对应参数将被转换成指定格式后在该位置输出输出结果:fahr=100,celsius=37输出参数列表
12、n是转意字符,用来输出一个回车17转换字符串转换字符串printf(%d,count);%d 转换字符串说 明%d将参数按整数形式转换输出,对应参数应是将参数按整数形式转换输出,对应参数应是int 类型类型%ld将参数按长整数形式转换输出,对应参数是将参数按长整数形式转换输出,对应参数是long型型%c输出一个字符,对应参数应该是一个字符输出一个字符,对应参数应该是一个字符%s输出一个字符串,对应参数应该是一个字符串输出一个字符串,对应参数应该是一个字符串%f将参数按带小数点数形式输出,对应参数应是将参数按带小数点数形式输出,对应参数应是double 类类型,默认情况下精确到型,默认情况下精确
13、到 6 位小数位小数18转换字符串转换字符串%dint visitor_count=150;printf(%d,visitor_count);输出结果:15019转换字符串转换字符串%mdint salary=5500;printf(%10d,salary);输出结果:5500输出结果的左边显示了 6 个空格%10d 数据以十进制整数格式输出,宽度占m列,数据不足m列左补空格,超过m列按实际位数输出。20转换字符串转换字符串%-mdint salary=5500;printf(%10d,salary);输出结果:5500输出结果的右边显示了 6 个空格%-10d 数据以十进制整数格式输出,宽度
14、占m列,数据不足m列右补空格,超过m列按实际位数输出。21课堂练习课堂练习:输出整数幂输出整数幂已知已知m=11,n=41,m=11,n=41,输出输出m m和和n n的的2 2次方、次方、3 3次方和次方和4 4次方,要次方,要求每个数据占求每个数据占8 8列,左对齐。效果如下:列,左对齐。效果如下:121 1331 14641 121 1331 14641 1681 68921 2825761 1681 68921 2825761 222.2:使用浮点数进行温度转换:使用浮点数进行温度转换v例例2.22.2:例:例2.12.1中程序的运行结果并不令人满意,因中程序的运行结果并不令人满意,因
15、为华氏温度为华氏温度100100,对应的摄氏温度应该为,对应的摄氏温度应该为37.777737.7777,而不应该是,而不应该是3737。需要使用浮点型变量来存储带小数点的数,我们需要将celsius,fahr声明为双精度浮点型声明为双精度浮点型#include int main()double celsius,fahr;/声明两个双精度浮点型变量声明两个双精度浮点型变量 fahr=100.0;/赋值运算赋值运算 celsius=5*(fahr-32)/9;/计算摄氏温度,并存入变量计算摄氏温度,并存入变量celsius printf(fahr=%f,celsius=%fn,fahr,cels
16、ius);232.2.1 浮点变量类型浮点变量类型 浮点数在计算机中的表示,基于指数表示法,将分为指数和尾数来存储。浮点变量根据数据表示范围和精确度不同,有一下几种类型float4个字节个字节(+/-)3.4E38,6位有效数字浮点变量用来存储浮点数,浮点数包含的值带小数点,也可以表示分数和整数。double8个字节个字节(+/-)1.7E308,15位有效数字课外作业:查阅资料,了解浮点数是如何存储的Long double12个字节个字节(+/-)1.19E4932,18位有效数字24注意有效位数的不同注意有效位数的不同内存内存floatdouble213.5671435568967 64位
17、位取值范围:10-308 至 1030816 位有效数字nflaot f_level=213.5671435568967;ndouble d_level=213.5671435568967;去VC下试试!25转换字符串转换字符串%ffloat circumference=78.53;printf(%f,circumference);输出结果:78.530000默认情况下精确到六位小数9.4786789;9.4786792.2.2 浮点数据的输出浮点数据的输出 26double mercury_level=168.2251074;printf(%7.2f,mercury_level);输出结果:
18、168.23宽度,表示所有的数字和小数点所占的位数。不够7位右对齐。%7.2f 精度(精确到小数点后多少位)转换字符串转换字符串%m.nf2.2.2 浮点数据的输出浮点数据的输出 27程序程序指令指令2.2.3 常量常量标识符标识符关键字关键字常量常量运算符运算符分隔符分隔符等等常量是在程序中保持不变的量,分为:立即数符号常量(宏常量)const 常量立即数立即数v整型常量:整型常量:如如32、100v实型常量实型常量:如如1.23 123.567e5v字符常量字符常量:a、2、nv字符串常量:字符串常量:“c program”28定义常量定义常量v为使程序易于阅读和便于修改,可以给程序中经常
19、使用的常量定义一个有一定含义的名字。常量用于定义具有如下特点的数据:在程序中保持不变在程序内部频繁使用需要用比较简单的方式替代某些值防止意外的修改,增强程序的健壮性 29定义宏常量定义宏常量v#define PI 3.1415926编译预处理指令#define将PI定义成一个要被3.1415926取代的符号,此时PI不是一个变量,而是3.1415926的别名。在编译开始之前,只要在程序的表达式中引用PI,预处理器就会用#define指令中的值(3.1415926)来取代它。宏常量的缺点:宏常量被替换成立即数之后,内存中有同一个立即数的多份拷贝。30定义定义const常量常量v在定义变量时,加上
20、在定义变量时,加上const修饰,告诉编译器,修饰,告诉编译器,它的值是固定的,不能被改变。编译器会帮你检它的值是固定的,不能被改变。编译器会帮你检查、监督。查、监督。const double PI=3.1415926;const推出的初始目的,正是为了取代预编译指令,消除它的缺点,同时继承它的优点。在编译的时候,由于const定义常量只是给出了对应的内存地址,而不是象#define给出的是立即数,所以,const定义的常量在程序运行过程中只有一份拷贝,而#define定义的常量在内存中有若干个拷贝。31例例2.3 求圆柱体的体积求圆柱体的体积/求圆面积,圆周率用立即数求圆面积,圆周率用立即数
21、#include“stdio.h”int main()doulbe v,r,h;r=10.0;h=20.0;v=3.1415926 r*r*h;printf(“v=%fn”,v);return 0;/求圆面积,圆周率用宏常量求圆面积,圆周率用宏常量#include“stdio.h”#define PI 3.1415926int main()double v,r,h;r=10.0;h=20.0;v=PIr*r*h;printf(“v=%fn”,v);return 0;/求圆面积,圆周率用求圆面积,圆周率用const宏常量宏常量#include“stdio.h”const double PI=3.
22、1415926;int main()double v,r,h;r=10.0;h=20.0;v=PIr*r*h;printf(“v=%fn”,v);return 0;32模仿练习模仿练习v(1)编程,已知圆的半径)编程,已知圆的半径radius(实数),输实数),输出圆的面积出圆的面积,保留两位小数保留两位小数332.3:对任意华氏温度进行温度转换:对任意华氏温度进行温度转换v例2.3:例2.2中的程序运行后只能输出华氏温度100F对应的摄氏温度,为提高程序地通用性,要求程序运行后等待键盘输入一个华氏温度(实数),程序输出其对应的摄氏温度。/读入一个华氏温度,输出其对应的摄氏温度读入一个华氏温度
23、,输出其对应的摄氏温度#include int main()double celsius,fahr;/声明两个双精度浮点型变量声明两个双精度浮点型变量 scanf(%lf,&fahr);/等待用户输入一个数,存入等待用户输入一个数,存入fahr celsius=5*(fahr-32)/9;/计算摄氏温度,并存入变量计算摄氏温度,并存入变量celsius printf(fahr=%f,celsius=%fn,fahr,celsius);34scanf(“%d”,&a);2.3.1 scanf()函数函数scanf 函数从标准输入(键盘)读取信息,按照格式描述把读入的信息转换为指定数据类型的数据,
24、并把这些数据赋给指定的内存区域中。转换字符串&符号(附在读取的每个变量上)用于指明变量在内存中的位置变量的名称35scanf()函数的格式函数的格式scanf(格式控制字符串,内存地址1,内存地址2,内存地址n)scanf(“%d”,&a);(1)%d为格式转换符,每个格式转换符对应后面一个内存地址。(2)scanf将读入数据,按指定格式理解该输入,然后存入对应内存地址363.1.2 格式转换符格式转换符格式转换符参数变量的类型要求的实际输入%dint 十进制整数十进制整数%f float 十进制数实数十进制数实数%lf double十进制数实数十进制数实数格式控制字符串:格式控制字符串:(1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简单 语言程序设计
限制150内