荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: ddr (莫名悲痛), 信区: CIE
标  题: 这个谁又会的?
发信站: 荔园晨风BBS站 (Sat Jul 13 10:47:57 2002), 转信

一、单项选择题(每题1分,共25分)
(1) 下列描述中,错误的是
A)C++兼容C语言      B)C是C++语言的一个子集  C)C++对C语言进行了一些改进
 D) C++与C语言都是面向对象的
(2) 将程序分解为函数的主要目的是
A)使程序模块化       B)提高程序的运行速度     C)减小程序的大小
   D)面向对象程序设计的关键
(3) 在 int a[][3]={{1}, {2, 3}, {4, 5, 6}}; 中,数组元素a[1][2]的值是
A) 1                 B) 3                     C) 6
   D) 0
(4) 在 int a = 5, &p = a; 中,p的值是
A)无意义             B)变量a的地址           C) 5
  D)不确定
(5) 已知 int m=10; 则正确的语句为
A) int *p=m;         B) int &p=&m;            C) int *p=&m;
   D)long *p=&m;
(6) 已知 float *p; 则执行语句p=p+1;后p的值增加
A) 1                 B) 2                     C) 3
   D)4
(7) continue语句使程序
A)继续执行循环体中continue后的语句           B)不执行循环体中continue后
的语句,而是判断是否继续循环
C)从所有的循环语句中退出                      D)从包含该continue语句的循
环语句中退出
(8) 下列描述中,正确的是
A)switch语句中的每个子句都必须有break语句   B)switch语句中的default子句
可以没有,也可以有一个
C)switch语句中的default子句只能放在最后面   D)break语句可用于if体内,退出
if语句
(9) 下列for循环语句 for (int i = 0; i < 5 && j > 0; i++, j++) ; 的循环次
数为
A) 4                 B) 5                     C) 不确定
   D)无限次
(10) 定义float (*p)[5]; 指p的是一个
A)指向数组的指针     B)指针数组               C)函数指针
   D)以上说法均错
(11) 现有定义:char a[5], *p = a; 则正确的赋值语句是
A) p =“C++”;       B) *p =“C++”;          C) a =“C++”;
   D)*a =“C++”;
(12) 以下程序段给数组所有的元素输入数据,请选择正确答案填入
    main()
    { int a[5], i = 0, *p=a;
        while (i < 5)  cin >> _______;
          …    }
A) p++               B) *p++                  C) a+(i++)
  D)  a[i++]
(13) 设int w=1, x=2, y=3, z=4, a=5, b=6; 执行 (a=x<z) || (b=y>w); 后b的
值为
    A) 3                  B) 2                     C) 6
       D) 1
(14) 引用调用时
A)形参和实参都是变量  B)形参和实参都是数组名   C)形参是指针,实参是地址值
   D)形参是引用,实参是变量
(15) char * const p; 说明p是指向
A)字符常量的指针      B)字符的常量指针         C)字符串常量的常量指针
   D)字符常量的常量指针
(16) 下列描述中,错误的是
A)数组变量名是该数组的起始地址                 B)函数名是该函数的入口地

C)结构变量名是该结构变量的首地址               D)对象名不是该对象的首地

(17) 一个类的私有成员
A)能为程序的所有函数所访问                     B)能为该类的所有成员函数
所访问
C)在知道密码的情况下才能访问                   D)仅能为该类的公有成员函
数所访问
(18) 指出下列关于内联函数的描述中错误的是
A)在类声明中定义的函数都是内联的               B)递归函数可声明为内联的

C)内联函数中不能有for语句和switch语句        D)内联函数在调用前必须说明
或定义
(19) 下列关于析构函数的描述中正确的是
A)析构函数名与类名相同  B)析构函数可重载     C)析构函数必须指定返回类型
  D)析构函数不能设置参数
(20) 使用友元函数的主要目的是
A)减少程序的大小      B)提高程序的运行效率   C)加强类的封装性
  D)实现面向对象的程序设计
