如教材62页代码2.28所示mergeSort()算法,即便在最好情况下依然需要Ω(nlogn)时间。实际上略微修改这段代码,即可使之在(子)序列业已有序时仅需线性时间,为此,mergeSort()的每个递归实例仅需增加常数的时间,且其它情况下的总体计算时间仍然保持o(nlogn)。试给出你的改进方法,并说明其原理。
A.以1开头的二进制代码串组成的集合
B.以1结尾的二进制代码串组成的集合
C.包含偶数个0的二进制代码串组成的集合
D.包含奇数个0的二进制代码串组成的集合
阅读以下关于网页制作和网页编程的说明,回答问题1至问题4。
某公司电子商务网站首页如下图所示。网页制作使用了CSS技术,CSS文件style.css位于发布目录c:\website下的css目录中。
下面给出首页的部分代码。
<html>
< (1) >
<title>找东东网—找我喜欢!</title>
<link (2)=”stylesheet”(3)=”text/css” href=”(4)”/>
</head>
<body>
<form. name=searchinfo method=post nclick=”chkuser.asp”>
<input name=”textfield” type=”(5)”(6)=”请输入搜索项目” size=”70”
maxlength=”50”/>
<input type=”submit” name=”submit” value=”搜索” />
</form>
<form>
<input name=”mobile” type=”radio” value=”移动”(7)/>移动<input name=
“unicom” type=”radio” value=”联通” />联通<input name=”smart” type=”radio”
value=”小灵通”/>小灵通
</form>
……省略部分代码
</body>
</html>
请将上述HTML代码中空缺的部分补充完整。
A.调换甲、丙的工作,各自在对方编写的代码基础上继续开发
B.维持开发任务分工不变,同时让乙培训丙
C.维持开发任务分工不变,同时让甲培训丙
D.维持开发任务分工不变,同时让甲培训乙,乙培训丙
注意:
不编写任何代码;文件必须存放在考生文件夹中,工程文件名为execise33.vbp,窗体文件名为execise33.frm。
非线性系统如图2-7-42所示,计算图中由x到y的非线性网络的描述函数,并用主教材式(7-91)求出图示非线性系统的周期运动的参数,用主教材式(7-93)判别周期运动的稳定性
阅读以下说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
某绘图系统存在Point、Line、Square三种图元,它们具有Shape接口,图元的类图关系如图6-1所示。现要将Circle图元加入此绘图系统以实现功能扩充。已知某第三方库已经提供了XCircle类,且完全满足系统新增的Circle图元所需的功能,但XCircle不是由Shape派生而来,它提供的接口不能被系统直接使用。代码6-1既使用了XCircle又遵循了Shape规定的接口,既避免了从头开发一个新的Circle类,又可以不修改绘图系统中已经定义的接口。代码6-2根据用户指定的参数生成特定的图元实例,并对之进行显示操作。
绘图系统定义的接口与XCircle提供的显示接口及其功能如下表所示:
【代码6-1】
class Circle (1) {
private (2) pxc;
public Circle(){pxc=new (3) ;
}
public void display(){
pxc. (4) ;
}
}
【代码6-2】
public class Factory{
public (5) getShapeInstance(int type){ //生成特定类实例
switch(type){
case 0: return new Point ();
case 1: return new Rectangle () ;
case 2: return new Line () ;
case 3: return new Circle () ;
default: return null;
}
}
public class App{
public static void main (String argv[] )
if (argv. length != l) {
System. out.println ("error parameters !");
return;
}
inttype= (new Integer (argv[0])) .intValue (
Factory factory = new Factory () ;
Shape s;
s=factory, (6)
if (s==null) {
System.out.println ("Error get instance !" )
return;
}
s.display () ;
return;
}
}
应用主教材式(7-1)和式(7-2)时,对x、y轴及斜截面的方位有何限制?计算思7-5图a、b两单元体所示斜截面上的正应力σα和切应力τα是否仍可应用该二式?为什么?
阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。
【说明】
某公司的组织结构图如图6-1所示,现采用组合(Composition)设计模式来设计,得到如图6-2所示的类图。
其中Company为抽象类,定义了在组织结构图上添加(Add)和删除(Delete)分公司/办事处或者部门的方法接口。类ConcreteCompany表示具体的分公司或者办事处,分公司或办事处下可以设置不同的部门。类HRDepartment和FinanceDepartment分别表示人力资源部和财务部。
【Java代码】
import Java.util.*j
(1) Company{
protected String name;
public Company(String name) { (2)=name;}
public abstract void Add(Company C);//增加子公司、办事处或部门
public abstract void Delete(Company C);//删除子公司、办事处或部门
}
class ConcreteCompany extends Company{
private List<(3) >children=new ArrayList<(4)>();
//存储子公司、办事处或部门
public ConcreteCompany(String name){super(name);}
public void Add(Company c){(5).add(c);)
public void Delete(Company c){(6).remove(c);)
}
class HRDepartment extends Company{
public HRDepartment(String name){super(name);}
//其它代码省略
}
class FinanceDepartment extends Company{
public FinanceDepartment(String name){super(name);)
//其它代码省略
}
public class Test{
public static void main(String[]args){
ConcreteCompany root=new ConcreteCompany(“北京总公司”);
root.Add(new HRDepartment(“总公司人力资源部”));
root.Add(new FinanceDepartment(“总公司财务部”));
ConcreteCompany comp=new ConcreteCompany(“上海分公司”);
comp.Add(new HRDepartment(“上海分公司人力资源部”));
comp.Add(new FinanceDepartment(“上海分公司财务部”));
(7) ;
ConcreteCompany compl=new ConcreteCompany(“南京办事处”);
compl.Add(new HRDepartment(“南京办事处人力资源部”));
Compl.Add(new FinanceDepartment(“南京办事处财务部”);
(8); //其它代码省略
}
}
试题六(共 15 分)
阅读以下说明和 C++代码,将应填入 (n) 处的字句写在答题纸的对应栏内。
[说明]
C++标准模板库中提供了 vector 模板类,可作为动态数组使用,并可容纳任意数据类型,其所属的命名空间为 std。vector模板类的部分方法说明如下表所示:
[C++代码]
include <iostream>
include <vector>
using namespace (1) ;
typedef vector< (2) > INTVECTOR;
const int ARRAY_SIZE = 6;
void ShowVector(INTVECTOR &theVector);
int main(){
INTVECTOR theVector;
// 初始化 theVector,将 theVector的元素依次设置为 0 至 5
for (int cEachItem = 0; cEachItem < ARRAY_SIZE; cEachItem++)
theVector.push_back((3) );
ShowVector(theVector); // 依次输出 theVector中的元素
theVector.erase(theVector.begin() + 3);
ShowVector(theVector);
}
void ShowVector(INTVECTOR &theVector) {
if (theVector.empty()) {
cout << "theVector is empty." << endl; return;
}
INTVECTOR::iterator (4) ;
for (theIterator = theVector.begin(); theIterator != theVector.end(); theIterator++){
cout << *theIterator;
if (theIterator != theVector.end()-1) cout << ", ";
}
cout << endl;
}
该程序运行后的输出结果为:
0, 1, 2, 3, 4, 5
(5)