资源预览内容
第1页 / 共18页
第2页 / 共18页
第3页 / 共18页
第4页 / 共18页
第5页 / 共18页
第6页 / 共18页
第7页 / 共18页
第8页 / 共18页
第9页 / 共18页
第10页 / 共18页
亲,该文档总共18页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
程序员 http:/www.educity.cn/rk/cxy/index.html2016 年下半年程序员真题(案例分析题)案例分析题试题一(共 15 分)阅读以下说明和流程图,填补流程图中的空缺,将解答填入答题纸的对应栏内。【说明】设有整数数组 A1:N(N1) ,其元素有正有负。下面的流程图在该数组中寻找连续排列的若干个元素,使其和达到最大值,并输出其起始下标 K、元素个数 L 以及最大的和值 M。例如,若数组元素依次为 3,-6,2,4,-2,3,-1,则输出K=3,L=4,M=7。该流程图中考察了 A1:N中所有从下标 i 到下标 j(ji)的各元素之和S,并动态地记录其最大值 M。【流程图】程序员 http:/www.educity.cn/rk/cxy/index.html注:循环开始框内应给出循环控制变量的初值和终值,默认递增值为 1,格式为:循环控制变量=初值,终值试题二(共 15 分)阅读以下代码,回答问题:1 至问题 3 ,将解答填入答题纸的对应栏内。【代码 1】#include程序员 http:/www.educity.cn/rk/cxy/index.htmlvoid swap(int x, int y) int tmp =x; x= y; y= tmp;int maim() int a= 3, b= 7; printf(“al= %d b1=%dn“,a,b);Swap( a, b);Printf(“a2 = %d b2=%dn”,a,b);return 0;【代码 2】#include#define SPACE /空格字符Int main()char str128 =”Nothing is impossible! “;int i,num =0,wordMark=0;for(i=0;stri;i+)程序员 http:/www.educity.cn/rk/cxy/index.htmlIf(stri=SPACE)WordMark=0;elseIf(wordMark=0)wordMark=1;Mun+; Printf(“%d/n”,num)retun 0;【代码 3】#include#define SPACE “/空格字符int countStrs(char *);int main()char str128 = “ Nothing is impossible! “;Printf(%d/n,(1)(str)retum 0;程序员 http:/www.educity.cn/rk/cxy/index.htmlint countStrs(char *p)int num=0, wordMark= 0;for(;(2) ;p+) If((3)=SPACE) wordMark= 0;elseif( !wordMark ) wordMark = 1;+munretum (4) ;【问题 1】 (4 分)写出代码 1 运行后的输出结果。【问题 2】 (3 分)写出代码 2 运行后的输出结果。【问题 3】 (8 分)代码 3 的功能与代码 2 完全相同,请补充 3 中的空缺,将解答写入答题纸程序员 http:/www.educity.cn/rk/cxy/index.html的对应栏内。试题三(共 15 分)阅读以下说明和代码,填补代码中的空缺,将解答填入答题纸的对应栏内。【说明】下面的程序利用快速排序中划分的思想在整数序列中找出第 k 小的元素(即将元素从小到大排序后,取第 k 个元素) 。对一个整数序列进行快速排序的方法是:在待排序的整数序列中取第一个数作为基准值,然后根据基准值进行划分,从而将待排序的序列划分为不大于基准值者(称为左子序列)和大于基准值者(称为右子序列) ,然后再对左子序列和右子序列分别进行快速排序,最终得到非递减的有序序列。例如,整数序列“19, 12, 30, 11,7,53, 78, 25“的第 3 小元素为 12。整数序列“19, 12,7,30, 11, 11,7,53. 78, 25, 7“的第 3 小元素为 7。函数 partition(int a, int low,int high)以 alow的值为基准,对alow、alow+l、ahigh进行划分,最后将该基准值放入 ai (lowihigh),并使得 alow、alow+l、 , 、Ai-1都小于或等于 ai,而ai+l、ai+2、 、ahigh都大于 ai。函教 findkthElem(int a,int startIdx,int endIdx,inr k)在 astartIdx、astartIdx+1、.、aendIdx中找出第 k 小的元素。【代码】#include 程序员 http:/www.educity.cn/rk/cxy/index.html#include Int partition(int a ,int low, int high)/对 alow.high进行划分,使得 alow.i中的元素都不大于 ai+1.high中的元素。int pivot=alow; /pivot 表示基准元素Int i=low,j=high;while(( 1) )While(ipivot)-j;ai=ajWhile(ipivot)+i;aj=ai(2) ; /基准元素定位return i; Int findkthElem(int a,int startIdx,int endIdx, int k)/整数序列存储在 astartldx.endldx中,查找并返回第 k 小的元素。if (startldxendIdx | kendIdx |k-1#include using namespace std;class User private:string name;public:User(string name)(1) =name;User() 程序员 http:/www.educity.cn/rk/cxy/index.htmlvoid setName(string name) this-name=name;string getName()return name;void sendMessage(string message);class ChatRoom .public:static void showMessage(User* user, string message) coutgetName()“ : “sendMessage(“Hi! Leo!“);li_sendMessage(“Hi! John!“); void join(User* user) (3) (“HeIIoEveryone!l am“+user-getName(); . ; .;int main()ChatRoomSystem*crs= (4) ;crs-startup();crs-join( (5) (“Wayne“);delete crs;/*程序运行结果:John:Hi! LeolLeo:Hi! John!Wayne】:Hello Everyone!Iam Wayne/* 如需了解更多程序员真题资讯,请看希赛软考学院!
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号