版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 咸安區(qū)2026年面向教育部直屬師范大學(xué)公費(fèi)師范畢業(yè)生專項(xiàng)招聘?jìng)淇碱}庫(kù)及答案詳解1套
- 2026年生態(tài)環(huán)保產(chǎn)品采購(gòu)合同
- 2025年浦發(fā)銀行昆明分行公開(kāi)招聘?jìng)淇碱}庫(kù)及答案詳解參考
- 2025年雙溪鄉(xiāng)人民政府關(guān)于公開(kāi)選拔重點(diǎn)公益林護(hù)林員備考題庫(kù)及完整答案詳解一套
- 2025年大寧輔警招聘真題及答案
- 2025年嘉睿招聘(派遣至市第四人民醫(yī)院)備考題庫(kù)帶答案詳解
- 材料失效分析課程設(shè)計(jì)
- 幫別人做課程設(shè)計(jì)是否違法
- 2025年邵東市中醫(yī)醫(yī)院編外合同制專業(yè)技術(shù)人員招聘38人備考題庫(kù)及答案詳解參考
- 2025國(guó)家衛(wèi)生健康委醫(yī)院管理研究所護(hù)理管理與康復(fù)研究部實(shí)習(xí)人員招聘筆試重點(diǎn)題庫(kù)及答案解析
- 2026年動(dòng)物檢疫檢驗(yàn)員考試試題題庫(kù)及答案
- 中國(guó)淋巴瘤治療指南(2025年版)
- 2025年云南省人民檢察院聘用制書(shū)記員招聘(22人)考試筆試模擬試題及答案解析
- 2026年空氣污染監(jiān)測(cè)方法培訓(xùn)課件
- 實(shí)習(xí)2025年實(shí)習(xí)實(shí)習(xí)期轉(zhuǎn)正協(xié)議合同
- 療傷旅館商業(yè)計(jì)劃書(shū)
- 臨床腫瘤診療核心技巧
- 購(gòu)買(mǎi)電影票合同范本
- 2025西部機(jī)場(chǎng)集團(tuán)航空物流有限公司招聘考試筆試備考題庫(kù)及答案解析
- 2025年鮑魚(yú)養(yǎng)殖合作協(xié)議合同協(xié)議
- 2025智慧消防行業(yè)市場(chǎng)深度調(diào)研及發(fā)展趨勢(shì)與投資前景預(yù)測(cè)研究報(bào)告
評(píng)論
0/150
提交評(píng)論