2011年计算机等级考试考前必读:上机注意事项

来源:计算机等级考试    发布时间:2012-08-28    计算机等级考试视频    评论

  大家看到了,南开的结果是负数,连原来的变量nk都变成了负数,这显然错了。

  聪明一点,知道int比char大,定义了个int,对了。

  错误原因就是在TC2.0中char型变量只有一个字节,根本容纳不下'E'*11,

  所以产生了溢出,上次考这道题目没过的同学是不是有所启发呢?

  这里给出考试中心命题组的答案:

  void encryptChar(){

  int i,k,ch;

  for(i=0;i for(k=0;k ch=xx[i][k];

  ch=(ch*11)%6;

  if(!(ch<=32||ch>=130))xx[i][k]=ch;

  }

  }

  似乎一个例子不能说明什么,那就把上面的数字题目的答案给大家看看:

  考试中心命题组23题答案:

  int i;

  long val;

  float dec;

  for(i=0;i val=(long)xx[i];

  aver+=xx[i]-val;

  }

  aver/=(double)N;

  for(i=0;i val=(long)xx[i];

  dec=xx[i]-val;

  if(dec>aver){

  sumint+=val;

  sumdec+=(xx[i]-val);

  }

  }

  看到了吧,首先,val的定义,不是我们习惯的int,而是能容纳更大数的 long ,

  这样在求和的时候就不会溢出,无忧和南开的答案没有吧

  再看,算aver平均值的细节,不是我们平常习惯的aver/=N,更不是无忧的1.0* sum/N,

  而是aver/=(double)N,所以大家在考试的时候要时刻注意你的变量类型,特别是在一些求平均值的题目中,千万要注意,用sum/n的时候,sum的类型一定不要用整形。

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答