some records

随手记下 想记录 的题目  ,感谢 原创 。。。。\(^o^)/~


5.观察下面一段代码:

class ClassA

{

public:

virtual ~ ClassA(){};

virtual void FunctionA(){};

};

class ClassB

{

public:

   virtual void FunctionB(){};

};

class ClassC : publicClassA,public ClassB

{

public:

};

 

ClassC aObject;

ClassA*pA=&aObject;

ClassB*pB=&aObject;

ClassC*pC=&aObject;

关于pA,pB,pC的取值,下面的描述中正确的是:

A.pA,pB,pC的取值相同.               B.pC=pA+pB

C.pA和pB不相同                     D.pC不等于pA也不等于pB

 

 

每个类的示例在内存中的时候,都会有一张虚函数表,实际上是一个指针的列表,每个指针指向虚函数的地址空间,因此ClassC和ClassA是一样的地址,但是ClassB没有析构函数,它的虚函数表中就只有一项记录,就是FunctionB了。

 

6.参照T5的代码,假设定义了ClassA* pA2,下面正确的代码是:

A.pA2=static_cast<ClassA*>(pB);

B.void* pVoid=static_cast<void*>(pB);

 pA2=static_cast<ClassA*>(pVoid);

C.pA2=pB;

D.pA2=static_cast<ClassA*>(static_cast<ClassC*>(pB));


7.参照1T5的代码,下面那一个语句是不安全的:

   A.delete pA   B.delete pB  C.delete pC


 一个没有虚析构函数的类意味着不能做为一个基类

class B 没有虚析构函数,释放 pc的时候,无法释放其 父类 的资源,所以,pc 有问题。。。。是这样么?

13.下面哪种情况下,B不能隐式转换为A?

A.class B:public A{}                B.class A:public B{}

C.classB{operator A();}             D.class A{A(const B&);}

 AB 好理解。 CD,我还不懂。。。。。

14.某公司使用包过滤防火墙控制进出公司局域网的数据,在不考虑使用代理服务器的情况下,下面描述错误的是”该防火墙能够(   )”.

A.使公司员工只能访问Internet上与其业务联系的公司的IP地址.

B.仅允许HTTP协议通过,不允许其他协议通过,例如TCP/UDP.

C.使员工不能直接访问FTP服务器端口号为21的FTP地址.

D.仅允许公司中具有某些特定IP地址的计算机可以访问外部网络


包过滤防火墙只能控制到网络层,即IP段的策略,ACD都是针对IP的,C说的是FTP21端口,但是FTP地址本身也就是个IP地址,只有B是上升到协议了,必须是代理防火墙也就是大家说的应用级防火墙才能控制的 

数据包过滤是通过对数据包的IP头和TCP头或UDP头的检查来实现的,主要信息有:

  * IP源地址
  * IP目标地址
  * 协议(TCP包、UDP包和ICMP包)
  * TCP或UDP包的源端口
  * TCP或UDP包的目标端口
  * ICMP消息类型
  * TCP包头中的ACK位
  * 数据包到达的端口
  * 数据包出去的端口
  在TCP/IP中,存在着一些标准的服务端口号,例如,HTTP的端口号为80。通过屏蔽特定的端口可以禁止特定的服务。包过滤系统可以阻塞内部主机和外部主机或另外一个网络之间的连接,例如,可以阻塞一些被视为是有敌意的或不可信的主机或网络连接到内部网络中。


/*
求开散列表的平均查找长度(急急急)
  2010-12-22 15:37 提问者: 理央o0 | 浏览次数:1131次
问题描述
创建一个开散列表,散列函数为除留余数法如下:hash(x) = x % 11,散列表中有8个元素,要求从键盘读入这8个散列元素,采用开散列即拉链法处理冲突,计算该开散列表的平均查找长度。


提示:创建一个指针数组用来表示开散列。
 输入规范
输入8个散列元素,中间以空格隔开
 输出规范输出该比散列表的平均查找长度,占一行  输入样例
7 6 92 77 3 15 28 45 输出样例
*/

#include<iostream>
using namespace std;
int main()
{
	int i,t,ht[11],all=0,j;
	float r;
	for(i=0;i<11;i++)
	{
		ht[i]=0;
	}
    for(i=0;i<8;i++)
	{
		cin>>t;
		ht[t%11]++;
	}
	
	for(j=1;j<8;j++)
	{ 
		for(i=0;i<11;i++)
			if(ht[i]>=j)
				all+=j;
	}
    r=all/8.00;
	cout<<r;
	
	return 0;
}

  2、如何输出源文件的标题和目前执行行的行数


#include <iostream>
using namespace std;

int main()
{    
    int line = __LINE__;  //注意:LINE前后分别是两个下划线“-”(半角状态下)
    char * file = __FILE__;
    cout<<line<<endl;
    cout<<file<<endl;
	
    return 0;
}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值