您好,欢迎访问三七文档
南昌大学计算中心C语言程序设计南昌大学计算中心第2章C程序设计的初步知识2.1简单C语言程序的构成和格式例:求圆面积和周长的程序。#includestdio.h#definePI3.14main(){floata,b,r;scanf(“%f”,&r);/*请用户输入半径*/a=2*PI*r;b=PI*r*r;printf(“a=%f,b=%f\n”,a,b);/*输出结果*/}南昌大学计算中心由上例总结出C程序结构:1、C程序是由函数构成的。2、一个C程序有且只有一个main函数,即主函数。3、C程序总是从main函数开始执行,结束于main函数。在函数的起始行后面用一对花括号“{}”括起来的部分为函数体,函数体内通常有定义(说明)部分和执行语句部分。4、C语言严格区分大小写,C语言每条语句后面要有分号,即分号是语句的结束符。5、注释语句是非执行语句,用来提高程序的可读性。注释语句可以单独或放在语句的后面(在程序中任意合适的地方),/**/必须成对出现,/与*之间不能有空格,在注释之间不可以嵌套“/**/”。6、C程序书写格式很自由。7、C语言本身没有输入输出语句,输入输出是通过函数调用来实现的。当调用系统库函数时,要用命令行将库函数包含进来。如#includestdio.h南昌大学计算中心2.2标识符、常量和变量2.2.1标识符标识符:由字母、下划线和数字组成的字符序列,且第一个字符必须是字母或下划线。标识符的分类:1、关键字:已被C语言赋予固定含义的标识符。P267页39个2、预定义标识符:被C语言预先定义的特定标识符(一般是C的函数名称,如printf,预处理命令动词,如define等),允许用户对它们重新定义另作他用,但这将使这些标识符失去预先定义的原意。3、用户标识符:由用户根据需要定义的标识符。区分大小写即大写字母和小写字母被认为是两个不同的字符。注意:用户标识符与关键字相同,则在对程序进行编译时系统将给出错信息;如果用户标识符与预定义标识符相同,系统并不报错。南昌大学计算中心2.2.2常量常量:程序运行过程中,其值不能被改变的量。1、按数据类型分常量有:整型(有符号、无符号),实型(单精度、双精度)、字符型、字符串型。2、C语言会根据常量的书写形式判断常量的类型,一般默认为基本型,用户也可以在常量后面加上字母指定类型。可用U或L(或小写)。如23u,23L,23,1.0f3、整型常量的表示可有:十进制、八进制(以0开头)、十六进制(以0x或0X开头),但八、十六进制只能用来表示无符号整型)4、符号常量符号常量:用一个符号名代表一个常量。定义符号常量:使用事先编译预处理命令define定义。格式:#define标识符常量编译时先由系统替换为它所代表的常量,再进行编译。南昌大学计算中心5、实型常量表示:小数(必须要有小数点)和指数方式(2.5e10,注意:字母e或E之前必须要有数字,且字母e或E后面的指数必须为整数。字母e或E的前后以及数字之间不得插入空格。6、字符型常量:单个字符,用单引号引起。如:’a’,’3’7、字符串常量:用双引号引起如:“abcd325r”,”a”南昌大学计算中心2.2.4变量变量:程序运行过程中,其值可以改变的量。变量应遵循“先定义后使用”的原则。变量的数据类型同常量一样有整型、实型、字符型。但没有字符串型变量。变量定义示意:.......125a变量a的存储单元南昌大学计算中心2.3.2整型变量包括基本型、短整型、长整型和无符号型四种。如:inta;/*定义基本型整型变量a*/如:inta=3;/*定义基本型整型变量a,同时赋整数3*/注意:VC6.0为一个基本型整型变量开辟4个字节的内存单元,如上例中的变量a。南昌大学计算中心2.3.3整型数据的分类1、基本型(int):占4个字节。2、短整型(shortint):占2个字节。3、长整型(longint):占4个字节。4、无符号型(unsigned):unsignedint:占4个字节;unsignedshort:占2个字节;unsignedlong:占4个字节。无符号型必为非负数。南昌大学计算中心2.3.4整数在内存中的存储形式(二进制形式,最高位为符号位)1、正整数:“补码”形式存放。如:shortinta=5;上述语句指在内存中开辟一个2个字节的单元,单元名为a,并存放整数5的二进制代码。编码为:0000000000000101最高位为0,表示正整数因此:short型整数最大值为32767,即0111111111111111。南昌大学计算中心2、负整数:“补码”形式存放。如:shortinta=-5;上述语句指在内存中开辟一个2个字节的单元,单元名为a,并存放整数-5的二进制代码。代码为:1111111111111011,此为补码形式。得到补码的方法:(1)求原码的反码:把原码除符号位之外的二进制码按位取反。如:-5的原码:1000000000000101-5的反码:1111111111111010(2)把所得的反码加1,即为补码。如:-5的反码:1111111111111010加1后,补码:1111111111111011南昌大学计算中心由补码还原成十进制负整数的方法:(1)把补码的除符号位之外的各位取反。如:-5的补码:1111111111111011取反后:1000000000000100(2)把所得的二进制数转换成十进制负整数。如:上例中的:1000000000000100转换后得:-4(3)对所得十进制数再减1。如:上例中的-4:-4-1得-5南昌大学计算中心3、无符号整数:为非负数,最高位不为符号位。如:unsignedshorta=5;上述语句指在内存中开辟一个2个字节的单元,单元名为a,并存放整数5的二进制代码。代码为:0000000000000101,此为原码形式。不是符号位再如:unsignedshorta=65535;上述语句指在内存中开辟一个2个字节的单元,单元名为a,并存放整数65535的二进制代码。代码为:1111111111111111,此为原码形式。不是符号位南昌大学计算中心2.4.2实型变量单精度型:用float定义,分配4个字节存储空间。双精度型:用double定义,分配8个字节存储空间。实型的变量只能存放实型数,不能用整型变量存放一个实数,也不能用实型变量存放一个整数。2.4实型数据注意:编程之前要考虑数据可能的大小,再选取合适的数据类型,避免溢出。整型数没有误差,实型数有误差,但表示数值范围大。因为实型数有误差,因此在C语言中实型数不进行两个数相等的比较。南昌大学计算中心2.5算术表达式2.5.1基本的算术运算符+、-、*、/、%属于双目运算符(运算符需要两个运算对象)。%的运算对象只能是整数。若两边运算数类型一致,所得结果类型与运算数类型一致。如:1.7+2.3结果为4.0,不是42.5/0.5结果为5.0,不是53/6结果为0,不是0.5或两边运算数类型不一致,系统将自动进行类型转换,使得两边运算数类型一致,转换规律见附录5。南昌大学计算中心2.5.2运算符的优先级、结合性和算术表达式1、算术运算符的优先级()+-++--*/%+-同级同级同级单目双目高低2、算术运算符和圆括号的结合性算术运算符的结合性是从左到右(除了表示正负号的+、-是从右到左)。若有圆括号则优先进行圆括号中的运算。南昌大学计算中心3、算术表达式把算术运算符和运算数连接起来的表达式称为算术表达式。表达式都有运算结果,即表达式值。2.5.3强制类型转换表达式(类型符)(表达式)即强行把表达式值转换成所需类型。如:(float)(5/3)(int)(a)或(int)a南昌大学计算中心2.6赋值表达式2.6.1赋值运算符和赋值表达式赋值运算符:=赋值表达式格式:变量名=表达式作用是把右侧表达式的值赋给左边的变量,整个表达式的值就是左侧变量的值。“=”是双目运算符,右结合性,优先级仅高于逗号运算符。如:a=5a=b=8/3南昌大学计算中心2.6.2复合赋值表达式C语言提供了10种复合的赋值运算符,它们是+=,-=,*=,/=,%=,=,=,&=,^=,|=其中前5个是复合的算术赋值运算符,后5个是复合的位运算赋值运算符。复合的赋值运算符是双目运算符,优先级和赋值运算符相同,也是右结合性的。变量复合赋值运算符表达式它等效于变量=变量算术运算符表达式例如:a+=5等价于a=a+5x*=y+7等价于x=x*(y+7)南昌大学计算中心2.6.3赋值运算中的类型转换当赋值表达式中左右两边类型不一致时,会遵循自动转换规则:右侧表达式的值按左侧变量的类型进行转换。如:假设变量a为整型a=3.5的结果为3,即变量a的内容为3注意整型之间的转换,参见书上。南昌大学计算中心2.7自加、自减运算和逗号运算符2.7.1自加运算符“++”和自减运算符“--”是单目运算符,与变量结合,作用是使变量值增1或减1。有前缀和后缀两种形式:前缀形式:先自增(自减)再引用;后缀形式:先引用再自增(自减);如:假设变量a为5a++则a为6,表达式值为5++a则a为6,表达式值为6具有右结合性,结合方向为从右到左。如:–a++等价于-(a++)南昌大学计算中心2.7.2逗号运算符和逗号表达式逗号“,”也是一种运算符,优先级别最低。逗号表达式:表达式1,表达式2,……,表达式n从左向右,依次对表达式求值,最后得到表达式n的值就是逗号表达式的值。如:a=8,a++,a%5表达式的值为4,且a为9b=5,b+2,b++表达式的值为5,且b为6y=(c=2*3,c*6)赋值表达式的值为36,且y为36,c为6
本文标题:C语言第2章
链接地址:https://www.777doc.com/doc-5183781 .html