剖析Framework面試 衝擊Android高級職位

download:剖析Framework面試 衝擊Android高級職位

本次課程着重爲大家講解Android系統底層原理,補齊Android開發的Framework層知識短板。一方面對高級工程師的面試提供直接幫助,另一方面有效地提高大家的技術段位。兼顧面試知識技能與開發內功的提升,課程適合每一位Android中高級開發者。
適合人羣
具有一定開發經驗,想搞定Android高級面試的工程師
想利於工作之餘,深入學習Framework系統原理的工程師
技術儲備要求
1.有一定的Android應用開發經驗 2.熟悉jni原理
3.最好有一定C++語法基礎 4.瞭解基本的Linux系統調用





標題:有1、2、3、4個數字,能組成幾個互不相同且無反覆數字的三位數?都是幾?
1.程序剖析:可填在百位、十位、個位的數字都是1、2、3、4。組成一切的排列後再去
      掉不滿足條件的排列。
2.程序源代碼:
main()
{
int i,j,k;
printf("\n");
for(i=1;i<5;i++)    /以下爲三重循環/
 for(j=1;j<5;j++) 
  for (k=1;k<5;k++)
   {
    if (i!=k&&i!=j&&j!=k)    /確保i、j、k三位互不相同/
    printf("%d,%d,%d\n",i,j,k);
   }
}














【程序2】
標題:企業發放的獎金依據利潤提成。利潤(I)低於或等於10萬元時,獎金可提10%;利潤高
   於10萬元,低於20萬元時,低於10萬元的局部按10%提成,高於10萬元的局部,可可提
   成7.5%;20萬到40萬之間時,高於20萬元的局部,可提成5%;40萬到60萬之間時高於
   40萬元的局部,可提成3%;60萬到100萬之間時,高於60萬元的局部,可提成1.5%,高於
   100萬元時,超越100萬元的局部按1%提成,從鍵盤輸入當月利潤I,求應發放獎金總數?
1.程序剖析:請應用數軸來分界,定位。留意定義時需把獎金定義生長整型。      
2.程序源代碼:
main()
{
long int i;
int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;
scanf("%ld",&i);
bonus1=1000000.1;bonus2=bonus1+1000000.75;
bonus4=bonus2+2000000.5;
bonus6=bonus4+200000
0.3;
bonus10=bonus6+4000000.15;
 if(i<=100000)
  bonus=i

0.1;
 else if(i<=200000)
     bonus=bonus1+(i-100000)0.075;
    else if(i<=400000)
        bonus=bonus2+(i-200000)

0.05;
       else if(i<=600000)
           bonus=bonus4+(i-400000)0.03;
          else if(i<=1000000)
              bonus=bonus6+(i-600000)

0.015;
             else
              bonus=bonus10+(i-1000000)0.01;
printf("bonus=%d",bonus);
} ==============================================================
【程序3】
標題:一個整數,它加上100後是一個完整平方數,再加上168又是一個完整平方數,請問該數是幾?
1.程序剖析:在10萬以內判別,先將該數加上100後再開方,再將該數加上268後再開方,假如開方後
      的結果滿足如下條件,即是結果。請看詳細剖析:
2.程序源代碼:
#include "math.h"
main()
{
long int i,x,y,z;
for (i=1;i<100000;i++)
 { x=sqrt(i+100);   /












x爲加上100後開方後的結果/
  y=sqrt(i+268);   /
y爲再加上168後開方後的結果/
   if(x
x==i+100&&yy==i+268)/假如一個數的平方根的平方等於該數,這闡明此數是完整平方數*/
    printf("\n%ld\n",i);
 }
}























【程序4】
標題:輸入某年某月某日,判別這一天是這一年的第幾天?
1.程序剖析:以3月5日爲例,應該先把前兩個月的加起來,然後再加上5天即本年的第幾天,特殊
      狀況,閏年且輸入月份大於3時需思索多加一天。
2.程序源代碼:
main()
{
int day,month,year,sum,leap;
printf("\nplease input year,month,day\n");
scanf("%d,%d,%d",&year,&month,&day);
switch(month)/先計算某月以前月份的總天數/
{
 case 1:sum=0;break;
 case 2:sum=31;break;
 case 3:sum=59;break;
 case 4:sum=90;break;
 case 5:sum=120;break;
 case 6:sum=151;break;
 case 7:sum=181;break;
 case 8:sum=212;break;
 case 9:sum=243;break;
 case 10:sum=273;break;
 case 11:sum=304;break;
 case 12:sum=334;break;
 default:printf("data error");break;
}
sum=sum+day;  /再加上某天的天數/
 if(year%400==0||(year%4==0&&year%100!=0))/判別是不是閏年/
  leap=1;
 else
  leap=0;
if(leap==1&&month>2)/假如是閏年且月份大於2,總天數應該加一天/
sum++;
printf("It is the %dth day.",sum);}
































【程序5】
標題:輸入三個整數x,y,z,請把這三個數由小到大輸出。
1.程序剖析:我們想方法把最小的數放到x上,先將x與y停止比擬,假如x>y則將x與y的值停止交流,
      然後再用x與z停止比擬,假如x>z則將x與z的值停止交流,這樣能使x最小。
2.程序源代碼:
main()
{
int x,y,z,t;
scanf("%d%d%d",&x,&y,&z);
if (x>y)
{t=x;x=y;y=t;} /交流x,y的值/
if(x>z)
{t=z;z=x;x=t;}/交流x,z的值/
if(y>z)
{t=y;y=z;z=t;}/交流z,y的值/
printf("small to big: %d %d %d\n",x,y,z);














發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章