1、int temp; /*定义数据交换时的暂存变量*/for(i=0;i+) /*逐个取每个4位数*/ if(ai%2!=0) /*如果当前数是奇数*/for(j=i+1;j+) /*取该数后面的5个数进行比较*/if(aitemp=bi;bi=bj;bj=temp;* 题目8(整数排序题)(五个星)下列程序的功能是:将一正整数序列K1,K2,.,K9重新排列成一个新的序列。新序列中,比K1小的数都在K1的前面(左面),比K1大的数都在K1的后面(右面)。要求编写函数jsValue()实现此功能,最后调用writeDat()函数将新序列输出到文件out.dat中。 说明:在程序中已给出了10个序
2、列,每个序列有9个正整数,并存入数组a109中,分别求出这10个新序列。 例:序列6,8,9,1,2,5,4,7,3 经重排后成为3,4,5,2,1,6,8,9,7void jsValue(int a109) int i,j,k,val,num;10; val=ai0; for(j=0;9; if(aij0;k-) aik=aik-1; ai0=num;*题目48字符型题函数ReadDat( )实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中;请编制函数StrOR( ),其函数的功能是:以行为单位依次把字符串中所有小写字母o左边的字符串内容移到该串的右边存放,然后把小写字母o删除
3、,余下的字符串内容移到已处理字符串的左边存放,之后把已处理的字符串仍按行重新存入字符串数组xx中。最后main()函数调用函数WriteDat()把结果xx输出到文件OUT5.DAT中void StrOR(void)int i,righto,j,s,k; char tem80;maxline;i+) for(j=strlen(xxi)-1;j=0;j-) k=0; memset(tem,0,80);/初始化数组tem; if(xxij=o) righto=j; for(s=righto+1;sstrlen(xxi);s+) temk+=xxis;for(s=0;righto; if(xxis!
4、=) strcpy(xxi,tem); else continue;*书上答案* int i,j,k,index,strl; char ch; strl=strlen(xxi); index=strl;strl;kstrl-1;k+) xxik=xxik+1; xxistrl-1= ; index=j; for(j=strl-1;=index;j-) ch=xxistrl-1; for(k=strl-1; xxik=xxik-1; xxi0=ch; 题目49(字符处理倒序输出)(不会)(要牢记)函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,请编制函数St
5、rOL(),其函数的功能是:以行为单位对行中以空格或标点符号为分隔的所有单词进行倒排。最后把已处理的字符串(应不含标点符号)仍按行重新存入字符串数组xx中,最后调用函数writeDat()把结果xx输出到文件OUT6.DAT中。 例如:原文:You He Me I am a student.结果:Me He You student a am Ivoid StrOL(void) int i,j,k,s,m,strl; char str80; strl=strlen(xxi);memset(str,0,80); s=k=0;for(j=strl-1; if(isalpha(xxij) k+; el
6、se for(m=1;m=k;m+) strs+=xxij+m; k=0; if(!isalpha(xxij) strs+=for(m=1;m+) strs=0 strcpy(xxi,str); 题目52(亲朋字符替换题)函数READDAT()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组XX中;请编制函数CHA(),其函数功能是:以行为单位把字符串中的第一个字符的ASCII值加第二个字符的ASCII值,得到第一个亲朋字符,第二个字符的ASCII值加第三个字符的ASCII值,得到第二个新字符,依此类推一直处理到最后第二个字符,最后一个字符的ASCII值加原第一个字符的ASCII值,得
7、到最后一个新的字符,得到的新字符分别存放在原字符串对应的位置上。最后把已处理的字符串逆转后按行重新存入字符串数组XX中,最后调用函数WRITEDAT()把结果XX输出到文件OUT9.DAT中.原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格. void ChA(void) int i,j; ch=xxi0;strlen(xxi)-1; xxij+=xxij+1; xxistrlen(xxi)-1+=ch; strrev(xxi); /进行逆转*字符串处理题 题目54(字符串字母移位题) 程序prog1.c的功能是:把 s 字符串中的所有字母改写成该字母的下一个字母,字母z
8、改写成字母a。要求大写字母仍为大写字母,小写字母仍为小写字母,其它字符不做改变。 请考生编写函数chg(char *s)实现程序要求,最后调用函数readwriteDAT( )把结果输出到文件bc1.out中。 例如:s 字符串中原有的内容为:Mn.123Zxy,则调用该函数后,结果为:No.123Ayz。void chg(char *s)int I;for(I=0;IasiAY) si+=1;*题目56(字符串左右排序交换题 )函数ReadDat()实现从文件in.dat中读取20行数据存放到字符串数组xx中(每行字符串长度均小于80)。请编制函数jsSort(),其函数的功能是:以行为单位
9、对字符串按给定的条件进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件out.dat中。条件:从字符串中间一分为二,左边部分按字符的ASCII值升序排序,排序后左边部分与右边部分进行交换。如果原字符串长度为奇数,则最中间的字符不参加处理,字符仍放在原位置上。例如:位置012345678源字符串d c b a h g f e 4 3 2 1 9 8 7 6 5 则处理后字符串 h g f e a b c d 8 7 6 5 9 1 2 3 4 A b c d h g f e 1 2 3 4 9 8 7 6 5void jsSort() in
10、t i,j,k,strl,half; char temp;20; half=strl/2;half-1; for(k=j+1;half; if(xxijxxik) temp=xxij; xxij=xxik; xxik=temp; for(j=half-1,k=strl-1;j-,k-)方差运算题题目61(方差运算题) 请编制函数ReadDat()实现从文件IN.DAT中读取1000个十进制整数到数组xx中;请编制函数Compute()分别计算出xx中偶数的个数even,奇数的平均值ave1,偶数的平均值ave2以及方差totfc的值,最后调用函数WriteDat()把结果输出到OUT.DAT文
11、件中。 计算方差的公式如下: N 2 totfc=1/N (xxi-ave2) i=1 设N为偶数的个数,xxi为偶数,ave2为偶数的平均值。 原始数据文件存放的格式是:每行存放10个数,并用逗号隔开。(每个数均大于0且小于等于2000)/*编制函数ReadDat()的部分*/MAX; fscanf(fp,%d,&xxi); if(i+1)%10=0) fscanf(fp,n);/*/void Compute(void) int i,yyMAX; yyi=0; if(xxi%2=0) yyeven+=xxi; ave2+=xxi; else odd+; ave1+=xxi; if(odd=0
12、) ave1=0; else ave1/=odd; if(even=0) ave2=0; else ave2/=even;even; totfc+=(yyi-ave2)*(yyi-ave2)/even;题目62(方差运算题)请编制函数Compute()分别计算出xx中奇数的个数odd,奇数的平均值ave1,偶数的平均值ave2以及所有奇数的方差totfc的值,最后调用函数WriteDat()把结果输出到OUT.DAT文件中。 计算方差的公式如下: totfc=1/N (xxi-ave1) 设N为奇数的个数,xxi为奇数,ave1为奇数的平均值。 /*编制函数ReadDat()的部分*/ fsc
13、anf(fp, void Compute(void) if(xxi%2) yyodd+=xxi; else even+;odd; totfc+=(yyi-ave1)*(yyi-ave1)/odd;题目63(方差运算题)请编制函数Compute(),分别计算出xx中奇数的个数odd,偶数的个数even,平均值aver以及方差totfc的值,最后调用函数WriteDat()把结果输出到OUT.DAT文件中。 totfc=1/N (xxi-aver) /*编制函数ReadDat()*/ fscanf(fp,* int i; if(xxi%2) odd+; else even+; aver+=xxi;
14、 aver/=MAX; totfc+=(xxi-aver)*(xxi-aver); totfc/=MAX;*选票问题题目87(选票问题)现有一个10个人100行的选票数据文件IN.DAT,其数据存放的格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依此类推:内容均为字符0和1,1表示此人被选中,0表示此人未被选中,若一张选票人数小于等于5个人时被认为无效的选票。给定函数ReadDat()的功能是把选票数据读入到字符串数组xx中。请编制函数CountRs()来统计每个人的选票数并把得票数依次存入yy0到yy9中。把结果yy输出到文件OUT.DAT中。v
15、oid CountRs(void) int i,j,count;100; count=0;j+ ) /无效选票的判定,每一行表示一个人的投票情况1) count+; if(count=5) continue;) yyj+;*题目90(级数运算题)某级数的前两项A1=1,A2=1,以后各项具有如下关系: An=An-2+2An-1(注:n-2与n-1为下标) 下列程序prog1.c的功能是:要求依次对于整数M=100,1000和10000求出对应的n值,使其满足:Sn=M,这里Sn=A1+A2+.+An,并依次把n值存入数组单元b0,b1和b2中,请编制jsValue()函数来实现此功能, 最后
16、调用函数writeDat()把数组b中的值输出到out.dat文件中。 请勿改动主函数main()和写函数writeDat()的内容。#include int b3;jsValue()int a1=1,a2=1,a12,sn,k=2; sn=a1+a2; while(1) a12=a1+2*a2; if(sn=100) b0=k;1000&=1000) b1=k;10000&=10000) b2=k; sn=sn+a12; a1=a2;a2=a12; k+;运行结果为:M=100,n=6M=1000,n=9M=10000,n=11其他问题 题目91(单词个数统计题)编写一个函数findStr(
17、char *str,char *substr),该函数统计一个长度为2的子字符串在另一个字符串中出现的次数。例如,假定输入的字符串为asd asasdfg asd as zx67 asd mklo,子字符串为as,函数返回值是6。(表明了返回值是整数型) 函数ReadWrite()实现从文件in.dat中读取两个字符串,并调用函数findStr(),最后把结果输出到文件out.dat中。 int findStr(char *str,char *substr) int i,j,len1,len2,cnt=0,flag; len1=strlen(str); len2=strlen(substr);
18、len1; for(j=0;len2; if(stri+j=substrj) flag=1; else flag=0; if(flag=1) cnt+; return cnt; 题目92(Fibonacci数列题)编写函数jsValue,它的功能是:求Fibonacci数列中大于t的最小的一个数,结果由函数返回。其中Fibonacci数列F(n)的定义为: F(0)=0,F(1)=1 F(n)=F(n-1)+F(n-2) 最后调用函数writeDat()读取50个数据t,分别得出结果且把结果输出到文件out.dat中。当t=1000时,函数值为:1597。int jsValue(int t) int f0=0,f1=1,fn; fn=f0+f1; while(fn=t) f0=f1; f1=fn; return fn;*
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1