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

下載本文檔

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

文檔簡介

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

1套

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

1、已知在文件IN99DAT中存有100個產(chǎn)品銷售記錄,每個產(chǎn)品銷售記錄由產(chǎn)品

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

型)、金額je(長整型)兒部分組成。其中,金額=單價x數(shù)量可計(jì)算得出。函數(shù)

ReadDaO的功能是讀取這100個銷售記錄并存入數(shù)組sell中。請編制函數(shù)

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

小到大進(jìn)行排列,排列結(jié)果仍存入結(jié)構(gòu)數(shù)組sell中,最后調(diào)用函數(shù)WritedaiO把結(jié)

果輸出到文件OUT99.DAT中。注意:部分源程序已給出。請勿改動主函數(shù)

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

stdio.h>#include<mem.h>#include<string.h>#include<conio.h>#include<

stdlib.h>#defineMAX100typedefstruct{chardm[5];charmc[l1];intdj;intsi;long

je;}PRO;PROsell[MAX];voidRcadDat。;vnidWriteDat();voidSnrtDaf(){}void

main(){memsetsell,0,sizeof(sell));ReadDat();SortDatO;WriteDatO;}voidReadDat()

{FILE*fjp;charstr[80],ch[l1];inti;fp=fopen("IN99.DAT';"r");for(i=0;i<100;i++)

{fgets(str,80,fp);memcpy(sell[i].dm,str,4);memcpy(sell[i].mc,str+4,10);

mcmcpy(ch,str+14,4);ch[4]=0;sell[i].dj=atoi(ch);memcpy(ch,str+18,5);ch[5]=0;

sell[i].sl=atoi(ch);sell[i].je=(long)sell[i].dj*sell[i].sl;}fclose(fp);}voidWritcDat()

{FILE*fp;inti;fp=fopen("OUT99.DAT","wM);for(i=0;i<100;i++)

{fpiintf(fp,"%s%s%4d%5c%101d\".sell[i].dm,sell[i].nic,sell[i].dj,selI[i].sl,sell[i].je);}

fclose(fp))

標(biāo)準(zhǔn)答案:voidSortDatO{intij;PROxy;for(i=0;i<99;i++)for(j=i+l;j<100;j++)

{if/*按金額從小到夫進(jìn)行排列"/{xy=scll[i];scll[i]=sell[j];

sell[j]=xy;}elseif(seH[i].je==sell[j].je)若金額相同if(strcmp(sel1[i].dm,sei1[j].dm)

>0)/*則按產(chǎn)品代碼從小到大進(jìn)行排列*/{xy=sell[i];sell[ij=sell(j];sell|jl=xy}))

知識點(diǎn)解析:本題考查的知識點(diǎn)如下;結(jié)構(gòu)體及結(jié)構(gòu)數(shù)紐;結(jié)構(gòu)數(shù)組的排序;字

符型數(shù)組的比較。本題著重考查結(jié)構(gòu)體變量的訪問、賦值,包括結(jié)構(gòu)體本身及結(jié)

構(gòu)體中各個成員的訪問和賦值。根據(jù)題意要求,我們首先要比較金額。若金額相

同,則比較產(chǎn)品代碼。因?yàn)楫a(chǎn)品代碼為字符型,所以不能使用簡單的比較運(yùn)算符進(jìn)

行比較。在這里,我們使用了字符串處理函數(shù)slrcmp(charchar

*strl2,unsigncdintcout)對其進(jìn)行比較。因?yàn)橐讯x了結(jié)構(gòu)數(shù)組,就可以使用循環(huán)進(jìn)

行比較排序。排序同樣采用前面介紹的“選擇排序法

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

2套

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

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

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

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

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

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

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

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

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

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

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

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

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

returnU;return1;}voidjsVal(){}voidreadDat(){mli;HLE*tp;

fp=fopcn("IN56.DAT,,,"r");for(i=0;iVMAX;i++)fscanf(fp」%d",&a[i]);fclosc(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=fopen("OUT56.DAT","w');fprintf(fp,"%d\n'\cnt);for(i=0;i<cnl;i++)fprintf(fp,

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[i]%100/10;/*求四位數(shù)的十位數(shù)字*/da1a=a|i]%10;/*求四位數(shù)的個位數(shù)

字*/ab=10*thou+ten;/*把千位數(shù)字和十位數(shù)字重新組合成,個新的十位數(shù)*/

cd=10叼ata+hun;產(chǎn)把個位數(shù)和百位數(shù)組成另一個新的十位數(shù)*/if(isprimc(ab)

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

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

條件的數(shù)的個數(shù)*/}}for(i=0;i++)/*將滿足此條件的4位數(shù)按從大到小的

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

b[j|=data;}(

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

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

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

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

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

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

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

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

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

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

3套

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

1、已知數(shù)據(jù)文件IN58.DAT中存有300個4位數(shù),并已調(diào)用讀函數(shù)readDat。把這

些數(shù)存入數(shù)組a中,請編制一函數(shù)JsVakie。,其功能是:求出這些4位數(shù)是素數(shù)的

個數(shù)ent,再把所有滿足此條件的4位數(shù)依次存入數(shù)組b中,然后對數(shù)組b的4位

數(shù)按從小到大的順序進(jìn)行排序,最后調(diào)用函數(shù)writcDatO把數(shù)組b中的數(shù)輸出到

OUT58.DAT文件中。例如:5591是素數(shù),則該數(shù)滿足條件,存入數(shù)組b中,且個

數(shù)cnt=cnt+l。9812是非素數(shù),則該數(shù)不滿足條件,忽略。注意:部分源程序己

給出。程序中已定義數(shù)組:a[300],b[300],己定義變量:ent。請勿改動主函數(shù)

main()>讀函數(shù)readDat。和寫函數(shù)writeDat。的內(nèi)容。試題程序:#include<stdio.h

>inta[3OO],b[3OO],cnt=O;intisP(intm){inti;for(i=2;i<m;i++)if(m%i==0)return0;

return1;}jsValue){}main(){inti;readDat();jsValue();writeDat();

printf("cnt=%d\n",cnt);for(i=0;i<cnt;i++)printf("b[%d]=%d\n",i,b[i]);}readDat()

{FILE*fp;inti;fp=fopen("IN58.DAT","r");for(i=0;i<300;i++)fscanf(fp,"%d,",&a[i]);

fclose(fp);)writeDat(){FILE*fp;inti;fp=fopen("OUT58.DAT","w");

fprintf(fp,n%d\n'\cnt);for(i=0;i<cnt;i++)fprintf(fp,"%d\n",b[i]);fclose(fp);}

標(biāo)準(zhǔn)答案:jsVaiue(){inti.j,value;for(i=0;i<300;i++)if(isP(a[i]))/*如果該數(shù)為

素數(shù),則將該數(shù)存入數(shù)組b中刃{b[cnt]=a[i];cnt++;/*并統(tǒng)計(jì)滿足條件的數(shù)的個數(shù)

*/)for(i=0;i<cnt-l;i++)/*對數(shù)組b的4位數(shù)按從小到大的順序進(jìn)行排序*/for

(j=i+l;j<cnt:j++)if(b[i]>b[j]){value=b[i]:b[i]=b[j];b[j]:value:}}

知識點(diǎn)解析:本題考查的知識點(diǎn)如下:(1)循環(huán)的嵌套。(2)數(shù)據(jù)的排序。在本題

'I',已給出了判斷素數(shù)的函數(shù)voldisP(intm),只需將數(shù)代人進(jìn)行判斷即可。將素

數(shù)存入數(shù)組b,再對數(shù)組b中的數(shù)進(jìn)行排序。排序采用“選擇排序法”——第一次從

第一個數(shù)據(jù)開始和所有后面的數(shù)據(jù)進(jìn)行比較,與比它大(小)的數(shù)據(jù)交換位置,將數(shù)

據(jù)中最大(小)的數(shù)交換到最前面。第二次從第二個數(shù)據(jù)開始與后面的數(shù)據(jù)進(jìn)行比

較,將本次比較中最大(小)的數(shù)據(jù)交換至第二個位置,直至最后一個數(shù)據(jù)。以此類

推,則可完成題目的要求。

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

4套

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

1、在文件IN3.DAT中有200個正整數(shù),且每個數(shù)均在1000至9999之間。函數(shù)

addat。的功能是讀取這200個數(shù)存放到數(shù)組aa中。請編制函數(shù)JsSorr(),該函數(shù)的

功能是:要求按每個數(shù)的后3位的大小進(jìn)行降序排列,將排序后的前1。個數(shù)存入

數(shù)組b中,如果數(shù)組b中出現(xiàn)后3位相等的數(shù),則對這些數(shù)按原始4位數(shù)據(jù)進(jìn)行升

序排列。最后調(diào)用函數(shù)wiltedat()把結(jié)果bb輸出到文件OUT3.DAT中。例如:處

理前90125099601270258088處理后50998088702560129012注意:部分源程序

己給出。請勿改動主函數(shù)inain()、讀函數(shù)readDatO和寫函數(shù)writeDat()的內(nèi)容。試

題程序:#include<stdio.h>#include<string.h>#inckide<conio.h>intaa[200],

bb[10];voidjsSoil(){}main(){readDat();jsSort();writeDat();}rcadDat(){FILE

*in;inti;in=fopen("IN3.DAT","r");for(i=0;i<200;i++)fscanf(in,"%d,",&aa[i]);

fclose(in);}writeDat(){FILE*out;inti;out=fopen("OUT3.DAT","w");clrscr();for(i

=0;i<10;i++){pnntf("i=%d,%d\n,\i+1,bb[i]);fprintf(out,"%d\n';bb[i]);}

fclose(out);)

標(biāo)準(zhǔn)答案:voidjsSort(){intilj.data;for(i=0;i<199;i++)/*對數(shù)組中的4位數(shù)按后

3位進(jìn)行從大到小的排序*/for。=i+l;j<200:j++){if(aa[il%lOOO<aa[j]%1000)

/*比較每個數(shù)的后3位*/{data=aa[i];aa[i]=aa[j];aa|j|=data;}else

if(aa[i]%1000=aa[j]%1000)尸若后3位數(shù)相等*/if(aa[i]>aa[j])/*則要按原4位數(shù)的

值進(jìn)行從小到大的排序*/{data=aa[il;aa[i]=aa[j];aa[j]=data;)}for(i=0;i<lO;i++)/*

將排序后的前10個數(shù)存入數(shù)組b中*/bb[i]=aa[i];}

知識點(diǎn)解析:本題實(shí)質(zhì)上考的是對數(shù)組元素進(jìn)行排序的問題。最容易理解的方法是

選擇法。選擇法的基本思想是:依次用當(dāng)前取得的元素和它后面的其他元素進(jìn)行比

較,比如要從大到小進(jìn)行排序,則只要發(fā)現(xiàn)后面的元素中有比當(dāng)前元素大的,就把

剛發(fā)現(xiàn)的較大的元素與當(dāng)前元素交換,這樣做的目的足當(dāng)與其后的所有元素都比較

完后,可以保證當(dāng)前位置的當(dāng)前元素存放著最大數(shù)。按照同樣的方法去取得次大

數(shù)。由于本題中題目要求要對數(shù)組中的4位數(shù)的后3位進(jìn)行排序,因此,要首先取

得各個數(shù)的后3位并做比較,"aa[i]%1000”就可以得到每個數(shù)的后3位。根據(jù)題

意,對這些數(shù)按后3位進(jìn)行從大到小的排序。若后3位數(shù)相等,則要按原4位數(shù)的

值進(jìn)行從小到大的排序。

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

5套

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

1、下列程序的功能是:利用以下所示的簡單迭代方法求方程:cos(x)?x=。的一個實(shí)

根。xn+1=cos(xn)迭代步驟如下;(1)取xl初值為0.0。(2)x0=x1,把xl的值賦給

xOo(3)xl=cos(x0)?求出一個新的xl。(4)若xO-xl的絕對值小于0.000001,執(zhí)行

步驟(5),否則執(zhí)行步驟(2)。(5)所求xl就是方程cos(x)-x=0的一個實(shí)根,作為函

數(shù)值返阿I。請編寫函數(shù)counlValue。實(shí)現(xiàn)程序要求,最后調(diào)用函數(shù)writeDAT()把結(jié)

果輸出到文件out41.dat中。注意;部分源程序已給出。請勿改動主函數(shù)main。和

寫函數(shù)writeDAT。的內(nèi)容。試題程序:#include<conio.h>#include<math.h>

#include<stdio.h>floatcountValue(){}main(){clrscr();prinif("實(shí)根

=%i\n",countValue());prinifr%f\n",cos(coun【Value())-coun【Value());writeDAT();}

writeDAT(){FILE*wf;wf=fopen(',out41.dat",,,w");fprintf(wf;,%fAn",countValue());

fclose(wf);}

標(biāo)準(zhǔn)答案:floatcountValuei){floatxO,x1=0.0;while(l)(x0=xl;/*將xl賦值給

x0*/xl=cos(x0);/*求出新的xl*/if(fabs(x0-xl)Vle-6)break;/*若xO-xl的絕對值

小于0.000001,則結(jié)束循環(huán)。}returnxl;}

知識點(diǎn)解析:本題考查的知識點(diǎn)如下:(1)數(shù)學(xué)函數(shù)doublecos(douhlcx)及double

fabs(doublex)的使用。(2)使用循環(huán)結(jié)構(gòu)實(shí)現(xiàn)迭代。在本題中,因?yàn)橐笠粋€實(shí)數(shù)

的余弦值,在結(jié)束迭代的時候要判斷絕對值,所以這里要用到數(shù)學(xué)函數(shù)cos(double

x)和fabs(doublex)。先設(shè)一個條件永遠(yuǎn)為真的while循環(huán)結(jié)構(gòu),按照步驟提示,要

先為xl取初值,將xl的值賦給x0,使xl=cos(x0),判斷xO-xl的絕對值將其作為

強(qiáng)行退出循環(huán)的條件。

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

6套

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

1、已知數(shù)據(jù)文件IN44.DAT中存有300個4位數(shù),并已調(diào)用讀函數(shù)readDat。把這

些數(shù)存入數(shù)組a中,請編制一函數(shù)jsValue。,其功能是:求出千位數(shù)上的數(shù)減百位

數(shù)上數(shù)減十位數(shù)上的數(shù)減個位數(shù)上的數(shù)大于零的數(shù)的個數(shù)cni,再把所有滿足此條

件的4位數(shù)依次存入數(shù)組b中,然后對數(shù)組b的4位數(shù)按從小到大的順序進(jìn)行排

序,最后調(diào)用寫函數(shù)writeDatO把數(shù)組b中的數(shù)輸出到OUT44.DAT文件中。例

如:9123,9-1-2-3>0,則該數(shù)滿足條件,存入數(shù)組b中,且個數(shù)cnt=cnt+l。

9812,94-1-2<0,則該數(shù)不滿足條件,忽略。注意:部分源程序已給出。程序中

已定義數(shù)組:a[300],b[300],已定義變量:cm。請勿改動主函數(shù)main。、讀函數(shù)

rcadDal。和寫函數(shù)wrilcDal。的內(nèi)容。試題程序^include<sldio.h>ini

a|3001,b[300J,cnt=0;jsvalue()(}main(){inti;readDat();jsValue();writeDatO;

fbr(i=O;i<cnt;i++)printf("b[%d]=%d\n",i,b[i]);}readDal(){FILE*fp;inti;

fp=fopen("IN44.DAT","r");printf("cnt=%d\n",cnt);for(i=0;i<300;i++)

fscanf(fp,H%d,",&a[i]);fclose(fp);}writcDat(){FILE*fp;inti;

fp=fopen("OUT44.DAT",,,w,);fprintf(fp,,,%d\n",cnt);for(i=0;i<cnt;i++)fprintf(fp,

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

標(biāo)準(zhǔn)答案:jsValue(){inti,thou,hun,ten.data,j;for(i=0;i<300;i++){thou=a

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

ten=a[i]%100/10;/*求四位數(shù)的十位數(shù)字號data=a[i]%10:/*求四位數(shù)的個位數(shù)字*/

if(thou-hun-ten-data>0)/*^1果干位數(shù)減百位數(shù)減十位數(shù)減個位數(shù)大于零*/1b

[ent]=a[i];/*則把該數(shù)存入數(shù)級b中*/cnt++;/*統(tǒng)計(jì)滿足條件的數(shù)的個數(shù)*/}}for

(i=0;i<cnt-l;i++)/*對數(shù)組b的4位數(shù)按從小到大的順序進(jìn)行排序*/for(j=i+l;j<

ent;j++)if(b[i]>b[j]){data=b[ij;b[i]=b(j];b(j]=data;))

知識點(diǎn)解析:本題考查的知識點(diǎn)如下:⑴運(yùn)算符“%”及的使用。(2)循環(huán)結(jié)構(gòu)及

選擇結(jié)構(gòu)的使用。在木題中,首先要將一個4位數(shù)的千位、百位、十位、個位拆

成獨(dú)立的數(shù)字。這里借助特殊運(yùn)算符號“%”(取余)和(整除)。將一個4位數(shù)整除

1000則可得到其千位上的數(shù)字,除以1000取余再整除100則可得百位上的數(shù)字,

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

后按照題意要求將各位依次相減進(jìn)行判斷。最后的排序來用“選擇排序法”。

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

7套

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

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

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

金額je(氏整型)五部分組成。其中:金額=單價x數(shù)量。函數(shù)ReadDatO的功能是讀

取這100個銷售記錄并存入結(jié)構(gòu)數(shù)組sell中。請編制函數(shù)SorlDalO,其功能要求:

按產(chǎn)品名稱從大到小進(jìn)行排列,若產(chǎn)品名稱相同,則按金額從小到大進(jìn)行排列,最

終排列結(jié)果仍存入結(jié)構(gòu)數(shù)組sell中,最后調(diào)用函數(shù)WriteDat。把結(jié)果輸出到文件

OUT2.DAT中。注意:部分源程序已給出。請勿改動主函數(shù)main。、讀數(shù)據(jù)函數(shù)

ReadDat()和輸出數(shù)據(jù)函數(shù)WritcDat。的內(nèi)容。[試題程序]#includc#includc#includc

#include#include#defineMAX100typedefstruct{chardm[5];/*產(chǎn)品代碼*/char

mcll1J;/*產(chǎn)品名稱*/intdj;/*單價*/intsi;/*數(shù)量*/longje;/*金額*/}PRO;PRO

sell[MAX];voidReadDatO;voidWriteDat();voidSortDatO{}voidmain()

{memset(sell,0,sizeof(sell));ReadDat();SortDatO;WriteDalf);}voidReadDatOFILE*

