论坛登陆 用户名:  密 码:
设为首页  加入收藏
08年北京名校秋季招生
名牌院校免试入学宽进严出,突破考分限制,名校与你零距离,以下院校按报名先后顺序录取,24小时网上报名覆盖全国
  您现在的位置: 中国教育招生在线 >> IT >> 专家指导 >> IT正文
等级考试三级C语言上机注意事项
 作者:佚名     2007-3-15 15:35:45        来源:不详  浏览次数:

    计算机三级考试马上就要到了,然而很多朋友对计算机上机考试却仍旧十分茫然,

    参加这次考试的人有很大一部分是上次机试没有通过的朋友,甚至还有一些考了两次机试都没有通过的……

    这其中不乏一些C语言学的很不错的高手,大部分人到现在都不明白为什么自己亲手编的程序却是0分……

    究竟是什么原因呢?不就是那100道题目吗?翻来覆去的看也没有发现自己的程序有什么错误啊,看资料,用模拟盘模拟也是满分啊,可为什么正式考试就是0分呢?

    于是很多人甚至把通过上机考试当成一件*运气的事了,甚至有的朋友对上机考试感到十分恐惧
    然而这其中真正的原因……
    大家不妨和我一起看一下考试中心命题组的正确答案~
    顺便提醒一下大家在考试的时候要注意的问题,希望对大家有所帮助。
    
    第一条:审题要仔细!正式考试的时候会遇到很多面熟的题目,这些题目有的似乎和
    平常资料中看到的一样,然而,千万不要见到面熟的题目而沾沾自喜,因为有很多的
    “陷阱”会使你审题的时候就出错~!
    我们看一道所有人都做过的的 “数字题目” 。
    考试中心命题组第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中读取一篇英文文章存入到字符
    串数组xx中;请编制函数ComWord()分别计算出10个不区分大小写
    的英文单词的首字母(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)%256;
    南开:char *pf; *pf=*pf*11%256;
    表面看来,好象两个都对,
    请你在TC下运行一下下面的代码,看一下结果你就知道了是怎么回事了……:
    main()
    {
    char nk='E',*nkp,wuyou='E';
    int wy;
    nkp=&nk;
    *nkp=*nkp*11%256;
    wy=wuyou*11%256;
    printf("%c %c %c %c\n",nk,*nkp,wuyou,wy);
    printf("%d %d %d %d\n",nk,*nkp,wuyou,wy);
    }
    看到结果了么?是不是很吃惊啊?
    ≈ ≈ E ≈
    -9 -9 69 247
    大家看到了,南开的结果是负数,连原来的变量nk都变成了负数,这显然错了。
    无忧的聪明一点,知道int比char大,定义了个int,对了。
    南开错误原因就是在TC2.0中char型变量只有一个字节,根本容纳不下'E'*11,
    所以产生了溢出,上次考这道题目没过的同学是不是有所启发呢?
    这里给出考试中心命题组的答案:
    void encryptChar(){
    int i,k,ch;
    for(i=0;i<maxline;i++)
    for(k=0;k<strlen(xx[i]);k++){
    ch=xx[i][k];
    ch=(ch*11)%256;
    if(!(ch<=32||ch>=130))xx[i][k]=ch;
    }
    }
    似乎一个例子不能说明什么,那就把上面的数字题目的答案给大家看看:
    考试中心命题组23题答案:
    int i;
    long val;
    float dec;
    for(i=0;i<N;i++){
    val=(long)xx[i];
    aver+=xx[i]-val;
    }
    aver/=(double)N;
    for(i=0;i<N;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来终止,如果连按多次都没反应,
    不要慌,立即找监考老师说明情况,可以重新启动机器继续答原题,你的程序还在,时间也是继续刚才的。
    所以这也提醒大家,运行程序之前一定要先存盘。

责任编辑:lss
  相关新闻
2006年9月23日计算机等级考试二级VB官方标准试卷
2005年9月全国计算机等级考试二级VB笔试试卷(含参考答
2006年9月23日全国计算机等级考试成绩查询汇总
MCSD.NET的考试70-300
全国等级考试查分数电话和网址,基础教程网
计算机等级考试成绩各地查询方式,基础教程网
计算机等级考试上机考试应试技巧
05年9月全国计算机等级考试全真题(笔试部分)
我的MCSE考试经验
06年9月23日计算机等级考试二级VF官方标准试卷
全国计算机等级考试有重大调整,基础教程网
计算机等级考试成绩各地查询方式,基础教程网
计算机等级考试今年起作重大调整 二级取消DOS,基础教程
计算机等级考试明年调整 新大纲上半年实施,基础教程网
山东04年下半年社会证书考试开始报名,基础教程网
如何准备计算机等级考试,基础教程网
2004下半年等级考试问答,基础教程网
计算机等级一级考试心得及技巧,基础教程网
辽宁省2004全国高等学校计算机等级考试将报名,基础教程
全国计算机等级考试报名承办机构,基础教程网
  评论
现在有100人对本文发表评论
查看所有评论
 
推  荐
 
100本成功必读热销书
热门招生
  北京文理研修学院   前进大学
  北京明园大学   北京建设大学
  北京邮电大学世纪学院   北方工商管理学院
  联想软件定向委培班   香港数码动画学院
  青年企业管理研修学院   北京华夏管理学院
热门培训
网络化办公专家培训认证 电子科技大学软件学院
软件测试工程师培训认证 北大青鸟十大授权培训
IT硬件工程师培训认证班 北京环球雅思荷兰预科
JAVA开发工程师培训 潜能时代IT服务管理培训
网络信息化工程师培训 清华大学继续教育学院
论坛精选
 
有些细节是男人也该注意的风度!最容易读错的字
某强人手机里保存的30条短信 中国十大高薪职业
最感人的十大韩剧经典台词 嫁给工程师的N个理由
爆强!只有一句话的鬼故事 转贴教你如何做妖精
 女人一定要記住的話 女人最好别嫁给最爱的男人
城市联盟
 大连 上海 天津 广州 西安 深圳  天津  青岛  大连  福州  沈阳  青海  连云港  南京  吉林  厦门  威海  辽宁  呼和浩特
Copyright © 2006   www.edu999.com   All rights reserved. 中国教育招生在线  版权所有
北京市通信管理局[2004]字第552号函    京ICP证040442号