达内ios课程第一次月考题.docx
《达内ios课程第一次月考题.docx》由会员分享,可在线阅读,更多相关《达内ios课程第一次月考题.docx(32页珍藏版)》请在冰豆网上搜索。
![达内ios课程第一次月考题.docx](https://file1.bdocx.com/fileroot1/2023-5/29/a7c6f6ef-eb7b-4c45-ad5e-4bd0f444b291/a7c6f6ef-eb7b-4c45-ad5e-4bd0f444b2911.gif)
达内ios课程第一次月考题
∙1.
(单选)1、以下表示字符串的是()
o
A.
charst=”dfgsja”
o
B.
charst[5]=”abcd”
o
C.
charst[5]=”abcdef”
o
D.
charst[5]={‘a’,’b’,’c’,’d’.’e’}
正确答案:
B
∙2.
(单选)下列属于开关分支语句的结构是()
o
A.
if(条件表达式){语句}
o
B.
for(表达式1;表达式2;表达式3){语句}
o
C.
if(条件表达式){语句1}else{语句2}
o
D.
switch(表达式){case1:
语句1case2:
语句2……casen:
语句ndefault:
语句n+1}
正确答案:
D
∙3.
(单选)下列关于C语言中变量的定义和初始化,正确的是:
()。
o
A.
bytex=10;
o
B.
inty=0187;
o
C.
varz=1234;
o
D.
longinti=0xABCDEFL;
正确答案:
D
∙4.
(单选)下列关于C语言的结构叙述正确的是()
o
A.
C语言只有一个函数组成
o
B.
C语言的执行从第一个函数开始,到最后一个函数结束
o
C.
C语言是由一个或多个函数组成,其中有且只有一个主函数(main()函数)
o
D.
C语言中可以有多个主函数(即main())组成
正确答案:
C
∙5.
(单选)有以下代码NSDictionary*dic=[[NSDictionaryalloc]initWithObjectsAndKeys:
@"a",@"A",@"b",@"B",nil];则该字典有几组键值对()
o
A.
1
o
B.
2
o
C.
3
o
D.
4
正确答案:
B
∙6.
(单选)Objective-C语言中协议是()
o
A.
所有类的基类
o
B.
两个类之间的通讯方式
o
C.
一组没有实现的方法列表
o
D.
将一个类中某个方法的实现放到另一个类里
正确答案:
C
∙7.
(单选)假设person是TRPerson类型的对象,下面用来判断person对象是否对show消息响应的正确做法是:
()
o
A.
if([personrespondsToSelector:
@selector(show)])[personshow];
o
B.
if([personrespondsToSelector:
show])[personshow];
o
C.
if([personisMemberOfClass:
[TRPersonclass]])[personshow];
o
D.
if([personisKindOfClass:
[TRPersonclass]])[personshow];
正确答案:
A
∙8.
(单选)return10,20;以上返回值语句,返回的值为()
o
A.
10,20
o
B.
20,10
o
C.
10
o
D.
20
正确答案:
D
∙9.
(单选)printf(“%d”,strcmp(“abc”,”ABC”));则输出结果是()
o
A.
10
o
B.
22
o
C.
32
o
D.
0
正确答案:
C
∙10.
(单选)下列代码的输出结果正确的是:
()inta[10]={0};printf(“%d\n”,*(a+9));
o
A.
9
o
B.
10
o
C.
0
o
D.
垃圾数据
正确答案:
C
∙11.
(单选)有以下代码:
NSMutableDictionary*dic=[NSMutableDictionarydictionaryWithObjectsAndKeys:
@"a",@"A",@"b",@"B",nil];for(NSString*strindic){NSLog(@"%@",str);}则输出结果是()
o
A.
aAbB
o
B.
ab
o
C.
AB
o
D.
程序有误
正确答案:
C
∙12.
(单选)假设当前时间是20XX年10月8日15:
30分整,以下代码的输出结果是()NSDate*now=[NSDatedate];NSDateFormatter*formatter=[[NSDateFormatteralloc]init];[formattersetDateFormat:
@"YYYY-MM-ddHH:
mm:
ss”];NSString*currentTime=[formatterstringFromDate:
now];NSLog(@”%@”,currentTime);
o
A.
2013-10-815:
30:
00
o
B.
2013-10-083:
30:
00
o
C.
2013-10-0807:
30:
00
o
D.
2013-10-0815:
30:
00
正确答案:
D
∙13.
(单选)有以下程序ida;a=[[NSStringalloc]init];则a的类型为()
o
A.
id
o
B.
NSString
o
C.
两者都是
o
D.
两者都不是
正确答案:
A
∙14.
(单选)下列使用for循环的代码,存在语法错误的是:
()
o
A.
for(inti=0;i<10;i++){}
o
B.
for(inti=10;i>0;i-=2){}
o
C.
for(;;);
o
D.
for(){printf(“Hello\n”;)
正确答案:
D
∙15.
(单选)有以下程序:
{inta[5]={1,2,3,4,5};}则a[5]的值为()
o
A.
2
o
B.
5
o
C.
4
o
D.
引用错误
正确答案:
D
∙16.
(单选)下列表达式的结果做为逻辑值时,其值为逻辑真的是:
()。
o
A.
‘A’–0x41;
o
B.
(‘a’>0)-1;
o
C.
4>3||x>y;
o
D.
3>4&&x>y;
正确答案:
C
∙17.
(单选)有以下代码:
#include"stdio.h"main(){inti=10,s=0;while(i>=0){s=s+(i--);}printf(“%d”,s);}以上程序输出结果是()
o
A.
10
o
B.
50
o
C.
55
o
D.
死循环
正确答案:
C
∙18.
(单选)下列说法正确的是()
o
A.
延展可以在没有源代码的情况下,在原有类里面添加变量,方法和属性
o
B.
延展是匿名的类目
o
C.
延展包含了方法的实现代码
o
D.
延展可以声明变量,属性和方法
正确答案:
D
∙19.
(单选)id类型在Objective-C开发中应用广泛,假设有以下代码:
idref=@”Tarena”;longlen=[reflength];NSLog(@”len=%ld”,len);下列关于此段代码说法正确的是()
o
A.
代码能通过编译但有警告产生
o
B.
代码虽有编译警告但能正常运行
o
C.
代码虽没有编译警告但运行时异常
o
D.
代码编译错误
正确答案:
D
∙20.
(单选)如果要统计一行字符的个数,下列哪个循环效率高()
o
A.
for
o
B.
while
o
C.
dowhile
o
D.
goto
正确答案:
B
∙21.
(单选)下列代码的输出结果是()NSString*str1=@"tarena";NSString*str2=[[NSStringalloc]initWithString:
@"Tarena"];if([str1isEqualToString:
str2]){NSLog(@"yes");}
o
A.
yes
o
B.
没有输出
o
C.
语法错误
o
D.
YES
正确答案:
B
∙22.
(单选)以下代码输出的结果是()#include"stdio.h"voidmain(){inta;a=1;//a=a+1;/*a=a+1;*/printf("%d",a);}
o
A.
1
o
B.
2
o
C.
3
o
D.
4
正确答案:
A
∙23.
(单选)有以下程序:
main(){intm=4,k=4;if(m++>5)m=m+2;elsek=k+2;printf(“%d,%d”,m,k);}则程序执行后的结果是()
o
A.
6,4
o
B.
7,4
o
C.
5,6
o
D.
4,6
正确答案:
C
∙24.
(单选)以下代码的执行结果,正确的是()NSArray*array=@[@"aaa",@"bbb",@"ccc",@"ddd"];__blockNSMutableArray*result=[NSMutableArrayarray];void(^theBlock)(idobj,NSUIntegeridx,BOOL*stop)=^(idobj,NSUIntegeridx,BOOL*stop){[resultaddObject:
obj];};[arrayenumerateObjectsUsingBlock:
theBlock];for(NSString*strinresult){printf("%s\t",[strcStringUsingEncoding:
NSUTF8StringEncoding]);}
o
A.
无输出
o
B.
输出:
aaabbbcccddd
o
C.
输出:
abcd
o
D.
输出:
dddcccbbbaaa
正确答案:
B
∙25.
(单选)下面是一段处理字符串的C语言代码,其输出结果正确的是:
()charstr[]={‘h’,‘e’,‘l’,‘l’,‘o’,0,‘w’,‘o’,‘r’,‘l’,‘d’,0};printf(“%s”,str);charstr2[10]={0};strcpy(str2,str+6);printf(“%s\n”,str2);
o
A.
helloworld
o
B.
helloworldhello
o
C.
helloworldworld
o
D.
hellohelloworld
正确答案:
A
∙26.
(单选)下列说法正确的是:
()
o
A.
所有从NSObject继承来的类,都自动支持复制功能
o
B.
mutableCopy方法只有可变类才能支持
o
C.
要支持复制功能,必须实现协议里的方法
o
D.
以上说法都不对
正确答案:
C
∙27.
(单选)以下代码:
NSMutableString*str1=[[NSMutableStringalloc]init];NSIntegernum1=[str1retainCount];NSMutableString*str2=[str1retain];NSIntegernum2=[str1retainCount];NSMutableString*str3=[str1copy];NSIntegernum3=[str1retainCount];NSLog(@”%ld,%ld,%ld”,num1,num2,num3);输出结果应该是()
o
A.
1,2,3
o
B.
1,2,2
o
C.
1,1,1
o
D.
0,1,2
正确答案:
B
∙28.
(单选)以下说法正确的是()
o
A.
深拷贝只复制类成员是类的变量。
o
B.
浅拷贝只复制类成员是指针的变量
o
C.
深拷贝只复制类成员的指针
o
D.
深拷贝不复制基本数据类型
正确答案:
B
∙29.
(单选)下列关于布尔值的C语言代码,输出结果正确的是:
()boolboo1=“abc”>“abd”;boolboo2=0.12;boolboo3=0;boolboo4=true;printf(“%d,%d,%d,%d\n”,boo1,boo2,boo3,boo4);
o
A.
0,1,0,1
o
B.
1,1,0,1
o
C.
0,0,0,1
o
D.
1,1,1,1
正确答案:
A
∙30.
(单选)若执行以下程序,则输出结果是main(){inta=7,b=2,s=0;s=a;if(a
o
A.
7
o
B.
0
o
C.
2
o
D.
3
正确答案:
A
∙31.
(多选)下列哪些方法是NSArray类有的:
()
o
A.
-(BOOL)containsObject:
(id)anObject;
o
B.
-(NSUInteger)indexOfObject:
(id)anObject;
o
C.
-(NSArray*)sortedArrayUsingSelector:
(SEL)comparator;
o
D.
-(void)addObject:
(id)anObject;
正确答案:
ABC
∙32.
(多选)在Objective-C语言中,类中定义方法和定义全局函数是有很大区别的,下列哪些方法的声明正确的是:
()
o
A.
-(void)setName:
(NSString*)name;
o
B.
-intsetName(int,name);
o
C.
-(void)setName:
(NSString)name;
o
D.
+(instancetype)name;
正确答案:
AD
∙33.
(多选)下列关于NSArray和NSSet的特点,说法正确的是:
()
o
A.
NSArray有下标,可以用下标访问其成员,但NSSet没有下标。
o
B.
NSArray中的元素是有序连续存放的,而NSSet中的元素是无序的,程序中无法准确判断第一次放进去的对象是哪个。
o
C.
NSArray和NSSet中只能放对象的引用,不能放其他基本类型如int的数据,自然也不能放结构体类型的数据。
o
D.
NSArray和NSSet都拥有addObject方法,可以向其内部增加对象。
正确答案:
ABC
∙34.
(多选)下列关于#include预处理指令,语法正确的是:
()。
o
A.
#include
o
B.
#include“stdio.h”
o
C.
#include“my.h”
o
D.
#include<>
正确答案:
ABC
∙35.
(多选)下列关于递归函数,说法正确的是:
()
o
A.
递归函数总比完成相同功能的非递归函数的执行效率高
o
B.
递归函数是指自己调用自己的函数
o
C.
递归函数的主要优点是简化程序设计,使程序易读
o
D.
递归函数必须有退出递归调用的基本条件,否则函数无法终止运行
正确答案:
BCD
∙36.
(多选)下列关于C语言中变量的说法,正确的是:
()
o
A.
局部变量前默认会被编译器加上auto
o
B.
局部变量前如果加static关键字,则表明此变量在函数调用结束后,空间不会被释放
o
C.
全局变量前加static的意思是说,此变量可以在程序的任何位置访问
o
D.
局部变量如果没有赋初始值,则其值未知
正确答案:
ABD
∙37.
(多选)下列关于OC中的协议(Protocol),下列说法正确的是:
()
o
A.
一个类遵守一个协议时,必须实现协议中规定的所有方法
o
B.
一个类遵守一个协议时,必须实现协议中规定的所有@required区域的方法
o
C.
一个类遵守一个协议时,可以有选择地实现协议中规定的@optional区域的方法
o
D.
一个类可以同时遵守多个协议
正确答案:
BCD
∙38.
(多选)下列关于self,说法正确的是:
()
o
A.
self其实是一个指针
o
B.
如果在实例方法中,向当前对象发送消息,就需要使用self
o
C.
self在类方法中不可用,因为类方法中没有当前对象
o
D.
self在类方法中也可以用,只是在类方法中向self发送消息相当于给类发消息
正确答案:
ABD
∙39.
(多选)对于两个NSString类型的对象进行比较运算:
NSComparisionResultresult=[string1compare:
string2];那么result的值可能是下列哪些值中的一个:
()
o
A.
NSOrderedAscending
o
B.
NSOrderedSame
o
C.
NSOrderedDescending
o
D.
NSOrderedEqual
正确答案:
ABC
∙40.
(多选)下面是两个变量的定义及初始化,下列说法正确的是:
()char*str1=“abcdef”;constchar*str2=“abcdef”;
o
A.
如果对str1进行如此操作str1[0]=‘A’;会导致编译错误。
o
B.
如果对str1进行如此操作str1[0]=‘a’;不会导致编译错误,但在运行时会崩溃。
o
C.
如果对str2进行如此操作str2[0]=‘A’;会导致编译错误。
o
D.
如果对str2进行如此操作str2[0]=‘a’;不会导致编译错误,但在运行时会崩溃。
正确答案:
BC
∙41.
(多选)下列关于指针,说法正确的是:
()
o
A.
无论是什么类型的指针变量,在内存中都是占4个字节
o
B.
两个同类型的指针不可以相加,但指针可以加上一个整数
o
C.
两个同类型的指针虽然不可以相加,但可以相减
o
D.
数组名本身就是一个指针,其值为数组中第一个元素的首地址
正确答案:
BCD
∙42.
(多选)下列关于OC的引用计数器(ReferenceCounting),说法正确的是:
()
o
A.
向对象发送retain消息,会导致对象的引用计数器加1
o
B.
向对象发送release消息,会导致对象的引用计数器减1
o
C.
向对象发送release消息,会导致对象被释放
o
D.
向对象发送release消息,不一定会导致此对象被释放
正确答案:
ABD
∙43.
(多选)下列关于赋值语句,假设所有的变量已经定义为int类型,那么语法正确的是:
()。
o
A.
x+y=100;
o
B.
x++=y++;
o
C.
a=b=c=d+=1;
o
D.
a=b==c;
正确答案:
CD
∙44.
(多选)以下代码创建了一个不可变的数组对象:
NSArray*arr=[[NSArrayalloc]initWithObjects:
@”aaa”,@”bbb”,nil];转换成可变数组的做法,正确的是:
()
o
A.
NSMutableArray*mArr=[NSMutableArrayarrayWithArray:
arr];
o
B.
NSMutableArray*mArr=(NSMutableArray*)arr;
o
C.
NSMutableArray*mArr=[arrcopy];
o
D.
NSMutableArray*mArr=[arrmutableCopy];
正确答案:
AD
∙45.
(多选)请阅读如下代码,假设TRPerson类已经定义:
__weakTRPerson*person1=[[TRPersonalloc]init];TRPerson*person2=person1;__strongTRPerson*person3=person2;NSLog(@”%@”,person3);下列对此代码片段描述正确的是:
()
o
A.
这段代码的输出结果极有可能是(null)
o
B.
person1对象创建完后被马上释放,因为没有任何引用保持它
o
C.
person2和person3变量的值都是nil
o
D.
代码中有语法错误
正确答案:
ABC
∙46.
(多选)下列关于instancetype关键字,说法正确的是:
()
o
A.
只能做为方法的返回值类型,不能做为参数的类型
o
B.
一般只做为初始化方法的返回值或工厂方法的返回值类型
o
C.
和id类型完全一样
o
D.
Xcode5之后才支持
正确答案:
AB
∙47.
(多选)下面是一个函数的声明:
int*fa(int*a,void(*p)(int*));下列关于定义函数指针变量及赋值的代码片段,正确的是:
()
o
A.