填空题(C语言) 下载本文

填空题(C) 25

s[j+1]=___3___ ; i=i+1; } }

main()

{ char s[80]=\

printf(\

printf(\ fun(s,c);

printf(\} 答案:【1】0 【2】0 【3】c

70.给定程序中,函数fun的功能是;将N×N矩阵中元素的值按列右移1个位置,右边被移出矩阵的元素绕回左边。例如,N=3,有下列矩阵 1 2 3 4 5 6 7 8 9 计算结果为

3 1 2 6 4 5 9 7 8

#include #define N 4

void fun(int (*t)[N]) { int i, j, x;

/**********found**********/ for(i=0; i<___1___; i++) {

/**********found**********/ x=t[i][___2___] ; for(j=N-1; j>0; j--) t[i][j]=t[i][j-1]; /**********found**********/ t[i][___3___]=x; } }

main()

{ int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10}, i, j;

printf(\

for(i=0; i

{ for(j=0; j

fun(t);

printf(\ for(i=0; i

{ for(j=0; j

将矩阵的外围元素顺时针旋转。操作顺序是:首先将第一行元素的值存入临时数组r,然后使第一列成为第一行,最后一行成为第一列,最后一列成为最后一行,临时数组中的元素成为最后一列。 例如,若N=3,有下列矩阵: 1 2 3 4 5 6 7 8 9 计算结果为 7 4 1 8 5 2 9 6 3

#include #define N 4

void fun(int (*t)[N]) { int j ,r[N];

for(j=0; j

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

t[0][N-j-1]=t[j][___1___ ]; for(j=0; j=0;___2___ ) t[N-1][N-1-j]=t[j][N-1]; for(j=N-1; j>=0; j--) /**********found**********/ t[j][N-1]=r[___3___]; }

main()

{ int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10}, i, j; printf(\ for(i=0; i

{ for(j=0; j

fun(t);

printf(\ for(i=0; i

{ for(j=0; j

填空题(C) 26

} }

答案:【1】0 【2】j-- 【3】j

72.给定程序中,函数fun的功能是:有N×N矩阵,以主对角线为对称线,对称元素相加并将结果存放在左下三角元素中,右上三角元素置为0。例如,若N=3,有下列矩阵: 1 2 3 4 5 6 7 8 9 计算结果为 l O 0 6 5 0 10 14 9

#include #define N 4

/**********found**********/ void fun(int (*t)___1___ ) { int i, j;

for(i=1; i

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

___2___ =t[i][j]+t[j][i]; /**********found**********/ ___3___ =0; } } }

main()

{ int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10}, i, j; printf(\ for(i=0; i

{ for(j=0; j

fun(t);

printf(\ for(i=0; i

{ for(j=0; j

73.给定程序中,函数fun的功能是:将N×N矩阵主对角线元素中的值与反向对角线对应位置上元素中的值进行交换。例如,若N=3,有下列矩阵: 1 2 3

4 5 6 7 8 9 交换后为: 3 2 1 4 5 6 9 8 7

#include #define N 4

/**********found**********/ void fun(int ___1___ , int n) { int i,s;

/**********found**********/ for(___2___; i++) { s=t[i][i];

t[i][i]=t[i][n-i-1]; /**********found**********/ t[i][n-1-i]=___3___; } }

main()

{ int t[][N]={21,12,13,24,25,16,47,38,29,11,32,54,42,21,33,10}, i, j; printf(\ for(i=0; i

{ for(j=0; j

fun(t,N);

printf(\ for(i=0; i

{ for(j=0; j

74.给定程序中,函数fun的功能是:计算N×N矩阵的主对角线元素和反向对角线元素之和,并作为函数值返回。注意:要求先累加主对角线元素中的值,然后累加反向对角线元素中的值。例如,若N=3。有下列矩阵:

1 2 3 4 5 6 7 8 9

fun函数首先累加1、5、9,然后累加3、5、7,函数的返回值为30。

#include #define N 4

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

填空题(C) 27

{ int i, sum;

/**********found**********/ ___1___;

for(i=0; i

/**********found**********/ sum+=___2___ ; for(i=0; i

/**********found**********/ sum+= t[i][n-i-___3___] ; return sum; }

main()

{ int t[][N]={21,2,13,24,25,16,47,38,29,11,32,54,42,21,3,10},i,j; printf(\ for(i=0; i

{ for(j=0; j

printf(\} 答案:【1】sum=0 【2】t[i][i] 【3】1

75.函数fun的功能是;把形参a所指数组中的奇数按原顺序依次存放到a[O]、a[1]、a[2]、??中,把偶数从数组中删除,奇数个数通过函数值返回。例如:若a所指数组中的数据最初排列为:9、1、4、2、3、6、5、8、7,删除偶数后a所指数组中的数据为:9、1、3、5、7,返回值为5。 #include #define N 9

int fun(int a[], int n) { int i,j; j = 0;

for (i=0; i

/**********found**********/ if (a[i]%2==___1___) {

/**********found**********/ a[j] = a[i]; ___2___; }

/**********found**********/ return ___3___; }

main()

{ int b[N]={9,1,4,2,3,6,5,8,7}, i, n; printf(\

for (i=0; i

printf(\ printf(\

for (i=0; i

76.函数fun的功能是:把形参a所指数组中的偶数按原顺序依次存放到a[0]、a[1]、a[2]、??中,把奇数从数组中删除,偶数个数通过函数值返回。例如:若a所指数组中的数据最初排列为:9、l、4、2、3、6、5、8、7,删除奇数后a所指数组中的数据为:4、2、6、8,返回值为4。 #include #define N 9

int fun(int a[], int n) { int i,j; j = 0;

for (i=0; i

/**********found**********/ if (___1___== 0) { /**********found**********/ ___2___ = a[i]; j++; }

/**********found**********/ return ___3___; }

main()

{ int b[N]={9,1,4,2,3,6,5,8,7}, i, n; printf(\

for (i=0; i

printf(\ printf(\

for (i=0; i

77.函数fun的功能是:把形参a所指数组中的最小值放在元素a[0]中,接着把形参a所指数组中的最大值放在a[1]中,再把a所指数组中的次小值放在a[2]中,把a所指数组中的次大值放在a[3];其余依此类推。例如:若a所指数组中的数据最初排列为:9、l、4、2、3、6、5、8、7,则按规则移动后,数据排列为1、9、2、8、3、7、4、6、5,形参n中存放a所指数组中数据的个数。

填空题(C) 28

#include #define N 9

void fun(int a[], int n)

{ int i,j, max, min, px, pn, t; for (i=0; i

/**********found**********/ max = min = ___1___; px = pn = i;

for (j=i+1; j

{ max = a[j]; px = j; } /**********found**********/ if (min>___3___)

{ min = a[j]; pn = j; } }

if (pn != i)

{ t = a[i]; a[i] = min; a[pn] = t; if (px == i) px =pn; }

if (px != i+1)

{ t = a[i+1]; a[i+1] = max; a[px] = t; } } }

main()

{ int b[N]={9,1,4,2,3,6,5,8,7}, i; printf(\

for (i=0; i

printf(\ for (i=0; i

78.函数fun的功能是:把形参a所指数组中的最大值放在a[0]中,接着把形参a所指数组中的最小值放在a[1]中,再把a所指数组中的次大值放在a[2]中,把a所指数组中的次小值放在a[3];其余依此类推。例如:若a所指数组中的数据最初排列为:1、4、2、3、9、6、5、8、7,则按规则移动后,数据排列为9、1、8、2、7、3、6、4、5,形参n中存放a所指数组中数据的个数。

#include #define N 9

/**********found**********/ void fun(int ___1___, int n)

{ int i, j, max, min, px, pn, t; /**********found**********/

for (i=0; i

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

for (j=___3___; j

{ max = a[j]; px = j; } if (min > a[j])

{ min = a[j]; pn = j; } }

if (px != i)

{ t = a[i]; a[i] = max; a[px] = t; if (pn == i) pn= px; }

if (pn != i+1)

{ t = a[i+1]; a[i+1] = min; a[pn] = t; } } }

main()

{ int b[N]={1,4,2,3,9,6,5,8,7}, i; printf(\

for (i=0; i

printf(\ for (i=0; i

81.函数fun的功能是进行数字字符转换。若形参ch中是数字字符‘0’~‘9’,则‘0’转换成‘9’,‘1’转换成‘8’,‘2’转换成‘7’,??, ‘9’转换成‘0’;若是其它字符则保持不变;并将转换后的结果作为函数值返回。

#include

/**********found**********/ ___1___ fun(char ch) {

/**********found**********/ if (ch>='0' && ___2___) /**********found**********/

return '9'- (ch-___3___); return ch ; }