久久综合丝袜日本网手机版,日韩欧美中文字幕在线三区,亚洲精品国产品国语在线,极品在线观看视频婷婷

      • 應(yīng)屆大學(xué)生面試技巧嵌入式方面3

        時間:2022-07-12 03:05:16 面試 我要投稿
        • 相關(guān)推薦

        應(yīng)屆大學(xué)生面試技巧嵌入式方面(3)

        作為一個即將畢業(yè)的大學(xué)生,在外地實習(xí)找工作確實是一件很痛苦的事情,我們沒有很強的技能(除過那些很BT的家伙),沒有一定的社會閱歷,甚至沒有一點家庭背景.但是作為企業(yè)來說,他們在很大程度上也都是很了解應(yīng)屆大學(xué)生的,他們對我們的要求不是很高,除非有的公司是想刁難你,但是這樣的事情是很少發(fā)生的,

        應(yīng)屆大學(xué)生面試技巧嵌入式方面(3)

        我就我在北京的一些找工作的經(jīng)驗和學(xué)習(xí)到的一些知識分享給大家,僅代表一家之言,不足之處請大家指正.

         

        操作篇:發(fā)些代碼給大家做做筆試參考.

        1.下面的代碼輸出是什么,為什么?

        void foo(void)
        { unsigned int a = 6;
        int b = -20;
        (a+b > 6) puts("> 6") : puts("<= 6");
        }

        2.評價下面的代碼片斷:

        unsigned int zero = 0;
        unsigned int compzero = 0xFFFF;

        對于一個int型不是16位的處理器為說,上面的代碼是不正確的。應(yīng)編寫如下:

        unsigned int compzero = ~0;

        3.求輸出char *ptr;
        if ((ptr = (char *)malloc(0)) == NULL)
        puts("Got a null pointer");
        else
        puts("Got a valid pointer");

        4.C語言同意一些令人震驚的結(jié)構(gòu),下面的結(jié)構(gòu)是合法的嗎,如果是它做些什么?
        int a = 5, b = 7, c;
        c = a+++b;

        5.What will print out?

        main()
        { char *p1=“name”;
        char *p2;
        p2=(char*)malloc(20);
        memset (p2, 0, 20);
        while(*p2++ = *p1++);
        printf(“%sn”,p2);

        }

        Answer:empty string.

        What will be printed as the result of the operation below:

        main()
        { int x=20,y=35;
        x=y++ + x++;
        y= ++y + ++x;
        printf(“%d%dn”,x,y);
        }

        Answer : 5794

        What will be printed as the result of the operation below:

        main()
        { int x=5;
        printf(“%d,%d,%dn”,x,x<<2,x>>2);
        }

        Answer: 5,20,1

        What will be printed as the result of the operation below:

        #define swap(a,b) a=a+b;b=a-b;a=a-b;
        void main()
        { int x=5, y=10;
        swap (x,y);
        printf(“%d %dn”,x,y);
        swap2(x,y);
        printf(“%d %dn”,x,y);
        }

        int swap2(int a, int b)
        { int temp;
        temp=a;
        b=a;
        a=temp;
        return 0;

        }

        Answer: 10, 5
        10, 5

        What will be printed as the result of the operation below:

        main()
        { char *ptr = ” Cisco Systems”;
        *ptr++; printf(“%sn”,ptr);
        ptr++;
        printf(“%sn”,ptr);
        }

        Answer:Cisco Systems
        isco systems

        What will be printed as the result of the operation below:

        main()
        { char s1[]=“Cisco”;
        char s2[]= “systems”;
        printf(“%s”,s1);
        } Answer: Cisco

        What will be printed as the result of the operation below:

        main()
        { char *p1;
        char *p2;
        p1=(char *)malloc(25);
        p2=(char *)malloc(25);

        strcpy(p1,”Cisco”);
        strcpy(p2,“systems”);
        strcat(p1,p2);

        printf(“%s”,p1);

        }

        Answer: Ciscosystems

        The following variable is available in file1.c, who can access it?:

        static int average;

        Answer: all the functions in the file1.c can access the variable.

        WHat will be the result of the following code?

        #define TRUE 0 // some code
        while(TRUE)
        {

        // some code

        }

        Answer: This will not go into the loop as TRUE is defined as 0.

        What will be printed as the result of the operation below:

        int x;
        int modifyvalue()
        { return(x+=10);
        } int changevalue(int x)
        { return(x+=1);
        }

        void main()
        { int x=10;
        x++;
        changevalue(x);
        x++;
        modifyvalue();
        printf("First output:%dn",x);

        x++;
        changevalue(x);
        printf("Second output:%dn",x);
        modifyvalue();
        printf("Third output:%dn",x);

        }

        Answer: 12 , 13 , 13

        What will be printed as the result of the operation below:

        main()
        { int x=10, y=15;
        x = x++;
        y = ++y;
        printf(“%d %dn”,x,y);
        }

        Answer: 11, 16

        What will be printed as the result of the operation below:

        main()
        { int a=0;
        if(a==0)
        printf(“Cisco Systemsn”);
        printf(“Cisco Systemsn”);
        }

        Answer: Two lines with “Cisco Systems” will be printed.

        再次更新C++相關(guān)題集

        6. 以下三條輸出語句分別輸出什么?[C易]
        char str1[] = "abc";
        char str2[] = "abc";
        const char str3[] = "abc";
        const char str4[] = "abc";
        const char* str5 = "abc";
        const char* str6 = "abc";
        cout << boolalpha << ( str1==str2 ) << endl; // 輸出什么? 0
        cout << boolalpha << ( str3==str4 ) << endl; // 輸出什么? 0
        cout << boolalpha << ( str5==str6 ) << endl; // 輸出什么? 1

        7.寫一個函數(shù),反映出電腦是大端存儲(BIG_ENDER)還是小端存儲(LITTLE_ENDER)?

        8.不用庫函數(shù),編寫函數(shù)strcmp()和strcat() strcpy()

        9.折半查找函數(shù)?

        10.int fun(int *p)和int fun(int p)區(qū)別?

        11.struct

        {

        bit a;

        char b;

        int c;

        float d;

        }a;

        求sizeof(a)=?

        12.int main(int argc,char *argv[])
        {
        int c=9,d=0;
        c=c++%5;
        d=c;
        printf("d=%d\n",d);
        return 0;
        }
        a) 寫出程序輸出
        5
        b) 在一個可移植的系統(tǒng)中這種表達式是否存在風(fēng)險?why?
        13 .# include "stdio.h"
        int a=0;
        int b;
        static char c;
        int main(int argc,char *argv[])
        {
        char d=4;
        static short e;

        a++;
        b=100;
        c=(char)++a;
        e=(++d)++;
        printf("a=%d, b=%d, c=%d, d= %d, e=%d",a,b,c,d,e);
        return 0;
        }
        a) 寫出程序輸出
        以前學(xué)過c++,這個是可以的 e=(++d)++;
        現(xiàn)在才發(fā)現(xiàn)在c中,這是不行的
        a=2, b=100, c=2, d= 6, e=5
        b) 編譯器如果安排各個變量(a,b,c,d)在內(nèi)存中的布局(eg. stack,heap,data section,bss section),最好用圖形方式描述。
        data section: a
        bss section: b,c,e
        stack d
        在采用段式內(nèi)存管理的架構(gòu)中,數(shù)據(jù)段(data segment)通常是指用來存放程序中已初始化的全局變量的一塊內(nèi)存區(qū)域。數(shù)據(jù)段屬于靜態(tài)內(nèi)存分配。

        在采用段式內(nèi)存管理的架構(gòu)中,BSS段(bss segment)通常是指用來存放程序中未初始化的全局變量的一塊內(nèi)存區(qū)域。BSS是英文Block Started by Symbol的簡稱。BSS段屬于靜態(tài)內(nèi)存分配。