C语言考试备考
下面对复习备考中的一些技巧和注意事项做个简单陈述,这些是在复习备考中就应该养成的好习惯。
首先,应先打下扎实的C语言基础,对C语言的一些基本结构和用法必须有清晰的了解,本文以谭浩强的《C程序设计》为例,说明各章节在备考机试时应注意的内容。
1、数据类型和各种运算符:这里应该注意变量的使用语法。C语言规定,各种变量在使用前要先定义,但有部分考生受VB或其它语言的影响,在使用前不对变量定义,从而产生错误,不能通过编译环节。还有些考生在定义后,往往对变量不进行初始化,就拿到程序中应用,由于这种作法,并没有语法上的错误,所以C语言的编辑器查不出错误,但是这可能会导致结果与题目要求相差很大,且在考生排除错误时,不容易找出错误的所在。
笔者建议考生,在定义过变量后,应对所有变量进行初始化,以养成好的编程风格,最好定义变量后,在附近代码行中进行初始化。
运算符中要注意赋值运算符“=”和关系运算符“==”的区别,根据人们常有的思维定势,常把数学运算符中的“=”,当做C语言中的关系运算符“==”,例如在一个程序段中,有如下判断语句:
if (表达式1==表达式2)
语句1
……
如果把条件中的“==”误写成“=”,就变成了把表达式2的值赋给表达式1,只要表达式2的值不为零,则条件恒成立,这当然与编写者的意思不符了。
2、C语言的三种常用结构:顺序、选择、循环,顺序结构没什么难点,这里只谈论选择结构和循环结构。
常用的选择语句是if( )语句和switch( )语句,当if( )语句后有多个else时,应当注意else总是与它上面、离它最近的一个if相配对,这点在读、写程序时都应注意。switch( )语句常与case、break等关键字结合使用,应该注意switch(表达式)中的“表达式”,必须有一个定值,即可以是常量、常量表达式、字符常量等,而不能是一个“变动着的值或表达式”;在执行相应的case分支时,如果分支语句后没有出现“break”,则即便case “表达式”中“表达式”的值,与switch(表达式)中“表达式”的值相等,程序也不会跳出分支,仍然会继续逐条的执行。如下段程序输出a的值:
switch(3)
{
case 1 : a=1;
case 3 : a=3;
case 5 : a=5;
}
程序执行后,变量a的值是5,而不是3。
循环应该注意循环条件的设定,一定要度绝死循环,在一些占用内存的操作中,如果出现死循环,则很容易导致死机,在机试考试中出现死机现象,很可能会导致考试的失败。
3、数组:对于数组,上机考试中没有单独考过,但每年的考题中都少不了数组的应用,象一些从文件中读取英文文章,根据行列关系存入二维数组中;读整数存入一维或二维数组中等。对于这类问题,常常需要应试者借助一些中转数组来完成,考生使用自己定义的数组时,应该特别注意一点,数组在定义后一定要初始化,特别对于字符数组,象上面提到的读英文字符串到数组中,如果考生自己定义的数组没有初始化,当定义数组的列数大于字符串的长度时,后面一部分没有初赋值的数组元素将产生乱码或特殊字符,考生可以用memset(string, 0, count)函数来初始化数组,也可用循环语句来初始化数组。
4、函数:三级机试的内容就是编写一个函数,这章的重要性就不用多说了吧,重点很多,教材上讲的很详细,本文只提醒大家一点,考生在解题前应看懂各函数间的互调关系,注意形参和实参的数据类型,确保形参和实参的数据类型一致。
5、指针:指针是C语言的精华,也是机试考查的重点内容,这里应该注意,指针的类型必须与所指元素的类型相同,另外一定要度绝“野指针”的使用,所谓野指针是指指针定义后,在使用之前没有初始化。指针的初始化比变量和数组的初始化更重要,没有初值的指针是很危险的,除了一定得不到正确答案外,当指针越界后,很容易引起死机,如果说死循环带来的死机是“假死”,大部分可以用“Ctrl+C”来恢复,但指针越界引起的死机却是“真死”,很难进行恢复,这点请考生一定牢记。
6、结构体:结构体也是每年必考的内容,题型大多以“产品问题”、“学生问题”的型式来体现。网友在复习结构体一部分内容时,要主意结构体名称和结构体变量之间的区别,当涉及到结构体数组时,应该熟悉结构体元素的调用方法,结构体变量间的赋值、比较方式等。只要将谭浩强《C语言程序设计》教材中本章节的练习作一遍,即可顺利通过此类试题的考试。
7、位运算和文件的读写操作:这部分内容知识面较少,考生只需要了解位的几种特殊运算,文件操作一章中的读文件函数、写文件函数、打开文件函数、关闭文件函数等几个主要函数。