2011.9.27到某公司的Android面试(C/java/Android)题目总结(转)

本文提供了一组关于C语言及Java编程的面试题目解答,包括如何利用宏定义求两个数的绝对值之和、字符串倒置的方法,以及探讨C语言中a++与++a的区别等知识点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

9.27 面试

1.写一个C语言的宏,求两个传入的数的绝对值的和。
①#define add(a,b) (((a) < 0? -(a) : (a)) + ((b) < 0? -(b) : (b)))

#define abs(a) ( (a) < 0? -(a) : (a) )
#define add(a,b) (abs(a) + abs(b))

2.用java或者C倒置字符串"abcd" -> "dcba"


//把第一个放到最后
/*void firstToLast(char str[],int len){

 if(len <= 1) return;

 char temp = str[0];
 int i;
 for(i = 1; i < len; i++){
  str[i - 1] = str[i];
 }
 str[len - 1] = temp;
}

void reverseString(char str[],int len){
 int i = 0;
 for(;i < len -1; i++){
  firstToLast(str,len - i);
 }
}*/


void reverseString(char str[],int len){
 int i,j;
 char temp;
 for(i = 0;i < len; i++){
  temp = str[0];
  for(j = 1; j < len - i;j ++){
   str[j - 1] = str[j];
  }
  str[len - i - 1] = temp;
 }
}

3. C语言中 a++ 与 ++a 的区别(很多相关的填空题)

4. C语言的逗号表达式的求值顺序问题(在a++,与++a问题中有多个逗号表达式)
 ---->区别:a++先使用a原来的值,使用后在让a的值自加一, ++a先将a的值加一,然后使用改变后的a的值。
例如:

 int inc(int a)
 {
  printf("intc : %d\n",a);
  return a++;
 }
 
main函数中:
 int a = 1;

 printf("%d\n",a++);  //1

 printf("%d\n",++a);  // 3

 printf("%d,%d\n",a,inc(a++));  //4,3
 printf("%d\n",a);  //4
 printf("%d\n",inc(++a));//5

 //printf("%d\n",++3); //语法错误

转载于:https://www.cnblogs.com/jianmang/articles/4878778.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值