公共基础知识 一、选择题 (1)下列关于栈的叙述正确的是 A)栈是非线性结构 B)栈是一种树状结构 C)栈具有先进先出的特征 D)栈具有后进先出的特征 (2)结构化程序设计所规定的三种基本控制结构是 A)输入、处理、输出 B)树形、网形、环形 C)顺序、选择、循环 D)主程序、子程序、函数 (3)结构化程序设计的一种基本方法是 A)筛选法 B)递归法 C)归纳法 D)逐步求精法 (4)如果对一个关系实施了一种关系运算后得到了一个新的关系,而且新的关系中属性个数少于原来关系中属性个数,这说明所实施的运算关系是:A)选择 B)投影 C)连接 D)并 二、填空题 1.对于输入为N个数进行快速排序算法的平均时间复杂度是( ) 2.在面向对象方法学中,直接反映了用户对目标系统的要求的模型是( ) 3.软件测试方法中,黑盒测试个白盒测试法是常用的方法,其中黑盒测试法主要是用于测试( ) 4.关系型数据库管理系统中存储与管理数据的基本形式是( ) C++语言程序设计 一、选择题 (1)C++语言是从早期的C语言逐渐发展演变而来的.与C语言相比,它在求解问题方法上进行的最大改进是() A)面向过程 B)面向对象 C)安全性 D)复用性 (2)C++语言的跳转语句中,对于break和continue说法正确的是() A)break语句只应用与循环体中 B)continue语句只应用与循环体中 C)break是无条件跳转语句,continue不是 D)break和continue的跳转范围不够明确,容易产生问题 (3)for(int x=0,y=o;!x& &y<=5;y++)语句执行循环的次数是() A)0 B)5 C)6 D)无次数 (4)考虑函数原型void test(int a,int b=7,char="*"),下面的函数调用中,属于不合法调用的是() A)test(5); B)test(5,8); C)test(6,"#") D)test(0,0."*"); (5)下面有关重载函数的说法中正确的是() A)重载函数必须具有不同的返回值类型; B)重载函数形参个数必须不同; C)重载函数必须有不同的形参列表 D)重载函数名可以不同; (6)下列关于构造函数的描述中,错误的是() A)构造函数可以设置默认参数; B)构造函数在定义类对象时自动执行 C)构造函数可以是内联函数; D)构造函数不可以重载 (7)下面描述中,表达错误的是() A)公有继承时基类中的public成员在派生类中仍是public的 B)公有继承是基类中的private成员在派生类中仍是private的 C)公有继承时基类中的protected成员在派生类中仍是protected的 D)私有继承时基类中的public成员在派生类中是private的 (8)应在下列程序划线处填入的正确语句是() #include class Base { public: void fun(){cout<<"Base::fun"<}; class Derived:public Base { void fun() {_____________ //显示调用基类的函数fun() cout<<"Derived::fun"< } }; A)fun(); B)Base.fun(); C)Base::fun(); D) Base->fun(); (9)有如下程序: #include class BASE{ char c; public: BASE(char n):c(n){} virtual~BASE(){cout<}; class DERIVED:public BASE{ char c; public: DERIVED(char n):BASE(n+1),c(n){} ~DERIVED(){cout<}; int main() { DERIVED("X"); return 0; } 执行上面的程序将输出() A)XY B)YX C)X D)Y (10)在进行完任何C++流的操作后,都可以用C++流的有关成员函数检测流的状态;其中只能用于检测输入流状态的操作函数名称是() A)fail B)eof C)bad D)good 二、填空题 (1)下面程序的打印结果是 [1] #incude int f(int); int main() { int i; for(i=0;i<5;i++) cout< return0; } int f(int i) { static int k=1; for(;i>0;i- -) k + = i; return k; } (2)在用class定义一个类时,数据成员和成员函数的默认访问权限是 [2] (3)含有纯虚函数的类称为 [3] (4)已知intDBL(int n){return n + n;}和longDBL(long n){return n +n;}是一个函数模板的两个实例,则该函数模板的定义是 [4] (5)在下面程序的横线处填上适当的语句,使该程序执行结果为10. #include class MyClass { public: MyClass(int a){x = a;} [5] //取x值 private int x; }; int main() { MyClass my(10); cout< return 0; } 三、上机操作题(改错题1道,简单应用1道,综合应用1道) 1.使用VC6打开考生文件夹下的工程proj1,此工程包含一个源程序文件main.cpp,但该程序运行有问题,请改正main函数中的错误,使程序的输出结果为: member=0 member=5 menber=10 源程序文件main.cpp清单如下: #include class MyClass { public: MyClass(int i){member=i;} void SetMember(int m){member=m;} int GetMember()const{return menber;} void print()cont{cout<<"member="<private: int member; }; voed main() { /* * * * * * * * * * found * * * * * * * * * */ MyClass obj1; obj1.print(); MyClass obj2(3); /* * * * * * * * * * found * * * * * * * * * */ obj1.member=5; /* * * * * * * * * * found * * * * * * * * * */ MyClass.SetMember(10); obj1.print(); obj2.print(); } 2.请编写一个函数int find(char s[],char t[]),该函数在字符串s中查找字符串t,如果找到,则返回字符串t在字符串s中的位置(整数值);否则返回-1.注意:用数组方式及两重循环来实现该函数. 注意:部分源文件程序已存在文件PROC2,CPP中. 请勿修改主函数main和其他函数中的任何内容,仅在函数find的花括号中填写若干语句. 文件PROC2.CPP的内容如下: #include int find(char s[],char t[]); const int MAXLINE =256; int main() { char source[MAXLINE],rarget[MAXLINE]; cout <<"Please input a string for searching:\n"; cin.getline(source,MAXLINE); cout<<"Please input a string you want to find:\n"; cin.getline(target,MAXLINE); int intpos = find(source,target); if(intpos>=0 cout<<"Finding it.The target string is at index" < else cout<<"Not finding it.\n"; return 0; } int find(char s[],char t[]) { } 3.使用VC6打开考生文件夹下的工程proj3.此工程包含一个源程序文件main.cpp.其中定义了用于表示日期的类Date,但类Date的定义并不完整.请按要求完成下列操作,将类Date的定义补充完整: (1)定义私有数据成员year,month和day分别用于表示年,月,日,它们都是int型的数据.请在注释"// * * 2 * *"之后添加适当的语句. (2)完成默认构造函数Date的定义,使Date对象的默认值为:year=1,month=1,day=1,请在注释"// * * 2 * *"之后添加适当的语句. (3)完成重载构造函数Date(int y,int m,int d)的定义,把数据成员year,month和day分别初始化为参数y,m,d的值,请在注释"//* * 3 * *"之后添加适当的语句. (4)完成成员函数print的类外定义,使其以"年-月-日"的格式将Date对象的值输出到屏幕上.请在注释"//* * 4 * *"之后添加适当的语句. 注意:除在指定位置添加语句之外,请不要改动程序中的其他内源程序文件main.cpp清单如下: //main.cpp #include class Date{ public: //* * 2 * * Date(int y,int m,int d) { //* * 3 * * } void print() const; private: // date members //* * 1 * * }; void Date::print()const { //* * 4 * * } int main() { Date national_day(1949,10,1); national_day.print(); return 0; } ---------------------------------------------------- 参考答案: 公共基础知识: 一:选择题: (1) D (2) C (3) D (4) B 二:填空题: (1)[1]:O(Nlog2N) (2)[2]:功能模型 (3)[3]:软件外部功能 (4)[4]:二维表 C++程序设计 一:选择题 1-5 :B B C C C 6-10:D B C A B 二:填空题 (1)[1]:1 2 5 11 21 (2)[2]:private 或 私有 (3)[3]:抽象类 (4)[4]:templateT DBL(T n){return n+n;} (5)[5]:int GetNum(){return x;} 或 int GetNum() const{return x;}
|