當前位置:才華齋>計算機>計算機三級>

2016年計算機三級考試題及答案

計算機三級 閱讀(2.34W)

本站小編為大家整理了如下的計算機三級程式題,希望能幫助到大家的複習,祝大家考試順利!

2016年計算機三級考試題及答案

01. 編寫函式jsValue,它的功能是:求Fibonacci數列中大於t的最小的一個數,結果由函式返回。其中Fibonacci數列F(n)的定義為: F(0)=0,F(1)=1 F(n)=F(n-1)+F(n-2) 最後呼叫函式writeDat()讀取50個數據t,分別得出結果且把結果輸出到檔案中。

例如:當t=1000時,函式值為:1597。

部分源程式存在檔案prog1.c中。

請勿改動資料檔案中的任何資料,主函式main()和寫函式writeDat()的內容。

int f1,f2,f3;

f1=1; f2=1; f3=2;

while(f3<=1000)

{ f1=f2; f2=f3; f3=f1+f2;}

return f3;

02. 函式ReadDat()實現從檔案中讀取一篇英文文章,存入到字串陣列xx中;請編制函式encryptChar(),按給定的替代關係對陣列xx中的所有字元進行替代,仍存入陣列xx的對應的位置上,然後呼叫函式WriteDat()把結果xx輸出到檔案中。

替代關係:f(p)=p*11 mod 256 p是陣列中某一個字元的ASCII值,f(p)是計算後無符號整型值(注意中間變數定義成整型變數) ,如果計算後f(p)值小於等於32或f(p)對應的字元是大寫字母,則該字元不變,否則將f(p)所對應的字元進行替代。

注意:部分源程式存在檔案prog1.c中。原始資料檔案存放的格式是:每行的寬度均小於80個字元,含標點符號和空格,並也按此替代關係進行處理。

請勿改動主函式main()、讀資料函式ReadDat()和輸出函式WriteDat()的內容。

int i,k,f;

