國(guó)家三級(jí)(數(shù)據(jù)庫(kù)技術(shù))機(jī)試模擬試卷9(共5題)_第1頁(yè)
國(guó)家三級(jí)(數(shù)據(jù)庫(kù)技術(shù))機(jī)試模擬試卷9(共5題)_第2頁(yè)
國(guó)家三級(jí)(數(shù)據(jù)庫(kù)技術(shù))機(jī)試模擬試卷9(共5題)_第3頁(yè)
國(guó)家三級(jí)(數(shù)據(jù)庫(kù)技術(shù))機(jī)試模擬試卷9(共5題)_第4頁(yè)
國(guó)家三級(jí)(數(shù)據(jù)庫(kù)技術(shù))機(jī)試模擬試卷9(共5題)_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(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ī)試模擬試卷9(共5套)(共5題)國(guó)家三級(jí)(數(shù)據(jù)庫(kù)技術(shù))機(jī)試模擬試卷第1套一、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)1、下列程序的功能是:將大于整數(shù)m且緊靠m的k個(gè)被3除余1的素?cái)?shù)存入數(shù)組xx。請(qǐng)編寫函數(shù)num(intm,imtk,intxx[])實(shí)現(xiàn)程序的要求,最后調(diào)用函數(shù)readwriteDat()把結(jié)果輸出到文件out.dat中。例如:若輸入17,5,則應(yīng)輸出:19,31,37,43,61。部分源程序已給出。請(qǐng)勿改動(dòng)主函數(shù)main()和輸出數(shù)據(jù)函數(shù)readwriteDat()的內(nèi)容。#include<conio.h>#include<stdio.h>voidreadwriteDat();voidnum(intm,intk,intxx[]){}main(){intm,n,xx[1000];clrscr();printf("\nPleaseentertwointegers:");scanf("%d%d",&m,&n);num(m,n,xx);for(m=0;m<n;m++)printf("%d",xx[m]);printf("\n");readwriteDat();}viodreadwriteDat(){intm,n,xx[1000],i;FILE*rf,*wf;rf=fopen("in.dat","r");wf=fopen("out.dat","w");for(i=0;i<10;i++){fscanf(rf,"%d%d",&m,&n);num(m,n,xx);for(m=0;m<n;m++)fprintf(wf,"%d",xx[m]fprintf(wf,"\n");}fclose(rf);fclose(wf);}標(biāo)準(zhǔn)答案:intisP(intm){inti;for(i=2;i<m;i++)if(m%i==O)return0;/*用小于m的所有整數(shù)去試除*//*除盡則m不是素?cái)?shù)*//*此步有優(yōu)化余地*/return1;}/*尋找滿足條件的素?cái)?shù)*/voidnum(intm,intk,intxx[]){ints=0;for(++m;k>0;m++)if(m%3==1&&isP(m)){xx[s++]=m;k--;}}知識(shí)點(diǎn)解析:類型:素?cái)?shù)判斷與運(yùn)算。關(guān)鍵點(diǎn):素?cái)?shù)判定。求素?cái)?shù)的題,可以先定義一個(gè)求素?cái)?shù)的函數(shù),然后在程序中直接調(diào)用,這樣簡(jiǎn)單而且不容易出錯(cuò)。原程序如果給了求素?cái)?shù)的函數(shù),可以直接調(diào)用。國(guó)家三級(jí)(數(shù)據(jù)庫(kù)技術(shù))機(jī)試模擬試卷第2套一、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)1、已知在文件IN6.DAT中存有100個(gè)產(chǎn)品銷售記錄,每個(gè)產(chǎn)品銷售記錄由產(chǎn)品代碼dm(字符型4位);產(chǎn)品名稱mc(字符型10位)、單價(jià)dj(整型)、數(shù)量sl(整型)、金額je(長(zhǎng)整型)五部分組成。其中:金額=單價(jià)×數(shù)量。函數(shù)ReadDat()的功能是讀取這100個(gè)銷售記錄并存入結(jié)構(gòu)數(shù)組sell中。請(qǐng)編制函數(shù)SortDat(),其功能要求:按產(chǎn)品代碼從小到大進(jìn)行排列,若產(chǎn)品代碼相同,則按金額從小到大進(jìn)行排列,最終排列結(jié)果仍存入結(jié)構(gòu)數(shù)組sell中,最后調(diào)用函數(shù)WilteDat()把結(jié)果輸出到文件OUT6.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[ll];/*產(chǎn)品名稱*/intdj;/*單價(jià)*/intsi;/*數(shù)量*/longje;/*金額*/}PRO;PROsell[MAX]voidReadDat();voidWriteDat();voidSortDat(){}voidmain(){memset(sell,O,sizeof(sell));ReadDat();SortDat();WriteDat();}voidReadDat(){FILE*fp;charstr[80],ch[11];inti;fp=fbpen("IN6.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("OUT6.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].sl,sell[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].dm,sell[j].dm)>0)/*按代碼從小到大進(jìn)行排列*/{xy=sell[i];sell[i]=sell[j];sell[j]=xy;elseif(strcmp(sell[i].dm,sell[j].dm)==O)/*若金額相同*/if(sell[i].je>sell[j].je)/*則按代碼從大到小進(jìn)行排列*/{xy=sell[i];sell[i]=sell[j];sell[j]=xy;}}知識(shí)點(diǎn)解析:此題按產(chǎn)品代碼從小到大進(jìn)行排列,若產(chǎn)品代碼相同,則按金額從小到大進(jìn)行排列,相應(yīng)語(yǔ)句為:if((strcmp(sell[i].dm,sell[j].dm>0)‖(strcmp(sell[i].dm,sell[j].dm==0&&(sell[i].je>sell[j].je國(guó)家三級(jí)(數(shù)據(jù)庫(kù)技術(shù))機(jī)試模擬試卷第3套一、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)1、請(qǐng)編寫函數(shù)voidcountValue(int*a,int*n),它的功能是:求出1到1000之內(nèi)能被7或11整除但不能同時(shí)被7和11整除的所有整數(shù)并存放在數(shù)組a中,并通過n返回這些數(shù)的個(gè)數(shù)。注意:部分源程序已給出。請(qǐng)勿改動(dòng)主函數(shù)main()和寫函數(shù)writeDAT()的內(nèi)容。試題程序:#include<conio.h>#include<stdio.h>voidcountValue(int*a,int*n){}main(){intaa[1000],n,k;clrscr();countValue(aa,&n);for(k=0;k<n;k++)if((k+1)%10==0){printf("%5d",aa[k]);printf("\n");}elseprintf("%5d",aa[k]);writeDAT();}writeDAT(){intaa[1000],n,k;FILE*fp;fp=fopen("out79.dat","w");countValue(aa,&n);for(k=0;k<n;k++)if((k+1)%10==0){fprintf(fp,"%5d",aa[k]);fprintf(fp,"\n");}elsefprintf(fp,"%5d",aa[k]);fclose(fp);}標(biāo)準(zhǔn)答案:voidcountValue(int*a,int*n){inti;*n=0;for(i=1;i<=1000;i++)if(i%7==0&&i%11)/*將能被7整除但不能被11整除的數(shù)存入數(shù)組a中*/{*a=i;*n-*n+1;/*統(tǒng)計(jì)個(gè)數(shù)*/a++;}elseif(i%7&&i%11==0)/*將能被11整除但不能被7整除的數(shù)存入數(shù)組a中*/{*a=i;*n=*n+1;/*統(tǒng)計(jì)個(gè)數(shù)*/a++;}}知識(shí)點(diǎn)解析:本題考查的知識(shí)點(diǎn)如下:(1)指針的使用。(2)“%”運(yùn)算符。(3)判斷結(jié)構(gòu)中多個(gè)條件的布爾運(yùn)算。本題中,函數(shù)countValue()以指針為參數(shù),這里就要涉及到指針的使用。a是指向數(shù)組的指針,初始時(shí),指向數(shù)組的第一個(gè)元素。地址每加1時(shí),依次指向后面的元素。一個(gè)數(shù)a若能被b整除,則a除以b取余得數(shù)為0。能被7或11整除,但不能被7和11同時(shí)整除,則有兩種情況,能被7整除但不能被11整除,能被11整除但不能被7整除。這里就要用到多個(gè)條件的布爾運(yùn)算。國(guó)家三級(jí)(數(shù)據(jù)庫(kù)技術(shù))機(jī)試模擬試卷第4套一、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)1、請(qǐng)補(bǔ)充完整程序,使得程序能實(shí)現(xiàn)以下功能:從文件IN.dat中讀取200個(gè)整數(shù)至數(shù)組number中,求出最大數(shù)max及最大數(shù)的個(gè)數(shù)cnt和數(shù)組number中能被3整除或能被7整除的算術(shù)平均值ave(保留2位小數(shù))。把結(jié)果max、cnt、ave輸出到OUT.dat文件中。注意:部分程序、讀數(shù)據(jù)函數(shù)read_dat(intnumber[200])及輸出格式已給出。#include<conio.h>#include<stdio.h>#defineN200voidread_dat(intnumber[N]){inti,j;FILE*fp;fp=fopen("IN.dat","r");for(i=0;i<20;i++){for(j=0;j<10;j++){fscanf(fp,"%d,",&number[i*10+j]);printf("%d",number[i*10+j]);}printf("\n");}fclose(fp);}voidmain(){intcnt,number[N],max;floatave;FILE*fw;inti,k;’longj=0;fw=fopen("OUT.dat","w");read_dat(number);/************************************************//************************************************/printf("\n\nmax=%d,cnt=%d,ave=%6.2f\n",max,cnt,ave);fprintf(fw,"%d\n%d\n%6.2f\n",max,cnt,ave);fclose(fw);}標(biāo)準(zhǔn)答案:max=number[0];for(i=1,k=0;i<N;i++){if(number[i]>max)max=number[i];if(number[i]%3==0||number[i]%7==0){j+=number[i];k++;}}for(i=0,cnt=0;i<N;i++)if(number[i]==max)cnt++;ave=(float)(j*100/k)/100;[解題思路]用整型變量max保存數(shù)組number中元素的最大值,首先把數(shù)組number的第一個(gè)元素number[0]存入max中;然后在for循環(huán)語(yǔ)句中當(dāng)循環(huán)變量i從1遞增到N-1時(shí),對(duì)數(shù)組number中的每一個(gè)元素number[i]與max進(jìn)行比較,如果表達(dá)式number[i]>max成立,則把數(shù)組元素number[i]的值存入變量max中;再用表達(dá)式number[i]%3==0||number[i]%7==0判斷number[i]能否被3或7整除,如果表達(dá)式結(jié)果值為真,則把數(shù)組元素number[i]的值與變量j的值相加,同時(shí)計(jì)數(shù)變量k加1。退出循環(huán)后,變量max中的值就是數(shù)組number中元素的最大值,再用for循環(huán)語(yǔ)句對(duì)數(shù)組number中的每一個(gè)元素與max的值進(jìn)行相等的判斷,如果number[i]的值等于max,則計(jì)數(shù)變量cnt加1。最后用表達(dá)式(float)(j*100/k)/100求得數(shù)組number中能被3整除或能被7整除的算術(shù)平均值。知識(shí)點(diǎn)解析:暫無解析國(guó)家三級(jí)(數(shù)據(jù)庫(kù)技術(shù))機(jī)試模擬試卷第5套一、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)1、已知在文件IN4.DAT中存有100個(gè)產(chǎn)品銷售記錄,每個(gè)產(chǎn)品銷售記錄由產(chǎn)品代碼dm(字符型4位)、產(chǎn)品名稱mc(字符型10位)、單價(jià)dj(整型)、數(shù)量sl(整型)、金額je(長(zhǎng)整型)五部分組成。其中:金額=單價(jià)×數(shù)量。函數(shù)ReadDat()的功能是讀取這100個(gè)銷售記錄并存入結(jié)構(gòu)數(shù)組sell中。請(qǐng)編制函數(shù)SortDat(),其功能要求:按產(chǎn)品名稱從大到小進(jìn)行排列,若產(chǎn)品名稱相同,則按金額從大到小進(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()的內(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)品名稱*/intdj;/*單價(jià)*/intsl;/*數(shù)量*/longje;/*金額*/}PRO;PROsell[MAX];voidReadDat();voidWriteDat();voidSortDat(){}voidmain(){memset(sell,O,sizeof(sell));ReadDat();SortDat();WriteDat();}voidReadDat(){FILE*fp;charstr[80],ch[11];inti;fp=fopen("IN4.DAT","r");for(i=O;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;s

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論