Perfect World

来源:互联网 发布:资源三号卫星数据下载 编辑:程序博客网 时间:2024/06/15 20:05
1、下面程序的正确输出结果为()
class test{public:void print(){cout<<"test"<<endl;}};int main(void){test *t = new test();t->print();t = NULL;t->print();return 0;}

A、编译不通过           B、运行时必然出错退出          C、运行时可能出错退出
D、test                    E、test  test                           F、test  随机信息  
print是一个类级别的东西,也就是说它和类的实例(或者类的对象)没有任何关系,这也就是说“并未使用this指针”,在这种情况下,print仅与test的类型有关,而不管t是什么东西,只要是类类型的指针就可以调用这个函数。
对象级别的东西,比如类中的某个非静态成员变量,这种东西和类的实例有关,因此它使用this指针。 http://topic.csdn.net/u/20120428/22/06ecf02b-45a3-41e5-8eee-2e0be73a31db.html

2、在小端字节序的机器上执行下列代码的输出为多少?

union UData{unsigned char btVals[4];unsigned int uiVal;};UData d;int main(void){d.uiVal = 0x01020408;unsigned int btSum = (d.btVals[0]<<5)+(d.btVals[1]<<3)+(d.btVals[2]<<1)+(d.btVals[3]<<0);cout<<btSum<<endl;return 0;}

3、下列代码的输出为()

class CClassA{public:virtual void Print(){printf("A ");}};void PrintFunc(CClassA a){a.Print();}class CClassB:public CClassA{public:virtual void Print(){printf("B ");}};void PrintFunc(CClassA *pa){pa->Print();}int main(void){CClassB b;PrintFunc(b);PrintFunc(&b);return 0;}

A、A A           B、A B    C、B  A
D、B B            E、程序无法通过编译     F、运行后程序异常终止

4、以下关于const 的用法错误的是()

A、const int a = 10;B、int func(void) constC、const int func(void)D、class A{public:void SetStr(const string& str){_str = str;}private:string _str;};E、class A{public:const string& void GetStr(void)const{return _str;}private:string _str;};

5、读下题

class A{public:A();virtual ~A();int a;};class B : public A{public:int b;};A *a = new B;B* b1 = dynamic_cast<B *>(a);B* b2 = static_cast<B *>(a);B* b3 = reinterpret_cast<B *>(a);

假如b1的值为 0X12345678,则b2、b3可能的值为()

A、0X12345678    0X12345674

B、0X12345674    0X12345674

C、0X12345678    0X12345678

D、0X12345674    0X12345678