2016年二級C語言上機試題及答案

來源:文萃谷 1.5W

  第一題:給定程序中,函數fun的功能是:計算N*N矩陣的主對角元素和反向對角元素之和,並作為函數值返回。注意:要求先累加主對角線元素中的值,然後累加反向對角線元素中的值。

2016年二級C語言上機試題及答案

例如,若N=3,有下列矩陣:

1 2 3

4 5 6

7 8 9

fun函數首先累加1、5、9,然後累加3、5、7,函數的返回值為30。

請勿改動主函數main和其他函數中的任何內容,僅在fun函數的`橫線上填入所編寫的若干表達式或語句。

#include

#define N 4

fun(int t[][N], int n)

{

int i, sum;

___1___;

for (i=0; i sum += ___2___;

for (i=0; i sum += t[i][n-i-___3___];

return sum;

}

main()

{

int i, j, t[][N] =

{21, 2, 13, 24, 25, 16, 47, 38, 29, 11, 32, 54, 42, 21, 3, 10};

printf("nThe original data:n");

for (i=0; i {

for (j=0; j printf("M", t[i][j]);

printf("n");

}

printf("The result is: %d", fun(t, N));

}

  答案:

第1處填空:sum=0;

第2處填空:t[i][i]

第3處填空:1

  第二題:下列給定程序中,函數fun的功能是:根據整型參n,計算如下公式的值。

例如,若n=10,則應輸出0.617978。

請改正程序中的錯誤,使它能得出正確的結果。

注意:不要改動main函數,不得增行或刪行,也不要更改程序的結構!

#include

#include

/********found********/

fun(int n)

{

double A = 1;

int i;

/********found********/

for(i=2;i A = 1.0/(1+A);

return A;

}

main()

{

int n;

printf("nPlease enter n: ");

scanf("%d", &n);

printf("A%d=%lfn", n, fun(n));

}

  答案:

第1處:fun(int n) 應改為 double fun(int n)

第2處:for(i=2;i

  第三題:請編寫函數fun,其功能是:將兩個兩位數的正整數a、b合併形成一個整數在c中。合併的方式是:將a數的十位和個位依次放在c數的百位和個位上,b數的十位和個位數依次放c數的千位和十位上。

例如,當a=45,b=12,調用該函數後,c=1425。

請勿改動主函數main和其他函數中的任何內容,僅在函數fun的花括號中填入所編寫的若干語句。

#include

#include

void fun (int a, int b, long *c)

{

}

main ()

{

int a, b;

long c;

FILE *out;

printf ("Input a, b:");

scanf ("%d%d", &a, &b);

fun ( a, b, &c );

printf ("The result is: %ldn", c);

out=fopen ("", "w");

for (a = 0; a < 10; a++)

{

fun(a+28, a+82, &c);

fprintf(out, "%ldn", c);

}

fclose (out );

}

  答案:

void fun( int a, int b, long *c)

{

*c=(b/10)*1000+(a/10)*100+(b)*10+a;

}

熱門標籤