高通筆試題--嵌入式C開發(fā)人員的最好的0 x10道筆試題(詳細(xì)解析).doc_第1頁(yè)
高通筆試題--嵌入式C開發(fā)人員的最好的0 x10道筆試題(詳細(xì)解析).doc_第2頁(yè)
高通筆試題--嵌入式C開發(fā)人員的最好的0 x10道筆試題(詳細(xì)解析).doc_第3頁(yè)
高通筆試題--嵌入式C開發(fā)人員的最好的0 x10道筆試題(詳細(xì)解析).doc_第4頁(yè)
高通筆試題--嵌入式C開發(fā)人員的最好的0 x10道筆試題(詳細(xì)解析).doc_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

嵌入式C開發(fā)人員的最好的0x10道筆試題約定:(1) 下面的測(cè)試題中,認(rèn)為所有必須的頭文件都已經(jīng)正確的包含了(2)數(shù)據(jù)類型Char一個(gè)字節(jié) 1 byteInt兩個(gè)字節(jié) 2 byte (16位系統(tǒng),認(rèn)為整型是2個(gè)字節(jié))long int四個(gè)字節(jié) 4 bytefloat四個(gè)字節(jié)4 byetdouble八個(gè)字節(jié) 8 bytelong double十個(gè)字節(jié) 10 bytepointer兩個(gè)字節(jié) 2 byte(注意,16位系統(tǒng),地址總線只有16位)第1題: 考查對(duì)volatile關(guān)鍵字的認(rèn)識(shí) - 高通筆試題#includestatic jmp_buf buf;main() volatile int b;b =3;if(setjmp(buf)!=0) printf(%d , b); exit(0);b=5;longjmp(buf , 1); 請(qǐng)問(wèn),這段程序的輸出是(a) 3(b) 5(c) 0(d) 以上均不是第2題:考查類型轉(zhuǎn)換- 高通筆試題main()struct node int a;int b;int c; ;struct node s= 3, 5,6 ;struct node *pt = &s;printf(%d , *(int*)pt);這段程序的輸出是:(a) 3(b) 5(c) 6(d) 7第3題:考查遞歸調(diào)用int foo ( int x , int n)int val;val =1;if (n0) if (n%2 = 1) val = val *x;val = val * foo(x*x , n/2);return val;這段代碼對(duì)x和n完成什么樣的功能(操作)?(a) xn(x的n次冪)(b) x*n(x與n的乘積) (c) nx(n的x次冪) (d)以上均不是第4題:考查指針,這道題只適合于那些特別細(xì)心且對(duì)指針和數(shù)組有深入理解的人- 高通筆試題main() int a5 = 1,2,3,4,5;int *ptr = (int*)(&a+1);printf(%d %d , *(a+1), *(ptr-1) );這段程序的輸出是:(a) 2 2(b) 2 1(c) 2 5(d) 以上均不是第5題:考查多維數(shù)組與指針void foo(int 3 ); main()int a 33= 1,2,3 , 4,5,6,7,8,9;foo(a);printf(%d , a21);void foo( int b3) + b;b11 =9;這段程序的輸出是:(a) 8(b) 9(c) 7(d)以上均不對(duì)第6題目:考查逗號(hào)表達(dá)式- 高通筆試題main()int a, b,c, d;a=3;b=5;c=a,b;d=(a,b);printf(c=%d ,c);printf(d=%d ,d);這段程序的輸出是:(a) c=3 d=3(b) c=5 d=3(c) c=3 d=5(d) c=5 d=5第7題:考查指針數(shù)組- 高通筆試題main()int a3 = 1,2,3 ,4,5,6;int (*ptr)3 =a;printf(%d %d ,(*ptr)1, (*ptr)2 );+ptr;printf(%d %d ,(*ptr)1, (*ptr)2 );這段程序的輸出是:(a) 2 3 5 6(b) 2 3 4 5(c) 4 5 0 0(d) 以上均不對(duì)第8題:考查函數(shù)指針- 高通筆試題int *f1(void)int x =10;return(&x);int *f2(void)int*ptr;*ptr =10;return ptr;int *f3(void)int *ptr;ptr=(int*) malloc(sizeof(int);return ptr;上面這3個(gè)函數(shù)哪一個(gè)最可能引起指針方面的問(wèn)題(a) 只有 f3(b) 只有f1 and f3(c) 只有f1 and f2(d) f1 , f2 ,f3第9題:考查自加操作(+)- 高通筆試題main()int i=3;int j;j = sizeof(+i+ +i);printf(i=%d j=%d, i ,j);這段程序的輸出是:(a) i=4 j=2(b) i=3 j=2(c) i=3 j=4(d) i=3 j=6第10題:考查形式參數(shù),實(shí)際參數(shù),指針和數(shù)組void f1(int *, int); void f2(int *, int); void(*p2) ( int *, int);main()int a;int b;p0 = f1;p1 = f2;a=3;b=5;p0(&a , b);printf(%dt %dt , a ,b);p1(&a , b);printf(%dt %dt , a ,b);void f1( int* p , int q)int tmp;tmp =*p;*p = q;q= tmp;void f2( int* p , int q)int tmp;tmp =*p;*p = q;q= tmp; 這段程序的輸出是:(a) 5 5 5 5(b) 3 5 3 5(c) 5 3 5 3(d) 3 3 3 3第11題:考查自減操作(-)void e(int ); main()int a;a=3;e(a);void e(int n)if(n0)e(-n);printf(%d , n);e(-n);這段程序的輸出是:(a) 0 1 2 0(b) 0 1 2 1(c) 1 2 0 1(d) 0 2 1 1第12題:考查typedef類型定義,函數(shù)指針typedef int (*test) ( float * , float*)test tmp;tmp 的類型是:(a) 函數(shù)的指針,該函數(shù)以 兩個(gè)指向浮點(diǎn)數(shù)(float)的指針(pointer)作為參數(shù)(arguments)Pointer to function of having two arguments that is pointer to float(b) 整型(c) 函數(shù)的指針,該函數(shù)以 兩個(gè)指向浮點(diǎn)數(shù)(float)的指針(pointer)作為參數(shù)(arguments),并且函數(shù)的返回值類型是整型 Pointer to function having two argument that is pointer to float and return int(d) 以上都不是第13題:數(shù)組與指針的區(qū)別與聯(lián)系- 高通筆試題main()char p;char buf10 = 1,2,3,4,5,6,9,8;p = (buf+1)5;printf(%d , p);這段程序的輸出是:(a) 5(b) 6(c) 9(d) 以上都不對(duì)第14題: 考查指針數(shù)組的指針Void f(char*);main()char * argv = ab ,cd , ef ,gh, ij ,kl ;f( argv );void f( char *p )char* t;t= (p+= sizeof(int)-1;printf( %s , t);這段程序的輸出是:(a) ab(b) cd(c) ef(d) gh第15題:此題考查的是C的變長(zhǎng)參數(shù),就像標(biāo)準(zhǔn)函數(shù)庫(kù)里printf()那樣,這個(gè)話題一般國(guó)內(nèi)大學(xué)課堂是不會(huì)講到的,不會(huì)也情有可原呵呵, - 高通筆試題#includeint ripple ( int , .);main()int num;num = ripple ( 3, 5,7);printf( %d , num);int ripple (int n, .)int i , j;int k; va_list p;k= 0;j = 1;va_start( p , n); for (; jn; +j) i = va_arg( p , int);for (; i; i &=i-1 )+k;return k;這段程序的輸出是:(a) 7(b) 6(c) 5(d) 3第16題:考查靜態(tài)變量的知識(shí)- 高通筆試題int counter (int i)static int count =0;count = count +i;return (count );main()int i , j;for (i=0; i 0)if (n%2 = 1) product = product*val; /*如果是奇數(shù)次冪, x(val)要先乘上一次,; 偶數(shù)次冪,最后返回時(shí)才會(huì)到這里乘以1*/val = val* val; n = n/2; return product;/* 用二元復(fù)乘策略 */算法描述(while n0) if next most significant binary digit of n( power) is onethen multiply accumulated product by current val , reduce n(power) sequence by a factor of two using integer division .get next val by multiply current value of itself 第4題: (c)a的類型是一個(gè)整型數(shù)組,它有5個(gè)成員&a的類型是一個(gè)整型數(shù)組的指針?biāo)?a + 1指向的地方等同于 a6所以*(a+1) 等同于a1ptr等同 a6, ptr-1就等同與a5第5題: (b)題目自身就給了足夠的提示b00 = 4b10 = 7第6題: (c)考查逗號(hào)表達(dá)式,逗號(hào)表達(dá)式的優(yōu)先級(jí)是很低的,比 賦值(=)的優(yōu)先級(jí) 低. 逗號(hào)表達(dá)式的值就是最后一個(gè)元素的值逗號(hào)表達(dá)式的還有一個(gè)作用就是分割函數(shù)的參數(shù)列表.E1, E2, ., En上面這個(gè)表示式的左右是,E1, E2,. En的值被分別計(jì)算出來(lái),En計(jì)算出來(lái)的結(jié)構(gòu)賦給整個(gè)逗號(hào)表達(dá)式c=a,b; / *yields c=a* /d=(a,b); /* d =b */第7題: (a)ptr是一個(gè)數(shù)組的指針,該數(shù)組有3個(gè)int成員第8題: (c)f1顯然有問(wèn)題,它返回一個(gè)局部變量的指針,局部變量是保存在stack中的,退出函數(shù)后,局部變量就銷毀了,保留其指針沒有意義,因?yàn)槠渲赶虻膕tack空間可能被其他變量覆蓋了f2也有問(wèn)題, ptr是局部變量,未初始化,它的值是未知的,*ptr不知道指向哪里了,直接給*ptr賦值可能會(huì)覆蓋重要的系統(tǒng)變量,這就是通常說(shuō)的野指針的一種第9題: (c)sizeof 操作符給出其操作數(shù)需要占用的空間大小,它是在編譯時(shí)就可確定的,所以其操作數(shù)即使是一個(gè)表達(dá)式,也不需要在運(yùn)行時(shí)進(jìn)行計(jì)算.( +i + + i )是不會(huì)執(zhí)行的,所以i 的值還是3第10題: (a)很顯然選a.f1交換*p 和 q的值,f1執(zhí)行完后, *p 和 q的值的確交換了, 但 q的改變不會(huì)影響到 b的改變, *p 實(shí)際上就是 a所以執(zhí)行f1后, a=b=5這道題考查的知識(shí)范圍很廣,包括typedef自定義類型,函數(shù)指針,指針數(shù)組void(*p 2 ) ( int *, int);定義了一個(gè)函數(shù)指針的數(shù)組p,p有兩個(gè)指針元素. 元素是函數(shù)的指針,函數(shù)指針指向的函數(shù)是一個(gè)帶2個(gè)參數(shù),返回void的函數(shù),所帶的兩個(gè)參數(shù)是 指向整型的指針,和整型p 0 = f1; p 1 = f2 contain address of function .function name without parenthesis represent address of function Value and address of variable is passed to function only argument that is effected is a (address is passed). Because of call by value f1, f2 can not effect b第11題: (a)考查-操作和遞歸調(diào)用,仔細(xì)分析一下就可以了第12題: (c)建議不會(huì)的看看C專家編程從左往有,遇到括號(hào)停下來(lái),將第一個(gè)括號(hào)里的東西看成一個(gè)整體 第13題: (c)考查什么時(shí)候數(shù)組就是指針.對(duì)某些類型T而言,如果一個(gè)表達(dá)式是 T (T的數(shù)組), 這個(gè)表達(dá)式的值實(shí)際上就是指向該數(shù)組的第一個(gè)元素的指針.所以(buf+1)5實(shí)際上就是*(buf +6)或者buf6第14題: (d)sizeof(int)的值是4,所以p+=sizeof(int) 指向 argv4,這點(diǎn)估計(jì)大家都沒有什么疑問(wèn)(p+=sizeof(int)-1 指向 argv3,能理解嗎,因?yàn)?p+=sizeof(int)-1 就相當(dāng)于 (p+=4)-1 ,也就是(p+4-1)第15題: (c)在C編譯器通常提供了一系列處理可變參數(shù)的宏,以屏蔽不同的硬件平臺(tái)造成的差異,增加程序的可移植性。這些宏包括va_start、 va_arg和va_end等。采用ANSI標(biāo)準(zhǔn)形式時(shí),參數(shù)個(gè)數(shù)可變的函數(shù)的原型聲明是:type funcname(type para1, type para2, .)這種形式至少需要一個(gè)普通的形式參數(shù),后面的省略號(hào)不表示省略,而是函數(shù)原型的一部分。type是函數(shù)返回值和形式參數(shù)的類型。不同的編譯器,對(duì)這個(gè)可變長(zhǎng)參數(shù)的實(shí)現(xiàn)不一樣 ,gcc4.x中是內(nèi)置函數(shù).關(guān)于可變長(zhǎng)參數(shù),可參閱/html/2004-11/26.html/html/2004-11/24.html程序分析va_list p; /*定義一個(gè)變量 ,保存 函數(shù)參數(shù)列表 的指針*/va_start( p , n); /*用va_start宏 初始化 變量p, va_start宏的第2個(gè)參數(shù)n ,是一個(gè)固定的參數(shù),必須是我們自己定義的變長(zhǎng)函數(shù)的最后一個(gè)入棧的參數(shù)也就是調(diào)用的時(shí)候參數(shù)列表里的第1個(gè)參數(shù)*/for (; jn; +j) /* j從1開始, 遍歷所有可變參數(shù) */i = va_arg( p , int); /*va_arg取出當(dāng)前的參數(shù),并認(rèn)為取出的參數(shù)是一個(gè)整數(shù)(int) */for (; i; i &=i-1 ) /*判斷取出的i是否為0*/+k; /* 如果i不為0, k自加, i與i-1進(jìn)行與邏輯運(yùn)算, 直到i 為0這是一個(gè)技巧,下面會(huì)談到它的功能*/當(dāng)我們調(diào)用ripple函數(shù)時(shí),傳遞給ripple函數(shù)的 參數(shù)列表的第一個(gè)參數(shù)n的值是3 .va_start

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論