全國計算機等級考試時間是3月26-29日,以下小編為大家整理出來的是計算機三級考試試題,希望對大家的複習有幫助!
題目1:下列程式的功能是:利用發下所示的簡單迭代方法求方程:cos(x)-x=0的一個實根。xn+1=cos(xn)
float countValue()
{float x0,x1=0.0;
while(1)
{x0=x1;
x1=cos(x0);
if(fabs(x0-x1)<1e-6) break;
}
return x1;
}
題目2:請編寫函式countvalue(),它的功能是:求n以內(不包括n)同時能被3和7整數的所有自然數之和的平方根s,並作為函式值返回,最後結果s輸出到檔案中。
double countValue(int n)
{double xy=0.0;
int I;
for(I=1;I
if(I%3==0&&I%7==0) xy+=I;
xy=sqrt((double)xy);
return xy;
}
double countvalue(int n)
{ int i,j=0;
double k;
for(i=0;i
if(i%3==0&&i%7==0)
j+=i;
k=sqrt(j);
return k; }
題目3:已知在檔案中存有N個(個數<200)四位數字的正整數,函式readdat()讀取這N個正整數並存入陣列xx中。請編制函式calvalue(),其功能要求:1、求出這N個實數的平均值aver;2、分別求出這N個實數的整數部分之和sumint以及小數部分之和sumdec,最後呼叫函式writedat()把所求的結果輸出到檔案中。
void CalValue(void)
{int I;
double x,sum=0;
for (I=0;I
{sumint=sumint+(int)xx[I];
x=xx[I]-(int)xx[I];
sumdec=sumdec+x;
sum=sum+xx[I];
}
aver=sum/MAXNUM;
}
題目4:在三位整數(100至999)中尋找符合條件的整數並依次從小到大存入陣列中;它既是完全平方數,又是兩位數字相同,例如144、676等。請編制函式實現此功能,滿足該條件的整數的個數通過所編制的函式返回。最後呼叫函式writeDat()把結果輸出到檔案中。
jsValue(int a[10][9])
{int I,j,k=0;
int hun,ten,data;
for(I=100;I<=999;I++)
{j=10;
while(j*j<=I)
{if (I==j*j)
{hun=I/100;data=I-hun*100;
ten=data/10;data=data-ten*10;
if(hun==ten||hun==data||ten==data)
{bb[k]=I;k++;}
}
j++;} }
return k;
}
題目5:下列程式的功能是:尋找並輸出11至999之間的數m,它滿足m,m2和m3均為迴文數。所謂迴文數是指其各位數字左右對稱的整數,例如121,676,94249等。滿足上述條件的數如m=11,m2=121,m3=1331皆為迴文數。請編制函式int svalue(long m)實現此功能,如果是迴文數,則函式返回1,反之則返回0。最後把結果輸出到檔案中。
int jsValue(long n)
{int I,strl,half;
char xy[20];
ltoa(n,xy,10);
strl=strlen(xy);
half=strl/2;
for(I=0;I
if(xy[I]!=xy[--strl]) break;
if(I>=half) return 1;
else return 0;
}
題目6:已知在檔案中存有若干個(個數<200)四位數字的正整數,函式readdat()讀取這若干個正整數並存入陣列xx中。請編制函式calvalue(),其功能要求:1、求出這檔案C.P有多少個正整數totnum;2、求這些數右移1位後,產生的新數是偶數的數的個數totcnt,以及滿足此條件的這些數(右移前的值)的算術平均值totpjz,最後呼叫函式writedat()把所求的.結果輸出到檔案中。
void CalValue(void)
{int I,data;
for(I=0;I
{if(!xx[I]) break;
if(xx[I]>0) totNum++;
data=xx[I]>>1;
if (data%2==0){totCnt++;totPjz+=xx[I];}
}
totPjz/=totCnt;
}
題目7:已知資料檔案中存有300個四位數,並已呼叫讀函式ReadDat()把這些數存入陣列a中,請編制一函式jsvalue(),其功能是:求出千位數上的數減百位數減十位數上的數減個位數上的數大於零的個數cnt,再求出所有滿足此條件的四位數平均值pjz1,以及不滿足此條件的四位數平均值pjz2,最後呼叫寫函式writeDat()把結果輸出到檔案。 例如:9123,9-1-2-3>0,則該數滿足條件計算平均值pjz1,且個數cnt=cnt+1。
9812,9-8-1-2<0,則該數不滿足條件計算平均值pjz2.
void jsValue()
{int I,thou,hun,ten,data,j;
for(I=0;I<300;I++)
{thou=a[I]/1000; hun=a[I]%1000/100;
ten=a[I]%100/10; data=a[I]%10;
if (thou-hun-ten-data>0){b[cnt]=a[I];cnt++;}
}
for(I=0;I
for(j=I+1;j
if(b[I]>b[j])
{data=b[I]; b[I]=b[j]; b[j]=data;}
}
題目8:已知資料檔案中存有200個四位數, 並已呼叫讀函式readDat()把這些數存入陣列a中,請考生編制一函式jsVal(),其功能是: 把千位數字和十位數字重新組成一個新的十位數ab(新十位數的十位數字是原四位數的千位數字,新十位數的個位數字是原四位數的十位數字), 以及把個位數字和百位數字組成另一個新的十位數cd (新十位數的十位數字是原四位數的個位數字,新十位數的個位數字是原四位數的百位數字), 如果新組成的兩個十位數ab-cd>=0且ab-cd<=10且兩個數均是奇數, 同時兩個新數的十位數字均不為零,則將滿足此條件的四位數按從大到小的順序存入陣列b中, 並要計算滿足上述條件的四位數的個數cnt。最後main()函式呼叫寫函式writeDat( )把結果cnt以及陣列b中符合條件的四位數輸出到檔案中。
void jsVal()
{int I,thou,hun,ten,data,j;
int ab,cd;
for(I=0;I<200;I++)
{thou=a[I]/1000; hun=a[I]%1000/100;
ten=a[I]%100/10; data=a[I]%10;
ab=10*thou+ten; cd=10*data+hun;
if ((ab-cd)>=0&&(ab-cd)<=10&&ab%2==1&&cd%2==1&&ab!=0&&cd!=0)
{b[cnt]=a[I];cnt++;}
}
for(I=0;I
for(j=I+1;j
if(b[I]
{data=b[I]; b[I]=b[j];b[j]=data;}
}
題目9:已知資料檔案中存有200個四位數, 並已呼叫讀函式readDat()把這些數存入陣列a中,請考生編制一函式jsVal(),其功能是: 把千位數字和十位數字重新組成一個新的十位數ab(新十位數的十位數字是原四位數的千位數字,新十位數的個位數字是原四位數的十位數字), 以及把個位數字和百位數字組成另一個新的十位數cd (新十位數的十位數字是原四位數的個位數字,新十位數的個位數字是原四位數的百位數字), 如果新組成的兩個十位數ab-cd>=10且ab-cd<=20且兩個數均是偶數,同時兩個新數的十位數字均不為零,則將滿足此條件的四位數按從大到小的順序存入陣列b中, 並要計算滿足上述條件的四位數的個數cnt。最後main()函式呼叫寫函式writeDat( )把結果cnt以及陣列b中符合條件的四位數輸出到檔案中。
void jsVal()
{int I,thou,hun,ten,data,j;
int ab,cd;
for(I=0;I<200;I++)
{thou=a[I]/1000; hun=a[I]%1000/100;
ten=a[I]%100/10; data=a[I]%10;
ab=10*thou+ten; cd=10*data+hun;
if ((ab-cd)>=0&&(ab-cd)<=10&&ab%2==1&&cd%2==1&&ab!=0&&cd!=0)
{b[cnt]=a[I];cnt++;}
}
for(I=0;I
for(j=I+1;j
if(b[I]
{data=b[I]; b[I]=b[j];b[j]=data;}
}
題目10:已知資料檔案中存有200個四位數, 並已呼叫讀函式readDat()把這些數存入陣列a中,請考生編制一函式jsVal(),其功能是: 依次從陣列a中取出一個四位數,如果該數連續小於該四位數以後的5個數且該數是偶數, 則統計出滿足此條件的個數cnt, 並把這些四位數按從小到大的順序存入陣列b中。 並要計算滿足上述條件的四位數的個數cnt。最後main()函式呼叫寫函式writeDat( )把結果cnt以及陣列b中符合條件的四位數輸出到檔案中。
void jsVal()
{int I,j,flag=0;
for(I=0;I
{for(j=I+1;j<=I+5;j++)
{if(a[I]
flag=1;
else flag=0;
if(a[I]%2!=0)
flag=0;
if (flag==0)
break;}
if(flag==1) {b[cnt]=a[I];cnt++;}
}
for(I=0;I
for(j=I+1;j
if(b[I]>b[j])
{flag=b[I];b[I]=b[j];b[j]=flag;}
}