國(guó)家三級(jí)信息管理技術(shù)機(jī)試模擬試卷1(共9題)_第1頁(yè)
國(guó)家三級(jí)信息管理技術(shù)機(jī)試模擬試卷1(共9題)_第2頁(yè)
國(guó)家三級(jí)信息管理技術(shù)機(jī)試模擬試卷1(共9題)_第3頁(yè)
國(guó)家三級(jí)信息管理技術(shù)機(jī)試模擬試卷1(共9題)_第4頁(yè)
國(guó)家三級(jí)信息管理技術(shù)機(jī)試模擬試卷1(共9題)_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

國(guó)家三級(jí)信息管理技術(shù)機(jī)試模擬試卷1

(共9套)

(共9題)

國(guó)家三級(jí)信息管理技術(shù)機(jī)試模擬試卷第

1套

一、程序設(shè)計(jì)題(本題共[題,每題7.0分,共]分。)

1、在文件IN30.DAT中有200組數(shù)據(jù),每組有3個(gè)數(shù),每個(gè)數(shù)均是3位數(shù)。函數(shù)

readDat。是讀取這200紐數(shù)據(jù)存放到結(jié)構(gòu)數(shù)組aa中。請(qǐng)編制函數(shù)jsSort(),其函數(shù)

的功能是:要求在200組數(shù)據(jù)中找出條件為每組數(shù)據(jù)中的第二個(gè)數(shù)大于第一個(gè)數(shù)加

第三個(gè)數(shù)之和,其中滿足條件的個(gè)數(shù)作為函數(shù)jsSort()的返回值,同時(shí)把滿足條件

的數(shù)據(jù)存入結(jié)構(gòu)數(shù)組bb中,再對(duì)結(jié)構(gòu)數(shù)組bb中的數(shù)據(jù)按照每組數(shù)據(jù)的第二個(gè)數(shù)加

第三個(gè)數(shù)之和的大小進(jìn)行降序排列,排序后的結(jié)果仍重新存入結(jié)構(gòu)數(shù)組bb中,最

后調(diào)用函數(shù)writeDat。把結(jié)果bb輸出到文件OUT30.DAT中。注意:部分源程序已

給出。請(qǐng)勿改動(dòng)主函數(shù)main。、讀函數(shù)readDat。和寫(xiě)函數(shù)writeDat。的內(nèi)容。試題

程序:#include<stdio.h>#include<string.h>#include(conio.h>typedefstruct{int

