07威盛筆試題目(軟件部門)
下午威盛筆試題目(軟件部門)
發信站: 飲水思源 (2007年10月27日20:06:42 星期六)
留給後人看看吧。積攢RP。
1.説明下面程序的作用。
func(char*a,char*b)
{
while(*a++=*b++);
return;
}
2.#include <stdio.h>
#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.説明下面的的表達有沒有不同,如果不同,請説明不同在哪裏。
char* s1="hello";
char s2[]="world";
4.簡述auto,static,register,extern四種存儲類型的區別
count=0;
int x=2007
int main()
{
while(x)
{
count++;
x=x&(x-1);
}
return count;
}
問輸出返回的count值。
6.編程給一個程序,輸入N,(1<=N<=20)給N*N的矩陣進行Zigzag賦值,
即:N=0 時,a[0]=0;
N=4 時,a[4][4]=0 1 5 6
2 4 7 12
3 8 11 13
9 10 14 15
7.8個台階,上台階的人一次最多上3個台階,問上這個8個台階有多少種方法?
8.編寫程序,產生一個8*8的數組,隨即初始化該數組,然後編程查找該數組中值為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. 下面定義了一個線段的結構體,
struct line
{
int startx;
int starty;
int endx;
int endy;
};
line line2[32];
編程求出每條線段和多少條其他線段相交。