一、注重基础知识学习,进行全面系统的复习
C语言语法灵活,要求考生了解掌握的地方都可能成为考核点,C语言也最富变化,一个填空题可能有几个甚至十几个答案。但是,万变不离其宗,这个"宗"就是"知识点"。《全国计算机等级考试考试大纲(2002年版)》中列出了12个部分的内容,几乎包括了教材中的所有章节。考生在复习备考时,切不可存侥幸心理,认为有些知识有可能不考,或者上次刚刚考过,或者自己一时没有理解,从而放弃复习。
下面是几道考核基本概念的试题,直接考查最基本的"知识点",属于偏容易的试题,但从考试情况看却不很理想。
例1(2002年下选择题第13题)以下选项中合法的用户标识符是
A)long B)_2Test C)3Dmax D)A.dat
这道题考核"用户标识符"的概念。合法的标识符由字母、数字和下划线组成,第一个字符必须为字母或下划线,关键字不能作为用户标识符。由此便可排除A、C和D。该题难度值为0.72。选择A的有13%的考生,原因是他们忽略了long是long int(长整型)的简写,是一个关键字。
直接考核基本概念的试题一般来说都比较简单,若想取得整个试卷的高分,一定要力争全部答对这部分试题。试题的覆盖面较大,广大考生务必要全面系统复习,不应有任何疏漏。
二、加强对知识的理解和运用,融会贯通
知识点总是分布在各个章节中,对知识的学习也是有时间先后的,但一张试卷打破了章节和学习时间的界限,我们不可能首先判断考试内容出自哪章哪节,再寻找解决问题的方法,这就要求在复习阶段培养将知识点联系起来并融会贯通的本领。下面通过试题举例说明这一要求。
例2 (2002年下填空题第10题)以下程序运行后的输出结果是______。
viod fun(int x, int y)
{x = x + y ; y = x - y ; x = x - y ;
printf ( "% d, % d, ", x, y );}
main ( )
{int x = 2, y = 3;
fun (x, y);
printf ("% d, % d" , x, y);}
函数fun的功能是交换两个变量x和y的数值,所以在fun函数中首先输入_____(3, 2),这一步大部分考生都能写对,关键是要看在主函数中的printf输出什么。在C语言中,数据一般只从实参单向传递给形参,形参值的变化不会影响对应的实参,所以尽管在这两个函数中变量名都是X和y,但主函数里x、y的值并没有改变。正确答案是3, 2, 2, 3。本题难度为0.28,反映了70%的考生不能完全理解函数间实参与形参之间数据传递过程。
本题关于考核函数之间数据传递的考题,如果在复习时有意识地将相关联的知识前后联系起来,就可以通过对比深化对知识的理解。类似这样的知识点还有很多,比如:数组形式的字符串和指针方式的字符串等。
三、重视动手实践,提高操作水平
计算机语言类考试考查考生使用该语言在编程方面的基本能力和熟练程度,这个能力包括了阅读程序、编写程序和调试程序的能力。当然,无论纸笔考试还是上机考试都是有时间的要求,考生必须努力提高使用语言编程的熟练程度,才能交一份满意的答卷。
这里所强调的"动手"包括两个方面:一是不能只看不做,要通过一定量的练习题深化对知识的理解。二是必须上机实践,能够独立编写、调试应用程序。这两者都不可缺少。下面两道试题反映了动手实践的重要性。
例3 (2002年下填空题第6题)设有定义:int n, * k=&n;以下语句将利用指针变量k
读写变量n中的内容,请将语句补充完整。
scanf("%d",______ );
printf("%d\n", ______);
本题的定义语句中定义了一个int类型变量n和一个基类型为int类型的指针变量k,并同时给指针变量k赋n的地址作为初值,使k指向变量n。因为scanf函数要求输入项是地址,而k中就是n的地址,因此第一个下划线处应填k,第二个下划线处应填*k。很多考生看到在说明语句中同时出现"*"和"&"就不知如何理解,其实,这是一个给指针变量赋地址初值的基本问题,这两道题的答对率都很低。虽然在教材"指针"这一章的例题中没有给出这类例子,但在教材中有关指针的各章节的习题中就多次出现这类的语句,这样的考核并没有超过大纲的要求。考生能够看懂每章的仅有的几个例题是远远不够的,必须动手做一定量的习题,更有必要上机操作,自己编写程序。