【文档说明】(整理)C语言程序设计第四版课件.ppt,共(52)页,612.000 KB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-44445.html
以下为本文档部分文字说明:
2021/7/261(最新整理)C语言程序设计第四版谭浩强2021/7/262上周实验题讲解P.6例1.1P15习题5教材例1.3——增加输入提示,便于用户操作——也可以不用函数——多次运行,测试各种顺序的组合P15习题6——三个数比较:用m
ax函数比较两次2021/7/263第3章顺序程序设计2021/7/2643.1最简单的程序结构——顺序结构数据输入运算处理结果输出2021/7/265顺序结构流程步骤1步骤2步骤32021/7/266阅读顺序结构实例P.37-38例3.1为什么要写5.0/9而不是5/9?f的
值可否由用户输入?本章要点:数据的类型及运算输入与输出2021/7/2673.2C语言的数据及运算数据有类型(type),有具体的值(value)。不同类型的数据存储格式不同,能够进行的运算也不同。数据的形式有常量,变量,表达式。2021/7
/268常量(Constant)运行过程中值不改变的量(类型也不变)直接常量整型常量:1246实型常量:45.96-2.78e8字符常量:’A’\n(转义字符)字符串常量"HelloWorld"2021/7/269常量(Cons
tant)符号常量#definePI3.14159不占内存单元不可赋值不指定类型名称通常大写使用符号常量的好处P.41运行过程中值不改变的量(类型也不变)2021/7/2610变量(Variab
le)用于存放数据的一个存储单元存放的数据即变量值变量名是存储单元地址的一个名称先定义,后使用inta,b;定义时指定变量类型——编译时分配存储空间命名规则——标识符的命名规则2021/7/2611标识符(identifier)标识一个对象(变量、
符号常量、函数、数组、类型等)的名称关键字不可作为标识符(附录C)系统预定义的标识符如库函数名(附录F)建议不要再定义,以免混淆2021/7/2612标识符命名规则只包括字母、数字、下划线,以字母或下划线开头区分大小写——习
惯上变量名小写,常量名大写长度规定各编译系统不同命名的良好习惯——―见名知义”2021/7/2613常变量C99新增存储方式和用法都是变量,但只能在定义时赋值一次2021/7/2614C语言的数据类型1.基本类型整型、浮点型、字符型2.
派生类型数组,结构体,共用体3.指针类型4.空类型5.枚举型2021/7/2615整型数据(Integer)整型常量三种数制的表示形式十进制(Decimal):例如61八进制(Octal):例如075十六进制(Hexadecimal):例如0x3D2021/7/2616整型数据(Integ
er)整型常量的类型确定根据其值的范围自动确定类型(P51)可赋值给能够容纳其值的各种整型变量整常量后加l或L视为longintVC++中int就是longint整常量后加u或U视为unsignedint2021/7/26
17整型数据(Integer)整型变量根据占用内存字节数分类(P.45表3.2)基本整型int(长整型或短整型)短整型short[int]长整型long[int]无符号整型unsigned…int在不同编译系统中分配存储字节数各不相同,可用sizeof函
数测试例:printf("%d",sizeof(int));signed2021/7/2618浮点型数据(Floatingpoint,即实型)浮点型常量两种表示形式十进制小数:例如3.14159指数形式:例如1.72e3main(){floatx;x=23456.789;p
rintf("x=%e",x);}2.345679e+004对照一下%f的格式2021/7/2619浮点型数据浮点型变量单精度float双精度double长双精度longdouble同一类型在不同
的编译系统中分配存储字节数各不相同,可用sizeof函数测试2021/7/2620浮点型常量的类型确定浮点型常量默认为double类型浮点型常量后加f或F视为float浮点型数据的有效范围(P.50-51)2021/7/2621练习:判断下面程序的运行结果intmain(){floata;
a=12;printf("%d",a);}格式符与数据类型不相符2021/7/2622字符型数据(character)字符常量一对单引号(即撇号')括起的一个字符用八进制或十六进制数(ASCII码)表示的字符,如'
\101'和'\x41'(P.40)以\开头的控制字符(P.40表3.1)2021/7/2623字符型数据(character)字符变量使用char定义保存一个字符占用1个字节的内存空间2021/7/2624字符数据的存储与使用
在存储单元中保存字符的ASCII码因此字符数据可以参加算术运算例如2021/7/2625字符数据的存储与使用intmain(){charx,z;inty;x=65;printf("x=%c\n",x+32);y='D';printf("y=%
c\n",y);printf("y=%d\n",y);z='a'-32;printf("z=%c\n",z);}2021/7/2626字符串(string)——概念一对双引号(")括起的字符序列字符串长度:字符串中字符的个数空串:长度为0的字符串(即一个
字符都没有的字符串)表示为""2021/7/2627字符串(string)——存储方式CHINA\0由5个字符组成的字符串在内存中占用6个字节存储空间字符串结束符,占一个字节,由系统自动加上,源代码中不写"CHINA"2021/7/2628字符
常量与字符串常量的区别字符常量字符串常量定界符'"长度1非负整数存储要求单个字符的ASCII码有效字符和结束标志’\0’的ASCII码2021/7/2629注意:C语言只有字符变量,没有字符串变量使用字符数组保存字符串202
1/7/2630数值型数据的混合运算整型(int,short,long)、浮点型(float,double,longdouble)、字符型(char)数据可混合运算运算前先自动转换成同一类型必定转换float→double,char→int运算对象类型不同时由较低精度向较高精度转
换成相同类型精度:int<unsighed<long<double2021/7/2631数值型数据的混合运算练习:判断下面表达式的值10+'a'–10.1*'b'2021/7/2632运算符和表达式C语言的运算符(P.56,Operator)算术运算符P.52关系运算符P
.91逻辑运算符P.93位运算符待补充赋值运算符P.60条件运算符P.97逗号运算符P.123指针运算符Ch8.指针求字节数运算符强制类型转换运算符P.56成员运算符Ch9.结构体下标运算符Ch6.数组其
他详见附录D2021/7/2633算术运算符和算术表达式基本算术运算符+-*/%(求余)练习,判断算术表达式的值5/35%35.1/35.1%32021/7/2634算术运算符和算术表达式自增、自减运算符♪使变量值加1或减1i++,i--先使用i值再使i值加1(或减1)+
+i,--i先使i值加1(或减1)再使用i值可组成复杂的形式,但建议不要滥用2021/7/2635算术运算符和算术表达式自增、自减运算符♪例1main(){inti,j;i=3;j=i++;printf("i=%d,j=%d\n",i,j);}i=4,j=32021/7/2636算术运算符和算术表
达式自增、自减运算符♪例2main(){inti,j;i=3;j=++i;printf("i=%d,j=%d\n",i,j);}i=4,j=42021/7/2637算术运算符和算术表达式运算符的优先级和
结合性♪附录D♪由优先级别决定运算顺序♪不同的运算符有不同的结合性,多为从左向右(左结合性),少数为从右向左(右结合性)2021/7/2638算术运算符和算术表达式强制类型转换运算符♪系统不能进行自动类型转换时可使用强制转换(类型符)变量(类型符)(表
达式)例(int)(12.1/2.5)(int)12.1/2.52021/7/26393.3C语句C程序的构成C程序源程序文件1源程序文件2源程序文件n预处理命令全局变量声明函数1函数n局部变量声明执行语句2021/7/26403.3C语句(statement)C语句的分类P.57-59•控制语
句•函数调用语句•表达式语句•空语句•复合语句2021/7/2641赋值(Assignment)语句赋值运算符a=3+2复合赋值运算符a+=3a=a+3自右向左结合P.61实例尽量读懂,但建议不要采用太复杂的写法赋值运算符和赋值表达式2021/7/2642赋值语句•赋值中的
类型转换•赋值表达式,赋值语句•定义变量时赋初值——初始化(initialize)2021/7/2643数据输入输出的概念输入(input):输入设备→主机输出(output):主机→输出设备C语言的输入输出由函数(function)实现stdio.h头文件包含标
准输入输出库函数2021/7/2644printf("格式控制",输出表列)例:printf("a=%d,b=%f\n",a,b/2)普通字符(原样输出)格式说明输出列表常量、变量、表达式格式输出函数printf2
021/7/2645printf函数的基本格式符%d或%i十进制整数%c字符(一个字符)%s字符串%f实数(小数形式)%e实数(指数形式)更多的格式符见P.742021/7/2646输入函数scanfscanf("格式控制",地址表列)例1:s
canf("%d%f",&a,&b)输入时以空格或回车分隔两个数值scanf("%d,%f",&a,&b)输入时以逗号分隔两个数值&变量名,&变量名2021/7/2647输入函数scanf例2:scanf("%c%c",&a,&b)直接输入两个字符,不加空格或回
车例3:scanf("%d%c",&a,&b)数值后直接输入字符,不加空格或回车2021/7/2648输入函数scanf例4:scanf("a=%d,b=%f",&a,&b)普通字符(原样输入)格式说明地址列表输入a=34,b=452021/7/2649输入函数scanf地址列表中只能
是变量名前加地址运算符&的形式,其作用是将数据传送到变量的内存地址,相当于赋值。不能漏写&,也不可使用常量、表达式。输入数据应与原定格式相符(习题第5题)。更多的输入格式符见P.76。2021/7/2650字符数据的输入输出putchar(字符)——输出一个字符例1.putcha
r('a');例3.charx;x='\x61';putchar(x);例2.charx;x='a';putchar(x);注:也可以是整型变量2021/7/2651字符数据的输入输出getchar()——输入一个字符例:charx;inty;x=ge
tchar();y=getchar();putchar(x);putchar(y);注意:空格、回车等都是字符2021/7/2652