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. sudo: pip:command not found问题解决

    python3 sudo apt-get install python3-pip python2 sudo apt-get install python-pip如果还是不行,则按照下面操作 原因:编译 ...

  2. 14.django返回展示一张图片

    urlpatterns = [ path('admin/', admin.site.urls), # 使用django返回一张土图片的时候需要间接的访问一个中间接口,是html页面的中的img的src ...

  3. C# 向上取整数

    PageCount = personInfodb.get_count(selected_id); //数据总数 PageCount = (int)Math.Ceiling(PageCount / (P ...

  4. Linux培训教程 linux下修改用户权限的方法

    一般我们日常碰到要修改用户权限的,往往是要么修改一下用户的gorupid,通过上面命令可以改;要么是把普通用户改成具有超级权限的用户,这个一般自己不能直接改,只能是root或有root权限的用户才能帮 ...

  5. asp.net 如何实现大文件断点上传功能?

    之前仿造uploadify写了一个HTML5版的文件上传插件,没看过的朋友可以点此先看一下~得到了不少朋友的好评,我自己也用在了项目中,不论是用户头像上传,还是各种媒体文件的上传,以及各种个性的业务需 ...

  6. BZOJ 4488: [Jsoi2015]最大公约数 暴力 + gcd

    Description 给定一个长度为 N 的正整数序列Ai对于其任意一个连续的子序列 {Al,Al+1...Ar},我们定义其权值W(L,R )为其长度与序列中所有元素的最大公约数的乘积,即W(L, ...

  7. 题解 CF1190B 【Tokitsukaze, CSL and Stone Game】

    思路: 首先题目告诉我们,一次只能删去一个石子.当然有翻译时会注意,但是看英文题时总是容易忽略.. 先排序. 然后,你会发现,有些情况是一开始就输的,具体情况如下: 有两个 两个相等非零数.(a[x] ...

  8. QML 与 C++ 交互

    前言 文档如是说,QML旨在通过C ++代码轻松扩展.Qt QML模块中的类使QML对象能够从C ++加载和操作,QML引擎与Qt元对象系统集成的本质使得C ++功能可以直接从QML调用.这允许开发混 ...

  9. navicat安装与激活

    原文网址:https://www.jianshu.com/p/5f693b4c9468?mType=Group 一.Navicat Premium 12下载 Navicat Premium 12是一套 ...

  10. wannafly 练习赛11 E 求最值(平面最近点对)

    链接:https://www.nowcoder.com/acm/contest/59/E 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit ...