- 博客(9)
- 资源 (26)
- 收藏
- 关注
原创 关于Swap的几种方法
关于交换两个值的函数的方法大致如下: 1. template void Swap(T &a, T &b) //运用中间变量{ T tmp = a; a = b; b = tmp;} 2.template //运用加减运算void Swap(T &a, T &b){ a =
2010-03-31 23:50:00 895
原创 几道笔试题的解法(八)
题目:请定义一个宏,比较两个数a、b的大小,不能使用大于、小于、if语句。分析:本题考查的是位操作和问号操作符的知识。 代码如下:1. #include templateT Max(const T& a, const T&b){ return (a - b) & (numeric_limits::max() + 1 ) ? b : a;}
2010-03-31 23:41:00 415
原创 几道笔试题的解法(七)
题目:用C++写一个函数, 如 Foo(const char *str), 打印出 str 的全排列, 如 abc 的全排列: abc, acb, bca, dac, cab, cba 。分析:本题考查递归和指针的知识点。 代码如下:(声明:部分代码来自网络) #include "stdafx.h"#include
2010-03-31 23:28:00 508
原创 几道笔试题的解法(六)
题目:输入一个字符串,将它逆向输出。分析:本题考查C语言的指针。 代码如下: int GetLength(const char* _in){ int _length = 0; while (*_in++ != /0) { _length++; } return _length;}char* String
2010-03-31 21:28:00 431
原创 几道笔试题的解法(五)
题目: 有编号从1到N的N个人坐成一圈报数,报到M的人出局,下一位再从1开始,如此持续,直止剩下一位为止,报告此人的编号X。输入N,M,求出X分析:本题是著名的约瑟夫问题。代码如下:int SumResult(int N, int M){ int i = 0; int k = 0; for
2010-03-31 21:24:00 506
原创 几道笔试题的解法(四)
题目: 编写一个单词逆序输出的算法。例如:“I am a student”, 要求输出为:”student a am I”分析:本题考查的是C语言的指针 代码如下:第一种: //用C语言知识实现void ReverseWord(char* str, char* outstr){ char* head = str; while(*str++);
2010-03-31 20:56:00 558
原创 几道笔试题的解法(三)
题目:编写一个二叉树的中序遍历算法分析:本题考查二叉树的遍历。 代码如下:(下面的代码采用的是递归遍历的算法) typedef int ElemType; typedef struct BinaryTree{ ElemType Data; struct BinaryTree * Left; struct
2010-03-31 20:52:00 556
原创 几道笔试题的解法(二)
题目:给定数组A[N],要求实现一个排序算法和一个二分查找算法的程序。分析:本题主要考察排序和二分查找算法。 代码如下: void Swap(int &a, int &b){int temp = a;a = b;b = temp;} void BubbleSort(int *A, int Length){int i = 0;int j =
2010-03-31 20:48:00 417
原创 几道笔试题的解法(一)
题目: 编写一个链表合并程序。存在2个有序链表list1,list2,要求合并为有序链表list3。分析: 本题主要考察链表的创建和合并(有序的插入) 代码如下:(声明:部分代码参考自网上) #include "stdafx.h"#include using namespace std; /* 单链表节点*/struct node{int v
2010-03-31 20:05:00 609
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人