试题五(共15分) 阅读以下说明,回答问题1至问题3,将解答填入答题纸的对应栏内。 【说明】 小明在一家
试题五(共15分)
阅读以下说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
小明在一家超市工作,该超市将进行整体改造,小明负责信息系统软硬件升级,他制定的工作计划如表5.1所示。
每项任务的逻辑关系和部分时间信息如图5-1所示。
【问题1】 (10分)
请根据表5-1和图5-1,计算各项任务的最迟开始时间和最迟结束时间,填充图5-1中的空(1)~(10)。
试题五(共15分)
阅读以下说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
小明在一家超市工作,该超市将进行整体改造,小明负责信息系统软硬件升级,他制定的工作计划如表5.1所示。
每项任务的逻辑关系和部分时间信息如图5-1所示。
【问题1】 (10分)
请根据表5-1和图5-1,计算各项任务的最迟开始时间和最迟结束时间,填充图5-1中的空(1)~(10)。
第1题
试题五(共 15分)
阅读以下说明和C++代码,将应填入 (n) 处的字句写在答题纸的对应栏内。
【说明】
已知类 LinkedList 表示列表类,该类具有四个方法:addElement()、lastElement()、umberOfElement()以及removeLastElement()。四个方法的含义分别为:
void addElement(Object): 在列表尾部添加一个对象;
Object lastElement(): 返回列表尾部对象;
int numberOfElement(): 返回列表中对象个数;
void removeLastElement(): 删除列表尾部的对象。
现需要借助LinkedList来实现一个Stack栈类,C++代码1和C++代码2分别采用继承和组合的方式实现。
【C++代码 1】
class Stack :public LinkedList{
public:
void push(Object o){ addElement(o); }; //压栈
Object peek(){ return (1) ; }; //获取栈顶元素
bool isEmpty(){ //判断栈是否为空
return numberOfElement() == 0;
};
Object pop(){ //弹栈
Object o = lastElement();
(2) ;
return o;
};
};
【C++代码 2】
class Stack {
private:
(3) ;
public:
void push(Object o){ //压栈
list.addElement(o);
};
Object peek(){ //获取栈顶元素
return list. (4) ;
};
bool isEmpty(){ //判断栈是否为空
return list.numberOfElement() == 0;
};
Object pop(){//弹栈
Object o = list.lastElement();
list.removeLastElement();
return o;
};
};
【问题】
若类LinkedList新增加了一个公有的方法removeElement(int index),用于删除列表中第index个元素,则在用继承和组合两种实现栈类Stack的方式中,哪种方式下Stack对象可访问方法removeElement(int index)? (5) (A. 继承 B. 组合)
第2题
试题五(共15分)
阅读以下说明和C 函数,将应填入(n) 处的字句写在答题纸的对应栏内。
[说明]
某班级有N 名学生,他们可根据自己的情况选修名称和数量不尽相同的课程。设N,如图5-1 所示。
程序中相应的类型定义如下:
define N 6
struct node{
char cname[5]; /*课程名*/
int grade; /*成绩*/
struct node *next; /*指针,指示某学生选修的下一门课程及成绩*/
};
struct student{
char xh[5]; /*学号*/
char name[20]; /*姓名*/
struct node *link; /*指针,指示出选修的课程及成绩链表*/
}stud_info[N];
stud_info[]为一个全局数组。
函数func (char kc[],int *num)的功能是统计选修了课程名为kc 的学生的人数,
并返回该课程的平均成绩(若无人选修该课程,则平均成绩为0),参数num 带回选修课程kc 的学生人数。
[C函数]
double func (char kc[],int *num)
{
int i,count = 0,sum = 0; /*count用于记录选修课程名为kc 的学生的人数*/
double avg = 0.0;
struct node *p;
for(i = 0; i < N; i++){
p = (1) ; /*取第i 个学生所修课程链表的头指针*/
while (p) {
if ((2) ) {
sum = (3) ;
count++;
break;;
}/*if*/
p = p->next;
}/*while*/
}
(4) ;
if ((5) )
avg = (double)sum / count; /* 计算平均成绩 */
return avg;
}/*func*/
第3题
试题五(共15分)
阅读下列说明和C++-代码,将应填入 (n) 处的字句写在答题纸的对应栏内。
【说明】
某发票(lnvoice)由抬头(Head)部分、正文部分和脚注(Foot)部分构成。现采用装饰(Decorator)模式实现打印发票的功能,得到如图5-1所示的类图。
【C++代码】
include <iostream>
using namespace std;
class invoice{
public:
(1) {
cout《 "This is the content of the invoice!"《 endl;
}
};
class Decorator : public invoice {
Invoice *ticket;
public:
Decorator(lnvoice *t) { ticket = t; }
void printinvoice(){
if(ticket != NULL)
(2);
}
};
class HeadDecorator : public Decorator{
public:
HeadDecorator(lnvoice*t): Decorator(t) { }
void printinvoice0 {
cout《 "This is the header of the invoice! "<< endl;
(3) ;
}
};
class FootDecorator : public Decorator{
public:
FootDecorator(invoice *t): Decorator(t) { }
void printlnvoice() {
(4) ;
cout《 "This is the footnote of the invoice!"《 endl;
}
};
int main(void) {
Invoice t;
FootDecorator f(&t);
HeadDecorator h(&f);
H.printlnvoice();
cout< < “_____”< < endl;
FootDecorator a(NULL);
HeadDecorator b((5) );
B.printinvoice();
return 0;
}
程序的输出结果为:
This is the header of the invoice!
This is the content of the invoice!
This is the footnote of the invoice!
----------------------------
This is the header of the invoice!
This is the footnote of the invoice!
第4题
试题五(共15分)
阅读以下说明和 C++代码,将应填入 (n) 处的语句或语句成分写在答题纸的对应栏内。
【说明】
某数据文件students.txt的内容为100名学生的学号和成绩,下面的程序将文件中的数据全部读入对象数组,按分数从高到低进行排序后选出排名前 30%的学生。
【C++代码】
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
class Student {
private:
string sNO; //学号
int credit; //分数
public:
Student(string a,int b) { sNO = a; credit = b;}
Student(){}
int getCredit();
void out();
};
(1) ::getCredit() {
return credit;
}
(2) ::out() {
cout << "SNO: " << sNO << ", Credit=" << credit << endl;
}
class SortStudent {
public:
void sort(Student *s, int n);
SortStudent(){}
};
void SortStudent::sort(Student *s,int n) {
for(int i = 0; i < n-1; i++) {
for(int j = i+1; j < n; j++) {
if(s[i]. (3) < s[j]. (4) ) {
Student temp = s[i]; s[i] = s[j]; s[j] = temp;
}
}
}
}
int main(int argc, char* argv[])
{
const int number = 100; //学生总数
ifstream students;
students.open("students.txt");
if(!students.is_open()) {
throw 0;
}
Student *testStudent = (5) [number];
int k = 0;
string s;
while (getline(students,s,'\n')) { //每次读取一个学生的学号和成绩
Student student(s.substr(0,s.find(',')), atoi(s.substr(s.find(',')+1).c_str()));
testStudent[k++] = student;
}
students.close();
(6) ;
ss.sort(testStudent,k);
cout <<"top 30%: "<<endl;
for(k = 0; k < number * 0.3; k++) {
testStudent[k].out();
}
delete []testStudent;
return 0;
}
第5题
试题四(共15分)
阅读以下说明,回答问题1至问题5,将解答填入答题纸对应的解答栏内。
【说明】
图4-1是某企业网络拓扑结构。
【问题1】(2分)
防火墙的规则配置如表4-1所示,请解释该配置的含义。
【问题2】 (5分)
编写表4-2中规则1,禁止内网主机pc1访问Internet上的FTP服务。
【问题3】(2分)
能否在不增加规则的前提下,通过修改表4-2中的规则1,限制内网主机pc1仅能访问Internet上的FTP服务,请说明理由。
【问题4】 (5分)
编写表4-3中的规则,允许外网主机访问内网的DNS服务。
【问题5】(1分)
请说明表4-3中的规则应该插入到表4-2中的何处才能生效。
第6题
试题五(共15分)
阅读下列说明,回答问题1至问题4,将解答填入答题纸的对应栏内。
【说明】
某数据管理系统有两个重要模块:数据接收模块和数据查询模块。数据接收模块按照一定的时间间隔从多个不同数据源接收数据进行一定的预处理后存入数据库中;数据查询模块根据用户请求从数据库中查询相应的数据并返回给用户。现需要对该系统执行负载压力测试。
该数据管理系统的性能要求为:
(1)交易执行成功率100%;
(2)接收间隔最小为200ms;
(3)查询响应时间在3s以内;
(4)查询功能支持至少10个并发用户;
(5)数据接收模块CPU利用率不超过40%;
(6)数据查询模块CPU利用率不超过20%。
【问题1】(3分)
简述负载压力测试的主要目的。
【问题2】(3分)
对该数据管理系统进行性能测试时,主要关注哪些性能指标?
【问题3】(6分)
该系统数据接收模块和数据查询模块的测试结果如表5-1、5-2所示,请分别指出测试结果是否满足性能需求并说明原因。
表5-1数据接收模块测试结果
【问题4】(3分)
根据问题3的测试结果,试分析该系统的可能瓶颈。
请帮忙给出每个问题的正确答案和分析,谢谢!
第7题
试题二(共15分)
阅读以下说明,回答问题1至问题4,将解答填入答题纸对应的解答栏内。
【说明】
公司A网络拓扑结构如图2-1所示,其中FTP_server是在Windows Server 2003操作系统中配置的FIP服务器,仅供公司内部主机访问。
【问题1】
图2-2是配置FTP服务时的FTP站点选项卡,“IP地址”栏的值为 (1);TCP端口默认值为(2)。
若要利用访问情况来分析非法行为,在图2-2中应如何配置?
【问题2】
图2-3是配置FTP服务时的主目录选项卡,“本地路径”栏的信息默认为(3)。
【问题3】
图2-4是配置FTP服务时的目录安全性选项卡,选中“拒绝访问”单选框,点击“添加”按钮,弹出图2-5所示的窗体,“网络标识”栏应填入(4),“子网掩码”栏应填入(5)。
【问题4】
根据图2-3,在FTP服务器配置完成后,网络管理员要添加可供下载的资料,该如何操作?
第8题
试题八(共15分)
阅读以下说明和Java程序代码,将应填入(n) 处的字句写在答题纸的对应栏内。
[说明]
在下面的 Java 程序代码中,类SalesTicket 能够完成打印票据正文的功能,类HeadDecorator 与FootDecorator 分别完成打印票据的台头和脚注的功能。已知该程序运行后的输出结果如下所示,请填补该程序代码中的空缺。这是票据的台头!这是票据正文!这是票据的脚注!------------------------这是票据的台头!
这是票据的脚注!
[Java程序代码]
public class SalesTicket {
public void printTicket() {
System.out.println("这是票据正文!");
}
}
public class Decorator extends SalesTicket{
SalesTicket ticket;
}
}
public class FootDecorator extends Decorator{
public FootDecorator(SalesTicket t) {
(2) ;
}
public void printTicket() {
super.printTicket();
System.out.println("这是票据的脚注!");
}
}
public class Main {
public static void main(String[] args) {
T = new HeadDecorator((3) );
T. (4) ;
System.out.println("------------------------");
T = new FootDecorator((5) );
T.printTicket();
}
}
public Decorator(SalesTicket t){
ticket = t;
}
public void printTicket(){
if(ticket != null)
ticket.printTicket();
}
}
public class HeadDecorator extends Decorator{
public HeadDecorator(SalesTicket t) {
(1) ;
}
public void printTicket() {
System.out.println("这是票据的台头!");
super.printTicket();
第9题
试题三(共15分)
阅读以下说明,回答问题1至问题3,将解答填入答题纸对应的解答栏内。
【说明】
在大型网络中,通常采用DHCP完成基本网络配置会更有效率。
【问题1】(1分)
在Linux 系统中,DHCP服务默认的配置文件为 (1) 。
(1)备选答案:
A. /etc/dhcpd.conf B. /etc/dhcpd.config
C. /etc/dhcp.conf D. /etc/dhcp.config
【问题2】 (共4分)
管理员可以在命令行通过 (2) 命令启动 DHCP服务;通过 (3) 命令停止DHCP
服务。
(2) 、(3)备选答案:
A. service dhcpd start B. service dhcpd up
C. service dhcpd stop D. service dhcpd down
【问题3】(10分)
在Linux 系统中配置DHCP服务器,该服务器配置文件的部分内容如下:
subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.254;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option domain-name-servers 192.168.1.3;
range 192.168.1.100 192.168.1.200;
default-lease-time 21600;
max-lease-time 43200;
host webserver {
hardware ethernet 52:54:AB:34:5B:09;
fixed-address 192.168.1.100;
}
}
在主机webserver 上运行ifconfig命令时显示如下,根据DHCP配置,填写空格中缺少的内容。
该网段的网关IP地址为 (7) ,域名服务器 IP地址为 (8) 。