网友您好, 请在下方输入框内输入要搜索的题目:

题目内容 (请给出正确答案)
阅读以下说明和C代码,填补代码中的空缺,将解答填入答题纸的对应栏内。
[说明]
对一个整数序列进行快速排序的方法是:在待排序的整数序列中取第一个数作为基准值,然后根据基准值进行划分,从而将待排序列划分为不大于基准值者(称为左子序列)和大于基准值者(称为右子序列),然后再对左子序列和右子序列分别进行快速排序,最终得到非递减的有序序列。
函数quicksort(int a[],int n)实现了快速排序,其中,n个整数构成的待排序列保存在数组元素a[0]~a[n-1]中。

[C代码] #inclLade<stdi0.h> void quicksort(inta[], int n) { int i,j; int pivot=a[0]; //设置基准值 i=0; j=n-1; while (i<j){ while (i<1 && ______) j--; //大于基准值者保持在原位置 if (i<j) { a[i] =a[j]; i++;} while(i<j&& ______) i++; //不大于基准值者保持在原位置 if (i<1) { a[j] =a[i]; 1--;} } a[i]=pivot; //基准元素归位 if (i>1 ) ______; //递归地对左孔序列进行快速排序 if (n-i-1>1 ) ______; //递归地对右孔序列进行快速排序 } int main() { int i, arr[]={23,56,9,75,18,42,11,67}; quicksort(______); //调用quicksort对数组arr[]进行排序 for( i=0; i<sizeof(arr)/sizeof(int); i++ ) printf("%d\t",arr[i]); return 0; }


参考答案

参考解析
解析:a[j]>pivot 或 a[j]>=pivot 或等价形式
a[i]<=pivot 或 a[i]<pivot 或等价形式
quicksort(a,i) 或 quicksort(a,j) 或等价形式
quicksort(a+i+1,n-i-1) 或 quicksort(a+j+1,n-j-1) 或等价形式
注:a+i+1可表示为&a[i+1],a+j+1可表示为&a[j+1]
arrsizeof(arr)/sizeof(int)
注:sizeof(arr)/sizeof(int)可替换为8

【解析】

本题考查C程序设计基本技能及快速排序算法的实现。
题目要求在阅读理解代码说明的前提下完善代码,该题目中的主要考查点为运算逻辑和函数调用的参数处理。
程序中实现快速排序的函数为quicksort,根据该函数定义的首部,第一个参数为数组参数,其实质是指针,调用时应给出数组名或数组中某个元素的地址;第二个参数为整型参数,作用为说明数组中待排序列(或子序列)的长度。
快速排序主要通过划分来实现排序。根据说明,先设置待排序列(或子序列,存储在数组中)的第一个元素值为基准值。划分时首先从后往前扫描,即在序列后端找出比基准值小或相等的元素后将其移到前端,再从前往后扫描,即在序列前端找出比基准值大的元素后将其移动到后端,直到找出基准值在序列中的最终排序位置。再结合注释,空(1)处应填入"a[j]>pivot",使得比基准值大者保持在序列后端。空(2)处应填入"a[i]<=pivot",使得不大于基准值者保持在前端。
在完成1次划分后,基准元素被放入a[i],那么分出来的左子序列由a[0]~a[i-1]这i个元素构成,右子序列由a[i+1]~a[n-1]构成,接下来应递归地对左、右子序列进行快排。因此,结合注释,空(3)应填入"quicksort(a,i)"或其等价形式,以对左子序列的i个元素进行快排,也可以用&a[0]代替其中的a,它们是等价的,a与&a[0]都表示数组的起始地址。
空(4)所在代码实现对右子序列进行快排。右子序列由a[i+1]~a[n-1]构成,其元素个数为n-1-(i+1)+1,即n-i-1,显然元素a[i+1]的地址为&a[i+1]或a+i+1,所以空(4)应填入"quicksort(a+i+1,n-i-1)"或其等价形式。
在main函数中,空(5)所在代码首次调用函数quicksort对main函数中的数组arr进行快排,因此应填入"arr,sizeof(arr)/sizeof(int)"或其等价形式。
更多 “阅读以下说明和C代码,填补代码中的空缺,将解答填入答题纸的对应栏内。 [说明] 对一个整数序列进行快速排序的方法是:在待排序的整数序列中取第一个数作为基准值,然后根据基准值进行划分,从而将待排序列划分为不大于基准值者(称为左子序列)和大于基准值者(称为右子序列),然后再对左子序列和右子序列分别进行快速排序,最终得到非递减的有序序列。 函数quicksort(int a[],int n)实现了快速排序,其中,n个整数构成的待排序列保存在数组元素a[0]~a[n-1]中。 [C代码] #inclLade<stdi0.h> void quicksort(inta[], int n) { int i,j; int pivot=a[0]; //设置基准值 i=0; j=n-1; while (i<j){ while (i<1 //大于基准值者保持在原位置 if (i<j) { a[i] =a[j]; i++;} while(i<j //不大于基准值者保持在原位置 if (i<1) { a[j] =a[i]; 1--;} } a[i]=pivot; //基准元素归位 if (i>1 ) ______; //递归地对左孔序列进行快速排序 if (n-i-1>1 ) ______; //递归地对右孔序列进行快速排序 } int main() { int i, arr[]={23,56,9,75,18,42,11,67}; quicksort(______); //调用quicksort对数组arr[]进行排序 for( i=0; i<sizeof(arr)/sizeof(int); i++ ) printf("%d\t",arr[i]); return 0; }” 相关考题
考题 阅读下面的说明,回答问题1~问题4,将解答填入答题纸对应的解答栏内。[说明]阅读以下说明,回答问题1~问题4,将解答填入答题纸对应的解答栏内。windows Server 2003是一个多任务多用户的操作系统,能够以集中或分布的方式实现各种应用服务器角色,是目前应用比较广的操作系统之一。Windows内置许多应用服务功能,将下表中(1)~(5)处空缺的服务器名称填写在答题纸对应的解答栏内。(1)

