全國計算機等級考試二級C語言上機精選訓練
以下是應屆畢業生小編提供的全國計算機等級考試二級C語言上機精選訓練,更多計算機二級考試資訊請關注應屆畢業生考試網。
個十百千位加減並大小排序問題:
求出個位數上的數減千位數上的數減百位數上的數減十位數上的數大於零的個數cnt,再把所有滿足此條件的四位數依次存入陣列b中,然後對陣列b的四位數按從大到小的順序進行排序。
{
int i,j,k,t;
for(i=0;i<300;i++)
if(a[i]%10-a[i]/1000-a[i]/100%10-a[i]/10%10>0)
b[cnt++]=a[i];
for(i=0;i
{k=i;
for(j=i+1;j
if(b[k]
if(k!=i){t=b[k];b[k]=b[i];b[i]=t;}
}
}
個十百千重新排列,符合條件的數大小排序問題:
把千位數字和十位數字重新組成一個新的十位數ab(新十位數的.十位數字是原四位數的千位數字,新十位數的個位數字是原四位數的十位數字),以及把個位數字和百位數字組成另一個新的十位數cd(新十位數的十位數字是原四位數的個位數字,新十位數的個位數字是原四位數的百位數字),如果新組成的兩個十位數ab>cd,ab必須是偶數且能被5整除,cd必須是奇數,同時兩個新數的十位數字均不為零,則將滿足此條件的四位數按從大到小的順序存入陣列b中,並要計算滿足上述條件的四位數的個數cnt。
void jsVal()
{
int i,j,k,A,B,C,D;
for(i=0;i
{A=a[i]/1000;B=a[i]/10%10;C=a[i]%10;D=a[i]/100%10;
if(A!=0&&C!=0&&(B==0)&&(D%2!=0)&&(10*A>10*C+D))
b[cnt++]=a[i];
}
for(i=0;i
{k=i;
for(j=i+1;j
if(b[k]
if(k!=i){A=b[k];b[k]=b[i];b[i]=A;}
}
}
求符合條件的數的總和和平均值問題:
求出千位數上的數減百位數上的數減十位數上的數減個位數上的數大於零的個數cnt,再求出所有滿足此條件的四位數平均值pjz1,以及所有不滿足此條件的四位數平均值pjz2。
{
int i;
for(i=0;i<300;i++)
if(a[i]/1000-a[i]/100%10-a[i]/10%10-a[i]%10>0)
{cnt++;pjz1+=a[i];}
else pjz2+=a[i];
if(cnt)pjz1/=cnt;
if(cnt<300)pjz2/=300-cnt;
}
求共有幾個數以及各位數相加為基數的個數並求平均值問題:
1.求出這檔案中共有多少個正整數totNum;求出這些數中的各位數字之和是奇數的數的個數totCnt,以及滿足此條件的這些數的算術平均值totPjz。
void Calvalue(void)
{
while(xx[totNum]!=0)
{
if((xx[totNum]/1000+xx[totNum]/100%10+xx[totNum]/10%10+xx[totNum]
%10)%2)
{totCnt++;totPjz+=xx[totNum];}
totNum++;
}報數出圈
void Josegh(void)
{
int i,j,s1,w;
s1=s;
for(i=1;i<=n;i++)
p[i-1]=i;
for(i=n;i>=2;i--)
{s1=(s1+m-1)%i;
if(s1==0)
s1=i;
w=p[s1-1];
for(j=s1;j
p[j-1]=p[j];
p[i-1]=w;
}以行為單位對行中以空格或標點符號為分隔的所有單詞進行倒排,同時去除標點符號,之後把已處理的字串(應不含標點符號)仍按行重新存入字串陣列xx中。
void StrOL(void)
{
int i,j,k,m,n,ll;
char yy[80];
for(i=0;i
{ll=strlen(xx[i]);k=n=0;
for(j=ll-1;j>=0;j--)
{if(isalpha(xx[i][j]))k++;
else
{for(m=1;m<=k;m++)
yy[n++]=xx[i][j+m];
k=0;
}
if(xx[i][j]==‘‘)yy[n++]=‘‘;
}
for(m=1;m<=k;m++)
yy[n++]=xx[i][j+m];
/*上面兩行處理每行的第一個單詞。如果漏寫,結果顯然不正確,但並不影響得分。*/
yy[n]=0;
strcpy(xx[i],yy);
}/*標準答案與此法結果相比,每行後面多一個空格。*/
}