[计算机类试卷]软件水平考试(初级)程序员下午(应用技术)模拟试卷18及答案与解析.doc
《[计算机类试卷]软件水平考试(初级)程序员下午(应用技术)模拟试卷18及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]软件水平考试(初级)程序员下午(应用技术)模拟试卷18及答案与解析.doc(17页珍藏版)》请在麦多课文档分享上搜索。
1、软件水平考试(初级)程序员下午(应用技术)模拟试卷 18及答案与解析 1 阅读以下说明和流程图,回答问题 1-2,将解答填入对应的解答栏内。 说明 下面的流程图采用欧几里得算法,实现了计算两正整数最大公约数的功能。给定正整数 m和 n,假定 m大于等于 n,算法的主要步骤为: (1)以 n除 m并令 r为所得的余数; (2)若 r等于 0,算法结束; n即为所求; (3)将 n和 r分别赋给 m和 n,返回步骤 (1)。 流程图 问题 1 将流程图中的 (1) (4)处补充完整。 问题 2 若输入的 m和 n分别为 27和 21,则 A中循环体被执行的次数是 (5)。 2 阅读下列程序说明和
2、C代码,将应填入 (n)处的字句写在对应栏内。 函数 2.1说明 函数 void find(int *a, int n, int * max, int * min)的功能是在长度为 n的整型数组 a中,查找最大元素和最小元素的下标。 main()中给出了调用 find函数的一个实例。 函数 2.1 #include stdio.h void find(int *a, int n,int *max,int * min) int i; *max =* min=0; for(i=1;i n;i+ +) if(ai a* max) (1); else if(ai a*min) (2); return;
3、 main() int a=4,6,8,9,0,6,max,min; find(a,6,(3); printf(“%5d%5dn“, max,min); 函数 2.2说明 以下程序用来对从键盘上输入的两个字符串进行比较,然后输出两个字符串前端的公共部分。例如:输入的两个字符 串分别是 abcdefg和 abceef,则输出为 abc。 函数 2.2 #include stdio.h main() char str1100,str2100,str100,c; int i=0,s; printf(“nInput string 1:“);gets(str1); printf(“nInput stri
4、ng 2:“);gets(str2); while(4) i+; printf(“%sn“,str); 3 阅读下列函数说明和 C函数,将应填入 (n)处的字句写对应栏内。 说明 二叉树的二叉链表存储结构描述如下: typedef struct BiTNode datatype data; struct BiTNode *lchild, * rchild; /*左右孩子指针 */ BiTNode,* BiTree; 对二叉树进行层次遍历时,可设置一个队列结构,遍历从二叉树的 根结点开始,首先将根结点指针入队列,然后从队首取出一个元素,执行下面两个操作: (1) 访问该元素所指结点; (2) 若
5、该元素所指结点的左、右孩子结点非空,则将该元素所指结点的左孩子指针和右孩子指针顺序入队。 此过程不断进行,当队列为空时,二叉树的层次遍历结束。 下面的函数实现了这一遍历算法,其中 Visit(datatype a)函数实现了对结点数据域的访问,数组 queueMAXNODE用以实现队列的功能,变量 front和 rear分别表示当前队首元素和队尾元素在数组中的位置。 函数 void LevelOrder(BiTree bt) /*层次遍历二叉树 bt*/ BiTree QueueMAXNODE; int front,rear; if(bt= =NULL)return; front=-1; re
6、ar=0; queuerear=(1); while(front (2) ) (3); Visit(queuefront- data); /*访问队首结点的数据域 */ if(queuefront lchild!: NULL) rear+; queuerear=(4); if(queuefront- rchild! =NULL) rear+; queuerear=(5); 4 阅读下列程序说明和 C代码,将应填入 (n)处的字句写在对应栏内 说明 本程序在33方格中填入 1到 10以内 9个互不相等的整数,使所有相邻两个方格内的两个整数之和为质数。程序的输出是全部满足条件的方格。 方格的序号如
7、下图所示。程序采用试探法,从序号为 0的方格开始,依次为当前方格寻找一个合理的可填整数,并在当前位置正确填入后,为下一方格寻找可填入的合理整数;如不能为当前方格寻找一个合理的可填整数,就要后退到前一方格,调整前一方格的填入整数;当序号为 8的方格也填入合理的整数后,就找到了一个解。 为检查当前方格所填整数的合理性,程序引入数组 CheckMatrix,存放需要进行合理性检查的相邻方格的序号。事实 上, CheckMatrix中只要求第 i个方格中的数向前兼容,即填写第 4个方格时,只检查在它之前、与之相邻的第 1, 3个方格是否满足和为素数的条件。 程序 #include stdio.h in
8、t pos,a9,b11; /*用于存储方格所填入的整数 */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(bj) return j; return0;int check() /*检查填入 pos位置的整数是否合理 */ int i,j int checkMatrix3=-1,0,-1,1,
9、-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 if(pos 0)return; (4);apos =j;bj=0; void find() int ok=1; pos=0;apos=1;bapos
10、=0; do if(ok) if( (5) ) write(a);change(); else extend(); else change(); ok=check(pos); while(pos=0);void main() int i; for(i=1;i =10;i+)bi=1; find(); 5 阅读以下应用说明和 Visual Basic程序,根据要求回答问题 1问题 2。 【说明】 某机动车驾驶员模拟考试系统的 “交通 禁令标志识别 ”窗体中,共有 1个按钮(CmdTest)、 6个标签、 1个包含 10个单选按钮的控件数组 (OptPicture),如图 2-15所示。其中,标签
11、 (LblPrompt1)“禁令标志 ”与标签 (LblTest)相对应,标签(LblPrompt2)“图片答案 ”与标签 (LblAnswer)相对应,标签 (LblEvaluate)为结果提示。 窗体 (Frm001)对象和单选按钮控件数组 (OptPicture)对象的部分属性及属性值如表 2-15所示。 该程序运行时,单击【测试】按钮 (CmdTest),在标签 (LblTest)中随机显示一个交通禁令标志名称,用户单击控件数组 (OptPicture)相应单选按钮后,程序在标签(LblAnswer)给出用户所击单选按钮对应的交通禁令标志名称,在标签 (LblEvaluate)给出正确
12、或错误的提示结果,如图 2-15和图 2-16所示。 【 Visual Basic 程序】 Dim (4) As StringPrivate Sub cmdTest_Click() Dim i As Integer For i = 0 To 9 (5) Next i lblPrompt2.Visible = False lblAnswer.Visible = False lblEvaluate.Visible = False i = Int(Rnd * 10) lblTest.Caption = tname(i)End SubPrivate Sub Form_Load() Dim i As I
13、nteger For i = 0 To 9 optPicture(i).Value = False (6) lblPrompt2.Visible = False lblAnswer.Visible = False lblEvaluate.Visible = False tname(0)= “禁止向左向右转弯 “ tname(1)= “禁止直行和向右转弯道 “ tname(2)= “禁止直行和向左转弯 “ tname(3)= “禁止驶入 “ tname(4)= “禁止掉头 “ tname(5)= “禁止车辆长时停放 “ tname(6)= “禁止机动车通行 “ tname(7)= “禁止非机动车
14、通行 “ tname(8)= “禁止超车 “ tname(9)= “禁止车辆临时或长时停放 “End SubPrivate Sub optPicture_Click(Index As Integer) lblPrompt2.Visible = True lblAnswer.Visible =(7) lblEvaluate.Visible = True lblAnswer. Caption=(8) If (9) Then lblEvaluate.ForeColor = vbRed lblEvaluate.Caption = “ 恭喜你 !回答正确 !“ Else lblEvaluate.Fore
15、Color = vbBlue lblEvaluate.Caption= “很遗憾,回答错误。 “ End IfEnd Sub 5 请根据图 2-15和图 2-16的显示效果和【 Visual Basic程序】,将表 2-15中窗体对象、单选按钮控件数组对象的 (1) (3)空缺处的属性值填写完整。 6 请根据【说明】和图 2-15和图 2-16的显示效果,将【 Visual Basic程序】中(4) (9)空缺处的程序语句填写完整。 7 阅读以下说明和 C+程序,将应填入 (n)处的字句写在对应栏内。 说明 下面的词典类 Dic实现了简单的英译汉功能。程序运行后的输出 为 “我是一个学生 ”。
16、 C+程序 #include iostream.h #include string.h #define Max 100 class Dic int top; char wordsMax 12; char meanMax 20; public: Die()top=0; void add(char w,char m) strcpy(wordstop,w); strcpy(meantop,m); (1); void trans(char str) int i=0,j=0,k=0,s; char w12,h200; while(l) if(stri! = /读取单词的一个字符,记录在 w中 else
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 软件 水平 考试 初级 程序员 下午 应用技术 模拟 18 答案 解析 DOC
