國家三級(網(wǎng)絡技術)機試模擬試卷10(共9題)_第1頁
國家三級(網(wǎng)絡技術)機試模擬試卷10(共9題)_第2頁
國家三級(網(wǎng)絡技術)機試模擬試卷10(共9題)_第3頁
國家三級(網(wǎng)絡技術)機試模擬試卷10(共9題)_第4頁
國家三級(網(wǎng)絡技術)機試模擬試卷10(共9題)_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

國家三級(網(wǎng)絡技術)機試模擬試卷10(共9套)(共9題)國家三級(網(wǎng)絡技術)機試模擬試卷第1套一、程序設計題(本題共1題,每題1.0分,共1分。)1、已知在文件IN.DAT中存有若干個(個數(shù)<200)四位數(shù)字的整數(shù),函數(shù)ReadData()負責將這若干個整數(shù)存人數(shù)組inBuf[]中。請編制函數(shù)findValue(),其功能要求;(1)求出這文件中共有多少個正整數(shù)totleNum;(2)求出這些數(shù)中的各數(shù)位數(shù)字之和是奇數(shù)的個數(shù)totleCnt,以及滿足此條件的這些數(shù)的算術平均值totleAverage,最后調(diào)用函數(shù)WriteData()把結果outBuf[]輸出到文件OUT.DAT中。注意;部分源程序已給出。請勿改動主函數(shù)main()、讀函數(shù)ReadData()和寫函數(shù)WriteData()的內(nèi)容。試題程序;#include#include#defineMAX200intinBuf[MAX];inttotleNum=0;/*文件IN.DAT中共有多少個正整數(shù)*/inttotleCnt=0;/*符合條件的正整數(shù)的個數(shù)*/doubletotleAverage=0.0;//平均值intReadData(void);voidWriteData(void);voidfindValue(void){}voidmain(){inti;system("CLS");for(i=0;i標準答案:voidfindValue(void){inti,j,k,temp,d[4];for(i=0;i0)//如果當前數(shù)大于零totleNum++;//則將總個數(shù)加1for(j=0;j<4;j++){temp=inBuf[i];//將要進行分解的數(shù)據(jù)存入temp中for(k=0;k知識點解析:本題主要考查數(shù)位分解及數(shù)據(jù)平均值的求法。本程序的步驟是;1.將數(shù)值送入temp中。2.數(shù)位分解,由temp%10得到個位數(shù);(temp/10)%10得到十位數(shù),依此類推,可得到各位上的數(shù)值。3.按照題目所給的條件篩選出數(shù)據(jù)。4.對選出的數(shù)據(jù)求平均值,由于本題中的數(shù)據(jù)量比較大,若采用先將各個值加起來再除以總個數(shù)來取平均的話,變量不能存儲那么大的數(shù)據(jù)而導致溢出。本程序采用的方法是;N個數(shù)的平均值=[前(N-1)個數(shù)的平均值*(N-1)+第N個數(shù)]/N,采用這種遞推的方法就避免了將大的數(shù)據(jù)存入變量中而產(chǎn)生溢出。國家三級(網(wǎng)絡技術)機試模擬試卷第2套一、程序設計題(本題共1題,每題1.0分,共1分。)1、標準答案:知識點解析:通過審題可以發(fā)現(xiàn)主要有兩個不同點:①判斷數(shù)值為奇數(shù),可通過a[i]%2進行判斷,參考答案的第4條語句;②要求進行比較的元素大于后連續(xù)5個數(shù),因此在設置判斷條件時,作為比較的兩個數(shù)之間應該是大于關系,參考答案的第4條語句。國家三級(網(wǎng)絡技術)機試模擬試卷第3套一、程序設計題(本題共1題,每題1.0分,共1分。)1、文件IN.DAT中存有200個四位整型數(shù),函數(shù)ReadData()負責將IN.DAT中的數(shù)讀到數(shù)組inBuf[]中。請編寫函數(shù)findValue(),其功能是;把千位數(shù)字和十位數(shù)字重新組合成一個新的兩位數(shù)ab(新兩位數(shù)的十位數(shù)字是原四位數(shù)的千位數(shù)字,新兩位數(shù)的個位數(shù)字是原四位數(shù)的十位數(shù)字),以及把個位數(shù)和百位數(shù)組成另一個新的兩位數(shù)cd(新兩位數(shù)的十位數(shù)字是原四位數(shù)的個位數(shù)字,新兩位數(shù)的個位數(shù)字是原四位數(shù)的百位數(shù)字),新組成的兩個兩位數(shù)ab-cd≥10且ab-cd≤20且兩個數(shù)均為偶數(shù),同時兩個新數(shù)十位數(shù)字均不為零。求出滿足條件的數(shù),用count記錄下符合條件的數(shù)的個數(shù)并按照從大到小的順序存人數(shù)組outBuf[]中。函數(shù)WriteData()負責將outBuf[]中的數(shù)輸出到文件OUT.DAT中并且在屏幕上顯示出來。注意;部分源程序已給出。程序中已定義數(shù)組;inBuf[200],outBuf[200],已定義變量;count。請勿改動主函數(shù)main()、讀函數(shù)ReadData()和寫函數(shù)WriteData()的內(nèi)容。試題程序;#include#defineNUM200intinBuf[NUM],outBuf[NUM],count=0;voidReadData();voidWriteData();voidfindValue(){}voidmain(){inti;ReadData();findValue();WriteData();printf("count=%d\n",count);for(i=0;i標準答案:voidfindValue(){inti,j,k,d[4],temp,minus,ab,cd;for(i=0;i[10&&minus<=20&&(ab%2+cd%2)==0&&d[0]!=0&&d[3]!=0{outBuf[count]=inBuf[i];count++;}}for(i=0;i知識點解析:本題主要考查數(shù)位分解及排序。數(shù)位分解就是將n位數(shù)上各個數(shù)位上的數(shù)值單獨分離出來。解決此問題的方法是;將n位數(shù)對10求余可以將個位上的數(shù)值分離出來。將這個n位數(shù)除以10以后得到一個n-1位數(shù),則此時n位數(shù)原來的+位就變成了n-1位數(shù)的個位,再將此n-1位數(shù)對10求余便可得到原n位數(shù)的十位。依此類推,按照同樣的方法便可將n位數(shù)各個數(shù)位上的數(shù)值分離出來。程序步驟;1.將數(shù)值送入temp中。2.由temp%10得到個位數(shù);(temp/10)%10得到十位數(shù)……如此可得到各位上的數(shù)值。3.按照題目所給的條件選出數(shù)據(jù)。4.對選出的數(shù)據(jù)進行排序,排序的思想是(以從小到大為例);將當前數(shù)據(jù)與其后的各個數(shù)據(jù)相比較,如果當前的數(shù)據(jù)比其后的數(shù)據(jù)大,則將兩數(shù)據(jù)進行交換,從而使得前面的數(shù)據(jù)小于后面的數(shù)據(jù),達到從小到大排序的目的。國家三級(網(wǎng)絡技術)機試模擬試卷第4套一、程序設計題(本題共1題,每題1.0分,共1分。)1、標準答案:知識點解析:根據(jù)題意,本程序涉及10個候選人共100條記錄,其中,100條記錄的選票文件采用二維數(shù)組存儲其數(shù)據(jù),第一維表示100條記錄,第二維表示每條記錄中10個候選人的選中情況??梢酝ㄟ^兩個for循環(huán)對100條記錄逐個比對,在第一層for循環(huán)中,對100條記錄的每條記錄情況進行掃描,在第二層for循環(huán)語句中,判斷數(shù)組元素xx[i][j]的值是否等于字符1,如果等于字符1,說明第j個人得了一票,則數(shù)組元素yy[j]加1。①先定義兩個循環(huán)變量i和j。②指定第一個for循環(huán)的循環(huán)條件,循環(huán)變量i從0開始,等于100時結束,每循環(huán)一次,變量i的值加1。③在for循環(huán)中首先判斷記錄值不等于1111111111的記錄,然后計算10個候選人的得票數(shù),可以通過一個for循環(huán),對滿足條件的記錄中的每個數(shù)字再次比對,當數(shù)字等于1時,將第i個人的票數(shù)加1。注意,本程序中由于只有數(shù)值1才會被計算到最后的結果中,因此,可以省去判斷記錄全為0時記錄無效的情況,因為,即使將0參與到計算中,其計算結果也還是0,不會影響到最終結果,只需判斷記錄為全1時無效即可。國家三級(網(wǎng)絡技術)機試模擬試卷第5套一、程序設計題(本題共1題,每題1.0分,共1分。)1、文件IN.DAT中存有一篇英文文章,函數(shù)ReadData()負責將IN.DAT中的數(shù)據(jù)讀到數(shù)組inBuf[][]中。請編制函數(shù)replaceChar(),該函數(shù)的功能是按照指定規(guī)則對字符進行替換。變換后的值仍存人數(shù)組inBuf[][]中。函數(shù)WriteData()負責將inBuf[][]中的數(shù)據(jù)輸出到文件OUT.DAT中,并且在屏幕上輸出。替換規(guī)則為;先對字符的ASCII碼值按公式y(tǒng)=a*llmod256進行運算(a為某一字符的ASCII碼值,y為變換后的ASCII碼值),如果原字符是小寫字母或計算后y的值小于等于32,則字符保持不變,否則用Y對應的字符代替。注意;部分源程序已給出。原始數(shù)據(jù)文件存放的格式是;每行的寬度均小于80個字符。請勿改動主函數(shù)main()、讀函數(shù)ReadData()和寫函數(shù)WriteData()的內(nèi)容。試題程序;#include#include#include#include#defineLINE50#defineCOL80charinBuf[LINE][COL+1];inttotleLine=0;//文章的總行數(shù)intReadData(void);voidWriteData(void);voidreplaceChar(){}voidmain(){system("CLS");if(ReadData()){printf("IN.DATcan’tbeopen!\n\007");return;}replaceChar();WriteData();}intReadData(void){FILE*fp;inti=0;char*P;if((fp=fopen("IN.DAT","r"))==NULL)return1;while(fgets(inBuf[i],COL+1,fp)!=NULL){P=strchr(inBuf[i],’\n’);if(p)*P=’\0’;i++;}totleLine=i;fclose(fp);return0;}voidWriteData(void){FILE*fp;inti;fp=fopen("OUT.DAT","w");for(i=0;i標準答案:voidreplaceChar(){inti,j,str;chary;for(i=0;i=‘a(chǎn)’&&inBuf[i][j]<=‘z’))continue;//若符合條件,不進行轉換elseinBuf[i][j]=y;//否則進行轉換}}}知識點解析:本題考查的主要是字符與其對應的ASCII碼之間的轉換及對ASCII碼進行操作。首先計算出每行字符串的長度,再根據(jù)替換規(guī)則進行相應的替換。國家三級(網(wǎng)絡技術)機試模擬試卷第6套一、程序設計題(本題共1題,每題1.0分,共1分。)1、已知在文件IN.DAT中存有100個產(chǎn)品銷售記錄,每個產(chǎn)品銷售記錄由產(chǎn)品代碼dm(字符型4位)、產(chǎn)品名稱mc(字符型10位)、單價dj(整型)、數(shù)量sl(整型)、金額je(長整型)五部分組成。其中;金額一單價*數(shù)量計算得出。函數(shù)ReadDat()是讀取這100個銷售記錄并存人結構數(shù)組sell中。請編制SortDat(),其功能要求;按產(chǎn)品代碼從大到小進行排列,若產(chǎn)品代碼相同,則按金額從大到小進行排列,最終排列結果仍存人結構數(shù)組sell中,最后調(diào)用函數(shù)WriteDat()把結構輸出到文件OUT6.DAT中。注意;部分源程序已給出。請勿改動主函數(shù)main()、讀數(shù)據(jù)函數(shù)ReadDat()和輸出數(shù)據(jù)函數(shù)WriteDat()的內(nèi)容。試題程序;#include#include#include#include#defineMAX100typedefstruct{chardm[5];//產(chǎn)品代碼charmc[11];//產(chǎn)品名稱intdj;//單價intsl;//數(shù)量longje;//金額}PRO;PROsell[MAX];voidReadDat();voidWriteDat();voidSortDat(){}voidmain(){memset(sell,0,sizeof(sell));ReadDat();SortDat();WriteDat();}voidReadDat(){FILE*fp;charstr[80],chEll];inti;fp=fopen("IN.DAT","r");for(i=0;i<100;i++){fgets(str,80,fp);memcpy(sell[i].dm,str,4);memcpy(sell[i].me,str+4,10);memcpy(ch,str+14,4);ch[4]=0;sell[i].dj=atoi(ch);memcpy(ch,str+18,4);ch[4]=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++){printf("%s%s%4d%5d%51d\n",sell[i].dm,sell[i].mc,sell[i].dj,sell[i].sl,sell[i].je);fprintf(fp,"%s%s%4d%5d%51d\n",sell[i].dm,sell[i].mc,sell[i].dj,sell[i].sl,sell[i].je);fclose(fp);}標準答案:inti,j;PROxy;for(i=0;i知識點解析:本題主要考查數(shù)組的排序操作。算法思路;1.結點與后面的所有j結點比較,若符合條件則交換i、j結點位置。2.然后后移i結點,執(zhí)行步驟1直到i結點是倒數(shù)第二結點為止。國家三級(網(wǎng)絡技術)機試模擬試卷第7套一、程序設計題(本題共1題,每題1.0分,共1分。)1、標準答案:知識點解析:①定義循環(huán)變量i、j和字符變量tmp。②在for循環(huán)語句中,循環(huán)變量i從0開始,依次遞增直到其值等于文章最大行數(shù)maxline。在循環(huán)體中,首先把第i行字符串的最后一個字符賦給字符tmp,通過表達式“strlen(xx[i])-1”可以得到第i行最后一個字符的數(shù)組下標值;然后再繼續(xù)通過一個for循環(huán)從文章第i行字符串的最后一個字符開始,每循環(huán)一次循環(huán)變量減1,字符xx[i][j]的ASCII碼的二制位右移4位與其前一個字符xx[i][j-1]的ASCII碼之和賦給字符xx[i][j],直到第i行字符串的第二個字符為結束;最后,將第i行字符串的最后一個字符的ASCII碼值與第i行字符串的第一個字符的ASCII碼值之和賦給第一個字符。國家三級(網(wǎng)絡技術)機試模擬試卷第8套一、程序設計題(本題共1題,每題1.0分,共1分。)1、已知數(shù)據(jù)文件IN87.DAT中存有300個4位數(shù),并已調(diào)用函數(shù)readDat()把這些數(shù)存入數(shù)組a中,請編制一函數(shù)jsValue(),具功能是:求出千位數(shù)上的數(shù)加個位數(shù)上的數(shù)等于百位數(shù)上的數(shù)加十位數(shù)上的數(shù)的個數(shù)cnt,再求出所有滿足此條件的4位數(shù)平均值pjz1,以及所有不滿足此條件的4位數(shù)的平均值pjz2,最后調(diào)用函數(shù)writeDat()把結果cnt,pjz1,pjz2,輸出到out87.dat文件中。例如:6712,6+2=7+1,則該數(shù)滿足條件,計算平均值pjz1,且個數(shù)cnt=cnt+1。8129,8+9≠1+2,則該數(shù)不滿足條什,計算平均值pjz2。注意:部分源程序已給出。程序中已定義數(shù)組:a[300],b[300],已定義變量:cnt,pjz1,pjz2。請勿改動主函數(shù)main()、讀函數(shù)readDat()和寫函數(shù)writeDat()的內(nèi)容。試題程序:#includeinta[300],cnt=0;doublepjz1=0.0,pjz2=0.0;voidjsValue(){}main(){inti;readDat();jsValue();writeDat();printf("cnt=%d\n滿足條件的平均值pjz1=%7.21f\n不滿足條件的平均值pjz2=%7.21f\n",cnt,pjz1,pjz2);}readDat(){FILE*fp;inti;fp=fopen("in87.dat","r");for(i=0;i<300;i++)fscanf(fp,"%d,",&a[i]);fclose(fp);}writeDat(){FILE*fp;inti;fp=fopen("out87.dar","w");fprintf(fp,"%d\n%7.21f\n%7.21f\n",cnt,pjz1,pjz2);f

溫馨提示

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

評論

0/150

提交評論