全国2009年1月自学考试C++程序设计试题(含答案)

全国2009年1月自学考试C++程序设计试题

void copy(Simple&s); void setxy(int i,int j){x=i;y=j;}

void print(){cout<<\};

void Simple::copy(Simple&s) {

x=s.x;y=s.y; }

void func(Simple s1,Simple&s2) {

s1.setxy(30,40); s2.setxy(70,80); }

void main() {

Simple obj1(1,2),obj2; obj2.copy(obj1); func(obj1,obj2); obj1.print(); obj2.print(); } x=1,y=2 x=70,y=80

53.给出下面程序的输出结果 #include\ int main() { int i=17; while(i>=10) if(--i%4==3)continue;

11/14全国2009年1月自学考试C++程序设计试题

全国2009年1月自学考试C++程序设计试题

else

cout<<\ } i=16 i=14 i=12 i=10

54.给出下面程序的输出结果 #include using namespace std; void main() {

int num=300; int &ref=num; cout<

六、程序设计题(本大题共1小题,共10分)

55.定义堆栈类模板Stack(先进后出),栈的大小由使用者确定。要求该类模板对外提供 如下二种基本操作:

(1)push入栈(2)pop出栈,用数组来实现 #include using namespace std; template class Stack{ T x[size]; int current;

12/14全国2009年1月自学考试C++程序设计试题

全国2009年1月自学考试C++程序设计试题

public:

Stack(){current=0;} ....push(....); ....pop(....); };

请写出两个函数的过程(如果需要形式参数,请给出形参类型和数量,以及返回值类型) 参考答案

#include using namespace std; template class Stack{

T x[size]; int current;

public: };

template

bool Stack::Push(T e){//插入新元素e为新的栈顶元素

if(current == size){//栈满 }

x[++current] = e; return true;

return false; Stack(){current=0;} bool Push(T e); bool Pop(T &e);

}//Push

template

bool Stack::Pop(T &e){//若栈不空,删除栈顶元素,并用e返回其值,并返回true,否则返回false

if( current == 0 ) return false; e=x[current--];

13/14全国2009年1月自学考试C++程序设计试题

全国2009年1月自学考试C++程序设计试题

return true;

}//Pop

//测试程序,不是答案的一部分 void main(){ }

Stack s; s.Push(1); //s.Push(2); int e; if(s.Pop(e)) else

cout<<\栈空\cout<

cout<<\再次出栈,试试看...\if(s.Pop(e)) else

cout<<\栈已空\cout<

14/14全国2009年1月自学考试C++程序设计试题

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4