计算机三级网络南开100题_第1页
计算机三级网络南开100题_第2页
计算机三级网络南开100题_第3页
计算机三级网络南开100题_第4页
计算机三级网络南开100题_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

题目1:下列程序的功能是:将大于整数m且紧靠m的k个素数存入数组xx。请编写函数

num(intm,intk,intxx口)实现函数的要求,最后调用函数readwriteDAT。把结果输出到文件

out.dat中o

例如:若输入17,5,则应输出:19,23,29,31,37。

注意:部分源程序已给出。

请勿改动主函数main。和函数readwriteDAT。的内容。

类型:素数。

voidnum(intm,intk,intxx[])

{intdata=m+l;

inthal£n=0,I;

while(l)

{half=data/2;for(I=2;Iv=haIf;I++)

if(data%I==O)break;

if(I>half)

{xx[n]=data;n+4-;}

if(n>=k)break;

data++;

})

题目3:函数READDAT()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组XX

中;请编制函数STROR0,其函数功能是:以行为单位把字符串中的所有小写字母0左边的字

符串内容移到该串的右边存放,然后并把小写字母O删除,余下的字符串内容移到已处理字符

串的左边存放.最后把J处理的字符串仍按行重新存入字符串数组XX中,最后调用函数

WRITEDAT。把结果XX输出到文件OUT.DAT中.

例如:原文:Youcancreateanindexonanyfield.

youhavethecorrectrecord.

结果:nanyfield.Youcancreateanindex

rd.yuhavethecrrectrec

原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格.

类型:字符串(单词)的倒置和删除。

答案:

voidStrOR(void)

{intI,j,k,index,strl;

charch;

fbr(I=O;I<maxline;I-H-)

{strl=strlen(xx[I]);

index=strl;

for(j=O;j<strl;j++)

if(xx[I]U]=V)

{fdr(k=j;k<strl-1;k++)

xx[I][k]=xx[I][k+l];

xx[I][strl-l]='*;

index弓;}

fbr(j=strl-1;j>=index;j—)

{ch=xx[I][strl-l];

fbr(k=strl-1;k>O;k—)

xx[I][k]=xx[I][k-l];

xx[I][O]=ch;}

)

)

题目4:函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中;请

编制函数StrOL(),其函数的功能是:以行为单位对行中以空格或标点符号为分隔的所有单

词进行倒排,同时去

除标点符号,之后把已处理的字符串(应不含标点符号)仍按行重新存入字符串数组xx中。

最后main。函数调用函数WriteDat。把结果xx输出到文件0UT6.DAT中。

例如:原文:YouHeMe

Iamastudent.

结果:MeHeYou

studentaamI

原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。

类型:字符串(单词)的倒置利删除。

答案:

voidStrOL(void)

