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
9396 0
|
编译器 开发工具 C语言
OC代码转C++代码的生成
OC代码转C++代码的生成
362 0
OC代码转C++代码的生成
|
C++
oc/c/c++混编老文,写的很好,mark
http://blog.csdn.net/gf771115/article/details/9664393
728 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.
1077 0
|
13天前
|
C++ 芯片
【C++面向对象——类与对象】Computer类(头歌实践教学平台习题)【合集】
声明一个简单的Computer类,含有数据成员芯片(cpu)、内存(ram)、光驱(cdrom)等等,以及两个公有成员函数run、stop。只能在类的内部访问。这是一种数据隐藏的机制,用于保护类的数据不被外部随意修改。根据提示,在右侧编辑器补充代码,平台会对你编写的代码进行测试。成员可以在派生类(继承该类的子类)中访问。成员,在类的外部不能直接访问。可以在类的外部直接访问。为了完成本关任务,你需要掌握。
55 19
|
13天前
|
存储 编译器 数据安全/隐私保护
【C++面向对象——类与对象】CPU类(头歌实践教学平台习题)【合集】
声明一个CPU类,包含等级(rank)、频率(frequency)、电压(voltage)等属性,以及两个公有成员函数run、stop。根据提示,在右侧编辑器补充代码,平台会对你编写的代码进行测试。​ 相关知识 类的声明和使用。 类的声明和对象的声明。 构造函数和析构函数的执行。 一、类的声明和使用 1.类的声明基础 在C++中,类是创建对象的蓝图。类的声明定义了类的成员,包括数据成员(变量)和成员函数(方法)。一个简单的类声明示例如下: classMyClass{ public: int
39 13
|
13天前
|
编译器 数据安全/隐私保护 C++
【C++面向对象——继承与派生】派生类的应用(头歌实践教学平台习题)【合集】
本实验旨在学习类的继承关系、不同继承方式下的访问控制及利用虚基类解决二义性问题。主要内容包括: 1. **类的继承关系基础概念**:介绍继承的定义及声明派生类的语法。 2. **不同继承方式下对基类成员的访问控制**:详细说明`public`、`private`和`protected`继承方式对基类成员的访问权限影响。 3. **利用虚基类解决二义性问题**:解释多继承中可能出现的二义性及其解决方案——虚基类。 实验任务要求从`people`类派生出`student`、`teacher`、`graduate`和`TA`类,添加特定属性并测试这些类的功能。最终通过创建教师和助教实例,验证代码
37 5