Chinaunix首页 | 论坛 | 博客
  • 博客访问: 104614009
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: C/C++

2008-04-17 16:55:12



  计算机等级考试改革后,三级考试由A、B两类改为PC技术、数据库技术、网络技术、信息管理技术四类。其后三类的上机考试内容均为C语言程序设计。

  三级上机不同于二级,它只有一道编程题,风险更大。但只要能达到题目的要求,一般都能拿到3分。
 
  参加过考试的人都应该知道一本书——南开大学出版的《全国计算机等级考试·上机考试习题集》,这本书基本上包含了所有的上机考试题目类型。这本书里一共有100道题,都很经典。但也许有人会觉得太多了,没时间看完所有的题目。下面我给大家介绍一个复习技巧。

  简化问题

  每道试题的程序都很长,而且涉及的知识点很多。实际上,在考试时看完全部程序并没有必要。每次只用把主要精力放在子程序的编制上,认真思考其“功能要求”。所以平时我们只用关注需要编制的子程序。

  试题归类

  要学会找出题目之间的规律,复习起来就会事半功倍。在一百道题目中,实际上只需要仔细分析其中的二十多道题就足够了,其他的只用看一下就行。因为大部分的题目都是类似的,总结出规律来之后,我们可以举一反三。例如下面两类题目:

  例1. (占题库10%)已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)几部分组成。其中:金额=单价×数量可计算得出。函数ReadDat()的功能是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按产品代码从大到小进行排列,若产品代码相同,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT10.DAT中。

  程序:void SortDat( )

   {int I,J;

   PRO xy;

   for (I=0;I<100;I++)

   {if (strcmp(sell[I].dm,sell[J].dm)<0)①

   { xy=sell[I];

   sell[I]=sell[J];

   sell[J]=xy; }

   else if (strcmp(sell[I].dm,sell[J].dm)==0)②

   if (sell[I].je

   { xy=sell[I];

   sell[I]=sell[J];

   sell[J]=xy;}

   }

   }

  分析:这类程序题目的关键部分在于①、②、③三句上。它们的作用就是给出调换记录次序的条件。与其类似的题目只是在功能要求上有所不同(例如把“从大到小”改为“从小到大”,把“产品代码”换成“产品名称”等),所以我们只需要修改这三句。如果我们抽到的题目是“金额从小到大,如相同,则产品名称从大到小”,我们就将

  ①改为:if (sell[I].je>sell[J].je)

  ②改为:else if (sell[I].je= =sell[J].je)

  ③改为:if (strcmp(sell[I].mc,sell[J].mc)<0)

  而对于将记录次序进行调换的程序xy=sell[I]、sell[I]=sell[J]、sell[J]=xy,我们只需要套用就行。

  例2. (占题库10%)函数ReadDat()的功能是实现从文件ENG.IN中读取一篇英文文章,存入大字符串数组xx中;请编制函数encryptChar(),按给定的代替关系对数组xx中的所有字符进行代替,仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS1.DAT中。

  代替关系:f(p)=p*11 mod 256。其中p是数组xx中某一个字符的ASCII值,f(p)是计算后的新字符的ASCII值,如果计算后f (p)的值小于等于32或大于130,则该字符不变,否则将f(p)所对应的字符进行代替。

  程序:void encryptChar()

   { int I;

   char *pf;

   for (I=0;I

   { pf=xx[I];

   while(*pf!=0)

   { if(*pf*11%256>130||*pf*11%256<=32)①

   { pf++;

   continue;}

   *pf=*pf*11%256;

   pf++;

   } 

   }

   }

  分析:这一类题目较例1更为简单,其关键只有①一句,它是对条件“如果计算后f(p)的值小于等于32或大于130”的描述。上机考试中类似的题目可能只对这个条件作少许变动。例如:“如果原字符是大写字母或计算后f(p)的值小于等于32”,则只需把①改为:if ((*pf>=`A`&&&&*pf<=`Z`)||*pf*11%256<=32)

  其他试题也可以按照上述方法进行总结。总而言之,对于三级上机考试,我们不仅要提高编程能力,还应该注意分析试题,寻找规律,用更少的时间和精力解决更多的问题!
阅读(168) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~