公共基礎(chǔ)知識
一、選擇題
(1)下列關(guān)于棧的敘述正確的是
A)棧是非線性結(jié)構(gòu) B)棧是一種樹狀結(jié)構(gòu)
C)棧具有先進(jìn)先出的特征 D)棧具有后進(jìn)先出的特征
(2)結(jié)構(gòu)化程序設(shè)計所規(guī)定的三種基本控制結(jié)構(gòu)是
A)輸入、處理、輸出 B)樹形、網(wǎng)形、環(huán)形
C)順序、選擇、循環(huán) D)主程序、子程序、函數(shù)
(3)結(jié)構(gòu)化程序設(shè)計的一種基本方法是
A)篩選法 B)遞歸法 C)歸納法 D)逐步求精法
(4)如果對一個關(guān)系實施了一種關(guān)系運算后得到了一個新的關(guān)系,而且新的關(guān)系中屬性個數(shù)少于原來關(guān)系中屬性個數(shù),這說明所實施的運算關(guān)系是:A)選擇 B)投影 C)連接 D)并
二、填空題
1.對于輸入為N個數(shù)進(jìn)行快速排序算法的平均時間復(fù)雜度是( 。
2.在面向?qū)ο蠓椒▽W(xué)中,直接反映了用戶對目標(biāo)系統(tǒng)的要求的模型是( 。
3.軟件測試方法中,黑盒測試個白盒測試法是常用的方法,其中黑盒測試法主要是用于測試( )
4.關(guān)系型數(shù)據(jù)庫管理系統(tǒng)中存儲與管理數(shù)據(jù)的基本形式是( 。
C++語言程序設(shè)計
一、選擇題
(1)C++語言是從早期的C語言逐漸發(fā)展演變而來的.與C語言相比,它在求解問題方法上進(jìn)行的最大改進(jìn)是()
A)面向過程 B)面向?qū)ο蟆 )安全性 D)復(fù)用性
(2)C++語言的跳轉(zhuǎn)語句中,對于break和continue說法正確的是()
A)break語句只應(yīng)用與循環(huán)體中
B)continue語句只應(yīng)用與循環(huán)體中
C)break是無條件跳轉(zhuǎn)語句,continue不是
D)break和continue的跳轉(zhuǎn)范圍不夠明確,容易產(chǎn)生問題
(3)for(int x=0,y=o;!x& &y<=5;y++)語句執(zhí)行循環(huán)的次數(shù)是()
A)0 B)5 C)6 D)無次數(shù)
(4)考慮函數(shù)原型void test(int a,int
b=7,char="*"),下面的函數(shù)調(diào)用中,屬于不合法調(diào)用的是()
A)test(5); B)test(5,8); C)test(6,"#") D)test(0,0."*");
(5)下面有關(guān)重載函數(shù)的說法中正確的是()
A)重載函數(shù)必須具有不同的返回值類型; B)重載函數(shù)形參個數(shù)必須不同;
C)重載函數(shù)必須有不同的形參列表 D)重載函數(shù)名可以不同;
(6)下列關(guān)于構(gòu)造函數(shù)的描述中,錯誤的是()
A)構(gòu)造函數(shù)可以設(shè)置默認(rèn)參數(shù); B)構(gòu)造函數(shù)在定義類對象時自動執(zhí)行
C)構(gòu)造函數(shù)可以是內(nèi)聯(lián)函數(shù); D)構(gòu)造函數(shù)不可以重載
(7)下面描述中,表達(dá)錯誤的是()
A)公有繼承時基類中的public成員在派生類中仍是public的
B)公有繼承是基類中的private成員在派生類中仍是private的
C)公有繼承時基類中的protected成員在派生類中仍是protected的
D)私有繼承時基類中的public成員在派生類中是private的
(8)應(yīng)在下列程序劃線處填入的正確語句是()
#include
class Base
{ public:
void fun(){cout<<"Base::fun"<
class Derived:public Base
{ void fun()
{_____________ //顯示調(diào)用基類的函數(shù)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;
}
執(zhí)行上面的程序?qū)⑤敵觯ǎ?BR>A)XY B)YX C)X D)Y
(10)在進(jìn)行完任何C++流的操作后,都可以用C++流的有關(guān)成員函數(shù)檢測流的狀態(tài);其中只能用于檢測輸入流狀態(tài)的操作函數(shù)名稱是()
A)fail B)eof C)bad D)good
二、填空題
(1)下面程序的打印結(jié)果是 [1]
#incude
int f(int);
int main()
{ int i;
for(i=0;i<5;i++)
cout<
}
int f(int i)
{ static int k=1;
for(;i>0;i- -)
k + = i;
return k;
}
(2)在用class定義一個類時,數(shù)據(jù)成員和成員函數(shù)的默認(rèn)訪問權(quán)限是 [2]
(3)含有純虛函數(shù)的類稱為 [3]
(4)已知intDBL(int n){return n + n;}和longDBL(long n){return n
+n;}是一個函數(shù)模板的兩個實例,則該函數(shù)模板的定義是 [4]
(5)在下面程序的橫線處填上適當(dāng)?shù)恼Z句,使該程序執(zhí)行結(jié)果為10.
#include
class MyClass
{ public:
MyClass(int a){x = a;}
[5] //取x值
private
int x;
};
int main()
{ MyClass my(10);
cout<
}
三、上機(jī)操作題(改錯題1道,簡單應(yīng)用1道,綜合應(yīng)用1道)
1.使用VC6打開考生文件夾下的工程proj1,此工程包含一個源程序文件main.cpp,但該程序運行有問題,請改正main函數(shù)中的錯誤,使程序的輸出結(jié)果為:
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="<
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.請編寫一個函數(shù)int find(char s[],char t[]),該函數(shù)在字符串s中查找字符串t,如果找到,則返回字符串t在字符串s中的位置(整數(shù)值);否則返回-1.注意:用數(shù)組方式及兩重循環(huán)來實現(xiàn)該函數(shù).
注意:部分源文件程序已存在文件PROC2,CPP中.
請勿修改主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)find的花括號中填寫若干語句.
文件PROC2.CPP的內(nèi)容如下:
#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"
<
cout<<"Not finding it.\n";
return 0;
}
int find(char s[],char t[])
{
}
3.使用VC6打開考生文件夾下的工程proj3.此工程包含一個源程序文件main.cpp.其中定義了用于表示日期的類Date,但類Date的定義并不完整.請按要求完成下列操作,將類Date的定義補充完整:
(1)定義私有數(shù)據(jù)成員year,month和day分別用于表示年,月,日,它們都是int型的數(shù)據(jù).請在注釋"http:// * * 2
* *"之后添加適當(dāng)?shù)恼Z句.
(2)完成默認(rèn)構(gòu)造函數(shù)Date的定義,使Date對象的默認(rèn)值為:year=1,month=1,day=1,請在注釋"http:// *
* 2 * *"之后添加適當(dāng)?shù)恼Z句.
(3)完成重載構(gòu)造函數(shù)Date(int y,int m,int
d)的定義,把數(shù)據(jù)成員year,month和day分別初始化為參數(shù)y,m,d的值,請在注釋"//* * 3 *
*"之后添加適當(dāng)?shù)恼Z句.
(4)完成成員函數(shù)print的類外定義,使其以"年-月-日"的格式將Date對象的值輸出到屏幕上.請在注釋"//* * 4
* *"之后添加適當(dāng)?shù)恼Z句.
注意:除在指定位置添加語句之外,請不要改動程序中的其他內(nèi)源程序文件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;
}
參考答案
公共基礎(chǔ)知識
一:選擇題:
(1) D (2) C (3) D (4) B
二:填空題:
(1)[1]:O(Nlog2N)
(2)[2]:功能模型
(3)[3]:軟件外部功能
(4)[4]:二維表
C++程序設(shè)計
一:選擇題
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]:template
(5)[5]:int GetNum(){return x;} 或 int GetNum() const{return x;}