收藏 分销(赏)

2021年计算机等级考试上机六大注意事项.docx

上传人:二*** 文档编号:4517761 上传时间:2024-09-26 格式:DOCX 页数:6 大小:15KB 下载积分:5 金币
下载 相关 举报
2021年计算机等级考试上机六大注意事项.docx_第1页
第1页 / 共6页
本文档共6页,全文阅读请下载到手机保存,查看更方便
资源描述
  于是很多人甚至把通过上机考试当成一件运气的事了,甚至有的朋友对上机考试感到十分恐惧,然而这其中真正的原因…… 大家不妨和我一起看一下考试中心命题组的正确答案。顺便提醒一下大家在考试的时候要注意的问题,希望对大家有所帮助。   第一条:审题要仔细!   我们看一道所有人都做过的的 “数字题目” 。   考试中心命题组第23题:   已知在文件in.dat中存有N个实数,(N<200),函数readdat()是读取这N个实数并存入数组xx中。   请编制函数CalValue(),其功能要求:   1、求出这N个实数的整数部分平均值aver;   2、分别求出这N个实数中其整数部分值小于平均值ever的数的整数部分值之和sumint与小数部分之和sumdec   最后调用函数WriteDat()把所求的结果输出到文件OUT8.dat中。   这一题看起来很眼熟,然而你仔细看!   1、aver是整数部分的平均值!不是普通的哦!   2、整数部分值小于平均值ever的数的整数部分值之和sumint与小数部分之和sumdec!   原来这么复杂!稍不留心就错了,结果就想当然的0分   考试中心命题组第4题   函数ReadDat()实现从文件ENG.IN中读取一篇英文文章存入到字符   的英文单词的首字母(b,c,f,s,n,r,u,e,o,p)的频数并依次存入   整型数组yy[0]至yy[9]中,最后调用函数WriteDat( )把结果yy   输出到文件PS1.OUT中。   这题也很眼熟,然而你仔细看!   英文单词的首字母,不是平常的字母的个数,是作为单词的首字母的个数啊。     第二条:一定要考虑除零、溢出、类型转换、精度等细节问题!   虽然我们在平时学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   大家看到了,南开的结果是负数,连原来的变量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的类型一定不要用整形。     第三条:不要使用快捷键!   很多人在使用TC的时候习惯于用F9,CTRL+F9或者其他的热键,首先F9只是编译了,并没有运行程序,考试一定要运行一下你的程序才会有输出文件,否则一定是0分。热键在考试的时候是很危险的,因为UCDOS的热键和TC的冲突,CTRL+F9变成了全角半角转换,如果不小心按了,会导致你的程序有中文字符,编译的时候出错,而且很难查找排除错误! 所以建议大家在考试的时候使用ALT+红色字母 来调出菜单进行编译调试等步骤,建议步骤为:   写完代码后用ALT+F,S存盘,然后ALT+C,M编译,然后ALT+R,R运行,这样就万无一失了。     第四条:不要加载任何输入法   上机考试用的DOS环境内存十分有限,如果你加载了任何一个输入法,都有可能造成编译程序的时候出现out of memory 内存不足的情况,到那时就麻烦了。   程序只要写的对就可以,不要画蛇添足的加注释,没有人看的!     第五条:不要提前交卷!   考场一般使用NOVELL网络,有的时候存在网络状况不好而连接失败等问题。这时,如果你已经提前交卷的话就不太好了。另外也可以防止别人有意无意的改动你的程序。     第六条:考试时候的一些技巧   1、进入TC以后如果想查看题干要求,不用退出TC,直接用F12就可以显示出来。   2、用F12显示题目之后可以通过CTRL+BACKSPACE把题目定在屏幕上。   3、编译运行之后,可以通过type out.dat或edit out.dat或tc out.dat查看输出文件。   (千万不要改动!不然影响考试结果。如果不小心改动,再重新编译运行一次你的程序就可以了)   4、如果考试的时候不小心改动了代码的主函数或其他部分,可以进入考生目录下的warn隐藏目录,   把里边的备份文件复制到考生目录。步骤:   在考生目录下输入cd warn   输入copy *.c ..输入cd ..   就可以了   5、如果调试的时候不小心死循环了,可以通过CTRL+C或CTRL+BREAK来终止,如果连按多次都没反应,不要慌,立即找监考老师说明情况,可以重新启动机器继续答原题,你的程序还在,时间也是继续刚才的。所以这也提醒大家,运行程序之前一定要先存盘。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 考试专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服