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


    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); //语法错误

  • 相关阅读:
    转载:每一个程序员要遵守的一些优秀编程风格
    Eclipse使用技巧及个性化设计
    博客园颜色、粗细、字体及大小
    转载:开发移动应用的7大设计要点
    转载:15件事造就有理想的程序员
    程序员理想
    找工作主要看什么
    转载:程序员应该扪心自问的10个问题
    程序员保值的4个秘密
    HTML5标签一览
  • 原文地址:https://www.cnblogs.com/cody1988/p/2193404.html
Copyright © 2020-2023  润新知