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

下載本文檔

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

文檔簡介

國家三級(網(wǎng)絡技術)機試模擬試卷19(共9套)(共9題)國家三級(網(wǎng)絡技術)機試模擬試卷第1套一、程序設計題(本題共1題,每題1.0分,共1分。)1、標準答案:知識點解析:①首先定義兩個循環(huán)變量i、j;一個用來保存結構體變量長度的計算結果的變量len;一個用于中間轉換數(shù)據(jù)的結構體變量tmp。②計算結構體變量長度,并按結構體變量tmp分配len大小的內(nèi)存空間。③建立兩個for循環(huán),指定第一個for循環(huán)的循環(huán)變量i從0開始,到100時結束,每循環(huán)一次,變量i的值加1;第2個for循環(huán)的循環(huán)變量j從i+1開始,即從當前行的下一行開始,到100時結束,每循環(huán)一次,變量j的值加1。④在循環(huán)體中指定排序的條件,分兩個步驟指定,第一步通過strcmp()函數(shù)判斷第i行的產(chǎn)品代碼與其后面各行中產(chǎn)品代碼的大小關系;第二步,如果比較的兩行中產(chǎn)品代碼相同的話,則再比較金額的大小。當?shù)趇行的產(chǎn)品代碼小于后面比較行的產(chǎn)品代碼,又或者產(chǎn)品代碼相同時,第i行的金額小于后面比較行的金額時,將執(zhí)行if條件語句后面花括號中的命令,花括號中3條命令的功能就是根據(jù)題目要求實現(xiàn)將記錄從大到小的排序。國家三級(網(wǎng)絡技術)機試模擬試卷第2套一、程序設計題(本題共1題,每題1.0分,共1分。)1、函數(shù)ReadDat()的功能是實現(xiàn)從文件ENG4.IN中讀取一篇英文文章,存入到字符串數(shù)組xx中。請編制函數(shù)encryptChar(),按給定的替代關系對數(shù)組xx中的所有字符進行替代,結果仍存入數(shù)組xx對應的位置上,最后調(diào)用函數(shù)WriteDat()把結果xx輸出到文件PS4.DAT中。替代關系:f(p)=p*11mod256(p是數(shù)組xx中某一個字符的ASCII值,f(p)是計算后新字符的ASCII值),如果計算后f(p)的值小于等于32或大于130,則該字符不變,否則將f(p)所對應的字符進行替代。注意:部分源程序已給出。原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于,80個字符。請勿改動主函數(shù)main()、讀函數(shù)ReadDat()和寫函數(shù)WriteDat()的內(nèi)容。試題程序:#include<stdio.h>#include<string.h>#include<conio.h>#include<ctype.h>unsignedcharxx[50][80];intmaxline=0;/*文章的總行數(shù)*/intReadDat(void);voidWriteDat(void);voidencryptChar(){main(){clrscr();if(ReadDat()){printf("數(shù)據(jù)文件ENG4.IN不能打開!\n\007");return;}encryptChar();WriteDat();}intReadDat(void){FILE*fp;inti=0;unsignedchar*p;if((fp=fopen("ENG4.IN","r"))==NULL)return1;while(fgets(xx[i],80,fp)!=NULL){p=strchr(xx[i],’\n’);if(p)*p=0;i++;}maxline=i;fclose(fp);return0;}voidWriteDat(void){FILE*fp;inti;fp=fopen("PS4.DAT","w");for(i=0;i<maxline;i++){printf("%s\n",xx[i]);fprintf(fp,"%s\n",xx[i]);}fclose(fp);}標準答案:voidencryptChar(){inti;char*pf;for(i=O;i<maxline;i++){pf=xx[i];/*指針pf指向各行的首地址*/while(*pf!=0){if(*pf*11%256>130||*pf*11%256<=32);/*如果廣計算后的值小于等于32或大于130*//*則該字符不變*/else*pf=*pf*11%256;/*否則將所對應的字符進行替代*/pf++;/*指針pf指向下一個字符*/}}}知識點解析:本題主要考查用指針變量來控制字符數(shù)組,由于要對已有二維字符數(shù)組的所有元素逐個處理,因此,需要定義一個字符指針變量來控制原二維數(shù)組的各行,當前行如果確定下來,用指針的移動就可以依次掃描該行的所有字符元素,每得到一個字符就對它進行條件判斷。根據(jù)題意,條件用“if(*pf*11%256>130||*pf*11%256<=32)”語句米實現(xiàn),如果該字符不滿足上述條件,就用一個新的字符來替代,新的字符是當前的字符乘以11的結果再去與256求余數(shù)。處理完畢后,指針去取下一個字符。如果該字符滿足所給條件,將不做任何操作,指針直接下移,去取下一個字符,對下一個字符進行處理。國家三級(網(wǎng)絡技術)機試模擬試卷第3套一、程序設計題(本題共1題,每題1.0分,共1分。)1、文件IN.DAT中存有一篇英文文章,函數(shù)ReadData()負責將IN.DAT中的數(shù)據(jù)讀到數(shù)組inBuf[][]中。請編制函數(shù)replaceChar(),該函數(shù)的功能是;以行為單位把字符串的最后一個字符ASCII值右移4位后加最后第二個字符的ASCII值,得到最后一個新的字符,最后第二個字符的ASCII值右移4位后加最后第三個字符的ASCII值,得到最后第二個新的字符,依此類推,一直處理到第二個字符,第一個字符的ASCII值加最后一個字符的ASCII值,得到第一個新的字符,得到的新字符分別存放在原字符串對應的位置上。把已處理的字符串仍按行重新存人字符串數(shù)組inBuf[][]中,函數(shù)WriteData()負責將inBuf[][]中的數(shù)據(jù)輸出到文件OUT.DAT中并且在屏幕上打出。原始數(shù)據(jù)文件存放的格式是;每行的寬度均小于80個字符,含標點符號和空格。注意;部分源程序已給出。請勿改動主函數(shù)main()、讀函數(shù)ReadData()和寫函數(shù)WriteData()的內(nèi)容。試題程序;#include#include#include#include#defineLINE50#defineCOL80charinBuf[LINE-I[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,len,last;chary;for(i=0;i0;j--)inBuf[i][j]=(inBuf[i][j]>>4)+inBuf[i][j-1];/*其他情況下,則將該字符的ASCII碼右移4位再加上前一個字符的ASCII碼*/inBuf[i][0]+=last;//將整型轉換成字符型存入inBuf中}}知識點解析:本題主要考查字符與其對應的ASCII碼之間的轉換及對ASCII碼進行操作。程序步驟;1.計算出每行字符串的長度。2.將字符串中最后一個保存在變量last中。3.按照指定的規(guī)則對字符串中除第一個以外的字符進行替代。4.對第一個字符按照指定規(guī)則進行替代。國家三級(網(wǎng)絡技術)機試模擬試卷第4套一、程序設計題(本題共1題,每題1.0分,共1分。)1、標準答案:知識點解析:通過審題可以發(fā)現(xiàn)主要是對字符串左邊部分排序時所采用的排序方式不同,參考答案的第11行,修改if條件語句的設置即可。國家三級(網(wǎng)絡技術)機試模擬試卷第5套一、程序設計題(本題共1題,每題1.0分,共1分。)1、標準答案:知識點解析:通過審題可以發(fā)現(xiàn)主要是對四位數(shù)的篩選條件有所不同,即判斷新組合的兩位數(shù)要求第一個為偶數(shù),第二個為奇數(shù),比較兩題的第10條語句,只需將新組合的第二個數(shù)的判斷條件改為奇數(shù)判斷,即?!皀ewV2%2”。國家三級(網(wǎng)絡技術)機試模擬試卷第6套一、程序設計題(本題共1題,每題1.0分,共1分。)1、下列程序的功能是:把s字符串中所有的字符左移一個位置,串中的第一個字符移到最后。請編制函數(shù)chg(char*s)實現(xiàn)程序要求,最后調(diào)用函數(shù)readwriteDat()把結果輸出到out63.dat文件中。例如:s字符串中原有內(nèi)容為Mn,123xyZ,則調(diào)用該函數(shù)后,結果為n,123xyZM。注意:部分源程序已給出。請勿改動主函數(shù)main()和輸入輸出函數(shù)readwriteDAT()的內(nèi)容。試題程序:#include<conio.h>#include<stdio.h>#defineN81voidreadwriteDAT();voidchg(char*s){}main(){chara[N];clrscr();printf("Enterastring:");gets(a);printf("Theoriginalstringis:");puts(a);chg(a);printf("Thestringaftermodified:");puts(a);readwriteDAT();}voidreadwriteDAT(){inti;chara[N];unsignedchar*p;FILE*rf,*wf;rf=fopen("in63.dat","r");wf=fopen("out63.dat","w");for(i=0;i<10;i++){fgets(a,80,rf);p=strchr(a,’\n’);if(p)*p=0;chg(a);fprintf(wf,"%s\n",a);}fclose(rf);fclose(wf);}標準答案:voidchg(char*s){inti,strl;charch;strl=strlen(s);/*求字符串的長度*/ch=*s;/*將第一個字符暫賦給ch*/for(i=O;i<strl-1;i++)/*將字符依次左移*/*(s+i)=*(s+i+l);*(s+strl-1)=ch;/*將第一個字符移到最后*/}知識點解析:本題考查的知識點如下:(1)數(shù)組中元素的移動。(2)指針的使用。我們可以使用一個循環(huán)實現(xiàn)數(shù)組中所有字符元素的左移。這里要注意的足第1個字符要移至最后1個字符處,所以首先要將第1個字符保存。在移動時,要從左到右依次移動,否則,左側的字符會在移動前被其右側的字符覆蓋。在這里使用了指針,初始時,指針指向數(shù)組的第1個元素,隨著地址的增加指針指向數(shù)組后面的元素。例如,若地址加2,國家三級(網(wǎng)絡技術)機試模擬試卷第7套一、程序設計題(本題共1題,每題1.0分,共1分。)1、設有n個人坐一圈并按順時針方向從1到n編號,從第s個人開始進行1到m的報數(shù),報數(shù)到第m個人,此人出圈,再從他的下—個人重新開始從1到m報數(shù),如此進行下去直到所有的人都出圈為止。先要求按出圈次序,每10個人為一組,給出這n個人的順序表。請編制函數(shù)Josegh()實現(xiàn)此功能并調(diào)用函數(shù)WriteDat()把編設n=100,s=1,m=10進行編程。注意:部分源程序已給出。請勿改動主函數(shù)main()和寫函數(shù)WritsDat()的內(nèi)容。試題程序:#include<stdio.h>#defineN100#defineS1#defineM10intp[lOO],n,s,m;voidWriteDat(void);voidJosegh(void){}voidmain(){m=M;n=N;s=S;Josegh();WriteDat();}voidWriteDat(void){inti;FILE*fp;fp=fopen("OUT59.DAT","w");for(i=N-1;i>=0;i--){printf("%4d",p[i]);fprintf(fp,"%4d",p[i]);if(i%10==0){printf("\n");fprintf(fp,"\n");}}fclose(fp);}標準答案:voidJosegh(void){inti,j,k,sl,w;s1=s;for(i=l;i<=n;i++)/*給n個人從到n編號*/p[i-1]=i;for(i=n;i>=2;i--){s1=(s1+m-1)%i;/*下一個開始報數(shù)的人的編號是(s1+m-1)%i*/if(s1==0)/*若s1為0,則說明要開始報數(shù)的是最后一個人*/s1=i;w=p[s1-1];/*將要出圈的人移至數(shù)組的最后*/for(j=sl;j<=i-1;j++)p[j-1]=p[j];p[i-1]=w;}}知識點解析:本題考查的知識點如下:(1)將數(shù)組建成環(huán)。(2)運算符“%”的使用。(3)循環(huán)的嵌套使用。此題是著名的“約瑟夫環(huán)”問題。首先要將每個人的編號存入數(shù)組。因為每次是從s1開始報數(shù),若是直線隊則下一個開始報數(shù)的人的編號是s1+m-1,但這里要建立一個環(huán),即最后一個人報完數(shù)后第一個人接著報數(shù)。所以這時下一個開始報數(shù)的人的編號足(s1+m-1)%i,i是此時圈中的總人數(shù)。若所得的結果為0,則說明要開始報數(shù)的是最后一個人。在此人前面的那個人就是要出圈的人,使用循環(huán)將要出圈的人移至數(shù)組的最后。開始時,總人數(shù)為n,以后依次減1,直到最后一個人出圈。國家三級(網(wǎng)絡技術)機試模擬試卷第8套一、程序設計題(本題共1題,每題1.0分,共1分。)1、標準答案:知識點解析:①定義表示Fibonacci數(shù)列中第F(n-2)項的變量f0,第F(n-1)項的變量f1,第F(n)項的變量f2。②當Fibonacci數(shù)列中第F(n)項的值f2小于t時,把數(shù)列當前第F(n-1)項的值n賦給內(nèi),把數(shù)列當前第F(n)項的值f2賦給f1,根據(jù)。Fibonacci數(shù)列的遞推關系,第n項的值等于第n-1項的值與第n-2項值的和,計算數(shù)列當前第n+1項的值f2=f0+f1依次循環(huán),當f2的值大于t時,退出while循環(huán),把f2的值返回。國家三級(網(wǎng)絡技術)機試模擬試卷第9套一、程序設計題(本題共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]);}

溫馨提示

  • 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

提交評論