今年华为暑假招聘已经开始,在华为官网填写简历后,带简历去听其宣讲会,宣讲后马上进行面试。说一说我面试的几道题目吧。面试官给我2道程序选择题和一道程序改错题。
(1)关于指针数据交换内容
void Swap(*p1,*p2)
{
int temp;
temp=*p1;
*p1=*p2;
p2=temp;
}
以上可以实现指针所指内容的交换。
(2) 指针与多维数组
int a[][3]={{1,2,3},{10,11,12},{33,34,35}};
int *p=a[1]+5;
问*p的值
a[1]为第二行第一列元素的地址,a[1[+5为偏移5个单位,则为元素35的地址,*p则为35.
(3)
int * fun(int m)
{
float f=1/2;
int d=0;
switch(f)
{
case 0:
d=0;
break;
case 1-2:
if(0.5==f)
{
continue;
}
d=1;
break;
default:
break;
}
return &d;
}
float f=1/2的值实际为0,则可以改为float f=1.0/2;
switch()里数据类型只能是int,char,枚举,以及引用字符串;
case 1-2: 是错误的;
0.5==f也是错的,浮点数比较应该用范围;
continue用的不合理。
c语言基础是非常重要的...自己还需继续巩固。