下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
國家三級(數據庫技術)機試模擬試卷9(共5套)(共5題)國家三級(數據庫技術)機試模擬試卷第1套一、程序設計題(本題共1題,每題1.0分,共1分。)1、下列程序的功能是:將大于整數m且緊靠m的k個被3除余1的素數存入數組xx。請編寫函數num(intm,imtk,intxx[])實現程序的要求,最后調用函數readwriteDat()把結果輸出到文件out.dat中。例如:若輸入17,5,則應輸出:19,31,37,43,61。部分源程序已給出。請勿改動主函數main()和輸出數據函數readwriteDat()的內容。#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);}標準答案:intisP(intm){inti;for(i=2;i<m;i++)if(m%i==O)return0;/*用小于m的所有整數去試除*//*除盡則m不是素數*//*此步有優(yōu)化余地*/return1;}/*尋找滿足條件的素數*/voidnum(intm,intk,intxx[]){ints=0;for(++m;k>0;m++)if(m%3==1&&isP(m)){xx[s++]=m;k--;}}知識點解析:類型:素數判斷與運算。關鍵點:素數判定。求素數的題,可以先定義一個求素數的函數,然后在程序中直接調用,這樣簡單而且不容易出錯。原程序如果給了求素數的函數,可以直接調用。國家三級(數據庫技術)機試模擬試卷第2套一、程序設計題(本題共1題,每題1.0分,共1分。)1、已知在文件IN6.DAT中存有100個產品銷售記錄,每個產品銷售記錄由產品代碼dm(字符型4位);產品名稱mc(字符型10位)、單價dj(整型)、數量sl(整型)、金額je(長整型)五部分組成。其中:金額=單價×數量。函數ReadDat()的功能是讀取這100個銷售記錄并存入結構數組sell中。請編制函數SortDat(),其功能要求:按產品代碼從小到大進行排列,若產品代碼相同,則按金額從小到大進行排列,最終排列結果仍存入結構數組sell中,最后調用函數WilteDat()把結果輸出到文件OUT6.DAT中。注意:部分源程序已給出。請勿改動主函數main()、讀數據函數ReadDat()和輸出數據函數WriteDat()的內容?!驹囶}程序】#include<stdio.h>#include<memory.h>#include<string.h>#include<conio.h>#include<stdlib.h>#defineMAX100typedefstruct{chardm[5];/*產品代碼*/charmc[ll];/*產品名稱*/intdj;/*單價*/intsi;/*數量*/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);}標準答案: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)/*按代碼從小到大進行排列*/{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)/*則按代碼從大到小進行排列*/{xy=sell[i];sell[i]=sell[j];sell[j]=xy;}}知識點解析:此題按產品代碼從小到大進行排列,若產品代碼相同,則按金額從小到大進行排列,相應語句為:if((strcmp(sell[i].dm,sell[j].dm>0)‖(strcmp(sell[i].dm,sell[j].dm==0&&(sell[i].je>sell[j].je國家三級(數據庫技術)機試模擬試卷第3套一、程序設計題(本題共1題,每題1.0分,共1分。)1、請編寫函數voidcountValue(int*a,int*n),它的功能是:求出1到1000之內能被7或11整除但不能同時被7和11整除的所有整數并存放在數組a中,并通過n返回這些數的個數。注意:部分源程序已給出。請勿改動主函數main()和寫函數writeDAT()的內容。試題程序:#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);}標準答案:voidcountValue(int*a,int*n){inti;*n=0;for(i=1;i<=1000;i++)if(i%7==0&&i%11)/*將能被7整除但不能被11整除的數存入數組a中*/{*a=i;*n-*n+1;/*統(tǒng)計個數*/a++;}elseif(i%7&&i%11==0)/*將能被11整除但不能被7整除的數存入數組a中*/{*a=i;*n=*n+1;/*統(tǒng)計個數*/a++;}}知識點解析:本題考查的知識點如下:(1)指針的使用。(2)“%”運算符。(3)判斷結構中多個條件的布爾運算。本題中,函數countValue()以指針為參數,這里就要涉及到指針的使用。a是指向數組的指針,初始時,指向數組的第一個元素。地址每加1時,依次指向后面的元素。一個數a若能被b整除,則a除以b取余得數為0。能被7或11整除,但不能被7和11同時整除,則有兩種情況,能被7整除但不能被11整除,能被11整除但不能被7整除。這里就要用到多個條件的布爾運算。國家三級(數據庫技術)機試模擬試卷第4套一、程序設計題(本題共1題,每題1.0分,共1分。)1、請補充完整程序,使得程序能實現以下功能:從文件IN.dat中讀取200個整數至數組number中,求出最大數max及最大數的個數cnt和數組number中能被3整除或能被7整除的算術平均值ave(保留2位小數)。把結果max、cnt、ave輸出到OUT.dat文件中。注意:部分程序、讀數據函數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);}標準答案: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保存數組number中元素的最大值,首先把數組number的第一個元素number[0]存入max中;然后在for循環(huán)語句中當循環(huán)變量i從1遞增到N-1時,對數組number中的每一個元素number[i]與max進行比較,如果表達式number[i]>max成立,則把數組元素number[i]的值存入變量max中;再用表達式number[i]%3==0||number[i]%7==0判斷number[i]能否被3或7整除,如果表達式結果值為真,則把數組元素number[i]的值與變量j的值相加,同時計數變量k加1。退出循環(huán)后,變量max中的值就是數組number中元素的最大值,再用for循環(huán)語句對數組number中的每一個元素與max的值進行相等的判斷,如果number[i]的值等于max,則計數變量cnt加1。最后用表達式(float)(j*100/k)/100求得數組number中能被3整除或能被7整除的算術平均值。知識點解析:暫無解析國家三級(數據庫技術)機試模擬試卷第5套一、程序設計題(本題共1題,每題1.0分,共1分。)1、已知在文件IN4.DAT中存有100個產品銷售記錄,每個產品銷售記錄由產品代碼dm(字符型4位)、產品名稱mc(字符型10位)、單價dj(整型)、數量sl(整型)、金額je(長整型)五部分組成。其中:金額=單價×數量。函數ReadDat()的功能是讀取這100個銷售記錄并存入結構數組sell中。請編制函數SortDat(),其功能要求:按產品名稱從大到小進行排列,若產品名稱相同,則按金額從大到小進行排列,最終排列結果仍存入結構數組sell中,最后調用函數WriteDat()把結果輸出到文件OUT4.DAT中。注意:部分源程序已給出。請勿改動主函數main()、讀數據函數ReadDat()和輸出數據函數WriteDat()的內容?!驹囶}程序】#include<stdio.h>#include<memory.h>#include<string.h>#include<conio.h>#include<stdlib.h>#defineMAX100typedefstruct{chardm[5];/*產品代碼*/charmc[11];/*產品名稱*/intdj;/*單價*/intsl;/*數量*/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等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《瑤族《盤王大歌》手抄本研究》
- 《BE襪業(yè)公司應收賬款管理優(yōu)化研究》
- 《基于古今醫(yī)案數據分析的肺癰證治規(guī)律研究》
- 《SIP協(xié)議性能測試工具SIPGen的設計與實現》
- 《熔融法制備Fe@C催化劑及其費托合成反應性能研究》
- 《中老年女性精細動作能力變化特點及外周機制的研究》
- 2024年建筑項目安裝合作合同
- 2024年技術合作合同:人工智能聯合研發(fā)
- 2024-2030年腹臍草提取物搬遷改造項目可行性研究報告
- 2024-2030年版中國銀鹽相紙行業(yè)供需狀況及發(fā)展風險分析報告
- 原發(fā)性骨髓纖維化課件
- 消防工程施工驗收單樣板
- 中央空調人員培訓內容表
- 發(fā)現生活中的美-完整版PPT
- 小學道德與法治人教三年級上冊第三單元安全護我成長-《遭遇陌生人》教案
- CAMDS操作方法及使用技巧
- 平狄克《微觀經濟學》(第8版)筆記和課后習題詳解
- 最優(yōu)化理論與算法課程教學大綱
- 2022年湖北省武漢市江岸區(qū)育才第二小學六上期中數學試卷
- (最新版)中小學思政課一體化建設實施方案三篇
- PSA提氫裝置操作規(guī)程
評論
0/150
提交評論