面向对象程序设计 C++ 山师 第七章习题答案

时间:2026-01-16

面向对象程序设计以及 单片机原理及其接口技术答案

第七章习题答案

一、选择填空

1、D 2、A 3、B 4、C 5、A 6、C 7、B 8、D 9、

二、判断下列描述的正确性,对者划√,错者划×。

1、√ 2、× 3、× 4、× 5、√ 6、× 7、√ 8、√ 9、√ 10、×

11、√ 12、√ 13、× 14、√ 15、√ 16、× 17、√ 18、√

三、分析下列程序的输出结果。

1、

(1)上述结构的DAG图如下所示。

(2)无二义性

(3)无二义性

2、(1)无 (2无 (3)有 (4)无 (5)有

四、分析下列程序的输出结果

1、运行该程序输出如下结果。

(1,2)

5,6

(6,9)

2、该程序的输出结果如下所示

(1,2)

(6,9)

5,6

(6,9)

3、该程序的输出结果如下:

(13,22,30,40)

4、运行该程序输出结果如下所示。

D2::display()

pri1=4,pri2=5

pri4=6

pri12=7

D2::display()

pri1=12 ,pri2=9

面向对象程序设计以及 单片机原理及其接口技术答案

pri4=7

pri12=8

5、该程序输出结果如下所示:

D2::display()

pri1=1,pri2=4

pri4=6

pri12=7

D2::display()

pri1=9,pri2=8

pri4=7

pri12=8

6、该程序输出结果如下所示:

base class

base class

base class

derive1 class

derive2 class

五、按下列要求编写程序。

1、程序内容如下所示。

#include <iostream.h>

#include <iomanip.h>

class person

{

int no;

char name[10];

public:

void input()

{

cout<<" 编号:";cin>>no;

cout<<" 姓名:";cin>>name;

}

void disp()

{

cout<<" 编号:"<<no<<endl;

cout<<" 姓名:"<<name<<endl;

}

};

class student:public person

{

private:

char depart[6];

int degree;

public:

面向对象程序设计以及 单片机原理及其接口技术答案

{

person::input();

cout<<" 班号:"; cin>>depart;

cout<<" 成绩:"; cin>>degree;

}

void disp()

{

person::disp();

cout<<" 班号:"<<depart<<endl;

cout<<" 成绩:"<<degree<<endl;

}

};

class teacher:public person

{

private:

char prof[10];

char depart[10];

public:

void input()

{

person::input();

cout<<" 职称:"; cin>>prof;

cout<<" 部门:"; cin>> depart ;

}

void disp()

{

person::disp();

cout<<" 职称:"<< prof<<endl;

cout<<" 部门:"<< depart <<endl;

}

};

void main()

{

student s1;

teacher t1;

cout<<"输入一个学生数据:\n"; s1.input();

cout<<"输入一个教师数据:\n"; t1.input();

cout<<"显示一个学生数据:\n"; s1.disp();

cout<<"显示一个教师数据:\n"; t1.disp();

}

2、程序内容如下所示。

#include <iostream.h>

#include <string.h>

面向对象程序设计以及 单片机原理及其接口技术答案

{

int length;

char *contents;

public:

int get_length(){return length;}

char *get_contents(){return contents;}

~string(){delete contents;}

int set_contents(int in_length,char *in_contents);

int set_contents(char *in_contents);

void print(){cout<<contents<<endl;}

};

class edit_string:public string

{

int cursor;

public:

int get_cursor_pos(){return cursor;}

void move_cursor(int how_much){cursor=how_much;}

int add_at_cursor(string *new_text);

int repl_at_cursor(string *new_text);

void dele_at_cursor(int how_much);

};

int string::set_contents(int in_length,char *in_contents)

{

length=in_length;

if (!contents) delete contents;

contents=new char[length+1];

strcpy(contents,in_contents);

return length;

}

int string::set_contents(char *in_contents)

{

length=strlen(in_contents);

if (!contents) delete contents;

contents=new char[length+1];

strcpy(contents,in_contents);

return length;

}

int edit_string::add_at_cursor(string *new_text)

{

int n,k,m;

char *cp,*pt;

n=new_text->get_length();

pt=new_text->get_contents();

面向对象程序设计以及 单片机原理及其接口技术答案

cp=this->get_contents();

m=this->get_length();

char *news=new char[m+n+1];

for (int i=0;i<cursor;i++)

news[i]=cp[i];

k=i;

for (int j=0;j<n;i++,j++)

news[i]=pt[j];

cursor=i;

for(j=k;j<m;j++,i++)

news[i]=cp[j];

news[i]='\0';

set_contents(news);

delete news;

return cursor;

}

int edit_string::repl_at_cursor(string *new_text)

{

int n,m;

char *pt,*news;

n=new_text->get_length();

pt=new_text->get_contents();

m=this->get_length();

news=new char[m>n+cursor ? m+1 : n+cursor+1];

news=this->get_contents();

for(int i=cursor,j=0;i<n+cursor;j++,i++)

news[i]=pt[j];

if (m<n+cursor) news[i]='\0';

cursor=i;

set_contents(n …… 此处隐藏:4746字,全部文档内容请下载后查看。喜欢就下载吧 ……

面向对象程序设计 C++ 山师 第七章习题答案.doc 将本文的Word文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:4.9 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:19元/月

    注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
    微信:fanwen365 QQ:370150219