国家三级(网络技术)机试模拟试卷32_第1页
国家三级(网络技术)机试模拟试卷32_第2页
国家三级(网络技术)机试模拟试卷32_第3页
国家三级(网络技术)机试模拟试卷32_第4页
国家三级(网络技术)机试模拟试卷32_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

国家三级(网络技术)机试模拟试卷第

1套

一、程序设计题(本题共7题,每题7.0分,共]分。)

1、在文件in75.dat中有200组数据,每组有3个数,每个数均为3位数。函数

readDa(()是读取这200组数存放到结构数组aa中。请编制函数JsSort(),其函数的

功能是:要求在200组数据中找出条件为每组数据中的第一个数大于第二个数加第

三个数之和,其中满足条件的个数作为函数JsSortO的返回值,同时把满足条件的

数据存入结构数组bb中,再对bb中的数按照每组数据的第一个数加第三个数之和

的大小进行升序排列(第一人数加第三个数的和均不相等),排序后的结果仍重新存

入结构数组bb中。最后调用函数writcDat。把结果bb输出到文件out75.dat。注

意:部分源程序已给出。请勿改动主函数main。、读函数readDat()和写函数

wriieDal。的内容。试题程序:#include<stdio.h>#include<string.h>#include<

conio.h>typcdefstruct{intxl,x2,x3;}Data;Dataaa[200],bb[200];intjsSort(){}void

main(){intcount;readDat();counf=jsSort();writeDat(count);}readDat(){FII.F.*in;

inti;in=fopen(',in75.dat","r");for(i=0;i<200;i++)fscanf(in,

"%d%d%d",&aa[i].xl,&aa|i].x2,&aa[i].x3);fclose(in);}writeDat(intcount){FILE

*out;inti;clrscr();out=fopen(,'out75,da(",,,w");for(i=0;i<coun(;i++)(printf("%d,

"%d,"%d,第一个数+第三个数=%d\n",bb[i].xl,bb[i].x2,bb[i].x3,bb[i].xl+bb[i].

x3);fprintf(out,H%d,%d,%d\n",bb[i].xl,bb[i].x2,bb[i].x3);}fclose(out);}

标准答案:inljsSort。{inti,j,count=0;Dataval;for(i=0;i<200;i++)if(aa|i].xl>

aa[i].x2+aa[i].x3)/*如果每组数据中的第,个数大于第二、三个数之和*/{bb

[count].xl=aa[i].xl;/*把满足条件的数据存入结构数组bb中*/

bb[count].x2=aa[i].x2;bb[count].x3=aa[i].x3;count++;/*统计满足条件的数据的组

数*/}for(i=0;i<count-l;i++)/水对bb中的数按照每组数据的每一个数加第三个数

之和的大小进行升序排列*/for(j=i+l;jVcounl;j++)if(bb[i).xl+bb[i].x3>

hh[j].xl+bb[j].x3){val=bb[i);bb[i]=bb[j];bb[j]=val;}returncount;/*满足条件的数

据的组数*/}

知识点解析:本题考查的知识点如下:(I)结构体及结构数组。(2)数据的排序。

⑶函数的返回值。本题中,定义了结构类型和结构数组,这就要涉及到结构体和

结构数组的访问。相同类型的结构体变量之间可以直接赋值,也可以依次对结构体

中的每个变量进行赋值或访问。排序使用“选择排序法函数的值通过reium语句

返回,格式为:retu门1表达武或return(表达式)或retum,函数没有返回值时用第

3种格式。在本题中,要用第1种或第2种格式。

家三级(网络技术)机试模拟试卷第

2套

一、程序设计题(本题共7题,每题7.0分,共I分。)

已知数据文忏indw中存有300个四位敷.并已调用读

函数rcadDatO把这些敷存入数组a中.请编制一用数

j«VWuc().其功能是1求出千位敷上的敷茂百位数上的敷减

十位数上的故履个位数上的故大于事的个敷ent,再把所有

濡足此条件的四位数依次存入数蛆b中,然后对数组b的四

位数按从小到大的事序进行持序.最后min()函数调用写函

ftwriteDitO把数组b中的敷,出到文件out.dat中.

例如।9123,9-1-2-3X),则该数满足条件存入数但b

