文档介绍:上机考试分三个模块:程序改错、程序填空、编写程序(一般编写一个子函数)
答题技巧:
一、 上机改错题的特点和注意事项
上机改错的试题中通常包含两个(或三个)错误需要修改。
试题中用,,******found******/"来提示在其下一行(或下面第二行)有错。且需要改动的地方也不大。
错误的性质基本分语法错和逻辑错两种,也有些试题要求把语句添加在下划线处。
特别要注意的是:只能在出错的行上进行修改,不要改动程序行的顺序,即此处切忌打破原程序结构, 尤其注意千万不要乱加空行。更不要自己另编程序。由于计算机在评分时是寻找到指定行数后进行对比,倘 若对程序进行了任意添加空行、或重新编写等操作,计算机就会对不上号,自然也无法得分了。
二、 上机改错测试时,建议按以下步骤进行
首先仔细审题,了解试题的要求,看清楚试题给出的输入和输出例示,以便检验改错后程序运行的结 果是否正确。
调出源程序,审视,,/******found******/”所在函数,根据题义理解程序所采用的基本算法,做到心里 有数。
在明确题意的基础上粗读一遍程序,找出明显的错误,如拼写错误等。
再对测试程序进行编译,来检查是否有语法错误。当编译提示有语法错时,可参考编译提示来查找并 改正错误。
当不再出现语法错时,执行该程序,按照试题的示例给出的数据进行试算,若试算的结果与给出的 输出结果相同时,该题就做对了;若试算的结果与给出的输出结果不同,就应进一步检查程序中的逻辑错误。
当程序存在逻辑错误时,这类错误比较难查,因为它并不影响程序运行,此时就考验功力了。一般来 说数组名作为地址名的知识点,还有函数循环的条件、循环次数及起始点的判断;及数组上限下限错误了, 基数是从0开始而不是1开始的等计算方面存在逻辑错误的可能性比较大。此时,首先应当理解题意、读懂 程序的算法,必要时可按步检查数据的流程,以便确定错误所在。例如,题目要求数据按由小到大排序,而 结果数据是按由大到小进行了排序,问题可能出现在条件判断上。又如,输出的字符串比预期的短,就有可 能字符串的结束标志放错了位置。修改程序中的逻辑错时,要求考生认真读懂程序代码。
另外整型相除得整数也要注意!
修改完成,得到正确结果后,一定不要忘记把修改后的程序存盘。
三、 改错题型
字母大写与小写
多分号与少分号
赋值号与等号
丢括号、分号的错误
容易用混的符号
变量初始化错误
数据类型不匹配
边界、条件错误
指针使用错误
逻辑关系错误
程序运算结果错误
在上述各类题型中,循环控制和条件设定考的较多。
1、 改错题
下列给定程序的功能是:读入一个整数(2<=k<=10000),打印它的所有质因子(即所有为素数的因子)。例如, 若输入整数2310,则应输出2、3、5、7、IE
注意,不要改多main函数,不得增行或删行,也不得更改程序的结构!
#include <>
#include <>
IsPrime(int n); 去掉分号
(int i,m;
m=l;
for (i=2; i<n; i++)
if !(n%i) if (!(n%i))
( m=0; break; }
return (m);
}
main()
{ intj,k;
clrscr();
printf(HnPlease enter an integer number between 2 and 10000:");scanf(u%dH,&k);
printf(nnnThe prime factor(s) of %d is (are):",k);
for (j=2;j<=k;j++)
if ((!(k%j))&&(IsPrime(j)) printf("n %4d",j);
printf("n");)
2、 改错
下列给定程序中,函数fun的功能是:逐个比较a、b两个字符串对应位置中的字符,把ASCII值大或等于的 字符一次存放到c数组中,形成一个新的字符串。例如,若a中的字符串为aBCDeFgH,b中的字符串为:ABcd, 则c中的字符串为:aBcdeFgho
注意,不要改多main函数,不得增行或删行,也不得更改程序的结构!
#include <>
#include <>
void; fun(char *p,char *q,char *c) 去分号
(int k=l; 1 改为 0
while(*p!=*q) !=改为 II
{if (*pv*q) c[k]=*q; 小于号改为小于等于
else c[k]=*p;
if (*p) P++;
if (*q) q++;
k