程序:void encryptChar() { int I; char *pf; for (I=0;I { pf=xx[I]; while(*pf 例如:“如果原字符是大写字母或计算后f(p)的值小于等于32” 其关键只有①一句 否则将f(p)所对应的字符进行代替 上机考试中类似的题目可能只对这个条件作少许变动 与其类似的题目只是在功能要求上有所不同(例如把“从大到小”改为“从小到大” 它是对条件“如果计算后f(p)的值小于等于32或大于130”的描述 它们的作用就是给出调换记录次序的条件 如果我们抽到的题目是“金额从小到大 把“产品代码”换成“产品名称”等) 则只需把①改为:if ((*pf>=`A`&&&&*pf<=`Z`)||*pf*11%256<=32) ||| void SortDat(){int I 分析:这类程序题目的关键部分在于①、②、③三句上 例2. (占题库10%)函数ReadDat()的功能是实现从文件ENG.IN中读取一篇英文文章 sell[j].dm)==0) if(sell[I].je>sell[j].je) {xy=sell[I]; sell[I]=sell[j]; sell[j]=xy;} } sell[j].dm)>0) {xy=sell[I]; sell[I]=sell[j]; sell[j]=xy;} else if(strcmp(sell[I].dm j; PRO xy; for(I=0;I<MAX-1;I++) for(j=I+1;j<MAX;j++) if(strcmp(sell[I].dm sell[J].mc)<0) 而对于将记录次序进行调换的程序xy=sell[I]、sell[I]=sell[J]、sell[J]=xy 我们就将 ①改为:if (sell[I].je>sell[J].je) ②改为:else if (sell[I].je= =sell[J].je) ③改为:if (strcmp(sell[I].mc 则产品名称从大到小” 如相同 所以我们只需要修改这三句 其中p是数组xx中某一个字符的ASCII值 仍存入数组xx的对应的位置上 按给定的代替关系对数组xx中的所有字符进行代替 存入大字符串数组xx中;请编制函数encryptChar() 我们只需要套用就行 代替关系:f(p)=p*11 mod 256 =0) { if(*pf*11%256>130||*pf*11%256<=32)① { pf++; continue;} *pf=*pf*11%256; pf++; } } } 分析:这一类题目较例1更为简单 则该字符不变 如果计算后f (p)的值小于等于32或大于130 f(p)是计算后的新字符的ASCII值 最后调用函数WriteDat()把结果xx输出到文件PS1.DAT中