中,且个数cnt=cnt-l・

9812.9-8-1-20,则该数不满足条件忽略.

注重:像分源程序存在teste文件中.

程序中已定义敷蛆:《(叫0卜b(300].巳定义文・:cm

请勿改动数据文件in.dat中的任何数据、主函数mam()、

读函数readDatO和写函数writeDatO的内容.

tinclude<stdio.h>

inta(3001,b(300),cnt-O;

BI8a[30O],b(300]fO«lent,并Hent的初值为0

3voidwriteDat();

4voidreadDat();

5voidjsValue()

6

8

main()

int1;

readDat();

JsValueO;

writeDat{);

printf("cnt-td\n",ent);

for(1-0;i<ent;i**)

printf(-b(%dl-W\n",1,b(i]);

voidreadDat()

20

21FILE*fp;

22int1;

23fp-fopen("in.dat","r");

24for(i-0;1<300;

25fscanf(fp,(a(i));

26fcloae(fp);

28voidwriteDat()

29!(

30!FILE-fp;

31iint1;

fp=fopen("out.cat","w");

fprintf(fp,"%d\r",ent);

for(i-0;i<ert;1)♦)

35ifprintf(fp,"%d\n",b[l]);

36;fclose(fp);

1、37!}

#include#include#include#defineLINE50#defineCOL80char

inBuf[LINEJ|COL+l];in(totleLine=0;//文章的总行数intreadDala(void);

voidwritcData(void):voidrcplaccChar(){}voidmain(){system("CLS");

if(readData()){printf("IN.DATcan'tbeopen!\n\007"):return;}

replaceChar();writeData();)ilitreadData(void){FILE*fp;inti=0;char*p;

if((fp=fopen("IN.DAT","r"))==NULL)return1;while(fgets(inBuf[i],COL+1,

fp)!=NULL){p二strchr(inBuf[i],if(p)*p='\O';i++;}totleLine=i;

fclose(fp);return0;}voidwriteData(void){FILE*fp;inti;

fp=fopen("OUT.DAT","w"):for(i=0;i

标准答案:voidreplaceChar(){inti,j,str;chary;for(i=0;

i='a,&&y<=*Z,))coniinuc;//若符合条件,不进行转换elseinBuf[i][j]=y;//

否则进行转换}}}

知识点解析:本题考查的主要是字符与其对应的ASCII码之间的转换及对ASCII

码进行操作。首先计算出每行字符串的长度,再根据替换规则进行相应的替换。

国家三级(网络技术)机试模拟试卷第

4套

一、程序设计题(本题共7题,每题分,共7分。)

已知数据文件中存有300个四位数,并已调用读

函数ZDitO把这拄数存入数坦a中,请编制一的数

jsValue().其功能是:求出个位依上的数减千位数上的数减

百位数上的数城十位数上的数大于零的个数ent,再把所有

满足此条件的四位数依次存入数级b中,然后对数组b的四

位数按从大到小的履序进行排序•・后nuinO函数调用写函

ftwriteIXtOlE敷组b中的数■出到文件outdat.

例如।1239,9-1-2-3M),则该敷满足条件存入数组b

中,且个数cnfcnt+L

8129.9-8-1-20,划祺败不满足条件忽略.

注意।部分源程序存在te«.c文件中.

程序中已定义效组,>(V»].NW0].已定义变■,ent

请勿改动数据文件in.dal中的任何数据、主函数main。、

读俄数readDatO和写曲数writeDatO的内容.

♦include<stdio.h>

2intaOOO],b(300],cnt-0;

voidreadDat();

voidwriteDat();

5voidjsValue()

6

7

8

9

10

11inti;

12readDat0;

jsValueO;

writeDat();

printf("cnt-%d\n",ent);

for(i-0;i<ent;i++)

printf("b(%d]-W\n-,i,b[i]);

18

19voidreadDat()

20

21FILE*fp;

22inti;

fp■fopen("in.dat","r");

for(i-0;1<300;i++)

25fscanf(fp,

26fclose(fp);

27

28voidwriteDat()

29

30FILE-fp;

int1;

32fp■fopen("out.dat","w");

33fprintf(fp,7d\n",ent);

34for(i-0;i<ent;i++)

35fprintf(fp,-%d\n-,

36fclose(fp)i

1、37

inti,j,qw,bw,sw,gw,tmp;

2for(1-0;i<300;i**)

3(

4qw-a(i)/1000;

5bw-(a[i)-qw•1000)/100;

63w-(a[l)-qw•1000-bw*100)

/10;

7gw■a[i)110;

8if(gw-qw-bw-sw>0)〃如果

a(i)个付数M干位数减百位数It十位数大于零

9b[cnti)-a(i);

10}

11for(i-C;i<cnt-1;

12for(j-i*Ijj<ent;

13if(b[ij<b(jj)〃如果b(U小于则

两者进行互换,b中的元素彼从大到小的■阳I序

14(

15tmp-b(j);

16b[j]-b(i];

17b[i),tmp;

标准答案:

知识点解析:通过审题可以发现有两个不同点:①要求统计的四位数的条件是“个

位-千位-百位-十位数大于零的个数”,参考答案的第8条语句修改if语句的判断条

件即可。②将统计结果按从大到小的顺序排序,参考答案的第13条语句,修改两

数组元素的大小比较符即可。另外,对于数据交换的整型变量imp可以自定义其

变量名。

家三级(网络技术)机试模拟试卷第

5套

一、程序设计题(本题共[题,每题i.o分,共I分。)

已知敷犯文件in."中存有3W个四位数,并已调用读

函敷readDat()把这些数存入败型a中,请馆制一函数

jsValueO.其功能是:求出千位数上的数加个位数上的数等

于百位数上的数加十位数上的数的个数cm,再把所有满足

此条件的四位数依次存入数组b中,然后对数组b的四位数

技从小到大的■序进行排序.最后mainO函数调用写函数

writeDatO把数组b中的数输出到文件outdat中.

例fth6712,6*2-7+1,则该数浦足条件存入我馆b

中,且个效cnt-cnt+l・

8129,8*921+2,则谟敛不摘足条件售略.

注意।部分源程序存在te«t.c文件中.

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

请勿改动数据文件in.dat中的任何数据、主函数main。、

读函数rtadDatO和写函数writeMQ的内容.

1finclude<stdio.h>

2inta(300],b[300]rcnt-0;

3voidwriteDat();

voidreadDat();

5voidjsValue()

7

8

9main()

10

11intli

12readDat();

13jaValueO;

14writeDat();

15printf("cnt-»d\n",ent);

16for(1-0;i<ent;1+♦)

17printf("b[td]-%d\n-,i,b(i]);

18

19voidreadDat()

20

21FILE*fp;

22inti;

23fp-fopen("in.dat","r");

24for(1-0;i<300;i++)

25fscanf(fp,"M,",6a[i));

26fclose(fp);

27}

28voidwriteDat()

29

30FILE*fp;

inti;

32fp-fopen("out.dat","w");

33fprintf(fp,"%d\n",ent);

34for(i-0;i<ent;i++)

35fprintf(fp,"W\n",b(i));

36fclose(fp);

1、37

1inti,j,qw,bw,swrgw,tmp;

2for(i-0;i<300;i++)

3

4qw-a(l]/1000;

5bw-(a[i)-qw•1000)/100;

6sw-(a[1]-qw-1000-bw*100)

/10;

7gw-a(i]%10;

8if(qw♦gw-bw-sw--0)〃如果

MR千位上数加上K个位上的做it去其百<4上的数M

去其十位上跤1R号于0

9b[cnt-»+]=a[i];

10}

11for(1-0;i<cnt-1;

12for(j-1♦1;j<ent;,+♦)

13if(b[i]>b(J])

14(

15tmp-b[j];

16b[j]-b[i];

17b(i)-tmp;

标准答案:18

知识点解析:通过审题可以发现仅有一个不同点,即要求统计的四位数的条件是

“个位+千位=百位+十位”,参考答案的第8条语句,修改if条件语句的判断条件即

可,对于数据交换的整型变量tmp可以自定义其变量名。

福家三级(网络技术)机试模拟试卷第

6套

一、程序设计题(本题共7题,每题7.0分,共7分。)

心如£18文付44个力有300个四位・・弁已调刖0

喙数ZDMOIC道或■律人flkta•中.请・・r触

算《30,普功・・,求出所,在残四位・是索数第个数61・

〃七所有■足H餐骨的网总数俺次存入0・b中.B6JHB

■b的四位数搐从小到大的■序城行神序.♦£z)*at

•㈣耳■触EeOtKHClklllb中的数■出到M3文件中.

例fth$591附诊0•尾条件存入■©b中.

9tl2«UgB.用逼数不■足♦件总■・

rts.■分■!»序存在・tci:件中.

“序中已定文•融:M)OObMXJO).已定又安■・OK

调为为动fltK文传■"中的任MVUK,工D.

金"故ZXMP;・@wnteX湖内寿.

1linclud*<stdio.h>〃BC«B4••何立■多■停

♦y畲YQ中豺”感・人・出客*bob

2inta(300Eb(300hcnt-01//«At«

*Q«(>OOUt>t300|«taent.>MJlM<MtMW

ao

3;voidr«id9«t();〃・■r*a<n«e

4,voidwrlt«D<tO;〃,,Et4FiR”

.

5voidjsV«lu«(>;〃嫉■I,V3IM()R■・旬

6intltP<int»>〃■・

■・AMi.ffMMo

7(

8intit

9for<i>2i1<BJ//•»««iA

,•氏・■・■夫予•・由■算

10*if(a11-0)

11ireturn01//■■•・■[3・AHo

12;return1;1

13;I

H!void"Value”

15!«

16;

17;»

It!voidMini)

19:(

20jint1;Z/CX4Ii

21•r«adDat(>i//HHrzdXtc■•从■・工

f!M»个穴位■郦人■■•中

22;jsValueO;〃・咫・■]*vaiu«<tMN

京■■第

23;wrlt«D«tOJ〃,用writ«D«t<i4*Eit*

中入Mttlb♦立・・金文C

24•prlntf(•cnt-%d\n*,ent)/〃在・•上

■市■■的个・

25;for(i•0j1<ent;!♦♦>

prlntf<-b(%d|-%d\n*,1,bfl]);

/,•・•上.・不,■•中的唐♦元Ji

27jI

2t-voidreadlXat()

Ml<

30•FXLZ*fpj//tAXHIMtCftCp

31jintii//CXBVftOi

32:fp-fop«n<"in.daf,*£*>>〃口只■的

HMnMla.4at.

33•for<l-0:1<300i,♦♦>

34ifscanf(fp,4«U))i//MX

#in.<tet中it取)00个内付■■■■•中

35Ifclos«(fp>t//XflIX#in.dec

36j)

37\voidvrlteDat<)

3,!(

3>jFXLI*fp;//tXIRIMtfttfp

40!intif//»Xe««fli

w

41!fp-fopen("out.dat*f*w);//OAH

out.dat.umrpaAittx#

42;fprlntf(fp«-ld\n*,cnt)f./£・■6

•MIWAflinout.dat

43•for(l-0j1<ent/1♦♦>

44;fprinef(fp»"IdKn-,bUBi//Eft

jfl•out.oat

45|fclos«(fp)i//AIQX#o«t.d«t

1、“!!

intI,j,tmp;〃定义■型变■i,力tmp

ford-0;i<300;1+♦)〃•环殳・1

从。依次it!•到299

if(isP(a(i]))b(cnt*+]-a(i];〃

如果做蛆几是腐敢,则蛤b(cnt).H

M败组下标支■entMl

4;for(i-0;i<ent;〃l1环交・L

!从。开贴俄次遇地,通到其值等于ent

5!(

6•for(j■i♦1;j<ent;,♦+)〃Jt环

;文・1从2♦1开始依次送*.H到其值等于ent

7J(

8\if(b[ij>b[j])〃如果敷出元素b⑴大于

!b(j].则进行互换

9

tmp-b[j];〃把b[j)的值X蛤交Itsp

b[j]-b(i];〃纪”外的值院岭b(〃

b(i)»tmp;〃把殳量t«p的值Kiftb(l】

14•}

IS\]

标准答案:

知识点解析:①首先定义两个循环变量循环i、j和一个月于数据交换的整型变量

imp.②通过for循环依次读取数组中的300个数,其中,循环变量i从0开始每

次加1,直到i<300停止循环:在每次循环中判断a[i]是否是素数,如果是素数,

则把a[i]的值赋给数组b[cni],同时数组下标变量cm值加I。③在退出循环后,

用两个for循环对数组b口中元素进行两两比较,实现数组元素从小到大的排序,

比较过程中通过整型变量tmp实现两个数的交换。

眼家三级(网络技术)机试模拟试卷第

7套

一、程序设计题(本题共[题,每题7.0分,共7分。)

C知数嫂豆忏INLDATfOIN2gAT中分别存有100个

两位十进制数,并旦已■用该函败用这两个文件中

的依存入数《1a和b中.请考生■制一个函故””.实现

的功能是依次对数Ifla和b中的数按条件重新蛆成一个新收

片依次存入效机c中,WMRffic中的故技从小到大的■序

迸行ft序.调用•出的数WTKCDM(虎MKc输出总文

件out&!中.

忸成新政的条件・如果敷ta・fob中相网下修位置的敷

均他奇敏.剜敷创・中十位我字为1sls的干Q数字,个位依

字仍为新政的个位数字.数例6中的十位数字为新政的有位

败?.个位故字为新收的十位敬字,这样姐应的嫌数并存入

例如!■>123124152115

b:324517271815

ci3451!27S1155

桂序后备11”1275M51

注■:■分毒程序存在EC文件中.

界序中已定义,&100).b(100)l0c(100:.

请勿改动依据文件INLDAT和IN2.DAT中的任何依

据.主0数mainO.i*房故rcadDatO和写身数write8to

的内最

tinclucto<stdio.h>

tdefineMAX100

inta[HAX]#b|MAXhc(MAX];

intent-0;/•存放畜介条件依的个故•/

voidjsVal()

N1BATXN2BAT中能100个角位)建

■■在入中〃

voidreadDatO

int1;

FILE・fpj

aN

fp•fopen(inl.dat,"r");

ford■0;i<MAX;,4♦)

15fscanf<fp,

16fclose(fp);

17fp-fopenfin2.dat","r");

18for(i-0;i<MAX;

19fscanf(fp,4b(D);

20fclose(fp);

21

22voidnainO

23

24intXjvvidw<ItvDet<);

25for(1-0;1<MAX;

26C(i)-0j

27readDat();

28

29ford-0;1<MAXc(i|>0;1>♦)

30printf("ld\n-,G(1J);

31vriteDat();

out1中•/

33voidwrit«Dat()

34

35FILE*fpj

36int1;

fp-fopen("out.dat"r-L”

38for<i-0;1<MAX46c[i|>0;

39fprintf(fprc(l)>;

40fclos«<fp);

1、

intirjrtmp;

"时数a和b中每个元K逐个母行如果a(i]

和bC)同时为奇数,由all】的十位数字为新敷的千位数

字,个位数字为新《t的个位敷字,b【w的十位数字为新依

的百位敷字,个位敷字为断数的♦•位数字.£这个新馅成

的也存入・华北Kc[cn)•同时敷蛆下标度量cnAll*/

for(i-0;i<MAX;

if((a[il%2)4(b(i]%2))〃加果

同时为奇依

5c(cnt**]-(a[i]/10)*1000*(b[i]/10)

•100+(b(i]%10)*10*a(i]%10;

6

c中的元腐技从小到大的■序进行挎序•/

7for(1-0;1<ent;[♦+)

8for(j-i*l;j<ent;j++)

9(

10if(c(i]>c(j]>〃如果敷蜗元*cm

大于cij】・期网者遗行互援

11:

12!tmp-c(i];

13>c[i]-c[jj;

14ic(j]-tmp;

15\

16\)

标准答案:

知识点解析:①定义整型循环变量i、j和局部变量tmp。②在for循环语句中,

循环变量i从0开始,依次递增直到其值等于或大于M

温馨提示

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

评论

0/150

提交评论