2015年9月計算機考試二級C++模擬試題
一、選擇題。在下列各題的A)、B)、C)、D)四個選項中,只有一個選項是正確的,請將正確的選項涂寫在答題卡相應位置上,答在試卷上不得分。
(1)假設線性表的長度為n,則在最壞情況下,冒泡排序需要的比較次數為
A)log2n
B)n2
C)O(n1.5)
D)n(n-1)/2
(2)算法分析的目的是
A)找出數據結構的合理性
B)找出算法中輸入和輸出之間的關系
C)分析算法的易懂性和可靠性
D)分析算法的效率以求改進
(3)線性表L=(a1,a2,a3,…ai,…an),下列說法正確的是
A)每個元素都有一個直接前件和直接后件
B)線性表中至少要有一個元素
C)表中諸元素的排列順序必須是由小到大或由大到小
D)除第一個元素和最后一個元素外,其余每個元素都有一個且只有一個直接前件和直接后件
(4)在單鏈表中,增加頭結點的目的是
A)方便運算的實現
B)使單鏈表至少有一個結點
C)標識表結點中首結點的位置
D)說明單鏈表是線性表的鏈式存儲實現
(5)軟件工程的出現是由于
A)程序設計方法學的影響
B)軟件產業化的需要
C)軟件危機的出現
D)計算機的發展
(6)軟件開發離不開系統環境資源的支持,其中必要的測試數據屬于
A)硬件資源
B)通信資源
C)支持軟件
D)輔助資源
(7)在數據流圖(DFD)中,帶有名字的箭頭表示
A)模塊之間的調用關系
B)程序的組成成分
C)控制程序的執行順序
D)數據的流向
(8)分布式數據庫系統不具有的特點是
A)數據分布性和邏輯整體性
B)位置透明性和復制透明性
C)分布性
D)數據冗余
(9)關系表中的每一橫行稱為一個
A)元組
B)字段
C)屬性
D)碼
(10)下列數據模型中,具有堅實理論基礎的是
A)層次模型
B)網狀模型
C)關系模型
D)以上3個都是
(11)下列字符串中可以用作C++語言標識符的是
A)_1234
B)foo~~bar
C)virtual
D)34var
(12)關于C++語言與C語言關系描述中錯誤的是
A)C++語言是C語言的超集
B)C++語言對C語言進行了擴充
C)C++語言包含C語言的全部語法特征
D)C++語言與C語言都是面向對象的程序設計語言
(13)下列語句的輸出結果
cout << strlen("\t\"\065\xff\n");
A)5
B)14
C)8
D)輸出項不合法,無正常輸出
(14)在C++語言中,不合法的實型數據的是
A)0.123
B)123e3
C)2.1e3.5
D)123.0
(15)若有如下語句
#include
void main()
{
int x=3;
do{
x=x-2;
cout << x;
}while(!(--x));
}
則上面程序段
A)輸出的是1
B)輸出的是1和-2
C)輸出的是3和0
D)是死循環
(16)下面有關for循環的正確描述是
A)for循環只能用于循環次數已經確定的情況
B)for循環是先執行循環體語句,后判斷表達式
C)在for循環中,不能用break語句跳出循環體
D)for循環的循環體語句中,可以包含多條語句,但必須用花括號括起來
(17)以下程序中調用cin函數給變量a輸入數值的方法是錯誤的,其錯誤原因是
#include
void main()
{ int *p,*q,a,b;
p=&a;
cout << "input a:";
cin >> p;
}
A)*p表示的是指針變量p的地址
B)p表示的是變量a的地址,而不是變量a的值
C)*p表示的是指針變量p的值
D)*p只能用來說明p是一個指針變量
(18)假定int類型變量占用兩個字節,其有定義int x[10]={0,2,4};,則數組x在內存中所占字節數是
A)3
B)6
C)10
D)20
(19)有以下程序
#include
void fun(int a,int b,int c)
{ a=456,b=567,c=678;}
void main()
{
int x=10,y=20,z=30;
fun(x,y,z);
cout << x << ′,′ << y << ′,′ << z << endl;
}
輸出結果是
A)30,20,10
B)10,20,30
C)456,567,678
D)678,567,456
(20)以下敘述正確的是
A)函數可以嵌套定義但不能嵌套調用
B)函數既可以嵌套調用也可以嵌套定義
C)函數既不可以嵌套定義也不可以嵌套調用
D)函數可以嵌套調用但不可以嵌套定義
(21)下列定義中p指向的地址可更改,但*p不能夠更改的是
A)const int *p;
B)int * const p;
C)const int *const p;
D)int *p;
(22)下面的語句中錯誤的是
A)int a = 5; int x[a];
B)const int a = 5; int x[a];
C)int n = 5; int *p = new int [a];
D)const int n = 5; int *p = new int [a];
(23)下面程序的結果是
#include
class A
{
int a;
public:
A():a (1){}
void showa(){cout << a;}
};
class B
{
int a;
public:
B():a (2){}
void showa(){cout << a;}
};
class C : public A, public B
{
int a;
public:
C():a (3){}
void showa(){cout << a;}
};
void main()
{
C c;
c.showa();
}
A)1
B)2
C)3
D)程序有錯誤
(24)關于二義性的描述錯誤的是
A)一個子類的兩個父類中都有某個同名成員,在子類中對該成員訪問可能出現二義性
B)解決二義性可以用對成員名的限定法
C)父類和子類中同時出現同名函數,也可能存在二義性
D)一個子類是從兩個父類派生出來的,而這兩個父類又有一個共同的父類,對該父類成員進行訪問時,可能出現二義性
(25)如果表達式x*y+z中,"*"是作為友元函數重載的,"+"是作為友元函數重載的,則該表達式還可為
A)operator+( operator*(x, y),z)
B)x.operator+( operator*(x, y),z)
C)y.operator*( operator+(x, y),z)
D)x.operator+( operator*(x, y))
(26)函數模板:template
T add(T x,T y){return x+y;}
下列對add函數的調用不正確的是
A)add<>(1,2)
B)add(1,2)
C)add(1.0,2)
D)add(1.0,2.0)
(27)對于語句cout << setfill(′*′)<< setw(10)<< 1 << setfill(′*′)<< setw (2)<< 2;的輸出結果是
A)*********1*2
B)********12
C)*******1*2
D)12********
(28)this指針是C++語言實現什么的一種機制?
A)抽象
B)封裝
C)繼承
D)重載
(29)有如下程序
#include
int func(int a,int b)
{ return(a+b);}
void main()
{ int x=2,y=5,z=8,r;
r=func(func(x,y),z);
cout << r;
}
該程序的輸出的結果是
A)12
B)13
C)14
D)15
(30)下列程序的輸出結果是
#include
class Myclass{
public:Myclass(int i=0,int j=0)
{ x=i;
y=j;
}
void show(){cout<<"x="<
(31)下列描述中,抽象類的特性是
A)可以說明虛函數
B)可以定義友元函數
C)可以進行構造函數重載
D)不能說明其對象
(32)在C++語言中,打開一個文件就是將這個文件與一個什么建立關聯?
A)流
B)類
C)結構
D)對象
(33)下列程序的運行結果是
#include
void fun(int *a, int *b)
{ int *k;
k=a; a=b; b=k;
}
void main()
{ int a=3, b=6, *x=&a, *y=&b;
fun(x,y);
cout << a << " " << b;
}
A)6 3
B)3 6
C)編譯出錯
D)0 0
(34)執行語句 for(i=1;i++<4;);,后變量 i 的值是
A)3
B)4
C)5
D)不定
(35)判斷char型變量c是否為小寫字母的正確表達式是
A)′a′<=c<=′z′
B)(c>=A)&&(c<=z)
C)(′a′>=c)||(′z′<=c)
D)(c>=′a′)&&(c<=′z′)
二、填空題。請將每一個空的正確答案寫在答題卡序號的橫線上,答在試卷上不給分。
(1)在算法正確的前提下,評價一個算法的兩個標準是 1 。
(2)將代數式Z= 轉換成程序設計中的表達式為 2 。
(3)軟件危機出現于60年代末,為了解決軟件危機,人們提出了 3 的原理來設計軟件,這就是軟件工程誕生的基礎。
(4) 4 是數據庫設計的核心。
(5)在關系模型中,把數據看成一個二維表,每一個二維表稱為一個 5 。
(6)一個C++語言程序的開發步驟通常包括編輯、 6 、鏈接、運行和調試。
(7)若已知a=10,b=20,則表達式!a (8)下面程序的運行結果是 8 和 9 。
#include
#define N 10
#define s(x)x*x
#define f(x)(x*x)
void main()
{ int i1,i2;
i1=1000/s(N); i2=1000/f(N);
cout << i1 << " " << i2;
}
(9)友元類的所有成員函數都是另一個類的 10 。
(10) 11 是實現C++語言編譯時多態性的機制, 12 是實現C++語言運行時多態性的機制。
(11)表達式x.operator++()還可寫成 13 。
(12)以下程序的輸出結果是 14 。
#include
void main()
{ int a=0;
a+=(a=8);
cout << a;
}
(13)若要在C盤根目錄下作為二進制文件打開文件test.dat,則應該用的語句是 15 。
【9月計算機考試二級C++模擬試題】相關文章:
2015年9月計算機考試二級C++模擬試題答案及解析09-18
9月計算機考試二級C語言模擬試題11-01
計算機二級C++模擬試題及答案09-22