xI,x2,x3;)Data;Dataaa[200|,bb|2001;intjsSort()[main()(intcount;readDat();

count=jsSort。;/*返回滿足條件的個(gè)數(shù)*/writeDat(count);}readDat()(FILE*in;

inti;in=fopcn(nIN30.DAT",Hr");for(i=0;i<200;i++)fscanf(in,"%d%d%d”,

&aa[ii.xl,&aa[i].x2,&aa[i].x3);fclose(in);)writcDatfintcount){FILE*out;inti;out=

fopen("OUT30.DAT",Hw");clrscr();for(i=0;i(count;i++){printf(H%d,%d,%d第二

個(gè)數(shù)+第三個(gè)數(shù)=%<15',bb[i].xl,bb[i].x2,bb[i].x3,bb[i].x2+bb[i].x3);fprintf(out,

"%d,%5d,%d\nM,bb[i].xl,bb[i].x2,bb[i].x3);}fclose(out);)

標(biāo)準(zhǔn)答案:inijsSort(){inti,cnt=0,j;Datach;for(i=0;i<200;i++)

if(aa[i].x2>aa[i].xl+aa[i].x3)/*如果第二個(gè)數(shù)大于第一個(gè)數(shù)加第三個(gè)數(shù)之和*/{bb

[ent]=aa川;/*則把該組數(shù)據(jù)存入結(jié)構(gòu)數(shù)組bb中*/cnt++;/*統(tǒng)計(jì)滿足條件的數(shù)據(jù)的

組數(shù)*/}for(i=0;i<cnt-l;i++)/*對(duì)結(jié)構(gòu)數(shù)組bb中的數(shù)據(jù)按照每組數(shù)據(jù)的第二個(gè)數(shù)

*/for(j=i+l;j〈ent;j++)/*加第三個(gè)數(shù)之和的大小進(jìn)行降序排列*/

if(bb[i].x2+bb[i].x3<bb[j].x2+bb|j].x3){ch=bb[i];bb[i]=bb[j];bb[j]=ch;)return

ent;/*返回滿足條件的個(gè)數(shù)*/}

知識(shí)點(diǎn)解析:本題考查對(duì)結(jié)構(gòu)體數(shù)組中的元索的各個(gè)域的操作。首先利用一個(gè)for

循環(huán)來(lái)依次取得結(jié)構(gòu)體數(shù)組中的各個(gè)元素,之后按照題目要求對(duì)當(dāng)前的元素的各個(gè)

域進(jìn)行條件判斷,由語(yǔ)句“if(aa[i].x2>aa[i].xl+aa[i].x3)”來(lái)實(shí)現(xiàn)。如果該條件成立,

則把被判斷元素存放到數(shù)組比中去,當(dāng)符合條件的所有元素被找完后,按照“每組

數(shù)據(jù)中的第二個(gè)數(shù)加第三個(gè)數(shù)之和的大小”進(jìn)行從大到小的排序。解答本題的關(guān)鍵

是要弄清被處理對(duì)象是結(jié)構(gòu)體變量中的某個(gè)域,而不是結(jié)構(gòu)體變量本身。

國(guó)家三級(jí)信息管理技術(shù)機(jī)試模擬試卷第

2套

一、程序設(shè)計(jì)題(本題共[題,每題1.0分,共/分。)

1、已知數(shù)據(jù)文件IN56QAT中存有200個(gè)4位數(shù),并已調(diào)用讀函數(shù)rcadDat。把這

些數(shù)存入數(shù)組a中,請(qǐng)編制一函數(shù)jsVal(),其功能是:把千位數(shù)字和十位數(shù)字重新

組合成一個(gè)新的十位數(shù)(新十位數(shù)的十位數(shù)字是原4位數(shù)的千位數(shù)字,新十位數(shù)的

個(gè)位數(shù)字是原4位數(shù)的十位數(shù)字),以及把個(gè)位數(shù)和百位數(shù)組成另一個(gè)新的十位數(shù)

(新十位數(shù)的十位數(shù)字是原4位數(shù)的個(gè)位數(shù)字,新十位數(shù)的個(gè)位數(shù)字是原4位數(shù)的

百位數(shù)字),如果新組成的兩個(gè)十位數(shù)均為素?cái)?shù)且新十位數(shù)字均不為零,則將滿足

此條件的4位數(shù)按從大到小的順序存入數(shù)組b中,并要計(jì)算滿足上述條件的4位數(shù)

的個(gè)數(shù)ent,最后調(diào)用寫(xiě)函數(shù)wrileDal。把結(jié)果ent及數(shù)組b中符合條件的4位數(shù)輸

出到OUT56.DAT文件中。注意:部分源程序己給出。程序中己定義數(shù)組:

a[200],b[200]已定義變量:ent。請(qǐng)勿改動(dòng)主函數(shù)main。、讀函數(shù)readDat。和寫(xiě)函

數(shù)writeDat。的內(nèi)容。試題程序:#include<stdio.h>#defineMAX200int

a[MAX],b[MAX],cnt=O;intisprime(intm){inti;for(i=2;i<=m/2;i++)if(m%i==0)

return0;return1;)voidjsVai(){}voidreadDat(){inti;FILE*fp;

fjp=fopen(MIN56.DAT'V'r");for(i=0;i<MAX;i++)fscanf(fjp/'%du,&a[i]);fclose(fp);}

main(){inti;readDat();jsVal();printf("滿足條件的數(shù)二%d\n",ent);for(i=0;i<

cnt;i++)printf("%d\n",b[i]);printf("\n");writeDat();)writeDat(){FILE*fp;inti;

fp=fopcn("OUT56.DAT"Jw");fprintf(fp,"%d'n",cnt);for(i=0;i<cnt;i++)fprintf(fp,

"%d\n",b[i]);fclose(fp);)

標(biāo)準(zhǔn)答案:voidjsVal(){inti,thou,hun,ten,data,j;intab,cd;for(i=0;i<200;i++)

{thou=a[i]/1000;/*求四位數(shù)的千位數(shù)字*/hun=a[i]%1000/100;/*求四位數(shù)的百位數(shù)

字*/ten二a[“%100/10;/*求四位數(shù)的十位數(shù)字*/data=a[i|%IO;/*求四位數(shù)的個(gè)位數(shù)

字*/ab=10*【hou+ten;/*把千位數(shù)字和十位數(shù)字重新組合成一個(gè)新的十位數(shù)*/

cd=10*data+hun;/*把個(gè)位數(shù)和百位數(shù)組成另一個(gè)新的十位數(shù)*/if(isprime(ab)

&&isprime(cd)&&ab!=0&&cd;=0)/*如果新組成的兩個(gè)十位數(shù)均為素?cái)?shù)且新十位

數(shù)字均不為零*/{b[cnl]=把滿足條件的數(shù)存入數(shù)組b中*/cn1++;/*統(tǒng)計(jì)滿足

條件的數(shù)的個(gè)數(shù)刃))fcr(i=0;i<cnt-l;i++)/*將滿足此條件的4位數(shù)按從大到小的

順序存入數(shù)組b中*/for(3=i+l;j<cnt;j++)if(b|i|<b|j|){data=b[i];b[i]=b[j];

b|j]=data;})

知識(shí)點(diǎn)解析:本題考查的知識(shí)點(diǎn)如下:(1)將4位數(shù)各位上的數(shù)拆分為獨(dú)立的數(shù)

字。(2)循環(huán)結(jié)構(gòu)的使用。(3)判斷結(jié)構(gòu)中多個(gè)條件的布爾運(yùn)算。在本題中,首先

要將4位數(shù)各位上的數(shù)字拆分為獨(dú)立的數(shù)字。這要借助運(yùn)算符“%”(取余)與“/”[整

除)。將一個(gè)4位數(shù)整除1000則可得到其千位上的數(shù)字,除以100D取余再整除

100則可得百位上的數(shù)字,除以100取余再整除10則可得十位上的數(shù)字,除以10

取余則得個(gè)位上的數(shù)字。求得各位上的數(shù)字后,就可以重新組合進(jìn)行比較。題中已

給出判斷素?cái)?shù)的函數(shù),只要帶入求出數(shù)據(jù)即可。各條件必須同時(shí)滿足,所以用“與”

運(yùn)算。題中要求將符合條件的數(shù)按從大到小的順序存入數(shù)組b,可以先將符合條件

的數(shù)存入數(shù)組b,再對(duì)數(shù)組b進(jìn)行排序。排序使用“選擇排序法”。

國(guó)家三級(jí)信息管理技術(shù)機(jī)試模擬試卷第

3套

一、程序設(shè)計(jì)題(本題共7題,每題1.0分,共7分。)

1、下列程序的功能是:在3位整數(shù)(100至999)中尋找符合下面條件的整數(shù),并依

次從小到大存入數(shù)組b中;它既是完全平方數(shù),又有兩位數(shù)字相同,例如144.

676等。請(qǐng)編制函數(shù)imjsValue(inlbb||)實(shí)現(xiàn)此功能,滿足該條件的整數(shù)的個(gè)數(shù)通

過(guò)所編制的函數(shù)返回。最后調(diào)用函數(shù)writeDat。把結(jié)果輸出到文件OUT12.DAT

中。注意:部分源程序已給出。請(qǐng)勿改動(dòng)主函數(shù)main。和寫(xiě)函數(shù)writeDat。的內(nèi)

容。試題程序:#include<Stdio.h>intjsValue(intbb|1)()main(){intb|20]?

num;num=jsValue(b):writeDat(num,b);)writeDat(intnum,intb[]){FILE*

out:inti;out=fopen("OUT12.DAT","W”);fprintf(out,"%d\n",num);

for(i=0;i<num;i++)fprintf(out,,,%d\nu,b|i|);fclose(out);)

標(biāo)準(zhǔn)答案:intjsValue(intbb[]){inti,j,k=O;inthun,ten,data;for(i=100;i<=999;

i++){j=10;while(j*j<=i){if(i==j*j)/*如果該數(shù)是完全平方數(shù)*/{hun=i/100;/*

求該數(shù)的百位數(shù)字*/data二i-hun*100;/*得到的兩位數(shù)*/3=<1212/10;/*求該數(shù)的十

位數(shù)字*/data=data-ten*10;/*求該數(shù)的個(gè)位數(shù)字*/if(hun==ten||hun==data||

ten==data)/*有兩位數(shù)字相同*/{bb[k]=i;/*則把該數(shù)存入數(shù)組bb中*/k++;)/*統(tǒng)

計(jì)滿足條件的數(shù)的個(gè)數(shù)x/}j++;))returnk;/*返回滿足該條件的整數(shù)的個(gè)數(shù)*/}

知識(shí)點(diǎn)解析:解答本題,首先應(yīng)該考慮用一個(gè)for環(huán)來(lái)依次取得100到999之間的

各個(gè)數(shù),并對(duì)當(dāng)前所取得的數(shù)進(jìn)行兩個(gè)條件判斷:一是判斷該數(shù)是否是完全平方

數(shù):二是判斷該數(shù)是否有兩位數(shù)字相同。如果以上兩個(gè)條件同時(shí)滿足,則把該數(shù)存

放到b數(shù)組中,盡管題目要求所存的數(shù)必須從小到大,但我們?nèi)?shù)的過(guò)程本身就是

從小到大取得,因此,排序工作是沒(méi)有必要做的,按照取數(shù)的順序,把滿足條件的

數(shù)值存放到數(shù)組b中就可以了。判斷某個(gè)數(shù)是否是完全平方數(shù)的方法是看該數(shù)是否

可以拆成完全相同的兩個(gè)數(shù)的積(當(dāng)然要拆成的兩個(gè)數(shù)一定是兩位數(shù)),因此,我們

再利用一個(gè)循環(huán)用10以上的兩位數(shù)逐個(gè)去拆被判斷的數(shù),如果被判斷的數(shù)恰好可

以被完全拆分,則第一個(gè)條件成立,接著就開(kāi)始依次取得被判斷的數(shù)的百位、十

位、個(gè)位上的數(shù)字值,看是否有兩位數(shù)字相同。取得每一位上的數(shù)字值可以用

<lhun=i/100:data二i-hun*I00:ten=data/10:data=da【a-ten*10”幾條語(yǔ)句來(lái)實(shí)現(xiàn),hun

變量得到的是百位上的數(shù)字,ten變量得到的是十位上的數(shù)字,data變量得到的是

個(gè)位上的數(shù)字。

國(guó)家三級(jí)信息管理技術(shù)機(jī)試模擬試卷第

4套

一、程序設(shè)計(jì)題(本題共7題,每題7.0分,共[分0)

1、函數(shù)ReadDat。的功能是實(shí)現(xiàn)從文件IN88.DAT中讀取一篇英文文章存入到字符

串?dāng)?shù)組xx中.請(qǐng)編制函數(shù)SortCharA(),該函數(shù)的功能是:以行為單位對(duì)字符按從

小到大的順序進(jìn)行排序,排序后的結(jié)果仍按行重新存入字符串?dāng)?shù)組xx中。最后調(diào)

用函數(shù)WriteDat()把結(jié)果xx輸出到文件OUT88.DAT中。例如,原文:dAe,BfC

CCbbAA結(jié)果:,ABCdefAACCbb原始數(shù)據(jù)文件存放的格式是:每行的寬度均小

于80個(gè)字符,含標(biāo)點(diǎn)符號(hào)和空格。注意:部分源程序已給出。請(qǐng)勿改動(dòng)主函數(shù)

main。、讀函數(shù)ReadDai。和寫(xiě)函數(shù)WrileDal。的內(nèi)容。試題程序:#include<

stdio.h>#include<string.h>#include<conio.h>charxx[50][80);intmaxline=0;int

ReadDat(void);voidWriteDat(void);voidSortCharA(){}voidmain(){clrscr();if

(ReadDatO){printf("數(shù)據(jù)文件IN88.DAT不能打開(kāi)M\00文);return;}SortCharA();

WriteDat();}intReadDat(void){FILE*fp;inti=0;char*p;

if((fp=fopen("IN88.DAT","r"))==NULL)return1;while(fgets(xx[i],80,fp)!=NULL)

{p=strchr(xx[i]/\n,);if(p)*p=0;i++;}maxline=i;fclose(fp);return0;}void

WriteDatO(FILE*fp;inti;clrscr();fp=fopen("OUT88.DAT";'w'');for(i=0;i<

maxline;i++){printf("%s\n",xx[i]);fprintf(fp,"%s\rT,xx[i]);}fclose(fp);}

標(biāo)準(zhǔn)答案:voidSortCharA(){inti,j,k,strl;charch;for(i=0;i<maxline;i++)

{str仁strlen(xx[i]);/*求該行的字符個(gè)數(shù)*/for(j=0;jVstrl-l;j++)/*對(duì)字符按從小到大

的順序進(jìn)行排序*/for(k=j+l;kVstrl;k++)if(xx[i皿>XX[i][K]){ch=xx[i][j];

xx[i]U]=xx[i][k];xx[i][k]=ch;}))

知識(shí)點(diǎn)解析:本題考查的知識(shí)點(diǎn)如下:(1)循環(huán)結(jié)構(gòu)的嵌套。(2)字符的大小匕

較.(3)字符排序。本題以行為單位對(duì)文章進(jìn)行處理,首先要確定每一行中字符的

個(gè)數(shù)。這個(gè)操作可使用字符串處理函數(shù)strlen(char*str)來(lái)完成。對(duì)字符從小到大排

序依據(jù)的是字符的ASCII碼,在C語(yǔ)言中,字符量可參與任何整型運(yùn)算,所以可

以直接使用比較運(yùn)算符進(jìn)行比較。排序使用前面介紹的“選擇拌序法最后使用循

環(huán)結(jié)構(gòu)對(duì)文章中的每一行都進(jìn)行以上的操作。

國(guó)家三級(jí)信息管理技術(shù)機(jī)試模擬試卷第

5套

一、程序設(shè)計(jì)題(本題共I題,每題1.0分,共I分,)

1、下列程序的功能是:選出100?1000間的所有個(gè)位數(shù)字與十位數(shù)字之和被10除

所得余數(shù)恰是百位數(shù)字的素?cái)?shù)(如293)。計(jì)算并輸出上述這些素?cái)?shù)的個(gè)數(shù)ent,以及

這些素?cái)?shù)值的和sum。請(qǐng)編寫(xiě)函數(shù)countValue。實(shí)現(xiàn)程序要求,最后調(diào)用函數(shù)

writeDAT。把結(jié)果ent和sum輸出到文件OUT17.DAT中。注意:部分源程序已

給出。請(qǐng)勿改動(dòng)主函數(shù)main。和寫(xiě)函數(shù)writeDAT()的內(nèi)容。試題程序:#include

<stdio.h>intent,sum;voidcountValue(){}main(){cnt=sum=0;countValue();print

f("素?cái)?shù)的個(gè)數(shù)二%d\n",ent);printf("滿足條件素?cái)?shù)值的和二%d",sum);writcDAT(i;}

writeDAT(){FILE*fp;fp=fopcn("OUT17.DAT'\"w');fprintf(fp,M%d\n%d\n",ent,

sum);fclose(fp);}

標(biāo)準(zhǔn)答案:voidcountValue(){inti,j,half,hun,ten,data;for(i=101;i<1000;i++)

{hun=i/100;/*求百位數(shù)字*/icn=i%100/10;求十位數(shù)字*/daia=i%10;求各位數(shù)字

*/if(hun=(len+dala)%IO)/*如果個(gè)位數(shù)字與十位數(shù)字之和被10除所得余數(shù)恰是百

位數(shù)字,則進(jìn)一步判斷該數(shù)是否為素?cái)?shù)*/{half=i/2;for(j=2;j<half;j++)if(i%j==0)

break;if(j>=half){cnt++;sum+=i;}/*計(jì)算這些數(shù)的個(gè)數(shù)ent,以及這些素?cái)?shù)值的和

sum*/)}}

知識(shí)點(diǎn)解析:本題的解題思路是利用一個(gè)for循環(huán)依次取得100到1000之間的

數(shù),接著求得當(dāng)前所取得的數(shù)的各個(gè)位上的數(shù)字值,語(yǔ)句"hun=i/100:

ten=i%100/10:data二i%10:”可以分別取得某數(shù)的百位、十位及個(gè)位上的數(shù)字值,

然后判斷該數(shù)個(gè)位數(shù)字與十位數(shù)字之和被10除所得的余數(shù)是否恰好等于百位二的

數(shù)字“如果這個(gè)條件成立,接著去判斷原數(shù)是否是素?cái)?shù),這里,考慮到效率問(wèn)題,

可以依次用從2到該原數(shù)本身一半的數(shù)去除原數(shù),如果原數(shù)能被除盡,則證明該數(shù)

肯定不是素?cái)?shù),不需要做下面的工作,接著去取下一個(gè)數(shù),繼續(xù)判斷。只有同時(shí)滿

