您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 工作计划 > C语言习题解析-含基础知识讲解
第1页第1章C语言基础1.1简介英文是一种自然语言,学习英文首先要学习字符(字母和其它符号)、单词、然后学习语句短语,最后学习用语句构成文章。C语言是一种高级计算机语言,接近于人们习惯的自然语言和数学语言,也要先学习字符,基本词类,然后再学习语句的构成规则,最后学习用语句构成程序。本章介绍C语言的字符集、数据类型、运算符等。1.2知识点基本语法概念:关键字、标识符、数据类型、变量、常量常量的表示方法:整数、实数、字符、字符串常量、标识符常量类型转换:自动类型转换、赋值类型转换、强制类型转换运算符:算术运算符、关系运算符、逻辑运算符、字位运算符、其他常用运算符。1.3概念1.3.1字符集在C语言程序中允许出现的所有基本字符的组合称为C语言的字符集。C语言的字符集就是ASCII字符集,主要包含下列几类:1.大小写英文字母A~Z、a~z(52个);2.数字0~9(10个);3.其它可显示字符(33个);4.转义字符(11个)。在C语言中,有一些不可显示字符。表示这些字符不可直接书写,而是使用反斜杠符号“\”开始并后跟单个字符或若干字符的组合。1.3.2保留字在C语言中有特殊含义的单词称为“保留字”,也称“关键字”,主要用于构成语句。所有保留字均由小写字母组成。C语言保留字共有32个。版权所有,盗版必究南京农业大学工学院林科学编著C语言习题解析第2页1.3.3标识符所谓标识符是指常量、变量、语句标号以及用户自定义函数的名称。作为标识符必须满足以下规则:1标识符必须由字母、下划线或数字(0~9)组成;2标识符的第一个字符可以是字母(a~z,A~Z)或下划线(_);3保留字不能作标识符。温馨提示:C语言是一种大小写敏感的语言。如Test、test是2个不同的标识符。1.3.4数据类型C语言中的数据类型,可以分为基本数据类型和派生数据类型两类。基本数据类型是C语言系统中预定义的内部数据类型,有char、int、float、double、void型。字符型用来存放一个ASCII码字符或一个8位的二进制数;整型用来存放一个整数,实型用来存放实数,双精度型用来存放双精度数。不同的编译系统为各种类型数据分配的内存字节数不同,本书按照TurboC介绍。基本类型可以加某些关键字对其进行修饰:如short表示短,long表示长,signed表示有符号,unsigned表示无符号等。用short、long、unsigned、signed这四个关键字修饰int类型时,int可以省略,例如:unsignedint可简写为unsigned。无修饰词的int类型和char类型,编译程序认为是有符号的。即相当于signedint和signedchar。派生数据类型则是根据用户需要,按照C语言规则由基本数据类型构造出来的数据类型,有指针、数组、结构体、联合体、枚举等类型。这些内容将在后面的章节中进行介绍。每种数据类型表示的数的范围是有限的,当数超过此范围,则会发生溢出,无符号整数的最高位也是数据位,而不是符号位。数据以原码形式存放。例如整数7的原码是(0000000000000111),而二进制的无符号整数(1000000000000000)表示的是整数215。温馨提示:有符号整数的最高位是符号位,最高位为0,表示该数是正数,最高位为1,表示该数是负数。正整数以原码的形式存放。负整数在内存中以整数的“补码”形式存放。求补码的方法如下:先求原码的反码,再在反码上加1,简言为“求反加1”。如1在内存中的形式为(0000000000000001);则1在内存中的形式为先对1求反码,在此基础上加1,即得(1111111111111111)。1.3.5变量在程序执行过程中,其值可以改变的量称为变量。其作用是存储数据。每个变量属于一种类型。每个变量只能存放其类型允许的值。定义格式如下:数据类型变量名1,变量名2,…,变量名n;在一条语句中,可以定义一个变量也可以同时定义若干个变量。变量名作为变量的标识,应是一个合法的C语言标识符。C语言习题解析第3页1.3.6常量在程序运行过程中,值不会被改变的量称之为常量。1.整型常量整型常量是指不含小数点的整数,它可以有正负号。如果是正号,可以省略。十进制整数的表示和日常表示一样,由0~9组成。如:100,34,15等都是十进制数。八进制整数的表示以0开头,由0~7组成。如:012、0456、045都等是八进制数。十六进制整数的表示以0X或0x开头,由0~9,a~f(或A~F)字母组成。如:0x2a、0X123等都是十六进制数。2.实型常量实型常量即实数,也称浮点数。有十进制小数和十进制指数两种表示形式。实型常量可以有正负号。如果是正号,可以省略。十进制小数形式由数字和小数点组成(必须有小数点)。例如:1.25、3.14、0.0、123.9等都是实数。当整数部分或小数部分为0时,可以忽略不写,但不能同时省略。指数形式是指以10的方幂表示的数,也称科学表示法。由小数和指数两部分组成,两者缺一不可。指数部分用e来表示方幂。温馨提示:用指数形式表示小数时,方幂e前后必须是数字,e的前面可以是整数也可以是小数,e后面只能为1~3位整数。例如:1.24e3表示1.24×103,4.3e2表示4.3×102。但1.3e、e2、1.2e3.1等都是不合法的实数。3.字符常量字符常量是用单引号括起来的一个字符,如’e’、’E’。字符常量在内存中以8位的整型常量存放,该整型的值被称为ASCII码。当某些字符不能直接显示或者不能从键盘上输入时,可采取转义字符表示。转义符后若是一个整型常量,则必须是一个以0为前缀的八进制或以x为前缀的十六进制数,其大小在十进制数0~255之间。当为八进制数时,前缀0可以省略。4.字符串常量用一对双引号将0个或若干个字符括起来,称为字符串常量。编译系统在处理字符串常量时,会自动在字符串常量的尾部加上'\0'。5.标识符常量标识符常量是指用一个标识符来表示一个常量。用以增加程序的可阅读性和可维护性。定义标识符常量的格式为:#define标识符常量值define定义的常量,通常被称为宏定义常量。系统在编译程序前,首先对源程序进行预处理,将宏定义中的标识符替换成常量值,并生成临时的中间文件,再对该中间文件进行编译。在宏替换时,只是标识符和常量值之间的简单替换,预处理本身不做任何数据类型和合法性检查。程序运行时也不分配内存空间。C语言习题解析第4页1.3.7运算符及优先级C语言中对数据进行处理,和其他程序设计语言一样,也是通过运算符完成的。运算符是完成对常量、变量等操作对象进行运算的符号。运算符的对象称为操作数。对一个操作数进行运算的称为一元(单目)运算符,对两个操作数进行运算的称为二元(双目)运算符,对三个操作数进行运算的称为三元(三目)运算符。常量、变量等数据通过运算符组合在一起构成了C语言的表达式,每个符合C语言规则的表达式将有一个确定的结果,这个结果的类型一般取决于操作数的类型。当多个运算符组合成一个复合表达式时,运算符的求值次序根据运算符的优先级和结合规则来确定。表11列出了C语言中各种运算符及其优先级。表11C语言运算符及其优先级优先级运算符功能说明结合性1()改变优先级从左至右::作用域运算符[]数组下标.,成员选择2++,增1或减1运算符从右至左&取地址*取内容!逻辑求反~按位求反+,取正、负数()强制类型转换sizeof取所占内存字节数3*,/,%乘法,除法,取余从左至右4+,加法,减法5,左移位,右移位6,=,,=小于,小于等于,大于,大于等于7==,!=相等,不等8&按位与9^按位异或10|按位或11&&逻辑与C语言习题解析第5页12||逻辑或13?:三目运算符从右至左14=,+=,=,*=,/=,%=,&=,^=,!=,=,=赋值运算符15,逗号运算符从左至右1.3.8算术运算符算术运算符包括+(正)、(负)、+(加)、(减)、*(乘)、/(除)、%(取模)。若除法运算符的左右两边操作数是整数,则进行整除运算;只要除法运算符有一个操作数是实数,则进行普通的除法运算;例如:5/4除法两边操作数是整数,进行整除运算,结果为1。5.0/4除法两边操作数不全是整数,进行除法运算,结果为1.25。取模运算符“%”,也即取余运算,两边的操作数必须是整数,其取模结果符号必须与被除数相同。如16%5的值是1,16%5的值是1。算术运算符的优先级和结合性与人们习惯的数学语言中该类运算符的优先级和结合性是基本一致的。若双目运算符两边的类型不一致,则系统将按照自动类型转换规则使两边类型一致后再进行运算。温馨提示:在使用算术运算符时,需要注意有关算术表达式求值溢出的处理问题。整数运算产生溢出时则不认为是一个错误,但这时运算结果已不正确了。1.3.9赋值运算符(1).赋值运算符在C语言中,“=”是一个赋值运算符,它的作用是将一个值或一个表达式的值赋给“=”左边的变量。C语言中的等于是“==”。赋值运算符的左操作数必须是变量,右操作数可以是常量、变量、表达式等。赋值运算符所组成的表达式称为赋值表达式。赋值运算符的优先级较低,仅高于逗号运算符。因此赋值表达式通常先计算赋值运算符右边的表达式,并将结果赋给赋值运算符左边的变量。C语言中的赋值运算符“=”与数学的等号含义截然不同,如i=i+1,数学中是不成立的,但在C语言中表示,i的值加1并重新赋给变量i。温馨提示:赋值表达式本身也是一个表达式,该表达式的值就是赋值的内容。因此,赋值表达式可作为另一个赋值运算符的右操作数,赋值给一个变量,这样就出现多个赋值号的情况,例如“a=b=3”相当于“a=(b=3)”。(2).复合赋值运算符在C语言中,所有的双目算术运算符都可以与赋值运算符组合在一起,构成复合算术赋值运算符。C语言习题解析第6页复合赋值运算符的一般形式为:变量复合赋值运算符表达式它等同于:变量=变量运算符表达式例如:x*=10相当于x=x*10。1.3.10关系运算和逻辑运算(1).C语言的逻辑值关系运算符和逻辑运算符通常用作流程控制语句中的条件描述。但在C语言中,没有专门的逻辑类型。C语言中关系运算符和逻辑运算符的计算结果为整数0和1。1表示逻辑“真”,0表示逻辑“假”。除了整数0和1,其它类型和其它值的变量、常量、表达式也可参与逻辑运算,当值为非0值时,则表示逻辑“真”;若值为0值时,则表示逻辑“假”。(2).关系运算符C语言中有“”(是否小于)、“=”(是否小于或等于)、“”(是否大于)、“=”(是否大于或等于)、“==”(是否等于)、“!=”(是否不等于)六个关系运算符。关系运算符完成两个操作数的比较,结果是一个整数。当比较关系成立时,结果为整数1,关系不成立时,结果为零。注意C语言的赋值运算符“=”与关系运算符“==”的区别。例如x==2表示判断x是否等于2,当x的值为2时,表达式成立,结果为1,当x的值不是2时,表达式不成立,结果为0。而x=2表示将2赋给x,其表达式的值即为赋值的内容2。(3).逻辑运算符C语言中有“&&”(逻辑与)、“||”(逻辑或)和“!”(逻辑非)三种逻辑运算符。其中“!”是单目运算符。逻辑运算符的操作数可以是整数0和1,也可以是0和非0的整数,也可以是任何类型的数据,如字符型、实型或指针型等,但都是以非0为“真”,0为“假”。逻辑表达式计算的结果也是一个整数,当逻辑表达式为真时,结果为整数1,逻辑表达式为假时,结果为0。温馨提示:逻辑表达式在计算时,并不是所有的运算符都会得到执行,而是采用优化算法。其含义是,在求逻辑表达式值的时候,一旦表达式的值能够确定,就不再继续进行计算。换言之,对于“&&”(逻辑与)而言,若左操作数为0,则整个逻辑与表达式为0,不再计算右操作数表达式;对于“||”(逻辑或)而言,若左操作数为1,则整个逻辑或表达式为1,不再计算右操作数表达式。1.3.11字位运算符C语言中的字位运算符可分为字位逻辑运算符、字位移位运算符。C语言中字位逻辑
本文标题:C语言习题解析-含基础知识讲解
链接地址:https://www.777doc.com/doc-4194463 .html