全國計算機等級考試二級筆試試卷

全國計算機等級考試二級筆試試卷
公共基礎知識及C++語言程序設計
一、選擇題((1)~(35)每小題2分,共70分)
下列各題A)、B)、C)、D)四個選項中,只有一個選項是正確的,請將正確選項塗寫在答題卡相應位置上,答在試卷上不得分。
(1) 下面敘述正確的是
A)算法的執行效率與數據的存儲結構無關
B)算法的空間複雜度是指算法程序中指令(或語句)的條數
C)算法的有窮性是指算法必須能在執行有限個步驟之後終止
D)以上三種描述都不對
(2)以下數據結構中不屬於線性數據結構的是
A)隊列 B)線性表 C)二叉樹 D)棧
(3)在一棵二叉樹上第5層的結點數最多是
A)8 B)16 C)32 D)15
(4)下面描述中,符合結構化程序設計風格的是
A)使用順序、選擇和重複(循環)三種基本控制結構表示程序的控制邏輯
B)模塊只有一個入口,可以有多個出口
C)注重提高程序的執行效率
D)不使用goto語句
(5)下面概念中,不屬於面向對象方法的是
A)對象 B)繼承 C)類 D)過程調用
(6)在結構化方法中,用數據流程圖(DFD)作爲描述工具的軟件開發階段是
A)可行性分析 B)需求分析 C)詳細設計 D)程序編碼
(7)在軟件開發中,下面任務不屬於設計階段的是
A)數據結構設計 B)給出系統模塊結構
C)定義模塊算法 D)定義需求並建立系統模型
(8)數據庫系統的核心是
A)數據模型 C)軟件工具
B)數據庫管理系統 D)數據庫
(9)下列敘述中正確的是
A)數據庫系統是一個獨立的系統,不需要操作系統的支持
B)數據庫設計是指設計數據庫管理系統
C)數據庫技術的根本目標是要解決數據共享的問題
D)數據庫系統中,數據的物理結構必須與邏輯結構一致
(10)下列模式中,能夠給出數據庫物理存儲結構與物理存取方法的是
A)內模式 B)外模式 C)概念模式 D)邏輯模式
(11)關於面向對象的程序設計方法,下列說法正確的是
A)“封裝性”指的是將不同類型的相關數據組合在一起,作爲一個整體進行處理
B)“多態性”指的是對象的狀態會根據運行時要求自動變化
C)基類的私有成員在派生類的對象中不可訪問,也不佔內存空間
D)在面向對象的程序設計中,結構化程序設計方法仍有着重要作用
(12)判斷字符型變量ch是否爲大寫英文字母,應使用表達式
A ) ch>='A' & ch<='Z' B ) ch<='A' ||ch>='Z'
C ) 'A'<=ch<='Z' D ) ch>='A' && ch<='Z'
(13)已知下列語句中的x和y都是int型變量,其中錯誤的語句
A ) x=y++; B ) x=++y; C ) (x+y)++; D ) ++x=y;
(14)執行語句序列
int n;
cin >> n;
switch(n)
{ case 1:
case 2: cout << '1';
case 3:
case 4: cout << '2'; break;
default: cout << '3';
}
時,若鍵盤輸入1,則屏幕顯示
A)1 B)2 C)3 D)12
(15)下列程序的輸出結果是
#include <iostream>
using namespace std;
int main()
{
char a[] = "Hello, World";
char *ptr = a;
while (*ptr)
{
if (*ptr >= 'a' && *ptr <= 'z')
cout << char(*ptr + 'A' -'a');
else cout << *ptr;
ptr++;
}
return 0;
}
A ) HELLO, WORLD B ) Hello, World
C ) hELLO, wORLD D ) hello, world
(16)已知:int m=10;在下列定義引用的語句中,正確的是
A ) int &x=m; B )int y=&m;
C )int &z; D ) int &t=&m;
(17)下列函數原型聲明中錯誤的是
A ) void Fun(int x=0, int y=0);
B ) void Fun(int x, int y);
C ) void Fun(int x, int y=0);
D ) void Fun(int x=0, int y);
(18)已知程序中已經定義了函數test,其原型是int test(int, int, int);,則下列重載形式中正確的是
A ) char test(int,int,int);
B ) double test(int,int,double);
C ) int test(int,int,int=0);
D ) float test(int,int,float=3.5F);
(19)有以下程序
#include<iostream>
int i = 0;
void fun()
{ {
static int i = 1;
std::cout<<i++<<',';
}
std::cout<<i<<',';
}
int main()
{
fun(); fun();
return 0;
}
程序執行後的輸出結果是
A)1,2,1,2, B)1,2,2,3, C)2,0,3,0, D)1,0,2,0,
(20)已知函數f的原型是:void f(int *a, long &b); 變量v1、v2的定義是:int v1;long v2;,正確的調用語句是
A) f(v1, &v2); B) f(v1, v2);
C) f(&v1, v2); D) f(&v1, &v2);
(21)有以下類定義
class MyClass
{
public:
MyClass(){cout<<1;}
};
則執行語句MyClass a, b[2], *p[2];後,程序的輸出結果是
A)11 B)111 C)1111 D)11111
(22)關於友元,下列說法錯誤的是
A)如果類A是類B的友元,那麼類B也是類A的友元
B)如果函數fun()被說明爲類A的友元,那麼在fun()中可以訪問類A的私有成員
C)友元關係不能被繼承
D)如果類A是類B的友元,那麼類A的所有成員函數都是類B的友元
(23)關於動態存儲分配,下列說法正確的是
A)new和delete是C++語言中專門用於動態內存分配和釋放的函數
B)動態分配的內存空間也可以被初始化
C)當系統內存不夠時,會自動回收不再使用的內存單元,因此程序中不必用delete釋放內存空間
D)當動態分配內存失敗時,系統會立刻崩潰,因此一定要慎用new
(24)有以下程序
#include<iostream>
using namespace std;
class MyClass
{
public:
MyClass(int n){number = n;}
//拷貝構造函數
MyClass(MyClass &other){ number=er;}
~MyClass(){}
private:
int number;
};
MyClass fun(MyClass p)
{
MyClass temp(p);
return temp;
}
int main()
{
MyClass obj1(10), obj2(0);
MyClass obj3(obj1);
obj2=fun(obj3);
return 0;
}
程序執行時,MyClass類的拷貝構造函數被調用的次數是
相關文檔推薦:
2011年3月全國計算機二級C++考試真題與答案
計算機全部等級考試
2011年9月計算機等級考試二級C++
2009年9月二級C++筆試
2010年3月計算機等級考試二級C++筆試
2010年9月全國計算機二級C++筆試
2008年9月二級C++筆試
2012年3月全國計算機等級考試二級C++