2015年下半年全国计算机三级考试答题技巧
1.单项选择题
试题中的单项选择题中的多数试题涉及整本教材介绍的概念和知识点。为解答这类试题,要求考生要熟练地掌握和熟记大纲中指出的“识记”和“领会”的内容。考生应摘出教材中有关C语言的重要概念、定义、有关语言成分性质的叙述,对它们深入的理解和熟记,并对语言的一些基本规定能作简单的应用。清考生注意,理解、熟记和大段地背诵的区别。由于考题表现形式的多样性,理解是最重要的,仅对关键性的概念才有准确熟记的必要,多数的概念因是理解,并要求能熟练应用。试题通常要求对某个概念、术语或计算结果作出判断,或对一些规定作简单的应用等。由于计算机科学是一门新兴学科,许多概念还没有唯一性的定义,不同书籍由于出发点或论述领域不同,同一概念会有不同的说法,为此考生在复习迎考时,不要脱离指定自学考试教材,而从其它教材出发进行复习。
【例1】设有以下代码定义字符数组c和字符指针变量pc:
char c[10]=“abed”,*pc=c;
问*(pc+4)的值。供选择的答案有:
①“abcd‘ ②’\0‘ ③ ’ d‘ ④不能确定
上述代码使字符数组c的前5个元素依次为:c[0]=‘a’c[1]=‘b’, c=‘c’, c= ‘d’,c=‘\0’。初始化pc=c使字符指针变量pc指向c数组的首元素c[0].而表达式pc+4的值是c的指针。因此,表达式*(pc+4)就是引用c.所以问题的解答为②。
2.填充题
填充题要考核的内容与选择题的考核内容基本相同,但考核的形式不同。填充题的试题多数是从基本概念儿语言关于数据类型、程序对象、程序结构等的规定、C程序设计基本技巧等引伸的具体应用。如C语言规定每个字符占一个字节,每个字符串除存储它所包含的字符外,在字符串最后一个字符之后还存有一个字符串结束符。对于这样两个基本概念和规定,填充题可能是问具体的一个字符和一个字符串各占多少个字节等。因填充题是概念或规定的具体应用,解答的难度也就比选择题的要大,不可能有猜得分的机会。
【例2】下列函数的功能是统计并返回形参指针S所指向的字符串所含字符‘A’的个数。试完成程序,写出应填写在程序空框中的代码。
int counts(char *s)
{ int n;
for( n=0;。 ; s++)
if(*s==‘A’)n++;
return n;}
为统计字符指针s所指字符串包含的某字符的出现次数,必须用一个循环顺序考察整个字符串。由从指针s所指字符串的首字符开始,每考察一个字符后,指针s后移一个字符位置,考察循环直至字符率结束终止。所以填写在空框中的正确代码可写成* S! =‘\ 0’。由于字符串束符‘\ 0’的代码为 8位全0,其值为 0,正确解答也可写成* S!= 0,或更简洁地写成*s.
3.程序分析题
程序分析题要求考生阅读程序,回答程序的输出结果,或指出程序的功能。回答这类问题,要求考生将自己当作一台假想的计算机,模拟执行序。
对于这类试题常有两种可用的方法。一是从程序的初值、循环结构、条件等发现程序的规律厂是完全从模拟执行出发读程序,求出程序的输出结果。如采用后一种方法,由于程序执行的`动态性,程序中的有关变量,随着程序的执行,变量的值就会不断变化。一般来说,随时记住全部变量的当前值是非常困难的。一个行之有效的方法是用一个变量表,将程序中的全部变量罗列在该表中,某个变量值的变化记录在该变量当前值的栏中,这样就能方便地列出各个变量的动态变化过程。在这里,考生要当心函数形参及函数的局部变量与实参变量及程序的外部全局变量同名的情况。为了区别它们,对于函数形参和局部变量可以标上它所属的函数名,以与同名的实参变量及外部全局变量相区别。由于试题程序总是完成某种有一定意义的计算工作。一般来说,程序的执行过程舍有某种规律存在。如能找出程序的规律,就不需要逐句阅读程序的语句,能直接导出程序的结果。程序的规律从以下几个方面着手:有关变量的初值,特别是数组的初值;程序的循环控制结构,特别是遍历数组的循环,它的循环控制变量将控制数组元素下标的变化;循环体中的语句的条件,一般条件有两种形式,一种是由数组元素值的大小描述,另一种是由元素的下标值描述,前者用于对其值满足某种条件的元素进行指定的计算,后者用于对满足条件的某些位置上的元素进行指定的计算。
最容易出题,变化也最多的是数组(包括字符串)处理程序,正确解答这类试题要熟练掌握两点:一是引用数组元素的两个等价方法,即用数组首元素指针(数组名)和下标引用数组元素,及通过指向数组元素的指针间接引用数组的元素;二是一些常用的简单算法,如数组或字符串遍历、插入元素或删除元素,以及常用的排序方法等。对于文件处理程序,要注意文件当前的读/写位置,即对于读文件,注意当前读人的数据及前读头位置;对于写文件,要注意当前写入的数据。另外要特别指出的是,通过读程序,能发现程序执行的规律是非常有用的技术。但这个技术的掌握是建立在熟读大量的程序和自己编写过大量程序的基础上的。如一个程序是对数组的前n个元素执行某种操作。考生在阅读这种程序时,不妨假定输入的n值为4或5,将n等于4或5的结果类推到任意的n.
【例3】阅读下列程序,写出程序运行后的输出结果。
# include main()
{int a[]={1,2,3,4,5,6,7,8,9};
int i,j,s1= 0,s2= 0;
for(i= 0;i=s;p——) print(“%d”,*p);
printf(“\n );}
程序中定义的变量i用于循环控制,数组S用于存储读人的整数,指针变量p的初值指向数组S的末元素。程序的第一个循环用于顺序输入数组S的10个元素的情。从程序的第二个循环代码知,每循环一次,指针p减1,即指向数组的前一个元素,循环条件直至循环处理了数组的首元素后结束,循环体只是简单地输出指针当前所指的数组元素。所以该循环实现从数组的末元素开始逆序遍历数组输出。这样程序的功能可简述
“顺序输入10个整数,并逆序输出它们的值。”