(21) 函数重载的主要目的是
A)能向对象传递参数    B)体现了数据的封装性   C)便于编程,提高可读性
  D)在现有类的基础上定义新的类
(22) 继承的主要目的是为了
A)软件重用            B)增加类的成员         C)实现数据隐藏
  D)便于编程
(23) 运算符重载函数是
A)内联函数            B)成员函数             C)递归函数
  D)带缺省参数值的函数
(24) 下列关于new运算符的正确的描述是,new运算符
A)返回一个指针     B)创建一个名为new的变量  C)用于确定剩余内存的多少
 D)创建对象时不会调用构造函数
(25) 定义在一个语句块中的对象的作用域为
A)从定义之处开始至程序结束                   B)从定义之处开始至语句块所
在的函数结束
C)为包含语句块的整个函数                     D)从定义之处开始至语句块结


二、填空题(每空1.5分,共15分)
面向对象程序设计的三个主要特性是  ①  、  ②  、  ③ 。
构造函数是在对象  ④  自动调用的。
在类中定义的函数缺省为  ⑤  函数。
以下程序的功能是将一整数序列按降序排序并输出,请填空。
#include <stdio.h>
#define  MAXNUMBER 100
void bubbleSort(int a[], int n)
{
int i, j, t;

for (i=0; i <   ⑥  ; i++)
  for (j=0; j <   ⑦  ; j++)
      if (  ⑧  )
      {
t = a[j];
a[j]=a[j+1];
    a[j+1]=t;
 }
}
main()
{ int i, n, num[MAXNUMBER];

printf(“输入数据个数:”);
scanf(“%d”, &n);
for (i = 0; i < n; i++)
{
printf(“输入num[%d]的值:”, i);
        scanf(“%d”,  ⑨  );
}
  ⑩  ;
printf(“排序后的结果为:”);
for (i = 0; i < n; i++)
        printf(“%5d”, num[i]);
}

三、阅读判断题(共25分)
(1) 写出下列程序运行时的输出结果(写出祥细的过程)。(8 分)
        #include <stdio.h>
func(int a)
        { static int x=10;
      int  y=1;
                 x += a;
         a++;
         y++;
                 return (x+y+a);
        }

main()
{
int i=3;

                while (i < 8)
printf(“%d ”, func(i++));
}

(2) 写出下列程序运行时的输出结果。(7 分)
#include <iostream.h>
class A
{ private:
     int y;
public:
A() { y=0; cout << “C1[”<< y <<“]\n”;}
A(int x) { y=x; cout <<“C2[” << y <<“]\n”;}
~A() { cout << “D[”<< y << “]\n”;}
};
A  x(5);  // x为全局对象
void main()
{
A *aPtr;
A aObj;

aPtr = new A;
      delete aPtr;
}

(3) 下面程序段是关于array类的一个声明,请改正错误。(10分)
#include <stdio.h>
class array
{ private:      float *fptr;
            int size;
public:
array(int n) { size = n; fptr = new char[size]; }
        void ~array() { delete fptr; }
 }

四、编程题(第一题20分,第二题15分,共35分)
编写一程序打印出11到97之间的所有绝对素数(所谓绝对素数是指当它的数字位置
对换以后仍为素数的素数,如11,37等)。
下面是一个关于数组String类的定义,请完成该类的定义。
#include <iostream.h>
#include <string.h>
class String
{ private:
        char *str;
public:
String(char *s);
String(String &s);
~String();
void print();                       //打印字符串
String operator + (String s2);      //重载+运算符,使之对两个字符串进行
合并运算
};
void main()
{ char *s1 = “the first string”, *s2 = “the second string”;
String  strObj1(s1), strObj2(s2);
cout << “字符串1为:”;
strObj1.print();
cout << “字符串2为:”;
strObj2.print();
String strObj3 = strObj1 + strObj2;
cout << “字符串1和字符串2合并后为: ”;
strObj3.print();
}
--
          恋爱大过天

※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.0.142]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店