计算机二级考试C语言答题注意事项
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机二级考试C语言答题注意事项
基本原则是计划好做题的时间,不要急燥,保持稳定的答题速度,应将熟悉的、会做的、容易的先做。
选择题和操作题在进行的过程中,都一定要看清题目,审好题,弄清题目要考核的知识点,能够迅速回忆相关的知识,综合运用平时上课老师所教授的做题的方法和技巧,进行答题。
10分
例如:以下C语言用户标识符中,不合法的是
A)_1B)AaBc C)a_b D)a—b
这个题目是考核的是标识符的命名规则的问题,我们知道C中合法的标识符必须以字母、下划线开头,由字母、数字、下划线组成,据此应该选择D。
再如:有以下程序
#include
main()
{int a=1,b=0;
if(!a) b++;
else if(a==0)if(a)b+=2;
else b+=3;
printf(”%d\n”,b);
}
程序运行后的输出结果是
A)0B)1C)2D)3
这个题目考核选择结构的控制流程。
题目采用的是else~if结构,实际上是if的嵌套。
不管怎样,始终牢记这种嵌套的if语句的执行流程:从上向下逐一对if后的表达式进行检测。
当某一个表达式的值为非0时,就执行与此有关子句中的语句,其余部分不执行,直接越过去。
如果所有表达式的值都为0,则执行最后的else子句。
当执行以上程序时,首先定义a、b并赋初值1、0,然后进入if语句。
当从上向下逐一检测时,!a 的值为0,则越过b++,进入else 后的if语句,检测到a= =0的值为0,则越过
if(a)b+=2;语句,因为前面所有if子句中的表达式的值都为0,因此执行最后else子句中的语句b+=3,求出b为3,然后退出if结构,接着输出b的值,所以选择D。
(3)选择题(21)-(40),这20个都有一定难度,涉及C后面的章节,如函数、数组、指针、字符串、结构体、预处理等内容,有部分都会给定出一段代码,根据代码做选择,因此,需要读懂C的简单代码然后做了选择。
例如:有以下程序(函数fun只对下标为偶数的元素进行操作)
# include<stdio.h>
void fun(int *a;int n)
{int i,j,k,t;
for (i=0;i<n-1;i+=2)
{k=i;
for(j=i;ja[k])k=j;
t=a[i];a[i]=a[k];a[k]=t;
}}
main()
{int aa「10」={1,2,3,4,5,6,7},i;
fun(aa,7);
for(i=0;i<7;i++)printf(”%d,”,aa[i]));
printf(”\n”);
}
程序运行后的输出结果是
A)7,2,5,4,3,6,1B)1,6,3,4,5,2,7
C)7,6,5,4,3,2,1D)1,7,3,5,6;2,1
通过对代码的阅读,采用模拟运行的方法,可知此题的算法是将数组元素中偶数下标的元素进行从大到小的排序,它使用的是选择排序法。
因为数组的初始值为a下标:0 1 2 3 4 5 6
所以很快就可以选择出答案是A。
(4)填空题仔细读题、审题,理解考题考核知识点,回忆相关知识。
牵涉到程序填空的题目,也需读得懂C程序,还需判断出题意图,弄清程序功能,找到编程的思路,才能填好空要。
难度较高。
如:以下程序的功能是:借助指针变量找出数组元素中最大值所在的位置并输出该最大值。
请在输出语句中填写代表最大值的输出项。
#include <stdio.h>
main()
{int a〔10],*p,*s;
for(p=a;p-a<10;p++)scanf(”%d”,p);
for(p=a,s=a;p-a<10;p++)if(*p>*s)s=p;
printf("max=%d\n”,【14】);
}
这个题目是利用指针对数组元素求最大值的算法。
此题采用的算法是使s指针总是指向
最大值。
刚开始时,假设s 指向第一个元素,p是工作指针,也指向第一个元素,然后进行*p>*s的比较,若满足条件,说明s所指的元素不是最大的,就执行s=p;将当前最大值的地址p赋给s,保证s所指的元素是当前最大的;若不满足条件,说明s所指的元素已经是当前最大的,不论是什么情况,都让p向下移动,使其指向数组中的下一个元素,重复进行*p>*s 的比较,直至数组中所有元素都与s所指的元素完成比较,最后,s必然指向的是数组中的最大值,*s表示对应的最大值,所以【14】处填*s。
(5)另外笔试中还可以使用如排除法、猜测法等方法进行答题。
例如:下列语句组中,正确的是:
A)char *s;s="Olympic";B)char s[7];s="Olympic";
C)char *s;s={"Olympic"}; D)char s[7];s={"Olympic"};
此题目是考查对字符数组和字符指针赋值的知识。
我们知道,数组名是一个地址常量,常量是不能被赋值的,所以马上可以排除B和D。
字符指针是可以直接被字符串常量赋值的,由于字符串常量是以双引号做定界符的,所以排除C,故最后选择A。
再如:若变量已正确定义,在if (W)printf(“%d\n,k”);中,以下不可替代W的是A)a<>b+c B)ch=getchar()C)a= =b+c D)a++
这个题目考核的是C的运算符及其表达式,如果对运算符熟悉的话,很快就能找到答案是A。
因为C中根本不存在<>这样的运算符。
这里采用的也是排除法。
再看:以下程序打开新文件f.txt,并调用字符输出函数将a数组中的字符写入其中,请填空。
#include <stdio.h>
main()
{【15】*fp;
char a[5]={’1’,’2’,’3’,’4’,’5’},I;
fp=fopen(”f.txt”,”w”);
for(i=0;i<5;i++)fputc(a[i],fp);
fclose(fp);
}
完成此题可以采用猜测法,因为我们看到在题目中使用:
fp=fopen(”f.txt”,”w”); fputc(a[i],fp); fclose(fp);语句,就能马上猜到fp是一个文件类型的指针,是对文件进行操作,所以【15】应该填写FILE。
2.上机考试答题策略与技巧
(1)总体上讲,登录成功后,上机考试的要点是:
●按S键,考试开始自动计时,系统自动进入考生子目录,答题在此子目录下完成;
●答题过程中千万不要离开考生子目录;
●任何时候,按F12键可看到考试题目;
●当屏幕上显示所剩时间时,按任意键可以继续答题;
●当考试结束前,应检查自己的考试内容是否存盘;
●考试期间遇到死机等特殊情况,应请监考人员处理,不要随意关机;
●考试时间到时,机器自动关闭;
●注意一些常用的算法:判断素数、求最大公约数、排序、数组元素求最大值及其下标或位置、字符串的拷贝、连接、文件的读写等;
●注意函数的定义格式,函数调用的格式、方法等;
●别忘了做不出来的时候有msdn,联机帮助这是允许的。
但你没有用过的话可能一时
摸不着门道,可能浪费时间,自己把握好啊。
●调试程序的时候可以自己设变量,可以用printf函数显示中间值,看正不正确,正常后记得去掉多余的语句。
(2)针对具体的题型:
●程序填空题
程序填空考核对程序的整体把握,出题点可能是:for循环语句的初始化或条件判断、函数返回值、if语句的条件判断、链表中指针如何移动、文件操作相关函数的参数等。
解题方法:先读懂源程序,了解程序的功能,然后试着边填空边调试,分析输出结果,以找到正确的解。
特别要注意的是:只能在填空的位置填写语句或表达式,不要增行或删行,不要改动程序行的顺序,更不要改动程序的结构。
程序填空时,可采用下面的步骤完成(实际上在前面我讲过的):
·首先仔细审题,了解试题的要求,看清楚试题给出的输入和输出示例,以便检验程序运行的结果是否正确。
·仔细阅读"/******found******/"所在函数,根据题义理解程序所采用的基本算法。
·填好空后,进行程序测试,检查是否有语法错误。
当出现语法错时,可参考编译提示来查找并改正错误。
·当没有语法错时,则以试题的示例中给出的数据进行试算,执行程序,若试算的结果与给出的输出结果相同时,该题就作对了;否则,应进一步检查程序中的逻辑错误。
·得到正确结果后,把修改好的程序存盘。
●程序修改题
程序修改题的错误的性质基本分语法错和逻辑错两种。
要注意的是:只能在出错的行上进行修改,不要改动程序行的顺序,更不要自己另编程序。
解题方法:边调试边找错,分析输出,找出并改正错误。
上机改错测试时,可采用下面的步骤完成:
·首先仔细审题,了解试题的要求,看清楚试题给出的输入和输出例示,以便检验改错后程序运行的结果是否正确。
·仔细阅读"/******found******/"所在函数,根据题义理解程序所采用的基本算法。
·先对测试程序进行语法错误的检查。
当有语法错时,可根据编译提示来查找并改正错误。
·当没有语法错时,则以试题的示例中给出的数据进行试算,执行程序,若试算的结果与给出的输出结果相同时,该题就作对了;否则,应进一步检查程序中的逻辑错误。
·如果程序存在逻辑错误时,首先应当理解题意、读懂程序的算法,必要时可按步检查数据的流程,以便确定错误所在。
例如数组上限下限发生了错误,基数是从0开始而不是1开始等。
修改程序中的逻辑错时,要求考生认真读懂程序代码。
·修改完成后将程序存盘。
●程序设计题
进行编程测试时,可以按以下步骤完成:
·首先仔细审题,了解试题的要求,记下试题给出的示例,以便检验程序运行的结果是否正确。
·调出源程序后,对照函数首部的形参,仔细阅读主函数中调用函数时的实参内容,以便确定在函数中需要处理的数据对象。
·理解试题的要求,仔细阅读主函数中调用函数的方式,若在表达式中调用函数(如把函
数值赋给某个对象),则要求有函数值返回,要注意函数的类型,并在函数中用return语句返回函数值;若主函数中仅用语句形式调用函数,则需要通过形参间接地返回所得结果。
·选择适当的算法进行编程,输入程序语句并及时存盘。
·编译程序,直到没有语法错误。
·调试程序,利用试题中给出的示例数据进行输入(若要求输入的话),运行程序,用例示的输出数据检验输出结果,直到结果相同。