您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 30096电工电子技术基础教程(第2版)2
1第2章C语言程序设计的初步知识本章要点:标识符命名规则常量和变量基本数据类型常用运算符及表达式运算符的优先级及结合性本章难点:不同类型数据间的混合运算运算符的优先级自增(++)自减(--)运算符的使用22.1C语言的数据类型整型字符型实型(浮点型)枚举类型单精度型双精度型数组类型结构体类型共用体类型构造类型基本类型指针类型空类型数据类型32.2常量、变量和标识符2.2.1标识符C语言中的标识符可以分为系统定义标识符和用户定义标识符。1.系统定义标识符1)关键字关键字是C语言系统使用的具有特定含义的标识符,不能作为预定义标识符和用户定义标识符使用。C语言定义了32个关键字,如表2.1所示。2)预定义标识符预定义标识符也是具有特定含义的标识符,包括系统标准函数名和编译预处理命令等,如scanf、printf、define和include等都是预定义标识符。4表2.1C语言中的关键字autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunsignedunionvoidvolatilewhile关键字必须用小写字母;不允许使用关键字为变量、数组和函数等操作对象命名。52.用户定义标识符用户定义标识符用于对用户使用的变量、数组和函数等操作对象进行命名。例如将一个变量命名为a,将一个数组命名为date,将一个函数命名为fun等。用户标识符命名时要注意:(1)C语言对英文字母的大小写敏感,即同一字母的大小写被认为是两个不同的字符。例如total与TOTAL是不同的标识符。(2)标识符必须由字母或下划线开头,并且除了字母、数字和下划线外,不能含有其他字符。(3)标识符的命名要见名知意,即通过变量名就知道变量值的含义。(4)标识符的有效长度随系统而异,但至少前8个字符有效。如果超长,则超长部分被舍弃。62.2.2常量1.定义:在程序执行期间,其值不可改变的量称为常量2.类型:数值常量例如:5,-10,3.14等符号常量即用一个符号代表一个常量例2.1用标识符代表常量。#definePI3.1415926main(){floats,r;r=5;s=PI*r*r;printf(%f,s);}7说明:符号常量必须先定义后才能用它表示一个数值。符号常量的值在其作用域内不能改变,也不能再被赋值。符号常量名习惯用大写字母表示。82.2.3变量1.变量概念:程序执行期间值可以改变的量。命名规则:变量名由标识符表示,只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线。例如:以下为不合法的变量名:M.D.Jess,1add,age&,5th,lotus-1-2-3,cd*ef,int2.变量的定义要使用变量,必须为变量命名。变量名是用户自己定义的标识符,习惯上由小写字母组成。变量定义的一般格式为:数据类型标识符变量名1,变量名2,…,变量名n;inta;/*定义了整型变量a*/93.变量的初始化C语言允许在定义变量的同时给变量赋值,这称为变量的初始化。变量初始化的一般格式为:数据类型标识符变量名1=初值1,变量名2=初值2,…,变量名n=初值n;C语言允许在定义变量的同时初始化变量,如:inta=2;/*指定a为整型变量,初值为2*/floatf=3.45;/*指定f为实型变量,初值为3.45*/charc=‘A';/*指定c为字符变量,初值‘A'*/也可以使被定义的变量的一部分赋初值,如:inta=1,b=-3,c;10在C语言中,变量必须强制定义,其目的是:1、凡未被事先定义的,不作为变量名。2、每一个变量被指定为一确定的类型,在编译时就能为其分配相应的存储单元。3、指定每一个变量为一确定的类型,在编译时据此检查该变量所进行的运算是否合法。*选变量名时,要做到“见名知意”例如:namest_agexmnlclasssum*大小写字母是两个不同的字符,C变量名习惯用小写字母表示。*建议变量名的长度不要超过8个字符。注意:112.3整型数据2.3.1整型常量1.整型常量的形式十进制整数:由数字(0-9)和正负号表示例如:123、-456、0等八进制整数:以0开头数是八进制数例如:0123即(123)8=(83)10(123)8=182+281+380=(83)10十六进制整数:以0x或0X开头,例如:0x123即(123)16=(291)10main(){inta=0123;b=0x123;/*0123是八进制数,0x123是十六进制*/printf(a=%d,b=%d,a,b);}程序运行结果为:a=83,b=291122.整型常量的类型我们已知整型变量可分为int、shortint、1ongint和unsignedint、unsignedshort、unsignedlong等类别。(1)一个整常量,如果其值在-32768~+32767范围内,则认为它是int型。可以将它赋值给int型和1ongint型变量。(2)一个整常量,如果其值超过了上述范围,而在-2147483648~2147483647范围内,则认为它是1ongint型。(3)如果某一计算机系统的C版本确定的shortint与int型数据在内存中占据的长度相同,则它的表示范围与int型相同。(4)常量中无unsigned型,但一个非负值的整常量可以赋值给unsigned型整变量,只要它的范围不超过变量的表示范围即可。(5)在一个整常量后面加一个字母l或L则认为是1ongint型常量,例如123l、432L,这往往用于函数调用中。132.3.2整型变量的分类基本型:以int表示短整型:以shortint或short表示1.类型长整型:以longint或long表示(123l、123L)无符号基本型(unsignedint)无符号型无符号短整型(unsignedshort)无符号长整型(unsignedlong)(-32768~32767)一个无符号整型变量中可以存放的正数的范围比一般整型变量中正数的范围扩大一倍。inti;/*变量i的数值范围:-32768~32768*/unsignedintj;/*变量j的数值范围:0~65535*/1.整型变量的类型14整型变量的字长short型∶字长16位(2个字节)。long型∶字长32位(4个字节)。int型∶随编译程序而定(可以是2个字节,也可以是4个字节)C要求long型数据长度不短于int型,short型不长于int型。(short=int=long)long型可以得到大范围的数据,但同时会降低运算速度,因此除非不得已,不要随便使用long型。15整型数据的溢出:main(){inta,b;a=32767;b=a+1;printf(“”%d,%d”,a,b);}运行结果:32767,-32768改进:将变量a和b改成long型,并按%ld格式输出。162.整型变量的定义前面已提到,C规定在程序中所有用到的变量都必须在程序中指定其类型,即“定义”。这是和BASIC、FORTRAN不同的,而和PASCAL相类似。例如:inta,b;/*指定变量a,b为整型*/unsignedshortc,d;/*指定变量c,d为无符号短整型*/1onge,f;/*指定变量e,f为长整型*/对变量的定义,一般是放在一个函数的开头部分(也可以放在程序中间,但作用域只限于某一部分程序)。例2.4整型变量的定义与使用。main(){inta,b,c,d;/*指定a,b,c,d为整型变量*/unsignedu;/*指定u为无符号整型变量*/a=20;b=-40;u=10;c=a+u;d=b+u;printf(c=%dd=%d,c,d);}运行结果为:c=30,d=-30172.4实型数据2.4.1实型常量1.实型常量的形式(两种):十进制数形式:由数字和小数点及正负号组成。(注意:必须有小数点)例如:3.148.6-23.指数形式:由数字、小数点、字母e或E及正负号组成。(注:e或E之前必须有数字,且后指数必须为整数)例如:正确:3.5E-52e3错误:E23.6e3.5.e62.实型常量的类型多数C编译系统对实型常量按双精度(double)类型处理,以提高运算精度。此时系统为实型常量分配8个字节的存储空间。如果在实型常量后加字母f或F,则强调表示该数是float型常量,这时系统会为其分配4个字节的存储空间。182.4.2实型变量实型变量可分为:单精度(float型)如:floatx,y;双精度型(double型)如:doublea,b,c;说明:1.float型变量在内存中占4个字节;double型变量在内存中占8个字节。2.单精度实数提供7位有效数字;双精度实数提供15~16位有效数字。3.一个实型常量不分float和double型,一个实型常量可以赋给一个float型或double型变量,并根据变量的类型截取实型常量中相应的有效位数字。例如:floata;doubleb;a=123456.789e5;b=123456.789;193.5字符型数据3.5.1字符常量1.字符常量:用单引号括起来的一个字符。例如:‘a’‘B’‘#’‘!’2.转义字符:指不能用符号直接表示的字符常量。将反斜杠(\)后面的字符转变成另外的意义。如‘\n’中的“n”不代表字母n而作为“换行”符。例如:‘\n’换行‘\t’横向跳格(水平制表)‘\b’退格‘\v’竖向跳格(垂直制表)‘\r’回车‘\f’走纸换页‘\a’报警‘\0’空字符main(){printf(Y\b=\n);}运行结果:程序运行时在屏幕上显示结果:=程序运行时在打印机上输出结果:¥20注意:•字符常量首尾的单引号是定界符,不占存储空间。•在C语言中,‘a’和a是不同的。前者代表字符常量,后者代表一个标识符。•‘a’和‘A’是不同的字符常量。前者存储的是小写字母a的ASCII码值为97,后者存储的是大写字母A的ASCII码值为65。•转义字符代表一个字符,在内存中只占一个字节的存储空间。•转义字符‘\0’就是ASCII码值为0的字符,常用于表示字符串结束的标志符。•‘\ddd’形式的转义字符是用ASCII码(八进制数)表示的一个字符,例如‘\101’代表字符‘A’,‘012’代表“换行”。•‘\xhh’形式的转义字符也代表一个字符,反斜杠后必须以小写字母x开头,后面的两位数字为十六进制数。例如,‘\xa’和‘\xA’都代表回车换行符,等价于转义字符‘\n’。213.5.2字符变量定义形式:char标识符1,标识符2,…,标识符n例如:charc1,c2,c3,ch;c1=‘a’;c2=‘b’;c3=‘c’;ch=‘d’;说明:1、字符变量在内存中占一个字节。2、在内存中,是把字符对应的ASCII码值放到存储单元中.3、字符型数据与整型数据之间可以通用.22main(){charc1,c2;c1=97;c2=98;printf(“%c%c\n”,c1,c2);printf(“%d%d\n”,c1,c2);}输出结果:ab9798main(){inti;charc;i=‘a’;c=97;printf(“%c,%d\n”,c,c);printf(“%c,%d\n”,i,i);}输出结果:a,97a,97232.5.3字符串常量1.定义:括在一对双引号之内的字符序列或转义字符序列称为字符串常量。例如:“Howareyou!”“a”“*abc\n\t”2.存储:字符串中的字符依次存储在内存中一块连续的区域内,并且把空操作字符‘\0’自动附加到字符串的尾部作为字符串的结束标志。故字符个数为n的字符串在内存中应占n+1个字节。例:c=“china”china\024‘b’与‘B’是否相同?‘b’与“b”是否相同?b为98,B为66'b'是字符常量,“b是字符串常量
本文标题:30096电工电子技术基础教程(第2版)2
链接地址:https://www.777doc.com/doc-1741939 .html