fp;charstr[80],ch[ll];inti;fp=fopcn("IN2.DAT","r");for(i=0;i<100;i++)

{fgets(str,80,fp);memcpy(sell[ij.dm,str,4);memepy(sell[iJ.mc,str+4,10);

memcpy(ch,s(r-?-14,4);ch[4]=0;sell[i].dj=a(oi(ch);memcpy(ch,str+18,5);ch[5]=0;

sell[i].si=atoi(ch);sell[i].je=(long)sell[i].dj*sell[i].sl;}fclose(fp);|voidWriteDat(void)

{FILE*fp;inti;fp=fopen("OUT2.DAT","w");for(i=0;i<l()O;i++)

fprintf(fjp,"%s%s%4d%5d%101d\n,',sell[i].dm,sell[i].mc,sell[L].dj,sell[i].sl,sell[i].je);

fclose(fp);}

標(biāo)準(zhǔn)答案:voidSortDat(){inti,j;PROxy;for(i=0;ifor(j=i+l;j

{if(strcmp(sell[i].mc,sell[j].me)V0)/*按產(chǎn)品名稱從大到小進(jìn)行排列*/

{xy=sell[i];sell[i]=sell[j];sell|j]=xy;)elseif(slrcmp(sell[i].mc,se川j].mc)==0)/*若產(chǎn)品

名稱相同*/if(sc川則按金額從小到大進(jìn)行排列*/

{xy=sell[i];sell[i]=sell[j]:sell[j]=xy:}})

知識點(diǎn)解析:此題型考查的知識點(diǎn)包括以下幾方面:(1)結(jié)構(gòu)體數(shù)組的排序:(2)結(jié)

構(gòu)體及結(jié)構(gòu)體數(shù)組的相關(guān)操作;(3)字符型數(shù)組的比較;(4)C語言庫函數(shù)的使用

(如函數(shù)stremp。)。按產(chǎn)品名稱從大到小進(jìn)行排列,若產(chǎn)品名稱相同,則按金額從

小到大進(jìn)行排列,相應(yīng)語句為:if(strcmp(sell[i]).mc,sell(j]).mc)<

O)||((strcmp(sell[i].mc,sell[j].inc)==O)&&(sell[i].je>sell[j].je)))

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

8套

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

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

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

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

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

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

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

b|200],已定義變量:ento請勿改動主函數(shù)main。、讀函數(shù)readDal。和寫函數(shù)

writeDa

溫馨提示

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

最新文檔

評論

0/150

提交評論