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. 【NOIP2016提高A组模拟8.17】(雅礼联考day1)Binary

    题目 分析 首先每个数对\(2^i\)取模.也就是把每个数的第i位以后删去. 把它们放进树状数组里面. 那么当查询操作, 答案就位于区间\([2^i-x,2^{i-1}-1-x]\)中,直接查询就可以 ...

  2. 11. ClustrixDB 管理文件空间和数据库容量

    ClustrixDB监视集群中可用的空间量,并主动警告潜在的容量问题.确定集群容量的阈值是可配置的,如下所述. 存储类型 要了解如何管理设备和数据库的利用率,必须首先了解ClustrixDB如何分配磁 ...

  3. CSS 手动画热销小图标

    效果图 HTML 标签 <div class="main"> <div class="small"> <div class=&qu ...

  4. Python黑科技:6行代码轻松搭建FTP服务器

    Python 黑科技 六行代码轻松搭建个人FTP服务器 什么是FTP服务器? FTP (File Transfer Protocol) 是一个用于客户端与服务器之间文件的协议.利用FTP我们就能做到在 ...

  5. Android中实现双击(多击)事件

    要实现双击,你需要保存第一次点击时的时间,需要使用到变量,之后便是与第二次点击时的时间比较,看时间间隔是否在你设定的时间内(比如500ms). ? 1 2 3 4 5 6 7 8 9 10 11 12 ...

  6. JedisCluster和springboot整合

    maven依赖 springboot整合jedisCluster相当简单,maven依赖如下: <dependency> <groupId>org.springframewor ...

  7. c++函数相关

    1,内连函数 inline 返回值类型 函数名(形参列表) 普通函数成为内连函数:在普通函数声明之前加上inline 成员函数成为内连函数:在类中定义的函数全部默认为内连函数,可以显示加上inline ...

  8. 初始化Thread

    此处初始化的步骤和上文中介绍的一样,也是调用runClinit方法.首先设置初始化线程为CurrentThread,然后由于其父类Object此时的状态为CLASS_READY,因此就不需要初始化父类 ...

  9. 2018-2019-2-20175225 实验四《Android开发基础》实验报告

    一.实验报告封面 课程:Java程序设计 班级:1752班 姓名:张元瑞 学号:20175225 指导教师:娄嘉鹏 实验日期:2019年5月14日 实验时间:13:45 - 21:00 实验序号:实验 ...

  10. C#调用windows API实现 smallpdf客户端程序进行批量压缩

    一.背景 Smallpdf 网站针对PDF文件提供了非常齐全的功能:PDF 与 Word.PPT.Excel.JPG 的相互转化.PDF 的压缩.编辑.合并.分割.解密.加密等功能,用户无需注册即可免 ...