糯米文學吧

位置:首頁 > 計算機 > 計算機三級

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

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

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;}