亚洲欧美精品沙发,日韩在线精品视频,亚洲Av每日更新在线观看,亚洲国产另类一区在线5

<pre id="hdphd"></pre>

  • <div id="hdphd"><small id="hdphd"></small></div>
      學(xué)習(xí)啦 > 創(chuàng)業(yè)指南 > 職場 > 筆試題 > C++基礎(chǔ)筆試題及答案

      C++基礎(chǔ)筆試題及答案

      時(shí)間: 護(hù)托1061 分享

      C++基礎(chǔ)筆試題及答案

        在C++中函數(shù)可以使用缺省參數(shù)。下面就由學(xué)習(xí)啦小編為大家介紹一下C++基礎(chǔ)筆試題及答案的文章,歡迎閱讀。

        C++基礎(chǔ)筆試題及答案篇1

        1.編寫my_strcpy函數(shù),實(shí)現(xiàn)與庫函數(shù)strcpy類似的功能,不能使用任何庫函數(shù);

        答:char *strcpy(char *strDest, const char *strSrc)

        {

        if ( strDest == NULL || strSrc == NULL)

        return NULL ;

        if ( strDest == strSrc)

        returnstrDest ;

        char *tempptr = strDest ;

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

        returntempptr ;

        }

        2. 頭文件中的ifndef/define/endif的作用?

        答:防止該頭文件被重復(fù)引用。

        3. #i nclude與#i nclude “file.h”的區(qū)別?

        答:前者編譯器從標(biāo)準(zhǔn)庫路徑開始搜索file.h,而后者編譯器從用戶的工作路徑開始搜索file.h。

        4. 在C++ 程序中調(diào)用被C 編譯器編譯后的函數(shù),為什么要加extern“C”?

        答:extern是C/C++語言中表明函數(shù)和全局變量作用范圍(可見性)的關(guān)鍵字,其聲明的函數(shù)和變量可以在本模塊或其它模塊中使用。

        通常,在模塊的頭文件中對本模塊提供給其它模塊引用的函數(shù)和全局變量以關(guān)鍵字extern聲明。

        5. 面向?qū)ο蟮娜齻€(gè)基本特征,并簡單敘述之?

        答:1)封裝:將客觀事物抽象成類,每個(gè)類對自身的數(shù)據(jù)和方法實(shí)行protection(private, protected,public)

        2)繼承:實(shí)現(xiàn)繼承(指使用基類的屬性和方法而無需額外編碼的能力)、可視繼承(子窗體使用父窗體的外觀和實(shí)現(xiàn)代碼)、接口繼承(僅使用屬性和方法,實(shí)現(xiàn)滯后到子類實(shí)現(xiàn))。

        3)多態(tài):允許將子類類型的指針賦值給父類類型的指針。

        6. 重載(overload)和重寫(overried,有的書也叫做“覆蓋”)的區(qū)別?

        答:從定義上來說:

        重載:是指允許存在多個(gè)同名函數(shù),而這些函數(shù)的參數(shù)表不同(或許參數(shù)個(gè)數(shù)不同,或許參數(shù)類型不同,或許兩者都不同)。

        重寫:是指子類重新定義復(fù)類虛函數(shù)的方法。

        從實(shí)現(xiàn)原理上來說:

        重載:編譯器根據(jù)函數(shù)不同的參數(shù)表,對同名函數(shù)的名稱做修飾,然后這些同名函數(shù)就成了不同的函數(shù)。

        重寫:當(dāng)子類重新定義了父類的虛函數(shù)后,父類指針根據(jù)賦給它的不同的子類指針,動態(tài)的調(diào)用屬于子類的該函數(shù),這樣的函數(shù)調(diào)用在編譯期間是無法確定的(調(diào)用的子類的虛函數(shù)的地址無法給出)。

        7. 多態(tài)的作用?

        答:主要是兩個(gè):1)隱藏實(shí)現(xiàn)細(xì)節(jié),使得代碼能夠模塊化;擴(kuò)展代碼模塊,實(shí)現(xiàn)代碼重用;2)接口重用,為了類在繼承和派生的時(shí)候,保證使用家族中任一類的實(shí)例的某一屬性時(shí)的正確調(diào)用。

        8. 分別寫出BOOL,int,float,指針類型的變量a 與“零”的比較語句。

        答:BOOL :if ( !a ) or if(a)

        int :if ( a ==0)

        float :const EXPRESSION EXP = 0.000001

        if ( a < EXP && a >-EXP)

        pointer : if ( a != NULL) or if(a == NULL)

        9. 請說出const與#define 相比,有何優(yōu)點(diǎn)?

        答案:1) const 常量有數(shù)據(jù)類型,而宏常量沒有數(shù)據(jù)類型。編譯器可以對前者進(jìn)行類型安全檢查。而對后者只進(jìn)行字符替換,沒有類型安全檢查,并且在字符替換可能會產(chǎn)生意料不到的錯(cuò)誤。

        2) 有些集成化的調(diào)試工具可以對const 常量進(jìn)行調(diào)試,但是不能對宏常量進(jìn)行調(diào)試。

        10.簡述數(shù)組與指針的區(qū)別?

        數(shù)組要么在靜態(tài)存儲區(qū)被創(chuàng)建(如全局?jǐn)?shù)組),要么在棧上被創(chuàng)建。指針可以隨時(shí)指向任意類型的內(nèi)存塊。

        (1)修改內(nèi)容上的差別

        char a[] = “hello”;

        a[0] = ‘X’;

        char *p = “world”; // 注意p 指向常量字符串

        p[0] = ‘X’; // 編譯器不能發(fā)現(xiàn)該錯(cuò)誤,運(yùn)行時(shí)錯(cuò)誤

        (2) 用運(yùn)算符sizeof 可以計(jì)算出數(shù)組的容量(字節(jié)數(shù))。sizeof(p),p 為指針得到的是一個(gè)指針變量的字節(jié)數(shù),而不是p 所指的內(nèi)存容量。C++/C 語言沒有辦法知道指針?biāo)傅膬?nèi)存容量,除非在申請內(nèi)存時(shí)記住它。注意當(dāng)數(shù)組作為函數(shù)的參數(shù)進(jìn)行傳遞時(shí),該數(shù)組自動退化為同類型的指針。

        char a[] = “hello world”;

        char *p = a;

        cout< cout< 計(jì)算數(shù)組和指針的內(nèi)存容量

        voidFunc(char a[100])

        {

        cout< }

        C++基礎(chǔ)筆試題及答案篇2

        1.變量的聲明和定義有什么區(qū)別?

        答:聲明變量不分配空間,定義變量要分配空間。聲明主要是告訴編譯器,后面的引用都按聲明的格式。定義其實(shí)包含了聲明的意思,同時(shí)要分配內(nèi)存空間。

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

        答:堆(heap)——一般由程序員分配釋放,若程序員不釋放,程序結(jié)束時(shí)可能由OS回收。注意它與數(shù)據(jù)結(jié)構(gòu)中的堆是兩回事,分配方式倒是類似于鏈表。速度比較慢,而且容易產(chǎn)生內(nèi)存碎片,不過用起來最方便。

        棧(stack)——由編譯器自動分配釋放,存放函數(shù)的參數(shù)值,局部變量的值等。其操作方式類似于數(shù)據(jù)結(jié)構(gòu)中的棧。由系統(tǒng)自動分配,速度較快。但程序員是無法控制的。

        3. const的作用是什么?

        答:(1)可以定義const常量

        (2)const可以修飾函數(shù)的參數(shù)、返回值,甚至函數(shù)的定義體。被const修飾的東西都受到強(qiáng)制保護(hù),可以預(yù)防意外的變動,能提高程序的健壯性。

        4. 下列哪兩個(gè)是等同的

        int b;

        A constint* a = &b; //指向常量的指針,不能通過指針改變b,但指針的地址可以改變。

        B const* int a = &b;// 指針的地址不可以改變,但可以通過指針改變b的值

        C constint* const a = &b; //指針指向的值,和指針本身的地址都不能改變

        D intconst* const a = &b;//與c相同

        5. 完成程序,實(shí)現(xiàn)對數(shù)組的降序排序

        #include

        void sort(int array[] );

        int main()

        {

        int array[]={45,56,76,234,1,34,23,2,3}; //數(shù)字任//意給出

        sort( array );

        return 0;

        }

        void sort( int array[] )

        {____________________________________

        inti,j,k;

        for(i=1;i<=7;i++) { if(array[i]>array[i-1])

        {

        k=ARRAY[i];

        j=i-1;

        do

        {

        array[j+1]=array[j];

        j– ;

        }

        while(k>array[j]&&j>=0);

        array[j+1]=k;

        }

        }

        —————————————————–

        }

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

        答:相當(dāng)于 i=j=4;i=k=8;i=l=16;i=m=32; 故最后i=32;

        7. 請簡述以下兩個(gè)for循環(huán)的優(yōu)缺點(diǎn)(5分)

        1)for (i=0; i {

        if (condition)

        DoSomething();

        else

        DoOtherthing();

        }

        2)if (condition)

        {

        for (i=0; i DoSomething();

        }

        else

        {

        for (i=0; i 0)

        {

        *psTo++ = *psFrom++;

        }

        returnpvTo;

        }

        8 .C++里面如何聲明const void f(void)函數(shù)為C程序中的庫函數(shù)?

        答:在該函數(shù)前添加extern “C”聲明。由于編譯后的名字不同,C++程序不能直接調(diào)用C 函數(shù)。

        9. 請寫出下面代碼在 32 位平臺上的運(yùn)行結(jié)果,并說明sizeof的性質(zhì):

        #include

        #include

        int main(void)

        {

        char a[30];

        char *b = (char *)malloc(20 * sizeof(char));

        printf(“%d\n”, sizeof(a));

        printf(“%d\n”, sizeof(b));

        printf(“%d\n”, sizeof(a[3]));

        printf(“%d\n”, sizeof(b+3));

        printf(“%d\n”, sizeof(*(b+4)));

        return 0 ;

        }

        答:在32位系統(tǒng)下(如WIN32),指針長度為32位。a是一個(gè)有30個(gè)元素的字符型數(shù)組;b是一個(gè)字符串指針;a[3]是字符型;b+3是指針;*(b+4)是字符型。

        因此輸出: 30、4、1、4、1

        C++基礎(chǔ)筆試題及答案篇3

        1. C++中,關(guān)鍵字struct和class的區(qū)別僅僅在于:

        struct定義的類的缺省成員為公有的,而class定義的類的缺省成員為私有的;

        2. 頭文件的作用是什么?

        答:1)通過頭文件來調(diào)用庫功能。2)頭文件能加強(qiáng)類型安全檢查。

        3. C++函數(shù)中值的傳遞方式有哪幾種?

        答:C++函數(shù)的三種傳遞方式為:值傳遞、指針傳遞和引用傳遞。

        4. 內(nèi)存的分配方式的分配方式有幾種?

        答:1)從靜態(tài)存儲區(qū)域分配。內(nèi)存在程序編譯的時(shí)候就已經(jīng)分配好,這塊內(nèi)存在程序的整個(gè)運(yùn)行期間都存在。例如全局變量。

        2)在棧上創(chuàng)建。在執(zhí)行函數(shù)時(shí),函數(shù)內(nèi)局部變量的存儲單元都可以在棧上創(chuàng)建,函數(shù)執(zhí)行結(jié)束時(shí)這些存儲單元自動被釋放。棧內(nèi)存分配運(yùn)算內(nèi)置于處理器的指令集中,效率很高,但是分配的內(nèi)存容量有限。

        3)從堆上分配,亦稱動態(tài)內(nèi)存分配。程序在運(yùn)行的時(shí)候用malloc或new申請任意多少的內(nèi)存,程序員自己負(fù)責(zé)在何時(shí)用free或delete釋放內(nèi)存。動態(tài)內(nèi)存的生存期由我們決定,使用非常靈活,但問題也最多。

        5. 設(shè)計(jì)函數(shù)intatoi(char *s)。

        答:intatoi (char *s)

        {

        int i = 0,sum = 0,sign; //輸入的數(shù)前面可能還有空格或制表符應(yīng)加判斷

        while(*s==”||*s==’\t’)

        {

        i++;

        }

        sign = (*s==’-')?-1:1;

        if(*s==’-'|| *s==’+')

        {

        i++;

        }

        while(*s!=’

      學(xué)習(xí)啦 > 創(chuàng)業(yè)指南 > 職場 > 筆試題 > C++基礎(chǔ)筆試題及答案

      C++基礎(chǔ)筆試題及答案

      時(shí)間: 護(hù)托1061 分享

      C++基礎(chǔ)筆試題及答案

        在C++中函數(shù)可以使用缺省參數(shù)。下面就由學(xué)習(xí)啦小編為大家介紹一下C++基礎(chǔ)筆試題及答案的文章,歡迎閱讀。

        C++基礎(chǔ)筆試題及答案篇1

        1.編寫my_strcpy函數(shù),實(shí)現(xiàn)與庫函數(shù)strcpy類似的功能,不能使用任何庫函數(shù);

        答:char *strcpy(char *strDest, const char *strSrc)

        {

        if ( strDest == NULL || strSrc == NULL)

        return NULL ;

        if ( strDest == strSrc)

        returnstrDest ;

        char *tempptr = strDest ;

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

        returntempptr ;

        }

        2. 頭文件中的ifndef/define/endif的作用?

        答:防止該頭文件被重復(fù)引用。

        3. #i nclude與#i nclude “file.h”的區(qū)別?

        答:前者編譯器從標(biāo)準(zhǔn)庫路徑開始搜索file.h,而后者編譯器從用戶的工作路徑開始搜索file.h。

        4. 在C++ 程序中調(diào)用被C 編譯器編譯后的函數(shù),為什么要加extern“C”?

        答:extern是C/C++語言中表明函數(shù)和全局變量作用范圍(可見性)的關(guān)鍵字,其聲明的函數(shù)和變量可以在本模塊或其它模塊中使用。

        通常,在模塊的頭文件中對本模塊提供給其它模塊引用的函數(shù)和全局變量以關(guān)鍵字extern聲明。

        5. 面向?qū)ο蟮娜齻€(gè)基本特征,并簡單敘述之?

        答:1)封裝:將客觀事物抽象成類,每個(gè)類對自身的數(shù)據(jù)和方法實(shí)行protection(private, protected,public)

        2)繼承:實(shí)現(xiàn)繼承(指使用基類的屬性和方法而無需額外編碼的能力)、可視繼承(子窗體使用父窗體的外觀和實(shí)現(xiàn)代碼)、接口繼承(僅使用屬性和方法,實(shí)現(xiàn)滯后到子類實(shí)現(xiàn))。

        3)多態(tài):允許將子類類型的指針賦值給父類類型的指針。

        6. 重載(overload)和重寫(overried,有的書也叫做“覆蓋”)的區(qū)別?

        答:從定義上來說:

        重載:是指允許存在多個(gè)同名函數(shù),而這些函數(shù)的參數(shù)表不同(或許參數(shù)個(gè)數(shù)不同,或許參數(shù)類型不同,或許兩者都不同)。

        重寫:是指子類重新定義復(fù)類虛函數(shù)的方法。

        從實(shí)現(xiàn)原理上來說:

        重載:編譯器根據(jù)函數(shù)不同的參數(shù)表,對同名函數(shù)的名稱做修飾,然后這些同名函數(shù)就成了不同的函數(shù)。

        重寫:當(dāng)子類重新定義了父類的虛函數(shù)后,父類指針根據(jù)賦給它的不同的子類指針,動態(tài)的調(diào)用屬于子類的該函數(shù),這樣的函數(shù)調(diào)用在編譯期間是無法確定的(調(diào)用的子類的虛函數(shù)的地址無法給出)。

        7. 多態(tài)的作用?

        答:主要是兩個(gè):1)隱藏實(shí)現(xiàn)細(xì)節(jié),使得代碼能夠模塊化;擴(kuò)展代碼模塊,實(shí)現(xiàn)代碼重用;2)接口重用,為了類在繼承和派生的時(shí)候,保證使用家族中任一類的實(shí)例的某一屬性時(shí)的正確調(diào)用。

        8. 分別寫出BOOL,int,float,指針類型的變量a 與“零”的比較語句。

        答:BOOL :if ( !a ) or if(a)

        int :if ( a ==0)

        float :const EXPRESSION EXP = 0.000001

        if ( a < EXP && a >-EXP)

        pointer : if ( a != NULL) or if(a == NULL)

        9. 請說出const與#define 相比,有何優(yōu)點(diǎn)?

        答案:1) const 常量有數(shù)據(jù)類型,而宏常量沒有數(shù)據(jù)類型。編譯器可以對前者進(jìn)行類型安全檢查。而對后者只進(jìn)行字符替換,沒有類型安全檢查,并且在字符替換可能會產(chǎn)生意料不到的錯(cuò)誤。

        2) 有些集成化的調(diào)試工具可以對const 常量進(jìn)行調(diào)試,但是不能對宏常量進(jìn)行調(diào)試。

        10.簡述數(shù)組與指針的區(qū)別?

        數(shù)組要么在靜態(tài)存儲區(qū)被創(chuàng)建(如全局?jǐn)?shù)組),要么在棧上被創(chuàng)建。指針可以隨時(shí)指向任意類型的內(nèi)存塊。

        (1)修改內(nèi)容上的差別

        char a[] = “hello”;

        a[0] = ‘X’;

        char *p = “world”; // 注意p 指向常量字符串

        p[0] = ‘X’; // 編譯器不能發(fā)現(xiàn)該錯(cuò)誤,運(yùn)行時(shí)錯(cuò)誤

        (2) 用運(yùn)算符sizeof 可以計(jì)算出數(shù)組的容量(字節(jié)數(shù))。sizeof(p),p 為指針得到的是一個(gè)指針變量的字節(jié)數(shù),而不是p 所指的內(nèi)存容量。C++/C 語言沒有辦法知道指針?biāo)傅膬?nèi)存容量,除非在申請內(nèi)存時(shí)記住它。注意當(dāng)數(shù)組作為函數(shù)的參數(shù)進(jìn)行傳遞時(shí),該數(shù)組自動退化為同類型的指針。

        char a[] = “hello world”;

        char *p = a;

        cout< cout< 計(jì)算數(shù)組和指針的內(nèi)存容量

        voidFunc(char a[100])

        {

        cout< }

        C++基礎(chǔ)筆試題及答案篇2

        1.變量的聲明和定義有什么區(qū)別?

        答:聲明變量不分配空間,定義變量要分配空間。聲明主要是告訴編譯器,后面的引用都按聲明的格式。定義其實(shí)包含了聲明的意思,同時(shí)要分配內(nèi)存空間。

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

        答:堆(heap)——一般由程序員分配釋放,若程序員不釋放,程序結(jié)束時(shí)可能由OS回收。注意它與數(shù)據(jù)結(jié)構(gòu)中的堆是兩回事,分配方式倒是類似于鏈表。速度比較慢,而且容易產(chǎn)生內(nèi)存碎片,不過用起來最方便。

        棧(stack)——由編譯器自動分配釋放,存放函數(shù)的參數(shù)值,局部變量的值等。其操作方式類似于數(shù)據(jù)結(jié)構(gòu)中的棧。由系統(tǒng)自動分配,速度較快。但程序員是無法控制的。

        3. const的作用是什么?

        答:(1)可以定義const常量

        (2)const可以修飾函數(shù)的參數(shù)、返回值,甚至函數(shù)的定義體。被const修飾的東西都受到強(qiáng)制保護(hù),可以預(yù)防意外的變動,能提高程序的健壯性。

        4. 下列哪兩個(gè)是等同的

        int b;

        A constint* a = &b; //指向常量的指針,不能通過指針改變b,但指針的地址可以改變。

        B const* int a = &b;// 指針的地址不可以改變,但可以通過指針改變b的值

        C constint* const a = &b; //指針指向的值,和指針本身的地址都不能改變

        D intconst* const a = &b;//與c相同

        5. 完成程序,實(shí)現(xiàn)對數(shù)組的降序排序

        #include

        void sort(int array[] );

        int main()

        {

        int array[]={45,56,76,234,1,34,23,2,3}; //數(shù)字任//意給出

        sort( array );

        return 0;

        }

        void sort( int array[] )

        {____________________________________

        inti,j,k;

        for(i=1;i<=7;i++) { if(array[i]>array[i-1])

        {

        k=ARRAY[i];

        j=i-1;

        do

        {

        array[j+1]=array[j];

        j– ;

        }

        while(k>array[j]&&j>=0);

        array[j+1]=k;

        }

        }

        —————————————————–

        }

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

        答:相當(dāng)于 i=j=4;i=k=8;i=l=16;i=m=32; 故最后i=32;

        7. 請簡述以下兩個(gè)for循環(huán)的優(yōu)缺點(diǎn)(5分)

        1)for (i=0; i {

        if (condition)

        DoSomething();

        else

        DoOtherthing();

        }

        2)if (condition)

        {

        for (i=0; i DoSomething();

        }

        else

        {

        for (i=0; i 0)

        {

        *psTo++ = *psFrom++;

        }

        returnpvTo;

        }

        8 .C++里面如何聲明const void f(void)函數(shù)為C程序中的庫函數(shù)?

        答:在該函數(shù)前添加extern “C”聲明。由于編譯后的名字不同,C++程序不能直接調(diào)用C 函數(shù)。

        9. 請寫出下面代碼在 32 位平臺上的運(yùn)行結(jié)果,并說明sizeof的性質(zhì):

        #include

        #include

        int main(void)

        {

        char a[30];

        char *b = (char *)malloc(20 * sizeof(char));

        printf(“%d\n”, sizeof(a));

        printf(“%d\n”, sizeof(b));

        printf(“%d\n”, sizeof(a[3]));

        printf(“%d\n”, sizeof(b+3));

        printf(“%d\n”, sizeof(*(b+4)));

        return 0 ;

        }

        答:在32位系統(tǒng)下(如WIN32),指針長度為32位。a是一個(gè)有30個(gè)元素的字符型數(shù)組;b是一個(gè)字符串指針;a[3]是字符型;b+3是指針;*(b+4)是字符型。

        因此輸出: 30、4、1、4、1

        C++基礎(chǔ)筆試題及答案篇3

        1. C++中,關(guān)鍵字struct和class的區(qū)別僅僅在于:

        struct定義的類的缺省成員為公有的,而class定義的類的缺省成員為私有的;

        2. 頭文件的作用是什么?

        答:1)通過頭文件來調(diào)用庫功能。2)頭文件能加強(qiáng)類型安全檢查。

        3. C++函數(shù)中值的傳遞方式有哪幾種?

        答:C++函數(shù)的三種傳遞方式為:值傳遞、指針傳遞和引用傳遞。

        4. 內(nèi)存的分配方式的分配方式有幾種?

        答:1)從靜態(tài)存儲區(qū)域分配。內(nèi)存在程序編譯的時(shí)候就已經(jīng)分配好,這塊內(nèi)存在程序的整個(gè)運(yùn)行期間都存在。例如全局變量。

        2)在棧上創(chuàng)建。在執(zhí)行函數(shù)時(shí),函數(shù)內(nèi)局部變量的存儲單元都可以在棧上創(chuàng)建,函數(shù)執(zhí)行結(jié)束時(shí)這些存儲單元自動被釋放。棧內(nèi)存分配運(yùn)算內(nèi)置于處理器的指令集中,效率很高,但是分配的內(nèi)存容量有限。

        3)從堆上分配,亦稱動態(tài)內(nèi)存分配。程序在運(yùn)行的時(shí)候用malloc或new申請任意多少的內(nèi)存,程序員自己負(fù)責(zé)在何時(shí)用free或delete釋放內(nèi)存。動態(tài)內(nèi)存的生存期由我們決定,使用非常靈活,但問題也最多。

        5. 設(shè)計(jì)函數(shù)intatoi(char *s)。

        答:intatoi (char *s)

        {

        int i = 0,sum = 0,sign; //輸入的數(shù)前面可能還有空格或制表符應(yīng)加判斷

        while(*s==”||*s==’\t’)

        {

        i++;

        }

        sign = (*s==’-')?-1:1;

        if(*s==’-'|| *s==’+')

        {

        i++;

        }

        while(*s!=’\0′)

        {

        sum = *s-’0′+sum*10;

        i++;

        }

        return sign*sum;

        }

        6. 編寫strcat函數(shù)(6分)

        已知strcat函數(shù)的原型是char *strcat (char *strDest, const char *strSrc);

        其中strDest是目的字符串,strSrc是源字符串。

        (1)不調(diào)用C++/C 的字符串庫函數(shù),請編寫函數(shù)strcat

        答:

        char * __cdeclstrcat(char * dst, const char * src)

        {

        char * cp = dst;

        while( *cp )

        cp++; /* find end of dst */

        while( *cp++ = *src++ ) ; /* Copy src to end of dst */

        return(dst ); /* return dst */

        }

        (2)strcat能把strSrc的內(nèi)容連接到strDest,為什么還要char * 類型的返回值?

        答:方便賦值給其他變量。

        7. MFC中CString是類型安全類么?

        答:不是,其它數(shù)據(jù)類型轉(zhuǎn)換到CString可以使用CString的成員函數(shù)Format來轉(zhuǎn)換

        8.函數(shù)模板與類模板有什么區(qū)別?

        答:函數(shù)模板的實(shí)例化是由編譯程序在處理函數(shù)調(diào)用時(shí)自動完成的,而類模板的實(shí)例化必須由程序員在程序中顯式地指定。

        9. 寫一個(gè)“標(biāo)準(zhǔn)”宏MIN,這個(gè)宏輸入兩個(gè)參數(shù)并返回較小的一個(gè)。

        答:#define MIN(A,B) ((A) <= (B) ? (A) : (B)) 宏的副作用(與某些函數(shù)的混淆):least = MIN(*p++, b)。宏定義#define MIN(A,B) ((A) <= (B) ? (A) : (B))對MIN(*p++, b)的作用結(jié)果是:

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

        10. 嵌入式系統(tǒng)中經(jīng)常要用到無限循環(huán),你怎么樣用C編寫死循環(huán)呢?

        答:while(1){}或者for(;;)

      ′)

        {

        sum = *s-’0′+sum*10;

        i++;

        }

        return sign*sum;

        }

        6. 編寫strcat函數(shù)(6分)

        已知strcat函數(shù)的原型是char *strcat (char *strDest, const char *strSrc);

        其中strDest是目的字符串,strSrc是源字符串。

        (1)不調(diào)用C++/C 的字符串庫函數(shù),請編寫函數(shù)strcat

        答:

        char * __cdeclstrcat(char * dst, const char * src)

        {

        char * cp = dst;

        while( *cp )

        cp++; /* find end of dst */

        while( *cp++ = *src++ ) ; /* Copy src to end of dst */

        return(dst ); /* return dst */

        }

        (2)strcat能把strSrc的內(nèi)容連接到strDest,為什么還要char * 類型的返回值?

        答:方便賦值給其他變量。

        7. MFC中CString是類型安全類么?

        答:不是,其它數(shù)據(jù)類型轉(zhuǎn)換到CString可以使用CString的成員函數(shù)Format來轉(zhuǎn)換

        8.函數(shù)模板與類模板有什么區(qū)別?

        答:函數(shù)模板的實(shí)例化是由編譯程序在處理函數(shù)調(diào)用時(shí)自動完成的,而類模板的實(shí)例化必須由程序員在程序中顯式地指定。

        9. 寫一個(gè)“標(biāo)準(zhǔn)”宏MIN,這個(gè)宏輸入兩個(gè)參數(shù)并返回較小的一個(gè)。

        答:#define MIN(A,B) ((A) <= (B) ? (A) : (B)) 宏的副作用(與某些函數(shù)的混淆):least = MIN(*p++, b)。宏定義#define MIN(A,B) ((A) <= (B) ? (A) : (B))對MIN(*p++, b)的作用結(jié)果是:

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

        10. 嵌入式系統(tǒng)中經(jīng)常要用到無限循環(huán),你怎么樣用C編寫死循環(huán)呢?

        答:while(1){}或者for(;;)

      3169116