足上述兩個(gè)條件的數(shù)才是本題所需的數(shù),這時(shí)把該數(shù)累加到變量sum(滿足條件素

數(shù)值的和)中,同時(shí)也給計(jì)數(shù)器變量cnl(素?cái)?shù)的個(gè)數(shù))加lo

國(guó)家三級(jí)信息管理技術(shù)機(jī)試模擬試卷第

6套

一、程序設(shè)計(jì)題(本題共/題,每題1.0分,共I分。)

1、函數(shù)ReadDat。實(shí)現(xiàn)從文件IN47.DAT中讀取1000個(gè)十進(jìn)制整數(shù)到數(shù)組xx中。

請(qǐng)編制函數(shù)Compute。分別計(jì)算出xx中偶數(shù)的個(gè)數(shù)even、奇數(shù)的平均值avel、偶

數(shù)的平均值avc2及所有偶數(shù)的方差toffc的值,最后調(diào)用函數(shù)WriteDat。把結(jié)果輸

N-1

totfc=y(xxfiJ-ave2flN

出到OUT47.DAT文件中。計(jì)算方差的公式如下:內(nèi)設(shè)

N為偶數(shù)的個(gè)數(shù),xx[i]為偶數(shù),ave2為偶數(shù)的平均值。原始數(shù)據(jù)的存放格式是:

每行存放10個(gè)數(shù),并用逗號(hào)隔開(kāi)(每個(gè)數(shù)均大于。且小于等于2000)。注意:部分

源程序己給出。請(qǐng)勿改動(dòng)主函數(shù)main()^讀函數(shù)ReadDat。和寫(xiě)函數(shù)WrileDal。的

內(nèi)容。試題程序:#inckide<stdio.h>#include<stdlib.h>#inchide<string.h>

#defineMAX1000intxx[MAX],odd=0,even=0;doubleavel=0.0,ave2=0.0,totfc=0,0

voidWriteDat(void);intReadDat(void){FILE*fp;in(i,j;

if((fp=fopen("IN47.DAT","rH))==NULL)return1;for(i=0;i<100;i++){for(j=0;j<

10;j++)fscanf(fp,,,%d,,,,&xx[i*10+j]);fscanf(fp,'7nH);if(feof(fp))break;)fclose(fp);}

viodCornpute(void){}voidmain(){inti;for(i=0;i<MAX;i++)xx[i]=0;if(ReadDat())

{printf("數(shù)據(jù)文件IN47.DAT不能打形式!'據(jù)7\n");return;}Compute();

printf("EVEN=%d\nAVEl=%f\nAVE2=%f\nTOTFC=%f\n",even,avcl,ave2,totfc);

WriteDat();)voidWriteDat(void){FILE*fp;inti;fp=fopen("OUT47.DAT",“w");

fprintf(fp,"%d\n%lf\n%lf\n%lf\n",even,avel,ave2,totfc);fclose(fp);}

標(biāo)準(zhǔn)答案;voidCompute(void){inti,yy[MAX];for(i=0;i<1000;i+?)if(xx[i]%2!=0)

{odd++;/*統(tǒng)計(jì)奇數(shù)的個(gè)數(shù)*/avel+=xx|i];/*求奇數(shù)的總和*/}else{even++;/*統(tǒng)

計(jì)偶數(shù)的個(gè)數(shù)*/ave2+=xx[i];/*求偶數(shù)的總和*/yy|even-l]=xx[i];/*將偶數(shù)存入數(shù)

組yy中*/}avel/=odd;/*求奇數(shù)的平均數(shù)*/ave2/二even;/*求偶數(shù)的平均數(shù)*/for

(i=0;i<even;i++)/"*求所有偶數(shù)的方差*/totfc+=(yy[i]-ave2)*(yy|i]-ave2)/even;}

知識(shí)點(diǎn)解析:本題考查的知識(shí)點(diǎn)如下:(1)從文件中讀取數(shù)據(jù)。(2)奇偶數(shù)的判斷和

方差的求法。在C語(yǔ)言中,有一結(jié)構(gòu)體類型FILE,其中包含文件的一些屬性信

息??啥x指針指向該結(jié)構(gòu)體,這個(gè)指針?lè)Q為文件指針。要從文件中讀取數(shù)據(jù),首

先要判斷該文件是否能以“讀”的方式打開(kāi)。若能打開(kāi),使用函數(shù)ini

fscanf(FILE*fp,char*format,args)從fp所指向的文件中依次讀取數(shù)據(jù)°在木題中,數(shù)

據(jù)的存放很有規(guī)律,將數(shù)據(jù)讀出存入數(shù)組xx時(shí),只要控制數(shù)組卜標(biāo)就可以了。若

文件結(jié)束,則退出讀取循環(huán)。最后要關(guān)閉文件。若一個(gè)數(shù)除以2取余得0,則該數(shù)

是偶數(shù),否則為奇數(shù)。由方差公式可知,這是求一些連續(xù)的數(shù)的表達(dá)式的值,所以

可以使用循環(huán)求得方差。

國(guó)家三級(jí)信息管理技術(shù)機(jī)試模擬試卷第

7套

一、程序設(shè)計(jì)題(本題共7題,每題7.0分,共7分0)

1、下列程序的功能是:將一正整數(shù)序列{KI,K2,K9}重新排成一個(gè)新的序

列。新序列中,比K1小的數(shù)都在K1的左面(后續(xù)的再向左存放),比K1大的數(shù)都

在K1的右面(后續(xù)的再向右存放),從K1向右掃描。要求編寫(xiě)函數(shù)jsVahicO實(shí)現(xiàn)此

功能,最后調(diào)用函數(shù)wrileDal。把新序列輸出到文件oul90.dat中。說(shuō)明,在程序中

已給出了10個(gè)序列,每個(gè)序列中有9個(gè)正整數(shù),并存入數(shù)組a[10][9]中,分別求出

這10個(gè)新序列。例如,序列排序前{6,8,9,1,2,5,4,7,3}序列排序后

{3,4,5,2,1,6,8,9,7}注意:部分源程序已給出。請(qǐng)勿改動(dòng)主函數(shù)main。

和寫(xiě)函數(shù)writeDat。的內(nèi)容。試題程序:include<stdio.h>jsValue(inta[10][9])

{)main(){inta[10][9]={{6,8,9,1,2,5,4,7,31,{3,5,89,1,2,64,7),{8,2,19,3,5,4,6,7},

(3,5,12,9,8,674},{4,7,89,1,25,3,6},{4,7,35,1,26,8,9},{9,1,35,8,62,4,7},{2,6』

9,8,35,7,4},{5,3,7,9,1,82,6,4},{7,1,3,2,5,89,4,6},);inti,j;jsVaIue(a);for(i=0;i<10;

i++){for(j=0y<9;j++)(printf("%d\a[i][j]);if(j<=7)printf(";');}printf(n\n");j

writeDat(a);}writeDat(inta[10][9]){FILE*fp;inti,j:fp=fopen("out90.dat",,,w");

for(i=0;i<10;i++){for(j=0;j<9;j++){fprintf(fp,"%d\a口皿);if(j<=7)

fprintf(fp,",");)fprintf(fp,"\n'');)fclose(fp);)

琮準(zhǔn)答案:voidjsValueiinta[10][9]){intvalue,i,j,k,num;for(i=0;i<10;i++)

{value=a[i][0];/*將一行的第一個(gè)元素賦給value*/for(j=Oy<9;j++)if(a[i][j]<value)

/*若后面的數(shù)中有比第1個(gè)數(shù)據(jù)小的數(shù)列{num=a[i][j];/*則把這個(gè)數(shù)取出,賦給

num*/for(k=j;k>0;k—)/*將這個(gè)數(shù)據(jù)左側(cè)的數(shù)依次向右移動(dòng)*/{a[i][k]=a[i][k-l];)

a[i][0]=num;/*再將這個(gè)數(shù)放在最左側(cè)*/}}}

知識(shí)點(diǎn)解析:本題考查的知識(shí)點(diǎn)如下:(1)二維數(shù)組的訪問(wèn)和數(shù)組元素的移動(dòng)。(2)

循環(huán)結(jié)構(gòu)和判斷結(jié)構(gòu)的嵌套使用。數(shù)據(jù)存放在一個(gè)二維數(shù)組中,每一行數(shù)為數(shù)據(jù)

處理的基本單位。將第1個(gè)數(shù)取出依次和后面的數(shù)比較,若后面的數(shù)中有比第1個(gè)

數(shù)據(jù)小的數(shù),則將這個(gè)數(shù)取出。將這個(gè)數(shù)據(jù)左側(cè)的數(shù)依次向右移動(dòng)(包括第1個(gè)

數(shù)),然后將這個(gè)數(shù)放在最左側(cè)。掃描完一行后,比第1個(gè)數(shù)小的數(shù)就都在第1個(gè)

數(shù)的左側(cè),而比它大的就在它的右側(cè)。對(duì)數(shù)的掃描和移動(dòng)均可以使用循環(huán)實(shí)現(xiàn)。再

使用循環(huán)實(shí)現(xiàn)對(duì)每一行數(shù)據(jù)的訪問(wèn)。

國(guó)家三級(jí)信息管理技術(shù)機(jī)試模擬試卷第

8套

一、程序設(shè)計(jì)題(本題共1題,每題7.0分,共1分。)

1、已知數(shù)據(jù)文件IN23.DAT中存有200個(gè)4位數(shù),井已調(diào)用讀函數(shù)readDal。把這

些數(shù)存入數(shù)組a中。請(qǐng)編制函數(shù)jsVal(),其功能是:依次從數(shù)組a中取出一個(gè)4位

數(shù),如果4位數(shù)連續(xù)大于該4位數(shù)以前的5個(gè)數(shù)且該數(shù)是奇數(shù),該數(shù)必須能被7整

除,則統(tǒng)計(jì)出滿足此條件的數(shù)的個(gè)數(shù)cm,并把這些4位數(shù)按從大到小的順序存入

數(shù)組b中,最后調(diào)用寫(xiě)函數(shù)writeDat。把結(jié)果ent及數(shù)組b中符合條件的4位數(shù)輸出

到OUT23.DAT文件中。注意:部分源程序已給出。程序中已定義數(shù)組:a|200],

b[200],已定義變量:ent。請(qǐng)勿改動(dòng)主函數(shù)main。、讀函數(shù)readDat。和寫(xiě)函數(shù)

writeDat。的內(nèi)容。試題程序:include<stdio.h>#defineMAX200inta[MAX],

b[MAX],ent=0;voidjsVal()()voidrcadDat(){inti;FILE*fp:fp=

fopen("IN23.DAT',,HrM);for(i=0;i〈MAX;i++)fscanfffp,M%d",&a[i]);fclose(fp);}

main(){inti;readDat();jsVal();printf("滿足條件的數(shù)二%d\n",ent);for(i=0;i(ent;

i++)printf("%d",b[i]);printf("\n");writeDat();)writeDat(){FILE*fp;inti;fp=

fopen("OUT23.DATu,"w");fprintf(fp,"%d\n'\ent);for(i=0;i(ent;i++)fprintf(fp,

"%d\n",b|i]);fclose(fp);}

標(biāo)準(zhǔn)答案:voidjsVal(){inii,j,flag=0;for(i=5;i<MAX-5;i++)/*如果4位數(shù)連續(xù)大

于該數(shù)以前的5個(gè)數(shù),則置flag為1,否則取下一個(gè)數(shù)*/{for(j=i-5;j<i;j++)

{if(a[i]>a[j])flag=l;else{flag=0;break;})if(flag==1&&a[i]%2==1a&a[i]%7=0)/*

如果flag為1且該數(shù)是奇數(shù),該數(shù)能被7整除,則將該數(shù)存入數(shù)組b中,并統(tǒng)計(jì)滿

足條件的數(shù)的個(gè)數(shù)*/{b[cnt]=a[i];cnt++;))for(i=0;i<cnt-l;i++)/*將數(shù)組b中的

數(shù)按從大到小的順序排列*/for(j=i+l;j<cnt;j++)if(b[i]<b[j]){flag=b[i];

b[i]=b[j];b[j]=flag;})

知識(shí)點(diǎn)解析:根據(jù)題意可知,要編制函數(shù)的功能有兩部分:一是找出滿足條件的4

位數(shù),二是對(duì)找出的數(shù)進(jìn)行從大到小排序。首先利用一個(gè)for循環(huán)來(lái)依次從數(shù)組中

取得4位數(shù),接著拿當(dāng)前得到的4位數(shù)與該數(shù)前而的連續(xù)的5個(gè)數(shù)依次進(jìn)行比較“

如果該數(shù)比它前面的5個(gè)數(shù)都大,則給標(biāo)志變量flag賦值1,接著對(duì)flag進(jìn)行判

斷,如果不為1,則該數(shù)肯定不符合條件,直接去取下一個(gè)數(shù)。若flag值為1,再

來(lái)判斷該數(shù)是否是奇數(shù),如果恰好該數(shù)又能被7整除.則把該數(shù)添加到數(shù)組b中。

這樣就可以依次取出符合條件的數(shù)。然后利用選擇法對(duì)數(shù)組b中的元素進(jìn)行從大到

小的排序。

國(guó)家三級(jí)信息管理技術(shù)機(jī)試模擬試卷第

9套

一、程序設(shè)計(jì)題(本題共7題,每題7.0分,共[分0)

1、已知在文件in37.dal中存有100個(gè)產(chǎn)品銷售記錄,每個(gè)產(chǎn)品銷售記錄由產(chǎn)品代

碼dm(字符型4位)、產(chǎn)品名稱me(字符型10位),單價(jià)dj(整型)、數(shù)量si(整型)、

金額je(長(zhǎng)整型)幾部分組成。其中,金額=單價(jià)x數(shù)量可計(jì)算得出。函數(shù)RcadDat。

的功能是讀取這100個(gè)銷售記錄并存入數(shù)組sell中。請(qǐng)編制函數(shù)SoriDat。,其功能

要求:按產(chǎn)品代碼從小到大進(jìn)行排列,若產(chǎn)品代碼相同,則按金額從大到小進(jìn)行排

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論