考题 阅读下列说明,回答问题1至问题2,将解答填入答题纸的对应栏内。[说明]如图10-4所示是电子商务系统平台结构示意图。请把空缺的地方填写完整。

考题 阅读下列说明,回答问题1至问题2,将解答填入答题纸的对应栏内。[说明]电子商务系统的外部社会环境如图10-5所示。请把空缺的地方填写完整。

考题 阅读以下说明,回答问题,将解答填入答题纸的对应栏内。[说明]某电子商务网站采用ASP+SQL Server开发的电子商务网站系统,提供了商品查询、网上购物车、订单管理、后台商品管理和支付等功能。其后台修改商品页面如图6-12所示。通常,客户端浏览器不能执行(1)。(1) A.HTML代码 B.VBScript代码 C.JavaScript代码 D.ASP内置对象代码

考题 阅读以下说明和 C 函数,填补函数代码中的空缺,将解答填入答题纸的对应栏内。 【说明 1】 函数 f(double eps) 的功能是:利用公式计算并返回 的近似值。【说明 2】 函数fun(char *str)的功能是:自左至右顺序取出非空字符串 str中的数字字符,形成一个十进制整数(最多 8 位)。例如,若 str中的字符串为 iyt?67kp f3g8d5.j4ia2e3p12, 则函数返回值为 67385423。

考题 阅读以下关于软件测试的说明,回答司题l至问题3,将解答填入答题纸的对应栏内。【说明】使用在汽车、飞机中的嵌入式软件, 日于直接影响人的生命及财产安全,测试要求更为严格。语句覆盖、判定覆盖、条件覆盖和MC/DC覆盖是通常对这类软件的要求。以下是一段C语言代码,请仔细阅读并回答相关问题:【问题1】(6分)请根据测试要求,简要说明语句覆盖、判定覆盖、条件覆盖和MC/DC覆盖的含义。将答案填写在答题纸的对应栏中。【问题2】(5分)画出以上代码的流程图,将答案填写在答题纸的对应栏中。【问题3】(4分)请根据【说明】中的C语言代码,计算满足MC/DC覆盖要求的用例数量及条件取值范围,将答案填写在答题纸的对应栏中.

考题 阅读下列说明、c++代码和运行结果,填补代码中的空缺(1)~(6),将解答填入答题纸的对应栏内。【说明】很多依托扑克牌进行的游戏都要先洗牌。下面的c++程序运行时先生成一副扑克牌,洗牌后再按顺序打印每张牌的点数和花色。【c++代码】inciude <iostream>4Finclude <stdlib. h>include <ctime>inciude <aigorithm>include <string>Using namespace stdConst string Rank[13]={”A”,”2”,”3”,”4“,“5”,”6,”’“7”8“,9”,”10,”J”,”Q”,”K”}j//扑克牌点数

考题 阅读以下说明和Java程序,填补代码中的空缺(1)~(6),将解答填入答题纸的对应栏内。【说明】很多依托扑克牌进行的游戏都要先洗牌。下面的Java代码运行时先生成一副扑克牌,洗牌后再按顺序打印每张牌的点数和花色。【Java代码】

考题 试题三(共 15 分)阅读以下说明和 C 程序,将应填入 (n) 处的字句写在答题纸的对应栏内。

