初级程序员问.答考试卷模拟考试题_第1页
初级程序员问.答考试卷模拟考试题_第2页
初级程序员问.答考试卷模拟考试题_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、姓名:_ 班级:_ 学号:_-密-封 -线- 初级程序员问.答考试卷模拟考试题考试时间:120分钟 考试总分:100分题号一二三四五总分分数遵守考场纪律,维护知识尊严,杜绝违纪行为,确保考试结果公正。1、说明本程序在33方格中填入1到10以内9个互不相等的整数,使所有相邻两个方格内的两个整数之和为质数。程序的输出是全部满足条件的方格。方格的序号如下图所示。程序采用试探法,从序号为0的方格开始,依次为当前方格寻找一个合理的可填整数,并在当前位置正确填入后,为下一方格寻找可填入的合理整数;如不能为当前方格寻找一个合理的可填整数,就要后退到前一方格,调整前一方格的填入整数;当序号为8的方格也填入合理

2、的整数后,就找到了一个解。为检查当前方格所填整数的合理性,程序引入数组checkmatrix,存放需要进行合理性检查的相邻方格的序号。事实上,checkmatrix中只要求第i个方格中的数向前兼容,即填写第4个方格时,只检查在它之前、与之相邻的第1,3个方格是否满足和为素数的条件。程序#include stdio.hint pos,a9,b11; /*用于存储方格所填入的整数*/void write(int a) /*方格输出函数*/int isprime(int m) /*素数判断函数,若m为素数则返回1,否则返回0*/int selectnum(int start) /*找到start到1

3、0之间尚未使用过的最小的数,若没有则返回0*/int j;for(j=start;j=10;j+) if(bj) return j;return0;int check( ) /*检查填入pos位置的整数是否合理*/int i,jint checkmatrix3=-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);bapos=0;void change( ) /*为当前方格找下一个尚未使用过的整数,若找不到则回溯*/int j;while(pos=0&(j=selectnum(apos+1)= =0) bapos- -=1;if(pos0)return;(4);apos =j;bj=0;void find( )int ok=1;pos=0;apos=1;bapos=0;doif(ok)if(5)write(a);change( );else extend( );else change( );ok=check(pos);while(pos=0);voi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论