C/C++/OC自测题

简介: C++: 1.String 的具体实现 已知String类定义如下: class String {     public:     String(const char *str = NULL); // 通用构造函数     String(co...


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以内的所有完数。














相关文章
|
iOS开发 C++
[iOS]深入理解__bridge - OC对象与C++对象的引用转换
### 0x0 crash 昨天在iOS Geekers钉钉群里聊到一个问题, 下面的代码会crash: ``` void* a = new char; id ext = (__bridge id)a; ``` crash现场如图: ![screenshot](http://img4.tbcdn.cn/L1/461/1/4e9d2cc9803f4577de30ac
9371 0
|
编译器 开发工具 C语言
OC代码转C++代码的生成
OC代码转C++代码的生成
340 0
OC代码转C++代码的生成
|
C++
oc/c/c++混编老文,写的很好,mark
http://blog.csdn.net/gf771115/article/details/9664393
722 0
|
C语言 C++ iOS开发
[c/c++/OC]高质量的面试题及答案及注解
  一、  选择题 C语言: 1. 声明语句为int a[3][4]; 下列表达式中与数组元素a[2][1]等价的是( A )。 A、*(a[2]+1)      B、a[9]   C、*(a[1]+2)         D、*(*(a+2))+1  a[2] *(a+2)是等价的 C两个数反过来了,D、1放进去 2.
1068 0
|
2天前
|
存储 编译器 C语言
【c++丨STL】string类的使用
本文介绍了C++中`string`类的基本概念及其主要接口。`string`类在C++标准库中扮演着重要角色,它提供了比C语言中字符串处理函数更丰富、安全和便捷的功能。文章详细讲解了`string`类的构造函数、赋值运算符、容量管理接口、元素访问及遍历方法、字符串修改操作、字符串运算接口、常量成员和非成员函数等内容。通过实例演示了如何使用这些接口进行字符串的创建、修改、查找和比较等操作,帮助读者更好地理解和掌握`string`类的应用。
15 2
|
8天前
|
存储 编译器 C++
【c++】类和对象(下)(取地址运算符重载、深究构造函数、类型转换、static修饰成员、友元、内部类、匿名对象)
本文介绍了C++中类和对象的高级特性,包括取地址运算符重载、构造函数的初始化列表、类型转换、static修饰成员、友元、内部类及匿名对象等内容。文章详细解释了每个概念的使用方法和注意事项,帮助读者深入了解C++面向对象编程的核心机制。
35 5
|
15天前
|
存储 编译器 C++
【c++】类和对象(中)(构造函数、析构函数、拷贝构造、赋值重载)
本文深入探讨了C++类的默认成员函数,包括构造函数、析构函数、拷贝构造函数和赋值重载。构造函数用于对象的初始化,析构函数用于对象销毁时的资源清理,拷贝构造函数用于对象的拷贝,赋值重载用于已存在对象的赋值。文章详细介绍了每个函数的特点、使用方法及注意事项,并提供了代码示例。这些默认成员函数确保了资源的正确管理和对象状态的维护。
46 4