• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            HUUYUU

            #

            面試必看(C/C++程序員應(yīng)聘常見(jiàn)面試題深入剖析(2))

            面試必看(C/C++程序員應(yīng)聘常見(jiàn)面試題深入剖析(2))

            3.內(nèi)功題

            試題1:分別給出BOOL,int,float,指針變量 與“零值”比較的 if 語(yǔ)句(假設(shè)變量名為var)

            解答:
            BOOL型變量:if(!var)

            int型變量:? ?if(var==0)

            float型變量:

            const float EPSINON = 0.00001;

            if ((x >= - EPSINON) && (x <= EPSINON)

            指針變量:  if(var==NULL)

            剖析:

            考查對(duì)0值判斷的“內(nèi)功”,BOOL型變量的0判斷完全可以寫(xiě)成if(var==0),而int型變量也可以寫(xiě)成if(!var),指針變量的判斷也可以寫(xiě)成if(!var),上述寫(xiě)法雖然程序都能正確運(yùn)行,但是未能清晰地表達(dá)程序的意思。

            一般的,如果想讓if判斷一個(gè)變量的“真”、“假”,應(yīng)直接使用if(var)、if(!var),表明其為“邏輯”判斷;如果用if判斷一個(gè)數(shù)值型變量(short、int、long等),應(yīng)該用if(var==0),表明是與0進(jìn)行“數(shù)值”上的比較;而判斷指針則適宜用if(var==NULL),這是一種很好的編程習(xí)慣。

            浮點(diǎn)型變量并不精確,所以不可將float變量用“==”或“!=”與數(shù)字比較,應(yīng)該設(shè)法轉(zhuǎn)化成“>=”或“<=”形式。如果寫(xiě)成if (x == 0.0),則判為錯(cuò),得0分。

            試題2:以下為Windows NT下的32位C++程序,請(qǐng)計(jì)算sizeof的值

            void Func ( char str[100] )
            {
            ? ???sizeof( str ) = ?
            }

            void *p = malloc( 100 );
            sizeof ( p ) = ?

            解答:

            sizeof( str ) = 4

            sizeof ( p ) = 4

            剖析:

            Func ( char str[100] )函數(shù)中數(shù)組名作為函數(shù)形參時(shí),在函數(shù)體內(nèi),數(shù)組名失去了本身的內(nèi)涵,僅僅只是一個(gè)指針;在失去其內(nèi)涵的同時(shí),它還失去了其常量特性,可以作自增、自減等操作,可以被修改。

            數(shù)組名的本質(zhì)如下:

            (1)數(shù)組名指代一種數(shù)據(jù)結(jié)構(gòu),這種數(shù)據(jù)結(jié)構(gòu)就是數(shù)組;
            例如:
            char str[10];
            cout << sizeof(str) << endl;

            ? ?輸出結(jié)果為10,str指代數(shù)據(jù)結(jié)構(gòu)char[10]。

            (2)數(shù)組名可以轉(zhuǎn)換為指向其指代實(shí)體的指針,而且是一個(gè)指針常量,不能作自增、自減等操作,不能被修改;
            char str[10];

            str++;? ?//編譯出錯(cuò),提示str不是左值 

            (3)數(shù)組名作為函數(shù)形參時(shí),淪為普通指針。

            Windows NT 32位平臺(tái)下,指針的長(zhǎng)度(占用內(nèi)存的大小)為4字節(jié),故sizeof( str ) 、
            sizeof ( p ) 都為4。

            試題3:寫(xiě)一個(gè)“標(biāo)準(zhǔn)”宏MIN,這個(gè)宏輸入兩個(gè)參數(shù)并返回較小的一個(gè)。另外,當(dāng)你寫(xiě)下面的代碼時(shí)會(huì)發(fā)生什么事?

            least = MIN(*p++, b);

            解答:

            #define MIN(A,B)? ? ((A) <=??(B) ? (A) : (B))

            MIN(*p++, b)會(huì)產(chǎn)生宏的副作用

            剖析:

            這個(gè)面試題主要考查面試者對(duì)宏定義的使用,宏定義可以實(shí)現(xiàn)類(lèi)似于函數(shù)的功能,但是它終歸不是函數(shù),而宏定義中括弧中的“參數(shù)”也不是真的參數(shù),在宏展開(kāi)的時(shí)候?qū)Α皡?shù)”進(jìn)行的是一對(duì)一的替換。

            程序員對(duì)宏定義的使用要非常小心,特別要注意兩個(gè)問(wèn)題:

            (1)謹(jǐn)慎地將宏定義中的“參數(shù)”和整個(gè)宏用用括弧括起來(lái)。所以,嚴(yán)格地講,下述解答:

            #define MIN(A,B)? ? (A) <=??(B) ? (A) : (B)

            #define MIN(A,B)? ? (A <=??B ? A : B )

            都應(yīng)判0分;

            (2)防止宏的副作用。

            宏定義#define MIN(A,B)? ?((A) <=??(B) ? (A) : (B))對(duì)MIN(*p++, b)的作用結(jié)果是:

            ((*p++) <=??(b) ? (*p++) : (*p++))

            這個(gè)表達(dá)式會(huì)產(chǎn)生副作用,指針p會(huì)作三次++自增操作。

            除此之外,另一個(gè)應(yīng)該判0分的解答是:

            #define MIN(A,B)? ? ((A) <=??(B) ? (A) : (B));??

            這個(gè)解答在宏定義的后面加“;”,顯示編寫(xiě)者對(duì)宏的概念模糊不清,只能被無(wú)情地判0分并被面試官淘汰。

            試題4:為什么標(biāo)準(zhǔn)頭文件都有類(lèi)似以下的結(jié)構(gòu)?

            ? ?#ifndef __INCvxWorksh

            ? ?#define __INCvxWorksh

            ? ?#ifdef __cplusplus

            ? ?extern "C" {

            ? ?#endif

            ? ?/*...*/

            ? ?#ifdef __cplusplus

            ? ?}
            ? ?#endif

            ? ?#endif /* __INCvxWorksh */

            ? ?解答:
            頭文件中的編譯宏
            #ifndef __INCvxWorksh
            #define __INCvxWorksh
            #endif

            的作用是防止被重復(fù)引用。

            作為一種面向?qū)ο蟮恼Z(yǔ)言,C++支持函數(shù)重載,而過(guò)程式語(yǔ)言C則不支持。函數(shù)被C++編譯后在symbol庫(kù)中的名字與C語(yǔ)言的不同。例如,假設(shè)某個(gè)函數(shù)的原型為:

            void foo(int x, int y);

            該函數(shù)被C編譯器編譯后在symbol庫(kù)中的名字為_(kāi)foo,而C++編譯器則會(huì)產(chǎn)生像_foo_int_int之類(lèi)的名字。_foo_int_int這樣的名字包含了函數(shù)名和函數(shù)參數(shù)數(shù)量及類(lèi)型信息,C++就是考這種機(jī)制來(lái)實(shí)現(xiàn)函數(shù)重載的。

            為了實(shí)現(xiàn)C和C++的混合編程,C++提供了C連接交換指定符號(hào)extern "C"來(lái)解決名字匹配問(wèn)題,函數(shù)聲明前加上extern "C"后,則編譯器就會(huì)按照C語(yǔ)言的方式將該函數(shù)編譯為_(kāi)foo,這樣C語(yǔ)言中就可以調(diào)用C++的函數(shù)了。

            試題5:編寫(xiě)一個(gè)函數(shù),作用是把一個(gè)char組成的字符串循環(huán)右移n個(gè)。比如原來(lái)是“abcdefghi”如果n=2,移位后應(yīng)該是“hiabcdefgh”

            函數(shù)頭是這樣的:

            //pStr是指向以'\0'結(jié)尾的字符串的指針

            //steps是要求移動(dòng)的n

            void LoopMove ( char * pStr, int steps )
            {
            //請(qǐng)?zhí)畛?..

            }

            解答:

            正確解答1:

            void LoopMove ( char *pStr, int steps )
            {
            ? ? int n = strlen( pStr ) - steps;
            ? ? char tmp[MAX_LEN];? ?

            ? ? strcpy ( tmp, pStr + n );
            ? ? strcpy ( tmp + steps, pStr);? ?
            ? ? *( tmp + strlen ( pStr ) ) = '\0';
            ? ? strcpy( pStr, tmp );
            }

            正確解答2:

            void LoopMove ( char *pStr, int steps )
            {
            ? ? int n = strlen( pStr ) - steps;
            ? ? char tmp[MAX_LEN];? ?

            ? ? memcpy( tmp, pStr + n, steps );? ?
            ? ? memcpy(pStr + steps, pStr, n );? ?
            ? ? memcpy(pStr, tmp, steps );? ?
            }

            剖析:

            這個(gè)試題主要考查面試者對(duì)標(biāo)準(zhǔn)庫(kù)函數(shù)的熟練程度,在需要的時(shí)候引用庫(kù)函數(shù)可以很大程度上簡(jiǎn)化程序編寫(xiě)的工作量。

            最頻繁被使用的庫(kù)函數(shù)包括:

            (1)? ?? ? strcpy

            (2)? ?? ? memcpy

            (3)? ?? ? memset

            試題7:編寫(xiě)類(lèi)String的構(gòu)造函數(shù)、析構(gòu)函數(shù)和賦值函數(shù),已知類(lèi)String的原型為:

            class String
            {? ?? ?
            public:? ?? ?

            ??String(const char *str = NULL); // 普通構(gòu)造函數(shù)? ???

            ??String(const String &other); // 拷貝構(gòu)造函數(shù)? ?

            ??~ String(void); // 析構(gòu)函數(shù)??

            ??String & operate =(const String &other); // 賦值函數(shù)? ?? ?

            private:? ?? ?

            ??char *m_data; // 用于保存字符串? ?? ?

            };

            解答:

            //普通構(gòu)造函數(shù)

            String::String(const char *str)
            {

            ? ?? ? if(str==NULL)
            ? ?? ? {
            ? ?? ?? ?? ?? ?m_data = new char[1]; // 得分點(diǎn):對(duì)空字符串自動(dòng)申請(qǐng)存放結(jié)束標(biāo)志'\0'的空
            ? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? //加分點(diǎn):對(duì)m_data加NULL 判斷
            ? ?? ?? ?? ?? ?*m_data = '\0';
            ? ?? ? }? ???
            ? ?? ? else
            ? ?? ? {
            ? ?? ???int length = strlen(str);
            ? ?? ???m_data = new char[length+1]; // 若能加 NULL 判斷則更好
            ? ?? ???strcpy(m_data, str);
            ? ?? ? }
            }

            // String的析構(gòu)函數(shù)

            String::~String(void)
            {
            ? ?? ? delete [] m_data; // 或delete m_data;
            }

            //拷貝構(gòu)造函數(shù)
            String::String(const String &other)    // 得分點(diǎn):輸入?yún)?shù)為const型
            {? ?? ?
            ? ?? ? int length = strlen(other.m_data);

            ? ?? ? m_data = new char[length+1];     //加分點(diǎn):對(duì)m_data加NULL 判斷
            ? ?? ? strcpy(m_data, other.m_data);? ???
            }



            //賦值函數(shù)
            String & String::operate =(const String &other) // 得分點(diǎn):輸入?yún)?shù)為const型
            {? ?? ?
            ? ?? ? if(this == &other)? ?? ?? ?? ?? ???  //得分點(diǎn):檢查自賦值

            ? ?? ?? ?? ?? ?return *this;? ?

            ? ?? ? delete [] m_data;? ?? ?? ???    //得分點(diǎn):釋放原有的內(nèi)存資源

            ? ?? ? int length = strlen( other.m_data );? ?? ?

            ? ?? ? m_data = new char[length+1];  //加分點(diǎn):對(duì)m_data加NULL 判斷

            ? ?? ? strcpy( m_data, other.m_data );? ?

            ? ?? ? return *this;? ?         //得分點(diǎn):返回本對(duì)象的引用
            }

            剖析:


            能夠準(zhǔn)確無(wú)誤地編寫(xiě)出String類(lèi)的構(gòu)造函數(shù)、拷貝構(gòu)造函數(shù)、賦值函數(shù)和析構(gòu)函數(shù)的面試者至少已經(jīng)具備了C++基本功的60%以上!

            在這個(gè)類(lèi)中包括了指針類(lèi)成員變量m_data,當(dāng)類(lèi)中包括指針類(lèi)成員變量時(shí),一定要重載其拷貝構(gòu)造函數(shù)、賦值函數(shù)和析構(gòu)函數(shù),這既是對(duì)C++程序員的基本要求,也是《Effective C++》中特別強(qiáng)調(diào)的條款。

            仔細(xì)學(xué)習(xí)這個(gè)類(lèi),特別注意加注釋的得分點(diǎn)和加分點(diǎn)的意義,這樣就具備了60%以上的C++基本功!

            試題8:請(qǐng)說(shuō)出static和const關(guān)鍵字盡可能多的作用

            解答:

            static關(guān)鍵字至少有下列n個(gè)作用:

            (1)函數(shù)體內(nèi)static變量的作用范圍為該函數(shù)體,不同于auto變量,該變量的內(nèi)存只被分配一次,因此其值在下次調(diào)用時(shí)仍維持上次的值;

            (2)在模塊內(nèi)的static全局變量可以被模塊內(nèi)所用函數(shù)訪問(wèn),但不能被模塊外其它函數(shù)訪問(wèn);

            (3)在模塊內(nèi)的static函數(shù)只可被這一模塊內(nèi)的其它函數(shù)調(diào)用,這個(gè)函數(shù)的使用范圍被限制在聲明它的模塊內(nèi);

            (4)在類(lèi)中的static成員變量屬于整個(gè)類(lèi)所擁有,對(duì)類(lèi)的所有對(duì)象只有一份拷貝;

            (5)在類(lèi)中的static成員函數(shù)屬于整個(gè)類(lèi)所擁有,這個(gè)函數(shù)不接收this指針,因而只能訪問(wèn)類(lèi)的static成員變量。

            const關(guān)鍵字至少有下列n個(gè)作用:

            (1)欲阻止一個(gè)變量被改變,可以使用const關(guān)鍵字。在定義該const變量時(shí),通常需要對(duì)它進(jìn)行初始化,因?yàn)橐院缶蜎](méi)有機(jī)會(huì)再去改變它了;

            (2)對(duì)指針來(lái)說(shuō),可以指定指針本身為const,也可以指定指針?biāo)傅臄?shù)據(jù)為const,或二者同時(shí)指定為const;

            (3)在一個(gè)函數(shù)聲明中,const可以修飾形參,表明它是一個(gè)輸入?yún)?shù),在函數(shù)內(nèi)部不能改變其值;

            (4)對(duì)于類(lèi)的成員函數(shù),若指定其為const類(lèi)型,則表明其是一個(gè)常函數(shù),不能修改類(lèi)的成員變量;

            (5)對(duì)于類(lèi)的成員函數(shù),有時(shí)候必須指定其返回值為const類(lèi)型,以使得其返回值不為“左值”。例如:

            const classA operator*(const classA& a1,const classA& a2);

            operator*的返回結(jié)果必須是一個(gè)const對(duì)象。如果不是,這樣的變態(tài)代碼也不會(huì)編譯出錯(cuò):

            classA a, b, c;



            (a * b) = c; // 對(duì)a*b的結(jié)果賦值

            操作(a * b) = c顯然不符合編程者的初衷,也沒(méi)有任何意義。

            剖析:

            驚訝嗎?小小的static和const居然有這么多功能,我們能回答幾個(gè)?如果只能回答1~2個(gè),那還真得閉關(guān)再好好修煉修煉。

            這個(gè)題可以考查面試者對(duì)程序設(shè)計(jì)知識(shí)的掌握程度是初級(jí)、中級(jí)還是比較深入,沒(méi)有一定的知識(shí)廣度和深度,不可能對(duì)這個(gè)問(wèn)題給出全面的解答。大多數(shù)人只能回答出static和const關(guān)鍵字的部分功能。

            試題:寫(xiě)一個(gè)函數(shù)返回1+2+3+…+n的值(假定結(jié)果不會(huì)超過(guò)長(zhǎng)整型變量的范圍)
            解答:
            int Sum( int n )
            {
            ? ?? ? return??( (long)1 + n) * n / 2;  //或return??(1l + n) * n / 2;
            }

            剖析:

            對(duì)于這個(gè)題,只能說(shuō),也許最簡(jiǎn)單的答案就是最好的答案。下面的解答,或者基于下面的解答思路去優(yōu)化,不管怎么“折騰”,其效率也不可能與直接return ( 1 l + n ) * n / 2相比!

            int Sum( int n )
            {
            ??long sum = 0;

            ??for( int i=1; i<=n; i++ )
            ??{
            ? ?? ?? ?sum += i;
            ??}

            ??return sum;
            }

            所以程序員們需要敏感地將數(shù)學(xué)等知識(shí)用在程序設(shè)計(jì)中。

            posted @ 2006-07-31 18:00 HUYU 閱讀(3866) | 評(píng)論 (1)編輯 收藏

            面試必看(C/C++程序員應(yīng)聘常見(jiàn)面試題深入剖析(1))

            面試必看(C/C++程序員應(yīng)聘常見(jiàn)面試題深入剖析(1))

            1.引言

            本文的寫(xiě)作目的并不在于提供C/C++程序員求職面試指導(dǎo),而旨在從技術(shù)上分析面試題的內(nèi)涵。文中的大多數(shù)面試題來(lái)自各大論壇,部分試題解答也參考了網(wǎng)友的意見(jiàn)。

            許多面試題看似簡(jiǎn)單,卻需要深厚的基本功才能給出完美的解答。企業(yè)要求面試者寫(xiě)一個(gè)最簡(jiǎn)單的strcpy函數(shù)都可看出面試者在技術(shù)上究竟達(dá)到了怎樣的程度,我們能真正寫(xiě)好一個(gè)strcpy函數(shù)嗎?我們都覺(jué)得自己能,可是我們寫(xiě)出的strcpy很可能只能拿到10分中的2分。讀者可從本文看到strcpy函數(shù)從2分到10分解答的例子,看看自己屬于什么樣的層次。此外,還有一些面試題考查面試者敏捷的思維能力。

            分析這些面試題,本身包含很強(qiáng)的趣味性;而作為一名研發(fā)人員,通過(guò)對(duì)這些面試題的深入剖析則可進(jìn)一步增強(qiáng)自身的內(nèi)功。

            2.找錯(cuò)題

            試題1:

            void test1()
            {
            ? ?char string[10];
            ? ?char* str1 = "0123456789";

            ? ???strcpy( string, str1 );
            }

            試題2:

            void test2()
            {
            ? ?char string[10], str1[10];
            ? ???int i;

            ? ???for(i=0; i<10; i++)
            ? ???{
            ? ?? ???str1[i] = 'a';

            ? ???}

            ? ???strcpy( string, str1 );
            }

            試題3:

            void test3(char* str1)
            {
            ? ?char string[10];

            ? ?if( strlen( str1 ) <= 10 )
            ? ???{
            ? ?? ?? ?? ?strcpy( string, str1 );
            ? ???}
            }

            解答:

            試題1字符串str1需要11個(gè)字節(jié)才能存放下(包括末尾的’\0’),而string只有10個(gè)字節(jié)的空間,strcpy會(huì)導(dǎo)致數(shù)組越界;

            對(duì)試題2,如果面試者指出字符數(shù)組str1不能在數(shù)組內(nèi)結(jié)束可以給3分;如果面試者指出strcpy(string, str1)調(diào)用使得從str1內(nèi)存起復(fù)制到string內(nèi)存起所復(fù)制的字節(jié)數(shù)具有不確定性可以給7分,在此基礎(chǔ)上指出庫(kù)函數(shù)strcpy工作方式的給10分;

            對(duì)試題3,if(strlen(str1) <= 10)應(yīng)改為if(strlen(str1) < 10),因?yàn)閟trlen的結(jié)果未統(tǒng)計(jì)’\0’所占用的1個(gè)字節(jié)。

            剖析:

            考查對(duì)基本功的掌握:

            (1)字符串以’\0’結(jié)尾;

            (2)對(duì)數(shù)組越界把握的敏感度;

            (3)庫(kù)函數(shù)strcpy的工作方式,如果編寫(xiě)一個(gè)標(biāo)準(zhǔn)strcpy函數(shù)的總分值為10,下面給出幾個(gè)不同得分的答案:

            2分

            void strcpy( char *strDest, char *strSrc )
            {
              while( (*strDest++ = * strSrc++) != ‘\0’ );
            }

            4分
            void strcpy( char *strDest, const char *strSrc )

            //將源字符串加const,表明其為輸入?yún)?shù),加2分
            {
              while( (*strDest++ = * strSrc++) != ‘\0’ );
            }
            7分
            void strcpy(char *strDest, const char *strSrc)??
            {
            //對(duì)源地址和目的地址加非0斷言,加3分
             assert( (strDest != NULL) && (strSrc != NULL) );

             while( (*strDest++ = * strSrc++)??!=??‘\0’ );

            }
            10分

            //為了實(shí)現(xiàn)鏈?zhǔn)讲僮鳎瑢⒛康牡刂贩祷兀?分!
            char * strcpy( char *strDest, const char *strSrc )??
            {
             assert( (strDest != NULL) && (strSrc != NULL) );
            char *address = strDest;??

             while( (*strDest++ = * strSrc++) != ‘\0’ );

            ??return address;
            }

            從2分到10分的幾個(gè)答案我們可以清楚的看到,小小的strcpy竟然暗藏著這么多玄機(jī),真不是蓋的!需要多么扎實(shí)的基本功才能寫(xiě)一個(gè)完美的strcpy啊!

            (4)對(duì)strlen的掌握,它沒(méi)有包括字符串末尾的'\0'。

            讀者看了不同分值的strcpy版本,應(yīng)該也可以寫(xiě)出一個(gè)10分的strlen函數(shù)了,完美的版本為:

            int strlen( const char *str )? ? //輸入?yún)?shù)const
            {
            ? ???assert( strt != NULL );? ? //斷言字符串地址非0
            ? ???int len;

            ? ???while( (*str++) != '\0' )
            ? ???{??
            ? ?? ?? ?? ?len++;
            ? ???}

            ? ???return len;

            }

            試題4:

            void GetMemory( char *p )
            {
            ? ?p = (char *) malloc( 100 );
            }

            void Test( void )
            {
            ? ?char *str = NULL;

            ? ?GetMemory( str );
            ? ?strcpy( str, "hello world" );
            ? ?printf( str );
            }
            試題5:

            char *GetMemory( void )
            {? ?
            ? ???char p[] = "hello world";? ?? ?

            ? ???return p;??
            }
            void Test( void )
            {? ?
            ? ???char *str = NULL;??

            ? ???str = GetMemory();? ?
            ? ???printf( str );? ?
            }

            試題6:
            void GetMemory( char **p, int num )
            {
            ? ???*p = (char *) malloc( num );
            }
            void Test( void )
            {
            ? ???char *str = NULL;

            ? ???GetMemory( &str, 100 );
            ? ???strcpy( str, "hello" );
            ? ???printf( str );
            }

            試題7:

            void Test( void )
            {
            ? ???char *str = (char *) malloc( 100 );

            ? ???strcpy( str, "hello" );
            ? ???free( str );

            ? ???...??//省略的其它語(yǔ)句

            }

            解答:

            試題4傳入中GetMemory( char *p )函數(shù)的形參為字符串指針,在函數(shù)內(nèi)部修改形參并不能真正的改變傳入形參的值,執(zhí)行完

            char *str = NULL;

            GetMemory( str );

            后的str仍然為NULL;

            試題5中

            ? ???char p[] = "hello world";? ?

            ? ???return p;??

            的p[]數(shù)組為函數(shù)內(nèi)的局部自動(dòng)變量,在函數(shù)返回后,內(nèi)存已經(jīng)被釋放。這是許多程序員常犯的錯(cuò)誤,其根源在于不理解變量的生存期。
            試題6的GetMemory避免了試題4的問(wèn)題,傳入GetMemory的參數(shù)為字符串指針的指針,但是在GetMemory中執(zhí)行申請(qǐng)內(nèi)存及賦值語(yǔ)句

            p = (char *) malloc( num );

            后未判斷內(nèi)存是否申請(qǐng)成功,應(yīng)加上:

            if ( p == NULL )
            {

            ? ?...//進(jìn)行申請(qǐng)內(nèi)存失敗處理
             }

            試題7存在與試題6同樣的問(wèn)題,在執(zhí)行

            char *str = (char *) malloc(100);

            后未進(jìn)行內(nèi)存是否申請(qǐng)成功的判斷;另外,在free(str)后未置str為空,導(dǎo)致可能變成一個(gè)“野”指針,應(yīng)加上:

            str = NULL;

            試題6的Test函數(shù)中也未對(duì)malloc的內(nèi)存進(jìn)行釋放。

            剖析:

            試題4~7考查面試者對(duì)內(nèi)存操作的理解程度,基本功扎實(shí)的面試者一般都能正確的回答其中50~60的錯(cuò)誤。但是要完全解答正確,卻也絕非易事。

            對(duì)內(nèi)存操作的考查主要集中在:

            (1)指針的理解;

            (2)變量的生存期及作用范圍;

            (3)良好的動(dòng)態(tài)內(nèi)存申請(qǐng)和釋放習(xí)慣。

            在看看下面的一段程序有什么錯(cuò)誤:

            swap( int* p1,int* p2 )
            {
            ? ???int *p;

            ? ???*p = *p1;
            ? ???*p1 = *p2;
            ? ???*p2 = *p;
            }

            在swap函數(shù)中,p是一個(gè)“野”指針,有可能指向系統(tǒng)區(qū),導(dǎo)致程序運(yùn)行的崩潰。在VC++中DEBUG運(yùn)行時(shí)提示錯(cuò)誤“Access Violation”。該程序應(yīng)該改為:

            swap( int* p1,int* p2 )
            {
            ? ???int p;

            ? ???p = *p1;
            ? ???*p1 = *p2;
            ? ???*p2 = p;
            }

            posted @ 2006-07-31 17:59 HUYU 閱讀(509) | 評(píng)論 (0)編輯 收藏

            C++中const類(lèi)型(二)----常指針和常引用

            C++中const類(lèi)型(二)----常指針和常引用

            2.常指針和常引用

            (1)常指針

            ? ?? ?使用const指針時(shí),由于const的位置不同,而含意不同。下面舉兩個(gè)例子,說(shuō)明它們的區(qū)別。下面定義的一個(gè)指向字符串的常量指針:
            char *const ptr1 = stirngprt1;
            其中,ptrl是一個(gè)常量指針。因此,下面賦值是非法的。
            ptr1 = stringprt2;
            而下面的賦值是合法的:
            *ptr1 = “ m ”;
            因?yàn)橹羔榩tr1所指向的變量是可以更新的,不可更新的是常量指針ptr1所指的方向(別的字符串)。下面定義了一個(gè)指向字符串常量的指針:
            const *ptr2 = stringprt;
            其中,ptr2是一個(gè)指向字符串常量的指針。Ptr2所指向的字符串不能更新,而ptr2是可以更新的。因此:
            *ptr1 = “ x ”;
            是非法的,而:
            ptr2 = stringptr2;
            是合法的。

            ? ? 所以,在使用const修飾指針時(shí),應(yīng)該注意const的位置。定義一個(gè)指向字符串的指針常量和定義一個(gè)指向字符串常量的指針時(shí),const修飾符的位置不同,前者const放在*和指針名之間,后者const放在類(lèi)型說(shuō)明符前。

            (2)常引用

            ? ?? ?使用const修飾符也可以說(shuō)明引用,被說(shuō)明的引用為常引用,該引用所引用的對(duì)象不能被更新。其定義格式如下:

            const<類(lèi)型說(shuō)明符>&<引用名>

            例如:

            const double &v;

            在實(shí)際應(yīng)用中,常指針和常引用往往用來(lái)作函數(shù)的形參,這樣的參數(shù)稱(chēng)為常參數(shù)。

            ? ?? ?在C++面向?qū)ο蟮某绦蛟O(shè)計(jì)中,指針和引用使用得較多,其中使用const修飾的常指針和常引用用得更多。使用常參數(shù)則表明該函數(shù)不會(huì)更新某個(gè)參數(shù)所指向或所引用的對(duì)象,這樣在參數(shù)傳遞過(guò)程中就不需要拷貝化構(gòu)造函數(shù),這將會(huì)提高程序的運(yùn)行效率。

            下面舉一例子說(shuō)明常指針作函數(shù)參數(shù)的用法:

            #include <iostream.h>

            const int N = 6;
            void print(const int *p, int n);

            void main()
            {
            ? ? ? ? int array[N];

            ? ? for(int i = 0; i < N; i++)
            ? ? ? ? {
            ? ? ? ? ? ? ? ? cin >> array[i];
            ? ? ? ? }

            ? ? ? ? print(array, N);
            }
            void print(const int *p, int n)
            {
            ? ? ? ? cout << "{" << *p;
            ? ? ? ?
            ? ? for(int i = 1; i < N; i++)
            ? ? ? ? {
            ? ? ? ? ? ? ? ? cout <<"," << *(p+i);
            ? ? ? ? }
            }

            posted @ 2006-07-31 16:10 HUYU 閱讀(3373) | 評(píng)論 (1)編輯 收藏

            堆和棧的區(qū)別

            堆和棧的區(qū)別

            [b][color=Red]堆:[/color][/b]  是大家共有的空間,分全局堆和局部堆。全局堆就是所有沒(méi)有分配的空間,局部堆就是用戶分配的空間。堆在操作系統(tǒng)對(duì)進(jìn)程 初始化的時(shí)候分配,運(yùn)行過(guò)程中也可以向系統(tǒng)要額外的堆,但是記得用完了要還給操作系統(tǒng),要不然就是內(nèi)存泄漏。

            [b][color=Red]棧:[/color][/b] 是個(gè)線程獨(dú)有的,保存其運(yùn)行狀態(tài)和局部自動(dòng)變量的。棧在線程開(kāi)始的時(shí)候初始化,每個(gè)線程的棧互相獨(dú)立,因此 ,棧是 thread safe的。每個(gè)C ++對(duì)象的數(shù)據(jù)成員也存在在棧中,每個(gè)函數(shù)都有自己的棧,棧被用來(lái)在函數(shù) 之間傳遞參數(shù)。操作系統(tǒng)在切換線程的時(shí)候會(huì)自動(dòng)的切換棧,就是切換 SS/ESP寄存器。棧空間不需要在高級(jí)語(yǔ)言里面顯式的分配 和釋放。

            [b][color=Black]堆和棧的區(qū)別[/color][/b]

            [b]一、預(yù)備知識(shí)—程序的內(nèi)存分配[/b]
            一個(gè)由c/C++編譯的程序占用的內(nèi)存分為以下幾個(gè)部分:
            1、棧區(qū)(stack)—? ?由編譯器自動(dòng)分配釋放 ,存放函數(shù)的參數(shù)值,局部變量的值等。其操作方式類(lèi)似于數(shù)據(jù)結(jié)構(gòu)中的棧。

            2、堆區(qū)(heap) —? ?一般由程序員分配釋放, 若程序員不釋放,程序結(jié)束時(shí)可能由OS回收 。注意它與數(shù)據(jù)結(jié)構(gòu)中的堆是兩回事,分配方式倒是類(lèi)似于鏈表。

            3、全局區(qū)(靜態(tài)區(qū))(static)—,全局變量和靜態(tài)變量的存儲(chǔ)是放在一塊的,初始化的全局變量和靜態(tài)變量在一塊區(qū)域, 未初始化的全局變量和未初始化的靜態(tài)變量在相鄰的另一塊區(qū)域。 - 程序結(jié)束后由系統(tǒng)釋放。

            4、文字常量區(qū)??—常量字符串就是放在這里的。 程序結(jié)束后由系統(tǒng)釋放。

            5、程序代碼區(qū)—存放函數(shù)體的二進(jìn)制代碼。

            二、例子程序
            [code]
            //main.cpp
            int a = 0; 全局初始化區(qū)
            char *p1; 全局未初始化區(qū)
            main()
            {
            int b; 棧
            char s[] = "abc"; 棧
            char *p2; 棧
            char *p3 = "123456"; 123456\0在常量區(qū),p3在棧上。
            static int c =0; 全局(靜態(tài))初始化區(qū)
            p1 = (char *)malloc(10);
            p2 = (char *)malloc(20);
            分配得來(lái)得10和20字節(jié)的區(qū)域就在堆區(qū)。
            strcpy(p1, "123456"); 123456\0放在常量區(qū),編譯器可能會(huì)將它與p3所指向的"123456"優(yōu)化成一個(gè)地方。
            }
            [/code]


            [b]二、堆和棧的理論知識(shí)[/b]
            2.1申請(qǐng)方式
            stack:
            由系統(tǒng)自動(dòng)分配。 例如,聲明在函數(shù)中一個(gè)局部變量 int b; 系統(tǒng)自動(dòng)在棧中為b開(kāi)辟空間
            heap:
            需要程序員自己申請(qǐng),并指明大小,在c中malloc函數(shù)
            如p1 = (char *)malloc(10);
            在C++中用new運(yùn)算符
            如p2 = (char *)malloc(10);
            但是注意p1、p2本身是在棧中的。


            2.2
            申請(qǐng)后系統(tǒng)的響應(yīng)
            棧:只要棧的剩余空間大于所申請(qǐng)空間,系統(tǒng)將為程序提供內(nèi)存,否則將報(bào)異常提示棧溢出。
            堆:首先應(yīng)該知道操作系統(tǒng)有一個(gè)記錄空閑內(nèi)存地址的鏈表,當(dāng)系統(tǒng)收到程序的申請(qǐng)時(shí), 會(huì)遍歷該鏈表,尋找第一個(gè)空間大于所申請(qǐng)空間的堆結(jié)點(diǎn),然后將該結(jié)點(diǎn)從空閑結(jié)點(diǎn)鏈表中刪除,并將該結(jié)點(diǎn)的空間分配給程序,另外,對(duì)于大多數(shù)系統(tǒng),會(huì)在這塊內(nèi)存空間中的首地址處記錄本次分配的大小,這樣,代碼中的delete語(yǔ)句才能正確的釋放本內(nèi)存空間。另外,由于找到的堆結(jié)點(diǎn)的大小不一定正好等于申請(qǐng)的大小,系統(tǒng)會(huì)自動(dòng)的將多余的那部分重新放入空閑鏈表中。

            2.3申請(qǐng)大小的限制
            棧:在Windows下,棧是向低地址擴(kuò)展的數(shù)據(jù)結(jié)構(gòu),是一塊連續(xù)的內(nèi)存的區(qū)域。這句話的意思是棧頂?shù)牡刂泛蜅5淖畲笕萘渴窍到y(tǒng)預(yù)先規(guī)定好的,在WINDOWS下,棧的大小是2M(也可能是1M,它是一個(gè)編譯時(shí)就確定的常數(shù)),如果申請(qǐng)的空間超過(guò)棧的剩余空間時(shí),將提示overflow。因此,能從棧獲得的空間較小

            堆:堆是向高地址擴(kuò)展的數(shù)據(jù)結(jié)構(gòu),是不連續(xù)的內(nèi)存區(qū)域。這是由于系統(tǒng)是用鏈表來(lái)存儲(chǔ)的空閑內(nèi)存地址的,自然是不連續(xù)的,而鏈表的遍歷方向是由低地址向高地址。堆的大小受限于計(jì)算機(jī)系統(tǒng)中有效的虛擬內(nèi)存。由此可見(jiàn),堆獲得的空間比較靈活,也比較大。


            2.4申請(qǐng)效率的比較:
            棧由系統(tǒng)自動(dòng)分配,速度較快。但程序員是無(wú)法控制的。
            堆是由new分配的內(nèi)存,一般速度比較慢,而且容易產(chǎn)生內(nèi)存碎片,不過(guò)用起來(lái)最方便.
            另外,在WINDOWS下,最好的方式是用VirtualAlloc分配內(nèi)存,他不是在堆,也不是在棧是直接在進(jìn)程的地址空間中保留一快內(nèi)存,雖然用起來(lái)最不方便。但是速度快,也最靈活。

            2.5堆和棧中的存儲(chǔ)內(nèi)容
            棧: 在函數(shù)調(diào)用時(shí),第一個(gè)進(jìn)棧的是主函數(shù)中后的下一條指令(函數(shù)調(diào)用語(yǔ)句的下一條可執(zhí)行語(yǔ)句)的地址,然后是函數(shù)的各個(gè)參數(shù),在大多數(shù)的C編譯器中,參數(shù)是由右往左入棧的,然后是函數(shù)中的局部變量。注意靜態(tài)變量是不入棧的。
            當(dāng)本次函數(shù)調(diào)用結(jié)束后,局部變量先出棧,然后是參數(shù),最后棧頂指針指向最開(kāi)始存的地址,也就是主函數(shù)中的下一條指令,程序由該點(diǎn)繼續(xù)運(yùn)行。
            堆:一般是在堆的頭部用一個(gè)字節(jié)存放堆的大小。堆中的具體內(nèi)容有程序員安排。

            2.6存取效率的比較

            char s1[] = "aaaaaaaaaaaaaaa";
            char *s2 = "bbbbbbbbbbbbbbbbb";
            aaaaaaaaaaa是在運(yùn)行時(shí)刻賦值的;
            而bbbbbbbbbbb是在編譯時(shí)就確定的;
            但是,在以后的存取中,在棧上的數(shù)組比指針?biāo)赶虻淖址?例如堆)快。
            比如:
            [code]
            void main()
            {
            char a = 1;
            char c[] = "1234567890";
            char *p ="1234567890";
            a = c[1];
            a = p[1];
            return;
            }
            [/code]
            對(duì)應(yīng)的匯編代碼
            [code]
            10: a = c[1];
            00401067 8A 4D F1 mov cl,byte ptr [ebp-0Fh]
            0040106A 88 4D FC mov byte ptr [ebp-4],cl
            11: a = p[1];
            0040106D 8B 55 EC mov edx,dword ptr [ebp-14h]
            00401070 8A 42 01 mov al,byte ptr [edx+1]
            00401073 88 45 FC mov byte ptr [ebp-4],al
            [/code]
            第一種在讀取時(shí)直接就把字符串中的元素讀到寄存器cl中,而第二種則要先把指針值讀到edx中,在根據(jù)
            edx讀取字符,顯然慢了。


            2.7小結(jié):
            堆和棧的區(qū)別可以用如下的比喻來(lái)看出:
            使用棧就象我們?nèi)ワ堭^里吃飯,只管點(diǎn)菜(發(fā)出申請(qǐng))、付錢(qián)、和吃(使用),吃飽了就走,不必理會(huì)切菜、洗菜等準(zhǔn)備工作和洗碗、刷鍋等掃尾工作,他的好處是快捷,但是自由度小。
            使用堆就象是自己動(dòng)手做喜歡吃的菜肴,比較麻煩,但是比較符合自己的口味,而且自由度大。

            查看完整版本: http://bbs.very91.com:8000/viewthread.php?tid=272

            posted @ 2006-07-31 15:38 HUYU 閱讀(222) | 評(píng)論 (0)編輯 收藏

            The Complete Guide to C++ Strings

            http://www.codeproject.com/string/CPPStringGuide1.asp?(Part I - Win32 Character Encodings)
            http://www.codeproject.com/string/cppstringguide2.asp
            ????(Part II - String Wrapper Classes)
            Author:? http://www.voidnish.com

            posted @ 2006-07-28 15:58 HUYU 閱讀(121) | 評(píng)論 (0)編輯 收藏

            華為另外筆試題

            1. 找錯(cuò)

            void test1()
            {
            ??? char string[10];
            ??? char* str1="0123456789";
            ??? strcpy(string, str1);
            }

            答:表面上并且編譯都不會(huì)錯(cuò)誤。但如果string數(shù)組原意表示的是字符串的話,那這個(gè)賦值就沒(méi)有達(dá)到意圖。最好定義為char string[11],這樣最后一個(gè)元素可以存儲(chǔ)字符串結(jié)尾符'\0';


            void test2()
            {
            ??? char string[10], str1[10];
            ? for(int I=0; I<10;I++)
            ? {
            ??? str1[I] ='a';
            ? }
            ? strcpy(string, str1);
            }

            答:strcpy使用錯(cuò)誤,strcpy只有遇到字符串末尾的'\0'才會(huì)結(jié)束,而str1并沒(méi)有結(jié)尾標(biāo)志,導(dǎo)致strcpy函數(shù)越界訪問(wèn),不妨讓str1[9]='\0',這樣就正常了。


            void test3(char* str1)
            {
            ??? char string[10];
            ??? if(strlen(str1)<=10)
            {
            ??? strcpy(string, str1);
            }
            }

            答:這又會(huì)出現(xiàn)第一道改錯(cuò)題的錯(cuò)誤了。strlen(str1)算出來(lái)的值是不包含結(jié)尾符'\0'的,如果str1剛好為10個(gè)字符+1結(jié)尾符,string就得不到結(jié)尾符了。可將strlen(str1)<=10改為strlen(str1)<10。

            2. 找錯(cuò)

            #define MAX_SRM 256

            DSN get_SRM_no()
            {
            ??? static int SRM_no;
            ??? int I;
            ??? for(I=0;I<MAX_SRM;I++,SRM_no++)
            ? {
            ??? SRM_no %= MAX_SRM;
            ??? if(MY_SRM.state==IDLE)
            ??? {
            ????? break;
            ??? }
            ? }
            ? if(I>=MAX_SRM)
            ??? return (NULL_SRM);
            ? else
            ??? return SRM_no;
            }

            答:我不知道這段代碼的具體功能,但明顯有兩個(gè)錯(cuò)誤
            1,SRM_no沒(méi)有賦初值
            2,由于static的聲明,使該函數(shù)成為不可重入(即不可預(yù)測(cè)結(jié)果)函數(shù),因?yàn)镾RM_no變量放在程序的全局存儲(chǔ)區(qū)中,每次調(diào)用的時(shí)候還可以保持原來(lái)的賦值。這里應(yīng)該去掉static聲明。

            3. 寫(xiě)出程序運(yùn)行結(jié)果

            int sum(int a)
            {
            ??? auto int c=0;
            ??? static int b=3;
            ? c+=1;
            ? b+=2;
            ? return(a+b+c);
            }
            ?void main()
            {
            ??? int I;
            ? int a=2;
            ? for(I=0;I<5;I++)
            ? {
            ??? printf("%d,", sum(a));
            ? }
            }

            答:8,10,12,14,16
            該題比較簡(jiǎn)單。只要注意b聲明為static靜態(tài)全局變量,其值在下次調(diào)用時(shí)是可以保持住原來(lái)的賦值的就可以。
            ----------------------------------------------
            插播廣告啦:版權(quán)所有:朱科 歡迎光臨我的網(wǎng)站:www.goodsoft.cn,各位轉(zhuǎn)貼別刪,勞動(dòng)成果啊
            ----------------------------------------------
            4.

            int func(int a)
            {
            ??? int b;
            ??? switch(a)
            ??? {
            ??????? case 1: b=30;
            ??????? case 2: b=20;
            ??????? case 3: b=16;
            ??????? default: b=0;
            ?? }
            ?? return b;
            }

            則func(1)=?
            答:func(1)=0,因?yàn)闆](méi)有break語(yǔ)句,switch中會(huì)一直計(jì)算到b=0。這是提醒我們不要忘了break。呵呵。

            5:

            ? int a[3];
            ? a[0]=0; a[1]=1; a[2]=2;
            ? int *p, *q;
            ? p=a;
            ? q=&a[2];

            則a[q-p]=?
            答:a[q-p]=a[2]=2;這題是要告訴我們指針的運(yùn)算特點(diǎn)

            6.
            定義 int **a[3][4], 則變量占有的內(nèi)存空間為:_____
            答:此處定義的是指向指針的指針數(shù)組,對(duì)于32位系統(tǒng),指針占內(nèi)存空間4字節(jié),因此總空間為3×4×4=48。

            7.
            編寫(xiě)一個(gè)函數(shù),要求輸入年月日時(shí)分秒,輸出該年月日時(shí)分秒的下一秒。如輸入2004年12月31日23時(shí)59分59秒,則輸出2005年1月1日0時(shí)0分0秒。
            答:

            /*輸入年月日時(shí)分秒,輸出年月日時(shí)分秒的下一秒,輸出仍然在原內(nèi)存空間*/
            void NextMinute(int *nYear,int *nMonth,int *nDate,int *nHour,int *nMinute,int *nSecond)
            {
            ? int nDays;
            ? (*nSecond)++;? // 秒加1
            ? if(*nSecond>=60)? // 秒滿60,做出特殊處理,下面時(shí),日,月等類(lèi)同
            ? {
            ??? *nSecond=0;
            ??? (*nMinute)++;
            ??? if(*nMinute>=60)
            ??? {
            ????? *nMinute=0;
            ????? (*nHour)++;
            ????? if(*nHour>=24)
            ????? {
            ??????? *nHour=0;
            ??????? (*nDate)++;
            ??????? switch(*nMonth)
            ??????? {
            ????????? case 1:
            ????????? case 3:
            ????????? case 5:
            ????????? case 7:
            ????????? case 8:
            ????????? case 10:
            ????????? case 12:
            ??????????? nDays=31;
            ????????? break;
            ????????? case 2:// 判斷閏年
            ??????????? if(*nYear%400==0||*nYear%100!=0&&*nYear%4==0)
            ??????????? {
            ??????????? nDays=29;
            ??????????? }
            ??????????? else
            ??????????? {
            ??????????? nDays=28;
            ??????????? }
            ????????? break;
            ????????? default:
            ??????????? nDays=30;
            ????????? break;
            ??????? }
            ??????? if(*nDate>nDays)
            ??????? {
            ????????? *nDate=1;
            ????????? (*nMonth)++;
            ????????? if(*nMonth>12)
            ????????? {
            ????????? *nMonth=1;
            ????????? (*nYear)++;
            ????????? }
            ??????? }
            ????? }
            ??? }
            ? }
            }
            /*示例可運(yùn)行代碼*/
            void main()
            {
            ? int nYear=2004,nMonth=12,nDate=31,nHour=59,nMinute=59,nSecond=59;
            ? NextMinute(&nYear,&nMonth,&nDate,&nHour,&nMinute,&nSecond);
            ? printf("The result:%d-%d-%d %d:%d:%d",nYear,nMonth,nDate,nHour,nMinute,nSecond);
            }

            posted @ 2006-07-28 15:46 HUYU 閱讀(795) | 評(píng)論 (0)編輯 收藏

            intel筆試題&面試題:

            intel比試題&面試題:

            (熟悉大公司的題目,并不僅僅是為了進(jìn)這些公司,而是很多國(guó)內(nèi)公司考察內(nèi)容都很接近而已.)

            2005筆試 :

            1。高效的內(nèi)存管理
            2。8皇后問(wèn)題
            面試q:
            (2) 編譯中的問(wèn)題:全局變量如int i=5; int*(pf)()=foo; 分別在何時(shí)被初始化?設(shè)計(jì)時(shí)候如何具體的實(shí)現(xiàn)。

            (3) OS相關(guān)的問(wèn)題,內(nèi)存訪問(wèn),cache等(包括cache在整個(gè)系統(tǒng)中的位置,畫(huà)出來(lái),并解釋?zhuān)?br />
            (4) 解釋例如mov ax,100H 這樣一條指令的cpu, os, memory等都完成了什么樣的工作。

            (5) Strlen()的C語(yǔ)言實(shí)現(xiàn),不能使用任何變量。

            (6) 編譯中display表的一些問(wèn)題

            (7) 一個(gè)hash函數(shù),輸入隨機(jī),現(xiàn)發(fā)生沖突,如數(shù)據(jù)集中在某幾條中,問(wèn)怎樣處理hash函數(shù)保證高效的訪問(wèn),怎樣實(shí)現(xiàn)?

            (8) 把Switch()case…語(yǔ)句翻譯成三元組。

            (9) 一個(gè)byte(用C語(yǔ)言實(shí)現(xiàn)計(jì)數(shù)其中1的個(gè)數(shù)),給出最高效的實(shí)現(xiàn)方法。(位域)或者查表最快的;

            (10) 上海有多少個(gè)加油站?你是怎樣解決這一問(wèn)題?

            (11) C語(yǔ)言參數(shù)的入棧順序?為什么這么實(shí)現(xiàn)?

            (12) 你的最大的優(yōu)點(diǎn)和缺點(diǎn)分別是什么?

            (13) C語(yǔ)言中字符串的翻轉(zhuǎn),最高效率(時(shí)間和空間)的實(shí)現(xiàn)?

            2004

            1. 三個(gè)float:a,b,c 問(wèn)值
            (a+b)+c==(b+a)+c
            (a+b)+c==(a+c)+b

            2. 把一個(gè)鏈表反向填空

            3. 設(shè)計(jì)一個(gè)重采樣系統(tǒng),說(shuō)明如何anti-alias

            4. y1(n)=x(2n), y2(n)=x(n/2),問(wèn):
            如果y1為周期函數(shù),那么x是否為周期函數(shù)
            如果x為周期函數(shù),那么y1是否為周期函數(shù)
            如果y2為周期函數(shù),那么x是否為周期函數(shù)
            如果x為周期函數(shù),那么y2是否為周期函數(shù)

            5. 如果模擬信號(hào)的帶寬為5KHZ,要用8K的采樣率,怎么辦。

            4. 某個(gè)程序在一個(gè)嵌入式系統(tǒng)(200M的CPU,50M的SDRAM)中已經(jīng)最化了,換到另一個(gè)系統(tǒng)


            (300M的CPU,50M的SDRAM)中運(yùn)行,還需要優(yōu)化嗎?

            5. x^4+a*x^3+x^2+c*x+d最少需要作幾次乘法

            6. 什么情況下,sin(x+y)+y ~ ....

            7. 下面哪種排序法對(duì)12354最快
            a quick sort
            b.buble sort
            c.merge sort

            8. 哪種結(jié)構(gòu),平均來(lái)講,獲取一個(gè)值最快
            a. binary tree
            b. hash table
            c. stack


            1。 pipeline
            2。 程序流程圖題目
            3。 哲學(xué)家進(jìn)餐
            4。 32bit,64bit,兩個(gè)平臺(tái)上complier,linker,os kernel,library,debuger的性質(zhì)
            5。 const char * vs char const * (?)
            6。 GDT and LDT
            7。 1+1<<1
            8。 Stack性質(zhì)
            9。 ???
            10。正方體中壓力什么的。。。

            大題
            1。f[40,400],log10變換
            2。ACPI
            3。讀程序
            4。頻譜,采樣分析


            大題
            1。寫(xiě)出下列信號(hào)的奈虧斯特頻率
            (1)f(t)=1+cos(2000pait)+sin(4000pait)
            (2)f(t)=sin(4000pait)/pait
            (3)f(t)=(sin(4000pait)的平方)/pait
            2.填程序
            把一個(gè)計(jì)算m^n的程序填充完整
            大概的意思是:
            有一個(gè)全局?jǐn)?shù)組char s[BUFSIZE]
            利用這個(gè)數(shù)組計(jì)算,就是每個(gè)單元存放計(jì)算結(jié)果的一位,index小的存放低位,index大
            的存放高位
            3。有兩個(gè)線程
            void producer()
            {
            while(1)
            {
            GeneratePacket();
            PutPacketIntoBuffer();
            Signal(customer);
            }
            }
            void customer()
            {
            while(1)
            {
            WaitForSignal();
            if(PacketInBuffer>10)
            {
            ReadAllPackets();
            ProcessPackets();
            }
            }
            }
            (1)有沒(méi)有其他方法可以提高程序的性能
            (2)可不可以不使用信號(hào)之類(lèi)的機(jī)制來(lái)實(shí)現(xiàn)上述的功能
            4。優(yōu)化下面的程序
            (0)sum=0
            (1)I=1
            (2)T1=4*I
            (3)T2=address(A)-4
            (4)T3=T2[T1]
            (5)T4=address(B)-4
            (6)T5=4*I
            (7)T6=T4[T5]
            (8)T7=T3*T5
            (9)sum=sum+T6
            (10)I=I+1
            (10)IF I<20 GOTO (2)


            1。關(guān)于c的main函數(shù)
            2。15個(gè)人循環(huán)報(bào)數(shù),報(bào)到N的出列,找出最后留下的那個(gè)人,算法填空題
            2。找出一個(gè)給出的并行解決方案的錯(cuò)誤情況
            3。關(guān)于GPIO,intel的四種體系結(jié)構(gòu)

            選擇題10題
            有關(guān)vc和c,指針,HyporThreading Dual-core等等
            看也看不懂的


            2003年的

            1:概率題。x,y為隨機(jī)變量,聯(lián)合概率密度 f(x,y) = intig(0,1)*dx*intig(0,x)*k*d
            y,k為常數(shù),求k=? E(xy)=?
            注:intig(a,b)為a到b的定積分。

            2:概率題。A,B為隨機(jī)事件,以下哪個(gè)正確
            A. P(A U B)*p(AB) <= P(A)P(B)
            B. P(A U B)*p(AB) >= P(A)P(B)
            C. P(A U B)*p(AB) <= P(A) + P(B)
            D. P(A U B)*p(AB) >= P(A) + P(B)

            3: 信道帶寬200kHz,信噪比10dB,求信道波特率=?

            4:以下代碼運(yùn)行結(jié)果是什么
            int main()
            {
            int a,b,c,abc = 0;
            a=b=c=40;
            if(c)
            {
            int abc;
            abc = a*b+c;
            }
            printf("%d,%d", abc, c);
            return 0;
            }

            5:給出了從紐約出發(fā)和到達(dá)落山雞的各種航班信息,寫(xiě)出找到一條從紐約到落山雞的最
            短距離的航班組合的代碼。

            6:從計(jì)算機(jī)圖形上截取某個(gè)物體邊緣的若干個(gè)坐標(biāo),求這個(gè)物體面積,并跟判斷是方形
            還是圓形,為啥。(坐標(biāo)不記得,大概是個(gè)圓
            )。

            7:離散卷機(jī)與DFT的區(qū)別與關(guān)系。快速求不滿足2^N長(zhǎng)度的離散傅立葉變換的方法有哪些
            ?如何用fft求N*M點(diǎn)的離散卷機(jī)?

            8:給出fir和iir的優(yōu)缺點(diǎn)。

            9:如何計(jì)算線性標(biāo)量量化器的量化噪聲?需要那些假設(shè)?

            posted @ 2006-07-28 15:29 HUYU 閱讀(1468) | 評(píng)論 (0)編輯 收藏

            普天C++筆試題

            普天C++筆試題

              1.實(shí)現(xiàn)雙向鏈表刪除一個(gè)節(jié)點(diǎn)P,在節(jié)點(diǎn)P后插入一個(gè)節(jié)點(diǎn),寫(xiě)出這兩個(gè)函數(shù)。
              2.寫(xiě)一個(gè)函數(shù),將其中的 都轉(zhuǎn)換成4個(gè)空格。
              3.Windows程序的入口是哪里?寫(xiě)出Windows消息機(jī)制的流程。
              4.如何定義和實(shí)現(xiàn)一個(gè)類(lèi)的成員函數(shù)為回調(diào)函數(shù)?
              5.C++里面是不是所有的動(dòng)作都是main()引起的?如果不是,請(qǐng)舉例。
              6.C++里面如何聲明const void f(void)函數(shù)為C程序中的庫(kù)函數(shù)?
              7.下列哪兩個(gè)是等同的
              int b;
              A const int* a = &b;
              B const* int a = &b;
              C const int* const a = &b;
              D int const* const a = &b;
              8.內(nèi)聯(lián)函數(shù)在編譯時(shí)是否做參數(shù)類(lèi)型檢查?
              void g(base & b){
               b.play;
              }
              void main(){
               son s;

            發(fā)信人: wildboy
            標(biāo) 題: 上午潤(rùn)匯的筆試題
            發(fā)信站: BBS 水木清華站 (Sat Nov 30 13:18:53 2002), 站內(nèi)

            c++最后幾個(gè)大題目是
            1,實(shí)現(xiàn)雙向鏈表刪除一個(gè)節(jié)點(diǎn)P,在節(jié)點(diǎn)P后插入一個(gè)節(jié)點(diǎn),這兩個(gè)函數(shù)。
            2,寫(xiě)一個(gè)函數(shù)將其中的\t都轉(zhuǎn)換成4個(gè)空格。
            3,windows程序的入口是哪里?寫(xiě)出windows消息機(jī)制的流程。
            4,如何定義和實(shí)現(xiàn)一個(gè)類(lèi)的成員函數(shù)為回調(diào)函數(shù)。

            還有前面的幾個(gè):
            1. class A{
            int a;
            int b;
            }
            問(wèn)的是編譯時(shí)的default constructor function的問(wèn)題。
            還有一個(gè)說(shuō),A有其他自己定義的構(gòu)造函數(shù),問(wèn)是否還有default constructor function
            還是什么來(lái)著,記不清樂(lè)。
            2. c++里面是不是所有的動(dòng)作都是main()引起的?如果不是,請(qǐng)舉例。
            3. c++里面如何聲明const void f(void)函數(shù)為C庫(kù)函數(shù)?(這個(gè)我前幾天還看來(lái)著,
            居然就忘記樂(lè), )

            對(duì)了,還考樂(lè)一些關(guān)于const的問(wèn)題
            問(wèn)下列哪兩個(gè)是等同的
            int b;
            A const int* a = &b;
            B const* int a = &b;
            C const int* const a = &b;
            D int const* const a = &b;

            還有一個(gè)是考類(lèi)的成員函數(shù)是 void f() const;型的時(shí)候調(diào)用的問(wèn)題。

            幸好昨天剛剛看樂(lè)這部分的內(nèi)容,呵呵

            內(nèi)聯(lián)函數(shù)考了一題,問(wèn)內(nèi)聯(lián)函數(shù)在編譯時(shí)是否做參數(shù)類(lèi)型檢查。

            虛函數(shù)也考了一題,不過(guò)不難。
            class base{
            public:
            virtual void play(){
            cout<<"base";
            }
            }
            class son: public base{
            public:
            void play(){cout<<"son";}
            }
            void g(base & b){
            b.play;
            }

            void main(){
            son s;
            g(s);
            return;
            }

            posted @ 2006-07-28 15:25 HUYU 閱讀(256) | 評(píng)論 (0)編輯 收藏

            華為員工轉(zhuǎn)正筆試題

            第一部分 公司篇】
              
              1、華為公司的全稱(chēng)為()
              A、深圳市華為技術(shù)有限公司 B、華為技術(shù)有限公司
              C、華為公司 D、我司
              
              (答案:B,答A、C者酌情給分,答D者立即辭退,我司三令五申禁止使用該華
            為內(nèi)

              土語(yǔ),屢禁不止,老員工不可教也,只好從新員工抓起,格殺勿論)
              
              2、華為公司的企業(yè)性質(zhì)是()
              A、民營(yíng) B、私營(yíng) C、國(guó)營(yíng) D、上市公司
              
              (答案:A,本題主要讓考生了解公司的性質(zhì))
              
              3、華為公司的商標(biāo)象征()
              A、紅太陽(yáng) B、菊花 C、扇貝
              
              (答案:B,答A者酌情給分,答C者立即辭退,天天就想著吃)
              
              4、從下列選項(xiàng)中選擇出公司的常務(wù)副總裁()
              A、任正非 B、孫亞芳 C、李一男 D、鄭寶用 E、張燕燕
              
              (答案:BD,答C者立即辭退,讓他到李一男的公司去報(bào)到吧)
              
              5、華為公司的年終獎(jiǎng)一般是在每年的什么時(shí)候發(fā)()
              A、元旦后 B、春節(jié)前 C、7月下旬或8月上旬 D、勞動(dòng)節(jié)前 E、國(guó)慶節(jié)前
              
              (答案:C,切記,因?yàn)槭悄曛歇?jiǎng),而不是年終獎(jiǎng))
              
              6、華為公司的配給你的股票是()
              A、**發(fā)的 B、用自己的獎(jiǎng)金去買(mǎi)
              
              (答案:B)
              
              7、老板常說(shuō)的土八路,是指()
              A、老板自己的革命年代的光輝歷史
              B、本地化的用服兄弟
              C、季度考核為D的兄弟
              
              (答案:B)
            【第二部分 部門(mén)篇】
                
              1、你所在的一級(jí)部門(mén)為()
              A、技術(shù)支援部
              B、國(guó)際技術(shù)支援部
              C、國(guó)際技術(shù)支援部國(guó)內(nèi)分部
              D、用服
              
              (答案:B,答A、C者酌情給分,答D者作不合格處理,為了提高技術(shù)支援部形
            象,
            公司
              早就取消用服這個(gè)字眼,而且于2001年春節(jié)后悄悄地將技術(shù)支援部前加“國(guó)際
            ”二
            字)
              
              2、你所在的二級(jí)部門(mén)為()
              A、傳輸產(chǎn)品技術(shù)支援管理部
              B、傳輸工程部
              C、傳輸用服工程中心
              D、光網(wǎng)絡(luò)產(chǎn)品技術(shù)支援管理部
              
              (答案:A,首先得把自己的部門(mén)搞清楚,答D者,有遠(yuǎn)見(jiàn),有潛力,可以酌情
            給分
            ,很可能
              在2001年未就改成這個(gè)名字,因?yàn)槭袌?chǎng)中研已經(jīng)改了,就差技術(shù)支援部了)
              
              3、傳輸?shù)纳虡?biāo)為()
              A、SBS
              B、SDH
              C、OptiX
              D、Metro
              
              (答案:C,答A者酌情給分,最起碼還知道老商標(biāo))
              
              4、技術(shù)支援部與國(guó)際技術(shù)支援部的關(guān)系()
              A、國(guó)際技術(shù)支援部是技術(shù)支援部下面的一個(gè)部門(mén),負(fù)責(zé)海外
              B、技術(shù)支援部是國(guó)際技術(shù)支援部下面的一個(gè)部門(mén),負(fù)責(zé)國(guó)內(nèi)
              C、技術(shù)支援部是國(guó)際技術(shù)支援部的前身
              D、國(guó)際技術(shù)支援部是技術(shù)支援部的前身
              
              (答案:C)
            【第三部分 業(yè)務(wù)篇】
                
              1、SBS是()
              A、傳輸產(chǎn)品的老商標(biāo)
              B、同步骨干系統(tǒng)
              C、傻不傻的拼音縮寫(xiě)
              D、帥不帥的拼音縮寫(xiě)
              
              (答案:AB,答CD者立即辭退)
              
              2、SDH是()
              A、傳輸產(chǎn)品商標(biāo)
              B、同步數(shù)字序列
              C、傻得很的拼音縮寫(xiě)
              D、傻得好的拼音縮寫(xiě)
              
              (答案:B,答CD者立即辭退)
              
              3、由于你是新員工,沒(méi)有公配手機(jī)時(shí),當(dāng)你在現(xiàn)場(chǎng)遇到緊急事故時(shí),你會(huì)(
            )向公
            司求助
              A、打用戶機(jī)房?jī)?nèi)的電話
              B、借用戶手機(jī)
              C、拔110
              D、拔200或300
              E、立即打車(chē)回辦事處
              
              (答案:D,答CE者立即辭退,按照公司規(guī)定,不能隨便使用用戶的電話,以
            提高公
            司形象)
              
              4、在開(kāi)局時(shí),用戶問(wèn)你在華為干幾年了,你會(huì)回答()
              A、我是新員工
              B、1年多了
              C、2年多了
              D、3年多了
              
              (答案:B,答A者按不合格處理,按照公司規(guī)定,不能說(shuō)自己是新員工,幾千
            萬(wàn)的
            設(shè)備,
              怎能讓一個(gè)新員工用來(lái)練兵,用戶知道鼻子不氣歪才怪,答CD者,用戶會(huì)哼之
            以鼻
            ,在華為
              做了2、3年,還在下面撅個(gè)腚開(kāi)局,鬼才相信你的話呢!)
              
              5、接上題,假如你回答說(shuō)在華為干1年多了,用戶會(huì)說(shuō)()
              A、那你一定是新員工了
              B、那你一定是老員工了
              
              (答案:B,用戶對(duì)華為很了解,都知道你如果在華為做一年,就已經(jīng)是老員
            工了)

              
              6、接上題及上上題,用戶會(huì)繼續(xù)問(wèn),“那你咋連手機(jī)、便攜機(jī),一個(gè)都沒(méi)有
            呢?”
            ,你會(huì)回答()
              A、啊,我還沒(méi)有轉(zhuǎn)正咧,等俺轉(zhuǎn)正時(shí),誤碼儀、手機(jī)、便攜機(jī),一個(gè)都不能

              B、啊,沒(méi)有關(guān)系,正是由于我是老員工,所以開(kāi)局用不著
              C、啊,真倒霉,在來(lái)的路上,被土匪打劫了
              D、啊,被我的兩個(gè)徒弟拿走了,因?yàn)樗麄兪切聠T工,沒(méi)有工具膽小,有了工
            具好壯

              
              (答案:BCD,答A者,立即辭退,這么點(diǎn)事都搞不定)
              
              7、當(dāng)你發(fā)現(xiàn)用戶的機(jī)房中沒(méi)有拖鞋時(shí),你會(huì)()
              A、入鄉(xiāng)隨俗,直接進(jìn)機(jī)房
              B、光腳丫
              C、馬上出去自己花錢(qián)買(mǎi)幾雙拖鞋送給用戶
              D、馬上出去買(mǎi)幾雙拖鞋送給用戶,之后開(kāi)票回來(lái)貼票報(bào)銷(xiāo)
              E、馬上出去買(mǎi)幾雙拖鞋送給用戶,之后開(kāi)票找局長(zhǎng)報(bào)銷(xiāo)
              
              (答案:C,答A者,立即辭退,答B(yǎng)者,酌情給分,答D者,不合格處理,答E
            者,簡(jiǎn)
            直是在找
              死,立即辭退)
              
              8、技術(shù)支援工程師工作的特點(diǎn)()
              A、白天睡覺(jué),晚上干活
              B、用戶隨叫隨到
              C、用戶就是上帝,用戶怎么說(shuō),我們就怎么做
              D、我是上帝,我想咋干就咋干
              
              (答案:ABC,答D者,立即辭退)
              
              9、在與客戶開(kāi)會(huì)及紙面件交流時(shí),你會(huì)使用()來(lái)稱(chēng)呼對(duì)方
              A、局方 B、用戶 C、客戶 D、貴公司
              
              (答案:BCD,答A者,立即辭退,我司三令五申禁止使用該華為內(nèi)部土語(yǔ),屢
            禁不
            止,
              老員工不可教也,只好從新員工抓起,格殺勿論)
              
              10、工程師甲對(duì)乙說(shuō):“晚上不去泡吧嗎”,乙說(shuō):“哦,真不巧,我晚上要
            去市
            局割接,下次吧”。
              請(qǐng)問(wèn)乙指的“割接”是什么意思()
              A、發(fā)貨電纜不夠長(zhǎng),從別的地方割一段,然后接上
              B、一個(gè)工程師替換另一個(gè)工程師守局,交接的時(shí)候要寫(xiě)一個(gè)報(bào)告,然后從中
            割開(kāi),
            一人拿一半。
              C、局里晚上有一個(gè)慶祝活動(dòng),請(qǐng)他剪彩。
              D、業(yè)務(wù)從舊系統(tǒng)上倒到新系統(tǒng)上
              
              (答案:D,答錯(cuò)者,按不合格處理)
              
              11、工程師A某周日晚正在家里看電視,突然手機(jī)響了,電信局運(yùn)維員工突然

              打電話過(guò)來(lái),小A接起電話,用戶聲音很急迫,說(shuō):“不好了,癱了,你快來(lái)
            處理”

              請(qǐng)問(wèn)這里“癱了”最有可能是什么意思()
              A、設(shè)備漏電將維護(hù)人員電癱了
              B、設(shè)備支架不夠結(jié)實(shí),被壓癱了
              C、設(shè)備壞了,將維護(hù)人員嚇癱了
              D、設(shè)備壞了,大面積業(yè)務(wù)中斷了
              
              (答案:D,答錯(cuò)者,按不合格處理)
              
              12、案例分析:某位局長(zhǎng)到傳輸機(jī)房視察工作時(shí),被某物砸傷了腦袋瓜,請(qǐng)問(wèn)
            ,它
            最有可能是()
              A、SS02PBS電源盒蓋板
              B、SS03PBS電源盒蓋板
              C、子架蓋板
              D、防雷盒
              
              (答案:A)
              
              ---doom2
              
              回復(fù)[3]:13、下雨了,打雷了,你會(huì)()
              A、收衣服
              B、擔(dān)心網(wǎng)上運(yùn)行的設(shè)備遭到雷公襲擊
              C、擔(dān)心強(qiáng)盜偷襲機(jī)房?jī)?nèi)的設(shè)備
              D、擔(dān)心食堂開(kāi)飯會(huì)晚點(diǎn)
              
              (答案:B)
              
              14、夜深人靜,輾轉(zhuǎn)反側(cè)的你正在考慮小布什與科爾誰(shuí)當(dāng)選總統(tǒng)會(huì)對(duì)中國(guó)更有
            利時(shí)

              突然手機(jī)響了,最有可能發(fā)生的是()
              A、主管也睡不覺(jué),想找你喝酒
              B、狐朋狗友找你去蹦的
              C、用戶找你,因?yàn)闃I(yè)務(wù)斷了
              D、打錯(cuò)了,是騷擾電話
              
              (答案:D)
              
              15、請(qǐng)你選擇出最常用的排除故障的方法()
              A、復(fù)位 B、拔插 C、掉電 D、禱告 C、燒香拜神
              
              (答案:ABC)
              
              16、了為有效降低成本,除了()的電話,其它的電話一律不接,然后用固定
            電話
            回拔過(guò)去
              A、陌生的號(hào)碼
              B、很熟悉的用戶
              C、不很熟悉的用戶
              D、主管與同事
              E、狐朋狗友
              F、老婆
              
              (答案:C)
              
              17、論文題目:驚心動(dòng)魄的一夜
              本題的目的是考新員工的文筆,為技術(shù)案例及技術(shù)論文作準(zhǔn)備。
              寫(xiě)作要求:
              1)、故事情節(jié)必須包括:
              ①業(yè)務(wù)割接;
              ②重大事故;
              ③事故上報(bào);
              ④局長(zhǎng)親自督陣;
              ⑤業(yè)務(wù)中斷時(shí)間不小于5小時(shí);
              ⑥未造成特別惡劣的影響;
              ⑦描述電話內(nèi)容個(gè)數(shù)不少于30個(gè);
              ⑧事件發(fā)生有準(zhǔn)確的時(shí)間點(diǎn),精確到秒;
              ⑨復(fù)位,拔插,換板;
              ⑩涉及人物不少于20個(gè)。
              2)、要體現(xiàn)一個(gè)工程師如何排除萬(wàn)難,在巨大的精神壓力下冷靜沉著,終于解
            決問(wèn)
            題,
              表現(xiàn)了一個(gè)華為工程師優(yōu)良的單兵作戰(zhàn)能力。
              3)、字?jǐn)?shù)不少于3000字,不超過(guò)3500字。
              
              18、如果A站和B站之間出現(xiàn)B2誤碼,問(wèn)題可能在()板
              A、A站T16
              B、A站R16
              C、A站ASP
              D、A站X16
              E、B站T16
              F、B站R16
              G、B站ASP
              H、B站X16
              I、以上答案均不正確
              
              (答案:ABCDEFGH)
              
              19、接上題,上述故障現(xiàn)象最有可發(fā)生的地點(diǎn)是()
              A、江西九江
              B、佳木斯本地網(wǎng)
              C、河南信陽(yáng)
              D、沈陽(yáng)城域
              
              (答案:A)
              
              20、接上上題,如果讓你去維護(hù)A站與B站之間的B2問(wèn)題,你會(huì)攜帶哪些必帶物
            品(

              A、便攜機(jī)
              B、T16、R16、X16、ASP各一塊
              C、工具箱
              D、私人行李
              E、2M誤碼表
              F、光功率計(jì)
              G、老婆
              
              (答案:ABCDEF,有句名言,華為工程師出差,除了老婆,什么都得帶)
              
              21、接上題,對(duì)于上述出差必備物品,你會(huì)最佳的攜帶方法是()
              A、左肩便攜機(jī)、右肩工具箱、左手儀表、右手備板、身后行李
              B、右肩便攜機(jī)、左肩工具箱、右手儀表、左手備板、身后行李
              C、讓老子拿這么多東西出差,早知道這樣,老子就不來(lái)華為用服了
              
              (答案:AB,重復(fù)那句名言,華為工程師出差,除了老婆,什么都得帶)
              
              22、接上題,對(duì)于上述情況,你如何打車(chē)?()
              A、向過(guò)路司機(jī)擠眉弄眼,眉來(lái)眼去,注意,盡量使用媚眼
              B、將手中的物品放下,向司機(jī)打手勢(shì)
              C、啥都不用,將一只腳抬起向司機(jī)示意即可
              D、放開(kāi)嗓子喊,出租車(chē)!
              
              (答案:C,經(jīng)實(shí)踐證明,這招很管用)
              
              23、接18題,如果A與B點(diǎn)相距40KM,在A站已經(jīng)定位出B站有問(wèn)題,則從A站下

              13點(diǎn)鐘開(kāi)車(chē)前去換板,車(chē)子時(shí)速80KM,需求多長(zhǎng)時(shí)間才能回到A站?()
              A、2小時(shí)左右
              B、8小時(shí)左右
              C、12小時(shí)左右
              D、24小時(shí)左右
              E、48小時(shí)左右
              
              (答案:D,答A者開(kāi)除。因?yàn)楝F(xiàn)場(chǎng)后,白天不能換板,然后等到午夜12點(diǎn)以后
            才可
            以換板,
              次日繼續(xù)留守觀察一上午后,次日下午才能返回)
            【第四部分 生活篇】
              
              1、以下手段可以蒙混入關(guān)的是()
              A、外地身份證 B、良民證 C、邊防證 D、深圳特區(qū)暫住證 E、華為工卡
              F、婚育證明 G、結(jié)婚證 H、乘華為班車(chē)
              
              (答案:CDH)
              
              2、如下哪些證件可以應(yīng)付當(dāng)?shù)鼐游瘯?huì)的計(jì)劃生育檢查()
              A、婚育證明 B、不育證明 C、結(jié)婚證 D、邊防證
              
              (答案:A)
              
              3、華為公司員工在業(yè)余時(shí)間不允許做的事情()
              A、打麻將 B、玩撲克 C、出入不健康場(chǎng)所 D、將工卡帶在胸前炫耀 E、按摩
            洗頭
              
              (答案:ACD)
              
              4、你可以通過(guò)以下途徑出租或求租住房及買(mǎi)賣(mài)二手商品()
              A、生協(xié)Notes B、Notes Mail C、華為電子公告牌
              D、一位辭職員工辦的個(gè)人主頁(yè)〖華為專(zhuān)用物業(yè)公告欄〗,地址
            http://202.


            105.55.
            110/hw/
              
              (答案:D)
              
              5、華為工卡可以用來(lái)()
              A、在深銀聯(lián)ATM機(jī)上取款
              B、在華為小賣(mài)部買(mǎi)東西
              C、在華為食堂**吃早餐
              D、只要蹭到晚9點(diǎn),就可以到食堂領(lǐng)**的宵夜
              
              (答案:BD)
              
              6、在購(gòu)買(mǎi)機(jī)票時(shí),正常人可以打7折,如果你憑華為工卡,可以打()
              A、5折
              B、7折
              C、8折
              D、97折
              
              (答案:D)
              
              7、如下線路中,票價(jià)最便宜的是()
              A、113
              B、204
              C、226
              D、331
              
              (答案:C)
              
              8、如下線路中,小偷最多的是()
              A、113
              B、204
              C、226
              D、331
              
              (答案:BC)
              
              9、如下線路中,不能到新時(shí)代廣場(chǎng)的是()
              A、113
              B、204
              C、226
              D、331
              E、437
              F、22
              
              (答案:E)
              
              10、如下線路中,哪一個(gè)線路能到新時(shí)代廣場(chǎng)但不能坐的是()
              A、113
              B、204
              C、226
              D、217
              E、437
              F、22
              
              (答案:F,因?yàn)樗@很遠(yuǎn),上班會(huì)遲到)
              
              11、在新時(shí)代廣場(chǎng),如果你既想拿宵夜,又想坐班車(chē),你會(huì)()
              A、晚8:50去一樓刷卡,再馬上跑到三樓,準(zhǔn)排第一,再叫大師傅將宵夜包好

              卡機(jī)時(shí)間比快那么幾分鐘,到點(diǎn)刷卡后,馬上順樓梯飛奔到停車(chē)場(chǎng)即可,注
              意千萬(wàn)不是坐電梯。
              B、蹭到晚9點(diǎn)鐘以后,領(lǐng)完宵夜,再混一會(huì)兒,坐晚9點(diǎn)以后的班車(chē)
              C、算了,本來(lái)魚(yú)和熊掌就不能兼得,老子不領(lǐng)了,下班就回家
              
              (答案:AB)
              
              12、到辦事處出差,當(dāng)?shù)匕才拍阕」镜募w宿舍,真倒霉,同屋的哥們雷聲
            隆隆
            ,你會(huì)()
              A、推醒他,給他一個(gè)紅牌警告
              B、找辦事處主任理論
              C、忍了,到客廳凳子上將就一下
              D、不受那份氣,搬家,到賓館開(kāi)房間
              E、武力解決,找本厚書(shū),如華為文摘、走出混飩、培訓(xùn)手冊(cè)等,很很的砸那
            位哥們
            一下
              F、戴上耳機(jī),聽(tīng)走扁美國(guó)
              G、頭上蒙上厚被,裝聽(tīng)不見(jiàn)
              H、故意打出更響的呼嚕,嚇一嚇那位哥們
              
              (答案:該無(wú)標(biāo)準(zhǔn)答案,只要不選BD,答D者,按不合格處理)
              
              13、出差回來(lái),發(fā)現(xiàn)出差前還在宿舍中的自己的拖鞋不翼而飛,你會(huì)()
              A、死活要將屬于自己的東西找回來(lái),毫不在乎地接著穿
              B、死活要將屬于自己的東西找回來(lái),用開(kāi)水燙燙或用消毒水處理一下,然后
            接著穿

              C、死活要將屬于自己的東西找回來(lái),然后丟到垃圾桶里
              D、不要了,再買(mǎi)一雙新的,以免得腳氣
              E、隨便找一雙穿,管它是誰(shuí)的
              F、發(fā)誓下次出差前一定要將自己的拖鞋藏起來(lái)
              
              (答案:該無(wú)標(biāo)準(zhǔn)答案,因?yàn)槊總€(gè)人的個(gè)性不同)
              
              14、請(qǐng)從如下四個(gè)句子中選擇一個(gè)正確的描述()
              A、人最寶貴的是生命
              B、人,最寶貴的是生命
              C、生命對(duì)于人是最寶貴的
              D、對(duì)于人,沒(méi)有比生命更寶貴的
              
              (答案:D)
              
              回復(fù)[5]:15、請(qǐng)問(wèn)馬路邊的“風(fēng)炮補(bǔ)胎”是()
              A、是汽車(chē)修理店的一種招牌,“補(bǔ)胎”是一種維修業(yè)務(wù),“風(fēng)炮”是一位很
            有名氣

              的修車(chē)大師,收了很多徒弟,所以,徒第們往往打著師傅的名氣開(kāi)店,于是,

              道就是了N多的風(fēng)炮補(bǔ)胎執(zhí)招牌。這與“狗不理包子”類(lèi)似。
              B、是汽車(chē)修理店的一種招牌,“風(fēng)炮”是一種高效的補(bǔ)胎工具。
              C、是汽車(chē)修理店的一種招牌,“風(fēng)炮”是一該店的修車(chē)師傅的名字,與“王
            麻子”

              剪刀類(lèi)似。
              D、是自行車(chē)修理店的一種招牌,“風(fēng)炮”是一種快速粘膠,該膠補(bǔ)自行車(chē)胎
            即快又
            好。
              
              (答案:B)
              
              16、請(qǐng)問(wèn),距離新時(shí)代廣場(chǎng)最近的“風(fēng)炮補(bǔ)胎”招牌在()
              A、從黃貝嶺至蛇口113大巴線的新時(shí)代廣場(chǎng)下車(chē)點(diǎn)的馬路對(duì)面
              B、從蛇口至黃貝嶺113大巴線的新時(shí)代廣場(chǎng)上車(chē)點(diǎn)的馬路邊上
              C、別騙人了,新時(shí)代廣場(chǎng)附近壓根就沒(méi)有
              
              (答案:AB)
              
              17、如下廣告詞正確的是()
              A、用一天的電,花兩天的錢(qián)
              B、用兩天的電,花一天的錢(qián)
              C、新飛冰箱好,不如新飛廣告做的好
              D、新飛廣告做的好,不如新飛冰箱好
              
              (答案:BD)
              
              18、請(qǐng)問(wèn),你最討厭如下哪些就餐行為()
              A、早餐不刷卡,用10塊錢(qián)買(mǎi)
              B、早餐買(mǎi)N樣
              C、米飯打N下
              D、餐紙扯N長(zhǎng)
              E、夜宵領(lǐng)N樣
              F、就餐完畢不做5S,雞蛋皮、筷子皮亂扔在餐桌上
              G、走路時(shí)不照顧自己的餐盤(pán),將餐液濺灑在他人身上
              H、吃飯咂咂響,喝湯吃面條呼嚕呼嚕叫
              J、在一個(gè)擁擠的電梯里,某人手持一盒瘋牛牛奶,使出吃奶的勁狂吸
              K、領(lǐng)9點(diǎn)鐘的夜宵,坐9點(diǎn)鐘的班車(chē)

            posted @ 2006-07-28 13:16 HUYU 閱讀(373) | 評(píng)論 (0)編輯 收藏

            聯(lián)想筆試題

            1.設(shè)計(jì)函數(shù) int atoi(char *s)。

            2.int i=(j=4,k=8,l=16,m=32); printf(“%d”, i); 輸出是多少?

            3.解釋局部變量、全局變量和靜態(tài)變量的含義。

            4.解釋堆和棧的區(qū)別。

            5.論述含參數(shù)的宏與函數(shù)的優(yōu)缺點(diǎn)。

            posted @ 2006-07-28 13:14 HUYU 閱讀(595) | 評(píng)論 (0)編輯 收藏

            僅列出標(biāo)題
            共4頁(yè): 1 2 3 4 
            久久受www免费人成_看片中文| 久久综合九色欧美综合狠狠| 亚洲国产成人久久一区久久| 久久精品中文字幕有码| 亚洲国产精品久久66| 99久久精品免费看国产| aaa级精品久久久国产片| 亚洲欧美精品伊人久久| 久久久久久国产a免费观看不卡 | 国产精品中文久久久久久久| 久久人人爽人人人人爽AV| 久久精品天天中文字幕人妻| 中文字幕亚洲综合久久2| 亚洲精品乱码久久久久久不卡| 亚洲国产欧美国产综合久久| 狠色狠色狠狠色综合久久| 亚洲日韩欧美一区久久久久我| 亚洲va久久久噜噜噜久久狠狠| 亚洲午夜精品久久久久久人妖| 亚洲AV无码1区2区久久| 香蕉久久一区二区不卡无毒影院 | 久久亚洲精品国产精品| 天天久久狠狠色综合| 亚洲色欲久久久综合网| 久久亚洲中文字幕精品一区| 国产精品无码久久久久久| 模特私拍国产精品久久| 精品久久久久久久久久中文字幕| 狠狠色狠狠色综合久久| 久久婷婷五月综合97色直播| 精品久久一区二区三区| 人妻精品久久久久中文字幕69| 手机看片久久高清国产日韩| 99久久精品国产综合一区| 久久丫精品国产亚洲av| 亚洲精品乱码久久久久久自慰| 久久精品人妻一区二区三区| 久久精品国产亚洲一区二区| 一本色道久久88—综合亚洲精品| 亚洲精品99久久久久中文字幕| 久久久WWW免费人成精品|