三级C语言上机试题逐题解析
文章作者 100test 发表时间 2007:03:10 19:07:15
来源 100Test.Com百考试题网
三级网络技术和三级数据库技术的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)) 。