1. 使用宏定义swap函数,不使用中间变量

#define swap(x,y) {(x) = (x) + (y);(y) = (x) - (y);(x) = (x) - (y)}

2. 实现字符串的反转

#define swap(x,y) {(x) = (x) + (y);(y) = (x) - (y);(x) = (x) - (y);}

void reverse(char *string)
{
int len = strlen(string);
char *begin = string;
char *end = string + len - ;
while (begin < end)
{
swap(*begin,*end);
begin++;
end--;
} }

3. 实现单链表的反转

  3.1 方式一列表头不反转

void reverse_node(struct node *pHeader)
{
struct node *p = pHeader->pNext;
struct node *pbackup = NULL;
if(NULL == pHeader || NULL == p)
{
printf("node should more one\n");
return;
}
while(NULL != p)
{
pbackup = p->pNext;
if(pHeader->pNext == p)
{
p->pNext = NULL;
}
else
{
p->pNext = pHeader->pNext;
pHeader->pNext = p;
}
p = pbackup;
}
}

  3.2 方式二列表头也反转

struct node * reverse(struct node *pHeader)
{
if (pHeader== NULL || pHeader-> Next == NULL)
{
return pHeader;
}
struct node *p = pHeader-> Next;
struct node *pNewHeader = reverse(p);
p -> Next = pHeader;
pHeader->Next = NULL;
return pNewHeader;
}

4. 计算二叉树的高度

typedef struct BinTreeNode
{
int data;
struct BinTreeNode *lchild;
struct BinTreeNode *rchild; }*BSTree int depth(BSTree T)
{
if(!T)
{
return ;
}
int d1=depth(T->lchild);
int d2=depth(T->rchild);
return (d1>d2?d1:d2)+;
}

5. 判断一个数是否是2的次幂

inline int Is2exp(int i)
{
return (i&(i-))?:);
}

嵌入式软件工程师C语言经典笔试2的更多相关文章

  1. 嵌入式软件工程师C语言经典笔试1

    一. 预处理器(Preprocessor) 1.1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题) #define SECONDS_PER_YEAR (60 * 6 ...

  2. C语言经典笔试题目

    1.bool,float,指针变量 与 “零值” 比较的if语句 注意点:c语言中bool类型采用整数存储,0为false,非0均为true; float类型采用IEEE754标准,第一位符号位,中间 ...

  3. CVTE 嵌入式软件工程师 二面

    昨天晚上收到了二面的通知,激动啊-第二天提前20分钟到达指定地点,然后一起做大巴去到CVTE总部,发现笔试刷掉的人好像并不是很多.我们一下车被带到了公司的电影院,听演唱会.呵呵,挺有意思的,有一个漂亮 ...

  4. C语言经典例题100

    C语言经典例题100 来源 http://www.fishc.com 适合初学者 ----------------------------------------------------------- ...

  5. 【转载】经典10道c/c++语言经典笔试题(含全部所有参考答案)

    经典10道c/c++语言经典笔试题(含全部所有参考答案) 1. 下面这段代码的输出是多少(在32位机上). char *p; char *q[20]; char *m[20][20]; int (*n ...

  6. C语言经典算法 - 多维矩阵转一维矩阵的代码

    下边内容内容是关于C语言经典算法 - 多维矩阵转一维矩阵的内容,应该能对码农也有好处. #include <stdio.h>#include <stdlib.h>int mai ...

  7. C语言经典例题(菜鸟教程100例)

    学习c语言基础,怎么能少了菜鸟教程上的100道例题呢,这里整理一下每道题的链接,希望大家能享受学习的乐趣 1,有1,2,3,4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 2,企业发放 ...

  8. 经典笔试题型----IT经理(IT Manager)

    一般企业设置IT部门都是服务性质,虽然谈IT需要成为战略部门许多年,但用脑子想下,这概率有多少?企业存在的第一目标是:赚取利润.贸易型企业最重要的部门为销售部,生产型企业最重要的部门为销售部与生产部, ...

  9. C 语言经典100例

    C 语言经典100例 C 语言练习实例1 C 语言练习实例2 C 语言练习实例3 C 语言练习实例4 C 语言练习实例5 C 语言练习实例6 C 语言练习实例7 C 语言练习实例8 C 语言练习实例9 ...

随机推荐

  1. springboot使用外部application.properties配置文件

    一.背景介绍 springboot默认的application.properties文件只能在项目内部,如果打成docker镜像后配置文件也打进去了,这样每次需要改动配置(比如数据库的连接信息)就需要 ...

  2. 数据结构-STL序列式容器总结

    根据序列在容器中的排列特性,将常见数据结构分为:序列式容器和关联式容器. 常见序列式容器有 1.array(build-in)c++內建 2.vector 3.heap(以算法方式呈现) 4.prio ...

  3. Java 数组复制之clone方法

    一.源码 public class Test1 { public static void main(String[] args) { // Student[] arrs = new Student[] ...

  4. CodeChef DGCD Dynamic GCD

    CodeChef题面 Time limit 210 ms Code length Limit //内存限制也不说一下,真是的-- 50000 B OS Linux Language limit C, ...

  5. CCA(典型相关分析)

    https://www.cnblogs.com/pinard/p/6288716.html

  6. jQuery_完成表格的隔行换色

    表格的颜色一样不利于区分,而利用jQuery则可以很方便的进行表格的隔行换色操作,原表如下: 这样看着很不方便,但是隔行换色之后非常便捷清楚. 代码如下: <!DOCTYPE html> ...

  7. 8.Python标识符命名规范

    简单地理解,标识符就是一个名字,就好像我们每个人都有属于自己的名字,它的主要作用就是作为变量.函数.类.模块以及其他对象的名称. Python 中标识符的命名不是随意的,而是要遵守一定的命令规则,比如 ...

  8. Redis、Nginx加入启动命令

    1.redis加入系统启动命令 vim /etc/init.d/redis #!/bin/sh #chkconfig: 2345 80 90 # Simple Redis init.d script ...

  9. java 强弱软虚 四种引用,以及用到的场景

    1.利用软引用和弱引用解决OOM问题:用一个HashMap来保存图片的路径和相应图片对象关联的软引用之间的映射关系,在内存不足时,JVM会自动回收这些缓存图片对象所占用的空间,从而有效地避免了OOM的 ...

  10. selectKey 标签

    原文: https://blog.csdn.net/Sun_of_Rainy/article/details/81564433 在insert语句中,在Oracle经常使用序列.在MySQL中使用函数 ...