威盛笔试题目(软件部门)威盛
威盛笔试题目(软件部门)威盛
留给后人看看吧。积攒rp。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",a[0],a[1],a[2]);
p=a;
add(p);
add(p);
printf("%d,%d,%d",a[0],a[1],a[2]);
}
输出多少?
3.说明下面的的表达有没有不同,如果不同,请说明不同在哪里。
char* s1="hello";
char s2[]="world";
4.简述auto,static,register,extern四种存储类型的区别
5.int count=0;
int x=
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];
编程求出每条线段和多少条其他线段相交。