Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2341462
  • 博文数量: 816
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5010
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-17 17:57
文章分类

全部博文(816)

文章存档

2011年(1)

2008年(815)

分类:

2008-12-17 18:07:14

一. 填空题:(每空1分,共32分)
______形结构的数据之间存在一对多的非线性关系,______形结构的数据之间存在多对多的非线性关系,带权的图通常称为______。
后序遍历序列和中序遍历序列相同的二叉树有:______二叉树、仅有______结点的二叉树、全部只有______子树的二叉树。
    二叉查找树查找的平均比较次数取决于树的______。
______排序属于非比较排序方法。
______查找属于非比较查找方法。
   在顺序存储的某二叉树中,若某结点Ki有右孩子,则其右孩子为结点______,而其双亲若存在,则为结点______。
派生类构造函数执行的次序是:调用________构造函数,执行__________的构造函数,执行________的构造函数。
抽象类是含有________函数的类,只能作为________类来使用,其纯虚函数的实现由________类给出。抽象类________实例化对象,________作为函数的返回类型和函数的参数类型,如果一个派生类继承了抽象类,但是却没有重新定义抽象类中的________函数,则该派生类仍然是________。
使用文件I/O类的程序需要包含头文件________。
运算符被重载后,不能改变________和________,也不能改变语法结构。只有将运算符重载为类的________函数或是类的________函数时,才能使被重载的运算符能够对新的数据类型进行操作。
    如果一个类A是类B的友元类,那么类______的所有成员函数都是类______的______函数,可以访后者的______成员变量,
引入虚函数是为了实现______,其定义方法为:
______<函数返回类型><虚函数名称>(<参数列表>)

二.判断题(每题6分,共24分)
1.试分别判断具有3个结点的树和3个结点的二叉树的所有不同形态。
    具有3个结点的树有______种形态,如图______所示。
具有3个结点的二叉树有______种形态,如图______所示。
         
 
            图1                            图2

             图3                         图4

2.判断图5所示二叉树的各种遍历方法的名称:

______序遍历结点序列为:DBEAGHFC    

______序遍历结点序列为:DEBHGFCA  

______序遍历结点序列为:ABDECFGH  
                  图5
3.对图6所示的无向图,从顶点3出发,
一种可能的____度优先搜索遍历序列为: 3,2,1,4,5,6,7,8,9。
一种可能的____度优先搜索遍历序列为: 3,2,4,1,5,6,7,9,8。
相应的______度优先生成树如图7。
相应的______度优先生成树如图8。

图6一个无向图         图7                    图8

4.试判断以下各图中所给出的二叉树,哪些是完全二叉树,哪些是堆,哪些是二叉排序树?
   
         (a)                     (b)                      (c)
属于完全二叉树的有:____________
属于二叉排序树的有:____________
属于堆的有:   __________________

三.选择题:(每题2分,共10分)
1.已知int a=7;
int  *pa=&a;
    输出pa的地址的方法是:______。
    A.  cout<C.  cout<<*pa;                       D. cout<
2.下列输出字符A的方法中,______是错误的。
    A.  cout.put(‘A’)                   B.  cout<< ‘A’;
C.  cout<
3.下列关于getline()函数的表述中,______是错误的。
A. 该函数中所使用的终止符只能是换行符。
B. 该函数读取的字符中长度是受限制的;
C. 该函数读取字符串时遇终止符停止;
D. 该函数是用来从键盘上读取字符串的;

4.说明下面程序的作用是:______。
    void main()
{    char str[32];
     while(cin>>str)cout<<"\n"<}
    输入:Tom and Jerry
        A.将输入的句子显示出来;
        B.将输入的句子每32个字符为一行显示出来。
        C.将输入的句子的前32个字符截断并显示出来;
        D.将输入句子的每个单词划分为字符串显示出来;

5.对输出流进行下列操作后,显示的基数是:______。
        cout<< hex;cout<    A.十进制;  B.八进制;  C.十六进制;  D.进制设置错误。



四.阅读分析:(每空2分,共12分)
1.以下程序段的输出结果是:____________________  
main()
{  char str[20];
cin>>str;  cout<}
输入:This is an example.
                                       
2.从R[______] 开始存放的递______堆排序的算法实现如下:
void creatheap(ElemType R[],int i,int n)    
{int j; ElemType t;                        
  t=R[i];  j=2*i;
  while(j<=n)
  { if((jR[j+1])) j++;
     if(t>R[j])
      { R[i]=R[j]; i=j;j=2*i;}
     else  j=n+1;
     R[i]=t;
   }
}
void heapsort(ElemType R[],int n)  
{
ElemType t;
for(int i=n/2;i>=1;i--)
creatheap(R,i,n);
for(i=n;i>=1;i--)
{
t=R[1];
R[1]=R[i];
R[i]=t;
creatheap(R,1,i);
}
}

3.给出下面程序的运行结果。(本题6分)
class incount{
int c1,c2;
public:
incount(){c1=0;c2=1000;}
incount(int vc1,int vc2){c1=vc1;c2=vc2;}
void retcount(void){cout<<"c1="< incount operator ++(){c1++;c2++;return incount(c1,c2);}
};
void main()
{
incount ic1,ic2(100,9999);
ic1.retcount();
ic2.retcount();
ic1++;
// ic1.retcount();
ic2=ic1++;
ic2++.retcount();
}
运算结果为:
        c1=_______    c2=_______
        c1=_______    c2=_______
        c1=_______    c2=_______

五.设计题:(每空2分,共22分)
1.编程要求将文件data.txt复制到文件data1.txt,要求补充完整参考程序如下:
#include__________________
#include__________________
using __________________
int CopyFile( char *s1, char *s2)     //复制文件
{
char ch;
fstream infile,outfile;
infile__________________               //打开文件
if(!infile)
{
cout<<"文件"< return 0;
}
outfile__________________            //打开文件
if(!outfile)
{
cout<<"文件"< return 0;
}
while(i

--------------------next---------------------

阅读(1070) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~