2024年3月汇编全国计算机等级考试三级网络技术上机试题汇编(南(2)

2025-08-08

t[0]=t1[0]='\\0'; k=1; while(k) {

while(isalpha(*p1)==0&&p1!=xx[i]) {p1--;p2=p1;} while(isalpha(*p1)&&p1>=xx[i]) p1--; memcpy(t1,p1+1,p2-p1); t1[p2-p1]=0; strcat(t,t1); strcat(t,\

if(p1

strcpy(xx[i],t); } }

原程序如下: # include\ # include\ # include\ char xx[50][80]; int maxline=0; int ReadDat(void); void WriteDat(void); void StrOR(void) { }

void main() {clrscr(); if(ReadDat())

{printf(\ return;} StrOR(); WriteDat();

system(\ }

int ReadDat(void)

{FILE *fp;int i=0;char *p;

if((fp=fopen(\ while(fgets(xx[i],80,fp)!=NULL) {p=strchr(xx[i],'\\n'); if(p) *p=0; i++; }

maxline=i; fclose(fp); return 0; }

void WriteDat(void) {FILE *fp; int i;

fp=fopen(\ for(i=0;i

fclose(fp); } 4:函数ReadDat( )实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中; 请编制函数StrOL( ), 其函数的功能是: 以行为单位对行中以空格或标点符号为分隔的所有单词进行倒排,同时去除标点符号,之后把已处理的字符串(应不含标点符号)仍按行重新存入字符串数组xx中。最后main()函数调用函数WriteDat()把结果xx输出到文件OUT6.DAT中。

例如: 原文: You He Me I am a student. 结果: Me He You student a am I

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

------------类型:字符串(单词)的倒置和删除。 void StrOL(void) /*标准答案*/ {int I,j,k,strl,l;char c; for(I=0;I

if ((c>='A'&&c<='Z')||(c>='a'&&c<='z')||c==' ') ; else xx[I][j]=' '; }

for(l=0;l

{char ch[80]={0}; char pp[80]={0}; strl=strlen(xx[l]); I=strl-1; k=1; while(1)

{while (((xx[l][I]>='a'&&xx[l][I]<='z')||(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);strcpy(pp, \ if(I==-1)break;

while((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); strcpy(pp,\ k=0;

if(I==-1)break;} strcpy(xx[l],ch); }}

或者:

void StrOL(void) { int i,j,k,m,n,ll; char yy[80];

for(i=0; i < maxline; i++)

{ ll=strlen(xx[i]); k=n=0; for(j=ll-1; j>=0; j--)

{ if(isalpha(xx[i][j])) k++;

else

{ for(m=1; m<=k; m++) yy[n++]=xx[i][j+m]; k=0; } if(xx[i][j]==' ') yy[n++]=' '; }

for(m=1; m<=k; m++) yy[n++]=xx[i][j+m]; yy[n]=0; strcpy(xx[i],yy); } }

原程序如下: # include\ # include\ # include\ # include\ char xx[50][80]; int maxline=0; int ReadDat(void); void WriteDat(void); void StrOR(void) { }

void main() {clrscr(); if(ReadDat())

{printf(\ return;} StrOR(); WriteDat();

system(\ }

int ReadDat(void)

{FILE *fp;int i=0;char *p;

if((fp=fopen(\ while(fgets(xx[i],80,fp)!=NULL) {p=strchr(xx[i],'\\n'); if(p) *p=0; i++; }

maxline=i; fclose(fp); return 0; }

void WriteDat(void) {FILE *fp; int i;

fp=fopen(\ for(i=0;i

fclose(fp); }

5:在文件in.dat中有200个正整数,且每个数均在1000至9999之间。函数ReadDat()读取这200

个数存放到数组aa中。请编制函数jsSort(),其函数的功能是:要求按每个数的后三位的大小

进行升序排列,然后取出满足此条件的前10个数依次存入数组b中,如果后三位的数值相等,则

按原先的数值进行降序排列。最后调用函数WriteDat()把结果bb输出到文件out.dat中。

例:处理前 6012 5099 9012 7025 8088 处理后 9012 6012 7025 8088 5099 注意:部分源程序已给出。

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

void jsSort() /*标准答案*/ {int I,j,data;

for(I=0;I<199;I++) for(j=I+1;j<200;j++)

{if (aa[I]00>aa[j]00)

{data=aa[I];aa[I]=aa[j];aa[j]=data;} else if(aa[I]00==aa[j]00) if(aa[I]

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

for(I=0;I<10;I++) bb[I]=aa[I]; }

原程序如下: #include #include #include int aa[200],bb[10];

void jsSort() { }

void main() {readDat(); jsSort(); writeDat();

system(\ }

readDat() {FILE *in; int i;

in=fopen(\

for(i=0; i<200; i++) fscanf(in,\ fclose(in); }

writeDat() {FILE *out; int i; clrscr();

out=fopen(\ for(i=0; i<10; i++){

printf(\ fprintf(out,\ }

fclose(out); }

6:在文件in.dat中有200个正整数,且每个数均在1000至9999之间。函数ReadDat()读取这200

个数存放到数组aa中。请编制函数jsSort(),其函数的功能是:要求按每个数的后三位的大小

进行降序排列,然后取出满足此条件的前10个数依次存入数组b中,如果后三位的数值相等,则

按原先的数值进行升序排列。最后调用函数WriteDat()把结果bb输出到文件out.dat中。

例:处理前 9012 5099 6012 7025 8088 处理后 5099 8088 7025 6012 9012 注意:部分源程序已给出。

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

void jsSort() /*标准答案*/


2024年3月汇编全国计算机等级考试三级网络技术上机试题汇编(南(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:商务翻译

相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219