第一篇:2012年最新全國計算機(jī)等級考試三級網(wǎng)絡(luò)技術(shù)上機(jī)試題100套(名師總結(jié))
全國計算機(jī)等級考試三級網(wǎng)絡(luò)技術(shù)上機(jī)試題
壹、ReadDat()實現(xiàn)從文件in.dat中讀取20行數(shù)據(jù)存放到字符串?dāng)?shù)組xx中(每行字符串長度均小于80)。請編制函數(shù)jsSort(),其函數(shù)的功能是:以行為單位對字符串按給定的條件進(jìn)行排序,排序后的結(jié)果仍按行重新存入字符串?dāng)?shù)組xx中,最后調(diào)用函數(shù)WriteDat()把結(jié)果xx輸出到文件out.dat中。條件:從字符串中間一分為二,左邊部分按字符的ASCII升序排列,排序后左邊部分與右邊部分進(jìn)行交換。如果原字符串長度為奇數(shù),則最中間的字符不參加處理,字符仍放在原位置上。例如: 位置 0 1 2 3 4 5 6 7 8 原字符串 d c b a h g f e
3 2 1 9 8 7 6 5 則處理后的字符串 h g f d a b c d 8 7 6 5 9 1 2 3 4 注意:部分源程序給出。
請勿改動主函數(shù)main()、讀數(shù)據(jù)函數(shù)ReadDat()和輸出數(shù)據(jù)函數(shù)WriteDat()的內(nèi)容。#include
str=strlen(xx[i]);
half=str/2;
for(j=0;j for(k=j+1;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=str-1;j>=0;j--,k--) {ch=xx[i][j];xx[i][j]=xx[i][k];xx[i][k]=ch;} } } void main(){ readDat();jsSort(); writeDat();} void readDat(){ FILE *in;int i=0;char *p;in=fopen(”in.dat”,”r”);while(i<20&&fgets(xx[i],80,in)!=NULL){ } fclose(in);p=strchr(xx[i],’n’);if(p)*p=0;i++;} void writeDat(){ FILE *out;int I;clrscr();out=fopen(“out.dat”,”w”);for(i=0;i<20;i++){ } fclose(out);} printf(“%sn”,xx[i]);fprintf(out,”%sn”,xx[i]);運(yùn)算 排序 出現(xiàn)次數(shù) ☆題目19(單詞個數(shù)統(tǒng)計題)編寫一個函數(shù)findStr(char *str,char *substr),該函數(shù)統(tǒng)計一個長度為2的子字符串在另一個字符串中出現(xiàn)的次數(shù)。例如,假定輸入的字符串為“asd asasdfg asd as zx67 asd mklo”,子字符串為“as”,函數(shù)返回值是6。 函數(shù)ReadWrite()實現(xiàn)從文件in.dat中讀取兩個字符串,并調(diào)用函數(shù)findStr(),最后把結(jié)果輸出到文件out.dat中。 int findStr(char *str,char *substr){ int i,j,len1,len2,cnt=0,flag;len1=strlen(str);len2=strlen(substr);for(i=0;i 在文件in.dat中有200組數(shù)據(jù),每組有3個數(shù),每個數(shù)均是三位數(shù)。其函數(shù)的功能是:要求在200組數(shù)據(jù)中找出條件為每組中的第二個數(shù)大于第一個數(shù)加第三個數(shù)的之和,其中滿足條件的組數(shù)作為函數(shù)jsSort()的返回值,同時把滿足條件的數(shù)據(jù)存入結(jié)構(gòu)數(shù)組bb中,再對bb中的數(shù)據(jù)按照每組數(shù)據(jù)的第二個數(shù)加第三個之和的大小進(jìn)行降序排列(第二個數(shù)加第三個數(shù)的和均不相等),排序后的結(jié)果仍重新存入結(jié)構(gòu)數(shù)組bb中,最后調(diào)用函數(shù)WriteDat()把結(jié)果bb輸出到文件out.dat中。int jsSort(){int i, j, cnt=0;data ch;for(i=0;i<200;i++)if(aa[i].x2>aa[i].x1+aa[i].x3)bb[cnt++]=aa[i];for(i=0;i ★題目79(數(shù)字運(yùn)算題)請編寫函數(shù)void countValue(int *a,int *n),它的功能是:求出1到1000之內(nèi)能被7或11整除但不能同時被7或11整除的所有整數(shù)放在數(shù)組a中,并通過n返回這些數(shù)的個數(shù)。void countValue(int *a,int *n){ int i;*n=0;for(i=1;i<=1000;i++)if(i%7==0&&i%11||i%7&&i%11==0)a[(*n)++]=i;} ★題目90(整數(shù)排序題) 下列程序的功能是:將一正整數(shù)序列{K1,K2,...,K9}重新排列成一個新的序列。新序列中,比K1小的數(shù)都在K1的前面(左面),比K1大的數(shù)都在K1的后面(右面)。要求編寫函數(shù)jsValue()實現(xiàn)此功能,最后調(diào)用writeDat()函數(shù)將新序列輸出到文件out.dat中。 說明:在程序中已給出了10個序列,每個序列有9個正整數(shù),并存入數(shù)組a[10][9]中,分別求出這10個新序列。 例:序列{6,8,9,1,2,5,4,7,3} 經(jīng)重排后成為{3,4,5,2,1,6,8,9,7} jsValue(int a[10][9]){ int i,j,k,val,num;for(i=0;i<10;i++){ val=a[i][0];for(j=0;j<9;j++)if(a[i][j] } { num=a[i][j];for(k=j;k>0;k--)a[i][k]=a[i][k-1];a[i][0]=num;} } ★題目94(整數(shù)統(tǒng)計運(yùn)算題)請編制程序prog1.c,從文件in.dat中讀取200個整數(shù)至數(shù)組xx中,求出奇數(shù)的個數(shù)cnt1和偶數(shù)的個數(shù)cnt2以及數(shù)組xx中值為偶數(shù)的算術(shù)平均值pj(保留2位小數(shù))。 結(jié)果cnt1,cnt2,pj輸出到out.dat中。cnt1=0;cnt2=0;pj=0.0;for(m=0;m ★題目3函數(shù)ReadDat()實現(xiàn)從文件IN.DAT中讀取一篇英文文章存入到字符串?dāng)?shù)組xx中;請編制函數(shù)StrOR(),其函數(shù)的功能是:以行為單位依次把字符串中所有小寫字母o左邊的字符串內(nèi)容移到該串的右邊存放,然后把小寫字母o刪除,余下的字符串內(nèi)容移到已處理字符串的左邊存放,之后把已處理的字符串仍按行重新存入字符串?dāng)?shù)組xx中。最后main()函數(shù)調(diào)用函數(shù)WriteDat()把結(jié)果xx輸出到文件OUT5.DAT中。 原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個字符,含標(biāo)點符號和空格。void StrOR(void){int i,righto,j,s,k;char tem[80];for(i=0;i 例如:原文:You He Me I am a student.結(jié)果:Me He You student a am I 原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個字符,含標(biāo)點符號和空格。void StrOL(void){ int i,j,k,s,m,strl;char str[80];for(i=0;i