2016計算機二級C語言練習題及答案

來源:文萃谷 1.33W

計算機等級考試要取得好成績平時一定要多加練習,提高做題技巧和速度。下面是小編為大家整理的2016計算機二級C語言練習題及答案,希望對大家有幫助!

2016計算機二級C語言練習題及答案

  練習一

1: 下列程序定義了n×n的二維數組,並在主函數中自動賦值。請編寫函數 fun(int a[][n]),該函數的功能是:使數組左下半三角元素中的值全部置成0。

答案:

int fun(int a[][N])

{

int I,j;

for(i=0;i

for(j=0;j<=I;j++)

a[i][j]=0;

}

2: 下列程序定義了n×n的二維數組,並在主函數中賦值。請編寫函數fun,函數的功能使求出數組周邊元素的平均值並作為函數值返回給主函數中的s。

答案:

double fun(int w[][N])

{

int I,j,k=0;

double s=0.0;

for(j=0;j

{

s+=w[0][j];

k++;

}

for(j=0;j

{

s+=w[N-1][j];

k++;

}

for(i=1;i<=N-2;i++)

{

s+=w[i][0];

k++;

}

for(i=1;i<=N-2;i++)

{

s+=w[i][N-1];

k++;

}

return s/=k;

}

3: 請編寫一個函數void fun(int tt[m][n],int pp[n]),tt指向一個m行n列的二維函數組,求出二維函數組每列中最小元素,並依次放入pp所指定一維數組中。二維數組中的數已在主函數中賦予。

答案:

void fun(int tt[M][N], int pp[N])

{

int I,j,min;

for(j=0;j

{

min=tt[0][j];

for(i=0;i

{

if (tt[i][j]

min=tt[i][j];

}

pp[j]=min;

}

}

4: 請別寫函數fun,函數的功能使求出二維數組周邊元素之和,作為函數值返回。二維數組中的值在主函數中賦予。

答案:

int fun(int a[M][N])

{

int I,j,s=0;

for(j=0;j

{

s+=a[0][j];

s+=a[M-1][j];

}

for(i=1;i<=M-2;i++)

{

s+=a[i][0];

s+=a[i][N-1];

}

return s;

}

5: 請編寫一個函數unsigned fun(unsigned w),w使一個大於10的無符號整數,若w使n(n≥2)位的整數,則函數求出w後n-1位的數作為函數值返回。

答案:

unsigned fun(unsigned w)

{

unsigned t,s=0,s1=1,p=0;

t=w;

while(t>10)

{

if(t/10)

p=t;

s=s+p*s1;

s1=s1*10;

t=t/10;

}

return s;

}

6: 請編寫一個函數float fun(double h),函數的功能使對變量h中的值保留2位小樹,並對第三位進行四捨五入(規定h中的值位正數)。

答案:

float fun(float h)

{

long t;

float s;

h=h*1000;

t=(h+5)/10;

s=(float)t/100.0;

return s;

}

7: 請編寫一個函數fun(char *s),該函數的功能使把字符串中的內容擬置。

答案:

void fun(char *s)

{

char ch;

int I,m,n;

i=0;

m=n=strlen(s)-1;

while(i<(n+1)/2)

{

ch=s[i];

s[i]=s[m];

s[m]=ch;

i++;

m--;

}

8: 編寫程序,實現矩陣(3行3列)的轉置(即行列互換)。

答案:

void fun(int array[3][3])

{

int I,j,temp;

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

for(j=0;j

{

temp=array[i][j];

array[i][j]=array[j][i];

array[j][i]=temp;

}

}

9: 編寫函數fun,該函數的功能是:從字符中刪除指定的字符,同一字母的大、小寫按不同字符處理。

答案:

void fun(char s[],int c)

{

int i=0;

char *p;

p=s;

while(*p)

{

if(*p!=c)

{

s[i]=*p;

i++;

}

p++;

}

s[i]=‘