应届大学生面试技巧嵌入式方面3

时间:2022-07-12 03:05:16 面试 我要投稿
  • 相关推荐

应届大学生面试技巧嵌入式方面(3)

作为一个即将毕业的大学生,在外地实习找工作确实是一件很痛苦的事情,我们没有很强的技能(除过那些很BT的家伙),没有一定的社会阅历,甚至没有一点家庭背景.但是作为企业来说,他们在很大程度上也都是很了解应届大学生的,他们对我们的要求不是很高,除非有的公司是想刁难你,但是这样的事情是很少发生的,

应届大学生面试技巧嵌入式方面(3)

我就我在北京的一些找工作的经验和学习到的一些知识分享给大家,仅代表一家之言,不足之处请大家指正.

 

操作篇:发些代码给大家做做笔试参考.

1.下面的代码输出是什么,为什么?

void foo(void)
{ unsigned int a = 6;
int b = -20;
(a+b > 6) puts("> 6") : puts("<= 6");
}

2.评价下面的代码片断:

unsigned int zero = 0;
unsigned int compzero = 0xFFFF;

对于一个int型不是16位的处理器为说,上面的代码是不正确的。应编写如下:

unsigned int compzero = ~0;

3.求输出char *ptr;
if ((ptr = (char *)malloc(0)) == NULL)
puts("Got a null pointer");
else
puts("Got a valid pointer");

4.C语言同意一些令人震惊的结构,下面的结构是合法的吗,如果是它做些什么?
int a = 5, b = 7, c;
c = a+++b;

5.What will print out?

main()
{ char *p1=“name”;
char *p2;
p2=(char*)malloc(20);
memset (p2, 0, 20);
while(*p2++ = *p1++);
printf(“%sn”,p2);

}

Answer:empty string.

What will be printed as the result of the operation below:

main()
{ int x=20,y=35;
x=y++ + x++;
y= ++y + ++x;
printf(“%d%dn”,x,y);
}

Answer : 5794

What will be printed as the result of the operation below:

main()
{ int x=5;
printf(“%d,%d,%dn”,x,x<<2,x>>2);
}

Answer: 5,20,1

What will be printed as the result of the operation below:

#define swap(a,b) a=a+b;b=a-b;a=a-b;
void main()
{ int x=5, y=10;
swap (x,y);
printf(“%d %dn”,x,y);
swap2(x,y);
printf(“%d %dn”,x,y);
}

int swap2(int a, int b)
{ int temp;
temp=a;
b=a;
a=temp;
return 0;

}

Answer: 10, 5
10, 5

What will be printed as the result of the operation below:

main()
{ char *ptr = ” Cisco Systems”;
*ptr++; printf(“%sn”,ptr);
ptr++;
printf(“%sn”,ptr);
}

Answer:Cisco Systems
isco systems

What will be printed as the result of the operation below:

main()
{ char s1[]=“Cisco”;
char s2[]= “systems”;
printf(“%s”,s1);
} Answer: Cisco

What will be printed as the result of the operation below:

main()
{ char *p1;
char *p2;
p1=(char *)malloc(25);
p2=(char *)malloc(25);

strcpy(p1,”Cisco”);
strcpy(p2,“systems”);
strcat(p1,p2);

printf(“%s”,p1);

}

Answer: Ciscosystems

The following variable is available in file1.c, who can access it?:

static int average;

Answer: all the functions in the file1.c can access the variable.

WHat will be the result of the following code?

#define TRUE 0 // some code
while(TRUE)
{

// some code

}

Answer: This will not go into the loop as TRUE is defined as 0.

What will be printed as the result of the operation below:

int x;
int modifyvalue()
{ return(x+=10);
} int changevalue(int x)
{ return(x+=1);
}

void main()
{ int x=10;
x++;
changevalue(x);
x++;
modifyvalue();
printf("First output:%dn",x);

x++;
changevalue(x);
printf("Second output:%dn",x);
modifyvalue();
printf("Third output:%dn",x);

}

Answer: 12 , 13 , 13

What will be printed as the result of the operation below:

main()
{ int x=10, y=15;
x = x++;
y = ++y;
printf(“%d %dn”,x,y);
}

Answer: 11, 16

What will be printed as the result of the operation below:

main()
{ int a=0;
if(a==0)
printf(“Cisco Systemsn”);
printf(“Cisco Systemsn”);
}

Answer: Two lines with “Cisco Systems” will be printed.

再次更新C++相关题集

6. 以下三条输出语句分别输出什么?[C易]
char str1[] = "abc";
char str2[] = "abc";
const char str3[] = "abc";
const char str4[] = "abc";
const char* str5 = "abc";
const char* str6 = "abc";
cout << boolalpha << ( str1==str2 ) << endl; // 输出什么? 0
cout << boolalpha << ( str3==str4 ) << endl; // 输出什么? 0
cout << boolalpha << ( str5==str6 ) << endl; // 输出什么? 1

7.写一个函数,反映出电脑是大端存储(BIG_ENDER)还是小端存储(LITTLE_ENDER)?

8.不用库函数,编写函数strcmp()和strcat() strcpy()

9.折半查找函数?

10.int fun(int *p)和int fun(int p)区别?

11.struct

{

bit a;

char b;

int c;

float d;

}a;

求sizeof(a)=?

12.int main(int argc,char *argv[])
{
int c=9,d=0;
c=c++%5;
d=c;
printf("d=%d\n",d);
return 0;
}
a) 写出程序输出
5
b) 在一个可移植的系统中这种表达式是否存在风险?why?
13 .# include "stdio.h"
int a=0;
int b;
static char c;
int main(int argc,char *argv[])
{
char d=4;
static short e;

a++;
b=100;
c=(char)++a;
e=(++d)++;
printf("a=%d, b=%d, c=%d, d= %d, e=%d",a,b,c,d,e);
return 0;
}
a) 写出程序输出
以前学过c++,这个是可以的 e=(++d)++;
现在才发现在c中,这是不行的
a=2, b=100, c=2, d= 6, e=5
b) 编译器如果安排各个变量(a,b,c,d)在内存中的布局(eg. stack,heap,data section,bss section),最好用图形方式描述。
data section: a
bss section: b,c,e
stack d
在采用段式内存管理的架构中,数据段(data segment)通常是指用来存放程序中已初始化的全局变量的一块内存区域。数据段属于静态内存分配。

在采用段式内存管理的架构中,BSS段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。BSS是英文Block Started by Symbol的简称。BSS段属于静态内存分配。