【嵌入式面试题】常见面试题梳理五

注:看面试题时,主要应该以学习为主,面试题有些基本上是我们编程时会遇上的问题,通过学习面试题会提升我们的编程意识和解决一些日常我们编程所遇到的问题,看完这篇面试题后,希望能对你有所帮助,另外题中有问题的地方可以在评论区指出,在这里谢谢您的观看。

  1. 题目一
int (*s[10])(int) 

上面表示的是什么?

思路:看这类题时,想看变量s先与那个先结合,上述s先与[]相结合说明它是一个数组,再将s[]去掉,就可以得到数组里储存的类型是int (*)(int),指向返回值为int型的函数指针。

解答:数组,数组里的数据类型是指向函数地址的指针。	
  1. 题目二

一句代码实现判断x是否为2的若干次幂

思路:2的若干次幂二进制表示是10、100、1000。。。。因此让x自身减1,在&上x,如果是2的若干次幂得出的结果则必定为0。

解答:x&(x-1) != 0? N : Y
  1. 题目三

用宏定义实现数据交换swap(x, y)

思路:本题考的是宏的使用以及规范

解答:#define swap(x, y)  do{(x)=(x)+(y);(y)=(x)-(y);(x)=(x)-(y);}while(0)
  1. 题目四

给一个单链表由大到小排序

思路:冒泡排序或者一些其他的排序都可以

解答:(伪代码)

void LinkListSort(Linklist *H)
{
	assert(H);
	
	Linklist *P = NULL, Q = NULL;
	data_t data;
	
	for(p = H->next; p != NULL; p = p->next)
	{
		for(Q = p; Q->next != NULL; Q = Q->next)
		{
			if(p->data < Q->next->data)
			{
				data = p->data;
				p->data = Q->next->data;
				Q->next->data = data;
			}		
		}
	}
}
  1. 题目五

在不改变单链表的结构下实现节点数据的逆序输出。

思路:使用递归解决重复回归的问题

解答:

void reshow_LinkList(LinkList *H)
{
	if(H == NULL)
		return;
	else
	{
		reshow_LinkList(H->next);
		printf("%d ", H->data);
	}
}
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

修成真

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值