07威盛筆試題目(軟件部門)

字號(hào):

1.說明下面程序的作用。  
    func(char*a,char*b)
    {
    while(*a++=*b++);
    return;
    }
    2.#include
    #define ADD(p) {p++;(*p)++;}
    Add(int *p) {p++;(*p)++;}
    int a[]={0,1,2};
    int main()
    {
    int *p=a;
    ADD(p)
    ADD(p)
    printf("%d,%d,%d\n",a[0],a[1],a[2]);
    p=a;
    Add(p);
    Add(p);
    printf("%d,%d,%d\n",a[0],a[1],a[2]);
    }
    輸出多少?
    3.說明下面的的表達(dá)有沒有不同,如果不同,請(qǐng)說明不同在哪里。
    char* s1="hello";
    char s2[]="world";
    4.簡述auto,static,register,extern四種存儲(chǔ)類型的區(qū)別
    5.int count=0;
    int x=2007
    int main()
    {
    while(x)
    {
    count++;
    x=x&(x-1);
    }
    return count;
    }
    問輸出返回的count值。
    6.編程給一個(gè)程序,輸入N,(1<=N<=20)給N*N的矩陣進(jìn)行Zigzag賦值,
    即:N=0 時(shí),a[0]=0;
    N=4 時(shí),a[4][4]=0 1 5 6
    2 4 7 12
    3 8 11 13
    9 10 14 15
    7.8個(gè)臺(tái)階,上臺(tái)階的人一次最多上3個(gè)臺(tái)階,問上這個(gè)8個(gè)臺(tái)階有多少種方法?
    8.編寫程序,產(chǎn)生一個(gè)8*8的數(shù)組,隨即初始化該數(shù)組,然后編程查找該數(shù)組中值為1的元
    素,講該元素的所在的行列都賦為1.
    9.a[2][2]={(0,1),(2,3)};
    char *b=a[0];
    char *b1=a[1];
    char **c=b;
    char **c1=b1;
    printf("%c",b[0]);
    printf("%c",b1[0]);
    printf("%c",c[0]);
    printf("%c",c[1]);
    printf("%c",c1[0]);
    printf("%c",c1[1]);
    10. 下面定義了一個(gè)線段的結(jié)構(gòu)體,
    struct line
    {
    int startx;
    int starty;
    int endx;
    int endy;
    };
    line line2[32];
    編程求出每條線段和多少條其他線段相交。