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中的内容,请将语句补充完整。