![]() |
网站首页 --
中国考试信息网--人性服务 用户至上 资源免费 信息共享 将免费进行到底!
|
|||||||||||||||||||
|
||||||||||||||||||||
|
|
|
|
|
|
等级考试
水平考试
微软认证
思科认证
Oracle认证
Linux认证
|
||
| 你的位置:首页 > IT认证 > 等级考试 > 历年真题 > 内容 |
| 全国计算机等级三级C语言上机试题逐题解析 |
|
三级的上机题可以分为十几个类型,每类中的题目数量不一,多则十几道题,少则三四道题,但是每类题都差不多,每类中只要掌握一道题,再理清做题的思路,那就相当于全掌握了。 好了,今天现看几个题目比较多得类型。 第一类:关于f(p)=p*11 mod 256字符变换的题型,一般这类题的题目说明如下 函数readdat()实现从文件eng.in中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptchar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数writedat()把结果xx输出到文件ps10.dat中。 替代关系:f(p)=p*11 mod 256 (p是数组中某一个字符的ascii值,f(p)是计算后新字符的ascii值[u][i]),如果原字符的ascii值是偶数或计算后f(p)值小于等于32,则该字符不变,否则将f(p)所对应的字符进行替代[/i][/u]。 void encryptchar() { int i,j; unsigned char fp; for(i=0;i for(j=0;xx[i][j]!=’\0’;j++) { fp=xx[i][j]*11 % 256 ; if(!(xx[i][j]%2==0||fp<=32)) xx[i][j]=fp; } } 题解:这类题比较简单,每道题的不同之处在于,要替换的字符的条件不一样,但条件中总会说“如果该字符符合什么条件,字符就不变,否则就替换。”解决这个问题最省事的办法就是把不变的条件写好,前面加上逻辑非,如 (!(xx[i][j]%2==0||fp<=32)) 。 另一个要注意的问题是把改变后的字符要临时存放在一个变量中,这个变量,如本题中的fp,必须是unsigned char 类型或int类型的变量,若写成char类型的会出错,因为从公式 fp=xx[i][j]*11 % 256 ;中可以看出fp的取值范围应在0~255之间,而char类型的变量范围仅在-128~+127之间。 在本题中用两重循环遍历字符串数组,外层循环遍历行,maxline中存放的是xx数组中存放字符串的真实的行数;外层循环遍历每行的每个字符,因为在xx中每行是一个字符串,而每个字符串都有一个‘\0’做结束标致,所以内层循环的表达式2用xx[i][j]!=’\0’来控制循环。 第3题: 函数readdat()的功能是实现从文件in.dat中读取一篇英文文章 存入到字符串数组xx中;请编写函数stror(),该函数的功能是:以 行为单位把字符串中的所有小写字母o左边的字符串内容移到该字符 串的右边存放,然后并把小写字母o删除,余下的字符串内容移到已 处理字符串的左边存放.最后把已处理的字符串仍按行重新存入字符 串数组xx中,最后调用函数writedat()把结果xx输出到文件out.dat 中。 例如:原文:you can create an index on any field. you have the correct record. 结果:n any field. yu can create an index rd. yu have the crrect rec 原始数据文件存放的格式是:每行的宽度均小于80个字符,含标 点符号和空格。 注意:部份源程序已在程序prog1.c中给出。 请勿改动主函数main()、读函数readdat()和写函数writedat() 的内容。 解题:本题如果用标准算法实难解释清楚,这里完全用字符串处理函数来做,涉及到的函数有: (1) char *strchr(char *s,char ch);——从s所指向的字符串中找到打一个ch代表的字符,返回该字符的指针,若找不到返回空指针null。 (2)void memset(char *s ,char ch,unsigned count);——将s所指向的数组的前count个字符全部赋于ch所代表的字符,如果ch为‘\0’,count为字符数组的长度,则代表清空数组。 (3)void memcpy(char *s1,char *s2,unsigned count);——将s2字符串的前count个字符拷贝到s1所代表的字符串中。 关于strcpy()和strcat()两个函数就不用说了吧! |
| 上一篇:2006年全国计算机等级考试二级Access考试大纲 | 下一篇:下面没有内容了 |
| 【打印文章】【大 中 小】【返回顶部】【返回首页】【关闭】 |
设为首页 | 加入收藏 | 网站介绍 | 网站地图 | 广告服务 | 友情链接 | 联系我们 | 免责声明 | 真诚欢迎各教育机构、媒体、高校、出版单位和网友与我们联系合作! 中国考试信息网 版权所有 粤ICP备05000983号 Copyright © 2007 CnOFF.com All rights reserved. Template designed by Cnoff.com. Optimized to 1024x768 to Firefox,Opera and MS-IE6. |