荟萃馆

位置:首页 > 计算机 > C语言

全国计算机等级考试二级C语言上机精选训练

C语言6.19K

以下是应届毕业生小编提供的全国计算机等级考试二级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);

}/*标准答案与此法结果相比,每行后面多一个空格。*/

}