问题 选择题

下边漫画启示我们,作为中学生应该[ ]

A.加强对文化市场管理和正确引导

B.提高辨别不同性质文化的眼力

C.大力发展中国特色社会主义文化

D.全盘接受各种各样的文化

答案

答案:B

问答题

[说明] 以下[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( ); }

判断题