华侨大学   面向对象程序设计(二)  试卷(A)
系别 计算机、软件工程、网络工程08 考试日期 2009年 06月29日 姓名 学号 成绩
一、选择题 (20分,每小题2分)
()关于重载函数在调用时匹配依据的说法中,错误的是 () D 。
A)参数个数 B)参数的类型
C)函数名字 D)函数的类型 ()下面对友元函数描述正确的是()C。
A)友元函数的实现必须在类的内部定义
B)友元函数是类的成员函数
C)友元函数破坏了类的封装性和隐藏性
D)友元函数不能访问类的私有成员 ()()B不是面向对象系统所包含的要素。?
A)对象 B)内联 C)类 D)继承 ()在C++语言中函数返回值的类型是由()C决定的。
A)调用该函数时系统临时 B) return语句中的表达式类型
C)定义该函数时所指定的函数类型 D)调用该函数时的主调函数类型 ()在C++语言中,对函数参数默认值描述正确的是()D。
A) 函数若有多个参数,只能为一个参数设定默认值(函数参数的默认值只能设定一个)
B)一个函数的参数若有多个,则参数默认值的设定可以不连续
C)函数参数必须设定默认值
D)在设定了参数的默认值后,该参数后面定义的所有参数都必须设定默认值 ()在C++中,数据封装要解决的问题是()D。
A)数据的规范化 B)便于数据转换
C)避免数据丢失 D)实现数据隐蔽(防止不同模块之间数据的非法访问) () C++语言规定,程序中各函数之间 A()
A) 既允许直接递归调用也允许间接递归调用
B) 不允许直接递归调用也不允许间接递归调用
C) 允许直接递归调用不允许间接递归调用
D) 不允许直接递归调用允许间接递归调用 ()以下关于派生类特性的叙述中,错误的叙述是 ()A 。
A)派生类中只能继承基类成员而不能重定义基类成员。
B) 对于私有继承,基类成员的访问权限在派生类中全部变成私有。
C) 派生类对基类的继承具有传递性。
D) 初始化从基类继承来的数据成员,必须通过调用基类的构造函数来完成。 ()以下关于指针函数的叙述中,正确的是()C 。
A) 指针函数用来存放函数名 B) 指针函数用来存放函数调用结果的地址
C) 指针函数用来指示函数的入口 D) 指针函数就是函数指针的别名 () 将全局数据对象的存储类别限定为static,其目得是 () A 。
A) 为了解决同一程序中不同的源文件中全局量的同名问题;
B) 为了保存该变量的值;
C) 使该变量成为局部变量;
D) 使该变量能作为函数参数。
二、阅读以下程序并给出执行结果(20分,每小题5分)。

#include<iostream>
using namespace std;
class A{
public: A(){ cout<<"A-> "; }
~A(){ cout<<"<-~A; "; }
};
class B{
public: B(){ cout<<"B-> "; }
~B(){ cout<<"<-~B; "; }
};
class C{
public: C(){ cout<<"C-> "; }
~C(){ cout<<"<-~C; "; }
};
void func(){
cout<<"\nfunc: ";
A a;
static B b;
C c;
}
int main(){
cout<<"main: ";
for(int i=; i<=; ++i){
if(i==) C c; else A a;
B b; }
func(); func();
return ;
}

#include <iostream>
using namespace std;
class B1
{public:
B1(int i){ cout<<"constructing B1 "<<i<<endl; }
~B1(){ cout<<"destructing B1"<<endl; }
};
class B2
{public:
B2(){ cout<<"constructing B2 *"<<endl; }
~B2(){ cout<<"destructing B2"<<endl; }
};
class C:public B2,public B1
{public:
C(int a,int b):B1(a),b1(b)
{ cout<<"constructing C"<<endl; }
~C()
{ cout<<"destructing C"<<endl;}
private:
B1 b1;
B2 b2;
};
void main()
{
C obj(,);
}
constructing B2 *
constructing B1
constructing C
destructing C
destructing B1
destructing B2

#include <iostream>
using namespace std;
class A
{
private:
//…其它成员
public:
virtual void func(int data)
{ cout<<"class A:"<<data<<endl; }
};
class B: public A
{
//…其它成员
public:
void func()
{ cout<<"function in B without parameter! \n"; }
void func(int data)
{ cout<<"class B:"<<data<<endl; }
};
int main()
{
A a,*p;
A &p1=a;
B b;
p=&b;
p1.func();
p->func();
return ;
}
Class A:
Class B:

