荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: liangma (), 信区: Program
标  题: 我的三级网络技术经历和经验
发信站: 荔园晨风BBS站 (Sun May 27 19:25:39 2007), 站内

计算机考试准考证丢了,由于是补考的(第一次笔试过了),准考证号码有个"A"字,费了好大尽
才把我的准考证号码推测出来,还好,一查,过了.好高兴啊,毕竟我在这上面费了好大的尽,毕
竟我过的不容易.
   我是学文科的,没有C语言基础.C语言全靠自学.第一年考试时候,我们两个法学班就我一
个人报考,怎么考,考什么,我一点都不知道.我胡里糊涂地报了名.然后买了本参考书,从图书
馆借了些网络技术教材,就看了起来,由于不是指定教材,好多内容,包括定义,概念等,都和
考试大纲不一样,可以说,看了等于白看.离考试还有两周的时间,在
http://www.ncre.cn/ 论坛上看到了指定教材,就买了一本看了一周.离考试还有一周时
间,机试考什么,怎么考,我还不知道呢?幸好在去机房的时候,碰到了老同学,他给了我
一本他去年用的南开100题,作为过来人,他还给了我一点经验.他知道我的基础,说我机试不
可能过,让我先把笔试过了,还有补考的机会,我也认了.他给的南开100题目由于没答案,我也
没怎么看,我只是把我买的参考书上的题目看了几十道,有些题目压根就看不懂(像一些字符
变换类型的,贼难!),就死记硬背起来了.
    接着,考试了.笔试就那样考过了.机试考了一道算是比较简单的题目,记忆中是关于相临
素数的个数的问题,我考试前也看过原题,考试时不知怎么搞的,就是运行不出结果来.
    盼了好长时间,考试结果出来了.笔试60多分.机试10分.郁闷哪!!!
    第二年重来,我毅然报了名.
    由于第二年只补考机试,轻松了许多.由于各种原因,C语言书没能再重看一遍,已经忘的
差不多,好在还有点基础.南开100题,书是重买的新的,结果一点都没看,全新,郁闷!!!离考试
没多长时间了,整天就泡在机房里疯狂做模拟上机题目.搞的头都大了.持续了大约1个星期,
把十几道上机模拟题做了一遍.离考试还有两天,结果还有好几道题目没搞懂.怎么办呢,把十
几道上机模拟题答案打印出来,背!!!也只能这样了.离考试还有半小时的时候我还在背啊!!!
    考试抽到的一道题目,是南开100题里的.很简单.原题目我没见过,不过相同题型的我见
过.我还是有点C基础的吧,就用俺自己的想法编起了程序.10来分钟吧,就编好了,就是运行不
出来,检查一下我编的程序没错啊.一运行就在源程序那儿出错了!试了N次,还是错在源程序
那儿!可考试源程序明确要求不能改动的啊!再说,源程序我看不懂也不知道错在什么地方?一
秒秒地过去了.离考试结束还剩10来分钟,眼看我要真的玩完了.天绝我啊!这时,旁边的一位
兄弟和我出现了同样的错误,我两个在议论.他把监考老师叫来,说源程序有错误.老师却说,
没错,让他检查.这时候,我出现转机了.那位好心的兄弟,向监考老师指了一下我编的程序,说
也有他那样的错误.这时候老师才引起了注意,帮我看了一下,改动了一下.原来源程序竟然将
函数 void writeDat()的声明写成了void writeDAT() ,天哪!请大家一定要吸取教训,源程
序也是可以改动的!我试着运行了一下,通过了,然后保存,然后在老师的指导下交了卷,看了
一下时间,离考试结束不到5分钟了,好险啊!
   事后,翻开我全新的南开100题找到了那道题目,才知道我做了一件比较荒唐的事情.
我计算机等级考试抽到的这个题目:
已知数据文件IN.DAT中存有300个四位数,并已调用读函数READDAT()把这些数存入数组A中.
请编制一函数SVALUE(),其功能是:求出所有这些四位数是素数的个数CNT,再求出所有满足此
条件的四位数平均值PJZ1,以及不满足条件的四位数平均值PJZ2,最后调用写函数
WRITEDAT()把结果CNT,PJZ1,PJZ2输出到OUT.DAT文件.
例如:5591是素数,则该数满足条件计算平均值PJZ1,且个数CNT=CNT+1.
9812是非素数,则该数不满足条件计算平均值PJZ2。
注意:部分源程序已给出。
程序中已定义数组:a[300],已定义变量:cnt,pjz1,pjz2.
请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。
---------------------
PROG1.C
#include <stdio.h>
int a[300],cnt=0;
double pjz1=0.0,pjz2=0.0;

int isP(int m)
{
int i;

for(i=2;i<m;i++)
if(m%i==0)return 0;
return 1;
}

void jsvalue()
{
}

main()
{
int i;

readDat();
jsvalue();
writeDat();
printf("cnt=%dn满足条件的平均值pzj1=%7.21fn不满足条件的平均值pzj2=%7.21fn",cnt,
pjz1,pjz2);
system("pause");
}

