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

下載本文檔

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

文檔簡介

國家三級(網(wǎng)絡技術)機試模擬試卷29(共9套)(共9題)國家三級(網(wǎng)絡技術)機試模擬試卷第1套一、程序設計題(本題共1題,每題1.0分,共1分。)1、標準答案:知識點解析:①首先定義一個循環(huán)變量循環(huán)i以及用來存放3位數(shù)分解之后各位數(shù)的變量bw(百位)、sw(十位)和gw(個位)。②通過for循環(huán)對100到999的每個數(shù)字進行逐個的掃描,循環(huán)變量i從100開始,每執(zhí)行一次循環(huán),i的值加1。⑨在每次執(zhí)行for循環(huán)時,分解當前變量i值的百位上的數(shù)字、十位上的數(shù)字和個位上的數(shù)字,然后利用表達式(gw+sw)%10=bw來判斷個位數(shù)字與十位數(shù)字之和被10除所得余數(shù)與百位數(shù)字是否相等,同時調用函數(shù)isP()判斷變量i的值是否是素數(shù),如果以上兩個條件同時滿足(兩個表達式通過&&運算符進行連接),則計數(shù)變量cnt值加1、并把其值加到變量sum上,直到循環(huán)結束,即可求出從100到999中所有滿足條件的素數(shù)的個數(shù)和它們的和。國家三級(網(wǎng)絡技術)機試模擬試卷第2套一、程序設計題(本題共1題,每題1.0分,共1分。)1、已知數(shù)據(jù)文件IN44.DAT中存有300個4位數(shù),并已調用讀函數(shù)readDat()把這些數(shù)存入數(shù)組a中,請編制一函數(shù)isValue(),其功能是:求出千位數(shù)上的數(shù)減百位數(shù)上數(shù)減十位數(shù)上的數(shù)減個位數(shù)上的數(shù)大于零的數(shù)的個數(shù)cnt,再把所有滿足此條件的4位數(shù)依次存入數(shù)組b中,然后對數(shù)組b的4位數(shù)按從小到大的順序進行排序,最后調用寫函數(shù)writeDat()把數(shù)組b中的數(shù)輸出到OUT44.DAT文件中。例如:9123,9-1-2-3>0,則該數(shù)滿足條件,存入數(shù)組b中,且個數(shù)cnt=cnt+1。9812,9-8-1-2<0,則該數(shù)不滿足條件,忽略。注意:部分源程序已給出。程序中已定義數(shù)組:a[300],b[300],己定義變量:cnt。請勿改動主函數(shù)main()、讀函數(shù)readDat()和寫函數(shù)writeDat()的內(nèi)容。試題程序:#include<stdio.h>inta[300],b[300],cnt=0;jsValue(){}main(){ihti;readDat();jsValue();writeDat();for(i=0;i<cnt;i++)printf("b[%d]=%d\n",i,b[i]);}readDat(){FILE*fp;inti;fp=fopen("IN44.DAT","r");printf("cnt=%d\n",cnt);for(i=0;i<300;i++)fscanf(fp,"%d,",&a[i]);fclose(fp);}writeDat(){FILE*fp;inti;fp=fopen("OUT44.DAT","w");fprintf(fp,"%al\n",cnt);for(i=0;i<cnt;i++)fprintf(fp,"%d\n",b[i]);fclose(fp);}標準答案:jsValue(){inti,thou,hun,ten,data,j;for(i=O;i<300;i++){thou=a[i]/1000;/*求四位數(shù)的千位數(shù)字*/hun=a[i]%1000/100;/*求四位數(shù)的百位數(shù)字*/ten=a[i]%100/10;/*求四位數(shù)的十位數(shù)字*/data=a[i]%10;/*求四位數(shù)的個位數(shù)字*/if(thou-hun-ten-data>O)/*如果千位數(shù)減百位數(shù)減十位數(shù)減個位數(shù)大于零*/{b[cut]=a[i];/*則把該數(shù)存入數(shù)組b中*/cut++;/*統(tǒng)計滿足條件的數(shù)的個數(shù)*/}}for(i=O;i<cnt-1;i++)/*對數(shù)組b的4位數(shù)按從小到大的順序進行排序*/for(j=i+l;j<cnt;j++)if(b[i]>b[j]){data=bIi];b[i]-b[j];b[j]=data;}}知識點解析:本題考查的知識點如下:(1)運算符“%”及“/”的使用。(2)循環(huán)結構及選擇結構的使用。在本題中,首先要將一個4位數(shù)的千位、百位、十位、個位拆成獨立的數(shù)字。這里借助特殊運算符號“%”(取余)和“/”(整除)。將一個4位數(shù)整除1000則可得到其千位上的數(shù)字,除以1000取余再整除100則可得百位上的數(shù)字,除以100取余再整除10則可得十位上的數(shù)字,除以10取余則得個位上的數(shù)字。然后按照題意要求將各位依次相減進行判斷。最后的排序采用“選擇排序法”。國家三級(網(wǎng)絡技術)機試模擬試卷第3套一、程序設計題(本題共1題,每題1.0分,共1分。)1、函數(shù)readData()的功能是實現(xiàn)從文件IN.DAT中讀取一篇英文文章存入到字符串數(shù)組inBuf中。請編制函數(shù)arrangeChar(),該函數(shù)的功能是;以行為單位把字符串中所有的非字母字符用空格替換。最后把已處理的字符串仍按行重新存入字符串數(shù)組inBuf中。函數(shù)writeData()負責把結果輸出到文件OUT.DAT中。例如,原文;my.name.is.Lln.T2oNice.to.meet.you結果;mynameisLnToNicetomeetyou原始數(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);voidarrangeChar(){}voidmain(){system("CLS");if(readData()){print{("IN.DATcan’tbeopen!\n\007");return;}arrangeChar();writeData();}intreadData(void){FILE*fp;inti=0;char*P;if((fp=fopen("IN.DAT","r"))==NULL)return1;while({gets(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標準答案:voidarrangeChar(){inti,j,flag,amount;for(i=0;i’z’||(inBuf[i][j]>’Z’&&inBuf[i][j]<’a’)||inBuf[i][j]<’A’)/*如果遇到某一個非字母符號*/{flag=1;//將標志置1,表明此次處理中遇到了非字母符號inBufEi][j]=’’;}}}}知識點解析:本題主要考查字符串中字符的替代問題。這類題目比較簡單,只要找到字符串中非字母字符就可以了。確定非字母字符的方法是,在ASCII碼表中,其ASCII碼值比"z"大、比"A"小和在"Z"與"a"之間的那些字符都是非字母字符,然后再用空格替代這些非字母字符即可。國家三級(網(wǎng)絡技術)機試模擬試卷第4套一、程序設計題(本題共1題,每題1.0分,共1分。)1、標準答案:知識點解析:①定義字符指針p,q,并且q指向字符串str。定義計數(shù)整型變量cnt,設置其值等于0。②在while循環(huán)中調用C語言的字符串庫函數(shù)strstr(),返回子字符串substr在字符串q第一次出現(xiàn)的位置,賦給變量p。用if語句判斷,如果p的值為空,則說明在字符串str沒有找到子字符串,退出循環(huán)。否則,變量cnt加1,再把p的值加2(因為子字符串substr的長度為2)賦給變量q,執(zhí)行下一次循環(huán)。直到字符串中不存在子字符串時,退出循環(huán)結束。③最后,返回子字符串substr在字符串str中出現(xiàn)的次數(shù)。國家三級(網(wǎng)絡技術)機試模擬試卷第5套一、程序設計題(本題共1題,每題1.0分,共1分。)1、標準答案:知識點解析:①定義整型循環(huán)變量i、j。②在第一層for循環(huán)中,循環(huán)變量i從0開始,依次遞增直到其值等于maxline,實現(xiàn)對文章每行的處理。第二層for循環(huán)中,循環(huán)變量j從0開始,依次遞增直到其值等于strlen(xx[i]),在循環(huán)體中,利用if條件語句首先判斷xx[i][j]的值是否在小寫字符字符’a’~’z’之間,然后,再判斷在此范圍之內(nèi)的小寫字母,如果是’z’,則該字符轉換為’a’,如果字符不是’z’,則將其改寫成它的下一個字母。國家三級(網(wǎng)絡技術)機試模擬試卷第6套一、程序設計題(本題共1題,每題1.0分,共1分。)1、函數(shù)ReadDat()的功能是實現(xiàn)從文件ENG18.IN中讀取一篇英文文章,存入到字符串數(shù)組xx中;請編制函數(shù)encryptChar(),按給定的替代關系對數(shù)組xx中的所有字符進行替代,結果仍存入數(shù)組xx的對應的位置上,最后調用函數(shù)WriteDat()把結果xx輸出到文件PS18.DAT中。替代關系:f(p)=p*11mod256(p是數(shù)組xx中某一個字符的ASCII值,f(p)是計算后新字符的ASCII值),如果計算后f(p)的值小于等于32或f(p)對應的字符是數(shù)字0至9,則該字符不變,否則將f(p)所對應的字符進行替代。注意:部分源程序已給出。原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個字符。請勿改動主函數(shù)main()、讀函數(shù)ReadDat()和寫函數(shù)WriteDat()的內(nèi)容。試題程序:#include〈conio.h>#include〈ctype.h>unsignedcharxx[50][80];intmaxline=0;/*文章的總行數(shù)*/intReadDat(void);voidWriteDat(void);voidencryptChar(){}main(){clrscr();if(ReadDat()){printf("數(shù)據(jù)文件ENS18.IN不能打開!\n\007");return;}encryptChar();WriteDat();}intReadDat(void){FILE*fp;inti=0;unsignedchar*p;if((fp=fopen("ENG18.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("PS18.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=0;i〈maxline;i++){pf=xx[i];while(*pf!=0){if((*pf*11%256>=’0’&&*pf*11%256〈=’9’)||*pf*11%256〈=32){pf++;continue;}/*如果計算后的值小于等于32或f(p)對應的字符是數(shù)字0至9,則該字符不變*/*pf=*pf*11%256;/*否則按給定的替代關系進行替代*/pf++;}}}知識點解析:本題主要考查用指針變量來控制字符數(shù)組,由于要對已有二維字符數(shù)組的所有元素逐個處理,因此,需要定義一個字符指針變量來控制原二維數(shù)組的各行,當前行如果確定下來,用指針的移動就可以依次掃描該行的所有字符元素,每得到一個字符就對它行條件判斷,根據(jù)題意,條件用“if(*pf*11%256>=’0’&&*pf*11%256<=’9’)||*pf*11%256<=32)”語句來實現(xiàn),如果該字符不滿足上述條件,就用一個新的字符來替代,新的字符是當前字符乘以11的結果再去與256求余數(shù)。處理完畢后,指針去取下一個字符。如果該字符滿足所給條件,將不做任何操作,指針直接下移,去取下一個字符,對下一個字符進行處理。國家三級(網(wǎng)絡技術)機試模擬試卷第7套一、程序設計題(本題共1題,每題1.0分,共1分。)1、文件IN.DAT中存有300個四位整型數(shù),函數(shù)ReadData()負責將IN.DAT中的數(shù)讀到數(shù)組inBuf[]中。請編寫函數(shù)findValue(),其功能是;求出千位數(shù)上的數(shù)加個位數(shù)上的數(shù)等于百位數(shù)上的數(shù)加十位數(shù)上的數(shù)的個數(shù)count,再求出所有滿足此條件的四位數(shù)平均值averagel,以及所有不滿足此條件的四位數(shù)平均值average2,最后調用函數(shù)WriteData()把結果count、averagel、average2輸出到OUT.DAT文件中。注意;部分源程序已給出。程序中已定義數(shù)組;inBuf[NUM],已定義變量;count,averagel,average2。請勿改動主函數(shù)main()、讀函數(shù)ReadData()和寫函數(shù)WriteData()的內(nèi)容。試題程序;#include#defineNUM300intinBuf[NUM],count=0;doubleaverage1=0,average2=0;voidReadData();voidWriteData();voidfindValue(){}voidmain(){ReadData();findValue();WriteData();printf("count=%d\naverag1=%7.21f\naverag2=%7.21f\n",count,average1,average2);}voidReadData(){FILE*fp;inti;fp=fopen("IN.DAT","r");for(i=0;i標準答案:voidfindValue(){inti,j,k,d[4],temp,count_no=0;for(i=0;i知識點解析:本題主要考查數(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)絡技術)機試模擬試卷第8套一、程序設計題(本題共1題,每題1.0分,共1分。)1、文件IN.DAT中存有一篇英文文章,函數(shù)ReadData()負責將IN.DAT中的數(shù)據(jù)讀到數(shù)組inBuf[]中。請編制函數(shù)replaceChar(),該函數(shù)的功能是;以行為單位把字符串中的所有大寫字母改成該字母的下一個字母,字母Z成字母A。要求大寫字母仍為大寫字母,小寫字母仍為小寫字母,其他字符不變。把已處理的字符串仍按行重新存人字符串數(shù)組inBuf[]中,函數(shù)WriteData()負責將inBuf[]中的數(shù)據(jù)輸出到文件0UT.DAT中并且在屏幕上打出。例如;S字符串中原有的內(nèi)容為;my.name.is.Lin.TaoNice.to.meet.you則調用該函數(shù)后,結果為;my.name.is.Min.UaoOice.to.meet.you原始數(shù)據(jù)文件存放的格式是;每行的寬度均小于80個字符,含標點符號和空格。注意;部分源程序已給出。請勿改動主函數(shù)main()、讀函數(shù)ReadData()和寫函數(shù)WriteData()的內(nèi)容。試題程序;#include#include#include#include#defineLINE70#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={open("OUT.DAT","w");for(i=0;i標準答案:voidreplaceChar(){inti,j;for(i=0;i=’A’&&inBuf[i][j]<=’Z’)//如果字符在’A’~’Z’之間{if(inBuf[i][j]==’Z’)inBuf[i][j]=’A’;//如果是字符’Z’,則用’A’來代替elseinBuf[i][j]=(char)((int)inBuf[i][j]+1);//其他情況則用其后面的字符代替}}知識點解析:本題主要考查字符與其對應的ASCII碼之間的轉換及對ASCII碼進行操作。程序步驟;1.依據(jù)條件選擇inBuf[i][j],將其進行類型強制轉換成整型(也即所對應的ASCII碼值)。2.將ASCII碼值加1或減1以將該字符的ASCII碼值換成其下一位的ASCII碼值,將計算所得結果再轉換成字符型存儲到inBuf[i][j]中。國家三級(網(wǎng)絡技術)機試模擬試卷第9套一、程序設計題(本題共1題,每題1.0分,共1分。)1、在文件IN3.DAT中有200個正整數(shù),且每個數(shù)均在1000至9999之間。函數(shù)readDat()的功能是讀取這200個數(shù)存放到數(shù)組aa中。請編制函數(shù)jsSort(),該函數(shù)的功能是:要求按每個數(shù)的后3位的大小進行降序排列,將排序后的前10個數(shù)存入數(shù)組b中,如果數(shù)組b中出現(xiàn)后3位相等的數(shù),則對這些數(shù)按原始4位數(shù)據(jù)進行升序排列。最后調用函數(shù)writeDat()把結果比輸出到文件OUT3.DAT中。例如:處理前90125099601270258088處理后50998088702560129012注意:部分源程序已給出。請勿改動主函數(shù)main()、讀函數(shù)readDat()和寫函數(shù)writeDat()的內(nèi)容。試題程序:#include<stdio.h>%include<string.h>%include<conio.h>intaa[200],bb[10];voidjsSort(){main(){readDat();jsSort();writeDat();}readDat(){FILE*in;inti;in=fop

溫馨提示

  • 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

提交評論