#include <iostream>
using namespace std;
func(int a,int b);
int main()
{
int k=,m=,p;
p=func(k,m); cout<<p<<endl;
p=func(k,m); cout<<p<<endl;
return ;
}
func(int a,int b)
{
static int m=,i=;
i+=m+;
m=i+a+b;
return (m);
}
,
三、阅读以下程序(或函数)并简要叙述其功能(20分,每小题5分) 、int chnum (char *str)
{
int i,j,k,h,len,num=;
len=strlen(str);
for(i=; i<len ; i++)
{
k=;
j=len-i;
while(j>)
{
k=k*;
j--;
}
h=str[i]-'';
num=num+h*k;
}
return num;
}
输入:
运行结果:?此题比较难,且没有主函数无法运行
功能:

1*10*10+2*10+3


# include <iostream>
using namespace std;
int main()
{
char *a[]={"student","worker","cadre","soldier","peasant"};
char *p1,*p2;
p1=p2=a[];
for (int i=; i<; i++)
{
if (strcmp(a[i],p1)>) p1=a[i];
if (strcmp(a[i],p2)<) p2=a[i];
}
cout <<p1<<' '<<p2<<endl;
return ;
}
运行结果:?
功能:

#include <iostream>
using namespace std;
void func(int[],int);
int main()
{
int array[]={,,,,};
int len=sizeof(array)/sizeof(int);
for (int i=;i<len;i++)
cout<<array[i]<<",";
cout<<endl<<endl;
func(array,len);
return ;
}
void func(int a[],int size)
{ int i,temp;
for(int pass=;pass<size;pass++)
{
for(i=;i<size-pass;i++)
if (a[i]>a[i+])
{ temp=a[i];
a[i]=a[i+];
a[i+]=temp;
}
}
for (i=;i<size;i++)
cout<<a[i]<<",";
cout<<endl;
}
请叙述函数func( )的功能。

#include <iostream>
using namespace std;
int funp(const char* str1, const char* str2);
int main()
{
char a[],b[];
cout<<"Please input two string:";
cin>>a>>b;
cout<<"result="<<funp(a,b)<<endl;
return ;
}
int funp (const char* str1, const char* str2)
{
while(*str1 && *str1==*str2)
{
str1++; str2++;
}
return *str1 - *str2;
}
请叙述函数funp( )的功能。 四、阅读以下程序并填空(填上正确的语法成分),使其成为完整的程序(10分,每空2分)
从已建立的学生链表中删除学号为number的学生结点。
struct Student
{
long number;
float score;
Student * next;
};
Student * Delete (Student *head,long number) //删除链表结点
{
Student *p,*pGuard; //p指向要删除的结点,pGuard指向要删除的结点的前一结点
if( () ) //原链表为空链表
{
cout<<"\nList is null!\n";
return(head);
}
if ( () ) //要删除的结点为链表的第一个结点
{
p=head;
head=head->next;
delete p;
cout<<number<<"the head of list have been deleted\n";
return(head);
}
for(Student * pGuard=head; () ;pGuard=pGuard->next)
{
if (pGuard->next->number==number) //找到要删除的结点
{
()
()
delete p;
cout<<number<<"have been deleted \n";
return(head);
}
}
cout<<number<<"not found!\n"; //未找到要删除的结点
return (head);
}
五、编程题(%)
、编写函数char* copystr(char * dest,const char * source ,int m)将字符串source中第m个字符开始的全部字符(source的最右子串)复制成另一个字符串dest,并返回复制的串,请在主函数中输入字符串及m的值并输出复制结果。 、设计并测试复数类(Complex)
() 设计一个复数类(Complex)包含两个数据成员:实部(real),虚部(imagin);
包含如下主要成员函数:
• 构造函数(用来初始化一个复数对象,默认实部、虚部均为0);
• 重载加、减法运算符(+、-)实现复数类的加、减法运算;
• 显示复数对象,按a+bi(a为实部、b为虚部)格式输出一个复数对象。
() 请在主函数中使用所设计的复数类定义两个复数对象,求其和、差并输出。

