中兴笔试必读_第1页
中兴笔试必读_第2页
中兴笔试必读_第3页
中兴笔试必读_第4页
中兴笔试必读_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二部分技术测试 我考的是软件 那题啊 70 都是操作系统 晕死 很多都忘记了 还有涉及图像 软 件工程 网络 汇编语言 C C 第一部分是单选 系统测试是对什么的测试 系统测试 System Test ST 是将经过测试的子系统装配 成一个完整系统来测试 软件具体设计是对什么的设计 等等很多 第二部分多选 中断 CPU 正常运行程序时 由于微处理器内部事件或外设请求 引起 CPU 中断正在运行的程序 转去执 行请求中断的外设或内部事件的中断服务子程序 中断服务子程序执行完毕 再返回被中止的程序 这一 过程称为中断 利用中断可以避免不断检测外部设备状态 提高 CPU 效率 中断源 内部中断 INT n 和外部中断 发现中断就转去执行 但要先保护中断点 当前 CS IP 和 PSW 入栈 然后到中断服务子程 序 完毕后返回断点处继续执行 中断向量表 中断服务子程序的入口地址放在中断向量表中 中断优先 级 允许中断嵌套 中断屏蔽 CPU 有软件设置对中断源的中断请求不于响应 中断响应时间 发出中断 开始到执行中断服务子程序之前 千兆以太网和快速以太网的区别 快速以太网包括 10M 100M 1000M 千兆以太网是快速以太网里的一 种 点对点协议都有哪几个 ppp hdlc x 25 atm 城域网建设 虚继承和接口的区别 虚函数继承是为了实现多态 多态性是为了实现将接口和实现进行分离 纯虚函数 是的类是抽象类 抽象类不会定义默认的拷贝构造函数 虚拟继承是为了实现多重继承 解决子类继承中 调用父类模糊的概念 图像的格式等等很多 bmp jpeg dif gif pcx pcon 第三部分简答 1 线程是什么 还进程的区别 1 线程 和进程的区别 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动 进程是系统进行资源分配和调度的 一个独立单位 线程是进程的一个实体 是 CPU 调度和分派的基本单位 它是比进程更小的能独立运行的基 本单位 线程自己基本上不拥有系统资源 只拥有一点在运行中必不可少的资源 如程序计数器 一组寄存器 和栈 但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源 一个线程可以创建和撤销另一 个线程 同一个进程中的多个线程之间可以并发执行 当进程退出后该进程所产生的所有线程都会被强制退 出并清除 线程是比进程更小的处理模块 进程和线程都是由操作系统所体会的程序运行的基本单元 系 统利用该基本单元实现系统对应用的并发性 进程和线程的区别在于 简而言之 一个程序至少有一个进 程 一个进程至少有一个线程 线程的划分尺度小于进程 使得多线程程序的并发性高 另外 进程在执 行过程中拥有独立的内存单元 而多个线程共享内存 从而极大地提高了程序的运行效率 线程在执行过 程中与进程还是有区别的 每个独立的线程有一个程序运行的入口 顺序执行序列和程序的出口 但是线 程不能够独立执行 必须依存在应用程序中 由应用程序提供多个线程执行控制 从逻辑角度来看 多 线程的意义在于一个应用程序中 有多个执行部分可以同时执行 但操作系统并没有将多个线程看做多个 独立的应用 来实现进程的调度和管理以及资源分配 这就是进程和线程的重要区别 2 进程间的通信如何实现 现在常用的进程间的通信方式有 信号 信号量 消息队列 共享内存 信号和信号量是不同的 他们都 可用来实现同步和互斥 但前者是使用信号处理器来进行的 后者是使用 P V 操作来实现的 消息队列 是比较高级的一种进程间通信方法 因为它真的可以在进程间传送 message 一个消息队列可以被多个进 程共享 如 linux 下的 IPC 如果一个进程的消息太多 一个消息队列放不下 也可以用多于一个消息 队列 共享消息队列的进程所发送的消息除了 message 本身还有一个标志 这个标志可以指明该消息是哪 个进程或者哪类进程接受 每一个共享消息队列的进程针对这个队列也有自己的标志 可以用来声明自己 的身份 3 在网络编程中设计并发服务器 使用多进程与多线程有什么区别 用多进程时每个进程有自己的地址空间 线程则共享地址空间 所有其他区别都是由此而来 1 速度 线 程产生速度快 线程间通信快 切换快 因为它们在同一个地址空间内 2 资源利用率 线程的资源利 用率比较好 2 实时录制音频出现差错的原因 如何改进 3 static 的作用 首先 static 的最主要功能是隐藏 其次因为 static 变量存放在静态存储区 所以它 具备持久性和默认值 0 详细 隐藏 当我们同时编译多个文件时 所有未加 static 前缀的全局变量和 函数都具有全局可见性 static 的第二个作用是保持变量内容的持久 存储在静态数据区的变量会在程 序刚开始运行时就完成初始化 也是唯一的一次初始化 共有两种变量存储在静态存储区 全局变量和 static 变量 只不过和全局变量比起来 static 可以控制变量的可见范围 说到底 static 还是用来隐藏 的 static 的第三个作用是默认初始化为 0 其实全局变量也具备这一属性 因为全局变量也存储在静态 数据区 在静态数据区 内存中所有的字节默认值都是 0 x00 某些时候这一特点可以减少程序员的工作 量 4 死锁防止和死锁预防的区别 是计算机系统中多道程序并发执行时 两个或两个以上的进程由于竞争资源而造成的一种互相等待的现象 僵局 如无外力作用 这些进程将永远不能再向前推进 产生死锁的四个必要条件 互斥条件 进 程访问的是临界资源 那个资源一次只能被一个进程所使用 不剥夺条件 一个资源仅能被占有它的进 程所释放 而不能被其他进程剥夺 部分分配 请求和保持条件 一个进程在请求新的资源的同时 保持对某些资源的占有 环路等待条件 存在一个进程的环路链 链中每一个进程占用有着某个或某些 资源 又在等待链中的另一个进程占有的资源 根据生产死锁的四个必要条件 只要使用其中之一不能成 立 死锁就不会出现 但必要条件 1 是由设备的固有特性所决定的 不仅不能改变 相反还应加以保证 因此实际上只有三种方法 避免死锁与预防死锁的区别在于 预防死锁是设法至少破坏产生死锁的必要条 件之一 严格地防止死锁的出现 避免死锁 它是在进程请求分配资源时 采用银行家算法等防止系统进 入不安全状态 第四部分编两个小程序 1 用指针实现输入偶数输出 1 1 2 1 4 1 6 1 n 输入奇数 输出 1 1 3 1 5 1 7 1 n 2 用汇编实现冒泡排序 一直到快一点才做完啊 真的很伤脑筋啊 中兴笔试题目 2007 公共题 1 数据库中 XXX 和 XXX 操作可恢复数据库 undo redo 吧 更新日志前 undo 更新日志后 redo 可以回复数据库 2 数据库的核心是 XX 数据库管理系统 书上是数据库 3 头文件中 和 的区别 是编译器从标准库路径开始寻找 是从用户路径开始寻找 4 定义一个宏 输入两个参数 输出积 define Mutil a b a b 1 18 分的题 char GetMemory void char p hello world return p void Test void char str NULL str GetMemory printf str 请问运行 Test 函数会有什么样的结果 答 可能是乱码 因为 GetMemory 返回的是指向 栈内存 的指针 该指针的地址不是 NULL 但 其原先的内容已经被清除 新内容不可知 2 析构函数什么时候运行 实现什么功能 析构函数是在类生命周期结束的时候由系统自动调用 如一个对象的作用域结束的时 或者是一个对象使 用 new 动态构造时 在使用 delete 释放它时 delete 会调用它 功能是释放一个对象的存储空间 析构函 数没有返回值 没有参数 不能重载 7 全局变量和局部变量的区别 全局变量 全局变量是在所有函数体的外部定义的 程序的所在部分 甚至其它文件中的代码 都可以使 用 全局变量不受作用域的影响 问题可以使用的 也就是说 全局变量的生命期一直到程序的结束 如果在一个文件中使用 extern 关键字来声明另一个文件中存在的全局变量 那么这个文件可以使用这个数 据 局部变量 局部变量出现在一个作用域内 它们是局限于一个函数的 局部变量经常被称为自动变量 因为它们在进入作用域时自动生成 离开作用域时自动消失 关键字 auto 可以显式地说明这个问题 但 是局部变量默认为 auto 所以没有必要声明为 auto 1 作业调度程序从处于 D 状态的队列中选择适当的作业的作业投入运行 3 分 A 运行 B 提交 C 完成 D 后备 2 SQL 语言中 删除一个表的命令是 B 3 分 A CLEAR TABLE B B DROP TABLE C DELETE TABLE D REMOVE TABLE 答 TRUNCATE 清空表 SQL 中删除表只有 DROP 命令 Delete 删除数据是 DML DROP 是 DDL REVOKE 是 DCL 3 ATM 采用的线路复用方式为 C 3 分 A 频分多路复用 B 同步时分多路复用 C 异步时分多路 复用 D 独占信道 ATM Asynchronous Transfer Mode 异步传输方式 4 数据库中只存放视图的 C 3 分 A 操作 B 对应的数据 C 定义 D 限制 5 什么是虚拟设备 为什么在操作系统中引入虚拟设备 10 分 答 虚拟设备技术是指把每次仅允许一个进程使用的物理设备 改造为能同时供多个进程共享的虚拟设备 的技术 或者说将一个物理设备变换为多个对应的逻辑设备 6 TCP 为何采用三次握手来建立连接 若采用二次握手可以吗 请说明原因 16 分 答 TCP 对话通过三次握手来初始化 三次握手的目的是使数据段的发送和接收同步 告诉其它主机其 一次可接收的数据量 并建立虚连接 TCP 要提供可靠的服务 三次握手的简单过程 第一次握手 建 立连接时 客户端发送 syn 包 syn j 到服务器 并进入 SYN SEND 状态 等待服务器确认 第二次握手 服务器收到 syn 包 必须确认客户的 SYN ack j 1 同时自己也发送一个 SYN 包 syn k 即 SYN ACK 包 此时服务器进入 SYN RECV 状态 第三次握手 客户端收到服务器的 SYN ACK 包 向服务器发送确认包 ACK ack k 1 此包发送完毕 客户端和服务器进入 ESTABLISHED 状态 完成三 次握手 采用二次握手可以不 不可以 二次握手不可行 因为 如果由于网络不稳定 虽然客户端以前 发送的连接请求以到达服务方 但服务方的同意连接的应答未能到达客户端 则客户方要重新发送连接请 求 若采用二次握手 服务方收到重传的请求连接后 会以为是新的请求 就会发送同意连接报文 并新 开进程提供服务 这样会造成服务方资源的无谓浪费 7 什么是分布式数据库 12 分 答 分布式数据库系统通常使用较小的计算机系统 每台计算机可单独放在一个地方 每台计算机中都有 DBMS 的一份完整拷贝副本 并具有自己局部的数据库 位于不同地点的许多计算机通过网络互相连接 共同组成一个完整的 全局的大型数据库 这种组织数据库的方法克服了物理中心数据库组织的弱点 首先 降低了数据传送代价 因为大多数的对 数据库的访问操作都是针对局部数据库的 而不是对其他位置的数据库访问 其次 系统的可靠性提高了 很多 因为当网络出现故障时 仍然允许对局部数据库的操作 而且一个位置的故障不影响其他位置的处 理工作 只有当访问出现故障位置的数据时 在某种程度上才受影响 第三 便于系统的扩充 增加一个 新的局部数据库 或在某个位置扩充一台适当的小型计算机 都很容易实现 然而有些功能要付出更高的 代价 例如 为了调配在几个位置上的活动 事务管理的性能比在中心数据库时花费更高 而且甚至抵消 许多其他的优点 分布式数据库系统主要特点 多数处理就地完成 各地的计算机由数据通信网络相联系 克服了中心数据库的弱点 降低了数据传输代价 提高了系统的可靠性 局部系统发生故障 其他部分还可继续工作 各个数据库的位置是透明的 方便系统的扩充 为了协调整个系统的事务活动 事务管理的性能花费高 数据分片 类型 1 水平分片 按一定的条件把全局关系的所有元组划分成若干不相交的子集 每个子集为关系 的一个片段 2 垂直分片 把一个全局关系的属性集分成若干子集 并在这些子集上作投影运算 每个 投影称为垂直分片 3 导出分片 又称为导出水平分片 即水平分片的条件不是本关系属性的条件 而是其他关系属性的条件 4 混合分片 以上三种方法的混合 可以先水平分片再垂直分片 或先垂 直分片再水平分片 或其他形式 但他们的结果是不相同的 条件 1 完备性条件 必须把全局关 系的所有数据映射到片段中 决不允许有属于全局关系的数据却不属于它的任何一个片段 2 可重构 条件 必须保证能够由同一个全局关系的各个片段来重建该全局关系 对于水平分片可用并操作重构全局 关系 对于垂直分片可用联接操作重构全局关系 3 不相交条件 要求一个全局关系被分割后所得的 各个数据片段互不重叠 对垂直分片的主键除外 数据分配方式 1 集中式 所有数据片段都安排在 同一个场地上 2 分割式 所有数据只有一份 它被分割成若干逻辑片段 每个逻辑片段被指派在一 个特定的场地上 4 全复制式 数据在每个场地重复存储 也就是每个场地上都有一个完整的数据副 本 5 混合式 这是一种介乎于分割式和全复制式之间的分配方式 C 部分 50 分 1 设有 int w 3 4 p 是与数组名 w 等价的数组指针 则 pw 的初始化语句为 int p w 或者 int p 4 w 2 要使引用 pr 代表变量 char p 则 pr 的初始化语句为 char if x m px 0 则选择以下哪条语句可将 x 值置为 0 A int px B int const px B 5 设 viod f1 int m long a 0 b 1 c 2 d 3 printf d a b c d 答 6 运算后 a 1 b 1 c 3 d 4 7 写出下面函数的功能 12 分 TemplateU3 F Void WE Type a Type b int n Y for int i 0 i n i b n i 1 a 定义一个模板 交换两个数组的内容 且是逆序交换 8 写一段代码判断一个单向链表中是否有环 14 分 给出如下结构 Struct node steuct next Typedef stuct node Node 答 设置两个游标 p1 p2 P1 p2 include struct listtype int data struct listtype next typedef struct listtype list Check that whether there is loop in the singly linked list sll or not int find circle list sll list fast sll list slow sll if NULL fast return 1 while fast slow slow next if fast slow return 1 return 0 3 简述电路交换和分组交换的区别及优缺点 见宝典里面的网络和通信文件夹 从 csdn 论坛我近半年的收集中选出 10 道有代表性的题目 难度基本上是逐渐加大 对数组 指针 数据结构 算 法 字符串 文件操作等问题都有覆盖 主要以 c 语言的实现为主 也有 c 的题 大家可以先做做这 10 道题 测 试一下自己的水平 1 下面这段代码的输出是多少 在 32 位机上 char p char q 20 char m 20 20 int n 10 struct MyStruct char dda double dda1 int type MyStruct k printf d d d d sizeof p sizeof q sizeof m sizeof n sizeof k 答案 4 80 1600 4 24 我觉得最后一题应该是 16 1 char a 2 2 3 1 6 3 5 4 15 3 5 33 23 12 7 for int i 0 i 12 i printf d a 0 0 i 在空格处填上合适的语句 顺序打印出 a 中的数字 2 char p a 16 8 问 p a 是否会导致程序在以后出现问题 为什么 答 没有问题 只是使用时要小心 p 是指向指针的指针 A 是数组的首地址也是指针 3 用递归方式 非递归方式写函数将一个字符串反转 函数原型如下 char reverse char str 答 非递归方式 char reverse char str if str NULL int length strlen str for int i 0 inext NULL p1 head P2 p1 next While p2 P3 p2 next P2 next p1 P1 p2 P2 p3 head next NULL head p1 return head 6 一个单链表 不知道长度 写一个函数快速找到中间节点的位置 你设两个指针一个移动速度是令一个两倍就可以了吧 第一个 NULL 了 第 2 个就是中间节点了 答 typedef struct linknode int a struct linknode next linknode linknode findmiddle linknode head linknode fast low p if head NULL return NULL P head low p next fast p next next while p fast next fast fast next return low 7 写一个函数找出一个单向链表的倒数第 n 个节点的指针 把能想到的最好算法写出 答 两个指针 第一个先于第二个 n 个位置 LinkNode IsLoopList LinkNode head int n LinkNode p1 p2 p3 P1 head While n 0 实现 p3 早于 p1 n 个位置 P3 p2 next P2 p3 While p3 next NULL P3 p3 next P1 p1 next Return p1 当 p3 到达结尾时 后于 p3n 个位置的就是倒数第 n 个节点 8 补充一题 给你一个单向链表的头指针 可能最后不是 NULL 终止 而是循环链表 题目问你怎么找出 这个链表循环部分的第一个节点 比如下面的链表 0 1 2 3 4 5 6 7 8 3 循环 就应该返回结点 3 的位置 当然尽量用少的空间和时间是题目的要求 答 这个题目和原来的判断链表是不是循环链表的问题有一些区别的 原来是要证明链表是不是循环的 现 在的是已知某部分是循环的要求找到这个循环的头结点 我想到的办法是 从头开始一次取出把链表中的结点组成另一个链表 判断这个链表是不是循环的 第一个 满足条件的头结点就是了 比如以上面的测试数据为例 第一次取出 0 1 2 3 4 5 6 7 8 3 第二次取出 1 2 3 4 5 6 7 8 3 第三次取出 2 3 4 5 6 7 8 3 以此类推 10 判断链表是否循环 答 bool IsLoopList LinkNode head LinkNode p1 head p2 head if head next NULL 只包含头节点 且头节点的 next 为 NULL 说明肯定不是循环链表 return false do p1 p1 next 步长为 1 p2 p2 next next 步长为 2 while p2 if p1 p2 return true else return false 11 用递归算法判断数组 a N 是否为一个递增数组 答 递归算法 include include define N 5 int Judgment int a int main int a N i flag 1 printf Enter array data for i 0 i N i scanf d 输入数组元素 flag Judgment a 调用递归函数 if flag 1 printf increment array n else if flag 0 printf no increment array n getch return 0 int Judgment int a static i 0 注意这个是静态变量 必须用 static if i a i 1 return 0 i Judgment a return 1 非递归算法 include include define N 5 int Judgment int a int num main 函数和递归算法一样 int Judgment int a int num static i 0 flag 1 for i 0 i a i 1 假如发现哪两个不是递增 立刻跳出 flag 0 break return flag 第四部分 问答题 1 简述一个 Linux 驱动程序的主要流程与功能 My Answer 设备驱动程序是操作系统内核和机器硬件之间的接口 它为应用程序屏蔽硬件的细节 一般 来说 Linux 的设备驱动程序需要完成如下功能 1 初始化设备 2 提供各类设备服务 3 负责内核和设备之间的数据交换 4 检测和处理设备工作过程中出现的错误 2 请列举一个软件中时间换空间或者空间换时间的例子 My Answer 有两个交换的方法 void swap int a int b int c c a a b b a 和 void swap int a int b a a b b a b a a b 编程打印出如下图案 1 30 29 28 27 26 25 24 2 31 52 51 50 49 48 23 3 32 53 66 65 64 47 22 4 33 54 67 72 63 46 21 5 34 55 68 71 62 45 20 6 35 56 69 70 61 44 19 7 36 57 58 59 60 43 18 8 37 38 39 40 41 42 17 9 10 11 12 13 14 15 16 中兴笔试题 1 打字程序 要求 1 随即产生一个字符串 每次产生的字符串内容 长度都不同 2 根据 1 的结果 输入字符串 判断输入是否正确 输出正确率 3 具有输入输出界面 2 文本编辑器 要求 1 编辑文本 2 包存 打开指位置的文本文件 3 具有输入输出界面 3 加密 要求 1 输入任一段明文 M 以及密钥 K 2 根据下一公式将其转换为密问 C Ci mi K 其中 i 0 1 n 1 K 为密钥 3 具有输入输出界面 4 进制转换器 要求 1 可输入二进制 八进制 十进制 十六进制 2 可将已输入的数转换成其余进制的数 3 具有输入输出界面 在一个表里 有很多字段 每个字段的值有很多重复的 让你用写个 SQL 语句 把每个字段中出现次数最 多的值列出来 并在这个值的前面加上一个 1 如果涉及到多张表 请把别的表中的重复数据也一并修改 比如有年龄和工资两个字段 里面出理次数最多的是 18 和 3000 找出来并改成 118 和 13000 3 ISO 七层结构 物理层 数据链路层 网络层 传输层 会话层 表示层 应用层 5 数据库查询优化问题 6 编写程序 键盘输入一系列数字 1 结束 输出到 aabb bat 文件中 11 从一个或几个基本表 或视图 导出的表 它与基本表不同 是一个虚表 数据库中只存放视图的定义 而不存放视图对应的数据 这些数据仍存放在原来的基本表中 所有基本表 中的数据发生变化 从视图中查询出的数据也随之改变 视图一经定义 就可以和基本表一样被查询 删除 也可以在一个视图上再定义新的视图 但对视图的更 新 增加 修改 删除 操作则有一定的限制 1 对数据库的一张表进行操作 同时要对另一张表进行操作 如何实现 答案 将操作多个表的操作放入到事务中进行处理 简答题 4 分 题 1 unix 文件系统采用了三级索引结构存储和管理文件 现设一个物理块大小为 1kb 每 个索引表项大小为 3 字节 请问要查找一个大小为 8mb 的文件中的内容 最多需要进行几 级间接寻址 并说明理由 2 mac 子层和 llc 子层各有何功能 为什么要把数据链路层分为 mac 和 llc 两个子层 3 进程和程序的区别 4 在网络中有两台主机 a 和 b 通过路由器和其他交换机设备连接起来 已经确认物理连 接正常无误 怎样来测试这两台机器是否连通 如果不通 怎样判断故障点 怎样排除 故障 应用题 7 分 题 1 写出快速排序算法 2 编写一个函数 fn 传入一个字符串参数 查找里面有没有相同的字符 有的话返 回 1 否则返回 0 两种方法 一是效率最高的 二是最节省内存的 华为 C 语言笔试题 附答案 2008 年 03 月 23 日 星期日 17 14 1 局部变量能否和全局变量重名 答 能 局部会屏蔽全局 要用全局变量 需要使用 局部变量可以与全局变量同名 在函数内引用这 个变量时 会用到同名的局部变量 而不会用到全局变量 对于有些编译器而言 在同一个函数内可以定 义多个同名的局部变量 比如在两个循环体内都定义一个同名的局部变量 而那个局部变量的作用域就在 那个循环体内 2 如何引用一个已经定义过的全局变量 答 extern 可以用引用头文件的方式 也可以用 extern 关键字 如果用引用头文件方式来引用某个在 头文件中声明的全局变理 假定你将那个变写错了 那么在编译期间会报错 如果你用 extern 方式引用 时 假定你犯了同样的错误 那么在编译期间不会报错 而在连接期间报错 3 全局变量可不可以定义在可被多个 C 文件包含的头文件中 为什么 答 可以 在不同的 C 文件中以 static 形式来声明同名全局变量 可以在不同的 C 文件中声明同名的全 局变量 前提是其中只能有一个 C 文件中对此变量赋初值 此时连接不会出错 4 语句 for 1 有什么问题 它是什么意思 答 无限循环 和 while 1 相同 5 do while 和 while do 有什么区别 答 前一个循环一遍再判断 后一个判断以后再循环 6 请写出下列代码的输出内容 i nclude main int a b c d a 10 b a c a d 10 a printf b c d d d d b c d return 0 答 10 12 120 17 Internet 采用哪种网络协议 该协议的主要层次结构 在整个计算机网络 无论 Internet 或者公司局域网 通信中 使用最为广泛的通信协议便是 TCP IP 协议 它是网络互连的标准协议 18 Internet 物理地址和 IP 地址转换采用什么协议 ARP Address Resolution Protocol 地址解析協議 ping 命令使用了什么协议 ICMP 协议 所以位于网络层 19 IP 地址的编码分为哪俩部分 在 IP 地址的这四部分中 又可以分成两部分 一部分是网络号 Network 用来标识网络 一部分是主机 号 标识在某个网络上的一台特定的主机 C 编程中区分大小写 中兴通讯 C C 笔试题 答案 1 2008 04 26 19 31C C 试题的答案与评分标准 3 const 有什么用途 请至少说明两种 5 分 答 1 可以定义 const 常量 2 const 可以修饰函数的参数 返回值 甚至函数的定义体 被 const 修饰的东西都受到强制保护 可以预防意外的变动 能提高程序的健壮性 5 请简述以下两个 for 循环的优缺点 5 分 for i 0 i N i if condition DoSomething else DoOtherthing if condition for i 0 i N i DoSomething else for i 0 i 47 in count else in if maxlen count maxlen count count 0 final temp for int i 0 i maxlen i out final out final out 0 return maxlen 21 不用库函数 用 C 语言实现将一整型数字转化为字符串 整数转化为字符串 可以采用加 0 再逆序的办法 整数加 0 就会隐性的转化为 char 类型的数 include include int main void int num 12345 j 0 i 0 char temp 7 str 7 itoa number string 10 while num temp i num 10 0 i num num 10 temp i 0 printf temp s n temp i i 1 printf temp while i 0 str j temp i j i str j 0 printf string s n str return 0 字符串数转换为整数 字符串转化为整数 可以采用减 0 再乘 10 累加的办法 字符串减 0 就会隐性转化为 Int 型的数 include include int main void int num 12345 j 0 i 0 sum 0 char temp 7 1 2 3 4 5 n str 7 while temp i sum sum 10 temp i 0 i printf sum d n sum return 0 前几天面试 有一题想不明白 请教大家 typedef struct int a 2 是定义 后面的位数 a 2 就是 a 是个 2 位的数 t a 1 即使 01 int b 2 int c 1 test test t t a 1 t b 3 t c 1 printf d t a printf d t b printf d t c t a 为 01 输出就是 1 t b 为 11 输出就是 1 t c 为 1 输出也是 1 3 个都是有符号数 int 嘛 这是位扩展问题 01 11 1 编译器进行符号扩展 首位是 1 的话就是负数首位是 0 的话就是正数 22 求组合数 求 n 个数 1 n 中 k 个数的组合 如 combination 5 3 要求输出 543 542 541 532 531 521 432 431 421 321 include int pop int int push int void combination int int int stack 3 0 top 1 int main int n m printf Input two numbers n while 2 scanf d c d printf Input error Again n combination n m printf n void combination int m int n int temp m push temp while 1 if 1 temp if pop else if push temp printf d d d stack 0 stack 1 stack 2 pop int push int i stack top i if top 0 return 0 else return 1 1 线形表 a b 为两个有序升序的线形表 编写一程序 使两个有序线形表合并成一个有序升序线形 表答案在 请化大学 严锐敏 数据结构第二版 第二章例题 数据结构当中 这个叫做 两路归并排序 Linklist unio Linklist p Linklist q linklist R pa qa ra pa p qa q R ra p while pa next NULL qa qa next else ra next pa pa pa next if pa next NULL ra next pa if

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论