- 相关推荐
c++一些笔试题目和整理的答案
NO1
Below is usual way we find one element in an array
const int *find1(const int* array, int n, int x)
{
const int* p = array;
for(int i = 0; i < n; i++)
{
if(*p == x)
{
return p;
}
++p;
}
return 0; }
In this case we have to bear the knowledge of value type "int", the size of array, even the existence of an array. Would you re-write it using template to eliminate all these dependencies?
template
const T *find1(const T* array, int n, T x)
{
const T* p = array;
for(int i = 0; i < n; i++)
{
if(*p == x)
{
return p;
}
++p;
}
return 0; }
NO2
Give an example of implementing a Stack in the template way(only template class declaration without detail definition and realization)
template
class Stack
{
public:
Stack(int = 10) ;
~Stack() { [] stackPtr ; }
int push(const T&);
int pop(T&) ;
int isEmpty()const { return top == -1 ; }
int isFull() const { return top == size - 1 ; }
private:
int size ; // number of elements on Stack.
int top ;
T* stackPtr ;
} ;
NO3
Implement the simplest singleton pattern(initialize if necessary).
class Singleton {
public:
static Singleton* Instance();
protected:
Singleton();
private:
static Singleton* _instance;
}
// Implementation
Singleton* Singleton::_instance = 0;
Singleton* Singleton::Instance() {
if (_instance == 0) {
_instance = new Singleton;
}
return _instance;
}
NO4
1.Jeff and Diamond like playing game of coins, One day they designed a new set of rules:
1)Totally 10 coins
2)One can take away 1,2or 4 coins at one time by turns
3)Who takes the last loses.
Given these rules Whether the winning status is pre-determined or not
解答: 1:从后面开始考虑,最后肯定要留1个才能保证自己赢
2:所以要设法让对方留下2,3,5个
3:也就是要自己取后留下1,4,6,7,8,9
4:如果自己取后留下6,对方取2个,与(3)矛盾,所以排除6
5:如果自己取后留下8,对方取4个,与(3)一样情况,所以也排除8
6:同样,9也不行,如果我抽后剩下9,对方抽2个,就反过来成对方抽剩成7个了,也与3)矛盾,所以也排除
7:所以很显然,我只能抽剩1,4,7
8:因为只能抽后剩1,4,7才能赢,我先抽得话不可能达到这几个数,很显然,只能让对
方先抽,也即是先抽的人输
【c++一些笔试题目和整理的答案】相关文章:
C++工程师笔试题目11-25
报社笔试题目及答案03-23
笔试的题目和经验分享11-21
2024腾讯笔试题目及答案08-21
游戏策划笔试题目答案02-25
口语和笔试题目分享11-21
笔试的具体题目数和形式02-23
马士基的笔试题目和感受11-21
史上最全软件笔试题目及答案04-03
富士康笔试题目及答案03-30