C语言之归纳与总结_第1页
C语言之归纳与总结_第2页
C语言之归纳与总结_第3页
C语言之归纳与总结_第4页
C语言之归纳与总结_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一部分C程序的初步印象1、用C语言是怎么开发软件的C程序的设计,有很多IDE(INTEGRATEDDEVELOPMENTENVIRONMENT集成开发环境)软件,IDE以项目或工程PROJECT)的形式组织并管理设计的每个文件;利用IDE进行C程序开发时,先建工程,再写源程序,然后编译、调试运行,在调试运行过程中不断排查错误,直到符合设计目标为止,最好为每个项目新建一个文件夹;C语言编写的程序称为源程序(性质是文本文件)。源程序的构成语句函数程序;源程序写完后,都是先编译,后链接,最后才能运行(COBJEXE),这个过程也叫构建BUILD,注意C和OBJ文件是无法运行的,只有EXE文件才可以运行单片机为HEX文件。2、C语言书写格式是自由的,每行可以写多个语句,一个语句也可以写成多行。3、C程序的语句有赋值语句、函数调用语句、复合语句、空语句等。一般语句都用分号结束,但复合后不加分号,空语句只是一个,表示什么也不执行。4、一个C语言程序有且只有一个MAIN函数,程序总是从MAIN开始运行,其它函数都由MAIN函数直接或间接调用,中断函数是个例外,它是由硬件激活并自动执行的。5、编译预处理命令以开头,不是C语言的一部分,不占运行时间,后面不要加分号DEFINEPI31415926这个写法是错误的,不能加分号6、程序中可以通过注释增加程序的可读性,也便于分析和理解,2种注释方法行注释实例/俺是注释文字块注释实例/俺也是注释文字/注释语句不是有效的C程序执行语句,不生成运行代码、不占运行时间,不需要分号,不可以嵌套注释7、库函数也不是C语言的一部分,它们是随IDE一起提供(称标准库函数),用户也可编写自己的库函数,还可添加第3方函数库。第二部分C语言中的数(1)基础知识计算机内的数据是以二进制的形式存储并处理的,数据存放在存储器中,其存放位置被线性编址,称为数据的地址,BIT是位能表示并存储数据0或1。BYTE是指字节,1BYTE8BITS字节是计算机内数据的基本存储单位,不管多么复杂的数,都是根据特定的编码以字节为单位进行存储的。一、数据类型1、基本类型(字符、整数、实数)定义数据时使用的关键字类型定义CHAR、INT、FLOAT、DOUBLE、LONG、SHORT、SIGNED、UNSIGNED存储方式CONST、STATIC、AUTO、REGISTER2、派生类型(数组,枚举、指针内容略)数组的定义与初始化方法,数组元素的引用、字符数组和字符串3、构造类型(STRUCT、UNION内容略)二、常量、变量与标识符1、标识符(必考内容)C语言的标识符要求是由字母,数字,下划线组成,有其它符号便错了,用汉字更是大错特错并且第一个必须为字母或则是下划线,第一个为数字就错了2、标识符分为预定义标识符、用户标识符。预定义标识符是开发环境已定义并使用了的名字,包括预编译命令和库函数等,如INCLUDE、DEFINE、SCANF、PRINTF、MAIN,在不冲突的前提下预定义标识符可以做为用户标识符。用户标识符是编程者给变量和函数的命名,怎么取名什么名字合法或不合法基本上C试题必考。关键字不可以作为用户标识符号,C语言是大小写敏感的,容易迷惑的是FOR可以做用户标识符。因为FOR和FOR不同,FOR不是关键字。三、数据表示与所占存储单元1)C语言中数可用八、十、十六进制表示,没有二进制。但是程序经编译后,运行时所有的进制的数都被转换成二进制形式来进行处理(原因很简单,电子计算机只能存储并处理二进制数)。A、C语言中的八进制规定要以0开头。068的数值是非法的,八进制是没有8的,逢8进1B、C语言中的十六进制规定要以0X开头,数字除09外,还有AF(可用小写AF)C、程序中的数用什么进制一般原则是便于直观理解,PC端程序员习惯用十进制,而嵌入式程序开发习惯用十六进制的方式来写,因此对数制间的转换必须熟悉掌握。2)实型数据有2种写法2345E1是合法的,且数据是2345101。3)整型一般是2或4个字节,字符型是1个字节,双精度一般是8个字节。特别强调1、数制只是数的表示形式,数在计算机中全部是二进制的,无一例外2、任何数据类型都有范围限制,超过其范围数据处理就会完全错了四、全局变量和局部变量全局变量定义在函数的外部,所有函数都可使用,在程序运行时一直在内存中。局部变量定义在函数的内部(包括形参),在函数调用时才临时地分配存储位置,在函数调用结束后,即自动地清除了。全局变量和局部变量可以同名,优先引用函数内部的局部变量。五、字符计算机中,字符是以编码的形式表示、存储并处理的。编码标准不同,字符对应的数据也不同。(WINOWS系统中,默认WINDOWS936,ASCII,LINUX系统中默认UTF8或UTF16)1)字符数据的合法形式1是字符占一个字节,“1“是字符串占两个字节含有一个结束符号0。0的ASCII编码为48,A的ASCII编码是97,A的ASCII编码是65。一般考试表示单个字符错误的形式65“1“字符是可以进行算术运算的,记住A32A;AA大写字母和小写字母转换的方法A32A相互之间相差32。2)转义字符转义字符分为一般转义字符、八进制转义字符、十六进制转义字符。一般转义字符记住0、N、T、A、R。八进制转义字符141是合法的,前导的0不能写。十六进制转义字符X6D才是合法的,前导的0不能写,并且X是小写。3)字符型和整数是近亲因为字符在计算机内是以编码存储的,两种类型具有很大的相似之处CHARA65PRINTFC,D,A,A得到的输出结果A,65SCANFC,D,输入1,14)关于汉字文字的编码实际上是所有程序员都纠结的一个问题,因为存在着不同的系统环境和编码标准,文字的处理常常容易出现乱码现象。记住在WINDOWS系统中汉字的编码一般采用GBK标准,一个汉字用2个字节编码并存储,这和C的字符类型是不同的,因此汉字在C语言中,只能以字符串的形式进行处理。六、如何实现两个变量X,Y中数值的互换不可以把XY,YX要用中间变量TX;XY;YT;在对数据排序时,总会进行数组元素的交换TAI1AI1AIAIT第二部分C语言中的数(2)数组是多个同类型数据的有序集合。数组中存放的数据类型是一致的,数组元素的存储地址是连续的。(和数学中的数组进行比较)对INTA10,A表示数组名,在程序中也代表数组的地址,也等于元素A0的地址。1、一维数组的初始化INTA51,2,3,4,5合法INTA51,2,3合法INTA1,2,3,4,5合法,后面决定前面的大小INTA51,2,3,4,5,6不合法,赋值的个数多于数组的个数了,同样CHARA9”MAYITBE”也错了,想想为什么(这常常考)2、一维数组的定义;注意这个地方有一个重要考点,定义时数组的个数不能是变量,一定要是常量INTA5合法,最正常的数组INTA11合法,个数是常量2,是个算术表达式INTA1/24合法,同样是算术表达式INTX5,INTAX不合法,因为个数是X,是个变量,非法的DEFINEP5INTAP合法,DEFINE后的的P是符号常量3、二维数组的初始化INTA231,2,3,4,5,6合法,很标准的二维数组的赋值方法INTA231,2,3,4,5合法,后面一个默认为0。INTA231,2,3,4,5,6合法,每行三个。INTA231,2,3,4,5合法,第一行最后一个默认为0。INTA231,2,3,4,5,6,7不合法,赋值的个数多余数组的个数了。INTA31,2,3,4,5,6合法,可以缺省行的个数。INTA21,2,3,4,5,6不合法,不可以缺省列的个数。关于一维和二维的数组的初始化,对维数的指定一维可以不写,二维第二个一定要写,如INTA1,2合法,INTA42,3,4合法,但INTA42,3,4非法。关于数组的操作,不能整体进行,只能通过数组的下标来一个个元素处理。4、字符数组与字符串记住字符串后必须有结束标志0,它也占用一个存储字节字符串的输入与输出SCANF、GETS、PRINTF、PUTS在C程序中,字符串的整体操作,只能通过函数进行。不能STR1STR2应该用STRCPYSTR1,STR2不能IFSTR1STR2,应该用IFSTRCMPSTR1,STR20用C语言处理文字信息是不是很麻烦答案是的,但C、C通过类或运算符重载等形式,已能轻松地处理字符数据了,如果你对此好奇,请继续努力,向C进军吧第三部分运算符、表达式和语句(1)一、算术运算符与算术表达式1、算术表达式,/,考试一定要注意/两边都是整型的话,结果就是一个整型。3/2的结果就是1/如果有一边是小数,那么结果就是小数。3/20的结果就是05符号注意是余数,符号两边要求是整数。不是整数就错了。2、赋值表达式表达式数值是最左边的数值INTXY10错啦,定义时,不可以连续赋值。INTX,YXY10对的,定义完成后,可以连续赋值。赋值的左边只能是一个变量。INTX77;对的,X就是7,编译程序会自动取整处理FLOATY7;对的,X就是703、自加、自减表达式自加、自减表达式假设A5,A;A;运行的机理A是先把变量的数值加上1,然后把得到的数值放到变量A中,然后再用A的值,而A是先用A的值,然后再把A的数值加上1。IFA5X1IFA5X1记忆口诀在前先加后用,在后先用后加。二、关系运算符与关系表达式、逻辑表达式本节知识点C语言中是用非0表示逻辑真的,用0表示逻辑假。对关系运算符号注意,8这个关系表达式是真的,所以98这个表达式的数值就是1。如7PUTCHARA这2个函数只能对字符串和字符型的数据进行输出,对INT、FLOAT不适用。PUTCHAR汉是错的,要用PUTS汉想想为什么二、数据输入1、SCANF(AD,BD,SCANF(S,SS);正确,SCANF(S,本函数连续读取键盘输入的字符直到碰上回车符,把输入的字符序列放入SS数组,回车符不保存,但在字符后会自动加0。三、输入输出辅助函数1、清屏操作SYSTEMCLS2、设置屏幕颜色SYSTEMCOLOR3F3F是16进制表示的数,高4位为背景色,低4位是前景色4个进制位定义颜色,分别对应为高亮红绿蓝3、清空键盘缓冲区函数SETBUFSTDIN,NULL或FFLUSHSTDIN第五部分运算符、表达式和语句(2)本部分内容程序的选择结构、条件语句一、IFELSE条件语句A、IF、ELSE只执行后面的一条语句,如果执行的不只一条,要用将它们括起来,构成一条复合语句,复合语句后面不要加分号。IF(AC)PRINTFOK;多选一的IF语句IF(AT)PRINTFAELSEIF(BT)PRINTFBELSEIF(CT)PRINTFCELSEPRITNFD经典考题结合上面四种IF语句题型做题,请问B的值是多少INTA1,B0;IF(A)B;ELSEIF(A0)IF(A)B2;ELSEB3;二、条件表达式表达式1表达式2表达式3A、记忆口诀真前假后。B、注意是当表达式1的数值是非0时,才采用表达式2的数值做为整个运算结果,当表达式1的数值为0时,就用表达式3的数值做为整个的结果。C、INTA1,B2,C3,D4;KABCD求K的数值时多少答案为三、SWITCH语句A多分枝处理语句,语句的结构和执行的流程一定要弄懂B)注意有BREAK和没有BREAK的差别,没有BREAK时候,只要有一个CASE匹配了,剩下的都要执行,有BREAK则是直接跳出了SWITCH语句。BREAK的意思是打断、中止。CSWITCH只可以和BREAK一起用,不可以和CONTINUE用。DSWITCHXX是整型、字符型变量或表达式,其运算结果是整数。CASE1CASE后是常量,不可以是变量,常量后面是冒号,不是分号CASE2DEFAULT没有列出的值,全部在这里处理E)SWITCH可以用IFELSEIFELSE这种结构来替代,但显然这种场合用SWITCH更直观。条件语句所用的关键字IF、ELSE、SWITCH、CASE、BREAK、DEFAULT、GOTO,注意条件语句中不可使用CONTINUE第六部分运算符、表达式和语句(3)本部分内容程序的循环结构、循环语句一、三种循环结构A)FOR()WHILEDOWHILE三种。B)FOR循环括号中的表达式可以没有,但当中必须是两个分号,千万不要写成逗号。C)写程序的时候一定要注意,循环一定要有结束的条件,否则成了死循环(无限循环)。DDOWHILE循环是至少执行一次的循环,WHILE后的分号一定不能够丢。E记住循环语句中的关键字FOR、WHILE、DO、BREAK、CONTINUE、GOTO二、BREAK和CONTINUE的差别BREAK和CONTINUE一般都是在IF语句后使用,有条件地对循环的执行流程进行控制,但它们有显著的区别,记忆方法BREAK是中止的意思,用BREAK就彻底退出本层循环。CONTINUE是继续的意思,意指结束本次循环并继续下一轮循环,CONTIUNE后面的语句不再执行,直接转到循环开始,进行新一轮的循环。三、嵌套循环就是在外层循环里面还有内层循环,这种程序执行比较复杂,要一层一层地进行分析,一般用于对二维数组进行处理,或对数组元素进行排序等操作。记住以下打印九九乘法表的程序FORI1IYXY;VOIDMAIN()INTSUM,X3;SUMMAX(MAX(7,8),X9);请问SUM的结果是多少7、一定要注意参数之间的传递实参和形参之间传数值,和传地址的差别。(考试重点)传数值的话,形参的变化不会改变实参的变化,传地址的话,形参的变化就会有可能改变实参的变化。8、函数声明的考查一定要有函数名,函数的返回类型,函数的参数类型,不一定要有形参的名称。想想以下函数声明怎么写INTFUNC(INTA,INTB)INTIFORI0IAIBRETURNBINTFUNC(INTA,INTB)这种写法是正确的(复制函数定义的头行,后面加个分号)INTFUNC(INTX,INTY)这种写法是正确的,参数的名称可以随便写INTFUNC(INT,INT)这种写法也是正确的,参数的名称可以不写INTFUNC(CHAR,INT)这种写法错了,参数的类型必须相同教后记她似乎长着西方人的面孔,但她天生秉承着唐诗宋词的风韵,她讷于言谈,却敏于表达,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论