考题 阅读以下C代码,回答问题(1)~(5),将解答填入答题纸的对应栏内。【说明】以下java代码实现一个简单乐器系统,音乐类(Music)可以使用各类乐器(Instrument)进行演奏和调音等操作。对部分乐器进行建模,其类图如题5-1所示,包括:乐器(Instrument)、打击乐器(Percussion)、弦乐器(Stringed)、管乐器(Wind)、木管乐器(Woodwind)、铜管乐器(Brass)

考题 阅读下列说明和C++-代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某发票(lnvoice)由抬头(Head)部分、正文部分和脚注(Foot)部分构成。现采用装饰(Decorator)模式实现打印发票的功能,得到如图5-1所示的类图。 【C++代码】 #include using namespace std; class invoice{ public: (1){ cout

考题 试题五(共 15 分)阅读以下说明和 Java 程序,填补代码中的空缺,将解答填入答题纸的对应栏内。【说明】以下 Jave 代码实现一个简单客户关系管理系统(CrM) 中通过工厂 (Customerrfactory )对象来创建客户(Customer) 对象的功能。客户分为创建成功的客户 (realCustomer) 和空客户(NullCustomer) 。空客户对象是当不满足特定条件时创建或获取的对象。类间关系如图 5-1 所示。【Java 代码】Abstract class Customer﹛Protected String name;()boolean isNil()()String getName();﹜ Class realCustomer ()Customer﹛Public realCustomer(String name )﹛ return false; ﹜﹜ Class NullCustomer()Customer﹛Public String getName()﹛ return ″Not Available in Customer Database″; ﹜Public boolean isNil()﹛ return true; ﹜﹜ class Customerfactory {public String[] names = {"rob","Joe","Julie"};public Customer getCustomer(String name) {for (int i = 0; i getCustomer();Crs->getCustomer();Delete crs;return();﹜/*程序输出为:CustomerrobNot Available ini Customer DatabaseJulieNot Available in Customer Database

考题 阅读以下C代码,回答问题1和问题2,将解答填入答题纸的对应栏内。【C代码1】 【问题2】写出【代码2】的运行时的输出结果。

考题 试题六(共 15 分)阅读下列说明和 C++代码,填补代码中的空缺,将解答填入答题纸的对应栏内。【说明】以下 C++代码实现一个简单的聊天室系统(ChatRoomSystem),多个用户 (User)可以向聊天室(ChatRoom)发送消息,聊天室将消息展示给所有用户。 类图如图 6-1 所表示。 【C++代码】#include#include using namespace std; class User {private:string name; public:User(string name){ (1) =name;}~User(){} void 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()"] : " zhang->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! Leol [Leo]:Hi! John![Wayne】:Hello Everyone!Iam Wayne/*

考题 第一题 阅读以下说明和流程图,填补流程图中的空缺,将解答填入答题纸的对应栏内。 【说明】 对于大于1的正整数n,(x+1)n可展开为 问题:1.1 【流程图】 注:循环开始框内应给出循环控制变量的初值和终值,默认递增值为1。 格式为:循环控制变量=初值,终值,递增值。

考题 阅读以下C代码,回答问题1至问题3,将解答填入答题纸的对应栏内。【C代码1】 float adjustSalary(int service_year,int age,float salary) { if( service_year 30 ) salary *= 1.2; } else salary *= 2.0; return salary;} 【C代码2】 void foo(int coin) { switch (coin) { case 1: printf("Cent\n"); case 5: printf("Nicke1\n");break; case 10: printf("Dime\n"); case 25: printf("Quarter\n"); }} 【C代码3】 int getSum(int n){ int t, i = 0, sum = 0; while ( i

考题 阅读以下C++代码,回答问题(1)~(5),将解答填入答题纸的对应栏内。【说明】以下C++代码实现一个简单乐器系统,音乐类(Music)可以使用各类乐器(Instrument)进行演奏和调音等操作。对部分乐器进行建模,其类图如题6-1所示,包括:乐器(Instrument)、打击乐器(Percussion)、弦乐器(Stringed)、管乐器(Wind)、木管乐器(Woodwind)、铜管乐器(Brass)。

考题 阅读下列说明,补充(1)-(9),将解答填入答题纸的对应栏内。

考题 阅读以下说明和流程图,填写流程图中的空缺,将解答填入答题纸的对应栏内。【说明】设[a1b1],[a2b2],...[anbn]是数轴上从左到右排列的n个互不重叠的区间(a1

考题 阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。 【说明】 某网站采用ASP+SQL Server开发,系统的数据库名为gldb,数据库服务器IP地址为202.12.34.1。打开该网站主页,如图5-1所示: 【问题1】(8分,每空1分) 以下是该网站主页部分的html代码,请根据图5-1将(1)~(8)的空缺代码补齐。 【问题2】(2分,每空1分) 该网站采用ASP编写程序代码,在ASP内置对象中,application对象和session对象可以创建存储空间用来存放变量和对象的引用。 如果在页面中设置访客计数器,应采用上述的 (9) 对象:如果编写购物车组件,应采用上述的 (10) 对象。 【问题3】(5分,每空1分) 以下是该网站进行数据库连接的代码conn.asp,请根据题目说明完成该程序,将答案填写在答题纸的对应位置。

考题 阅读以下说明,回答问题1至问题2,将解答填入答题纸对应的解答栏内。 【说明】 某留言系统采用ASP+Access开发,其后台管理登录页面如图4-1所示。 【问题1】(9分) 以下是该后台管理登录页面login.asp的部分代码,请仔细阅读该段代码,根据图4-1 将(1)~(9)的空缺代码补齐。 【问题2】(6分) 1.在登录页面 login.asp 中通过导入了bbb.asp的代码,以下是bbb.asp的部分代码,请仔细阅读该段代码,将空缺代码补齐。

考题 阅读下列说明,回答问题1和问题2,将解答填入答题纸的对应栏内。 【说明】 某系统在线讨论区采用ASP+Access开发,其主页如图4-1所示 【问题1】(8分) 以下是该网站主页部分的html代码,请根据图4-1将(1)~(8)的空缺代码补齐。 l...... l ...... (1)~(8)的备选答案: A. submit B.form C.text D.textarea E. include F.action G method H.value

考题 阅读下列说明,回答问题1和问题2,将解答填入答题纸的对应栏内。 【说明】 某系统在线讨论区采用ASP+Access开发,其主页如图4-1所示 【问题2】(7分) 该网站在主页上设置了分页显示,每页显示10条留言,以下是该网站页面分页显示部分代码,请阅读程序代码,并将(9)~(15)的空缺代码补齐。 maxpage Then page= (14)End Ifrs.AbsolutePage = PageIf page = maxpage Then x = iCount - (maxpage -1) * iPageSizeElse x= (15)End If%>......(9)~(15)的备选答案:A.Clnt(page) B.exec C.maxpage D.10 E.EOF F.iPageSize G. order

考题 阅读下列说明,回答问题1和问题2,将解答写在答题纸的对应栏内。 【说明】 Windows 系统的用户管理配置中,有多项安全设置,如图2-1 所示。

考题 阅读下列说明和C++代码,回答问题,将解答填入答题纸的对应栏内。 【说明】某航空公司的会员积分系统将其会员划分为:普卡 (Basic)、银卡(Silver)和金卡 (Gold) 三个等级。非会员 (NonMember) 可以申请成为普卡会员。会员的等级根据其一年内累积 的里程数进行调整。描述会员等级调整的状态图如图 5-1 所示。现采用状态 (State) 模式实现上述场景,得到如图 5-2 所示的类图。 【问题1】(15分)阅读上述说明和C++代码,将应填入 (n) 处的字句写在答题纸的对应栏内。

考题 阅读以下说明和Java代码,填补代码中的空缺,将解答填入答题纸的对应栏内。 【说明】 以下Java代码实现一个超市简单销售系统中的部分功能,顾客选择图书等物件 (Item)加入购物车(ShoppingCart),到收银台(Cashier)对每个购物车中的物品统计其价格进行结账。设计如图5-1所示类图。 【Java代码】 interface Item{ public void accept(Visitor visitor); public double getPrice();}class Book (1){ private double price; public Book(double price){(2);} public void accept(Visitor visitor){ //访问本元素 (3); } public double getPrice() { return price; }}//其它物品类略 interface Visitor { public void visit(Book book); //其它物品的visit方法 } class Cashier(4){ private double totalForCart; //访问Book类型对象的价格并累加 (5){ //假设Book类型的物品价格超过10元打8折 if(book.getPrice()(); public double calculatePrice() { Cashier visitor=newCashier(); for(Item item:items) { (6); } doubletotal=visitor.getTotal(); return total; } public void add(Item e) { this.items.add(e); }}

考题 阅读下列说明和?C++代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 阅读下列说明和?Java代码,将应填入?(n)?处的字句写在答题纸的对应栏内。 【说明】 某快餐厅主要制作并出售儿童套餐,一般包括主餐(各类比萨)、饮料和玩具,其餐品种 类可能不同,但其制作过程相同。前台服务员?(Waiter)?调度厨师制作套餐。现采用生成器?(Builder)?模式实现制作过程,得到如图?6-1?所示的类图。

考题 阅读以下说明,回答问题1至问题4,将解答填入答题纸对应的解答栏内。 【说明】 某企业网络拓扑如图1-1所示,A~E是网络设备的编号。