- 博客(11)
- 资源 (2)
- 收藏
- 关注
原创 C++题目(三)
1.在排序算法中,元素比较次数与初始排列无关的是:冒泡、选择、归并、有关的是:插入、快排、shell、堆(有点关系,好像关系不打)2.10 != 9的结果为?这个题目在VC上编译sizeof(10!=9)为4,在gcc上编译结果为1。不同编译器有不同的结果,可能为int 1 也可能为bool false。3.函数声明void fun(int a=0, int b)是否正确?
2012-08-30 19:45:55 1374
原创 C++题目(二)
1.用预处理指令#define声明一个常数,用以表明1年中有多少秒(忽略闰年问题)。#define SECONDS_PER_YEAR(60*60*24*365)UL应该意识到表达式将使一个16位机的整形数溢出,因此要用到长整型符号L,表达式中UL表示无符号长整型。2.写一个“标准”宏MIN,这个宏输入连个参数并返回较小的一个。#define MIN(A,B) ((A)懂得在宏
2012-08-30 10:05:47 3034 2
原创 C++可使用的IO
题目:键盘输入一系列数字(-1结束),输出到a文件中分别用C++的库,ISO C的库实现,又用getline实现整行的读取(包括空格)。cin、scanf、都是以空格和换行来标志一个输入的,如果输入1 2 3(注意中间有空格)会产生三个输入值。但是如果想输入一个字符串,比如“hello world”那么用cin和scanf就不好用了,用getline可以读入包括空格的一整行字符串。也可以用fg
2012-08-28 16:01:08 674
原创 输出1到最大的N位数
输入数字n,按顺序输出从1最大的n位10进制数。比如输入3,则输出1、2、3一直到最大的3位数即999。这个题目主要考虑的是大整数越界的问题,下面采用了两种方法,一种是用数组模拟大整数相加,另一种是用递归的方法,递归的方法代码简单明了,但是就是效率比较低。下面是我在自己的linux虚拟机上跑出来的5位数所用的时间,即是输出1到99999,非递归的方法时间为:real 0m14.2
2012-08-26 16:45:09 1476
原创 顺时针打印矩阵
输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。例如:如果输入如下矩阵:1 2 3 45 6 7 89 10 11 1213
2012-08-26 15:17:44 1213 2
原创 判断二叉树是不是平衡的
输入一棵二叉树的根结点,判断该树是不是平衡二叉树。如果某二叉树中任意结点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树在遍历树的每个结点的时候,调用函数TreeDepth得到它的左右子树的深度。如果每个结点的左右子树的深度相差都不超过1,按照定义它就是一棵平衡的二叉树。#include using namespace std;typedef struct BTree
2012-08-25 16:21:46 777
原创 二叉树两个结点的最低共同父结点
输入二叉树中的两个结点,输出这两个结点在数中最低的共同父结点。网上看来的题目,以下都有参考。求数中两个结点的最低共同结点是面试中经常出现的一个问题。这个问题至少有两个变种。第一变种是二叉树是一种特殊的二叉树:查找二叉树。也就是树是排序过的,位于左子树上的结点都比父结点小,而位于右子树的结点都比父结点大。我们只需要从根结点开始和两个结点进行比较。如果当前结点的值比两个结点都大,则最低的共同父
2012-08-25 15:46:17 2359
原创 在二元树中找出和为某一值的所有路径
来自何海涛100题。题目:输入一个整数和一棵二元树。从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所有路径。例如输入整数22和如下二元树 10 / \
2012-08-23 15:35:15 724
原创 this指针
先看几个题目,参考何海涛100题。题目(一)程序的输出结果#include using namespace std;class A{private: int m_value; public: A(int value) { m_value = value;
2012-08-16 16:48:44 1955
原创 C++ 题目(一)
题目(一)求输出结果#include using namespace std;struct Point3D{ int x; int y; int z;};int main (){ Point3D *pPoint = NULL; int offset = (int) (&(pPoint)->z); printf ("%d", o
2012-08-16 16:44:19 1006
原创 大整数的乘法、加法、减法
乘法用经典的算法来解决,还有分治法来解决大整数乘法,但是效率提升不明显而且代码稍烦。所谓的经典算法就是直接按照位相乘,然后换算进位的算法,也很简单。加法和乘法用到的进位算法一样,减法是用借位。注意结果的位数,乘法、加法、减法结果的位是不同的。下面是代码#include using namespace std;void multiply(short *a, short *b, sho
2012-08-14 19:28:19 1976
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人