C++期末的更多相关文章

  1. 概率论与数理统计讲课PPT和往年期末试卷

    讲课PPT 第17课:数理统计的基本概念 注 : 我会陆续把讲课PPT放上去,大家可以下载. 往年试卷及解答 往年期末试卷及解答 注 : 供同学们参考以备考.

  2. 复旦大学2015--2016学年第二学期高等代数II期末考试情况分析

    一.期末考试成绩班级前几名 胡晓波(90).杨彦婷(88).宋卓卿(85).唐指朝(84).陈建兵(83).宋沛颖(82).王昊越(81).白睿(80).韩沅伯(80).王艺楷(80).张漠林(80) ...

  3. 复旦大学2014--2015学年第二学期(14级)高等代数II期末考试第八大题解答

    八.(本题10分)  设 $A,B$ 为 $n$ 阶半正定实对称阵, 求证: $AB$ 可对角化. 分析  证明分成两个步骤: 第一步, 将 $A,B$ 中的某一个简化为合同标准形来考虑问题, 这是矩 ...

  4. 复旦大学2015--2016学年第一学期高等代数I期末考试情况分析

    一.期末考试成绩班级前几名 胡晓波(93).宋沛颖(92).张舒帆(91).姚人天(90).曾奕博(90).杨彦婷(90).白睿(88).唐指朝(87).谢灵尧(87).蔡雪(87) 二.总成绩计算方 ...

  5. 分享:计算机图形学期末作业!!利用WebGL的第三方库three.js写一个简单的网页版“我的世界小游戏”

    这几天一直在忙着期末考试,所以一直没有更新我的博客,今天刚把我的期末作业完成了,心情澎湃,所以晚上不管怎么样,我也要写一篇博客纪念一下我上课都没有听,还是通过强大的度娘完成了我的作业的经历.(当然作业 ...

  6. 复旦大学2014--2015学年第二学期高等代数II期末考试情况分析

    一.期末考试成绩班级前几名 钱列(100).王华(92).李笑尘(92).金羽佳(91).李卓凡(91).包振航(91).董麒麟(90).张钧瑞(90).陆毕晨(90).刘杰(90).黄成晗(90). ...

  7. 要期末了搞不了OI了额……

    TAT~~~~~~期中完挂,求RP求期末逆袭

  8. 复旦大学2014--2015学年第一学期(14级)高等代数I期末考试第七大题解答

    七.(本题10分)  设 \(V\) 为数域 \(\mathbb{K}\) 上的 \(n\) 维线性空间, \(S=\{v_1,v_2,\cdots,v_m\}\) 为 \(V\) 中的向量组, 定义 ...

  9. 复旦大学2014--2015学年第一学期高等代数I期末考试情况分析

    一.期末考试成绩班级前几名 金羽佳(92).包振航(91).陈品翰(91).孙浩然(90).李卓凡(85).张钧瑞(84).郭昱君(84).董麒麟(84).张诚纯(84).叶瑜(84) 二.总成绩计算 ...

  10. nyoj 757 期末考试【优先队列+贪心】

    期末考试 时间限制:1000 ms  |  内存限制:65535 KB 难度:2   描述 马上就要考试了,小T有许多作业要做,而且每个老师都给出来了作业要交的期限,如果在规定的期限内没 交作业就会扣 ...

随机推荐

  1. centos 7 安装 nginx 或 apache,及其比较

    来自 知乎 陈湛翀 的回答:https://www.zhihu.com/question/19571087/answer/12313829 nginx 和 apache 比较 nginx 相对 apa ...

  2. PAT Advanced 1011 World Cup Betting (20 分)

    With the 2010 FIFA World Cup running, football fans the world over were becoming increasingly excite ...

  3. 算法竞赛进阶指南 0x00 基本算法

    放在原来这个地方不太方便,影响阅读体验.为了读者能更好的刷题,另起一篇随笔. 0x00 基本算法 0x01 位运算 [题目][64位整数乘法] 知识点:快速幂思想的灵活运用 [题目][最短Hamilt ...

  4. Python 基本数据类型详解

    1.数字 int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31-2**31-1,即-2147483648-2147483647在64位系统上,整数的位数为64位,取值范围为-2* ...

  5. [CF434D Div1] Tree

    问题描述 给定一颗 n 个点的树,树边带权,试求一个排列 P,使下式的值最大 \[ \sum_{i=1}^{n-1}maxflow(P_i,P_{i+1}) \] 其中 maxflow(s, t) 表 ...

  6. 6364. 【NOIP2019模拟2019.9.20】养马

    题目描述 题解 一种显然的水法:max(0,-(点权-边权之和*2)) 这样会挂是因为在中途体力值可能会更小,所以考虑求走完每棵子树所需的至少体力值 考虑从子树往上推求出当前点的答案 设每棵子树从根往 ...

  7. 用 IDEA工具导入SVN项目。 步骤一:选择VCS

    Intellij IDEA是目前主流的IDE开发工具,工程项目导入也是必不可少的操作,本文讲述如何用 IDEA工具导入SVN项目. 步骤一:选择VCS 步骤二:打开SVN Repositories 在 ...

  8. [HDU6403]:Card Game(dfs+DP+基环树)

    题目传送门 题目描述 她依然在我不知道的地方做我不知道的事.桌面上摊开着一些卡牌,这是她平时很爱玩的一个游戏.如今卡牌还在,她却不在我身边.不知不觉,我翻开了卡牌,回忆起了当时一起玩卡牌的那段时间.每 ...

  9. mui初级入门教程(七)— 基于native.js的文件系统管理功能实现

    文章来源:小青年原创发布时间:2016-08-01关键词:mui,nativejs,android转载需标注本文原始地址: http://zhaomenghuan.github.io... 前言 这段 ...

  10. ps 等程序的选项的三种风格

    unix options bsd options gnu long options unix options, which may be grouped and must be preceded by ...