华侨大学   面向对象程序设计(二)  试卷(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. java Thread源码分析(二)

    一.sleep的使用 public class ThreadTest { public static void main(String[] args) throws InterruptedExcept ...

  2. [CF1004E] Sonya and Ice-cream

    问题描述 Sonya likes ice cream very much. She eats it even during programming competitions. That is why ...

  3. IDEA unable to find valid certification path to requested target

    一.报错 Could not transfer artifact org.apache.maven.plugins:maven-install-plugin:pom:2.4 from/to alima ...

  4. 面试题常考&必考之--js闭包特性和优缺点 (外加小例子)

    当内部函数被返回到外部并保存时,一定会产生闭包.闭包会产生原来的作用域链,不释放. 闭包,可以理解为,写一个函数,然后产生闭包的这种现象. 概念: 基础: 主要是:add    reduce  被返回 ...

  5. Linux GDB 程序调试工具使用详解

    转自    http://www.codeceo.com/article/linux-gdb-tools.html 整理的挺全的 GDB概述 GDB是GNU开源组织发布的一个强大的UNIX下的程序调试 ...

  6. 判断img的src为空/点击时候两张图片来回替换

    if($('.icon-right img').src==null){ $('.span-gray').addClass('c8'); } <img> ///////////// < ...

  7. [luogu]P2680 运输计划[二分答案][树上差分]

    [luogu]P2680 [NOIP2015]运输计划 题目背景 公元 2044 年,人类进入了宇宙纪元. 题目描述 L 国有 n 个星球,还有 n-1 条双向航道,每条航道建立在两个星球之间,这 n ...

  8. 在CentOS7中配置网络时常见的LSB加载失败问题

    前几天,为了给OpenNebula扩展新的主机节点,对CentOS7的网络进行了配置.本以为网络配置只需要简单修改ifcfg-eth0即可,但是在重启网络服务时却遇到了一个LSB加载失败的问题(Fai ...

  9. #1114-JSP指令

    JSP 指令 JSP指令用来设置整个JSP页面相关的属性,如网页的编码方式和脚本语言. 语法格式如下: <%@ directive attribute = "value"%& ...

  10. 官方文档翻译-Today

    原文链接: Today 最后更新:2017-02-18 译文: 应用的今日视图扩展被称作小部件.小部件为用户提供快速访问重要信息的入口.例如,用户打开今日视图实时查看股票价格或天气情况,查看今天的日程 ...