for(i=0;i

for(k=0;k

{f=(xx[i][k]*11)%256;

if(f<=32||f>='A'&&f<='Z') ;

else xx[i][k]=f;

}

03. 已知資料檔案中存有200個四位數,並已呼叫讀函式readDat()把這些數存入陣列a中,請考生編制一函式jsVal(),其功能是:依次從陣列a中取出一個四位數,如果該四位數連續小於該四位數以後的五個數且該數是偶數(該四位數以後不滿五個數,則不統計),則統計出滿足此條件的個數cnt並把這些四位數按從小到大的順序存入陣列b中,最後呼叫寫函式writeDat( )把結果cnt以及陣列b中符合條件的四位數輸出到檔案中。

注意:部分源程式存在檔案prog1.c中。

程式中已定義陣列:a[200],b[200],已定義變數:cnt

請勿改動資料檔案中的任何資料、主函式main()、讀函式readDat()和寫函式writeDat()的內容。

int i,j,t;

for(i=0;i<195;i++) if(a[i]

b[cnt++]=a[i];

for(i=0;i

for(j=0;j

if(b[j]>b[j+1])

{t=b[j];b[j]=b[j+1];b[j+1]=t;}

04. 已知在檔案中存有100個產品銷售記錄,每個產品銷售記錄由產品程式碼dm(字元型4位),產品名稱mc(字元型10位),單價dj(整型),數量sl(整型),金額je(長整型)五部分組成。其中:金額=單價*數量計算得出。函式ReadDat()是讀取這100個銷售記錄並存入結構陣列sell中。請編制函式SortDat(),其功能要求:按產品名稱從小到大進行排列,若產品名稱相等,則按金額從小到大進行排列,最終排列結果仍存入結構陣列sell中,最後呼叫函式WriteDat()把結果輸出到檔案中。

提示:若中間變數為 PRO temp ,則可以直接使用結構賦值語句進行解題。例如: seli[i]=temp

注意: 部分源程式存在檔案prog1.c中。

請勿改動主函式main()、讀資料函式ReadDat()和輸出資料函式WriteDat()的內容。

int i,j;

PRO cell;

for (i=0;i<99;i++)

for (j=0;j<99;j++)

if (strcmp(sell[j],sell[j+1])>0||strcmp(sell[j],sell[j+1])==0&&sell[j]>sell[j+1])

{cell=sell[j]; sell[j]=sell[j+1]; sell[j+1]=cell;}

05. 已知資料檔案中存有200個四位數,並已呼叫讀函式readDat()把這些數存入陣列a中,請考生編制一函式jsVal(),其功能是:把一個四位數的個位數字上的值減去千位數字上的值再減去百位數字上的值最後減去十位數字上的值,如果得出的值大於等於零且原四位數是偶數,則統計出滿足此條件的個數cnt並把這些四位數按從小到大的順序存入陣列b中,最後呼叫寫函式writeDat( )把結果cnt以及陣列b中符合條件的四位數輸出到檔案中。

注意:部分源程式存在檔案prog1.c中。

程式中已定義陣列:a[200],b[200],已定義變數:cnt

請勿改動資料檔案中的任何資料、主函式main()、讀函式readDat()和寫函式writeDat()的內容。

int i,j,t;

for(i=0;i

if(a[i]%10-a[i]/1000-a[i]/100%10-a[i]/10%10>=0&&a[i]%2==0)

b[cnt++]=a[i];

for(i=0;i

for(j=0;j

if(b[j]>b[j+1])

{t=b[j];b[j]=b[j+1];b[j+1]=t;}

06. 函式ReadDat()實現從檔案中讀取一篇英文文章,存入到字串陣列xx中;請編制函式encryptChar(),按給定的替代關係對陣列xx中的所有字元進行替代,仍存入陣列xx的對應的位置上,最後呼叫函式WriteDat()把結果xx輸出到檔案中。

替代關係:f(p)=p*17 mod 256, mod為取餘運算,p是陣列xx中某一個字元的ASCII值,f(p)式計算後無符號的整型值(注意:中間變數定義成整型變數),如果計算後f(p)值小於等於32或f(p)值是奇數,則該字元不變,否則將f(p)所對應的字元進行替代。

部分源程式存在檔案prog1.c中。原始資料檔案存放的格式是:每行的寬度均小於80個字元。

請勿改動主函式main()、讀資料函式ReadDat()和輸出資料函式WriteDat()的內容。

int i,j,f;

for(i=0;i

for(j=0;j

{f=xx[i][j]*17%256;

if(f<=32||(f%2!=0))

;

else xx[i][j]=f;

}

07. 已知資料檔案中存有200個四位數,並已呼叫讀函式readDat()把這些數存入陣列a中,請考生編制一函式jsVal(),其功能是:如果四位數各位上的數字均是0或2或4或6或8,則統計出滿足此條件的`個數cnt,並把這些四位數按從大到小的順序存入陣列b中。最後main( )函式呼叫寫函式writeDat()把結果cnt以及陣列b中符合條件的四位數輸出到檔案中。

注意:部分源程式存在檔案prog1.c中。

程式中已定義陣列:a[200],b[200],已定義變數:cnt

請勿改動資料檔案中的任何資料、主函式main()、讀函式readDat()和寫函式writeDat()的內容。

int i,j,t;

for(i=0;i

if(a[i]/1000%2==0&&a[i]/100%10%2==0&&a[i]/10%2==0%10&&a[i]%10%2==0)

b[cnt++]=a[i];

for(i=0;i

for(j=0;j

if(b[j]

{t=b[j];b[j]=b[j+1];b[j+1]=t;}

08. 函式ReadDat()實現從檔案中讀取一篇英文文章存入到字串陣列xx中,請編制函式StrCharJR(),其函式的功能是:以行為單位把字串中所有字元的ASCII值右移4位,然後把右移後的字元ASCII值再加上原字元的ASCII值,得到新的字元仍存入原字串對應的位置上。最後把已處理的字串仍按行重新存入字串陣列xx中,最後呼叫函式writeDat()把結果xx輸出到檔案中。

原始資料檔案存放的格式是:每行的寬度均小於80個字元,含標點符號和空格。

部分源程式存在檔案prog1.c中。

請勿改動主函式main()、讀資料函式ReadDat()和輸出資料函式writeDat()的內容。

int i,j;

for(i=0;i

{for(j=0;j

xx[i][j]=xx[i][j]+(xx[i][j]>>4);

}

09. 已知資料檔案中存有200個四位數,並已呼叫讀函式readDat()把這些數存入陣列a中,請考生編制一函式jsVal(),其功能是:把千位數字和十位數字重新組成一個新的十位數ab(新十位數的十位數字是原四位數的千位數字,新十位數的個位數字是原四位數的十位數字),以及把個位數字和百位數字組成另一個新的十位數cd(新十位數的十位數字是原四位數的個位數字,新十位數的個位數字是原四位數的百位數字),如果新組成的兩個十位數ab

注意:部分源程式存在檔案prog1.c中。

程式中已定義陣列:a[200],b[200],已定義變數:cnt

請勿改動資料檔案中的任何資料、主函式main()、讀函式readDat()和寫函式writeDat()的內容。

int i,j,s1,s2;

for(i=0;i

s2=a[i]%10*10+a[i]/100%10;

if(s1=10&&s2>=10)

b[cnt++]=a[i];

}

for(i=0;i

for(j=0;j

if(b[j]

{t=b[j];b[j]=b[j+1];b[j+1]=t;}

10. 已知資料檔案中存有200個四位數,並已呼叫讀函式readDat()把這些數存入陣列a中,請考生編制一函式jsVal(),其功能是:把千位數字和個位數字重新組成一個新的十位數(新十位數的十位數字是原四位數的千位數字,新十位數的個位數字是原四位數的個位數字),以及把百位數字和十位數字組成另一個新的十位數(新十位數的十位數字是原四位數的百位數字,新十位數的個位數字是原四位數的十位數字),如果新組成的兩個十位數均是奇數並且兩個十位數中至少有一個數能被5整除,同時兩個新數的十位數字均不為零,則將滿足此條件的四位數按從大到小的順序存入陣列b中,並要計算滿足上述條件的四位數的個數cnt。最後main()函式呼叫寫函式writeDat( )把結果cnt以及陣列b中符合條件的四位數輸出到檔案中。

注意:部分源程式存在檔案prog1.c中。程式中已定義陣列:a[200],b[200],已定義變數:cnt

請勿改動資料檔案中的任何資料、主函式main()、讀函式readDat()和寫函式writeDat()的內容。

int i,j,s1,s2;

for(i=0;i

s2=a[i]/100%10*10+a[i]/10%10;

if((s1%5==0||s2%5==0)&&s1%2&&s2%2&&s1>=10&&s2>=10)

b[cnt++]=a[i];

}

for(i=0;i

for(j=0;j

if(b[j]

{t=b[j];b[j]=b[j+1];b[j+1]=t;}