8.1

 #include <stdio.h>

 int main (void)
{
int a, b, c, d; // 不使用嵌套花括号初始化
unsigned char char_value[][][][] =
{
, , , , , , , , , , , , , , , , , , , , // 0,0,X,X
, , , , , , , , , , , , , , , , , , , , // 0,1,X,X
, , , , , , , , , , , , , , , , , , , ,
, , , , , , , , , , , , , , , , , , , ,
, , , , , , , , , , , , , , , , , , , ,
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , // 1,0,X,X
, , , , , , ' ', , , , , , , , , , , , , , // 1,1,X,X
, , , , , , , , , , , , , 'A', , , , , , 'x',
, , , , , , , , , , , , 0xf3, , , , , , , ,
, , , , , , , , , , , , , '\n', , , , , , ,
, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , // 2,0,X,X
, , , , , , , , , , , , , , , , , , , , // 2,1,X,X
, , , , , , '', , , , , , '\'', , , , '\121', , , ,
, , , , , , , , , , , , , , , , , , , ,
, , , , , , , , , , , , , , , , , '', , ,
, , , , , , , , , , , , , , , , , , , ,
}; /*
// 使用嵌套花括号初始化
unsigned char char_value[3][6][4][5] =
{
{ //0,X,X,X
{ //0,0,X,X
{ 0 }, //0,0,0,X
}
},
{ //1,X,X,X
{ 0 }, //1,0,X,X
{ //1,1,X,X
{ 0 }, //1,1,0,X
{ //1,1,1,X
0, ' '
}
},
{ //1,2,X,X
{ 0 }, //1,2,0,X
{ 0 }, //1,2,1,X
{ 0, 0, 0, 'A' },//1,2,2,X
{ //1,2,3,X
0, 0, 0, 0, 'x'
}
},
{ //1,3,X,X
{ 0 }, //1,3,0,X
{ 0 }, //1,3,1,X
{ //1,3,2,X
0, 0, 0xf3
}
},
{ //1,4,X,X
{ 0 }, //1,4,0,X
{ 0 },//1,4,1,X
{ //1,4,2,X
0, 0, 0, '\n'
}
}
},
{ //2,X,X,X
{ 0 }, //2,0,X,X
{ //2,1,X,X
{ 0 }, //2,1,0,X
{ //2,1,1,X
0, 0, 0320
}
},
{ //2,2,X,X
{ 0 }, //2,2,0,X
{ //2,2,1,X
0, '0'
},
{ //2,2,2,X
0, 0, '\''
},
{ //2,2,3,X
0, '\121'
}
},
{ 0 }, //2,3,X,X
{ //2,4,X,X
{ 0 }, //2,4,0,X
{ 0 }, //2,4,1,X
{ 0 }, //2,4,2,X
{ //2,4,3,X
0, 0, '3', 3
}
},
{ //2,5,X,X
{ 0 },//2,5,0,X
{ 0 },//2,5,1,X
{ 0 },//2,5,2,X
{ //2,5,3,X
0, 0, 0, 0, 125
}
}
}
};
*/ for ( a = ; a < ; a++ )
for ( b = ; b < ; b++ )
for ( c = ; c < ; c++ )
for ( d = ; d < ; d++ )
{
if ( char_value[a][b][c][d] != )
printf("char_value[%d][%d][%d][%d] = %d\n", a, b, c, d, char_value[a][b][c][d]);
} getchar();
return ;
}

8.3

 #include <stdio.h>

 #define N 3

 #define  TRUE  1
#define FLASE 0 int
identity_matrix(int mat[][N])
{
int i, j;
for( i = ; i < N; i++)
{
for( j = ; j < N; j++)
{
if ( ( i == j ) && ( != mat[i][j] ) )
return FLASE;
if ( ( i != j ) && ( != mat[i][j] ) )
return FLASE;
}
}
return TRUE;
} void show_mat(int mat[][N])
{
int i, j;
for ( i = ; i < N; i++)
{
for( j = ; j < N; j++)
{
printf("%d\t", mat[i][j]);
}
putchar('\n');
}
} int main (void)
{
int mat[][N] =
{
{ },
{ , },
{ , , }
}; int state = identity_matrix(mat);
show_mat(mat); if ( state )
{
printf("Yes!\n");
}
else
printf("No!\n"); getchar();
return ;
}

8.4

 #include <stdio.h>

 #define  N  3

 #define  TRUE  1
#define FLASE 0 int identity_matrix(int *mat, int n) //判断矩阵是否为单位矩阵
{
int i, j;
for( i = ; i < n; i++)
{
for( j = ; j < n; j++)
{
if ( ( i == j ) && ( != *mat ) )
return FLASE;
if ( ( i != j ) && ( != *mat ) )
return FLASE;
mat++;
}
}
return TRUE;
} void show_mat(int *mat, int n) //打印矩阵元素
{
int i, j; for ( i = ; i < n; i++)
{
for( j = ; j < n; j++)
{
printf("%d\t", *mat++);
}
putchar('\n');
}
} int main (void)
{
int mat[][N] =
{
{ },
{ , },
{ , , }
}; int state = identity_matrix( &mat[][], N);
show_mat(&mat[][], N); if ( state )
{
printf("Yes!\n");
}
else
printf("No!\n"); getchar();
return ;
}

8.5

 #include <stdio.h>

 #define  X  3
