C/C++/OC自测题

来源:互联网 发布:淘宝职业买手 编辑:程序博客网 时间:2024/05/23 02:06


C++:

1.String 的具体实现

已知String类定义如下:

class String

{

    public:

    String(const char *str = NULL); // 通用构造函数

    String(const String &another); // 拷贝构造函数

    ~ String(); // 析构函数

    String & operator =(const String &rhs); // 赋值函数

    private:

    char *m_data; // 用于保存字符串

};

尝试写出类的成员函数实现。


2.C++中的classstruct的区别

3.既然C里面已经有了malloc、free,为什么还要new、delete

4.请写出下面程序的输出结果

#include <iostream>

using namespace std;


class A{

public:

    A(){cout<<"A"<<endl;func();}

    virtual void func(){cout<<"funcA"<<endl;}

    virtual ~A(){cout<<"~A"<<endl;};

};

class B:public A{

public:

    B(){cout<<"B"<<endl;func();}

    virtual void func(){cout<<"funcB"<<endl;}

    virtual ~B(){cout<<"~B"<<endl;};

};


int main(int argc,const char * argv[])

{

    A *a = new B;

    delete a;

    return 0;

}



IOS:

选择题

1.Person *person = [[Person alloc]initWithObjects:@"11", nil]; 

[person release];

NSLog(@"%d", person.retainCount);会输出多少?

A.0      B.-1      C.1    D.错误,直接崩溃


2.NSString *aa = @"Simple Audio Engine"; 

NSLog(@"%@",[aa substringToIndex:8]);会输出什么?

A.Simple Au      B.A      C.Simple A    D.u


3.变量命名正确的是:

A.2A      B._AA      C..AA    D.-AA


4.int a = 0; -+a--; NSLog(@"%d",a);会输出什么?

A.0      B.-1      C.1    D.不确定


5.NSString *str = @"a123";NSLog(@"%d",[str intValue]);会输出什么?

A.0      B.123      C.123a    D.不确定


6.已知int a = 6;则执行 a+=a-=a*a;语句后,a的值为

A.36      B.0      C.-24    D.-60


7.NSString *str = @"a123"; NSLog(@"%@",(str == @"123")?@"yes":@"no");会输出什么?

A. yes      B. no      C.不确定   D.错误


8.@[@"a",@"b"];该类型是

A.字符串对象      B.字典对象      C.数组对象    D.集合对象


9.多态的定义是:

A.来自不同对象可以接受同一消息的能力      

B.来自不同类的对象可以接受同一消息的能力      

C.来自不同的类可以接受同一消息的能力    

D.以上都不是


10.下列条件语句中,功能与其他语句不同的是

A.if(a) printf("%d\n",x); else printf("%d\n",y);

B.if(a=0) printf("%d\n",y); else printf("%d\n",x);

C.if (a!=0) printf("%d\n",x); else printf("%d\n",y);

D.if(a==0) printf("%d\n",x); else printf("%d\n",y);


11.已知 char s[20],*p=s,则在下列语句中,错误的是

A.p=s+5

B.s=p+s

C.s[2]=p[4]

D.*p=s[0]


12.若w=1,X = 2,y= 3,z=4,则条件表达式w<x?w:y<z?y:z的值是:  

    A.表达式错误      B.-1      C.0       D.1

13.以下for循环语句 for(;;) printf("**");

A.判断循环结束的条件不合法

B.是无限循环

C.一次也不执行

D.只执行一次


14.以下关于子类和父类的叙述中,正确的是

A.代码中使用父类对象的地方,都可以使用子类对象进行替换

B.代码中使用子类对象的地方,都可以使用父类对象进行替换

C.父类定义的对象与子类定义的对象在属性和方法上一定相同

D.父类定义的对象与子类定义的对象在属性和方法上一定不同


15.下面四个选项中,均是合法浮点数的选项是

A.+1e+1      B.-.60      C.123e       D.-e3 

   5e-9.4        12e-4        1.2e-.4       .8e-4

   03e2          -8e5         +2e-1         5.e-0


简答题

1.NSString *a = @"abc";   a能添加到定义好的NSArray里面吗


2.浅复制和深复制的区别?


3.简要说说继承与分类的区别


4.简要说说正式协议与非正式协议的区别


5.简要说说可变对象与不可变对象的不同之处


6.简要说说对象的生命周期


7.对于属性@property里的参数列表什么时候用retain, 什么时候用copy


8.阐述一下 person.money=100; 和 int num = person.money 的区别


9.retain,assign,copy,nonatomic,atomic, readwrite,readonly属性的作用


10.self/super 的区别


11.id 声明的对象有什么特性?


12.分析一下NSMutableArray *arr = [NSMutableArray arrayWithObjects:@"123", nil]; 和  NSMutableArray *arr = [[NSMutableArray alloc]initWithObjects:@"123", nil];的区别


13.用宏定义MIN输入两个参数输出最小值


14.请描述自动释放池的工作原理


15.为什么重写父类方法都需要去重新调用父类的方法,如self = [super init];





1.用分类对NSMutableArray扩展实现对数组的大小排序。


2.对字符串对象 @"Hello World!"改为@"Hello Man!"


3.定义 Man类 和 Women 类   ,实现 women对象的run方法委托给man对象去做


4.一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。



5.一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程找出1000以内的所有完数。














原创粉丝点击