readDat()
{
FILE *fp;
int i;
fp=fopen("in.dat","r");
for(i=0;i<300;i++)fscanf(fp,"%d",&a);
fclose(fp);
}

writeDat()
{
FILE *fp;
int i;
fp=fopen("out.dat","w");
fprintf(fp,"%dn%7.21fn%7.21fn",cnt,pjz1,pjz2);
fclose(fp);
}
标准答案是这样的:
void jsValue() /*标准答案*/
{int I;
for (I=0;I<300;I++)
if (isP(a[I])) {pjz1+=a[I];cnt++;}
else pjz2+=a[I];
pjz1=pjz1/cnt;
pjz2=pjz2/(300-cnt);
}

我的答案是:
{ int i,thun,hun,ten,data,count=0;
for(i=0;i<300;i++)
{ thun=a[i]/1000;
hun=a[i]/100%10;
ten=a[i]%100/10;
data=a[i]%10;
a[i]=thun*1000+hun*100+ten*10+data;
if (isP(a[i])){cnt++;pjz1+=a[i];}
else {count++;pjz2+=a[i];} }
if(cnt==0) pjz1=0;
else pjz1/=cnt;
if (count==0) pjz2=0;
else pjz2/=count;}
我这种题型做的太多了,考试的时候估计是喝多了……我当时是真被搞糊涂了,拆了又合。
做了无用功,画蛇添足!
  再后来,我在网上咨询了一些人,有的人说我的结果是对的,有的说是错的,我也很担
心.没办法,已经过去了.我知道,就算这次我不通过,就意味着要重来,可我还会重来吗
?我已经大三了,没时间了.....

  经过了这么多曲折,苍天终不负有心人啊,我过了.谢谢那些曾经帮助过我的人,小强
,大兵,还有考场的那位兄弟!
  做为过来人,我就把我的一些经验写给大家吧,希望对大家有些帮助.
  第一,要常去这个网站 http://www.ncre.cn/ 这是等考官方网站,还有论坛
http://bbs.ncre.cn/ 和大家进行交流经验,了解考试最新考试信息.我的一些经验和信
息就是从本论坛得知的.另外还有这个网站,这是我后来才发现的,觉得不错,推荐给大家
:http://edu.77169.com/List/List_11.html
  第二,参见这个帖子
  作者:shdody
  来源于:http://bbs.ncre.cn/
  贴名:关于考三级网络使用教材及参考书的总结帖
  标准教材:书名:全国计算机等级考试三级教程(网络技术)2004年版
                作者:教育部考试中心
                出版社:高等教育出版社
                原书定价:¥26元
                本站会员购买仅需: ¥23.4元 9折  (具体可以看本站  网上书店 )
笔试看上面这一本书就可以了,至于看哪些内容,你可以参照 《三级网络技术考试大纲》

假如你没学过C语言,你可以先看  清华大学出版社出版,谭浩强主编的《c程序设计》
注: 对于三级考,潭浩强的《c程序设计》中重点章节:
C语言谭浩强的第9、14、15、16章不用看,8、10章随便看看就行;11、12、13基本也不用
看,只要了解位运算的左移运算符和右移运算符、结构体变量的引用(南开百题中有很多要
用到,不过很简单);主要看1-7章,尤其是5-7三章是重点

C程序考试可以看《上机考试习题集—C语言》,南开大学出版社,即我们常说到的  南开
100题
只要把南开100题中的题都做会了,要应试过C语言上机考应该就没问题了
《南开100题》在本论坛》等级考试资料下载区  有下载,本站网上书店也有出售
记得要下载最新版的南开百题哦~老帖中提供的链接最好不要下载了
一定要把国计算机等级考试三级教程和南开100题仔细地看上几遍!
第三,就是关于考试前要仔细地做几遍模拟试题(一般各个学校机房都提供,考前1~2周
),找出自己常犯错误,以免考试时眼高手低.
第四,就是考试上机时的一些注意事项:
来源:http://edu.77169.com/List/List_11.html
帖名:等级考试三级C语言上机注意事项
等级考试已经过去很久了,也不知道自己能你能过,但愿工夫没白费,遗憾的是:能早看到这篇
文章就好了,我认为这篇文章对参加等级考试的人有很大帮助.
计算机三级考试马上就要到了,然而很多朋友对计算机上机考试却仍旧十分茫然,

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

    这其中不乏一些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来终止,如果连按多
次都没反应,
    不要慌,立即找监考老师说明情况,可以重新启动机器继续答原题,你的程序还在,时间也
是继续刚才的。
    所以这也提醒大家,运行程序之前一定要先存盘。

  好了,就写这么多了.希望对大家有些帮助,大家努力吧.祝大家好运!接下来,我要
忙我的六级考试和考研了.

 欢迎去我的BLOG:http://blog.sina.com.cn/dscxl
--

※ 来源:·荔园晨风BBS站 http://bbs.szu.edu.cn·[FROM: 218.22.193.82]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店