


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、初级程序员下午试题-83(总分:90.00,做题时间:90分钟)一、试题一(总题数:1,分数:15.00)1. 阅读以下说明和流程图,回答问题将解答填入对应栏。说明下面的流程图,用来完成求字符串t在s中最右边出现的位置。其思路是:做一个循环,以s的每一位作为字符串的开头和t比较,如果两字符串的首字母是相同的,则继续比下去,如果一直到t的最后一个字符也相同,则说明在s中找到了一个字符串t ;如果还没比较到t的最后一个字符,就已经出现字符串不 等的情况,则放弃此次比较,开始新一轮的比较。当在s中找到一个字符串t时,不应停止寻找(因为要求的是求t在s中最右边出现位置),应先记录这个位置 pos,然后
2、开始新一轮的寻找,若还存在相同的字符 串,则更新位置的记录,直到循环结束,输岀最近一次保存的位置。如果s为空或不包含t,则返回-1。注:返回值用 pos表示。*问题将流程图的(1)(5)处补充完整。(分数:15.00 )正确答案:(pos=-1 ; (2) si!='/0'(3) sj=tk;(4) k >0; (5) pos=i ;)解析:解析本试题考查流程图。题目中说明,如果s中不包含t,则返回-1,由流程图可以看出,如果(2)的条件不满足,流程图会直接跳 到最后Returnpos,所以,在开始进行查找之前,就要先将pos置-1,所以(1)填入"pos=-1
3、”。循环开始, (2)保证的条件应该是si不是空的,即(2)填入“ si!='/0'”。下面就开始进行比较,由于要输出的是最右边岀现的位予,所以当第一次比较到相同的字符时不能输岀,只要暂时把保存着,即(5)填入“pos=i”,然后进行下一次循环,当又岀现相同的字符串时,就将pos的值更新,如果一直到最后都没有再次岀现相同的字符串,就把pos输岀。当比较到第一个相同的字符时,要继续比较下去,看是不是t和s的每一个字符全相同,所以应填入“ sj=tk”。在什么情况下能说明t和s完全相同呢?就是当t 一直比较到最后一个字符即空格时,并且k大于0(因为如果k等于0,则说明第一个字母就不
4、相同,根本没有开始比较),所以应填入“ k>0”。二、试题二(总题数:1,分数:15.00)2. 阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。说明1函数void fun(char *w,char x,int *n)用来在w数组中插入x,w数组中的数已按由小到大顺序存放,n指存储单元中存放数组中数据的个数,插入后数组中的数仍有序。C函数1void fun(char W,char x,int n)int i,P;p=0;w n=x;while(x >wp) (1);for(i= *n,i > p;i-)wi= (2) ;wp=x;+*n;说明2函数void
5、revstr(char *s)将字符串s逆置。例如:字符串“ abcde”,经过逆置后变为“ edcba” C函数2void revstr(char *s)char p,c;if(s=NULL)return;p=;/*p指向字符串s的最后一个有效字符7while(s < p) / *交换并移动指针*/C=s;=*P;(5) =c;(分数:15.00 )填空项 1: (正确答案:p+ wi-1 (3) s+strlen(s)-1 (4)*s+或 *(s+)(5) *p-或(P-)解析:解析函数1的fun()中的while循环是为了找到x的插入位置,因此(1)填“p+”,for循环是移动数组
6、中的元 素,因此填“wi -1”。对于函数2,设字符串的长度为 n,则该函数的思想为将*(s+j)与*(s+n-1+i)对换,i=0.n/2 。采用指针 来实现,s为起始地址,p定位为最后一个字符的位置,所以空 (3)应填"s+strlen(s) -1” ;采用*s与*卩交 换后为 s+ 与 P-。即空填“ s+” 或“ *(s+) ”,空(5)填“ *p- ”或“ *(p-) ”。三、试题三(总题数:1,分数:15.00)3. 阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。说明已知r1.n 是n个记录的递增有序表,用折半查找法查找关键字为k的记录。若查找失败,则
7、输岀“failure",函数返回值为0;否则输出“ success”,函数返回值为该记录的序号值。C函数int binary search(struct recordtype r,int n,keytype k)intmid,low=1,hig=n;while(low < =hig)mid= (1);if(k < rmid.key) (2)else if(k=rmid.key)printf("succesS/n");;else (4);printf("failure/n");(5);(分数:15.00 )填空项 1: (正确答案:(
8、low+hig)/2 (2) hig=mid-1 (3) returnmid (4) low=mid+1(5) return 0)解析:解析折半查找法也就是二分法:初始查找区间的下界为1,上界为len,查找区间的中界为k=(下界+上界)/2所以应填“ (low+hig)/2 ”。中界对应的元素与要查找的关键字比较。当kv rmid.key时,(2)填“hig=mid -1”;当 k=rmid.key 时,(3)填“ return mid”;当 k> rmid.key 时,(4)填“ low=mid+1”。 如果low > hig时循环终止时,仍未找到需查找的关键字, 那么根据题意返
9、回0,即空(5)填“return 0”。四、试题四(总题数:1,分数:15.00)4. 阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。说明本程序实现对指定文件内的单词进行计数。其中使用二叉树结构来保存已经读入的不同单词,并对相同单 词岀现的次数进行计数。此二叉树的左孩子结点的字符串值小于父结点的字符串值,右孩子结点的字符串 值大于父结点的字符串值。函数 getword(char "filename ,char *word)是从指定的文件中得到单词。 char*strdup(char *S)是复制S所指向的字符串,并返回复制字符串的地址。C程序#include v
10、stdio.h >#include v ctype.h >#include v string.h >#define MAXWORD 100struct nodechar *word;int count;struct node *left;struct node "right;struct node *addtree(struct node*P,char *w)int cond;if(p=NULL) /*向树中插入结点*/P=(struct node *)malloc(sizeof(struct node);P- > word=strdup(w);P- >
11、 count=1;(1);elseif(oond=strcmp(w,p- > word)=0) (2);else if(cond v 0)p- > left= (3);else p- > right= (4);return p;main()Struct node "root;char wordMAXWORD;root=NULL;filename="example.dat" while(getword(filename,word)!=EOF) root= (5);(分数:15.00 )填空项 1: (正确答案:p- > left=p- >
12、;right=NULL (2) p- >count+ (3) addtree(p-> left,w)(4) addtree(p- > right,w) (5) addtree(root,word)解析:解析在用二叉树结构来保存指定文件内的单词时,采用递归调用。首先在树中创建一个结点,因此空(1)填“p->left=p- >right=NULL ”。如果要插入的字符串已经存在,则计数值加1,即空 填“p- >count+ ”;如果要插入的字符串小于此结点上字符串的值,则再次调用此函数,即空填“addtree(p - >left,w) ”;如果要插入的字符
13、串大于此结点上字符串的值,则再次调用函数为空(4),即“addtree(p - >r ight,w) ”。在主函数中调用空(5),即“ addtree(root,word) ”。五、试题五(总题数:1,分数:15.00)5阅读以下说明和C+程序,将应填入(n)处的字句写在对应栏内说明以下程序的功能是计算三角形、矩形和正方形的面积并输岀。程序由4个类组成:类Triangle , Rectangle和Square分别表示三角形、矩形和正方形;抽象类 Figure 提供了一个纯虚拟函数getArea(),作为计算上述三种图形面积的通用接口。C+程序#include < iostream.
14、h >#include < math.h >class Figurepublic:virtual double getArea()=0; /纯虚拟函数class Rectangle: (1)protected:double height;double width;public:Rectangle();Rectangle(double height,double width)This- > height=height;This- >width=width;double getarea()return (2);class Square: (3)public:squar
15、e(double width)(4);class triangle: (5) double la;double lb;double lc;public:triangle(double la,double lb,double lc) this- > la=la;thiS- > ib;this- > lc; double getArea() double s=(la+lb+lc)/2.0; return sqrt(s *(s-l a)*(s-l«b)*(s-l* c);viod main()figure *figures3=new triangle(2,3,3),new
16、 Rectangle(5,8),new Square(5);for(int i=0; i < 3;i+)cout << "figures" << i << "area=" << (figures)- >getarea() << endl;(分数:15.00 )填空项 1: (正确答案:public Figure (2) height*width (3) public Rectangle(4) this- > height=this- > width=width (5) p
17、ublic Figure)解析:解析本题考查C+编程中的几个重要概念。Figure类是一个抽象类,其他三个类rectangle、square > triangle都要直接或间接继承该类,所以(1)(5)处应为“ public Figure ”。(2)处是要计算矩形面积,矩形面积等于长乘以宽,所以 (2)处应为“height * width ”。正方形是一个特殊的矩形,所以可以继承矩形类,所以 处应为“ publicRectangle ”(4)处应为“ this - > height=this->width=width ”。六、试题六(总题数:1,分数:15.00)6.阅读以下
18、说明和Java程序,将应填入(n)处的字句写在对应栏内说明以下程序的功能时三角形、矩形和正方形的面积输岀。程序由5个类组成:areatest是主类,类Triangle ,Rectangle和Square分别表示三角形、矩形和正方形,抽象类Figure提供了一个计算面积的抽象方法。Java程序public class areatestpublic static viod main(string args)FigureFigures=New triangle(2,3,3),new rectangle(5,8),new square(5)for(int i=0; i < Figures.len
19、gth;i+)public abstract class figurepublic abstract double getarea();public class rectangle extends (1)double height;double width;public rectangle (double height,double width)this.height=height;this.width=width;public string tostring()return"rectangle:height="+height+",width="+width+":"public double getarea()return (2) public class square exends (3)public square(double width);public string tostring() return"square:width="+width":"public class triangle entends
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 辽宁城市建设职业技术学院《Python程序开发课程设计》2023-2024学年第二学期期末试卷
- 吉林大学《机车车辆检测技术》2023-2024学年第二学期期末试卷
- 商洛学院《生物医药知识产权》2023-2024学年第一学期期末试卷
- 红河学院《信息技术与教育》2023-2024学年第二学期期末试卷
- 赣南科技学院《高级英语写作(1)》2023-2024学年第二学期期末试卷
- 山东菏泽市曹县2025年初三第二次五校联考英语试题含答案
- 荣成市2025届五下数学期末考试模拟试题含答案
- 辽宁师范大学海华学院《劳动通论》2023-2024学年第二学期期末试卷
- 梧州学院《热质交换原理与设备》2023-2024学年第一学期期末试卷
- 2024-2025学年河南省三门峡市渑池县第二高级中学高二下学期第一次月考(3月)数学试卷(含答案)
- 《酒店概论》考试复习参考题库(含答案)
- 版式设计网格课件
- 消防安全检查表(车间)
- 产品报价单(5篇)
- 大飞机C919:追梦五十载,“破茧化蝶”
- 品牌视觉形象设计智慧树知到答案章节测试2023年天津科技大学
- 高考语文复习-议论文结尾写作之深化主旨 练习
- 汉语词汇与文化课件
- 浅析公路桥梁施工中高性能混凝土的应用
- 新概念英语第三册Lesson8 课件
- DBJ∕T 13-196-2014 水泥净浆材料配合比设计与试验规程
评论
0/150
提交评论