版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
國(guó)家三級(jí)(數(shù)據(jù)庫(kù)技術(shù))機(jī)試模擬試卷8(共9套)(共9題)國(guó)家三級(jí)(數(shù)據(jù)庫(kù)技術(shù))機(jī)試模擬試卷第1套一、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)1、已知數(shù)據(jù)文件IN.dat中存有300個(gè)四位數(shù),并已調(diào)用讀函數(shù)Rdata()把這些數(shù)存入數(shù)組a中,請(qǐng)編寫(xiě)函數(shù)NumCal(),其功能是:求出千位上的數(shù)加個(gè)位上的數(shù)等于百位上的數(shù)加十位上的數(shù)的四位數(shù)的個(gè)數(shù)count,再求出所有滿(mǎn)足此條件的四位數(shù)的平均值A(chǔ)ve1,以及不滿(mǎn)足此條件的四位數(shù)的平均值A(chǔ)ve2。最后調(diào)用寫(xiě)函數(shù)Wdata(),把結(jié)果輸出到OUT.dat文件中。例如:6712,6+2=7+1,則該數(shù)滿(mǎn)足條件,計(jì)算平均值A(chǔ)ve1,且個(gè)數(shù)count=count+1。8129,8+9!=1+2,則該數(shù)不滿(mǎn)足條件,計(jì)算平均值A(chǔ)ve2。注意:部分源程序已經(jīng)給出。程序中已定義數(shù)組a[300],已定義變量count、Ave1、Ave2。請(qǐng)勿改動(dòng)主函數(shù)main()、讀函數(shù)Rdata()和寫(xiě)函數(shù)Wdata()的內(nèi)容。#include<stdio.h>inta[300],count=0;doubleAve1=0.0,Ave2=0.0;voidNumCal(){}voidRdata(){FILE*fp;inti;fp=fopen("IN.dat","r");for(i=0;i<300;i++)fscanf(fp,"%d,",&a[i];fclose(fp);}voidWdata(){FILE*fp;fp=fopen("OUT.dat","w");fprintf(fp,"%d\n%7.2f\n%7.2f\n",count,Ave1,Ave2);fclose(fp);}main(){Rdata();NumCal();Wdata();printf("count=%d\n滿(mǎn)足條件的平均值A(chǔ)ve1=%7.2f\n不滿(mǎn)足條件的平均值A(chǔ)ve2=%7.2f\n",count,Ave1,Ave2);}標(biāo)準(zhǔn)答案:voidNumCal(){inti,n=0,thou,hun,ten,data;for(i=0;i<300;i++){thou=a[i]/1000;hun=a[i]%1000/100;ten=a[i]%100/10;data=a[i]%10;if(thou+data==hun+ten){count++;Ave1+=a[i];}else{n++;Ave2+=a[i];}}Ave1/=count;Ave2/=n;}[解題思路]對(duì)于每一個(gè)四位數(shù),用這個(gè)四位數(shù)除以1000,可得到這個(gè)四位數(shù)千位上的數(shù)字輸給變量thou;這個(gè)四位數(shù)對(duì)1000求余數(shù)然后再除以100,可得到這個(gè)四位數(shù)百位上的數(shù)字輸給變量hun;這個(gè)四位數(shù)對(duì)100求余數(shù)然后再除以10,可得到這個(gè)四位數(shù)十位上的數(shù)字輸給變量ten;這個(gè)四位數(shù)對(duì)10求余數(shù),可得到這個(gè)四位數(shù)個(gè)位上的數(shù)字輸給變量data。然后判斷表達(dá)式thou+data==hun+ten是否成立,如果成立,則計(jì)數(shù)變量count加1,同時(shí)把這個(gè)數(shù)加到變量Ave1上;否則計(jì)數(shù)變量n加1,同時(shí)把這個(gè)數(shù)加到變量Ave2上。循環(huán)結(jié)束后,變量Ave1的值除以count,就得到所有滿(mǎn)足此條件的四位數(shù)的平均值A(chǔ)ve1;變量Ave2的值除以n,就得到有不滿(mǎn)足此條件的四位數(shù)的平均值A(chǔ)ve2。知識(shí)點(diǎn)解析:暫無(wú)解析國(guó)家三級(jí)(數(shù)據(jù)庫(kù)技術(shù))機(jī)試模擬試卷第2套一、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)1、下列程序的功能是:計(jì)算500~800之間素?cái)?shù)的個(gè)數(shù)cnt,并按所求素?cái)?shù)的值從小到大的順序,再計(jì)算其間隔加、減之和,即第1個(gè)素?cái)?shù)-第2個(gè)素?cái)?shù)+第3個(gè)素?cái)?shù)-第4個(gè)素?cái)?shù)+第5個(gè)素?cái)?shù)……的值sum。請(qǐng)編寫(xiě)函數(shù)countValue()實(shí)現(xiàn)程序的要求,最后調(diào)用函數(shù)writeDat()把結(jié)果cnt和sum輸出到文件OUT66.DAT中。注意:部分源程序己給出。請(qǐng)勿改動(dòng)主函數(shù)main()和寫(xiě)函數(shù)writeDAT()的內(nèi)容。試題程序:include<stdio.h>intcnt,sum;voidcountValue(){}voidmain(){cnt=sum=0;countValue();printf("素?cái)?shù)的個(gè)數(shù)=%d\n",cnt);printf("按要求計(jì)算機(jī)得值=%d\n",sum);writeDAT();}writeDAT(){FILE*fp;fp=fopen("OUT66.DAT","w");fprintf(fp,"%d\n%d\n",cnt,sum);fclose(fp);}標(biāo)準(zhǔn)答案:voidcountValue(){inti,j,half,yy[100];for(i=500;i<800;i++){half=i/2;for(j=2;j<=half;j++)if(i%j==0)break;/*如果該數(shù)不是素?cái)?shù),則退出此層循環(huán)*/if(j>=half)/*如果該數(shù)是素?cái)?shù),則將該數(shù)存入數(shù)組yy中*/{yy[cnt]=i;cnt++;/*統(tǒng)計(jì)素?cái)?shù)的個(gè)數(shù)*/}}for(i=0,j=-1;i<cnt;i++)/*計(jì)算這些素?cái)?shù)的間隔加、減之和*/{i=j*-1;sum+=j*yy[i];}}知識(shí)點(diǎn)解析:本題考查的知識(shí)點(diǎn)如下:(1)利用循環(huán)和“%”進(jìn)行素?cái)?shù)的判斷。(2)間隔加、減的實(shí)現(xiàn)。在本題中,首先要找出判斷素?cái)?shù)的方法。若一個(gè)數(shù)a依次除以從2到a/2的數(shù)所得的余數(shù)都不是0,則這個(gè)數(shù)是素?cái)?shù)。用此方法依次判斷出從500到800區(qū)間內(nèi)的素?cái)?shù)。由題意可知,第1,3,5…個(gè)素?cái)?shù)計(jì)算加法,第2,4,6…個(gè)素?cái)?shù)計(jì)算減法。減去1個(gè)正整數(shù)就是加上負(fù)的這個(gè)正整數(shù),所以可以將這個(gè)正整數(shù)乘以-1進(jìn)行加法。使用循環(huán)實(shí)現(xiàn)求和,在奇數(shù)次的循環(huán)中,每個(gè)素?cái)?shù)乘以1,偶數(shù)次的循環(huán)中,素?cái)?shù)乘以-1,就可實(shí)現(xiàn)間隔加、減。國(guó)家三級(jí)(數(shù)據(jù)庫(kù)技術(shù))機(jī)試模擬試卷第3套一、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)1、函數(shù)ReadDat()實(shí)現(xiàn)從文件IN.dat中讀取1000個(gè)十進(jìn)制整數(shù)到數(shù)組xx中;請(qǐng)編寫(xiě)函數(shù)Compute()分別計(jì)算出數(shù)組xx中奇數(shù)的個(gè)數(shù)odd、偶數(shù)的個(gè)數(shù)even,以及所有數(shù)的平均值aver和方差totfc的值。最后調(diào)用函數(shù)WriteDat(),把結(jié)果輸出到OUT.dat文件中。計(jì)算方差的公式如下:原始數(shù)據(jù)文件存放的格式是:每行存放10個(gè)數(shù)(每個(gè)數(shù)均大于0且小于等于2000),并用逗號(hào)隔開(kāi)。注意:部分源程序已經(jīng)給出。請(qǐng)勿改動(dòng)主函數(shù)main()、讀函數(shù)ReadDat()和輸出數(shù)據(jù)函數(shù)WriteDat()的內(nèi)容。#include<stdio.h>#include<stdlib.h>#include<string.h>#defineMAX1000intxx[MAX],odd=0,even=0;doubleaver=0.0,totfc=0.0;voidWriteDat(void);intReadDat(void){FILE*fp;inti,j;if((fp=fopen("IN.dat","r"))==NULL)return1;for(i=0;i<100;i++){for(j=0;j<10;j++)fscanf(fp,"%d,",&xx[i*10+j]);fscanf(fp,"\n");if(feof(fp))break;}fclose(fp);return0;}voidCompute(void){}voidmain(){inti;for(i=0;i<MAX;i++)xx[i]=0;if(ReadDat()){printf("數(shù)據(jù)文件IN.dar不能打開(kāi)!\007\n");return;}Compute();printf("odd=%d\neven=%d\naver=%f\ntotfc=%f\n",odd,even,aver,totfc);WriteDat();}voidWriteDat(void){FILE*fp;fp=fopen("OUT.dat","w");fprintf(fp,"%d\n%d\n%f\n%f\n",odd,even,aver,totfc);fclose(fp);}標(biāo)準(zhǔn)答案:voidCompute(void){inti;for(i=0;i<1000;i++){if(xx[i]%2)odd++;elseeven++;aver=aver+xx[i];}aver/=MAX;for(i=0;i<1000;i++)totfc+=(xx[i]-aver)*(xx[i]-aver)/MAX;}[解題思路]對(duì)數(shù)組xx[i]中的1000個(gè)整數(shù)逐個(gè)進(jìn)行掃描處理,如果xx[i]對(duì)2的余數(shù)為1,則xx[i]為奇數(shù),變量odd加1;否則xx[i]為偶數(shù),變量even加1。把xx[i]的值與變量aver相加存入變量aver中。退出循環(huán)時(shí),變量aver的值除以MAX就得到平均值。最后在for循環(huán)語(yǔ)句中根據(jù)方差的公式求出所有數(shù)的方差。知識(shí)點(diǎn)解析:暫無(wú)解析國(guó)家三級(jí)(數(shù)據(jù)庫(kù)技術(shù))機(jī)試模擬試卷第4套一、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)1、已知在文件IN2.DAT中存有100個(gè)產(chǎn)品銷(xiāo)售記錄,每個(gè)產(chǎn)品銷(xiāo)售記錄由產(chǎn)品代碼dm(字符型4位)、產(chǎn)品名稱(chēng)mc(字符型10位)、單價(jià)dj(整型)、數(shù)量s1(整型)、金額je(長(zhǎng)整型)五部分組成。其中:金額=單價(jià)×數(shù)量。函數(shù)ReadDat()的功能是讀取這100個(gè)銷(xiāo)售記錄并存入結(jié)構(gòu)數(shù)組sell中。請(qǐng)編制函數(shù)SortDat(),其功能要求:按產(chǎn)品名稱(chēng)從大到小進(jìn)行排列,若產(chǎn)品名稱(chēng)相同,則按金額從小到大進(jìn)行排列,最終排列結(jié)果仍存入結(jié)構(gòu)數(shù)組sell中,最后調(diào)用函數(shù)WriteDat()把結(jié)果輸出到文件OUT2.DAT中。注意:部分源程序已給出。請(qǐng)勿改動(dòng)主函數(shù)main()、讀數(shù)據(jù)函數(shù)ReadDat()和輸出數(shù)據(jù)函數(shù)WriteDat()的內(nèi)容。【試題程序】#include<stdio.h>#include<memory.h>#include<string.h>#include<conio.h>#include<stdlib.h>#defineMAX100typedefstruct{chardm[5];/*產(chǎn)品代碼*/charmc[11];/*產(chǎn)品名稱(chēng)*/intdj;/*單價(jià)*/intsl;/*數(shù)量*/longje;/*金額*/}PRO;ROsell[MAXI;voidReadDat();voidWriteDat();voidSortDat(){}voidmain(){memset(sell,0sizeof(sell))ReadDat();SortDat();WriteDat();}voidReadDat({FILE*fp;charstr[80],ch[11];inti;fp=fopen("IN2.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);memcpy(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);}voidWriteDat(void){FILE*fp;inti;fp=fopen("OUT2.DAT","w");for(i=0;i<100;i++)fprintf(fp,"%s%s%4d%5d%101d\n",sell[i].dm,sell[i].mc,sell[i].dj,sell[i].slsell[i].je);fclose(fp);}標(biāo)準(zhǔn)答案:voidSortDat(){inti,j;PROxy;for(i=0;i<MAX-1;i++)for(j=i+l;j<MAX;j++){if(strcmp(sell[i].mc,sell[j].mc)<0)/*按產(chǎn)品名稱(chēng)從大到小進(jìn)行排列*/{xy=sell[i];sell[i]=sell[j];sell[j]=xy;elseif(strcmp(sell[i].mc,sell[j].mc)==0)/*若產(chǎn)品名稱(chēng)相同*/if(sell[i].je>sell[j].je)/*則按金額從小到大進(jìn)行排列*/{xy=sell[i];sell[i]=sell[j];sell[j]=xy;}}知識(shí)點(diǎn)解析:按產(chǎn)品名稱(chēng)從大到小進(jìn)行排列,若產(chǎn)品名稱(chēng)相同,則按金額從小到大進(jìn)行排列,相應(yīng)語(yǔ)句為:if((strcmp(sell[i].mc,sell[j].mc)<0)‖(strcmp(sell[i].mc,sell[j].mc)==0)&&(sell[i].je>sell[j].je))國(guó)家三級(jí)(數(shù)據(jù)庫(kù)技術(shù))機(jī)試模擬試卷第5套一、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)1、已知在文件IN65.DAT中存有若干個(gè)(個(gè)數(shù)<200)4位數(shù)字的正整數(shù),函數(shù)ReadDat()是讀取這若干個(gè)正整數(shù)并存入數(shù)組xx中。請(qǐng)編制函數(shù)CalValue(),其功能要求是:(1)求出這個(gè)文件中共有多少個(gè)正整數(shù)totNum。(2)求出這些數(shù)中的各位數(shù)字之和是奇數(shù)的個(gè)數(shù)totCnt,以及滿(mǎn)足此條件的這些數(shù)的算術(shù)平均值totPjz。最后調(diào)用函數(shù)WriteDat()把所有結(jié)果輸出到文件OUT65.DAT中。注意:部分源程序已給出。請(qǐng)勿改動(dòng)主函數(shù)main()、讀函數(shù)ReadDat()和寫(xiě)函數(shù)WriteDat()的內(nèi)容。試題程序:#include<stdio.h>#include<conio.h>#defineMAXNUM200intxx[MAXNUM];inttotNum=0;inttotCnt=0;doubletotPjz=0.0;intReadDat(void);voidWriteDat(void);voidCalValue(void){}voidmain(){inti;clrscr();for(i=0;i<MAXNUM;i++)xx[i]=0;if(ReadDat()){printf("數(shù)據(jù)文件IN65.DAT不能打開(kāi)!\007\n");return;}CalValue();printf("文件IN65.DAT中共有正整數(shù)=%d個(gè)\n",totNum);printf("符合條件的正整數(shù)的個(gè)數(shù)=%d個(gè)\n",totCnt);printf("平均值=%.21f\n",totPjz);WriteDat();}intReadDat(void){FILE*fp;inti=0;if((fp=fopen("IN65.DAT","r"))==NULL)return1;while(!feof(fp)){fscanf(fp,"%d",&xx[i++]}fclose(fp);return0;}voidWriteDat(void){FILE*fp;fp=fopen("OUT65.DAT","w");fprintf(fp,"%d\n%d\n%.21fkn",totNum,totCnt,totPjz);fclose(fp);}標(biāo)準(zhǔn)答案:voidCalValue(void){inti,thou,hun,ten,data;for(i=0;i<MAXNUM;i++){if{!xx[i])break;if(xx[i]>0)totNum++;/*求正整數(shù)的個(gè)數(shù)*/thou=xx[i]/1000;/*求四位數(shù)的千位數(shù)字*/hun=xx[i]%1000/100;/*求四位數(shù)的百位數(shù)字*/ten=xx[i]%100/10;/*求四位數(shù)的十位數(shù)字*/data=xx[i]%10;/*求四位數(shù)的個(gè)位數(shù)字*/if((thou+hun+ten+data)%2){totCnt++;/*求各位數(shù)字之和是奇數(shù)的個(gè)數(shù)*/totPjz+=xx[i];/*求滿(mǎn)足條件的數(shù)的總和*/}}totPjz/=totCnt;/*求滿(mǎn)足條件的數(shù)的平均值*/}知識(shí)點(diǎn)解析:本題考查的知識(shí)點(diǎn)如下;(1)“%”與“/”的使用。(2)數(shù)組結(jié)束的判斷和強(qiáng)行退出一層循環(huán)結(jié)構(gòu)。在本題中,并沒(méi)有給出確切的數(shù)據(jù)個(gè)數(shù),是以數(shù)據(jù)的最大個(gè)數(shù)定義的數(shù)組。在主函數(shù)中,給所有的數(shù)組成員賦初值為0,而從文件中讀取的數(shù)據(jù)是正整數(shù),所以只要數(shù)組的某個(gè)元素為0,則說(shuō)明數(shù)組存的數(shù)據(jù)已經(jīng)結(jié)束。此時(shí)就可以結(jié)束循環(huán)結(jié)構(gòu)。這里要借助運(yùn)算符“%”與“/”將4位數(shù)的各位上的數(shù)拆成獨(dú)立的數(shù)字,然后就可以根據(jù)題意要求判斷。國(guó)家三級(jí)(數(shù)據(jù)庫(kù)技術(shù))機(jī)試模擬試卷第6套一、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)1、編寫(xiě)函數(shù)jsValue,它的功能是:求Hofstadter數(shù)列中的第m項(xiàng)H(m)(m<1000),結(jié)果由函數(shù)返回。其中數(shù)列H(n)的定義為:H(1)=H(2)=1H(n)=H(n-H(n-1))+H(n-H(n-2))(n>2)最后調(diào)用函數(shù)writeDat()讀取50個(gè)數(shù)據(jù)m,分別得出結(jié)果且把結(jié)果輸出到文件out.dat中。例如:當(dāng)t=997時(shí),函數(shù)值為605。部分源程序已給出。請(qǐng)勿改動(dòng)主函數(shù)main()和寫(xiě)函數(shù)writeDat()的內(nèi)容。#include<stdio.h>intjsValue(intm){main(){intm;m=300;printf("m=%d,k-%d\n",m,jsValue(m));writeDat();writeDat(){FILE*in,*out;inti,m,s;in=fopen("in.dar","r");out=fopen("out.dar","w");for(i=0;i<50;i++){fscanf(in,"%d",&m);s=jsValue(m);printf("%d\n",s);fprintf(out,"%d\n",s);}fclose(in);fclose(out);標(biāo)準(zhǔn)答案:intjsVelue(intm){if(m<0)return-1;/*參數(shù)錯(cuò)誤,正常運(yùn)行不會(huì)出現(xiàn)*/if(m==1||m==2)return1;/*初值H[1]:H[2]=1*/elsereturnjsValue(m-jsValue(m-1))+jsValue(m-jsValue(m-2));/*調(diào)用jsValue遞歸計(jì)算H[k]*/}/*解法二,遞推*/intjsValue(intm){intH[1000],i;H[1]=1;H[2]=1;/*初值H[1]=H[2]=1*/for(i=3;i<=m;i++){H[i]=H[i-H[i-1)]+H[i-H[i-2]];/*H(k)(k<i)的值都己計(jì)算完成,直接使用*/}returnH[m];/*返回所求的值*/}知識(shí)點(diǎn)解析:類(lèi)型:序列計(jì)算。關(guān)鍵點(diǎn):分析序列定義,選擇合適的方法生成和存儲(chǔ)序列或序列中的特定值。此題有兩種解法:1.按照定義編寫(xiě)遞歸函數(shù);(計(jì)算量大,容易超時(shí),慎用)。2.保存所有值,從小到大遞推求解。國(guó)家三級(jí)(數(shù)據(jù)庫(kù)技術(shù))機(jī)試模擬試卷第7套一、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)1、請(qǐng)編制程序,要求:將文件IN92.DAT中的200個(gè)整數(shù)讀入數(shù)組xx中,求出數(shù)組xx中最大數(shù)max及最大數(shù)的個(gè)數(shù)ont和數(shù)組xx中值能被3整除或能被7整除的數(shù)的算術(shù)平均值pj(保留兩位小數(shù)),結(jié)果max,cnt,pj輸出到out92.dar中。部分程序、讀函數(shù)read_dat(intxx[200])及輸出格式已給出。試題程序:#include<conio.h>#include<stdi0.h>#defineN200voidread_dar(intxx[N]){inti,j;FILE*fp;fp=fopen("IN92.DAT","r");for(i=0;i<20;i++){for(j=0;j<10;j++){fscanf(fp,"%d,",&xx[i*10+j]);printf("%d",xx[i*10+j]);}printf("\n");}fclosefp);}voidmain,{inti,k,cnt,xx[N],max;floatpj;FILE*fw;longj=0;clrscr();fw=fopen("out92.dat","w");read_dat(xx);printf("\n\nmax=%d,cnt=%d,pj=%6.2f\n",max,cnt,pjfprintf(fw,"%d\n%d\n%6.2f\n",max,cnt,pj);fclose(fw);printf("\n");}fclosefp);}voidmain,{inti,k,cnt,xx[N],max;floatpj;FILE*fw;longj=0;clrscr();fw=fopen("out92.dat","w");read_dat(xx);printf("\n\nmax=%d,cnt=%d,pj=%6.2f\n",max,cnt,pjfprintf(fw,"%d\n%d\n%6.2f\n",max,cnt,pj);fclose(fw);標(biāo)準(zhǔn)答案:voidmain(){inti,k,cnt,xx[N],max;floatpj;FILE*fw;longj=0;clrscr();fw=fopen("out92.dat","w");read_dat(xx);max=xx[0];for(i=1,k=0;i<N;i++){if(xx[i]>max)max=xx[i];/*求出數(shù)組xx中最大數(shù)max*/if(xx[i]%3==0||xx[i]%7==0){j+=xx[i];/*求出數(shù)組xx中值能被3整除或能被7整除的數(shù)的總和*/k++;}}for(i=0,cnt=0;i<N;i++)if(xx[i]==max)cnt++;/*求出數(shù)組xx中最大數(shù)max的個(gè)數(shù)*/pj=(float)(j*100/k)/100;/*求出數(shù)組xx中值能被3整除或能被7整除的數(shù)的平均值*/printf("\n\nmax=%d,cnt=%d,pj=%6.2f\n",max,cnt,pj);fprintf(fw,"%d\n%dkn%6.2fin",max,cnt,pj);fclose(fw);知識(shí)點(diǎn)解析:本題考查的知識(shí)點(diǎn)如下:(1)運(yùn)算符“%”的使用。(2)判斷結(jié)構(gòu)中多個(gè)條件的布爾運(yùn)算。首先,要找出數(shù)組中最大的元素。先定義第1個(gè)元素為最大的元素,然后依次和后面的元素比較,若后面的數(shù)中有大于第1個(gè)元素的,則將這個(gè)數(shù)定義為最大的元素。再和后面的數(shù)進(jìn)行比較。一個(gè)數(shù)a除以b取余所得的數(shù)為0,則a能被b整除。根據(jù)題意可知,被3整除和被7整除兩個(gè)條件滿(mǎn)足一個(gè)即可,所以?xún)蓚€(gè)條件之間用“或”運(yùn)算。在本題中,要求算術(shù)平均值保留兩位小數(shù)。使用的方法是:將和乘以100除以個(gè)數(shù)強(qiáng)制類(lèi)型轉(zhuǎn)換后再除以100。為了保證和有效,我們定義了一個(gè)長(zhǎng)整型變量來(lái)記錄和。因?yàn)閭€(gè)數(shù)也為整型,運(yùn)算符“/”在這里的含義是整除,而我們要保留小數(shù),所以要使用強(qiáng)制類(lèi)型轉(zhuǎn)換將和乘以100的結(jié)果轉(zhuǎn)換為浮點(diǎn)類(lèi)型,這樣就可以實(shí)現(xiàn)保留兩位小數(shù)。國(guó)家三級(jí)(數(shù)據(jù)庫(kù)技術(shù))機(jī)試模擬試卷第8套一、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)1、下列程序的功能是:將一正整數(shù)序列{K1,K2,…,K91重新排成一個(gè)新的序列。新序列中,比K1小的數(shù)都在K1的左面(后續(xù)的再向左存放),比KI大的數(shù)都在K1的右面(后續(xù)的再向右存放),從K1向右掃描。要求編寫(xiě)函數(shù)JsValue()實(shí)現(xiàn)此功能,最后調(diào)用函數(shù)writeDat()把新序列輸出到文件out90.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)容。試題程序:#includejsValue(inta[lO][9]){}main(){inta[10][9]={{6,8,9,1,2,5,4,7,3},{3,5,8,9,1,2,6,4,7},{8,2,1,9,3,5,4,6,7},{3,5,1,2,9,8,6,7,4},{4,7,8,9,1,2,5,3,6},{4,7,3,5,1,2,6,8,9},{9,1,3,5,8,62,4,7}{2,6,1,9,8,35,7,4}{5,3,7,9,1,82,6,4}{7,1,3,2,5,89,4,6}};inti,j;jsValue(a);for(i=0;i<10;i++){for(j=0;j<9;j++){printf("%d",a[i][j]);if(j<=7)printf(",");}printf("\n");}writeDat(a);}writeDat(intail0][9]){FILE*fp;inti,j;fp=fopen("outg0.dat","w");for(i=0;i<10;i++){for(j=0;j<9;j++){fprintf(fp,"%d",a[i][j]);if(j<=7)fprintf(fp,",");}fprintf(fp,"\n");}fclose(fp);}標(biāo)準(zhǔn)答案:voidjsValue(inta[10][9]){intvalue,i,j,k,hum;for(i=0;i<10;i++){value=a[i][0]);/*將一行的第一個(gè)元素賦給value*/for{j=0;j<9;j++)if(a[i][j]<value)/*若后面的數(shù)中有比第土個(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-1];}a[i][0]=num;/*再將這個(gè)數(shù)放在最左側(cè)*/}}}知識(shí)點(diǎn)解析:本題考查的知識(shí)點(diǎn)如下:(1)二維數(shù)組的訪(fǎng)問(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ù)的訪(fǎng)問(wèn)。國(guó)家三級(jí)(數(shù)據(jù)庫(kù)技術(shù))機(jī)試模擬試卷第9套一、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)1、已知在文件IN4.DAT中存有100個(gè)產(chǎn)品銷(xiāo)售記錄,每個(gè)產(chǎn)品銷(xiāo)售記錄由產(chǎn)品代碼dm(字符型4位)、產(chǎn)品名稱(chēng)mc(字符型10位)、單價(jià)dj(整型)、數(shù)量sl(整型)、金額je(長(zhǎng)整型)五部分組成。其中:金額=單價(jià)×數(shù)量。函數(shù)ReadDat()的功能是讀取這100個(gè)銷(xiāo)售記錄并存入結(jié)構(gòu)數(shù)組sell中。請(qǐng)編制函數(shù)SortDat(),其功能要求:按產(chǎn)品名稱(chēng)從大到小進(jìn)行排列,若產(chǎn)品名稱(chēng)相同,則按金額從大到小進(jìn)行排列,最終排列結(jié)果仍存入結(jié)構(gòu)數(shù)組sell中,最后調(diào)用函數(shù)WriteDat()把結(jié)果輸出到文件OUT4.DAT中。注意:部分源程序已給出。請(qǐng)勿改動(dòng)主函數(shù)main()、讀數(shù)據(jù)函數(shù)ReadDat()和輸出數(shù)據(jù)函數(shù)WriteDat(
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度個(gè)人住房抵押貸款還款管理協(xié)議4篇
- 2025版攝影棚租賃合同涵蓋廣告、商業(yè)拍攝6篇
- 2025年度水利工程個(gè)人承包協(xié)議書(shū)2篇
- 2025版地質(zhì)勘探打井合同范本3篇
- 二零二五年度車(chē)輛運(yùn)輸服務(wù)與貨物跟蹤系統(tǒng)合作協(xié)議2篇
- 2025年度魚(yú)塘承包權(quán)抵押貸款服務(wù)合同4篇
- 二零二五年度橙子出口歐盟認(rèn)證采購(gòu)合同3篇
- 2025年度個(gè)人房屋維修欠款合同模板4篇
- 二零二五年度畜牧養(yǎng)殖生物安全防控體系建設(shè)合同4篇
- 2025年度個(gè)人房屋買(mǎi)賣(mài)合同履行監(jiān)督及保障協(xié)議2篇
- 2025至2030年中國(guó)減肥肽數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2024內(nèi)蒙古公務(wù)員省直行測(cè)、行政執(zhí)法、省考行測(cè)考試真題(5套)
- 山東省濱州市濱城區(qū)2024-2025學(xué)年九年級(jí)上學(xué)期期末考試化學(xué)試題
- 貨運(yùn)企業(yè)2025年度安全檢查計(jì)劃
- 2025年焊工安全生產(chǎn)操作規(guī)程(2篇)
- 《事故快速處理協(xié)議書(shū)》電子版
- 參考新醫(yī)大-中央財(cái)政支持地方高校發(fā)展專(zhuān)項(xiàng)資金建設(shè)規(guī)
- 山東省房屋市政工程安全監(jiān)督機(jī)構(gòu)人員業(yè)務(wù)能力考試題庫(kù)-上(單選題)
- 松下-GF2-相機(jī)說(shuō)明書(shū)
- 產(chǎn)教融合背景下“一體兩翼三融合五重點(diǎn)”創(chuàng)新創(chuàng)業(yè)人才培養(yǎng)機(jī)制研究
- 第21課 活動(dòng)課 從考古發(fā)現(xiàn)看中華文明的起源 教學(xué)課件
評(píng)論
0/150
提交評(píng)論