#import<stdio.h>
intadd(int p){
return (p++) + (++p);
}
inttest(int (*p)(int)){
return p(1);
}
intmain(){
int (*p1)(int);
p1=add;
int p2 = test(p1);
printf("%d",p2);
return 0;
}
上面输出结果正确的是? ( )----- 单选
A、1
B、2
C、3
D、4
fwrite函数的参数不包括以下哪个? ( ) ----- 单选
A、数据容器
B、单个数据字节数
C、文件指针
D、数据
以下哪项不是const类型的特点? ( )----- 单选
A、只读
B、在堆区
C、内存空间固定
使用宏定义是如何占用内存的? ( )----- 单选
A、不消耗内存
B、用几次也只占一份
C、用不用都只占一份
D、哪里用哪里占一份
宏定义的效果是什么时候执行的? ( )----- 单选
A、运行时
B、编译前
C、编译时
D、退出时
关于文件操作描述中错误的是? ( )----- 单选
A、文件操作前必须先打开文件,使用完毕必须关闭文件
B、fgets读取到NULL的时候就读取结束了
C、字符缓存就是一块内存趋于,用于存储字符,大小由程序员定义
c语言和oc之间的关系是? ( ) ----- 单选
A、c语言包含了OC
B、c语言可以兼容oc
C、oc是c语言加了一层面向对象
D、oc包含c语言
@try …. @catch …@finally 中@try主要是负责处理什么业务? ( ) ----- 单选
A、异常
B、多态
C、线程
D、内存泄露
下列特性中不属于oc特性的是? ( )----- 单选
A、封装型
B、继承型
C、多态类型
D、消息类型
类的设计规则是( ) ----- 单选
A、只有类名
B、只有属性不用方法
C、只有行为不用成员
D、需要关心类名、属性、行为
在构造方法内部需要写self = [superinit];为什么要这样写呢?( ) ----- 单选
A、这可以保证子类和父类分别开辟两块空间共享
B、super才是一个真正的指针,实质是调用了[super message]
C、之所以需要self指向,为了保证正常使用isa指针调用方法
D、self是一个虚拟地址的指针,并不实际存在。
关于对象方法说法错误的是( ) ----- 单选
A、对象方法必须以减号开头
B、对象方法只能由对象调用
C、对象方法可以由类名调用
D、对象方法实现在@interface中
在对象方法中往往可以传递很多参数,方法程序调用,下列传递错误的是( ) ----- 单选
A、对象可以当做方法参数连续传递
B、方法里面可以调用其他方法
C、对象可以作为方法的返回值
D、方法中传递函数名
下列说法错误的是? ( ) ----- 单选
A、retain消息:使计数器+1,该方法返回对象本身
B、release消息:使计数器-1, 并且会立即释放对象
C、retainCount消息:获得对象当前的引用计数器值
D、当引用计数器为0的时候, 对象就会被销毁
当你用stringWithFormat来创建一个新NSString对象的时候,系统默认会?( ) ----- 单选
A、这个新创建的字符串对象已经被retain 了
B、这个新创建的字符串对象已经被release 了
C、调用新创建的字符串的autorelease 方法
D、以上都不对。
关于autorelease, 说法正确的是?( ) ----- 单选
A、给某个对象发送一条 autorelease 消息时,就会将这个对象加到一个自动释放池中。
B、当自动释放池销毁时,会给池子里面的所有对象发送一条 release 消息。
C、autorelease实际上只是把对 release 的调用延迟了
D、调用autorelease方法时并不会改变对象的计数器,并且没有返回值。
如果一个类遵从一项协议,这个类的对象成为了声明该协议的对象的代理,那这个类必须实现 ( ) ----- 单选
A、这个协议里的所有required methods
B、这个协议里的所有required methods 和optional methods
C、这个协议里至少一个required method
D、以上都不对
在定义协议方法的时候, 如果想让一个类必须实现某个方法, 应该怎么做? ( ) ----- 单选
A、@optional
B、@class
C、@private
D、@required
关于block 的说法错误的是?( ) ----- 单选
A、block 表示的是一个代码块
B、block 的名称写在小括号中的 ^ 后面
C、block 定义完成后会立即执行
D、如果 block 没有参数, 等号右边的小括号可以省略
下列block代码块书写错误的是? ( ) ----- 多选
^{
NSLog(@”无参,无返回值block1”);
};
^(inta){
NSLog(@”无参,有返回值block2”);
returna*a;
}
^(int a, int b){
NSLog(@”有参,有返回值block3”);
return a+ b;
};
^(){
NSLog(@”无参,无返回值block4”);
};
有以下代码段, 说法错误的是?( ) ----- 单选
__blockint m = 11;
NSLog(@"1:m= %p",&m);
void(^myBlock)()=^{
NSLog(@"2:m = %p",&m);
//可以访问m的值
int m = 22;
NSLog(@"3:in block m = %d",m);
};
myBlock();
NSLog(@"4:maddr = %p",&m);
}
A、在1位置访问的是栈区的地址
B、在2位置访问的是堆区的地址
C、在4位置访问的是栈区的地址
D、在3位置访问的是栈区的地址
关于NSMutableString说法正确的是?( ) ----- 单选
A、[[NSMutableString alloc]init];使用动态方法创建后不能进行拼接。
B、NSMutableString是不可变字符串。
C、[NSMutableString string]属于对象方法创建字符串。
D、NSMutableString的父类是NSString
当一个对象加入到集合中,那么该对象的引用计数会? ( ) ----- 单选
A、加1
B、减1
C、不变
D、无穷大
剪切一个文件使用哪个方法? ( ) ----- 单选
A、(BOOL)copyItemAtPath:(NSString *)srcPathtoPath:(NSString *)dstPath error:(NSError **)error;
B、- (BOOL)removeItemAtPath:(NSString *)patherror:(NSError **)error;
C、- (BOOL)moveItemAtPath:(NSString *)srcPathtoPath:(NSString *)dstPath error:(NSError **)error;
D、- (BOOL)createDirectoryAtPath:(NSString *)pathwithIntermediateDirectories:(BOOL) createIntermediates attributes:(NSDictionary*)attributes error:(NSError **)error;
获取沙盒根目录和Document目录的方法分别是?( ) ----- 单选
A、NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSHomeDirectory();
B、NSHomeDirectory();
NSSearchPathForDirectoriesInDomains(NSCoreServiceDirectory, NSUserDomainMask, YES);
C、NSHomeDirectory();
NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
D、NSHomeDirectory();
NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSSystemDomainMask, YES);
在以下关于C语言的注释的叙述中,错误的是? ( ) ----- 单选
A、注释可用"/*"、"*/"形式表示,也可用"//"形式表示
B、编译器在编译一个程序时,将跳过注释,不对其进行处理
C、编译器在编译一个程序时,可发现注释中的单词拼写错误
D、程序中注释的多少不会影响所生成的可执行文件的长度
关于多行注释理解正去的是? ( ) ----- 单选
A、其中也可以包含多行注释
B、不能注释单行
C、可以包含单行注释
D、最多只能注释100行
Xcode在4.0版本之后使用的是? ( ) ----- 单选
A、GCC编译器
B、Clang
C、Mde
D、Pande
对静态数据理解正确的是? ( ) ----- 单选
A、静态数据是储存在CPU中的
B、静态数据在断电后就会丢失
C、静态数据是保存在硬盘中的
D、静态数据在硬件破坏后也存在
下列哪个符号是逻辑运算符号?( ) ----- 单选
A、!
B、^
C、$
D、+
整型在64位编译器中占? ( ) ----- 单选
A、14个字节
B、2个字节
C、4个字节
D、1个字节
十六进制数0x1DA2转换成二进制数是多少( )
A、0b0b01011011011010
B、0b0001110100101010
C、0b0001110110100010
D、0b0001010110100010
若有定义:int bb[8];。则以下表达式中不能代表数组元bb[1]的地址的是? ( ) ----- 单选
A、&bb[0]+1
B、&bb[1]
C、&bb[0]++
D、bb+1
以下对一维数组m进行错误初始化的是? ( ) ----- 单选
A、int m[10]=(0,0,0,0) ;
B、int m[10]={ };
C、int m[ ]={0};
D、int m[10]={10*2};
以下程序段给数组所有的元素输入数据,请选择正确答案填入? ( ) ----- 单选
#include<stdio.h>
main()
{
inta[10],i=0;
while(i<10) scanf("%d",________ );
┇
}
A、a+(i++)
B、&a[i+1]
C、a+i
D、&a[++i]
关于全局变量的说法中错误的是? ( ) ----- 单选
A、在所有的函数外部定义的变量,叫全局变量
B、所有的函数都能合法地访问
C、默认的初始值是0
D、如果函数内有同名的变量,就会使用函数内部的变量
下面说法错误的是? ( ) ----- 单选
A、结构体使用在需要把相关联的不同数据类型封装起来一起使用
B、数组只能存放同一种类型的数据
C、同一个作用域内可以定义重复的结构体类型和结构变量
D、可同时在函数内外定义同一个类型,使用同样遵循就近原则
以下对二维数组进行正确初始化的是? ( ) ----- 单选
A、int a[2][]={{1,2},{3,4}}
B、int a[][3]={1,2,3,4,5,6};
C、int a[2][]={1,2,3,4,5,6};
D、int a[2][3]={{1,2},{3,4},{5,6};
关于结构体说法错误的是? ( ) ----- 单选
A、结构体变量分配内存空间遵循对齐原则
B、结构体变量内存分配的字节数大小等于内部元素所占字节数原始大小之和
C、结构体变量内存分配的字节数大小大于内部元素在当前编译环境原始所占字节数大小之和
D、结构体变量内存分配的字节数一定是最大字节数元素所占字节数的整数
#import <stdio.h>
int add(int p){
return (p++) + (++p);
}
int test(int (*p)(int)){
return p(1);
}
int main(){
int (*p1)(int);
p1=add;
int p2 = test(p1);
printf("%d",p2);
return 0;
}
上面输出结果正确的是? ( ) ----- 单选
A、1
B、2
C、3
D、4
p++ p=1
此时p=2 ++p p=3
以下程序段给数组所有的元素输入数据,请选择正确答案填入? ( ) ----- 单选
#include<stdio.h>
main()
{
inta[10],i=0;
while(i<10) scanf("%d",________ );
┇
}
A、a+(i++)
B、&a[i+1]
C、a+i
D、&a[++i]
下面代码的输出结果是? ( ) ----- 单选
int a;
intgetResult(int a){
return a++;
}
int main(){
a = getResult(a);
printf(“a=%d”,a);
{
int a = 10;
a = getResult(a);
}
printf(“a=%d”,a);
}
A、0,10
B、1,10
C、0,0
D、0,11
以下程序段给数组所有的元素输入数据,请选择正确答案填入? ( ) ----- 单选
#include<stdio.h>
main()
{
inta[3],i=0;
while(i<3){
scanf("%d",___);
printf("%d\n",___);
i++;
}
}
A、&a[i],a[i]
B、&a[i+1],&a[i]
C、a+i ,a
D、&a[++i],a[i]
下面说法错误的是? ( ) ----- 单选
A、结构体不能嵌套定义
B、结构体可以定义在函数内部,也可以定义在函数的内部
C、同一个作用域内不可重复定义结构体
D、函数内外定义同名的结构体遵循就近原则
在OC当中的文档注释的格式是? ( ) ----- 单选
A、//
B、///
C、/**/
D、/** */
@try …. @catch …@finally 中@try主要是负责处理什么业务? ( ) ----- 单选
A、异常
B、多态
C、线程
D、内存泄露
下列特性中不属于oc特性的是? ( ) ----- 单选
A、封装型
B、继承型
C、多态类型
D、消息类型
Objective-C语言中方括号“[]”的作用,下列说法错误的是( ) ----- 单选
A、用于通知某个对象该做什么。
B、方括号内第一项是对象,其余部分是你需要对象执行的操作。
C、在OC中通知对象执行某种操作,称为发消息,也叫调用方法。
D、方括号可以为空。
匿名对象作为方法参数优点( ) ----- 单选
A、可以简化代码
B、可以节省大量空间
C、可以使用无限次
D、不会被销毁
以下有关构造方法说法错误的是( ) ----- 单选
A、构造方法是特殊的类方法
B、它是用来初始化对象的
C、初始化后内部成员变量都有默认初始值
一定要先调用父类的构造方法
在方法调用过程中出现unrecognized selector sent to instance 0x100103410' 的意思是() ----- 单选
A、函数找不到
B、成员变量名出错,找不到
C、类名找不到
D、方法找不到
描述继承使用说法正确的?( ) ----- 单选
A、子类继承父类之后可以使用父类所有的变量
B、子类可以调用父类公开的方法
C、子类可以访问父类私有变量
D、子类可以调用父类私有类方法
关于派生解释正确的是?( ) ----- 单选
A、派生是父类向下产生子类的过程
B、派生是oc特有方法
C、派生是c语言中继承过来的
D、派生的对象可以调用父类任意方法
文件操作:将文件A中的内容拷贝到B中正确的说法是? ( ) ----- 单选
A、A是输入, B是输出
B、A是输出,B是输出
C、A是输出, B是输入
D、A是输入,B是输入
关于NSMutableString说法正确的是? ( ) ----- 单选
A、[[NSMutableString alloc]init];使用动态方法创建后不能进行拼接。
B、NSMutableString是不可变字符串。
C、[NSMutableString string]属于对象方法创建字符串。
D、NSMutableString的父类是NSString
-(NSComparisonResult)compare:(NSString *)string; 返回值可能错误是? ( ) ----- 单选
A、NSOrderedSame
B、NSOrderedAscending
C、NSOrdered
D、NSOrderedDescending
下列不属于NSDictionary创建的方法的是? ( ) ----- 单选
A、+ (instancetype)dictionary;
B、+ (instancetype)dictionaryWithObject:(id)objectforKey:(id <NSCopying>)key
C、+ (instancetype)dictionaryWithObjectsAndKeys
D、- (id)objectForKey:(id)aKey
通过什么方式可以辅助生成 block 代码? ( ) ----- 单选
A、__block
B、block()
C、inlineBlock
D、typedef block
下列对Category描述错误的是? ( ) ----- 单选
A、Category是OC中的分类
B、Category别名也可称为类别和类目
C、Category可以用来扩充属性和方法
D、分类扩充的方法不改变原类
block不可以作为下面的那个场景使用? ( ) ----- 单选
A、函数参数
B、函数返回值
C、变量
D、常量
关于 id 和 instancetype 的区别, 哪一项是 instancetype 的优点? ( ) ----- 单选
A、instancetype只能作为函数或者方法的返回值
B、id能作为方法或者函数的返回值、参数类型,也能用来定义变量
C、instancetype 可以用来定义变量
D、能根据调用方法的类或对象指定返回值的具体类型
下列block代码块书写错误的是? ( ) ----- 多选
^{
NSLog(@”无参,无返回值block1”);
};
^(int a){
NSLog(@”无参,有返回值block2”);
return a*a;
}
^(int a, int b){
NSLog(@”有参,有返回值block3”);
return a + b;
};
^(){
NSLog(@”无参,无返回值block4”);
};
NSDate的作用?( ) ----- 单选
A、分配内存
B、定义时间
C、归档
D、传递参数
下面哪些不是copy的特点? ( ) ----- 单选
A、修改源文件的内容,不会影响副本文件
B、修改副本文件的内容,会影响源文件
C、OC中的copy,就是指的对象的拷贝
D、修改源对象的属性和行为,不会影响副本对象
当一个对象加入到集合中,那么该对象的引用计数会? ( ) ----- 单选
A、加1
B、减1
C、不变
D、无穷大
NSRage 初始化错误的方式是? ( ) ----- 单选
A、NSRange r4 = NSMakeRange(3, 3);
B、NSRange range = (NSRange *){5,3};
C、NSRange r3 = {.location = 3,.length = 5};
D、NSRange range;
range.location = 3;range.length =2
哪个不是NSNumber的方法?( ) ----- 单选
A、+ (NSNumber *)numberWithInt:(int)value;
B、+ (NSNumber *)numberWithDouble:(double)value;
C、+ (NSNumber *)numberWithBool:(BOOL)value;
D、+ (NSNumber *)numberWithStruct:(BOOL)struct;
剪切一个文件使用哪个方法? ( ) ----- 单选
A、(BOOL)copyItemAtPath:(NSString *)srcPathtoPath:(NSString *)dstPath error:(NSError **)error;
B、- (BOOL)removeItemAtPath:(NSString *)patherror:(NSError **)error;
C、- (BOOL)moveItemAtPath:(NSString *)srcPathtoPath:(NSString *)dstPath error:(NSError **)error;
D、- (BOOL)createDirectoryAtPath:(NSString *)pathwithIntermediateDirectories:(BOOL) createIntermediates attributes:(NSDictionary*)attributes error:(NSError **)error;
关于(BOOL)copyItemAtPath:(NSString*)srcPath toPath:(NSString *)dstPath error:(NSError **)error;说法正确的是? ( ) ----- 单选
A、拷贝,如果目标目录已经存在同名文件,则无法拷贝
B、拷贝,如果目标目录已经存在同名文件,也可拷贝
C、拷贝,如果目标目录不存在同名文件,则无法拷贝
D、删除,如果目标目录已经存在同名文件,则删除
关于dealloc方法说法正确的是? ( ) ----- 单选
A、一般在ARC环境下重写
B、当对象被释放的时候会系统会自动调用
C、可以手动调用[self dealloc]
D、在MRC环境下可以不用写[super dealloc
关于对象指针说法错误的是? ( ) ----- 单选
A、默认情况下, 任何指针都是强指针
B、要让一个指针可以成为弱指针, 可以使用 __weak 来修饰
C、给已经被释放的对象发送消息会报野指针错误
D、由于空指针没有指向任何东西, 所以给空指针发送消息会报错
下列关于内存管理原则说法错误的是? ( ) ----- 单选
A、只要你想使用这个对象,那么就应该让这个对象的引用计数器+1
B、如果你通过alloc,new,copy来创建了一个对象,那么你就必须调用release或者 autorelease方法
C、不是你创建的对象, 你也应该去负责对它进行 release
D、谁 retain 谁 release
下列对autoreleasepool描述错误的是?( ) ----- 单选
A、autoreleasepool是一个特殊的栈区内存空间
B、放入autoreleasepool中的对象先进后出
C、使用release会自动将对象加入自动释放池
D、当自动释放池销毁的时候会对里面的对象做一次或多次release操作
关于autorelease, 说法正确的是? ( ) ----- 单选
A、给某个对象发送一条 autorelease 消息时,就会将这个对象加到一个自动释放池中。
B、当自动释放池销毁时,会给池子里面的所有对象发送一条 release 消息。
C、autorelease实际上只是把对 release 的调用延迟了
D、调用autorelease方法时并不会改变对象的计数器,并且没有返回值。
计算机中内存有5个区,静态区,代码区,堆区,常量区,栈区,下面说法错误的是? ( ) ----- 单选
A、1,2,’itcast’存放在常量区
B、通过指针定义的字符串存放在常量区
C、所有的常量都是存储在常量区
D、当变量被const修饰的时候,存储在常量区
若有定义:int bb[8];。则以下表达式中不能代表数组元bb[1]的地址的是? ( ) ----- 单选
A、&bb[0]+1
B、&bb[1]
C、&bb[0]++
D、bb+1
关于全局变量的说法中错误的是? ( ) ----- 单选
A、在所有的函数外部定义的变量,叫全局变量
B、所有的函数都能合法地访问
C、默认的初始值是0
D、如果函数内有同名的变量,就会使用函数内部的变量
下面说法错误的是? ( ) ----- 单选
A、全局变量的定义位置在所有的函数之外,全局变量归应用程序所有
B、函数内部有与全局变量同名的使用函数内部的
C、全局变量和局部变量都存储在栈区
D、全局变量的生命周期随着程序,而局部变量的生命周期随着所定义在的函数
下列哪个协议是基协议? ( ) ----- 单选
A、<NSCoding>
B、<NSCopying>
C、<NSObject>
D、<NSMutableCopying>
关于id 和 instancetype 的区别, 哪一项是 instancetype 的优点? ( ) ----- 单选
A、instancetype只能作为函数或者方法的返回值
B、id能作为方法或者函数的返回值、参数类型,也能用来定义变量
C、instancetype 可以用来定义变量
D、能根据调用方法的类或对象指定返回值的具体类型
关于block的说法错误的是? ( ) ----- 单选
A、block 表示的是一个代码块
B、block 的名称写在小括号中的 ^ 后面
C、block 定义完成后会立即执行
D、如果 block 没有参数, 等号右边的小括号可以省略
有以下代码段, 说法错误的是? ( ) ----- 单选
__block int m = 11;
NSLog(@"1:m = %p",&m);
void (^myBlock)()=^{
NSLog(@"2:m =%p",&m);
//可以访问m的值
int m = 22;
NSLog(@"3:inblock m = %d",m);
};
myBlock();
NSLog(@"4:m addr = %p",&m);
}
A、在1位置访问的是栈区的地址
B、在2位置访问的是堆区的地址
C、在4位置访问的是栈区的地址
D、在3位置访问的是栈区的地址
关于类扩展, 错误的是? ( ) ----- 单选
A、类扩展是写在 .m 文件中的
B、可以在类扩展中为某个类扩充一些方法
C、"类扩展"对比"分类", 就少了一个分类名称, 因此也有人称它为"匿名分类"
D、外界可以访问类扩展中声明的属性和方法