计算机程序设计基础基本概念程序设计中的数据基础结构化程序基础模块化程序设计基础程序设计中数据对象地址的处理方法构造类型数据处理基础字符串数据处理基础二进制位数据的处理基础文件数据处理基础程序设计的深入话题程序设计中的数据基础程序设计中数据的表示表达式运算基础程序设计中顺序处理和数据输入输出程序设计中数据的表示程序设计中数据对象的命名方法为了能够在程序中处理数据对象,需要为数据对象取名,数据对象的名字应该简练、容易记忆。命名的基本规则如下:变量名字应该直观且便于拼读、可望文知意。数据对象的名字的长度应当符合“最小长度表示最大信息”的原则。常量建议使用大写的字母,变量使用小写字母,用下划线分割单词。在程序的不同区域内尽可能使用不同的变量名字。函数的名字应该能够有效说明函数功能。尽量避免名字中出现数字编号,避免使用语言保留字。注意语言本身是否区分大小写(C语言是大小写敏感的)。程序设计中数据的表示整型类数据的表示整型常量在程序设计语言中,整型数据一般用机器的一个字长来存储,所以整型数据的表示范围与计算机系统的软硬件环境有关。整型常量的类别十进制整型常量:以非0开始的数据形式。八进制整型常量:以数字0开始的数据形式。十六进制整型常量:以0x开头的数据形式。长整型数据:在整型常数后添加字母“L”或者“l”表示长整型数据常量。无符号数据:在整型常数后添加字母“U”或者“u”表示无符号整型常量。程序设计中数据的表示整型类数据的表示整型变量的表示方法能够存放整型数据的变量称为整型变量。与整型常量对应,整型变量也有基本整型、短整型、长整型和无符号整型四种,整型变量的定义形式如下所示:基本整型:[unsigned]int变量名列表;短整型:[unsigned]short[int]变量名列表;长整型:[unsigned]long[int]变量名列表;例:整型变量定义示例。inta,b;/*定义了两个基本整型变量a,b*/longx,y;/*定义了两个长整型变量x,y*/unsignedintsum;/*定义了无符号整型变量sum*/程序设计中数据的表示实型类数据的表示实型数据实型数据是计算机程序设计中另外一类常用数据,实型数据有常见的小数表示形式和科学计数法表示形式。根据表示数据的范围不同,实型数据一般还分为单精度型和双精度型。实型常量的类别十进制数据形式:用十进制数据形式的表示实型常量时,数据由数字0~9和小数点组成,用小数点连接实型的整数部分和小数部分。指数形式:对于指数形式表示的实型常量,数据由数字0~9、小数点和表示表示阶码的标志“e”或“E”组成,其组成形式一般为:整数部分.小数部分E指数部分程序设计中数据的表示实型类数据的表示实型变量的表示方法存储实型数据的变量称为实型变量,C程序设计语言中把实型变量分为单精度型和双精度型,实型变量定义的形式如下所示:单精度型:float变量名列表;双精度型:double变量名列表;例:实型变量定义示例。floatsalary,area;/*两个单精度实型变量salary和area*/doublewidth,length;*/两个双精度实型变量width和length*/程序设计中数据的表示字符类数据的表示在C程序设计语言中,对应于字长为16位的系统用ASCII码来作为处理的字符集,使用对应的ASCII值来存储字符;对应于字长为32位的系统用双字节的Unicode作为处理的字符集,Unicode字符集中包括了ASCII字符集。字符常量的分类和表示方法字符常量用单引号括起来的一个字符转义字符(参见表2.1)字符串常量用双引号括起来的由0个字符或若干个字符构成的字符序列,字符串常量占用一段连续的存储单元,系统自动在其最后添加上表示字符串结尾的字符’\0’。程序设计中数据的表示字符类数据的表示字符变量的表示方法用来存放字符型数据的变量称为字符型变量,字符型变量的定义形式如下:char变量名列表;例:字符变量定义示例。charc1,c2;/*定义了两个字符型变量c1,c2*/特别注意点内存中存放的是与字符对应的整数值,一些编译系统将其看成是有符号的数据类型,另外一些编译系统又将其看成是无符号的数据类型。解决方法:编制简单测试程序确定字符类数据是否有符号。用整型变量来表示字符数据。程序设计中的数据基础程序设计中数据的表示表达式运算基础程序设计中顺序处理和数据输入输出表达式运算基础基本运算符和表达式运算表达式的概念由运算符和括号将运算对象(变量、常量、函数调用等)连接起来的、符合语言语法规则的式子称为表达式。特别地,单个的变量、单个的常量或单个的函数调用都是表达式的特例。例:C语言表达式示例。3y+7/2+z*cx=y+2y=sin(x)printf(“Thisisastring.\n”)表达式运算基础基本运算符和表达式运算运算符分类算术运算符关系运算符逻辑运算符赋值运算符位运算符条件运算符运算符的优先级优先级用于规定表达式运算的先后次序,C程序设计语言中将各种运算符运算的先后顺序规定为15个由高到低的优先级别(参见表2.2)。逗号运算符指针运算符求字节运算符强制类型转换运算符分量运算符下标运算符表达式运算基础基本运算符和表达式运算运算符的结合性在多数程序设计语言中,同级运算都遵循从左至右的规则。与其他语言不同,C程序设计语言为运算符规定了结合性,其规则可以如下方式理解:何时需要考虑结合性当一个运算对象两边的运算符优先级不同时,优先级可以决定运算次序,例如a+b*c;当一个运算对象两边的运算符优先级相同时,根据结合性决定运算次序,例如a+b-c;左结合性运算对象先与左边的运算符结合;右结合性运算对象先与右边的运算符结合;表达式运算基础基本运算符和表达式运算赋值运算和赋值表达式赋值运算符“=”的作用是将一个数据或是一个表达式的值赋给一个变量。赋值运算符“=”的结合性为右结合性。用赋值号“=”把一个变量和一个表达式连接起来的式子称为赋值表达式。在C语言中,赋值表达式可以作为一个对象出现在另外的表达式中。当赋值运算符两边的对象类型不一致时,在赋值时要进行类型的转换。转换的基本规则是以赋值运算符左边的变量的类型为准。例:x=10z=(y=x+1)-c表达式运算基础基本运算符和表达式运算算术运算符及优先级*,/,%+,-高低同优先级注意点:★对于除法运算符/,当参加运算的对象都是整型数据时,其结果也是整型数据。★对于模运算符%,参加运算的对象不能为实型(float或double)。★若参加模运算的对象为负,结果的符号依赖于系统。(TurboC中与左操作数同号)★算术运算时还需要考虑算术运算结果溢出的问题。例2-1运算结果溢出现象。例:3/213%2-3%23%-2-3%-21-11-1表达式运算基础基本运算符和表达式运算自增、自减运算符自增运算符“++”和自减运算符“--”是两个单目运算符,它们只能用于变量,不能用于表达式。自增、自减运算符有前缀和后缀两种形式当是前缀形式(即++、符号出现在变量的左侧)时,对变量实施的运算是“先增值后引用”;当是后缀形式(即++、--符号出现在变量的右侧)时,对变量实施的运算是“先引用后增值”。例2-2自增自减运算符示例。表达式运算基础基本运算符和表达式运算自增、自减运算符在标准的C语言中,对于表达式中每个运算对象的计算次序没有任何顺序上的规定,一个表达式中运算对象的求值顺序取决于编译器的实现。在使用自增/自减运算符时应该注意以下几种情况:当两个操作对象之间有多个运算符存在时,运算符尽可能靠近左操作对象。例如:i+++j解释为(i++)+j在不同的编译器中,对诸如(i++)+(i++)+(i++)表达式的解释是不相同的。(例2-02a)在同一个编译器中,当这种表达式放在不同的地方时解释的方式也不同。(例2-02b)表达式运算基础基本运算符和表达式运算自反运算符自反运算符概念自反运算符是在赋值运算符“=”的前面加上其他运算符构成的一种复合运算符,所以它是一种“复合的赋值运算符”,简称为“复合赋值符”。C语言规定,凡是双目运算符都可以与赋值运算符一起组成复合赋值符,其结合性为右结合性。这些复合赋值符是:+=、-=、*=、/=、%=、=、=、&=、^=、|=共10个。自反运算符的解释Aop=B应解释为A=Aop(B)例:a+=5等价于a=a+5x*=y+1等价于x=x*(y+1)x%=y-5等价于x=x%(y-5)表达式运算基础基本运算符和表达式运算逗号运算符和逗号表达式逗号运算符用于将两个以上的表达式连接起来,逗号运算符为左结合性。逗号表达式的形式为:表达式1,表达式2,…,表达式n注意点:C语言中,逗号运算符的优先级别最低;求值时按从左到右的顺序依次分别计算各表达式的值,逗号表达式的值和类型与最后一个表达式相同。逗号表达式在程序设计中常常用于表示同时处理若干个变量。例:a=1,b=a-4,c=b+2;等价于a=1;b=a-4;c=b+2;表达式运算基础基本运算符和表达式运算sizeof运算符sizeof运算符是C语言中特有的一个运算符,其作用是返回其运算对象所占内存单元的字节数。可以用sizeof运算符得到任何运算对象所占内存单元的字节数。例2-3测试所用计算机的基本数据类型所占内存的字节数。表达式运算基础数据的混合运算和数据类型转换隐式转换隐式转换是系统的自动转换,数据类型转换的原则是向表达数据能力更强的方向转换。转换规则如下所示:例2-4混合运算时系统自动数据类型转换示例。高double←float↑long↑unsigned↑低int←short,char表达式运算基础数据的混合运算和数据类型转换强制类型转换强制类型转换又称为显式转换。一般形式为:(类型名)表达式显式转换的功能是:在本次运算中,强迫表达式的值转换成指定的数据类型参加运算。注意点:强制转换仅对本次有效,转换前后数据对象均不受影响。若被转换的对象不是单个变量,则需用括号将整个被转换对象括住。例2-5混合运算时强制数据类型转换示例。程序设计中的数据基础程序设计中数据的表示表达式运算基础程序设计中顺序处理和数据输入输出程序设计中顺序处理和数据输入输出基本概念顺序处理的特点从程序的第一条可执行语言开始按其语句出现的先后次序依次顺序将所有语句执行一遍。程序的输入输出处理不同的程序设计语言中提供了不同的数据输入输出方法,一些使用在语言中定义输入输出语句的方式,另外一些则使用具有I/O功能的过程或者函数。C程序设计语言中无输入和输出语句,所有的输入输出均通过标准库函数来实现。C语言中的I/O类函数的声明包含在头文件stdio.h中。在程序设计中要使用标准输入和输出函数时,需要在源程序中使用包含编译预处理命令:#includestdio.h或#includestdio.h程序设计中顺序处理和数据输入输出程序设计中的格式化输出C程序设计语言中的格式化标准输出函数为printf函数函数调用的一般格式为:printf(“格式控制字符串”,输出表列);函数的功能向标准系统输出设备(显示器)输出一个或多个任意类型的数据。输出表列由一到若干个输出表达式组成,两个输出表达式项之间用逗号分隔。程序设计中顺序处理和数据输入输出程序设计中的格式化输出printf函数格式控制字符串的组成及意义普通字符普通字符原样照印。格式控制项(以%引导)格式控制项用以控制对应输出项的输出格式。%-0*m.nl格式控制字符指定输出格式(参见表2.3)输出长度修正指定域宽和精度指定按变量值确定域宽指定是否空位填0指定是否左对齐控制项引导符例2-6输出函数控制项中“*”可选项的使用示例。例2-7实型数据的输出示例。例2-8字符型数据的输出示例。例2-9整型数据的输出示例。例