當前位置:學者齋 >

計算機 >C語言 >

2017年計算機二級C語言考前訓練題及答案

2017年計算機二級C語言考前訓練題及答案

計算機二級對於很多考生來說還是比較有難度的,那麼怎樣順利通過二級考試呢?這就需要大家平時多練習和找方法了。以下是本站小編整理的2017年計算機二級C語言考前訓練題及答案,希望對大家有幫助!

2017年計算機二級C語言考前訓練題及答案

  考前訓練題一

1: 第1題 m個人的成績存放在score陣列中,請編寫函式fun,它的功能是:將低於平均分的人作為函式值返回,將低於平均分的分數放在below所指定的函式中。

答案:

int fun(int score[],int m,int below[])

{

int i,k=0,aver=0;

for(i=0;i

aver+=score[i];

aver/=m;

for(i=0;i

if(score[i]

{

below[k]=score[i];

k++;

}

return k;

}

2: 第2題請編寫函式fun,它的功能是:求出1到100之內能北7或者11整除,但不能同時北7和11整除的所有證書,並將他們放在a所指的陣列中,**n返回這些數的個數。

答案:

void fun(int *a, int *n)

{

int i,j=0;

for(i=2;i<1000;i++)

if ((i%7==0 || i==0) && iw!=0)

a[j++]=i;

*n=j;

}

3: 第3題請編寫函式void fun(int x,int pp[],int *n),它的功能是:求出能整除x且不是偶數的各整數,並按從小到大的順序放在pp所指的陣列中,這些除數的個數**形參n返回。

答案:

void fun(int x, int pp[ ], int *n)

{

int i=1,j=0;k=0,*t=pp;

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

if(i%2!=0)

{

t[j]=I;

j++;

}

for(i=0;i

if(x%t[i]==0)

{

pp[k]=t[i];

k++;

}

*n=k;

}

4: 第4題請編寫一個函式void fun(char *tt,int pp[]),統計在tt字元中"a"到"z"26各字母各自出現的次數,並依次放在pp所指的陣列中。

答案:

void fun(char *tt, int pp[])

{

int i;

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

pp[i]=0;

while (*tt)

{

switch (*tt)

{

case ‘a’: pp[0]++;break;

case ‘b’: pp[1]++;break;

case ‘c’: pp[2]++;break;

case ‘d’: pp[3]++;break;

case ‘e’: pp[4]++;break;

case ‘f’: pp[5]++;break;

case ‘g’: pp[6]++;break;

case ‘h’: pp[7]++;break;

case ‘i’: pp[8]++;break;

case ‘j’: pp[9]++;break;

case ‘k’: pp[10]++;break;

case ‘l’: pp[11]++;break;

case ‘m’: pp[12]++;break;

case ‘n’: pp[12]++;break;

case ‘o’: pp[14]++;break;

case ‘p’: pp[15]++;break;

case ‘q’: pp[16]++;break;

case ‘r’: pp[17]++;break;

case ‘s’: pp[18]++;break;

case ‘t’: pp[19]++;break;

case ‘u’: pp[20]++;break;

case ‘v’: pp[21]++;break;

case ‘w’: pp[22]++;break;

case ‘x’: pp[23]++;break;

case ‘y’: pp[24]++;break;

case ‘z’: pp[25]++;break;

}

tt++;

}

}

5: 第5題請編寫一個函式void fun(int m,int k,int xx[]),該函式的功能是:將大於整數m且緊靠m的k各素數存入xx所指的.陣列中。

答案:

void fun(int m, int k, int xx[])

{

int g=0,I,j,flag=1;

for(i=m+1;i

{

for(j=0;j

{

if(i%j!=0)

flag=1;

else

{

flag=0;

break;

}

}

if (flag==1 && j>=i)

{

if (k>=0)

{

xx[g++]=i;

k--;

}

else

break;

}

}

}

6: 第6題請編寫一個函式void fun(char a[],char[],int n),其功能是:刪除以各字串中指定下標的字元。其中,a指向原字串,刪除後的字串存放在b所指的陣列中,n中存放指定的下標。

答案:

void fun(char a[],char b[], int n)

{

int I,j=0;

for (i=0;i

if (i!=n)

{

b[j]=a[i];

j++;

}

b[j]=‘