{intIj,k,strl,l;charc;

for(I=O;I<maxline;I++)

Cr(j=O;j〈strlen(xx[I]);j++)

{c=xx[I][j];

if((c>=*A'&&c<=,Z,)||(c>=,a,&&c<=,z,)||c=,|);

elsexx[I][j]-}

fbr(l=O;l<maxline;l++)

{charch[80]={0};charpp[80]={0};

strl=strlen(xx[l]);

I=strl-1;k=l;

while(l)

{while(((xx[l][I]>=,a,&&xx[l][I]<=,z,)||(xx[l][I]>=,A,&&xx[l][I]<='z'))&&I>=0)

{for(j=k;j>=O;j-)

pp[j+l]=ppLj];pp[0]=xx[l][I];k++;I-;}

strcat(ch,pp);strcpy(pp,*HMn,);k=l;

if(I==-l)break;

while((xx[l][I]<,A'||xx[l][I]>,z,)&&I>=0)

{for(j=k;j>=O;j-)

pp[j+1]=PPU];pp[0]=xx[l][I];k++;I-;)

strcat(ch,pp);strcpy(pp,"H"n);

k=0;

if(I==-l)break;}

strcpy(xx[l],ch);

题目9:函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中;请

编制函数SortCharD(),其函数的功能是:以行为单位对字符按从大到小的顺序进行排序,

排序后的结果仍按行重新存入字符串数组xx中。最后main()函数调用函数WriteDat()把结果

xx输出到文件0UT2.DAT中。

例:原文:dAe,BfC.

CCbbAA

结果:fedCBA.,

bbCCAA

原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。

注意:部分源程序存放在PROG1.C中。

请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。

类型:字符串(单词)的倒置和删除。

答案:

voidSortCharD(void)

{intI,j,k,strl;

charch;

fbr(I=O;I<maxline;I-H-)

{strl=strlen(xx[I]);

fbr(j=O;j<strl-l;j++)

fbr(k=j+l;k<strl;k++)

if(xx[I][j]<xx[I][k])

{ch=xx[I][j];xx[I][j]=xx[I][k];xx[I][k]=ch;}

))

题目10:清编制函数ConvertCharA(),其函数的功能是:以行为单位把字符串中的所有小写

字母改写成该字母的下一个字母,如果是字母z,则改写成字母a,大写字母和其它字符保持

不变。把已处理的字符串仍按行重新存入字符串数组xx中。。最后main()函数调用函数

WriteDat()把结果xx输出到文件OUT3.DAT中。

例:原文:Adb.Bcdza

abck.LLhj

结果:Aec.Bdeab

bcdl.LLik

原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。

注意:部分源程序存放在PROG1.C中。

清勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。

类型:字符串(单词)的倒置和删除。

答案:

voidConvertCharA(void)

{intI,j,str;

fbr(I=O;I<maxline;I-H-)

{str=strlcn(xx[I]);

for(j=O;j<strj++)

if(xx[I][j]='z')xx[I][j]='a';

elseif(xx[I][j]>-a,&&xx[I][j]<=y)xx[I][j]+=l;

)

I

题目19:编写一个函数findstr(),该函数统计一个长度为2的子字符串在另一个字符串中出现

的次数。例如:假定输入的字符串为”asdasasdfgasdaszx67asdmklo”,子字符串为“as",函数

返回值为6。

函数readwriteDat()的功能是实现从文件in.dat中读取两个字符穿4,并调用函数findstr(),

最后把结果输出到文件out.dat中。

注意:部分源程序已给出。

请勿改动主函数main。和函数ReadWrite。的内容。

intfindStr(char*str,char*substr)

{intn;

char*p,*r;

n=0;

while(*str)

{P=str;

r=substr;

while(*r)

if(*r==*p){r++;p++;}

elsebreak;

ifT—KO)

n++;

str++;}

returnn;

题H20:编写函数jsvalue,它的功能是:求Fibonacci数列中大于t的最小的一个数,结果

由函数返回。其中Fibonacci数列F(n)的定义为:

F(0)=0,F(l)=l

F(n)=F(n-l)+F(n-2)

最后调用函数writeDat()读取10个数据t,分别得出结果且把结果输出到文件out.dat中。

例如:当例如00时,函数值为:1597。

注意:部分源程序已给出。

请勿改动主函数main()和写函数writeDat()的内容。

intjsValue(intt)

{intfl=0,f2=l,fn;

fn=fl+f2;

while(fh<=t)

{fl=f2;

f2=fh;

fn=fl+f2;}

returnfh;

)

题目21:下列程序的功能是:利用发下所示的简单迭代方法求方程:cos(x)-x=0的一个实根。

xn+l=cos(xn)

迭代步骤如下:

(1)取XI初值为0.0;

(2)XO=X1,把XI的值赋给X0;

(3)X1=COS(X0),求出一个新的XI;

(4)若X0-X1绝对值小0.000001,执行步骤(5),否则执行步骤(2);

(5)所求XI就是方程cos(X)-X=0的一个实根,作为函数值返回。

请编写函数countvalue()实现程序的要求,最后调用函数WRITEDAT()把结果输出到文

件OUT17.DAT中。

注意:部分源程序已给出。

请勿改动主函数main()和输出数据函数writeDAT()的内容。

floatcountValue()

{floatx0,x1=0.0;

while(l)

{x0=xl;

xl=cos(x0);

if(fabs(xO-x1)<1e-6)break;

}

returnxl;

题目26:已知在文件in.dat中存有若干个(个数〈200)四位数字的正整数,函数readdat()读取

这若干个正整数并存入数组xx中。请编制函数calvalue(),其功能要求:1、求出这文件中

共有多少个正整数totnum;2、求这些数右移1位后,产生的新数是偶数的数的个数totcnt,

以及满足此条件的这些数(右移前的值)的算术平均值totpjz,最后调用函数writedat()把所

求的结果输出到文件out.dat中。

注意:部分源程序已给出。

请勿改动主函数main()^读数据函数readdat。和输出数据函数writedat()的内容。

voidCalValue(void)

{intI,data;

fbr(I=0;I<MAXNUM;I++)

{if(!xx[I])break;

if(xx[I]>0)totNum++;

data=xx[I]»l;

if(data%2=0){totCnt-H-;totPjzH-=xx[I];}

totPjz/=totCnt;

题目39:对10个候选人进行选举,现有一个100条记录的选票数据文件IN.DAT,其数据存放

的格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人

的选中情况,依此类推:内容均为字符0和1,1表示此人被选中,0表示此人未被选中,全选

或不选均为无效的选票“给定函数ReadDat()的功能是把选票数据读入到字符串数组xx中。

请编制函数CountRs。来统计每个人的选票数并把得票数依次存入yy[O]到yy[9]中。把结果

yy输出到文件OUT.DAT中。

注意:部分源程序已给出。

请勿改动主函数main。、读数据函数ReadDat()和输出数据函数writeDat。的内容。

类型:选票问题。

voidCountRs(void)

{intI,j=O,k=O;

char*str;

fbr(I=0;I<10;I++)

yy[i]=o;

fbr(I=0;I<100;I++)

{str=xx[I];j=0;

while(*str)

if(*str=,r){j++;str++;}

elsestr++;

if(j!=0&&j!=10)

{str=xx[I];k=0;

while(*str)

if(*str++=,r)yy[k-H-]+=1;

elsek++;}

}

)

题43:函数ReadDat。实现从文件in.dat中读取20行数据存放到字符串数组xx中(第行字符串

长度均小于80)。请编制函数jsSort。,其函数的功能是:以行为单位对字符串变量的下标为

奇数的字符按其ASCII值从小到大的顺序进行排序,排序后的结果仍按行重新存入字符串

数组xx中,最后调用函数WriteDat()把结果xx输出到文件out.dat中。

例如:位置01234567

源字符串hgfedcba

则处理后字符串hafcdebg

部分源程序已给出。

请勿改动主函数main()>读数据函数ReadDat()和输出数据函数WritcDat()的内容。

类型:字符串左右排序和比较。

voidjsSort()

{intI,j,k,strl;

charch;

for(I=0;K20;I++)

{strl=strlen(xx[I]);

fbr(j=l;j<strl-2;j=j+2)

fdr(k=j+2;k<strl;k=k+2)

if(XX[I][j]>XX[I][k])

{ch=xx[I][j];xx[I][j]=xx[I][k];xx[I][k]=ch;}

)

}

题H48:已知数据文件IN.DAT中存有300个四位数,并已调用读函数READDAT()把这些数

存入数组A中.请编制一函数SVALUE0,其功能是:求出千位数上的数加个位数上的数等于百

位数上的数加十位数上的数的个数CNT,再把所有满足条件的四位数依次存入数组bb中,然

后对数组bb的四位数按从小到大的顺序进行排序,最后调用写函数WRITEDAT()把数组b中

的数

输出到OUT.DAT文件.

例如:6712,6+2=7+1,则该数满足条件存入数组bb中,且个数CNT=CNT+1.

8129,8+1。2+9,则该数不满足条件忽略.

注意:部分源程序已给出。

程序中已定义数组:a[300],已定义变量:ent

请勿改动主函数main。、读函数ReadDat。和写函数writeDat。的内容。

voidjsValue()

{intI,thou,hun,ten,data,j;

for(I=0;I<300;I++)

{thou=a[l]/l000;hun=a[I]%1000/100;

ten=a[I]%100/10;data=a[I]%10;

if(thou+data==hun+ten){b[cnt]=a[I];cnt++;}

}

fbr(l=O;I<cnt-l;I++)

fbr(j=I+1;j<cnt;j++)

if(b[i]>bUl)

{data=b[I];b[I]=b[j];b[j]=data;}

题目57:设有n个人围坐一圈并按顺时针方向从1到n编号,从第s个人开始进行I到m的

报数,报数到第个m人,此人出圈,再从他的下一个人重新开始1到m的报数,如此进行

下去直到所有的人都出圈为止。现要求按出圈次序,每10人一组,给出这n个人的顺序表。

请考生编制函数Josegh()实现此功能并调用函数WriteDat。把结果p输出到文件OUT.DAT

中。

设n=100,s=l,m=10.

⑴将1到n个人的序号存入一维数组p中;

(2)若第i个人报数后出圈,则将p[i]置于数组的倒数第i个位置上,而原来第i+1个至倒数第

i个元素依次向前移动一个位置;

(3)重复第(2)步直至圈中只剩下p[l]为止。

部分源程序已给出。

请勿改动主函数main。和输出数据函数writeDat()的内容。

voidJosegh(void)

{intI,j,k,sl,w;

sl=s;

for(I=l;I<=n;I-H-)p[M]=I;

fbr(I=n;I>=2;I-)

{sl=(sl+m-l)%I;

if(sl==0)sl=I;

w=p[sl-l];

fbr(j=sl;j<=I-l;j++)pU-l]=p[j];

p[I-l]=w;}

}题目64:下列程序的功能是:找出所有100以内(含100)满足

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论