计算机三级网络技术上机试题Word文件下载.docx

上传人:b****4 文档编号:17886363 上传时间:2022-12-11 格式:DOCX 页数:23 大小:22.97KB
下载 相关 举报
计算机三级网络技术上机试题Word文件下载.docx_第1页
第1页 / 共23页
计算机三级网络技术上机试题Word文件下载.docx_第2页
第2页 / 共23页
计算机三级网络技术上机试题Word文件下载.docx_第3页
第3页 / 共23页
计算机三级网络技术上机试题Word文件下载.docx_第4页
第4页 / 共23页
计算机三级网络技术上机试题Word文件下载.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

计算机三级网络技术上机试题Word文件下载.docx

《计算机三级网络技术上机试题Word文件下载.docx》由会员分享,可在线阅读,更多相关《计算机三级网络技术上机试题Word文件下载.docx(23页珍藏版)》请在冰豆网上搜索。

计算机三级网络技术上机试题Word文件下载.docx

conio.h>

stdio.h>

voidreadwriteDAT();

intisP(intm)

{inti;

for(i=2;

i<

m;

i++)

if(m%i==0)return0;

return1;

{

main()

{intm,n,xx[1000];

clrscr();

printf("

\nPleaseentertwointegers:

"

);

scanf("

%d,%d"

&

m,&

n);

num(m,n,xx);

for(m=0;

m<

n;

m++)

%d"

xx[m]);

\n"

readwriteDAT();

system("

pause"

);

voidreadwriteDAT()

{intm,n,xx[1000],i;

FILE*rf,*wf;

rf=fopen("

in.dat"

"

r"

wf=fopen("

out.dat"

w"

for(i=0;

10;

i++){

fscanf(rf,"

%d%d"

n);

m++)fprintf(wf,"

fprintf(wf,"

}

fclose(rf);

fclose(wf);

IN.DAT

175

1017

3215

324

556

766

994

7815

226

663

OUT.DAT

1923293137

103107109113127131137

331337347349353

37414347

596167717379

79838997101103

101103107109

787797809811821

232931374143

677173

2题目:

题目2:

已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:

如果四位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的个数cnt,并把这些四位数按从大到小的顺序存入数组b中。

最后main()函数调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。

注意:

部分源程序存在文件PROG1.C文件中。

程序中已定义数组:

a[200],b[200],已定义变量:

cnt

请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。

-------------------------

voidjsVal()/*标准答案*/

{intbb[4];

intI,j,k,flag;

for(I=0;

200;

{bb[0]=a[I]/1000;

bb[1]=a[I]%1000/100;

bb[2]=a[I]%100/10;

bb[3]=a[I]%10;

for(j=0;

4;

{if(bb[j]%2==0)

flag=1;

else

{flag=0;

break;

if(flag==1)

{b[cnt]=a[I];

cnt++;

for(I=0;

cnt-1;

for(j=I+1;

cnt;

if(b[I]<

b[j])

{k=b[I];

b[I]=b[j];

b[j]=k;

PROG1.C

#defineMAX200

inta[MAX],b[MAX],cnt=0;

voidjsVal()

voidreadDat()

FILE*fp;

fp=fopen("

MAX;

i++)fscanf(fp,"

%d"

a[i]);

fclose(fp);

voidmain()

readDat();

jsVal();

满足条件的数=%d\n"

cnt);

cnt;

i++)printf("

b[i]);

writeDat();

writeDat()

{FILE*fp;

inti;

fprintf(fp,"

%d\n"

i++)fprintf(fp,"

6012

5099

9012

7025

8088

7055

5334

7607

8145

5795

2896

3019

7747

7090

4140

8626

7905

3735

9620

8714

9496

3640

5249

7671

5925

4687

2982

6227

6478

2638

2793

8298

8246

5892

9861

9110

2269

6951

9800

2439

5339

1064

9994

6762

5752

1001

1030

7989

2845

2958

3820

3010

9486

9798

4014

2783

1604

1628

6466

4101

4128

7127

3262

6332

2076

1860

5834

4580

9057

2614

7852

3789

2897

9194

6317

6276

4285

5610

6945

9137

8348

5434

9162

4303

6779

5025

5137

4630

3535

4048

2697

2438

9791

3903

3650

4899

1557

4745

2573

6288

5421

1563

9385

6545

5061

3905

1074

7840

4596

7537

5961

8327

2104

1055

3317

1282

5368

6571

5440

8274

1919

6789

4542

3570

1500

7044

9288

5302

7577

4018

4619

4922

3297

5898

1699

9276

4439

2729

8725

7507

6736

2566

3227

7901

2973

2353

4805

2546

3406

4824

2060

8645

5886

7549

9279

3310

5429

6344

4100

9604

1146

9234

6202

3477

1492

4800

2194

9937

1304

3454

5477

9230

5382

4064

8472

8262

6724

7219

9968

3398

10

3题目:

题目3:

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

请编制函数STROR(),其函数功能是:

以行为单位把字符串中的所有小写字母O左边的字符串内容移到该串的右边存放,然后并把小写字母O删除,余下的字符串内容移到已处理字符串的左边存放.最后把已处理的字符串仍按行重新存入字符串数组XX中,最后调用函数WRITEDAT()把结果XX输出到文件OUT.DAT中.

例如:

原文:

Youcancreateanindexonanyfield.

youhavethecorrectrecord.

结果:

nanyfield.Youcancreateanindex

rd.yuhavethecrrectrec

原始数据文件存放的格式是:

每行的宽度均小于80个字符,含标点符号和空格.

-------------------

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

答案:

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

{intI,j,k,index,strl;

charch;

for(I=0;

maxline;

{strl=strlen(xx[I]);

index=strl;

for(j=0;

strl;

if(xx[I][j]=='

o'

{for(k=j;

k<

strl-1;

k++)

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

xx[I][strl-1]='

'

;

index=j;

for(j=strl-1;

j>

=index;

j--)

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

for(k=strl-1;

k--)

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

xx[I][0]=ch;

voidStrOR(void)

{inti;

chara[80],*p;

for(i=0;

i<

{p=strchr(xx[i],'

while(p)

{memset(a,0,80);

memcpy(a,xx[i],p-xx[i]);

strcpy(xx[i],p+1);

strcat(xx[i],a);

p=strchr(xx[i],'

voidStrOR(void)/*我的非指针解法*/

{inti,righto,j,k;

chartem[80];

for(i=0;

{k=0;

righto=0;

memset(tem,0,80);

for(j=strlen(xx[i])-1;

=0;

{if(xx[i][j]=='

){righto=j;

for(j=righto+1;

strlen(xx[i]);

j++)tem[k++]=xx[i][j];

righto;

{if(xx[i][j]!

='

)tem[k++]=xx[i][j];

strcpy(xx[i],tem);

}}

注:

题目要求的字符串中所有小写字母o左边的字符串内容移到该串的右边存放,即

将串中“最后”一个字母o左右两侧的内容互换。

题中第一个while()特环的作用是让p1

指向最后一个字母'

第一个ctrcat()函数的作用是将p1以后的字符都放到新串t中

,第二个strcat()函数的作用是将p1以前的字符连接到新串t的后面(注意:

在些之前要

让p1所指的单元成为p1前面字符串的结束位置*p1='

\0'

)。

这时完成左右互换。

最后

一个while()循环的作用是删除新串中的所有小写字母'

,采用的删除方法是不是'

的字母一律留下,否则不留(即相当于删除。

{inti;

char*p1,*p2,t[80];

{t[0]='

p2=xx[i];

while(*p2)

{if(*p2=='

)p1=p2;

p2++;

strcat(t,p1+1);

*p1='

strcat(t,xx[i]);

p1=xx[i];

p2=t;

{if(*p2!

)*p1++=*p2;

该题的主要算法是先让两字符指针都指向串尾,然后使一指针(p1)往前移动,当

出现不是字母时则表示在p1+1与p2之间是一个单词,并将该单词存入一变量(t1),最后

将t1连接到新串中(t);

接着再往前找第二个单词,依次类推直到字符串头。

由此可知

新串就是原串中各单词的倒排。

voidStr0L(void)

inti,k;

char*p1,*p2;

chart[80],t1[80];

{p2=p1=strchr(xx[i],'

)-'

t[0]=t1[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<

xx[i])k=0;

strcpy(xx[i],t);

#include"

stdio.h"

string.h"

conio.h"

charxx[50][80];

intmaxline=0;

intReadDat(void);

voidWriteDat(void);

voidStrOR(void)

{clrscr();

if(ReadDat())

{printf("

Can'

topenthefile!

return;

StrOR();

WriteDat();

intReadDat(void)

{FILE*fp;

inti=0;

char*p;

if((fp=fopen("

"

))==NULL)return1;

while(fgets(xx[i],80,fp)!

=NULL)

{p=strchr(xx[i],'

\n'

if(p)*p=0;

i++;

maxline=i;

fclose(fp);

return0;

voidWriteDat(void)

inti;

fp=fopen("

%s\n"

xx[i]);

fprintf(fp,"

youhavethecorrectrecord.

Youcancreateanindexonanyfield,onseveralfieldstobeused

together,oronpartsthereof,thatyouwanttouseasakey.The

keysinindexesallowyouquickaccesstospecificrecordsanddefine

ordersforsequentialprocessingofaISAMfile.Afteryounolonger

needanindex,youcandeleteit.Additionandindexeshavenoeffect

onthedatarecordsoronotherindexes.

Youmaywantafieldinfieldineachrecordtouniquelyidentifythat

recordfromallotherrecordsinthefile.Forexample,theEmployee

Numberfieldisuniqueifyoudonotassignthesamenumbertotwo

differentemployees,andyouneverreassignthesenumberstoother

employees.Ifyouwishtofindormodifytherecordbelongingtoa

specificemployee,thisuniquefieldsavesthethoubleofdetermining

whetheryouhavethecorrectrecord.

Ifyoudonothaveauniquefield,youmustfindthefirstrecord

thematchesyourkeyanddeterminewhethertherecordistheoneyou

want.Ifitisnotthecorrectone,youmustsearchagaintofindothers.

Ifyouknowthatyouhaveauniquefieldwithinyourrecords,you

canincludethisfactinthekeydescription,andISAMwillallowonly

uniquekeys.Forexample,ifyouspecifythattheemployeenumbersare

unique,ISAMonlyletsyouaddrecordstothefilefor,orchange

numbersto,employeenumbersthatdonotalreadlyexistintfile.

nanyfield.Yucancreateanindex

rd.yuhavethecrrectrec

beusedYucancreateanindexnanyfield,nseveralfieldst

useasakey.Thetgether,rnpartstheref,thatyuwantt

rdsanddefinekeysinindexesallwyuquickaccesstspecificrec

ngerrdersfrsequentialprcessingfaISAMfile.Afteryunl

effectneedanindex,yucandeleteit.Additinandindexeshaven

therindexes.nthedatarecrdsrn

uniquelyidentifythatYumaywantafieldinfieldineachrecrdt

yeerecrdfrmalltherrecrdsinthefile.Frexample,theEmpl

Numberfieldisuniqueifyudntassignthesamenumberttw

therdifferentemplyees,andyuneverreassignthesenumberst

aemplyees.Ifyuwishtfindrmdifytherecrdbelngingt

fdeterminingspecificemplyee,thisu

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 研究生入学考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1