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

下載本文檔

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

文檔簡介

國家三級(網(wǎng)絡技術)機試模擬試卷28(共9套)(共9題)國家三級(網(wǎng)絡技術)機試模擬試卷第1套一、程序設計題(本題共1題,每題1.0分,共1分。)1、函數(shù)readDat()是從文件in71.dat中讀取20行數(shù)據(jù)存放到字符串數(shù)組xx中(每行字符串長度均小于80)。請編制函數(shù)JsSon(),其功能是:以行為單位對字符串按下面給定的條件進行排序,排序后的結果仍按行重新存入字符串數(shù)組xx中。最后調(diào)用函數(shù)writeDat()把結果xx輸出到文件out71.dat中。條件:從字符串中間一分為二,左邊部分按字符的ASCⅡ值降序排序,右邊部分按字符的ASCⅡ值升序排序。如果原字符串長度為奇數(shù),則最中間的字符不參加排序,字符仍放在原位置上。例如:位置012345678源字符串a(chǎn)bcdhgfe123498765處理后的字符串dcbaefgh432195678注意:部分源程序已給出。請勿改動主函數(shù)main()、讀函數(shù)readDat()和寫函數(shù)writeDatO的內(nèi)容。試題程序:#include<stdio.h>#include<string.h>#include<conio.h>charxx[20][80];voidisSoYt(){}voidmain(){readDat();isSort();writeDat();{readDat(){FILE*in;inti=0;char*p;in=fopen("in71.dat","r");while(i<20&&fgets(xx[i],80,in)!=NULL){p=strchr(xx[i],’\n’);if(p)*p=0;i++;}fclose(in);}writeDat(){FILE*out;inti;clrscr();Out=fopen("out71.dar","w");for(i=0;i<20;i++){printf("%s\n",xx[i]);fprintf{out,"%s\n",xx[i]);}fclose(out);}標準答案:voidjsSort(){ihti,j,k,strl,half;charch;for(i=0;i<20;i++){strl=strlen(xx[i]);/*求各行字符串的總長度*/half=strl/2;/*求總長度的一半*/for(j=0;j<half-1;j++)/*左邊部分按字符的ASCII值降序排序*/for(k=j+l;k<half;k++)if(xx[i][j]<xx[i][k]){ch=xx[i][j];xx[i][j~]=xx[i][k];xx[i][k]=ch;}if(strl%2)/*如果原字符串長度為奇數(shù),則跳最中間的字符,使之不參加排序*/half++;for(j=half;j<strl-1;j++)/*右邊部分按字符的ASCII值升序排序*/for(k=j+l;k<strl;k++)if(xx[i][j]>xx[i][k]){ch=xx[i][j];xx[i][j]=xx[i][k];xx[i][k]=ch;}}}知識點解析:本題考查的知識點如下:(1)二維數(shù)組的訪問和下標的控制。(2)字符的ASCII碼的比較。(3)字符的排序。本題將數(shù)據(jù)按行存入到二維數(shù)組xx中,行數(shù)為數(shù)組的第1個下標,每行字符的個數(shù)為數(shù)組的第2個下標。因為以行為字符串處理的單位,所以要先求得一行字符串的長度。字符可以參加任何整數(shù)運算,實際上是字符的ASCII碼參與了運算,所以町以直接使用比較運算符對字符進行比較。對從0到(長度/2-1)的字符進行降序排序(數(shù)組的下標從0開始)。若長度為奇數(shù),則再從(長度/2+1)開始(跳過最中間的字符)到最后1個字符進行升序排列。否則,從(長度/2)開始到最后1個字符進行升序排列。字符排序使用“選擇排序法”,最后使用循環(huán)實現(xiàn)對每行數(shù)據(jù)的處理。國家三級(網(wǎng)絡技術)機試模擬試卷第2套一、程序設計題(本題共1題,每題1.0分,共1分。)1、請補充函數(shù)ReadData()實現(xiàn)從文件IN.DAT中讀取1000個十進制整數(shù)到數(shù)組xx[]中;請函數(shù)Compute()分別計算出XX中偶數(shù)的個數(shù)even、奇數(shù)的平均值avel、偶數(shù)的平均值ave2以及方差totfc的值,最后調(diào)用函數(shù)WriteData()把結果輸出到OUT.DAT文件中。計算方差的公式如下;設N為偶數(shù)的個數(shù),xx[i]為偶數(shù),ave2為偶數(shù)的平均值。原始數(shù)據(jù)文件存放的格式是;每行存放10個數(shù),并用逗號隔開。(每個數(shù)均大于0且小于等于2000)注意;部分源程序已給出。請勿改動主函數(shù)main()和輸出數(shù)據(jù)函數(shù)WriteData()的內(nèi)容。試題程序;#include#include#include#defineMAX1000intxx[MAX],odd=0,even=0;doubleavel=0.0,ave2=0.0,totfc=0.0;voidWriteData(void);intReadData(void){inti;FILE*fp;if((fp=fopen("IN.DAT","r"))==NULL)return1;//編制函數(shù)ReadData()的部分fclose(fp);return0;}voidCompute(void){inti,yy[MAX];for(i=0;i標準答案:for(i=0;i知識點解析:本題考查文件的操作、奇偶判斷和數(shù)學公式的計算。函數(shù)ReadData的作用是將從文件中讀取數(shù)據(jù)存入數(shù)組xx中,因為數(shù)據(jù)存放入文件的格式是每個數(shù)據(jù)被逗號隔開,所以fscanf(fp,"%d,",&xx[i])語句中字符串"%d,"中要加入逗號。函數(shù)Compute的作用是計算方差,思路是首先順序讀取數(shù)組XX中的結點,若是偶數(shù)累加存入ave2,個數(shù)存入even,若不是偶數(shù)(即為奇數(shù))累加結果存入avel,個數(shù)存入odd。然后計算奇數(shù)和偶數(shù)的平均數(shù),利用循環(huán)結構依次讀取存放偶數(shù)的數(shù)組yy,計算方差totfc。國家三級(網(wǎng)絡技術)機試模擬試卷第3套一、程序設計題(本題共1題,每題1.0分,共1分。)1、標準答案:知識點解析:通過審題可以發(fā)現(xiàn)主要是對四位數(shù)的篩選條件有所不同,體現(xiàn)在3個方面:新組合的第一個數(shù)小于第二個數(shù),可通過比較運算符進行判斷;整除關系的判斷以及奇偶數(shù)的判斷,可通過求余運算符(%)進行判斷。參考答案的第10條語句,可集中修改該條件語句符合題目的要求。國家三級(網(wǎng)絡技術)機試模擬試卷第4套一、程序設計題(本題共1題,每題1.0分,共1分。)1、文件IN.DAT中存有200組數(shù)據(jù),每組有3個數(shù),每個數(shù)均是三位數(shù)。函數(shù)ReadData()是讀取這200組數(shù)據(jù)存放到結構數(shù)組inBuf中。請編制函數(shù)dataSort(),其功能是;要求在200組數(shù)據(jù)中找出條件為每組數(shù)據(jù)中的第一個數(shù)大于第二個數(shù)加第三個數(shù)之和,其中滿足條件的個數(shù)作為函數(shù)dataSort()的返回值,同時把滿足條件的數(shù)據(jù)存人結構數(shù)組outBuf中,再對結構數(shù)組outBuf中的數(shù)據(jù)按照每組數(shù)據(jù)的第一個數(shù)加第三個數(shù)之和的大小進行升序排列(第一個數(shù)加第三個數(shù)的和均不相等),排序后的結果仍重新存人結構數(shù)組outBuf中,函數(shù)WriteData(int)負責把結果outBuf輸出到文件OUT.DAT中。注意;部分源程序已給出。請勿改動主函數(shù)main()、讀函數(shù)ReadData()和寫函數(shù)WriteData(int)的內(nèi)容。試題程序;#include#include#includetypedefstruct{intxl,x2,x3;}Data;DatainBuf[200],outBuf[200];voidRcadData();voidWriteData(int);intdataSort(){}voidmain(){intcount;ReadData();count=dataSort();/*返回滿足條件的個數(shù)*/WriteData(count);}voidReadData(){FILE*in;inti;in=fopen("IN.DAT","r");for(i=0;i<200;i++)fscanf(in,”%d,%d,%d,",&inBuf[i].xl,&inBuf[i].x2,&inBuf[i].x3);fclose(in);}voidWriteData(intcount){FILE*out;inti;out=fopen("OUT.DAT","w");system("CLS");for(i=0;i標準答案:intdataSort(){intcount=0,i,j;Datatemp;for(i=0;i<200;i++){if(inBuf[i].x1>inBuf[i].x2+inBuf[i].x3)/*如果符合條件,則將inBuf中的內(nèi)容寫到outBuf中*/{outBuf[count].xl=inBuf[i].xl;outBuf[count].x2=inBuf[i].x2;outBuf[count].x3=inBuf[i].x3;count++;}}for(i=0;i知識點解析:本題主要考查結構數(shù)組排序的問題。所謂結構數(shù)組排序就是以結構某一元素為依據(jù)對結構數(shù)組進行排序。排序時仍采用冒泡排序法。但是由于結構不像變量那樣可以通過簡單的賦值來交換變量(如果要賦值的話需要對結構里的所有元素進行賦值替換,比較麻煩),所以在進行兩個相鄰結構交換時,用到內(nèi)存拷貝函數(shù)來對內(nèi)存的內(nèi)容整體進行操作。由于本題的頭文件中沒有包含對內(nèi)存操作的頭文件mem.h,故只能用賦值的方法來進行結構的交換。國家三級(網(wǎng)絡技術)機試模擬試卷第5套一、程序設計題(本題共1題,每題1.0分,共1分。)1、函數(shù)readDat()的功能是從文件in52.dat中讀取20行數(shù)據(jù)存放到字符串數(shù)組xx中(每行字符串的長度均小于80)。請編制函數(shù)JsSod(),該函數(shù)的功能是:以行為單位對字符串變量的—F標為奇數(shù)位置上的字符按其ASCII值從小到大的順序進行排序,排序后的結果仍按行重新存入字符串數(shù)組xx中,最后調(diào)用函數(shù)writeDat()把結果xx輸出到文件out52.dat中。例如:位置01234567源字符串hgfedcba則處理后字符串hafcdebg。注意:部分源程序已給出。請勿改動主函數(shù)main()、讀函數(shù)readDat()和寫函數(shù)writeDat()的內(nèi)容。試題程序:#include<stdio.h>#include<string.h>#include<conio.h>charxx[20][80];voidjsSort{}voidmain(){readDat();jsSort();writeDat();}readDat(){FILE*in;inti=0;char*p;in=fopen("in52.dat","r");while(i<20&&fgets(xx[i],80,in)!=NULL){p=strchr(xx[i],’In’);if(p)*p=0;i++;}fclose(in);}writeDat(){FILE*out;inti;out=fopen("out52.dat","w");clrscr();for(i=0;i<20;i++){printf("%s\n",xx[i]);fprintf(out,"%s\n",xx[i]);}fclose(out);}標準答案:voidjsSort(){inti,j,k,strl;charch;for(i=0;i<20;i++){strl=strlen(xx[i]);/*求各行字符串的長度*/for(j=l;j<strl-2;j=j+2)/*將下標為奇數(shù)的字符按其ASCII值從小到大的順序進行排序*/for(k=j+2;k<strl;k=k+2)if(xx[i][j]>xx[i][k]){ch=xx[i][j];xx[i][j]=xx[i][k];xx[i][k]=ch;}}}知識點解析:本題考查的知識點如下:(1)二維數(shù)組的坊問及下標控制。(2)數(shù)據(jù)的排序。在本題中,將數(shù)據(jù)存放在一個二維數(shù)組xx中。其中以行數(shù)為數(shù)組的第—個下標,以字符串的最大長度80為其第二個下標。因為以行為字符串處理的單位,首先要使用函數(shù)strlen()求得每一行中字符的個數(shù)。只對字符串數(shù)組中下標為奇數(shù)的字符進行處理,可以從xx[0][1]開始,若需要增加時都增加2,則可實現(xiàn)只訪問下標為奇數(shù)的數(shù)組元素。排序使用前面介紹的“選擇排序法”。國家三級(網(wǎng)絡技術)機試模擬試卷第6套一、程序設計題(本題共1題,每題1.0分,共1分。)1、讀函數(shù)readDat()的功能是從文件IN25.DAT中讀取20行數(shù)據(jù)存放到字符串數(shù)組xx中(每行字符串長度均小于80)。請編制函數(shù)jsSort(),該函數(shù)的功能是:以行為單位對字符串按下面給定的條件進行排序,排序后的結果仍按行重新存入字符串數(shù)組xx中,最后調(diào)用寫函數(shù)writeDat()把結果xx輸出到文件OUT25.DAT中。條件:從字符串中間一分為二,左邊部分按字符的ASCII值升序排序,排序后,左邊部分與右邊部分按例子所示進行交換。如果原字符串長度為奇數(shù),則最中間的字符不參加處理,字符仍放在原位置上。例如:位置012345678源字符串dcbahgfe43219876處理后字符串hgfeabcd98761234注意:部分源程序已給出。請勿改動主函數(shù)main()、讀函數(shù)readDat()和寫函數(shù)writeDat()的內(nèi)容。試題程序:#include〈stdio.h>#include〈string.h>#include〈conio.h>charxx[20][80];voidjsSort(){}main(){readDat();jsSort();writeDat();}readDat(){FILE*in;inti=0;char*p;in=fopen("IN25.DAT","r");while(i〈20&&fgets(xx[i],80,in)!=NULL){p=strchr(xx[i],’\n’);if(p)*p=0;i++;}fclose(in);}writeDat(){FILE*out;inti;clrscr();out=fopen("OUT25.DAT","w");for(i=0;i〈20;i++){printf("%s\n",xx[i]);fprintf(out,"%s\n",xx[i]);}fclose(out);}標準答案:voidjsSort(){inti,j,k,strl,half;charch;for(i=0;i〈20;i++){strl=strlen(xx[i]);/*求字符串的長度*/half=str1/2;/*確定各行中字符串的中間位置*/for(j=0;j〈half-1;j++)/*對中間位置以前的字符進行升序排序*/for(k=j+1;k〈half;k++)if(xx[i][j]>xx[i][k]){ch=xx[i][j];xx[i][j]=xx[i][k];xx[i][k]=ch;}for(j=half-1,k=str1-1;j>=0;j--,k--)/*將左邊部分與右邊部分對應的字符進行交換*/{ch=xx[i][j];xx[i][j]=xx[i][k];xx[i][k]=ch;}}}知識點解析:本題考查對二維字符數(shù)組的處理。由于對二維字符數(shù)組的操作是按照先行后列的順序,因此,需要首先求得各行字符串的長度(利用求字符串長度的strlen()函數(shù)),然后借助循環(huán)結構逐個訪問各行中的每一個字符。在本題中,應先確定各行中字符串的中間位置(長度的一半就是中間位置),然后先對中間位置以前的字符進行升序排序,排序過程如下:依次用每一個位置的字符與它后面的所有字符(到中間位置前一個字符結束)進行比較,如果發(fā)現(xiàn)某字符的ASCII碼值小于當前被比較的字符的ASCII碼值,則將發(fā)現(xiàn)的字符與當前字符進行交換,交換后繼續(xù)與其后面的字符進行比較。最終比較所得的結果是第一個位置總是存放著最小的字符,第二個位置總是存放著稍大的字符,以此類推就實現(xiàn)了從小到大的排序功能。接著要做的工作是把中間位置前的一個位置定為初始位置,字符串中的最后一個位置也視為初始位置,讓兩個位置所對應的字符進行交換,交換過后,這兩個位置值(也就是下標值)分別前移,再進行對應位置字符的交換。國家三級(網(wǎng)絡技術)機試模擬試卷第7套一、程序設計題(本題共1題,每題1.0分,共1分。)1、函數(shù)readDat()的功能是從文件IN22.DAT中讀取20行數(shù)據(jù)存放到字符串數(shù)組xx中(每行字符串長度均小于80)。請編制函數(shù)jsSort(),該函數(shù)的功能是:以行為單位對字符串按下面給定的條件進行排序,排序后的結果仍按行重新存入字符串數(shù)組xx中,最后調(diào)用函數(shù)writeDat()把結果xx輸出到文件OUT22.DAT中。條件:從字符串中間一分為二,左邊部分按字符的ASCII值降序排序,排序后,左邊部分與右邊部分按例子所示進行交換。如果原字符串長度為奇數(shù),則最中間的字符不參加處理,字符仍放在原位置上。例如,位置012345678源字符串a(chǎn)bcdhgfe23498765則處理后字符串hgfedcba87659432注意:部分源程序已給出。請勿改動主函數(shù)main()、讀函數(shù)readDat()和寫函數(shù)writeDat()的內(nèi)容。試題程序:#include〈stdio.h>#include〈string.h>#include〈conio.h>charxx[20][80];voidjsSort(){}main(){readDat();jsSort();writeDat();}readDat(){FILE*in;inti=0;char*p;in=fopen("IN22.DAT","r");while(i〈20&&fgets(xx[i],80,in)!=NULL){p=strchr(xx[i],’\n’);if(p)*p=0;i++;}fclose(in);}writeDat(){FILE*out;inti;clrscr();out=fopen("OUT22.DAT","w");for(i=0;i〈20;i++){printf("%s\n",xx[i]);fprintf(out,"%s\n",xx[i]);}fclose(out);}標準答案:voidjsSort(){inti,j,k,str1,half;charch;for(i=0;i〈20;i++){str1=strlen(xx[i]);/*求字符串的長度*/half=str1/2;for(j=0;j〈half-1;j++)/*將左邊部分按字符的ASCII值降序排序*/for(k=j+1;k〈half;k++)if(xx[i][j]〈xx[i][k]){ch=xx[i][j];xx[i][j]=xx[i][k];xx[i][k]=ch;}for(j=half-1,k=str1-1;j>=0;j--,k--)/*將左邊部分和右邊部分的對應字符互換位置*/{ch=xx[i][j];xx[i][j]=xx[i][k];xx[i][k]=ch;}}}知識點解析:本題考查對二維字符數(shù)組的處理。由于對二維字符數(shù)組的操作是按照先行后列的順序,因此,需要首先求得各行字符串的長度(利用求字符串長度的strlen()函數(shù)),之后借助循環(huán)結構逐個訪問各行中的每一個字符。在本題中,應先確定各行中字符串的中間位置(長度的一半就是中間位置),之后先對中間位置以前的字符進行降序排序,排序過程如下:依次用每一個位置的字符與它后面的所有字符(到中間位置前一個字符結束)進行比較,如果發(fā)現(xiàn)某字符的ASCII碼值大于當前被比較的字符的ASCII碼值,則將該字符與當前字符進行交換,交換過后繼續(xù)與其后面的字符進行比較。最終比較所得的結果是第一個被比較的位置總是存放著最大的字符,第二個位置總是存放著次大的字符,以此類推就實現(xiàn)了從大到小的排序功能。接著要做的工作是把中間位置前的一個位置定為初始位置,字符串中的最后一個位置也視為初始位置,讓兩個位置所對應的字符進行交換,交換過后,這兩個位置值(也就是下標值)分別前移,再進行對應位置字符的交換。最終實現(xiàn)了題目要求。國家三級(網(wǎng)絡技術)機試模擬試卷第8套一、程序設計題(本題共1題,每題1.0分,共1分。)1、文件IN.DAT中存有1000~4999的四位整型數(shù),函數(shù)ReadData()負責將IN.DAT中的數(shù)讀到數(shù)組inBuf[]中。請編寫函數(shù)findValue(),其功能是;求出滿足千位數(shù)字與百位數(shù)字之和等于十位數(shù)字與個位數(shù)字之和,且千位數(shù)字與百位數(shù)字之和等于個位數(shù)字與千位數(shù)字之差的10倍的數(shù),并輸出這些滿足條件的數(shù)的個數(shù)count及這些數(shù)的和sum。函數(shù)WriteData()負責將outBuf[]中的數(shù)輸出到文件OUT.DAT中并且在屏幕上顯示出來。注意;部分源程序已給出。程序中已定義數(shù)組;inBuf[4000],outBuf[4000],已定義變量;count。請勿改動主函數(shù)main()、讀函數(shù)ReadData()和寫函數(shù)WriteData()的內(nèi)容。試題程序;#include#defineNUM4000int

溫馨提示

  • 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

提交評論