81.函数ReadDat()的功能是实现从文件IN81.DAT中读取一篇英文文章存入到字符串数组xx中。请编制函数CovertCharD(),该函数的功能是:以行为单位把字符串中的所有小写字母改成该字母的上一个字母,如果是字母a,则改成字母z。大写字母仍为大写字母,小写字母仍为小写字母,其他字符不变。把已处理的字符串仍按行重新存入字符串数组xx中,最后调用函数
WriteDat()把结果xx输出到文件OUT81.DAT中。 例如:原文:Adb Bcdza
abck LLhj
结果:Aca Bbcyz
zabj Llgi
原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。
【参考答案】
void CovertCharD() {int i;
char *pf;
for(i=0;i pf=xx[i]; /*指针pf指向各行的首地址*/ while(*pf) if(*pf=='a') /*如果是字母a,则改成字母z*/ { *pf='z'; pf++; } else if(*pf>='b'&& *pf<='z') { *pf-=1; pf++; } else pf++; /*若不满足条件,则该字符不变,直接指向下一个*/ } } 82.下面程序的功能是:把s字符串中的所有字母改写成该字母的下一个字母,字母z改写成字母a、字母Z改成字母A。要求大写字母仍为大写字母,小写字母仍为小写字母,其他字符不做改变。请编写函数chg (char *s)实现程序的要求,最后调用函数 readwriteDAT()把结果输出到文件OUT82.DAT中。 例如:s字符串中原有的内容为:Mn.123Zxy,则调用该函数后,结果为No.123Ayz。 【参考答案】 void chg(char*s) { while(*s) if(*s=='z'||*s=='Z') { *s-=25; s++; } else if(*s>='a'&&*s<='y') { *s+=1; s++; } else if(*s>='A'&&*s<='Y') { *s+=1; s++; } else s++; } 83.函数ReadDat()的功能是实现从文件IN83.DAT中读取一篇英文文章并存入到字符串数组xx中。请编制函数SortCharA(),该函数的功能是:以行为单位对字符按从小到大的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中。最后调用函数WriteDat()把结果xx输出到文件OUT83.DAT中。 例如:原文:dAe,BfC. CCbbAA 结果:,.ABCdef AACCbb 【参考答案】 void SortCharA() { int i,j,k,strl; char ch; for (i=0;i int i,j,k,strl; char ch; for(i=0;i 85.函数ReadDat()的功能是实现从文件IN85.DAT中读取一篇英文文章存入到字符串数组xx中;请编制函数StrOL(),该函数的功能是:以行为单位对行中以空格或标点符号为分隔的所有单词进行倒排。最后把已处理的字符串(应不含标点符号)仍按行重新存入字符串数组xx中,最后,调用函数 WriteDat()把结果xx输出||(xx[l][i]>='0'&&xx[l86.函数ReadDat()实现从 for(m=1; m<=k; ][i]<='9'))&&i>=0) /*文件IN86.DAT中读取一篇m++) 处理字母和数字*/ 英文文章存入到字符串数yy[n++]=xx[i][j+m]; { 组xx中;请编制函数 k=0; for(j=k;j>=0;j--) StrOR(),其功能是:以 } pp[j+1]=pp[j]; 行为单位对行中以空格或 if(xx[i][j]==' ') /*从当前行最后一个字符标点符号为分隔的所有单yy[n++]=' '; /*分隔符开始取字符,直到遇空格词进行倒排,同时去除标为空格时保留*/ */ 点符号,之后把已处理的 } pp[0]=xx[l][i]; 字符串(应不含标点符 for(m=1; m<=k; m++) k++; i--; 号)仍按行重新存入字符/*最后一个单词单独处理 } 串数组xx中。最后,*/ strcat(ch,pp); main()函数调用函数 到文件OUT85.DAT中。 例如,原文:You He Me i am a student. 结果:Me He You student a am i 【参考答案】 void StrOL(void) {int i,j,k,str1,l;char c; for(i=0;i for(j=0;j c=xx[i][j]; if((c>='A'&&c<='Z')||(c>='a'&&c<='z')||c==' '||(c>='0'&&c<='9')); else xx[i][j]=' '; } for(l=0;l char ch[80]={0}; char pp[80]={0}; str1=strlen(xx[l]); i=str1-1; k=1; while(1) { while (((xx[l][i]>='a'&&xx[l][i]<='z')||(xx[l][i]>='A'&&xx[l][i]<='Z') /*把该单词存放到数组ch中*/ strcpy(pp, \/*清空数组pp*/ k=1; if(i==-1) break; /*如果处理完了一行,则退出循环*/ while((xx[l][i]<'0'||(xx[l][i]>'9'&&xx[l][i]<'A')||xx[l][i]>'z')&&i>=0) /*处理空格*/ { for(j=k;j>=0;j--) pp[j+1]=pp[j]; pp[0]=xx[l][i]; k++; i--; } strcat(ch,pp); /*把空格加到数组ch中*/ strcpy(pp,\/*清空数组pp*/ k=0; if(i==-1) break; /*如果处理完了一行,则退出循环*/ } strcpy(xx[l],ch); /*把已处理的字符串仍按行重新存入字符串数组xx中*/ } } WriteDat()把结果xx输出到文件OUT86.DAT中。 例如:原文:You have read an which states, 结果:an read have You states which 原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空【参考答案】 void StrOR(void) { int i,j,k,m,n,ll; char yy[80]; for(i=0; i < maxline; i++) /*对每行进行操作*/ { ll=strlen(xx[i]); k=n=0; /*k单词长度,n为yy字符串长度*/ for(j=ll-1; j>=0; j--) /*xx字符串从后向前搜索*/ { if(isalpha(xx[i][j])) k++; /*判断字符是否为字母,是则单词长度加1*/ else /*如果遇到分割符,则将单词放到yy字符串中*/ { yy[n++]=xx[i][j+m]; yy[n]=0; /*添加字符串结束符'\\0'*/ strcpy(xx[i],yy); } } 87.数ReadDat()实现从文件IN87.DAT中读取一篇英文文章存入到字符串数组xx中;请编制函数ChA(),其功能是:以行为单位把字符串中的第一个字符的ASCii值加第二个字符的ASCii值,得到一个新字符,第二个字符的ASCii值加第三个字符的ASCii值,得到第二个新字符,依此类推,一直处理到倒数第二个字符,最后一个字符的ASCii值加原第一个字符的ASCii值,得到最后一个新的字符,得到的新字符分别存放在原字符串对应的位置上。然后把已处理的字符串逆转后按行重新存入字符串数组xx中,最后,调用函数WriteDat()把结果xx输出到文件OUT87.DAT中。 原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。 【参考答案】 void ChA(void) { int i,j; char p,c; for(i=0;i p=xx[i][0]; c=xx[i][strlen(xx[i])-1]; /*将最后一个字符暂存入c中*/ for(j=0; j<(int)(strlen(xx[i])-1); j++) /*从第一个字符开始,直到倒数第二个字符*/ xx[i][j]+=xx[i][j+1]; xx[i][strlen(xx[i])-1]=p+c; /*每行最后一个字符等于本身ASCii值加字符串第一个字符的值*/strrev(xx[i]); } } 88.函数ReadDat()的功能是实现从文件IN88.DAT中读取一篇英文文章存入到字符串数组xx中。请编制函数CharConvA(),其功能是:以行为单位把字符串的最后一个字符的 ASCii值右移4位后加最后第二个字符的ASCii值,得到最后一个新的字符,最后第二个字符的ASCii值右移4位后加最后第三个字符的ASCii值,得到最后第二个新的字符,以此类推,一直处理到第二个字符,第一个字符的ASCii值加最后一个字符的ASCii值,得到第一个新的字符,得到的新字符分别存放在原字符串对应的位置上,把已处理的字符串仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件OUT88.DAT中。 【参考答案】 void CharConvA(void) { int i,j,k,str; char ch; for(i=0;i str=strlen(xx[i]); /*求出各行的总字符数*/ ch=xx[i][str-1]; /*将最后一个字符暂存入ch*/ for(j=str-1;j>0;j--) /*从最后一个字符开始,直到第二个字符*/ xx[i][j]=xx[i][j]>>4+xx[i][j-1]; xx[i][0]+=ch; /*第一个字符的ASCii值加最后一个字符的ASCii值,得到第一个新的字符*/ } } 89.函数ReadDat()实现从文件IN89.DAT中读取一篇英文文章存入到字符串数组xx中;请编制函数StrOR(),其功能是:以行为单位把字符串中的所有小写字母o左边的字符串内容移到该串的右边存放,然后把小写字母o删除,余下的字符串内容移到已处理字符串的左边存放,然后把已处理的字符串仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件OUT89.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个字符,含标点符号和空格。 【参考答案】 void StrOR(void) { int i,j,k,index,strl; char ch; for(i=0;i 91.对10个候选人进行选举,现有一个100条记录的选票数据文件 IN91.DAT,其数据存放的格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依此类推;内容均为字符0和1,1表示此人被选中,0表示此人未被选中,全选或不选均为无效的选票。给定函数 ReadDat()的功能是把选票数据读入到字符串数组xx中。请编制函数 CountRs()来统计每个人的选票数并把得票数依次存入yy[0]到yy[9]中,把结果yy输出到文件OUT91.DAT中。 【参考答案】 void CountRs(void) { int i,j,k; for(i=0;i<100;i++) { k=0; for(j=0;j<10;j++) if(xx[i][j]=='1') k++; if(k==0||k==10) continue; for(j=0;j<10;j++) if(xx[i][j]=='1') yy[j]++; } } 92.对10个候选人进行选举,现有一个100条记录的选票数据文件 IN92.DAT,其数据存放的格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依此类推;内容均为字符0和1,1表示此人被选中,0表示此人未被选中,若一张选票人数小于等于5个人时被认为是无效选票。给定函数 ReadDat()的功能是把选票数据读入到字符串数组xx中。请编制函数 CountRs()来统计每个人的选票数,并把得票数依次存入yy[0]到yy[9]中,把结果yy输出到文件OUT92.DAT中。 【参考答案】 void CountRs(void) { int i,j,k; for(i=0;i<100;i++) { k=0; for(j=0;j<10;j++) if(xx[i][j]=='1') k++; if(k<=5) continue; for(j=0;j<10;j++) if(xx[i][j]=='1') yy[j]++; } } 93.对10个候选人进行选举,现有一个100条记录的选票文件IN93.DAT,其数据存放格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依此类推;每一位候选人的记录内容均为字符0或1,1表示此人被选中,0表示此人未被选中,若一张选票选中人数大于5个人时被认为无效的选票;给定函数ReadDat()的功能是把选票数据读入到字符串数组xx中。请编制函数 CoutRs()来统计每个人的选票数,并把得票数依次存入yy[0]到yy[9]中,最后调用函数WriteDat()把结果yy输出到文件OUT93.DAT中。 【参考答案】 void CountRs(void) { int i,j,k; for(i=0;i<100;i++) { k=0; for(j=0;j<10;j++) if(xx[i][j]=='1') k++; if(k>5) continue; for(j=0;j<10;j++) if(xx[i][j]=='1') yy[j]++; } } 94.请编写函数 countvalue(),它的功能是:求n以内(不包括n)同时能被3和7整除的所有自然数之和的平方根s,并作为函数值返回,最后结果s输出到文件OUT94.DAT中。 例如若n为1 000时,函数值应为:s=153.909064。 【参考答案】 double countvalue(int n) { double xy=0.0; int i; for(i=1;i if(i%3==0&&i%7==0) xy+=i; xy=sqrt((double)xy); return xy; } 请编写函数void countValue(int *a,int *n),它的功能是:求出1到1 000之内能被7或11整除但不能同时被7和11整除的所有整数,并存放在数组a中,通过n返回这些数的个数。 【参考答案】 void countValue(int *a,int *n) { int i; *n=0; for(i=1;i<=1000;i++) if(i%7==0 && i) { *a=i; *n=*n+1; a++; } else if(i%7 && i==0) { *a=i; *n=*n+1; a++; } } 96.编写函数jsvalue()它的功能是:求Fibonacci数列中大于t的最小的一个数,结果由函数返回。其中Fibonacci数列F(n)的定义为:F(0)= 0,F(1)=1 F(n)= F(n-1)+ F(n-2)最后,调用函 writeDat()读取10个数据t,分别得出结果且把结果输出到文件OUT96.DAT中。例如:当t=1 000时,函数值为:1 597。【参考答案】int jsvalue(int t) {int f1=0,f2=1,fn; fn=f1+f2; while(fn<=t) { f1=f2; f2=fn; fn=f1+f2; } return fn; } } 97.下列程序的功能是:利用如下所示的简单迭代方法求方程:cos(x)-x=0的一个实根xn+1=cos(xn) 迭代步骤如下:(1)取x1初值为0.0;(2)x0=x1,把x1的值赋给x0;(3x1=cos(x0),求出一个新的x1;(4)若x0-x1绝对值小于0.000001,执行步骤(5),否则执行步骤(2);(5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回。 请编写函数countvalue()实现程序的要求,最后调用函数writeDat()把结果输出到文件OUT97.DAT中。 【参考答案】 float countvalue() {float x0,x1=0.0; while(1) {x0=x1; x1=cos(x0); if(fabs(x0-x1)<1e-6) break; }return x1; } 98.某级数的前两项 A1=1,A2=1,以后各项具有如下关系:An=An-2+2An-1 下列程序的功能是:要求依次对于整数M=100、1000和10000求出对应的n值,使其满足:Sn Sn=A1+A2+?+An,并依次把n值存入数组单元 b[0]、b[1]和b[2]中,请编制jsvalue()函数来实现此功能,最后调用函数writeDat()把数组b[]中的值输出到OUT98.DAT文件中。 【参考答案】 void jsvalue() { int a1=1,a2=1,n=1,an; int sum0,sum; sum0=a1+a2; while(1) { an=a1+a2*2; sum=sum0+an; a1=a2; a2=an; n++; if(sum0<100&&sum>=100) b[0]=n; if(sum0<1000&&sum>=1000) b[1]=n; if(sum0<10000&&sum>=10000) { b[2]=n; break; } sum0=sum; } } 99.设有n个人围坐一圈并按顺时针方向从1到n编号,从第s个人开始进行1到m的报数,报数到第m个人,此人出圈,再从他的下一个人重新开始1到m的报数,如此进行下去直到所有的人都出圈为止。现要求按出圈次序,每10人一组,给出这n个人的顺序表。请考生编制函数Josegh()实现此功能,并调用函数WriteDat()把结果p输出到文件OUT99.DAT中。 设n=100、s=1、m=10进行编程。 【参考答案】 void Josegh(void) { int i,j,k,s1,w; s1=s; for(i=1;i<=n;i++) p[i-1]=i; for(i=n;i>=2;i--) { s1=(s1+m-1)%i; if(s1==0) s1=i; w=p[s1-1]; for(j=s1;j<=i-1;j++) p[j-1]=p[j]; p[i-1]=w; } } 100.下列程序的功能是:计算出自然数SiX和NINE的个数cnt,它们满足的条件是 SiX+SiX+SiX=NINE+ NINE,并计算满足此条件的所有SiX与NINE的和SUM。请编写函数 countvalue()实现程序的要求,最后调用函数writeDat()把结果cnt和sum输出到文件 OUT100.DAT中。其中S、i、X、N、E各代表一个十进制数字。 【参考答案】 void countvalue() { int S,i,X,E; for(S=3;S<=9;S++) for(i=0;i<=9;i++) for(X=0;X<=8;X=X+2) for(E=0;E<=9;E=E+3) if(3*(S*100+i*10+X)==2*(1000+i*100+10+E)) { cnt++; sum+=S*100+i*10+X+1000+i*100+10+E;} } 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库计算机等级考试三级网络技术题库(5)在线全文阅读。
相关推荐: