豆豆简历馆

位置:首页 > 面试 > 面试笔试

07威盛笔试题目(软件部门)

下午威盛笔试题目软件部门
发信站: 饮水思源 (2007年10月27日20:06:42 星期六)

07威盛笔试题目(软件部门)

留给后人看看吧。积攒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];
编程求出每条线段和多少条其他线段相交。