為了幫助同學們更好複習計算機三級的考試,小編特地為大家整理了計算機三級網路技術的模擬試題,希望能幫助大家!
題目1:已知在檔案中存有100個產品銷售記錄,每個產品銷售記錄由產品程式碼dm(字元型4位),產品名稱mc(字元型10位),單價dj(整型),數量sl(整型),金額je(長整型)四部分組成。其中:金額=單價*數量計算得出。函式ReadDat()是讀取這100個銷售記錄並存入結構陣列sell中。請編制函式SortDat(),其功能要求:按產品程式碼從大到小進行排列,若產品程式碼相同,則按金額從大到小進行排列,最終排列結果仍存入結構陣列sell中,最後呼叫函式WriteDat()把結果輸出到檔案中。
void SortDat()
{int I,j;
PRO xy;
for(I=0;I<99;I++)
for(j=I+1;j<100;j++)
if(sell[I]
{xy=sell[I]; sell [I]=sell[j]; sell[j]=xy;}
else if(sell[I]==sell[j])
if(strcmp(sell[I],sell[j])<0)
{xy=sell[I];sell[I]=sell[j];sell[j]=xy;}
}
題目2:已知在檔案中存有100個產品銷售記錄,每個產品銷售記錄由產品程式碼dm(字元型4位),產品名稱mc(字元型10位),單價dj(整型),數量sl(整型),金額je(長整型)四部分組成。其中:金額=單價*數量計算得出。函式ReadDat()是讀取這100個銷售記錄並存入結構陣列sell中。請編制函式SortDat(),其功能要求:按產品名稱從大到小進行排列, 若產品名稱相同, 則按金額從小到大進行排列. 最終排列結果仍存入結構陣列sell中,最後呼叫函式WriteDat()把結果輸出到檔案中。
void SortDat()
{int I,j;
PRO xy;
for(I=0;I
for(j=I+1;j
if(strcmp(sell[I],sell[j])<0)
{xy=sell[I]; sell [I]=sell[j]; sell[j]=xy;}
else if(strcmp(sell[I],sell[j])==0)
if(sell[I]>sell[j])
{xy=sell[I];sell[I]=sell[j]; sell[j]=xy;}
}
題目3:請編制函式ReadDat()實現從檔案中讀取1000個十進位制整數到陣列xx中;請編制函式Compute()分別計算出xx中奇數的個數odd,奇數的平均值ave1,偶數的平均值ave2以及所有奇數的方差totfc的值,最後呼叫函式WriteDat()把結果輸出到檔案中。計算方差的公式如下:totfc=1/N∑(xx[i]-ave1)2
int ReadDat(void)
{FILE *fp;
int I,j;
if((fp=fopen("""",""r""))==NULL) return 1;
for(I=0;I<100;I++)
{for(j=0;j<10;j++)
fscanf(fp, ""%d,"", &xx[I*10+j]);
fscanf(fp, ""'n"");
if(feof(fp)) break;}
fclose(fp);
return 0;}
void Compute(void)
{int I, yy[MAX];
for(I=0;I<1000;I++)
if(xx[I]%2){odd++;ave1+=xx[I]; }
else{even++;ave2+=xx[I]; yy[even-1]=xx[I];}
ave1/=odd;
ave2/=even;
for(I=0;I
totfc+=(yy[I]-ave2)*(yy[I]-ave2)/even;
}
}
題目4:下列程式的功能是:選取出100以上1000以內所有個位數字與十位數字之和被10除所得餘數恰是百位數字的素數(如293)。計算並輸出上述這些素數的個數CNT以及這些素數值的和SUM。請編寫函式COUNTvalue()實現程式要求,最後呼叫函式WRITEDAT()把結果CNT和SUM輸出到檔案中.
void countValue()
{int I,j,half,hun,ten,data;
for(I=101;I<1000;I++)
{hun=I/100;
ten=I%100/10;
data=I%10;
if(hun==(ten+data)%10)
{half=I/2;
for(j=2;j
if(I%j==0) break;
if(j>=half)
{cnt++;sum+=I;} } }
}
題目5:某級數的前兩項A1=1,A2=1,以後各項具有如下關係:An=An-2+2An-1.
下列程式的功能是:要求依次對於整數M=100,1000和10000求出對應的n值,使其滿足:Sn=M,這裡Sn=A1+A2+...+An,
並依次把n值存入陣列單元b[0],b[1]和b[2]中,請編制jsvalue()函式來實現此功能, 最後呼叫函式writeDat()把陣列b[]中的值輸出到檔案中。
void jsvalue()
{int a1=1,a2=1,n=1,an;
int sum0,sum;
sum0=a1+a2;
while(1)
{an=a1+a2*2;
sum=sum0+an;
a1=a2; a2=an; n++;
if (sum0<100&&sum>100) b[0]=n;
if (sum0<1000&&sum>1000) b[1]=n;
if (sum0<10000&&sum>10000) {b[2]=n; break;}
sum0=sum;
}
}
jsvalue()
{int a1=1,a2=1,a12,sn,k=2;
sn=a1+a2;
while(1)
{a12=a1+2*a2;
if(sn<100&&sn+a12>=100) b[0]=k;
if(sn<1000&&sn+a12>=1000) b[1]=k;
if(sn<10000&&sn+a12>=10000) {b[2]=k;break;}
sn=sn+a12;
a1=a2;a2=a12;
k++;
}
}
題目6:函式ReadDat()實現從檔案中讀取一篇英文文章,存入到字串陣列xx中;請編制函式encryptChar(),按給定的替代關係對陣列xx中的所有字元進行替代,仍存入陣列xx的對應的位置上,最後呼叫函式WriteDat()把結果xx輸出到檔案中。
替代關係:f(p)=p*11 mod 256 (p是陣列中某一個字元的ASCII值,f(p)是計算後新字元的ASCII值),如果計算後f(p)值小於等於32或f(p)對應的字元是數字0至9,則該字元不變,否則將f(p)所對應的字元進行替代。
void encryptChar()
{int I;
char *pf;
for(I=0;I
{pf=xx[I];
while(*pf!=0)
{if((*pf*11%256>='0'&&*pf*11%256<='9')||*pf*11%256<=32)
{pf++;continue;}
*pf=*pf*11%256;
pf++;} }
}
題目7:函式ReadDat()實現從檔案中讀取一篇英文文章,存入到字串陣列xx中;請編制函式encryptChar(),按給定的替代關係對陣列xx中的所有字元進行替代,仍存入陣列xx的對應的位置上,最後呼叫函式WriteDat()把結果xx輸出到檔案中。
替代關係:f(p)=p*11mod 256 (p是陣列中某一個字元的ASCII值,f(p)是計算後新字元的I值),如果原字元是大寫字母或計算後f(p)值小於等於32,則該字元不變,否則將f(p)所對應的字元進行替代。
void encryptChar()
{int I;
char *pf;
for(I=0;I
{pf=xx[I];
while(*pf!=0)
{ if ((*pf>='A'&&*pf<='Z')||*pf*11%256<=32)
{pf++;continue;}
*pf=*pf*11%256;
pf++;} }
}
題目8:已知在檔案中存有100個產品銷售記錄,每個產品銷售記錄由產品程式碼dm(字元型4位),產品名稱mc(字元型10位),單價dj(整型),數量sl(整型),金額je(長整型)四部分組成。其中:金額=單價*數量計算得出。函式ReadDat()是讀取這100個銷售記錄並存入結構陣列sell中。請編制函式SortDat(),其功能要求:按產品程式碼從小到大進行排列, 若產品程式碼相同, 則按金額從小到大進行排列. 最終排列結果仍存入結構陣列sell中,最後呼叫函式WriteDat()把結果輸出到檔案中。
注意: 部分源程式存放在PROG1.C中。
請勿改動主函式main( )、讀資料函式ReadDat()和輸出資料函式WriteDat()的內容。
----------------------------------
void SortDat()
{int I,j;
PRO xy;
for(I=0;I
for(j=I+1;j
if(strcmp(sell[I],sell[j])>0)
{xy=sell[I]; sell[I]=sell[j]; sell[j]=xy;}
else if(strcmp(sell[I],sell[j])==0)
if(sell[I]>sell[j])
{xy=sell[I]; sell[I]=sell[j]; sell[j]=xy;}
}
{FILE *fp;
int i;
fp=fopen("","w");
for(i=0;i<100;i++){
fprintf(fp,"%s %s %4d %5d %101dn", sell[i],sell[i],sell[i],sell[i],sell[i]);}
fclose(fp);}
題目9:對10個候選人進行選舉,現有一個100條記錄的選票資料檔案,其資料存放的格式是每條記錄的長度均為10位,第一位表示第一個人的選中情況,第二位表示第二個人的選中情況,依此類推 :內容均為字元0和1,1表示此人被選中,0表示此人未被選中,全選或不選均為無效的選票.。給定函式ReadDat()的功能是把選票資料讀入到字串陣列xx中。請編制函式CountRs()來統計每個人的選票數並把得票數依次存入yy[0]到yy[9]中。把結果yy輸出到檔案中。
void CountRs(void)
{int I,j=0,k=0;
char *str;
for(I=0;I<10;I++)
yy[I]=0;
for(I=0;I<100;I++)
{str=xx[I];j=0;
while(*str)
if(*str=='1'){j++;str++;}
else str++;
if(j!=0&&j!=10)
{str=xx[I];k=0;
while(*str)
if(*str++=='1') yy[k++]+=1;
else k++;}
}
}
題目10:已知在檔案中存有若干個(個數<200)四位數字的正整數,函式readdat()讀取這若干個正整數並存入陣列xx中。請編制函式calvalue(),其功能要求:1、求出這檔案C.P有多少個正整數totnum;2、求出這些數中的各位數字之和是偶數的數的個數totcnt,以及滿足此條件的這些數的算術平均值totpjz,最後呼叫函式writedat()把所求的結果輸出到檔案中。
void CalValue(void)
{int I,thou,hun,ten,data;
int ab,sum=0;
for(I=0;I
{if(xx[I]>0) totNum++;
{thou=xx[I]/1000;
hun=xx[I]%1000/100;
ten=xx[I]%100/10;
data=xx[I]%10;
ab=thou+hun+ten+data;
if (ab%2==0)
{totCnt++;sum=sum+xx[I];}
}}
totPjz=sum/totCnt;
}