#define Y 2
#define Z 4 void matrix_multiply(int *m1, int *m2, int *r, int x, int y, int z)
{
int i, j, k, sum; for ( i = ; i < x; i++ )
{
for ( k = ; k < z; k++ )
{
sum = ;
for ( j = ; j < y; j++ )
{
sum += (*(m1+(i*y)+j)) * (*(m2+(j*z+k)));
}
*( r + (i*z) + k ) = sum;
}
}
} void show_mat(int *mat, int x, int y) //打印矩阵元素
{
int i, j; for ( i = ; i < x; i++)
{
for( j = ; j < y; j++)
{
printf("%d\t", *mat++);
}
putchar('\n');
}
putchar('\n');
} int main (void)
{
int m1[X][Y] =
{
{ , - },
{ , },
{ , - }
}; int m2[Y][Z] =
{
{ , -, -, - },
{ -, -, , }
}; int r[X][Z] = { }; printf("m1 = \n");
show_mat(&m1[][], X, Y);
printf("m2 = \n");
show_mat(&m2[][], Y, Z); matrix_multiply(&m1[][], &m2[][], &r[][], X, Y, Z);
printf("r = m1 * m2 = \n");
show_mat(&r[][], X, Z); getchar();
return ;
}

《C和指针》章节后编程练习解答参考——第8章的更多相关文章

  1. 《C和指针》章节后编程练习解答参考——第5章

    5.1 题目: 略 解答代码: #include <stdio.h> int main(void) { char ch; while (((ch = getchar()) != EOF) ...

  2. 《C和指针》章节后编程练习解答参考——第10章

    10.1 #include <stdio.h> typedef struct { unsigned ]; unsigned ]; unsigned ]; }TelphoneNumber; ...

  3. 《C和指针》章节后编程练习解答参考——第9章

    9.1 #include <stdio.h> #include <ctype.h> #include <string.h> #define N 100 int ma ...

  4. 《C和指针》章节后编程练习解答参考——6.2

    <C和指针>——6.2 题目: 编写一个函数,删除源字符串中含有的子字符串部分. 函数原型: int del_substr(char *str, char const *substr); ...

  5. 《C和指针》章节后编程练习解答参考——6.3

    <C和指针>——6.3 题目: 编写一个函数,把参数字符串中的字符反向排列. 函数原型: void reverse_string(char *string); 要求: 使用指针而不是数组下 ...

  6. 《C和指针》章节后编程练习解答参考——6.6

    <C和指针>——6.6 题目: 在指定的下限.上限之间使用数组方法查找质数,并将质数提取出来. 要求: 略 解答代码: #include <stdio.h> #define U ...

  7. 《C和指针》章节后编程练习解答参考——6.4

    <C和指针>——6.4 题目: 质数是只能被1和本身整除的整数. 在1到1000之间的质数,在数组中剔除不是质数的数. 解答代码: #include <stdio.h> #de ...

  8. 《C和指针》章节后编程练习解答参考——6.1

    <C和指针>——6.1 6.1 题目: 编写一个函数,在一个字符串中进行搜索,查找另一子字符串中出现的字符. 函数原型如下: char *find_char(char const *sou ...

  9. DSAPI多功能组件编程应用-参考-Win32API常数

    DSAPI多功能组件编程应用-参考-Win32API常数 在编程过程中,常常需要使用Win32API来实现一些特定功能,而Win32API又往往需要使用一些API常数,百度搜索常数值,查手册,也就成了 ...

随机推荐

  1. phpstudy配置虚拟主机

    配置 phpstudy 虚拟主机 1在httpd.conf中  把#Include conf/extra/httpd-vhosts.conf前面的#去掉 2在站点域名管理 添加 要配置的 虚拟主机 添 ...

  2. 墙裂推荐 iOS 资源大全

    这是个精心编排的列表,它包含了优秀的 iOS 框架.库.教程.XCode 插件.组件等等. 这个列表分为以下几个部分:框架( Frameworks ).组件( Components ).测试( Tes ...

  3. Div+css中ul ol li dl dt dd使用

    ol 有序列表.<ol><li>……</li><li>……</li><li>……</li></ol>表现 ...

  4. C# 的可空合并运算符(??)到底是怎样的宝宝?

    前言废语 也怪自己小白和不勤奋,没有系统的学习C#相关的东西,工作一年多还是初级小菜,深感不安,来到园子才发现好多钻研技术的人,也渐渐发现自己开始喜欢上了这个编程的世界.今日偶遇??操作符,发现我只看 ...

  5. mysql命令使用

    1.连接Mysql 格式: mysql -h主机地址 -u用户名 -p用户密码 1.连接到本机上的MYSQL.首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root ...

  6. Spring MVC 中的 forward 和 redirect

    Spring MVC 中,我们在返回逻辑视图时,框架会通过 viewResolver 来解析得到具体的 View,然后向浏览器渲染.假设逻辑视图名为 hello,通过配置,我们配置某个 ViewRes ...

  7. android - DefaultHttpClient设置超时.

    Android的DefaultHttpClient中,超时设置需要调用HttpConnectionParams.setConnectionTimeout方法,如(以下代码的31~35行代码): ref ...

  8. 一行代码实现headView弹簧拉伸效果

    前言 很多app的个人中心上部的headView都实现了弹簧拉伸的效果,即tableView的top并不随着下拉而滑动,而是紧紧的停在屏幕的最上方. 我们今天就分析一下这个效果的实现方式. 分析 关键 ...

  9. C# 之【线程与进程】

    1.  引言 先来个比喻手法: 如果把上课的过程比作进程,那么每个学生就是一个线程,他们共享教室,即线程共享进程的内存空间.每一个时刻,只能一个学生问老师问题,老师回答完毕,轮到下一个.即线程在一个时 ...

  10. 反射(学习整理)----Class类和加载器ClassLoader类的整理

    1.学习反射的时整理的笔记!Class类和ClassLoader类的简单介绍 反射机制中的Class Class内部到底有什么呢?看下图! 代码: Class cls=Person.class; .C ...