地上画有45 行、2 列的方格阵列,45 名运动员在靠左的一列站成纵队,每人站在一个方格内,且所有运动员从前到后按1~45 依次编号。当听到第一声哨响时,所有编号为1 的倍数的人移动到自己所在位置同一行的另外一个方格中,往后听到第n 次哨响时,所有编号为n 的倍数的人都要移动到自己所在位置同一行的另外一个方格中。那么哨响4 次之后,站在左边一列的人比站在右边一列的人:A.少5 人B.少9 人C.多5 人D.多9 人
地上画有45 行、2 列的方格阵列,45 名运动员在靠左的一列站成纵队,每人站在一个方格内,且所有运动员从前到后按1~45 依次编号。当听到第一声哨响时,所有编号为1 的倍数的人移动到自己所在位置同一行的另外一个方格中,往后听到第n 次哨响时,所有编号为n 的倍数的人都要移动到自己所在位置同一行的另外一个方格中。那么哨响4 次之后,站在左边一列的人比站在右边一列的人:
A.少5 人
B.少9 人
C.多5 人
D.多9 人
B.少9 人
C.多5 人
D.多9 人
参考解析
解析:
方法二:题目所求为哨响4次,因此编号为1、2、3、4倍数的人发生了移动,1、2、3、4的公倍数为12,因此每12个人的移动是一样的,可以按12人为一周期进行分析。前12个人的移动情况见下表:
方法二:题目所求为哨响4次,因此编号为1、2、3、4倍数的人发生了移动,1、2、3、4的公倍数为12,因此每12个人的移动是一样的,可以按12人为一周期进行分析。前12个人的移动情况见下表:
相关考题:
在WORD中,在一个4行4列的表格编辑正文时,当在表格的第3行最左一列键入Shift+Tab,插入点将()。A.移动到表格的2行4列处B.移动到表格的2行1列处C.移动到表格的4行4列处D.移动到表格的4行1列处
阅读下列C程序和程序说明,将应填入(n)处的字句写在对应栏内。【说明】本程序在3×3方格中填入1~N(N≥10)内的某9个互不相同的整数,使所有相邻两个方格内的两个整数之和为质数。试求出满足这个要求的所有填法。3×3方格中的每个方格按行按列(先行后列)序号排列为:0,1,2,3,4,5,6,7,8。程序采用试探法,即从序号为0的方格开始,为当前方格寻找一个合理的可填整数,并在当前位置正确填入后,为下一方格寻找可填入的合理整数。如不能为当前方格找到一个合理的可填整数,就要回退到前一方格,调整前一方格的填入整数;直至序号为8的方格也填入合理的整数后,就找到了一个解,将该解输出。再调整序号为8的方格所填整数,继续去找下一个解。为了检查当前方格的填入整数的合理性,程序引入二维数组check Matrix,存放需要进行合理性检查的相邻方格的序号。include <stdio. h>define N 12int b[N+1];int pos;int a[9];/* 用于存储诸方格所填入的整数*/int AllNum=0;/* 统计有多少种填法*/int 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==0)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)b[a[pos--]]=1;if(pos<0)return;b[a[pos]]=1; a[pos]=j; b[j]=0;}int find (){ int k=1;pos=0; a[pos]=1; b[a[pos]]=0;do{if(ok)if(pos==8){ write(a);change();AllNum++;/* 统计有多少种填法*/}else extend();else change();k=check();}while(pos>=0);}void main(){ int i;for(i=1; i<=N; i++) b[i]=1;find();prinrf("共有%d种不同填法!/n", AllNum);}
阅读以下应用程序说明和C程序,将C程序段中(1)-(7)空缺处的语句填写完整。[说明]以下[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 12int 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 k = 1;pos = 0; a[pos] = 1; b[a[pos]] = 0;de {if (ok)if ( (7) ) {write (a);change( );}elseextend( );elsechange( );ok = check(pos);} while (pos >=0);}main( )
阅读下列程序说明和C代码,将应填入(n)处的字句写在对应栏内[说明]本程序在3×3方格中填入1到10以内9个互不相等的整数,使所有相邻两个方格内的两个整数之和为质数。程序的输出是全部满足条件的方格。方格的序号如下图所示。程序采用试探法,从序号为0的方格开始,依次为当前方格寻找一个合理的可填整数,并在当前位置正确填入后,为下一方格寻找可填入的合理整数;如不能为当前方格寻找一个合理的可填整数,就要后退到前一方格,调整前一方格的填入整数;当序号为8的方格也填入合理的整数后,就找到了一个解。为检查当前方格所填整数的合理性,程序引入数组CheckMatrix,存放需要进行合理性检查的相邻方格的序号。事实上,CheckMatrix中只要求第i个方格中的数向前兼容,即填写第4个方格时,只检查在它之前、与之相邻的第1,3个方格是否满足和为素数的条件。[程序]include <stdio.h>int pos,a[9],b[11]; /*用于存储方格所填入的整数*/void write(int a[]) /*方格输出函数*/{ ……}int isPrime(int m) /*素数判断函数,若m为素数则返回1,否则返回0*/{ ……}int selectNum(int start) /*找到start到10之间尚未使用过的最小的数,若没有则返回0*/{ int j;for(j=start;j<=10;j++) if(b[j]) return j;return0;}int check() /*检查填入pos位置的整数是否合理*/{ int i,jint checkMatrix[][3]={{-1},{0,-1},{1,-1},{0,-1},{1,3,-1},{2,4,-1},{3,- 1},{4,6,-1},{5,7,-1}};for(i=0;(j=(1))>=0;i++)if(! isPrime((2)))return 0;return 1;}void extend() /*为下一方格找一个尚未使用过的整数*/{ (3)=selectNum(1);b[a[pos]]=0;}void change() /*为当前方格找下一个尚未使用过的整数,若找不到则回溯*/{ int j;while(pos>=0(j=selectNum(a[pos]+1))= =0) b[a[pos- -]]=1;if(pos<0)return;(4);a[pos] =j;b[j]=0; }void find(){ int k=1;pos=0;a[pos]=1;b[a[pos]]=0;do{if(ok)if( (5) ){write(a);change();}else extend();else change();k=check(pos);}while(pos>=0);}void main(){ int i;for(i=1;i<=10;i++)b[i]=1;find();}
设 A 为n阶方阵,且|A| =0,则必有A.A 中某一行元素全为 0B.A 的第n行是其余,n - 1 行的线性组合C.A 中有两列对应元素成比例D.A 中某一列是其余 n - 1 列的线性组合
设有编号为1到10的10张背面向上的纸牌,现有10名游戏者,第1名游戏者将所有编号是1的倍数的纸牌翻成另一面向上的状态,接着第2名游戏者将所有编号是2的倍数的纸牌翻成另一面向上的状态,......,第n名(n≤10)游戏者,将所有编号是n的倍数的纸牌翻成另一面向上的状态,如此下去,当第10名游戏者翻完纸牌后,那些纸牌正面向上的最大编号与最小编号的差是:A. 2B. 4C. 6D. 8
阅读下列说明和C代码,回答问题1至问题3,将解答写在答题纸的对应栏内。【说明】n-皇后问题是在n行n列的棋盘上放置n个皇后,使得皇后彼此之间不受攻击,其规则是任意两个皇后不在同一行、同一列和相同的对角线上。拟采用以下思路解决n-皇后问题:第i个皇后放在第i行。从第一个皇后开始,对每个皇后,从其对应行(第i个皇后对应第i行)的第一列开始尝试放置,若可以放置,确定该位置,考虑下一个皇后;若与之前的皇后冲突,则考虑下一列;若超出最后一列,则重新确定上一个皇后的位置。重复该过程,直到找到所有的放置方案。【C代码】下面是算法的C语言实现。(1)常量和变量说明pos:一维数组,pos[i]表示第i个皇后放置在第i行的具体位置count:统计放置方案数i,j,k:变量N:皇后数【问题1】(10分)根据以上说明和C代码,填充C代码中的空(1)~(5)。【问题2】(2分)根据以上说明和C代码,算法采用了(6)设计策略。【问题3】(3分)上述C代码的输出为:(7)。
创建笛卡尔积时会发生什么情况?()A、一个表中的所有行都被联接到另一个表中的所有行上B、表与自身相联接,一列与其下一列相联接,直至联接完所有列C、表被联接到另一个相应的表D、将显示不匹配WHERE子句的所有行
在Word中输入一组学生姓名,每输完一个学生姓名后按一下“Enter”键,全部输入完毕后,“全选”再进行“复制”,则此时“粘贴”到EXCEL中的现象是()A、所有学生的姓名在同一行B、所有学生的姓名在同一列C、无内容D、所有学生的姓名在同一单元格
有100个编号为1—100的罐子,第1个人在所有编号为1的倍数的罐子中倒入1毫升水,第2个人在所有编号为2的倍数的罐子中倒入1毫升水,……,第100个人在所有编号为100的倍数的罐子中倒入1毫升水,问此时第92号罐子中装了多少毫升的水?()A、2B、6C、46D、92
单选题在商场等公共场所乘坐电梯时,请“左行右立”,不要站在中间或左侧,乘客一律靠右站立,上下排成一列纵队,空出左边的小道给有急事的人上下跑动。A乘坐电梯是有讲究的B乘坐电梯要站在左边C在电梯上别乱跑乱跳D要空出右边方便别人走动
单选题在Word中,在一个4行4列的表格编辑正文时,当在表格的第3行最左一列键入Shift+Tab,插入点将()。A移动到表格的二行四列处B移动到表格的二行一列处C移动到表格的四行四列处D移动到表格的四行一列处
单选题运动会上100名运动员排成一列,从左向右依次编号为1--100,选出编号为3的倍数的运动员参加开幕式队列,而编号为5的倍数的运动员参加闭幕式队列。问题不参加开幕式又不参加闭幕式队列的运动员有多少人? ()A46B47C53D54
单选题设有编号为1、2、3、…、10的10张背面向上的纸牌,现有10名游戏者,第1名游戏者将所有编号是1的倍数的纸牌翻成另一面向上的状态,接着第2名游戏者将所有编号是2的倍数的纸牌翻成另一面向上的状态,……,第n名(n≤10)游戏者,将所有编号是n的倍数的纸牌翻成另一面向上的状态,如此下去,当第10名游戏者翻完纸牌后,那些纸牌正面向上的最大编号与最小编号的差是:A2B4C6D8
单选题设有编号为1、2、3……10的10张背面向上的纸牌,现有10名游戏者,第1名游戏者将所有编号是1的倍数的纸牌翻成另一面向上的状态,接着第2名游戏者将所有编号为2的倍数的纸牌翻成另一面向上的状态,……第n名(n≤10)游戏者,讲所有编号为n的倍数的纸牌翻成另一面向上的状态,如此下去,当第10名游戏者翻完纸牌后,那些纸牌正面向上的最大编号与最小编号的差是?( )A2B4C6D8
单选题在Word中输入一组学生姓名,每输完一个学生姓名后按一下“Enter”键,全部输入完毕后,“全选”再进行“复制”,则此时“粘贴”到EXCEL中的现象是()A所有学生的姓名在同一行B所有学生的姓名在同一列C无内容D所有学生的姓名在同一单元格