國家三級(網(wǎng)絡(luò)技術(shù))機(jī)試模擬試卷26(共9題)_第1頁
國家三級(網(wǎng)絡(luò)技術(shù))機(jī)試模擬試卷26(共9題)_第2頁
國家三級(網(wǎng)絡(luò)技術(shù))機(jī)試模擬試卷26(共9題)_第3頁
國家三級(網(wǎng)絡(luò)技術(shù))機(jī)試模擬試卷26(共9題)_第4頁
國家三級(網(wǎng)絡(luò)技術(shù))機(jī)試模擬試卷26(共9題)_第5頁
已閱讀5頁,還剩6頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

國家三級(網(wǎng)絡(luò)技術(shù))機(jī)試模擬試卷26(共9套)(共9題)國家三級(網(wǎng)絡(luò)技術(shù))機(jī)試模擬試卷第1套一、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)1、函數(shù)ReadDat()的功能是實(shí)現(xiàn)從文件IN5.DAT中讀取一篇英文文章存入到字符串?dāng)?shù)組xx中。請編制函數(shù)ConvertCharA(),該函數(shù)的功能是:以行為單位把字符串中的所有小寫字母改寫成該字母的下一個(gè)字母,如果是字母z,則改寫成字母a。大寫字母仍為大寫字母,小寫字母仍為小寫字母,其他字符不變。把已處理的字符串仍按行重新存入字符串?dāng)?shù)組xx中,最后調(diào)用函數(shù)WriteDat()把結(jié)果xx輸出到文件OUT5.DAT中。例如,原文:Adb.Bcdzaabck.LLhj結(jié)果:Aec.Bdeabbcdl.LLik原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個(gè)字符,含標(biāo)點(diǎn)符號和空格。請勿改動(dòng)主函數(shù)main()、讀函數(shù)ReadDat()和寫函數(shù)WriteDat()的內(nèi)容。試題程序:#include<stdio.h>#include<string.h>#include<conio.h>charxx[50][80];intmaxline=0;/*文章的總行數(shù)*/intReadDat(void);voidWriteDat(void);voidConvertCharA(void){main(){clrscr();if(ReadDat()){printf("數(shù)據(jù)文件IN5.DAT不能打開!\n\007");return;}ConvertCharA();WriteDat();}intReadDat(void){FILE*fp;inti=0;char*p;if((fp=fopen("IN5.DAT","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;clrscr();fp=fopen("OUT5.DAT","w");for(i=0;i<maxline;i++){printf("%skn",xx[i]);fprintf(fp,"%s\n",xx[i]);}fclosefp);}標(biāo)準(zhǔn)答案:voidConvertCharA(void){inti,i,str;for(i=O;i<maxline;i++){str=strlen(XX[i]);/*求得當(dāng)前行的字符串的長度*/for(j=0;i<str;j++)if(MX[i][j]==’z’)MX[i][j]=’a’;/*如果遇到的字符是小寫字母z則改寫成小寫字母a*/elseif(xx[i][j]>=’a’&&xx[i][j]<=’y’)MX[i][j]+=1;/*如果該字符是從a到y(tǒng)的小寫字母則改寫為該字母的下一個(gè)字母*/}}知識點(diǎn)解析:本題要對二維數(shù)組中的字符元素按行來處理,因此,首先要求得當(dāng)前行所包含的字符總個(gè)數(shù),之后才可以利用一個(gè)循環(huán)米依次訪問該行中的所有字符。當(dāng)遇到一個(gè)字符時(shí),先判斷該字符是否是小寫字母z,如果是,則把該字符改寫成小寫字母a;如果不是,則繼續(xù)判斷該字符是否是從a到y(tǒng)的小寫字母,如果是,則改寫為該字母的下一個(gè)字母(利用字符的ASCII碼值來實(shí)現(xiàn));如果不是,則不做任何的操作,接著去取下一個(gè)字符。國家三級(網(wǎng)絡(luò)技術(shù))機(jī)試模擬試卷第2套一、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)1、標(biāo)準(zhǔn)答案:知識點(diǎn)解析:通過審題可以發(fā)現(xiàn)有兩個(gè)不同點(diǎn):①要求統(tǒng)計(jì)的四位數(shù)的條件是“千位+百位=十位+個(gè)位”,參考答案的第18條語句修改if語句的判斷條件即可。②將統(tǒng)計(jì)結(jié)果按從大到小的順序排序,參考答案的第13條語句,修改兩數(shù)組元素的大小比較符即可。另外,對于數(shù)據(jù)交換的整型變量tmp可以自定義其變量名。國家三級(網(wǎng)絡(luò)技術(shù))機(jī)試模擬試卷第3套一、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)1、文件IN.DAT中存有200個(gè)四位整型數(shù),函數(shù)readData()負(fù)責(zé)將IN.DAT中的數(shù)讀到數(shù)組inBuf[]中。請編寫函數(shù)findValue(),其功能是;把千位數(shù)字和十位數(shù)字重新組合成一個(gè)新的兩位數(shù)(新兩位數(shù)的十位數(shù)字是原四位數(shù)的千位數(shù)字,新兩位數(shù)的個(gè)位數(shù)字是原四位數(shù)的十位數(shù)字),以及把個(gè)位數(shù)和百位數(shù)組成另一個(gè)新的兩位數(shù)(新兩位數(shù)的十位數(shù)字是原四位數(shù)的個(gè)位數(shù)字),新生成的兩個(gè)兩位數(shù)均為素?cái)?shù)且新兩位數(shù)均不為零。求滿足條件的數(shù),用count記錄下符合條件的數(shù)的個(gè)數(shù),并按照從大到小的順序存人數(shù)組outBuf[]中。函數(shù)writeData()負(fù)責(zé)將outBuf[]中的數(shù)輸出到文件OUT.DAT中,并且在屏幕上顯示出來。注意;部分源程序已給出。程序中已定義數(shù)組;inBuf[NUM],outBuf[NUM],已定義變量;count。請勿改動(dòng)主函數(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標(biāo)準(zhǔn)答案:voidfindValue(){inti,j,k,d[4],temp,flag,ab,cd,abcd[2];for(i=0;i知識點(diǎn)解析:本題考查的主要是數(shù)位分解及排序。數(shù)位分解就是將n位數(shù)各個(gè)數(shù)位上的數(shù)值單獨(dú)分離出來,將此n位數(shù)對10求余可以將個(gè)位上的數(shù)值分離出來;將此n位數(shù)除以10以后得到一個(gè)n-1位數(shù),則此時(shí)n位數(shù)原來的十位就變成了n-1位數(shù)的個(gè)位,再將此n-1位數(shù)對10求余便可得到原13.位數(shù)的十位。依此類推,便可將n位數(shù)各個(gè)位上的數(shù)值分離出來。程序基本步驟是;1.將數(shù)值送入temp中。2.由temp%10得到個(gè)位數(shù);(temp/10)%10得到十位數(shù),依此類推,可得到各位上的數(shù)值。3.按照題目所給的條件篩選出數(shù)據(jù)。4.對選出的數(shù)據(jù)進(jìn)行排序。本題判斷素?cái)?shù)的方法是固定的,但思路有很多,讀者可根據(jù)自己的喜好來編寫.程序,如可以自定義一個(gè)判斷素?cái)?shù)的函數(shù),然后在if條件中直接調(diào)用此函數(shù)也可以達(dá)到目的。國家三級(網(wǎng)絡(luò)技術(shù))機(jī)試模擬試卷第4套一、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)1、請編寫函數(shù)num(intm,intk,intxx[]),該函數(shù)的功能是;將大于整數(shù)m且與m相鄰的k個(gè)素?cái)?shù)存人數(shù)組XX中傳回。最后調(diào)用readWriteData()從IN.DAT文件中讀取10組數(shù)據(jù),分別得出結(jié)果,且把結(jié)果輸出到文件0UT.DAT中。例如;114,則應(yīng)輸出;13171923注意;部分源程序已經(jīng)給出。請勿改動(dòng)主函數(shù)mainData()和輸出函數(shù)readWriteData()的內(nèi)容。試題程序;#include#includevoidreadWriteData();voidnum(intm,intk,intxx[]){}main(){intm,n,xxElOOO];printf("\nPleaseentertwointegers;");scanf("%d%d",&m,&n);num(m,n,xx);for(m=0;m標(biāo)準(zhǔn)答案:voidnum(intm,intk,intxx[]){intdata=m+1;//定義整形變量data,并賦初值m+1inthalf,n=0,i;while(1)//判斷data是否為素?cái)?shù){half=data/2;for(i=2;i<=half;i++)if(data%i==0)break;if(i>half)//i>half說明i是素?cái)?shù){xx[n]=data;//將d放人數(shù)組xx中n++;//計(jì)數(shù)器加1}if(n>=k)//如果找到了k個(gè)滿足的素?cái)?shù),則跳出循環(huán)break;data++;//繼續(xù)找下一個(gè)素?cái)?shù)}}知識點(diǎn)解析:num()函數(shù)的功能是將大于整數(shù)m且符合與m相鄰的k個(gè)素?cái)?shù),存入數(shù)組xx[]中。本題中,在找到符合的素?cái)?shù)后,將data放入數(shù)組XX中,計(jì)數(shù)器此時(shí)加1。利用循環(huán)來找到符合條件的素?cái)?shù),然后跳出循環(huán)繼續(xù)尋找下一個(gè)素?cái)?shù)。國家三級(網(wǎng)絡(luò)技術(shù))機(jī)試模擬試卷第5套一、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)1、已知在文件IN13.DAT中存有若干個(gè)(個(gè)數(shù)<200)4位數(shù)字的正整數(shù),函數(shù)ReadDat()的功能是讀取這若干個(gè)正整數(shù)并存入數(shù)組xx中。請編制函數(shù)CalValue(),其功能要求:(1)求出該文件中共有多少個(gè)正整數(shù)totNum;(2)求這些數(shù)右移1位后,產(chǎn)生的新數(shù)是偶數(shù)的數(shù)的個(gè)數(shù)totCnt,以及滿足此條件的這些數(shù)(右移前的值)的算術(shù)平均值totPjz,最后調(diào)用函數(shù)WriteDat()把所求的結(jié)果輸出到文件OUT13.DAT中。注意:部分源程序已給出請勿改動(dòng)主函數(shù)main()、讀函數(shù)ReadDat()和寫函數(shù)WriteDat()的內(nèi)容。試題程序:#include〈stdio.h>#include〈conio.h>#defineMAXNUM200intxx[MAXNUM];inttotNum=0;/*文件IN13.DAT中共有多少個(gè)正整數(shù)*/inttotCnt=0;/*符合條件的正整的個(gè)數(shù)*/doubletotPjz=0.0;/*平均值*/intReadDat(void);voidWritedat(void);voidCalValue(void){}main(){inti;clrscr();for(i=0;i〈MAXNUM;i++)xx[i]=0;if(ReadDat()){printf("數(shù)據(jù)文件IN13.DAT不能打開!\007\n");return;}CalValue();printf("文件IN1B.DAT中共有正整數(shù)=%d個(gè)\n",totNum);printf("符合條件的正整數(shù)的個(gè)數(shù)=%d個(gè)\n",totCnt);printf("平均值=%.21f\n",totPjz)Writedat();}intReadDat(void){FILE*fp;inti=0;if((fp=fopen("IN13.DAT","r"))==NULL)return1;while(!feof(fp)){fscanf(fp,"%d,",&xx[i++]);}fclose(fp);return0;}voidWriteDat(void){FILE*fp;fp=fopen("OUT13.DAT","w");fprintf(fp,"%d\n%d\n%.21f\n",totNum,totCnt,totPjz);fclose(fp);}標(biāo)準(zhǔn)答案:voidCalValue(void){inti,data;for(i=0;i〈MAXNUM;i++){if(!xx[i])continue;/*如果當(dāng)前數(shù)為0,則結(jié)束本次循環(huán),取下一個(gè)數(shù)*/if(xx[i]>0)totNum++;/*統(tǒng)計(jì)正整數(shù)的個(gè)數(shù)*/data=xx[i]>>1;/*將數(shù)右移一位*/if(data%2==0)/*如果右移1位后,產(chǎn)生的新數(shù)是偶數(shù)*/{totCnt++;totPjz+=xx[i];}/*統(tǒng)計(jì)這些數(shù)的個(gè)數(shù),并將滿足條件的原數(shù)求和*/}totPjz/=totCnt;/*求滿足條件的這些數(shù)(右移前的值)的算術(shù)平均值*/}知識點(diǎn)解析:本題的解題思路是首先利用一個(gè)for循環(huán)來依次從數(shù)組中取得各數(shù),由于題目要求數(shù)組中正整數(shù)的個(gè)數(shù),因此,零不做任何處理,接著去取下一個(gè)數(shù)。只要某數(shù)大于零,則該數(shù)一定是正整數(shù),這時(shí)就給變量totNum(正整數(shù)的個(gè)數(shù))累加1,之后把該正整數(shù)右移一位后的結(jié)果臨時(shí)保存在變量data中,再對這個(gè)臨時(shí)變量進(jìn)行是否偶數(shù)的判斷。如果該臨時(shí)變量中保存的值是偶數(shù),則表明原數(shù)符合條件,就給變量totCnt(符合判斷條件的正整數(shù)個(gè)數(shù))累加1,并把當(dāng)前的變量data右移前的原數(shù)的值累加到變量totPjz中,當(dāng)所有符合判斷條件的數(shù)都被找出后,再對totPjz進(jìn)行求平均值的計(jì)算。國家三級(網(wǎng)絡(luò)技術(shù))機(jī)試模擬試卷第6套一、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)1、下列程序的功能是:計(jì)算500~800之間素?cái)?shù)的個(gè)數(shù)cnt,并按所求素?cái)?shù)的值從小到大的/頃序,再計(jì)算其間隔加、減之和,即第1個(gè)素?cái)?shù)-第2個(gè)素?cái)?shù)十第3個(gè)素?cái)?shù)-第4個(gè)素?cái)?shù)+第5個(gè)素?cái)?shù)……的值sum。請編寫函數(shù)countValue()實(shí)現(xiàn)程序的要求,最后調(diào)用函數(shù)writeDaI()把結(jié)果cnt和sum輸出到文件OUT66.DAT中。注意:部分源程序已給出。請勿改動(dòng)主函數(shù)main()和寫函數(shù)writeDAT()的內(nèi)容。試題程序;#include<stdio.h>intcnt,sum;voidcountValue(){}voidmain(){cnt=sum=0;countValue();printf("素?cái)?shù)的個(gè)數(shù)=%d\n",ont);printf("按要求計(jì)算得值=%d\n",sum);writeDAT();}writeDAT(){FILE*fp;fp=fopen("OUT66.DAT","w");fprintf(fp,"%d\n%d\n",cnt,sum);fclose(fp);}標(biāo)準(zhǔn)答案:voidcountValue(){inti,j,half,yy[100];for(i=500;i<800;i++){half=i/2;for(j=2;j<=half;j++);if(i%j==0)break;/*如果該數(shù)不是素?cái)?shù),則退出此層循環(huán)*/if(j>=half)/*如果該數(shù)是素?cái)?shù),則將該數(shù)存入數(shù)組yy中*/{yy[cnt]=i;cnt++;/*統(tǒng)計(jì)素?cái)?shù)的個(gè)數(shù)*/}}for(i=0,j=-1;i<cnt;i++)/*計(jì)算這些素?cái)?shù)的間隔加、減之和*/{j=j*-1;sum+=j*yy[i];}}知識點(diǎn)解析:本題考查的知識點(diǎn)如下:(1)利用循環(huán)和“%”進(jìn)行素?cái)?shù)的判斷。(2)間隔加、減的實(shí)現(xiàn)。在本題中,首先要找出判斷素?cái)?shù)的方法。若一個(gè)數(shù)a依次除以從2到a/2的數(shù)所得的余數(shù)都不是0,則這個(gè)數(shù)是素?cái)?shù)。用此方法依次判斷出從500到800區(qū)間內(nèi)的素?cái)?shù)。由題意可知,第1,3,5…個(gè)素?cái)?shù)計(jì)算加法,第2,4,6…個(gè)素?cái)?shù)計(jì)算減法。減去1個(gè)正整數(shù)就是加上負(fù)的這個(gè)正整數(shù),所以可以將這個(gè)正整數(shù)乘以-1進(jìn)行加法。使用循環(huán)實(shí)現(xiàn)求和,在奇數(shù)次的循環(huán)中,每個(gè)素?cái)?shù)乘以1,偶數(shù)次的循環(huán)中,素?cái)?shù)乘以-1,就可實(shí)現(xiàn)間隔加、減。國家三級(網(wǎng)絡(luò)技術(shù))機(jī)試模擬試卷第7套一、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)1、函數(shù)ReadDat()的功能是實(shí)現(xiàn)從文件ENG9.IN中讀取一篇英文文章,存入到字符串?dāng)?shù)組xx中。請編制函數(shù)encryptChar(),按給定的替代關(guān)系對數(shù)組xx中的所有字符進(jìn)行替代,仍存入數(shù)組xx的對應(yīng)的位置上,替代關(guān)系:f(p)=p*11mod256(p是數(shù)組xx中某一個(gè)字符的ASCII值,f(p)是計(jì)算后新字符的ASCII值),如果原字符的ASCII值是偶數(shù)或計(jì)算后f(p)的值小于等于32,則該字符不變,否則將f(p)所對應(yīng)的字符進(jìn)行替代。注意:部分源程序已給出,原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個(gè)字符。請勿改動(dòng)主函數(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ù)文件ENG9.IN不能打開!\n\007");return;}encryptChar();WriteDat();}intReadDat(void){FILE*fp;inti=0;unsignedchar*p;if((fp=fopen("ENG9.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("PS9.DAT","w");for(i=0;i<maxline;i++){printf("%s\n",xx[i]);fprintf(fp,"%s\n",xx[i]);}fclose(fp);}標(biāo)準(zhǔn)答案:voidencryptChar(){inti;char*pf;for(i=0;i<maxline;i++)pf=xx[i];/*指針pf指向當(dāng)前行的首地址*/whilie(*pf!=0){if(*pf%2==0||*pf*11%256<=32);/*如果原字符的ASCII值是偶數(shù)或計(jì)算后的值小于等于32,則該字符不變*/else*pf=*pf*11%256;/*否貝Jj將所對應(yīng)的字符進(jìn)行替代*/pf++;/*指針pf指向下一個(gè)字符*/}}}知識點(diǎn)解析:本題主要考查用指針變量來控制字符數(shù)組,由于要對已有二維字符數(shù)組的所有元素逐個(gè)處理,因此,需要定義一個(gè)字符指針變量來控制原二維數(shù)組的各行。當(dāng)前行如果確定下來,用指針的移動(dòng)就可以依次掃描該行的所有字符元素,每得到一個(gè)字符就對它進(jìn)行條件判斷。根據(jù)題意,條件用“if(*pf%2++0||*pf*11%256<=32)”來實(shí)現(xiàn),如果該字符不滿足上述條件,就用一個(gè)新的字符來替代,新的字符是當(dāng)前字符乘以11的結(jié)果再去與256求余數(shù),處理完畢后,指針去取下一個(gè)字符。如果該字符滿足所給條件,將不做任何操作,指針直接下移,去取下一個(gè)字符,對下一個(gè)字符進(jìn)行處理。國家三級(網(wǎng)絡(luò)技術(shù))機(jī)試模擬試卷第8套一、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)1、已知數(shù)據(jù)文件IN44.DAT中存有300個(gè)4位數(shù),并已調(diào)用讀函數(shù)readDat()把這些數(shù)存入數(shù)組a中,請編制一函數(shù)isValue(),其功能是:求出千位數(shù)上的數(shù)減百位數(shù)上數(shù)減十位數(shù)上的數(shù)減個(gè)位數(shù)上的數(shù)大于零的數(shù)的個(gè)數(shù)cnt,再把所有滿足此條件的4位數(shù)依次存入數(shù)組b中,然后對數(shù)組b的4位數(shù)按從小到大的順序進(jìn)行排序,最后調(diào)用寫函數(shù)writeDat()把數(shù)組b中的數(shù)輸出到OUT44.DAT文件中。例如:9123,9-1-2-3>0,則該數(shù)滿足條件,存入數(shù)組b中,且個(gè)數(shù)cnt=cnt+1。9812,9-8-1-2<0,則該數(shù)不滿足條件,忽略。注意:部分源程序已給出。程序中已定義數(shù)組:a[300],b[300],己定義變量:cnt。請勿改動(dòng)主函數(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(){FIL

溫馨提示

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

評論

0/150

提交評論