一、選擇題(1)~(10)每小題2分,(11)-(50)每小題1分,共60分)
下列各題A)、B)、C)、D)四個(gè)選項(xiàng)中,只有一個(gè)選項(xiàng)是正確的,請(qǐng)將正確選項(xiàng)涂寫在答題卡相應(yīng)位置上,答在試卷上不得分。
(1)算法能正確地實(shí)現(xiàn)預(yù)定功能的特性稱為算法的__________。
A)確定性 B)易讀性 C)健壯性 D)高效性
答案:A
評(píng)析:算法的確定性是指算法中的每一個(gè)步驟都必須是有明確定義的,不允許有摸棱兩可的解釋,也不允許有多義性,即每個(gè)步驟都是預(yù)先定義好的。
(2)數(shù)據(jù)在計(jì)算機(jī)存儲(chǔ)器內(nèi)表示時(shí),物理地址與邏輯地址相同并且是連續(xù)的,稱之為__________。
A)存儲(chǔ)結(jié)構(gòu) B)邏輯結(jié)構(gòu)
C)順序存儲(chǔ)結(jié)構(gòu) D)鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)
答案:C
評(píng)析:如果數(shù)據(jù)之間在邏輯上有相鄰關(guān)系時(shí),能夠在物理位置上體現(xiàn)出來,則這種存儲(chǔ)結(jié)構(gòu)稱為順序存儲(chǔ)結(jié)構(gòu)。如果數(shù)據(jù)之間的邏輯相鄰關(guān)系在存儲(chǔ)時(shí)是靠存儲(chǔ)地址的指針來體現(xiàn)的,則稱為鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。
(3)從未排序序列中依次取出一個(gè)元素與已排序序列中的元素依次進(jìn)行比較,然后將其放 在已排序序列的合適位置,該排序方法稱為__________。
A)希爾排序 B)冒泡排序 C)插入排序 D)選擇排序
答案:C
評(píng)析:最基本的排序方法有三大類,即選擇排序、交換排序和插入排序。
(4)對(duì)線性表進(jìn)行折半查找時(shí),要求線性表必須__________。
A)以順序方式存儲(chǔ)
B)以鏈接方式存儲(chǔ)
C)以順序方式存儲(chǔ),且結(jié)點(diǎn)按關(guān)鍵字有序排列
D)以鏈接方式存儲(chǔ),且結(jié)點(diǎn)按關(guān)鍵字有序排列
答案:C
評(píng)析:折半查找算法要求被查找的對(duì)象必須采用順序的存儲(chǔ)結(jié)構(gòu),并且關(guān)鍵字有序排列。
(5)鏈表不具備的特點(diǎn)是__________。
A)可隨機(jī)訪問任意一個(gè)結(jié)點(diǎn)
B)插入和刪除不需要移動(dòng)任何元素
C)不必事先估計(jì)存儲(chǔ)空間
D)所需空間與其長度成正比
答案:A
評(píng)析:順序表可以隨機(jī)訪問任意一個(gè)結(jié)點(diǎn),而鏈表必須從第一個(gè)數(shù)據(jù)結(jié)點(diǎn)出發(fā),逐一查找每個(gè)結(jié)點(diǎn)。
(6)下列描述中正確的是__________。
A)軟件是物理產(chǎn)品
B)程序就是軟件
C)軟件工程由方法、工具和過程三部分組成
D)軟件工程是一個(gè)機(jī)械工程
答案:B
評(píng)析:軟件是與計(jì)算機(jī)系統(tǒng)操作有關(guān)的程序、規(guī)程、規(guī)則及任何與之有關(guān)的文檔和數(shù)據(jù)。計(jì)算機(jī)軟件是一種邏輯產(chǎn)品,而不是物理產(chǎn)品。軟件工程是用工程、科學(xué)和數(shù)學(xué)的原則與方法研制、維護(hù)計(jì)算機(jī)軟件的有關(guān)技術(shù)及管理方法。軟件工具可以自動(dòng)或半自動(dòng)的生成軟件文檔。軟件工程過程是管理者控制軟件開發(fā)各環(huán)節(jié)的基本方法。
(7)軟件測(cè)試是保證軟件質(zhì)量最關(guān)鍵的步驟,下列關(guān)于白盒測(cè)試技術(shù)描述中不正確的是_______。
A)保證模塊中每一獨(dú)立的路徑至少執(zhí)行一次
B)保證所有判斷的每一分支至少執(zhí)行一次
C)保證每一循環(huán)都在邊界條件和一般條件下最多執(zhí)行一次
D)驗(yàn)證所有內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性
答案:C
評(píng)析:軟件測(cè)試技術(shù)中,白盒測(cè)試技術(shù)和黑盒測(cè)試技術(shù)是兩種基本的軟件測(cè)試手段。白盒測(cè)試技術(shù)有四個(gè)原則:保證模塊中每一個(gè)獨(dú)立的路徑至少執(zhí)行一次;保證所有判斷的每一分支至少執(zhí)行一次;保證每一循環(huán)都在邊界條件和一般條件下至少執(zhí)行一次;驗(yàn)證所有內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性。
(8)客觀世界中任何一個(gè)事物都可以看成一個(gè)對(duì)象。但是從計(jì)算機(jī)的角度看,一個(gè)對(duì)象應(yīng) 該包含兩個(gè)要素:一個(gè)是_______,另一個(gè)是需要進(jìn)行的操作。
A)語句 B)命令 C)算法 D)數(shù)據(jù)
答案:D
評(píng)析:在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,從計(jì)算機(jī)的角度看,一個(gè)對(duì)象應(yīng)該包含兩個(gè)元素:數(shù)據(jù),相當(dāng)于家庭中的成員;操作,相當(dāng)于家庭成員的活動(dòng)。對(duì)象就是一個(gè)包含數(shù)據(jù)與這些數(shù)據(jù)有關(guān)的操作的集合。
(9)下列概念中,不是數(shù)據(jù)庫管理系統(tǒng)必須提供的數(shù)據(jù)控制功能的是_______。
A)安全性 B)完整性 C)移植性 D)一致性
答案:C
評(píng)析:數(shù)據(jù)庫管理系統(tǒng)提供的數(shù)據(jù)控制功能是指在數(shù)據(jù)庫建立、運(yùn)行和維護(hù)時(shí),由DBMS統(tǒng)一管理、統(tǒng)一控制,以保證數(shù)據(jù)的安全性、完整性和一致性。
(10)設(shè)關(guān)系R和關(guān)系S的元數(shù)分別是3和4,關(guān)系T是R和S的笛卡兒積,即T=R×S,則關(guān)系T的元數(shù)是_______。
A)7 B)9 C)12 D)16
答案:A
評(píng)析:笛卡兒積的定義是設(shè)關(guān)系R和s的元數(shù)分別是r和s,R和s的笛卡兒積是一個(gè)(r十s)元屬性的集合,每一個(gè)元組的mr個(gè)分量來自R的一個(gè)元組,、后s爪分量來自s的一個(gè)元組。所以關(guān)系T的屬性元數(shù)是3+4=7。
(11)以下敘述中正確的是_______。
A)C語言中的全部數(shù)據(jù)類型都是基本類型
B)C語言中的全部數(shù)據(jù)類型都是構(gòu)造類型
C)C語言中的數(shù)據(jù)類型只有兩種,即基本類型和構(gòu)造類型
D)以上都不對(duì)
答案:D
評(píng)析:c語言中的數(shù)據(jù)類型有四種,即基本類型、構(gòu)造類型、指針類型和空類型。
(12)下列可作為C語言賦值語句的是_______。
A)x=3,y=5 B)a=b=6 C)i--; D)y=6
答案:C
評(píng)析:此題實(shí)際上是考查對(duì)c語言中"語句"概念的理解。表達(dá)式后面只有加上分號(hào)才能成為語句,因此,A),B),D)均是表達(dá)式,只有C)為語句。且利用自減運(yùn)算符使i值減l。
(13)以下可以定義為用戶標(biāo)識(shí)符的是_______。
A)printf B)net C)3com D)int
答案:B
評(píng)析:c語言中的標(biāo)識(shí)符分為兩類。一類是系統(tǒng)標(biāo)識(shí)符,即系統(tǒng)定義使用的關(guān)鍵字標(biāo)識(shí)符等。另一類是用戶自定義標(biāo)識(shí)符。兩類標(biāo)識(shí)符都只能用字母、數(shù)字和下劃線三種字符組成。且第一個(gè)字母必須為字母或下劃線。并且用戶自定義標(biāo)識(shí)符不能使用系統(tǒng)關(guān)鍵字相同的標(biāo)識(shí)符。
(14)以下選項(xiàng)中,不能作為合法常量的是_______。
A)0X2A B)015 C).2.8e9 D)123.6e0.4
答案:D
評(píng)析:c程序中的基本數(shù)據(jù)類型有整型、實(shí)型和字符型。其中整型常量三種形式,即八進(jìn)制、十進(jìn)制和十六進(jìn)制。而實(shí)型常量有十進(jìn)制小數(shù)和指數(shù)形式兩種。
(15)有以下程序
main()
{
int a; char c=10:
float f=-100.0;double x;
clrscrO;
a=f/=c*=(x=6.5);
printf("%d,%c,%3.1C%3.1f\n",a,c,Cx);
}
程序運(yùn)行后的輸出結(jié)果是_______。
A)1,65,1,6.5 B)1,A,1.5,6.5 C)1,65,1.5,6.5 D)2,65,1.5,6.5
答案:B
評(píng)析:在賦值語句a=f/=c*=(x=6.5);中,可得x=6.5,將x的值乘以10賦予c,為65,再將f=100的值除以65,并按照四舍五入的原則,重新賦給f'得到f=-I.5。最后將f的值賦給a,由于a是整型,所以得到a=l。
(16)以下語句序列中錯(cuò)誤的是_______。
A)int x=l; B)int x=0; C)int x=2.3; D)int x=l,y=l;
x++; (x+1)++; (x++)+1; (x++)+(y一);
答案:B
評(píng)析:c語言中的自加、自減運(yùn)算只能用于變量,而不能用于常量或表達(dá)式。
(17)有定義語句:im.a(chǎn);char b[10],c;則錯(cuò)誤的輸入語句是__________。
A)scanf("%d%s%c",&a,D,&C); B)scanf("%d%s%c",&a,&b,&C);
C)scanf("%d%s%d",&a;b,&C); D)scanf("%d%s"&c,a,%,&C);
答案:D
評(píng)析:在scanf()語句中,在給整型變量和字符型賦值時(shí),必須要在變量名前加取地址符號(hào)(&),而對(duì)字符型數(shù)組賦值時(shí),可以不在變量名前不加取地址符號(hào),也可以加取地址符號(hào)。而且對(duì)于字符型變量既可以賦給整型值,也可以賦給字符型值。
(18)有定義語句:int x,y;,若要通過scan即x=%d,y=%n&x,&y);語句使變量x得到數(shù)值11,變量y得到數(shù)值12,下面四組輸入形式中,正確的是________。
A)1l 12<回車> B)ll,12<回車>
C)x=l l,y=12<回車> D)x=ll,<回車>12,<回車>
答案:C
評(píng)析:在scanf()語句中,對(duì)于變量的賦值必須與數(shù)據(jù)的輸入格式相一致。特別是一些字符說明。
(19)設(shè)有如下程序段:
int x=6, y=4;
printf("%d\n",(x%y,x&&y));
則以下敘述中正確的是__________。
A)輸出語句中格式說明符的個(gè)數(shù)少于輸出項(xiàng)的個(gè)數(shù),不能正確輸出
B)運(yùn)行時(shí)產(chǎn)生出錯(cuò)信息
C)輸出值為2
D)輸出值為l
答案:D
評(píng)析:在逗號(hào)表達(dá)式(表達(dá)式1,表達(dá)式2)中,其運(yùn)算方法是先求表達(dá)式1的值,然后求表達(dá)2的值,整個(gè)逗號(hào)表達(dá)式的值是表達(dá)式2的值。
(20)有以下程序
main()
{
int i=1.j=2,k=3;
clrscr();
if(i++==j&&k--==j)
printf("%d,%d,%d",i++'j,k);
else
printf("%d,%d,%d",++i,++j,k--);
}
程序運(yùn)行后的輸出結(jié)果是_________。
A)l,2,3 B)2,2,3 C)2,3,2 D)3,3,3
答案:D
評(píng)析:按照運(yùn)算符的優(yōu)先級(jí),最先計(jì)算的是關(guān)系運(yùn)算i++==j,由于此關(guān)系式不成立,,它的結(jié)果是為"假"值,由此可以確定邏輯與運(yùn)算的結(jié)果必然是"假"值,因此參加邏輯與運(yùn)算的另一個(gè)關(guān)系表達(dá)式"k--==j"的值,系統(tǒng)不再對(duì)它進(jìn)行運(yùn)算。此時(shí)變量i的值自加1變成2,然后執(zhí)行else語句后的printf語句。
(21)有定義語句:int a=l,b=l,c=3,x;,則以下選項(xiàng)中各程序段執(zhí)行后,x的值不等于3是__________。
A)if(c<a)x=l; B)if(a<3&&b<C) x=3;
else if(b<a‖b<C)x=3; else if(a<2) x:2;
C)if(a%b>a) x=3; D)if(a<b+C)x:b;
if(a<2)x=2; if(b&&a<C)x=c=
if(a<1)z=l; if(c<a)x=a;
答案:C
評(píng)析:在各種運(yùn)算符中,運(yùn)算級(jí)別最高的是算術(shù)運(yùn)算,如果有括號(hào),當(dāng)然先算括號(hào)內(nèi)的表達(dá)式的值。
(22)有以下程序,其輸出結(jié)果是____________。
main()
{ float x=l; int y;
X++:
y=x+l;
printf("x=%d,y=%f",x, y);
}
A)x=2,y=3 B)x=2,y=3.0
C)x=2.0,y=3 D)x=0.y=O.000000
答案:D
評(píng)析:一般在對(duì)變量定義為何種類型的數(shù)據(jù)時(shí),對(duì)輸出應(yīng)有完全一致的數(shù)據(jù)類型格式。但整型與實(shí)型數(shù)據(jù)在進(jìn)行混合運(yùn)算時(shí),一般其數(shù)據(jù)類型可以自動(dòng)轉(zhuǎn)換。如本題的y=x+l;語句中,系統(tǒng)自動(dòng)將實(shí)型表達(dá)式x+l的結(jié)果轉(zhuǎn)換為整數(shù)賦給整型變量y,但整型變量y只能得到實(shí)型數(shù)的整數(shù)部分。
(23)有以下程序
main()
{
int a[6]={5,6,7,8,9,10},s=0,I=0;
clrserO;
do
{
if(a[i]%2 I-0)
s+=a[I];
}while(++i<5);
primf("%d\n",s);
}
程序運(yùn)行后的輸出結(jié)果是_________。
A)21 B)22 C)23 D)24
答案:A
評(píng)析:引用數(shù)組中的某個(gè)元素時(shí),可以直接使用數(shù)組名加下標(biāo)的形式。如p[1],就是數(shù)組中下標(biāo)為1的元素,按順序數(shù),是第2個(gè)元素,因?yàn)閿?shù)組的下標(biāo)是從0開始的。本題實(shí)際上是求數(shù)組中所有奇數(shù)元素的和。
(24)若有如下程序段,
main()
{
char a[7]="123\010\032";
int i,j=0;
clrscr0;
for (I=0;i<strlen(a);i++)
j+=sizeof(a);
printf("%d,%d\n",I,J);
}
程序運(yùn)行后的輸出結(jié)果是_________。
A)5,30 B)5,35 C)5,25 D)5,20
答案:B
評(píng)析:數(shù)組的存儲(chǔ)空間是在其定義后就分配的。字符數(shù)組a[7]="123\010\032"的存儲(chǔ)空間是7個(gè)單元。即sizeof(a)=7。而函數(shù)strlen()是求字符串的長度的。a[7]="123\010\032"中,有兩個(gè)轉(zhuǎn)義字符,因此字符串的長度實(shí)際上是5個(gè)字符。所以strlen(a)=5。在程序的for循環(huán)中,其循環(huán)的次數(shù)是5次,j每次加7,所以最后的結(jié)果是35。i的值就是循環(huán)的次數(shù)。
(25)如果在c程序中要用到庫函數(shù)中的字符串比較函數(shù)strcmp(),那么在程序前面應(yīng)該 添加的頭文件是__________。
A)stdio.h B)string.h C)alloc.h D)math.H
答案:B
評(píng)析:庫函數(shù)并不是c語言的一部分,它是由人們根據(jù)需要編制并提供用戶使用的。在調(diào)用不同類別的庫函數(shù)時(shí),必須在程序前添加相應(yīng)的頭文件。
(26)若已定義的函數(shù)有返回值,則以下關(guān)于該函數(shù)調(diào)用的敘述中錯(cuò)誤的是_________。
A)函數(shù)調(diào)用可以嵌套和遞歸
B)函數(shù)調(diào)用可以作為一個(gè)函數(shù)的實(shí)參
C)函數(shù)調(diào)用可以出現(xiàn)在表達(dá)式中
D)函數(shù)調(diào)用可以作為一個(gè)函數(shù)的形參
答案:D
評(píng)析:函數(shù)的調(diào)用有三種方式。一是將函數(shù)調(diào)用作為一個(gè)語句。二是函數(shù)出現(xiàn)在_個(gè)表達(dá)式中。三是作為一個(gè)函數(shù)的實(shí)參。但是沒有函數(shù)調(diào)用作為形參。而且函數(shù)在調(diào)用時(shí)還有嵌套和遞歸兩種特殊的情形。
(27)下列關(guān)于c語言中字符常量與字符串常量的敘述中,錯(cuò)誤的是_________。
A)字符常量是用單撇號(hào)括起來的一個(gè)字符
B)空格字符也可用作字符常量
C)字符串常量是用單撇號(hào)括起來的一個(gè)字符序列
D)字符串常量是用雙撇號(hào)括起來的一個(gè)字符序列
答案:C
評(píng)析:c語言中的字符型數(shù)據(jù)常量有兩類,一類是用單撇號(hào)括起來的字符常量。字符常量除了常用的字符外,還包括特殊的空格符和以"\"開頭的轉(zhuǎn)義字符。字符串常量則是用雙撇號(hào)括起來的一個(gè)字符序列。