版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、初级程序员下午试题模拟40试题一 1、 阅读以下说明和流程图,回答问题将解答填入对应栏。说明本流程图实现采用递归函数来求一个整数数组中从元素0到元素n中的最小值。该算法思想是这样的,首先我们假设有一个求数组中最小元素的函数,然后,在求某一具有n的元素的数组的最小值时,只要求将前n-1的元素的最小值与第n个元素比较即可。不断地重复这一过程,直到数组中只剩下一个元素,那么它必定是最小值。 注:int min(int X,int y)为返回两数中最小数的函数。 int minInArray(int minA为数组中最小值。 a,intn)为返回数组中最小数的函数。问题l将流程图的(1)(4)处补充完
2、整。问题2min()函数的定义为 (5) 。 试题二2、 阅读以下函数说明和C语言函数,将应填入 (n) 处的字句写在对应栏内。说明1函数int function(int a)的功能是判断指定的正整数是否为素数,若是,返回1,否则返回0。 C函数1int function(int a)int yes,i;i=2;yes=1;while(i=a/2 & (1) if( (2) ) yes=0; i+;return yes;说明2函数int deleteARR(int*arr,intn)的功能是指定的有序数组压缩成各元素互不相同的有序数组,即相同数只保留一个,多余的被删除。函数返回值是互不相同的元
3、素个数。 C函数2int deleteARR(int*arr,int n)int k,j; k=0;j=1;while(j n) if( (3) ) (4) =arrj; j+;return (5) ;试题三3、 阅读以下函数说明和C语言函数,将应填入 (n) 处的字句写在对应栏内。说明已知一棵二叉树用二叉链表存储,t指向根结点,p指向树中任一结点。下列算法为输出从t到P 之间路径上的结点。 C程序#define Maxsize 1000typedef node data;struct TelemTypestruct node*1child,*rchild;BiNode,*BiTree;voi
4、d Path(BiTree t,BiNode*P) BiTree*stackMaxsize,*stacklMaxsize,*q; int tagMaxsize,top=0,topl;q=t;/*通 过 先 序 遍 历 发 现 P*/do(while(q!=NULL & q!=p)/*扫描左孩子,且相应的结点不为P*/ (1) ;stacktop=q; tagtop=0; (2) ;if(stacktop=P)break;/*找到P,栈底到栈顶为t到P*/if(tagtop=1)top-; elseq=stacktop; q=q-rchild;tagtop=1; (3) ;top-; topl=
5、0; while(top 0) q=stackto p; topl+; (4) ;top-;while( (5) ) q=stackltopl; printf(q-data); topl-;/*反向打印准备*/*打印栈的内容*/试题四4、 阅读以下函数说明和C语言函数,将应填入 (n) 处的字句写在对应栏内。说明某银行共发出M张储蓄卡,每张储蓄卡拥有唯一的,每天每张储蓄卡至多支持储蓄卡持有者的N笔“存款”或“取款”业务。程序中用数组cardMN+3中的每一行存放一张储蓄卡的有关信息, 其中: cardi0存放第i张卡的; cardi1存放第i张卡的余额; cardi2存放第i张卡的当日业务实际
6、发生笔数; cardi3cardiN+2存放第i张卡的当日存取款金额,正值代表存款,负值代表取款。当持卡者输入正确的、存款或取款金额后,程序进行相应的处理;若输入不正确的数据, 程序会提示持卡者重新输入;若输入的C 程 序 #includestdio.H #define M 6#define N 5为负数时,银行终止该卡的当日业务。 long cardMN+3=9801,2000,0,9812,2000,2,9753,3000,1,8750,500,0,9604,2800,3,),(8901,5000,5,;int locate(long cardN+3,int m,long no)int i
7、;for(i=0;im;i+)if( (1) =no)return i; (2) ;main()long cardNo,money; int k;while(1)printf(请输入:n);scanf(%1d,&cardNo);break;if(cardNo0)k=locate(card,M,cardNo); if(k=-1)printf(不存在%id号的储蓄卡n,cardNo); continue;printf(请输入金额(正值代表存款,负值代表取款):n); scanf(%id,&money);if(cardk1+money0)printf(存款余额不足,不能完成本次的取款业务n); co
8、ntinue;if(cardk2=N)printf(已完成本卡的当日业务n); continue;/*处理一笔业务的数据*/ cardk (3) =money; (4) ; (5) ;试题五5、 阅读以下说明和C+代码,将解答写入对应栏内。说明类Stock的定义中有三处错误,分别在代码的第04、06、10行。请补齐下述代码中的空缺(1)(3),修改错误并给出修改后该行的完整代码,最后完善程序运行后的输出结果。 C+程序#includeiostream.h using namespace std; classStock protected:Stock()shares=0; share_val=0
9、.0;Output();Stock(int n=0,double pr=3.5): (1) /初始化shares值为n share_val=pr;Output();voidStock();void Output()(coutshares;share valendl; public:/成员函数private:/成员变量int shares;01020304050607080910111213141516171819202122232425double;share_val;void mak a(1);/构造三个Stock对象a,b,CtocStock C;Stock();/其他代码省略,且代码无输
10、出程序运行后的输出结果为:1:3.5 (2) (3)试题六6、 阅读以下说明和Java代码,将解答写在对应栏内。说明已知类Stock和类JavaMain都定义在JavaMain.java文件中,类stock的定义中有四处错误,分别在代码的第01、02、06、07行。请修改错误并给出修改后该行的完整代码,并写出改正错误后程序运行的输出结果。 Java代码public class Stock static shares=0; Share_val=0.0;private Stock()tgetData(); private Stock(int n,double pr=0)shares=n; shar
11、e val=pr; getData();01020304050607080910111213141516171819202122232425publicvoid getData()System.out.print(shares+:+share_val+);Drivate int shares;/非静态变量Drivate double share val;/非静态变量publiC class JavaMainpublic static void matringargs) Stock a=new Stock(); Stock b=new Stock(1,67.5);/其他代码省略,且代码无输出 答
12、案:试题一1、 minInArray(a,n);(2) 1;(3) minA=an-1;(4) minA=min(minInArray(a,n-1),an); 解析本题目考查流程图。 (5) xy?x:y;题目是利用递归来求数组中的最小值,则一定是反复的调用一个求数组最小值的函数,直到比较数组中最后只剩下两个数,则(1)中填入的应是“minlnArray(a,n)”,然后,判断n的值是否为1,如果是,则说明数组中只有一个数,则它一定就是最小值,可以直接输出,所以(2)应填入“1”, (3)应填入“minA=an”;如果n的值不是1,则说明要继续递归,则再次调用求数组最小值的函数, 把数组前n-
13、1项的最小值同第n项做比较,所以(4)填入“minA=min(minInArray(a,n-1), an)”, 由于min()是一个比较函数,返回两数中较小的数,我们可以用三元运算符直接定义为x y?x:y。试题二 2、 yes或yes=1或yes !=0(3) arrk!=arrj 解析(2) a/i*i=a或a%i=0或!(a%i)(4) arr+k(5) k+1或+k对于函数1,增加了一个判断的标志yes,开始进入素数判别循环时置yes=1,则(1)应填“yes” 或“yes=1”或“yes !=0”;一旦数n能被某个不等于零的真因子整除,退出循环,则(2)应填“a/i*i=a”或“a%
14、i=0”或“!(a%i)”。 对于函数2,用k记录数组arr中不同元素的个数,同时设置工作指针j,将arrj与已得到的互不相同元素的最后一个元素进行比较,若不相等,则将其作为已比较的互不相同元素的最后一个元素,所以(3)填“arrk!=artj”,(4)填“arr+k”。最后返回互不相同的元素个数k+1, 即(5)填“k+1”或“+k”。 试题三 (4) stackltop1=q3、 top+(2) q=q-1child(3) while(top0)(5) top10 解析本题本质上是对二叉树的先序遍历进行考核,但不是简单地进行先序遍历,而是仅遍历从根结点到给定的结点p为止。本题采用非递归算法
15、来实现,其主要思想是:初始化栈:根结点进栈, 栈不空则循环执行以下步骤直到发现结点p;当前结点不为空且不为P进栈;栈顶为p,则结束, 否则转;若右子树访问过,则栈顶的右孩子为当前结点,转。 扫描左孩子,当相应的结点不为P时进栈,所以(1)填“top+”,(2)填“q=q-1child”。在栈不为空时则一直在do while循环中查找,因此(3)填“while(top0)”。在进行反向打印准备时,读取stacktop的信息放到stackltop中,即(4)填“stackltop1=q”。打印栈中所有内容,所以(5)填“top10”。 试题四 4、 cardi0cardk2 解析(2) retur
16、n-1(3) cardk2+3(4) cardk1+=money(5)按照程序的说明,函数Locate是对用户输入的进行比较,当找到对应的,则返回持卡者对应的记录号,否则返回-1。cardi0中存放着第i张卡的,所以(1)填“cardi0”, (2)填“return-1”。当找到持卡者的为k时,由于cardk2存放实际的交易次数,因此这次发生的交易数应该存放的位置为cardkcardk2+3,即(3)填“cardk2+3”。在交易发生后,存款额要发生改变,即(4)填“cardk1+=money”,同时其交易次数增1,(5)填“cardk2”。 试题五 5、 shares(n)04代码行修改结果
17、:public:06代码行修改结果:Stock(int n,double pr=3.5): shares(n) 10代码行修改结果:Stock()(2) 0:0(3) 0:0解析本题考查的是用C+程序编程。 根据程序中的注释,要求初始化shars的值为n,因此根据初始化语法应为“shares(n)”;第四行定义了构造函数的访问控制为protected,但构造函数应该是公共的,所以第四行应该更改为“public”:第六行的构造函数定义了默认值,这样构造一个对象的时候可以填写不同参数,但这个构造函数会和stock()的无参构造函数混淆,所以,不能够带有默认值,可以将带有默认参数的构造函数更改为:“Stock(int n,double pr=3.5)”或者“Stock(int n,double pr)”。函数的析构函数不能够有任何的返回值,所以第十行应为“Stock()”:运行程序后,程序的输出结果为:1:3.5 0:0 0:0试题六 6、01代码行修改结果:class Stock 02代码行修改结果:06代码行修改结果:public Stock()getData();07代码行修改结果:public Stock(int n,double pr)程序运行的输出结果为:0:0.0 1:67.5
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 重要场所救援演练组织
- 空姐式培训教学课件
- 公司融资培训
- 空呼培训教学课件
- 公司英语培训
- 有限空间作业事故应急演练方案
- 公司职业化培训课件
- 新闻稿培训课件
- 空乘英语培训课件
- 2025-2030物联网智能灌溉系统行业市场现状技术应用创新需求评估发展研究报告
- 外贸公司采购专员绩效考核表
- 彩礼分期合同范本
- 胸腺瘤伴重症肌无力课件
- 十五五安全生产规划思路
- 一年级地方课程教案
- 剪刀车专项施工方案
- 授信合同与借款合同(标准版)
- 2024-2025学年四川省绵阳市七年级(上)期末数学试卷
- 道路清扫保洁、垃圾收运及绿化服务方案投标文件(技术标)
- 合成药物催化技术
- 【语文】福建省福州市乌山小学小学三年级上册期末试题(含答案)
评论
0/150
提交评论