一、選擇題(1~10每小題2分,11~50每小題1分,共60分)
下列各題A)、B)、C)、D)四個選項中,只有一個選項是正確的。請將正確選項填涂在答題卡相應(yīng)位置上,答在試卷上不得分。
。1)算法的時間復(fù)雜度是指()。
A)執(zhí)行算法程序所需要的時間
B)算法程序的長度
C)算法執(zhí)行過程中所需要的基本運算次數(shù)
D)算法程序中的指令條數(shù)
。2)用鏈表表示線性表的優(yōu)點是()。
A)便于隨機存取 B)花費的存儲空間較順序存儲少
C)便于插入和刪除操作 D)數(shù)據(jù)元素的物理順序與邏輯順序相同
(3)棧底至棧頂依次存放元素A、B、C、D,在第五個元素E入棧前,棧中元素可以出棧,則出棧序列可能是()。
A)ABCED B)DCBEA C)DBCEA D)CDABE
(4) 在待排序的元素序列基本有序的前提下,效率最高的排序方法是()。
A)冒泡排序 B)選擇排序 C)快速排序 D)歸并排序
。5)在設(shè)計程序時,應(yīng)采納的原則之一是
A)不限制goto語句的使用 B)減少或取消注解行
C)程序越短越好 D)程序結(jié)構(gòu)應(yīng)有助于讀者理解
。6)下列不屬于軟件工程的3個要素的是( )。
A)工具 B)過程 C)方法 D)環(huán)境
。7) 在軟件工程中,白箱測試法可用于測試程序的內(nèi)部結(jié)構(gòu)。此方法將程序看做是()。
A)路徑的集合B)循環(huán)的集合
C)目標的集合D)地址的集合
。8)下列數(shù)據(jù)模型中,具有堅實理論基礎(chǔ)的是()。
A)層次模型 B)網(wǎng)狀模型 C)關(guān)系模型 D)以上3個都是
。9)下列有關(guān)數(shù)據(jù)庫的描述,正確的是()。
A)數(shù)據(jù)庫是一個DBF文件 B)數(shù)據(jù)庫是一個關(guān)系
C)數(shù)據(jù)庫是一個結(jié)構(gòu)化的數(shù)據(jù)集合 D)數(shù)據(jù)庫是一組文件
10)下列說法中,不屬于數(shù)據(jù)模型所描述的內(nèi)容的是()。
A)數(shù)據(jù)結(jié)構(gòu) B)數(shù)據(jù)操作
C)數(shù)據(jù)查詢 D)數(shù)據(jù)約束
(11)一個C語言程序是由
A)一個主程序和若干子程序組成
B)函數(shù)組成
C)若干過程組成
D)若干子程序組成
。12)下列數(shù)據(jù)中,不合法的C語言實型數(shù)據(jù)是
A)0.123 B)123e3 C)2.1e3.5 D)789.0
。13)已知
int t=0;
while (t=1)
{...}
則以下敘述正確的是
A)循環(huán)控制表達式的值為0
B)循環(huán)控制表達式的值為1
C)循環(huán)控制表達式不合法
D)以上說法都不對
。14)有以下定義語句
double a,b;int w; long c;
若各變量已正確賦值,則下列選擇中正確的表達式是
A) a=a+b=b++ B)w%((int)a+b) C)(c+w)%(int)a D)w=a==b
。15)以下程序的輸出結(jié)果是
main()
{inti;
for(i=0;i<3;i++)
switch(i){
case 0:printf("%d",i);
case 2:printf("%d",i);
default:printf("%d",i);
}
}
A) 022111B)021021C)000122D)012
。16)設(shè)有以下程序段:
int x=0,s=0;
while(!x!=0)s+=++x;
printf("%d",s);
則
A)運行程序段后輸出0
B)運行程序段后輸出1
C)程序段中的控制表達式是非法的
D)程序段執(zhí)行無限次
(17)以下正確的說法是
A)定義函數(shù)時,形參的類型說明可以放在函數(shù)體內(nèi)
B)return后邊的值不能為表達式
C)如果函數(shù)值的類型與返回值類型不一致,以函數(shù)值類型為準
D)如果形參與實參類型不一致,以實參類型為準
。18)以下敘述中不正確的是
A)在不同的函數(shù)中可以使用相同的名字的變量
B)函數(shù)中的形式參數(shù)是局部變量
C)在一個函數(shù)內(nèi)定義的變量只在本函數(shù)范圍內(nèi)有效
D)在一個函數(shù)內(nèi)的復(fù)合語句中定義的變量在本函數(shù)范圍內(nèi)有效
。19)以下程序的輸出結(jié)果是
main()
{inta=3,b=4,c=5,d=2;
if(a>b)
if(b>c)
printf("%d",d+++1);
else
printf("%d",++d+1);
printf("%d\n",d);
}
A) 2 B)3 C)43 D)44
。20)有以下語句,則對a數(shù)組元素的引用不正確的是(0≤i≤9)
int a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;
A) a[p-a] B)*(&a[i]) C)p[i] D)*(*(a+i))
2006年全國計算機等級考試二級C密卷答案
一、選擇題
(1)答案:(C) 解析: 算法的復(fù)雜度主要包括算法的時間復(fù)雜度和算法的空間復(fù)雜度。所謂算法的時間復(fù)雜度是指執(zhí)行算法所需要的計算工作量;算法的空間復(fù)雜度一般是指執(zhí)行這個算法所需要的內(nèi)存空間。
。2)答案:(B) 解析: 鏈式存儲結(jié)構(gòu)克服了順序存儲結(jié)構(gòu)的缺點:它的結(jié)點空間可以動態(tài)申請和釋放;它的數(shù)據(jù)元素的邏輯次序靠結(jié)點的指針來指示,不需要移動數(shù)據(jù)元素。故鏈式存儲結(jié)構(gòu)下的線性表便于插入和刪除操作。
(3)答案:(B) 解析: 棧操作原則上"后進先出",棧底至棧頂依次存放元素A、B、C、D,則表明這4個元素中D是最后進棧,B、C處于中間,A最早進棧。所以出棧時一定是先出D,再出C,最后出A。
。4)答案:(A) 解析: 從平均時間性能而言,快速排序最佳,其所需時間最少,但快速排序在最壞情況下的時間性能不如堆排序和歸并排序。當序列中的記錄基本有序或元素個數(shù)較少時,冒泡排序和簡單選擇排序為最佳排序方法,故本題答案應(yīng)該為選項A)。
。5)答案:(D)解析: 濫用GOTO 語句將使程序流程無規(guī)律,可讀性差,因此A)不選;注解行有利于對程序的理解,不應(yīng)減少或取消,B)也不選;程序的長短要依照實際情況而論,而不是越短越好,C)也不選。
。6)答案:(D) 解析: 軟件工程包括3個要素,即方法、工具和過程。方法是完成軟件工程項目的技術(shù)手段;工具支持軟件的開發(fā)、管理、文檔生成;過程支持軟件開發(fā)的各個環(huán)節(jié)的控制、管理。
。7)答案:(A)解析: 軟件的白盒測試方法是把測試對象看做一個打開的盒子,它允許測試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信息,設(shè)計或選擇測試用例,對程序所有邏輯路徑進行測試。
(8)答案:(C) 解析: 關(guān)系模型較之格式化模型(網(wǎng)狀模型和層次模型)有以下方面的優(yōu)點,即數(shù)據(jù)結(jié)構(gòu)比較簡單、具有很高的數(shù)據(jù)獨立性、可以直接處理多對多的聯(lián)系,以及有堅實的理論基礎(chǔ)。
。9)答案:(C) 解析: 數(shù)據(jù)庫(DataBase,簡稱DB)是數(shù)據(jù)的集合,它具有統(tǒng)一的結(jié)構(gòu)形式并存放于統(tǒng)一的存儲介質(zhì)內(nèi),是多種應(yīng)用數(shù)據(jù)的集成,并可被各個應(yīng)用程序所共享。數(shù)據(jù)庫中的數(shù)據(jù)具有"集成"、"共享"之特點。
。10)答案:(C) 解析: 數(shù)據(jù)模型所描述的內(nèi)容有3個部分,它們是數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和數(shù)據(jù)約束。其中,數(shù)據(jù)模型中的數(shù)據(jù)結(jié)構(gòu)主要描述數(shù)據(jù)的類型、內(nèi)容、性質(zhì),以及數(shù)據(jù)庫的聯(lián)系等;數(shù)據(jù)操作主要是描述在相應(yīng)數(shù)據(jù)結(jié)構(gòu)上的操作類型與操作方式。
。11)答案:(B)解析: C程序是由函數(shù)構(gòu)成的。一個C源程序至少包括一個main函數(shù),也可以包含一個main函數(shù)和若干個其他函數(shù)。因此,函數(shù)是C程序的基本單位,被調(diào)用的函數(shù)可以是系統(tǒng)提供的庫函數(shù),也可以是用戶根據(jù)需要自己編制設(shè)計的函數(shù)。
。12)答案:(C)解析: 在C語言中,實數(shù)有兩種形式表示,即十進制數(shù)形式和指數(shù)形式,在指數(shù)形式中e3,2.1e3.5,.e3,e等都是不合法的指數(shù)形式。再如123e3或123E3都代表123乘以10的3次方。注意,字母e的前面必須有數(shù)字,且e的后面必須是整數(shù)。
。13)答案:(B) 解析: t=1是將t賦值為1,所以循環(huán)控制表達式的值為1,而判斷t是否等于1時的語句為t==1。注意“=”與“==”的用法。
(14)答案: (C) 解析: 選項A)中,賦值表達式左邊應(yīng)該是一個變量,而“a+b=b++”中賦值號左邊是一個表達式;選項B)中,取余運算符“%”兩側(cè)應(yīng)都是整型數(shù)據(jù),而“((int)a+b)”是float類型;選項C)中,“%”兩側(cè)都是整型數(shù)據(jù),所以正確;選項D)最后有一個分號,所以不是表達式,而是一條語句。
(15)答案:(C) 解析: 由于在switch語句中,沒有break語句,所以當變量i的值等于case后面的常量表達式的值時,將執(zhí)行此case后面的所有switch語句。
。16)答案:(B) 解析: 本題中,“!”表示邏輯非運算符,邏輯非運算符比等于運算符的優(yōu)先級低。
(17)答案:(C) 解析: 選項A)中定義函數(shù)時,形參的類型說明應(yīng)該放在形參表列內(nèi)說明。老版本C語言中,對形參類型的聲明是放在函數(shù)定義的第2行,也就是不在第1行的括號內(nèi)指定形參的類型,而在括號外單獨指定。選項B)中return后面的值可以是一個表達式。選項D)中實參與形參的類型應(yīng)相同或賦值兼容。如果實參為整型而形參為實型,或者相反,則按不同類型數(shù)值的賦值規(guī)則進行轉(zhuǎn)換,以形參類型為準。
。18)答案:(D) 解析: C語言在函數(shù)中說明的變量為局部變量,只在函數(shù)內(nèi)起作用但不會影響到其他函數(shù)。所以在不同的函數(shù)中使用相同的函數(shù)名不代表是同一函數(shù)。在函數(shù)定義時聲明的參數(shù)只在函數(shù)內(nèi)部起作用,是函數(shù)的局部變量。在一個函數(shù)中定義的變量是這個函數(shù)的局部變量,所以只在這個函數(shù)內(nèi)起作用。復(fù)合語句中定義的變量其作用域是這個復(fù)合語句,不會擴大到整個函數(shù)。
。19)答案:(A) 解析: 該題是if語句的嵌套,else總是與它上面最近的if配對。因為a
。20)答案:(D) 解析: 本題考查數(shù)組指針的應(yīng)用。選項D)第一層括號中為數(shù)組a中第i項元素的值,外面再加指針運算符沒有意義。
。21)答案:(C)解析:p=&a[3]將指針指向數(shù)組a的第4個元素,p[5]指向數(shù)組a的第9個元素,而a[8]=9,所以b=9。
。22)答案:(D) 解析:定義一個結(jié)構(gòu)的一般形式為:
struct 結(jié)構(gòu)名
{
成員列表
};
本題中,stutype是在聲明類型的同時定義的struct stu類型的變量,而不是用戶定義的結(jié)構(gòu)體類型名。我們需要注意以下幾點:①類型與變量是不同的概念;②對結(jié)構(gòu)體中的成員,可以單獨使用,它的作用與地位相當于普通變量;③成員也可以是一個結(jié)構(gòu)體變量;④成員名可以與程序中的變量名相同,二者不代表同一對象。
。23)答案:(C)解析: 最初,指針變量p和q分別指向整型變量a和b,然后借助第三個指針變量r,使p和q的內(nèi)容進行交換,此時p和q分別指向整型變量b和a,而變量a和b并沒有進行交換。
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |