1、 已知:语句printf(“%u”, 0xFFFFFFFF + 2);则输出。 

  • 4294967295
  • 4294967296
  • 0
  • 1


2、 已知,int sum = 0, a, b, c, d。则以下哪个代码片段能正确求出a、b、c、d四数之和:。 

  • while(sum){sum += a; sum += b; sum += c; sum += d};
  • if(sum)sum += a; sum += b; sum += c; sum += d;
  • for(;sum;){sum += a; sum += b; sum += c; sum += d;};
  • switch(sum){case0:sum += a; case1:sum += b; case2:sum+= c; case3:sum += d;}


3、 char * p = ”Welcome to Qianfeng!”则 p[5] = ?。 

  • ’m’
  • ’o’
  • ’t’
  • ’Q’


4、 void func(long a[100]);则sizeof(a) = ?。 

  • 100
  • 800
  • 1
  • 8


5、 char a[] = ”Welcome to qianfeng!”;则sizeof(a) = ? strlen(a) = ?。 

  • 21 20
  • 20 21
  • 20 20
  • 21 21


6、 以下宏的应用中,不能运行的是:。 

  • #define DEF(a, b) ((a) + (b)); int ret = DEF(5, 6);
  • #define DEF(a, b) a(b) DEF(printf, “printf”);
  • #define DEF(a) a++ int ret = DEF(10);
  • #define DEF(a, b) a > b ? a : b printf(“%d”, DEF(4, 5));


7、 下列代码片段正确的是:。 

  • @interfaceQFClass { @private NSInteger a; NSInteger b; } @end
  • @interfaceQFClass : NSObject { @private NSInteger a; NSInteger b; } -(void)method1; -(void)method2; @end
  • @interfaceQFClass : NSObject { @private NSInteger a; NSInteger b; -(void)method1; -(void)method2; } @end
  • @interfaceQFClass : NSObject { @private NSInteger a; NSInteger b; } @public -(void)method1; -(void)method2; @end


8、 已知 structsct{ int a; int b; int c; int d; }; structsct *p = (structsct *)malloc(sizeof(structsct));则sizeof(p)= ? 。 

  • 4
  • 8
  • 16
  • 1


9、 关于数组,下列说法不正确的是:。 

  • 数组元素在内存中连续排列。
  • 数组名是数组第一个元素的地址。
  • 数组名作为实参传入函数,则函数将获得数组的地址和元素个数。
  • 有些时候数组声明时可以省略下标。


10、 已知: unsigned char i=0; for(i = 0;i<=255;i++){ printf(“Welcome to qianfeng!\\n”); } 则打印多少个Welcome to qianfeng! ? 。 

  • 256
  • 255
  • 无限个
  • 0


11、 以下哪个指针变量的声明最适宜指向一个函数int* func(int,int)的?。 

  • int *fp(int, int);

  • int *(*fp)(void);
  • int *(*fp)(int, int);
  • int (*fp)(int, int);


12、 关于类别,下列说法正确的是:。 

  • 类别是类的一种。
  • 类别能够声明类别对象。
  • 类别中能够声明字段(成员变量)和消息(成员方法)
  • 父类的类别能被子类继承


13、 已知: inti = 5; while(i--)printf(“%d”, i); 则程序运行时输出: 。 

  • 43210
  • 54321
  • 43210-1
  • 543210


14、 下列对指针的描述中,错误的是:。 

  • 指针变量就是装地址的变量。
  • 指针加1,其数值大小是增加该指针所指向空间类型的字节数。
  • 指针本身没有空间,指向的变量具有空间。
  • 二级指针就是指向指针的指针。


15、 已知:整数变量a, b则以下能正确表达条件“两者不等”的是?。 

  • if( !(a = b))
  • f ( a - b)
  • if (a % b)
  • if (a !== b)


16、 下列关于函数正确的错误的是?。 

  • 函数使用之前必须先定义
  • 函数三要素:函数名参数返回值
  • 函数一处定义,处处可以使用
  • 函数的返回值不能是结构体


17、 strstr函数的作用是:。 

  • 在字符串中插入子串。
  • 比较两字符串。
  • 复制字符串。
  • 在字符串中查找子串位置。


18、 已知有如下定义: typedef char * cc; cc a, b; #definedd char * dd c, d; 则sizeof(b)的值是? , sizeof(d)的值是? 。 

  • 8 8
  • 1 1
  • 1 8
  • 8 1


19、 以下符号不属于运算符的是:。 

  • ~
  • &
  • #
  • !


20、 已知: int a[5] = {}; char * p = a; 则: 。 

  • 若p++;则 p == &a[1] 为真
  • 若p+=4;则p == &a[1] 为真
  • 若(int *)p++;则p == &a[1] 为真
  • 若(int *)p+=4; 则p == &a[1] 为真


21、 void func(char a []);则sizeof(a) = ?。 

  • 4
  • 8
  • 0
  • 不确定


22、 编写程序,将只有空格一种标点的字符串(如@”I am a so bad man”)按单词逆序(如@”man bad so a am I”)后输出。以下思路错误的是:。 

  • 先将字符串以空格分割成子串,装到一个数组中。数组逆序后拼接。
  • 查找空格位置,提取子串,逆序拼接。
  • 使用characterAtIndex:方法,取出每个字符,然后逆序拼接。
  • 导入可变字符串中,从前后查找空格位置,从前后提取子串,进行交换操作。


23、 以下字符串不可以作为标识符的是:。 

  • _23
  • ___
  • abc123
  • 1_abc


24、 使用各种方式创建NSString对象,并初始化为@”Welcome to Qianfeng!”以下写法不正确的是:。

  • NSString * string = @”Welcome to Qianfeng!”;
  • NSString * string = [NSStringstringWithFormart:@”%s”, @”Welcome to Qianfeng!”];
  • NSString * string = [[NSStringalloc] initWithUTF8String:”Welcome to Qianfeng!”];
  • NSString * string = [@”Welcome to Qianfeng!” copy];


25、 已知: typedefstruct {float x; float y;} CGPoint; typedefstruct {float width; float height;} CGSize; typedefstruct {CGPont point; CGSize size;} CGRect; CGRectrect = {0,0,320,20}; CGRect *p = ▭ 则下列写法正确的是: 。 

  • p.x = 5.0;
  • p->width = 5.0;
  • p.point.y = 5.0;
  • p->size->height = 5.0;


26、 已知: typedefstruct {char name[20]; float age;} Stu; Stu xiaoming; Stu *p = &xiaoming; 则下列写法正确的是: 。 

  • xiaoming.age = 10.0; xiaoming.name = “xiaoming”;
  • xiaoming.age = 12.0;strcpy(xiaoming.name, “xiaoming” );
  • p->age = 10.0;p->name = “xiaoming”;
  • p->age = 10.0;strcpy(*p->name, “xiaoming”);


27、 已知: #define INT int INT a,b; #define PINT int * PINT c,d; 则sizeof(b)的值是? , sizeof(d)的值是? 。 

  • 8 8
  • 4 8
  • 1 8
  • 44


28、 已知: void func1(void); void func2(void); void func3(void); void func1(void) { func2(void); printf(“Func1”); } void func2(void) { printf(“Func2”); func(3); } void func3(void) { printf(“Func3”); } 则调用func1()后,输出: 。 

  • Func1Func2Func3
  • Func2Func3Func1
  • Func3Func1Func2
  • Func1Func3Func2


29、 以下函数书写,没有错误的是:。 

  • int a function(int b, int c);
  • int function(int b, c[]);
  • int function(int 3, int a);
  • void function(void a, void b);


30、 已知有int a[5];则下列代码完全正确的是:。 

  • nt * p = &a;
  • int ** p = &a;
  • int * p[5] = &a;
  • int (*p)[5] = &a;


31、 以下函数表示的含义是: intfunc(int n) { if(n <= 0)return n; returnfunc(n - 1) * n; } 。 

  • 输出n的阶乘
  • 输出n的阶乘和
  • 返回n的阶乘
  • 返回n的阶乘和


32、 以下声明指针变量方式中,p值可变而*p值不可变的是:。 

  • int a = 0; int * p const = &a;
  • int a = 0; int * const p = &a;
  • int a = 0; intconst * p = &a;
  • int a = 0; cons int * const p = &a;


33、 enum color{red, blue = -2, black, yellow}则如果a = red;b = yellow则a= ?, b= ?。 

  • -1 0
  • -1 -1
  • 0 0
  • 0 2


34、 已知:char a[100] = “welcome\\0toqianfeng”;则sizeof(a) = ?。 

  • 7
  • 8
  • 100
  • 18


35、 字段(成员变量)的权限有。 

  • @private @protected @public
  • @property @protected @public
  • @private @property @public
  • @private @property @protected


36、 已知协议A中有非必须实现的接口,则该接口的权限是。 

  • @property
  • @private
  • @required
  • @optional


37、 以下哪个宏能正确求两个数或两个表达式值的和?。 

  • #define SUM(a, b) a + b
  • #define SUM(a, b) (a + b)
  • #define SUM(a, b) ((a) + (b))
  • #define SUM(a, b) (a) + (b)


38、 已知A、B两类分别有对象a、b。若要令a发送通知而b响应事件, 则需要遵从(conform)相关协议的是: 。 

  • 类A
  • 类B
  • 两个类都必须遵从
  • 任意一个类遵从皆可


39、 以下哪个表达式的值最大:。 

  • 5+5&0
  • 3|4
  • !100
  • 1000, 25 * 4, -1


40、 已知A、B两类分别有对象a、b。若已知有a.delegate = b; 则需要遵从(conform)相关协议的是: 。 

  • 类A
  • 类B
  • 两个类都必须遵守
  • 任意一个类遵守皆可


41、 char a[10] = ”Welcome to qianfeng!”; 则sizeof(a) = ?。 

  • 21
  • 20
  • 10
  • 9


42、 @interface中声明消息(成员方法)时,不需声明权限。则这些方法的权限均为。 

  • 私有
  • 公有
  • 保护
  • 继承


43、 下列消息中不属于内存管理相关消息的是。 

  • retain
  • autorelease
  • alloc
  • init


44、 已知: char a[] = “abc”; char b[] = “abc”; char * c = “abc”; char * d = “abc”; 则printf(“%d %d\\n”, a == b, c == d); 输出? 。 

  • 1 0
  • 1 1
  • 0 1
  • 0 0


45、 关于类和对象的概念,以下说法正确的是:。 

  • OC中类的继承分为单继承和多继承。
  • OC中两个成员方法的名称相同,参数不同,可以发生重载。
  • 类消息可以发送给对象。
  • 一个类可以创建多个对象。


46、 已知: int a = 9,b = 8; if(a+1>=10||b++){ printf(“%d %d”,a,b); }else{ printf(“%d %d”,b,a--); } 则最后结果是? 。 

  • 9,9
  • 9,8
  • 8,9
  • 8,8


47、 下列代码中内存管理有误的是。 

  • int main(){ NSString * str = [[NSStringalloc] initWithUTF8String:”Welcome to qianfeng!”]; NSLog(@”%@”, str); [str release]; }
  • int main(){ NSString * str = [[[NSStringalloc] initWithUTF8String:”Welcome to qianfeng!”] autorlease]; NSLog(@”%@”, str); }
  • int main(){ NSString * str = @”Welcome to qianfeng!”; NSLog(@”%@”, str); }
  • int main(){ NSString * str = [NSString stringWithUTF8String:”Welcome to qianfeng!”]; NSLog(@”%@”, str); }


48、 在64位系统环境下,以下类型的变量,哪一个占用内存空间最大:。 

  • int
  • double
  • float
  • char


49、 关于int * p = malloc(1000);下列说法错误的是:。 

  • P存放的是malloc函数的返回地址。
  • 如果成功,malloc函数开辟了1000字节的堆空间。
  • 编译器会报错。
  • *p是获得所开辟堆空间的前四个字节。


50、 void func(char a[100]);则strlen(a) = ?。 

  • 100
  • 1
  • 0
  • 不确定