加入收藏 收藏网站 设为首页 设为首页
招生考试网
学历类| 阳光高考 研 究 生 自学考试 成人高考 专 升 本 中考会考 外语类| 四 六 级 职称英语 商务英语 公共英语 日语能力
资格类| 公 务 员 报 关 员 银行从业 司法考试 导 游 证 教师资格 财会类| 会 计 证 经 济 师 会计职称 注册会计 税 务 师
工程类| 一级建造 二级建造 造 价 师 造 价 员 咨 询 师 监 理 师 医学类| 卫生资格 执业医师 执业药师 执业护士 国际护士
计算机| 等级考试 软件水平 应用能力 其它类| 书画等级 美国高考 驾 驶 员 书法等级 少儿英语 报 检 员 单 证 员 出国留学
 招生考试网 - 计算机等级考试 - 考试辅导 - 正文

 
计算机等级考试上机注意事项
来源:fjzsksw.com 2010-2-3 编辑:zhoupanyu 【字体:小 大】
很多朋友对计算机三级考试上机考试十分茫然,参加这次考试的人有很大一部分是上次机试没有通过的朋友,甚至还有一些考了两次机试都没有通过的…… 这其中不乏一些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;
    }
    }
    似乎一个例子不能说明什么,那就把上面的数字题目的答案给大家看看:

 



 
网站版权与免责声明
①由于各方面情况的不断调整与变化,本网所提供的相关信息请以权威部门公布的正式信息为准.
②本网转载的文/图等稿件出于非商业性目的,如转载稿涉及版权等问题,请在两周内来电联系.
最新文章
热门文章

报名考试
全国 | 黑龙江 | 吉林 | 辽宁 | 内蒙古
青海 | 宁夏 | 甘肃 | 新疆 | 陕西
西藏 | 北京 | 天津 | 河北 | 山东
江苏 | 安徽 | 河南 | 上海 | 浙江
福建 | 广东 | 山西 | 湖南 | 湖北
江西 | 广西 | 海南 | 云南 | 贵州
四川 | 重庆
分省高校计算机考试
黑龙江 | 吉林 | 辽宁 | 内蒙古 | 河北
北京 | 天津 | 新疆 | 甘肃 | 宁夏
青海 | 陕西 | 山西 | 河南 | 山东
江苏 | 安徽 | 浙江 | 福建 | 广东
海南 | 广西 | 江西 | 湖北 | 湖南
四川 | 上海 | 重庆 | 贵州 | 云南
西藏
成绩查询
报考指南
试题答案
模拟试题
考试辅导
计算机一级 | 计算机二级 | 计算机三级 | 计算机四级
经验交流
高校计算机