《C和指针》章节后编程练习解答参考——第8章
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章的更多相关文章
- 《C和指针》章节后编程练习解答参考——第5章
5.1 题目: 略 解答代码: #include <stdio.h> int main(void) { char ch; while (((ch = getchar()) != EOF) ...
- 《C和指针》章节后编程练习解答参考——第10章
10.1 #include <stdio.h> typedef struct { unsigned ]; unsigned ]; unsigned ]; }TelphoneNumber; ...
- 《C和指针》章节后编程练习解答参考——第9章
9.1 #include <stdio.h> #include <ctype.h> #include <string.h> #define N 100 int ma ...
- 《C和指针》章节后编程练习解答参考——6.2
<C和指针>——6.2 题目: 编写一个函数,删除源字符串中含有的子字符串部分. 函数原型: int del_substr(char *str, char const *substr); ...
- 《C和指针》章节后编程练习解答参考——6.3
<C和指针>——6.3 题目: 编写一个函数,把参数字符串中的字符反向排列. 函数原型: void reverse_string(char *string); 要求: 使用指针而不是数组下 ...
- 《C和指针》章节后编程练习解答参考——6.6
<C和指针>——6.6 题目: 在指定的下限.上限之间使用数组方法查找质数,并将质数提取出来. 要求: 略 解答代码: #include <stdio.h> #define U ...
- 《C和指针》章节后编程练习解答参考——6.4
<C和指针>——6.4 题目: 质数是只能被1和本身整除的整数. 在1到1000之间的质数,在数组中剔除不是质数的数. 解答代码: #include <stdio.h> #de ...
- 《C和指针》章节后编程练习解答参考——6.1
<C和指针>——6.1 6.1 题目: 编写一个函数,在一个字符串中进行搜索,查找另一子字符串中出现的字符. 函数原型如下: char *find_char(char const *sou ...
- DSAPI多功能组件编程应用-参考-Win32API常数
DSAPI多功能组件编程应用-参考-Win32API常数 在编程过程中,常常需要使用Win32API来实现一些特定功能,而Win32API又往往需要使用一些API常数,百度搜索常数值,查手册,也就成了 ...
随机推荐
- Oracle学习.Windows 命令行 启动ORACLE服务与实例
使用数据库前要先打开数据库的实例和监听器! --总结启动命令如下: lsnrctl [start|stop|status] --启动监听器,停止监听器,查看监听器的 ...
- CONTROLS: <> TYPE TABLEVIEW USING SCREEN<>.在 ABAP/4 中声明表格 控制
在 ABAP/4 中声明表格 控制 在屏幕中使 用表格控制 时,必须在 ABAP/4 程序中同时 声明表格控 制结构和表 格控制字段 . 例如: TABLES: SFLIGHT. CONTROLS ...
- HTML5的渐变色 渐变的两种类型 createLinearGradient 和createRadialGradient
今天又再看了html5的颜色渐变API,发现没有第一次看那么复杂. 不过我对这个颜色渐变存在着一个疑惑就是两种色带之间,那段是属于两种颜色混合的,有点模糊. 比如从红色变成黄色,在红与黄之间的那个地方 ...
- jQuery--对话框插件--dialog
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- PHP安全外延
接下来,我们讲一下:php语言与Apache等中间.MySQL等数据库结合使用时所产生的一些安全问题. 1.文件解析漏洞分析 2.编码注入漏洞分析 3.is_numeric漏洞分析
- 一些as的配置
打开Android Studio首选项对话框(Mac用户选择Android Studio菜单,Windows用户选择File → Settings菜单).分别展开Editor和Code Style选项 ...
- window和Linux下的软链接
window下开启软链接命令: mklink /J "D:\IdeaProjects\bms_work\smartcity_govnet\base_web\target\base_web\ ...
- Asp.net简单三层+Sqllite 增删改查
新建项目à新建一个空白解决方案 在Model新建一个实体类 using System; using System.Collections.Generic; using System.Linq; usi ...
- 24、Javascript BOM
BOM(Browser Object Model)浏览器对象模型,一组浏览器提供的API. window对象 window对象表示当前浏览器的窗口,是Javascript的顶级对象,所有创建的对象.函 ...
- css3新增加的选择器
css3新增加的选择器 一.属性选择器: E[attr] 只要有属性名E[attr=value] 属性名=属性值E[attr~=blue] 包含这个blue整个单词就可以E[attr^=c] 以这个字 ...