问题 问答题

阅读下列材料,回答问题:
材料一:
西方有些学者认为:“俾斯麦统一了德国,但是也分裂了德国。”
材料二:
恩格斯指出:“1848年的革命,也像先前许多次革命一样,有一个奇怪的命运。正是那些 * * 它的人变成了——正如卡尔·马克思常爱说的——它的遗言执行人。路易·拿破仑不得不建立统一和独立的意大利,俾斯麦不得不在德国进行一种变革并还给匈牙利某种程度的独立,而英国工厂主则只好赋予人民 * * 以法律效力。”
材料三:
列宁指出:“俾斯麦依照自己的方式,依照容克的方式完成了历史上进步的事业。”
材料四:
梅纳德·凯恩斯说:“与其说德意志帝国是建立在铁和血上,毋宁说是建立在铁和煤上更恰当。”

试分析19世纪德国统一的历史意义。

答案

参考答案:德国的统一具有深远的历史意义
①统一使德意志民族进入了世界先进民族之列,成为中欧的强国,改变了欧洲的国际关系。
②统一结束了德国政治上长期分裂的局面,消灭了封建割据,有利于资本主义的发展,到19世纪末20世纪初,德国工业生产已超过英、法,跃居世界第二,欧洲第一。
③统一也为德国工人运动创造了更大的活动舞台,统一后的德国工人运动走在其他国家的前面。
在这些意义上,一些学者认为,俾斯麦统一德国,比起以往德国的分裂,乃是一场“革命”,属于一场“从上面进行的革命”。但这种通过王朝战争完成的统一是有它的历史保守性的,统一后的德国把普鲁士的封建势力及军国主义传统保存了下来。

问答题

[说明] 以下[C程序]所完成的功能是在3X3方格中填入数字1~N(N≥10)内的某9个互不相同的整数,使所有相邻两个方格内的两个整数之和为质数。系统输出满足该要求的所有填法。系统的部分输出结果如图3-18所示。

图3-18 系统的部分输出结果 3×3方格从第1行左上角方格开始的序号分别为0、1、2,第2行左边方格开始的序号分别为3、4、 5,第3行左下角方格开始的序号分别为6、7、8。以下[C程序]采用试探法,即从序号为0的方格(左上角)开始,为当前方格寻找一个合理的可填整数,并在当前位置正确填入后,为下一方格寻找可填入的合理整数。如不能为当前方格寻找一个合理的可填整数,就要后退到前一方格,调整前一方格的整数。直至序号为8的方格(右下角)也填入合理的整数时,就找到了一个解,将该解输出,并调整序号为8的方格所填的整数,继续去找下一个解。 为了检查当前方格的填入整数的合理性,C程序引入二维数组checkMatrix,用于存放需要进行合理性检查的相邻方格的序号。 [C程序] #include <stdio.h> #define N 12 int a [9]; /* 用于存储方格所填入的整数 */ int b[N+1]; int pos; checkMatrix[][3] = {{-1},{0,-1},{1,-1},{0,-1},{1,3,-1},{2,4,-1},{3,-1} {4,6,-1}, 5,7,-1}}; void write(int a[]) { int i, j; for ( i = 0; i < 3; i++) for ( j = 0; j < 3; j++) printf("%3d",a[3*i+j]); printf("\n"); } } int isPrime(int m) { int i;if (m == 2) return 1; if (m == 1 || m % 2 == 0)return 0;for (i = 3; i * i <= m; ){ if (m % i == O)return 0; i+ =2;} return 1; } int selectNum(int start) { int j;for (j = start; j <= N; j++) if (b[j])return j; return 0; } int check ( ) /* 检查填入pos位置的整数是否合理 */ { int i, j;for (i = 0; (j = (1) ) >= 0; i++) if (!isPrime(a[pos] + a[j]))(2) ; (3) ; } extend ()/* 为下一方格找一个尚未使用过的整数 * / { a[ (4) ] = selectNum(1);b[a[pos]] = 0; } void change() /* 为当前方格找下一个尚未使用过的整数(找不到回溯) */ { int j;while (pos >= 0 && (j = selectNum( (5) )) == 0 (6) ;if (pos < 0) return;b[a[pos]] = 1;a[pos] = j;b[j] = 0; } find ( ) { int ok = 1;pos = 0; a[pos] = 1; b[a[pos]] = 0;de { if (ok)if ( (7) ) { write (a); change( );}else extend( ); elsechange( ); ok = check(pos);} while (pos >=0); } main( ) { int i;for (i = 1; i <=N; i++) b[i] = 1;find( ); }

单项选择题