1 现象
在使用计算中心的考试系统进行C程序设计练习时,偶尔会出现同一程序使用张三的帐号传上去永远是%60或%0,使用李四的帐号传上去就是%100。
2 直接原因分析及处理方法
并非系统出了故障,而是不同帐号在系统中选择的“C语言编译器”不同造成的。遇到这种情况,应检查自己在系统中所选择的C编译器是否合适,是否与调试程序所使用的编译器相同,二者不匹配时会造成意外失分。
操作方法:访问计算中心网站(http://jszx.cuit.edu.cn),以学生身份登录系统后,单击“查看/更改C
语言编译器”链接。
3 更进一步的原因分析
尽管C语言有统一的标准,但在具体实现时,不同的编译器在某些地方会有略有差异。例如,对于int型变量,在TC下为2字节,能表示数的范围为-32768~32767,在VC和GCC下则为4字节,能表示数的范围为-2147483648~2147483647。因此,对同一涉及int变量的程序,若处理的数为100000,则在VC和GCC下是没有问题的,结果可能是正确的,但在TC下就有问题了,除非改为long int。
因此,造成该现象的原因可能是:张三在系统中选择的是TC编译器、李四的帐号在系统中选择的是VC编译器或GCC编译器——在本地计算机上调试时,你使用的是VC或GCC编译器从而评估程序是正确的,传上去后系统按你的设置使用TC编译器去处理,在某些涉及编译器特性的情况下就可能出问题。解决问题的方法就是在考试系统中选择合适的编译器——告诉考试系统,你的程序在编译时使用什么编译器。
这也是程序可移植性方面应该考虑和要解决的问题之一。
4 其它说明
强烈推荐你将本系统的C语言编译器改为“VC”或“GCC”(2008级之前的考生和计算机学院、软件工程学院、网络工程学院的考生,系统默认为TC-Turbo C)。系统提供Turbo C编译器选项也是为了兼容以前的考生,VC 6.0相对Turbo C而言,是32位对16位,且VC 6.0下程序的编写、对汉字的支持、调试工具都要方便得多,你若以前使用的是Turbo C,现在也应考虑转为使用VC——使用本网站提供的资料,你能很快学会VC下程序的编辑与调试。
|