主页 > 教育培训 > 电脑培训 > 正文

全国计算机等级考试:上机注意事项(2)

[作者:何木]
2011-03-17 11:30

       第二条:一定要考虑除零、溢出、类型转换、精度等细节问题!

  虽然我们在平时学C语言的时候老师都提醒过,可是真正到了编程序的时候,却没有几个人会考虑。这些细节问题似乎并不直接影响题目的输出结果,

然而,因为溢出和类型转换错误而造成考试得不到满分的可是大有人在啊! 我们看下面一道最害人的题目!,很多朋友考了这道题目都没有过。

  下面来看看你为什么是0分!

  考试中心命题组64题:

  请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,

  仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS8.DAT中。

  替代关系:f(p)=p*11 mod 256 (p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),

  如果原字符小于等于32或大于130,则该字符不变,否则将f(p)所对应的字符进行替代。

  这道题目所有的人都做过,但几乎就没有人做对,包括南开无忧在内!

  原因就在于这一句!

  :int f; f=(xx[i][k]*11)%6;

  char *pf; *pf=*pf*11%6;

  表面看来,好象两个都对,

  请你在TC下运行一下下面的代码,看一下结果你就知道了是怎么回事了:

  main()

  {

  char nk='E',*nkp,wuyou='E';

  int wy;

  nkp=&nk;

  *nkp=*nkp*11%6;

  wy=wuyou*11%6;

  printf("%c %c %c %c\n",nk,*nkp,wuyou,wy);

  printf("%d %d %d %d\n",nk,*nkp,wuyou,wy);

  }

  看到结果了么?是不是很吃惊啊?

  -9 -9 69 247

猜你喜欢

编辑推荐

相关内容

推荐阅读

X