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++中的class和struct的区别
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以内的所有完数。