好文档 - 专业文书写作范文服务资料分享网站

历届自考C++ 程序设计试题及答案 - 图文

天下 分享 时间: 加入收藏 我要投稿 点赞

{

base b(3);

Derived d(6,7); b.showbase(); d.showderived(); b=d; b.showbase(); Derived b1(d);(或Derived b1(6,7); 或base b1(6);或 base b1(d);) b1.showbase(); base* pb=&b1; pb->showbase(); d.showderived(); b.showbase(); }

输出结果如下: x=3

x=6,y=7 x=6 x=6 x=6

x=6,y=7 x=6

48.下面程序的运行结果如下: B::display() C::display()

在下划线处填上缺少的部分。源程序如下: #include using namespace std; class B {

public:

virtual void display( ) {cout << \::display( ) \};

class C:public B {

public: virtual void (或void)display(){cout<<\::display()\};

void fun(B*p) {

p->display(); }

void main() {

B b,*pb; C c; pb=&b; fun(pb); pb=&c; fun(pb); }

49.下面程序的运行结果如下: This is line1 This is line2 This is line3

在下划线处填上缺少的部分。源程序如下: #include #include using namespace std; void main()

16

{

fstream fin, fout;

fout.open(\ if(!fout.is_open()) return;

for(int i=0;i<3;i=i+1) fout<<\ fout.close();

fin.open(\ if(! fin.is_open()) return; char str[100];

while(!fin.eof()(或等价答案)) { fin.getline(str,100); cout<

fin.close(); }

50.在下划线处填上缺少的部分。源程序如下: #include using namespace std;

template________ T fun(T x) {

__T___y; y=x*x-T(5); return y; }

void main() {

float a=2; cout<

五、程序分析题(本大题共4小题,每小题5分,共20分) 51.请写出myTextl.txt文本文件中的内容 #include #include using namespace std; #include void main() {

ofstream myFile1;

myFile1.open(\

cout<<\ ,2008,May 25):\string Date(\string Year=Date.substr(0,4); int k=Date.find(\int i=Date.find(\

string Month=Date.substr(k+1,i-k-1); string Day=Date.substr(i+1,2);

string NewDate=Day+\myFile1<<\:\

myFile1<<\:\myFile1.close(); }

original date:2008,January 1 Converted date:1 January 2008 52.给出下面程序的输出结果 #include

17

using namespace std; class Simple {

int x,y; public:

Simple(){x=y=0;}

Simple(int i,int j){x=i;y=j;} 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; else

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

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

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

cout<<\ num=num-50;

cout<<\ }

300 200 150

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

18

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

(1)push入栈(2)pop出栈,用数组来实现 #include using namespace std;

template class Stack{ T x[size]; int current; public:

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

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

#include using namespace std; template class Stack{ T x[size]; int current; public: Stack(){current=0;} bool Push(T e); bool Pop(T &e); };

template

bool Stack::Push(T e){//插入新元素e为新的栈顶元素 if(current == size){//栈满 return false; } x[++current] = e; return true; }//Push

template

bool Stack::Pop(T &e){//若栈不空,删除栈顶元素,并用e返回其值,并返回true,否则返回false if( current == 0 ) return false; e=x[current--]; return true; }//Pop

//测试程序,不是答案的一部分 void main(){ Stack s; s.Push(1); s.Push(2); int e; if(s.Pop(e)) cout<

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

课程代码:04737

19

一、单项选择题(本大题共20小题,每小题1分,共20分)

在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。Bbs.zikao5.com 自考资料,自考白皮书 1.在C++中,头文件扩展名为( B ) A..cpp B..h C..1ib D..obj

2.下列符号中,不属于分隔符的是(B ) A., B./ C.; D.{}

3.可替换#define PI 3.1415926的语句是( B )

A.float PI 3.1415926; B.const float PI=3.1415926; C.const PI(3.1415926); D.const 3.1415926; 4.布尔类型标识符是(D) A.void B.short C.long D.bool

5.下列不是C++语言的基本数据类型的是(D) A.字符类型 B.整数类型C.逻辑类型 D.枚举类型 6.C++允许在结构中定义函数,这些函数称为(D) A.静态函数 B.构造函数C.析构函数 D.成员函数

7.设函数void inc(int)将形参加1,如有整型变量int i=10;则执行inc(i);后,i的值为(B) A.9 B.10 C.11 D.未知

8.下列哪种默认参数的声明是不正确的(C)

A. int max(int a,int b,int c,int d=0); B. int max(int a,int b,int c=0,int d=0); C. int max(int a=0,int b,int c=0,int d=0); D. int max(int a,int b=0,int c=0,int d=0);

9.设int &max(int &,int &)返回两参数中较大者,如有两整型变量int a=10;int b=15;在执行max(a,b)++后,a,b值分别为(C) A.10,15 B.11,15 C.10,16 D.1l,16 10.包含哪种语句的函数不能声明为内联函数(A) A.循环 B.变量自增自减 C.if...else… D.变量声明

11.定义函数模板中使用的参数类型标识符需使用下列哪组符号括起来(A) A.<> B.“” C.() D.{}

12.一个类拥有多个构造函数,则这些构造函数间为( A ) A.重载关系 B.重复关系 C.拷贝关系 D.无关系

13.对于拷贝构造函数point::point(point& p),下列说明正确的是( C) A.该函数只能访问P的私有成员 B.该函数不能访问P的公有成员 C.该函数可以访问P的私有和公有成员 D.该函数不能访问P的成员

14.使用delete[]删除对象数组时,描述正确的是( A)

20

历届自考C++ 程序设计试题及答案 - 图文

{baseb(3);Derivedd(6,7);b.showbase();d.showderived();b=d;b.showbase();Derivedb1(d);(或Derivedb1(6,7);或baseb1(6);或baseb1(d);)b1.showbase();base*
推荐度:
点击下载文档文档为doc格式
3z2q69a9qf3qhtz4wkb2
领取福利

微信扫码领取福利

微信扫码分享