C语言上机练习参考答案

} printf ( \ Output

Please input array A (5 elements):17 34 -11 2 5? is input */

Please input array B (5 elements): 10 7 -9 0 25? input */

Array C is: -11 -9 0 2 5 7 10 17 25 34 7-12

/* Blue

/* Blue is

利用数组,求一个int型整数对应的二进制补码并输出(注意负数)。

Program #include <> main() { int n, m, b[16]={0}, i=15; printf(\ scanf(\ m = n>=0? n: -n; /*m等于什么?*/ /* 正数的补码 */ while(m) { b[i--]=m%2; /*如何理解b[i--]*/ m = m/2; } /* 负数的补码 */ if(n<0) { for(i=0; i<16; i++) /* 取反 */ b[i] = b[i]==1? 0: 1; /*可否写成b[i]=!b[i];?*/ for(i=15; i>=0; i--) /* 加1 */ /*为何要循环?*/ { if(b[i]==0) { b[i] = 1; break; } else b[i] = 0; } } printf(\ for(i=0; i<16; i++) { printf(\ if(i==7) /*这个if语句是什么作用?*/ printf(\ } } Output (1)

Please input an integer: 9? /* Blue is input */ The binary complemental code of 9 is: 00000000 00001001 Output (2)

Please input an integer: -9? The binary complemental code of -9 is: 7-13

/* Blue is input */

编写程序,按照下面要求填充并显示5行5列的矩阵(要求:使用的printf

语句不多于2个) 7-14 7-15 7-16 7-17 7-18 7-19 7-20 7-21

(1)左上三角为+1 (2)右下三角为-1

(3)从右到左的对角线为0。 示例: 1 1 1 1 0

1 1 1 0 -1 1 1 0 -1 -1 1 0 -1 -1 -1 0 -1 -1 -1 -1

Program (1) #include <> #define N 5 main() { int a[N][N]={0}, i, j; for(i=0; iN-i-1; j--) a[i][j]=-1; for(j=0; j #define N 5 main() { int i, j; for(i=0; i

{ } for(j=0; j

Program #include <> #define M 4 #define N 5 main() { int a[M][N], i, j, p, q; printf(\ for(i=0, p=0, q=0; i

输入一个4*3的矩阵(整型),计算每行中最大值的平均值(实型)。

Program #include <> #define M 4 #define N 3 main() { int a[M][N], b[M], i, j; /* 数组b存放每行的最大值 */ float ave=0; printf(\ for(i=0; i

杨辉三角形(也叫Pascal三角形)如下: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 ……

编写程序,生成一个15行的杨辉三角形,存放在一个二维数组里。输入正

整数n(1~15),读取并输出杨辉三角形的前n行元素。 7-33

j

(提示:如果用i表示行,用j表示列,则第i行j列元素pi, j=pi-1,j-1 + pi-1,

Program #include <> #define N 15 main() { int yh[N][N]={1}, n, i, j; /* 生成杨辉三角形 */ for(i=1; i

阵A和n行p列的矩阵B相乘,得到m行p列的矩阵C,C中的i行j列元素cij由下列公式得到: 7-35 7-36 7-37

cij??aikbkj

k?1n其中,aik是矩阵A中的i行k列元素,bkj是矩阵B中的k行j列元素。 编写程序,输入3行4列的矩阵A和4行5列的矩阵B,输出A和B的乘积

——3行5列的矩阵C。

Program #include <> #define M 3 #define N 4 #define P 5 main ( ) { int a[M][N], b[N][P], c[M][P], i, j, k; printf(\ for ( i = 0; i < M; i ++ ) for ( j = 0; j < N; j++ ) scanf ( \ printf(\ for ( i = 0; i < N; i ++ ) for ( j = 0; j < P; j++ ) scanf ( \ printf ( \matrix A and matrix B is : \\n\ for ( i = 0; i < M; i ++ ) { for ( j = 0; j < P; j++ ) { for ( k = 0, c[i][j] = 0; k < N; k ++ ) c[i][j] += a[i][k] * b[k][j]; printf ( \ } printf ( \ } } 7-38

判断一个二维数组是否存在鞍点,若存在,则输出鞍点及其行号和列号;

否则输出没有鞍点信息。“鞍点”是指这样的元素:它在本行是最大元素,而在本列是最小的元素。 Program #include <>

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4