一、選擇題(1)~(10)每小題2分,(11)-(50)每小題1分,共60分)
下列各題A)、B)、C)、D)四個(gè)選項(xiàng)中,只有一個(gè)選項(xiàng)是正確的,請(qǐng)將正確選項(xiàng)涂寫(xiě)在答題卡相應(yīng)位置上,答在試卷上不得分。
(1)算法分析的目的是________。
A)找出數(shù)據(jù)結(jié)構(gòu)的合理性 B)找出算法中輸入和輸出之間的關(guān)系
C)分析算法的易懂性和可靠性 D)分析算法的效率以求改進(jìn)
答案:D
評(píng)析:算法分析是指對(duì)一個(gè)算法的運(yùn)行時(shí)間和占用空間做定量的分析,一般計(jì)算出相應(yīng)的數(shù)掌級(jí),常用時(shí)間復(fù)雜度和空間復(fù)雜度表示。分析算法的目的就是要降低算法的時(shí)間復(fù)雜度和空間復(fù)雜度,提高算法的執(zhí)行效率。
(2)n個(gè)頂點(diǎn)的強(qiáng)連通圖的邊數(shù)至少有________。
A)n-1 B)n(n-1) C)n D)n+l
答案:C
評(píng)析:在有向圖中,若任意兩個(gè)頂點(diǎn)都連通,則稱該圖是強(qiáng)連通圖,這樣的有向圖的形狀是環(huán)狀,因而至少應(yīng)有n條邊。
(3)已知數(shù)據(jù)表A中每個(gè)元素距其最終位置不遠(yuǎn),為節(jié)省時(shí)間,應(yīng)采用的算法是________。
A)堆排序 B)直接插入排序 C)快速排序 D)直接選擇排序
答案:B
評(píng)析:當(dāng)數(shù)據(jù)表A中每個(gè)元素距其最終位置不遠(yuǎn),說(shuō)明數(shù)據(jù)表A按關(guān)鍵字值基本有序,在待排序序列基本有序的情況.下,采用插入排序所用時(shí)間最少,故答案為選項(xiàng)B。
(4)用鏈表表示線性表的優(yōu)點(diǎn)是________。
A)便于插入和刪除操作 B)數(shù)據(jù)元素的物理順序與邏輯順序相同
C)花費(fèi)的存儲(chǔ)空間較順序存儲(chǔ)少 D)便于隨機(jī)存取
答案:A
評(píng)析:鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)克服了順序存儲(chǔ)結(jié)構(gòu)的缺點(diǎn):它的結(jié)點(diǎn)空間可以動(dòng)態(tài)申請(qǐng)和釋放;它的數(shù)據(jù)元素的邏輯次序靠結(jié)點(diǎn)的指針來(lái)指示,不需要移動(dòng)數(shù)據(jù)元素。故鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)下的線性表便于插入和刪除操作。
(5)下列不屬于結(jié)構(gòu)化分析的常用工具的是________。
A)數(shù)據(jù)流圖 B)數(shù)據(jù)字典 C)判定樹(shù) D)PAD圖
答案:D
評(píng)析:結(jié)構(gòu)化分析的常用工具有數(shù)據(jù)流圖、數(shù)據(jù)字典、判定樹(shù)和判定表。而PAD圖是常見(jiàn)的過(guò)程設(shè)計(jì)工具中的圖形設(shè)計(jì)。
(6)軟件開(kāi)發(fā)的結(jié)構(gòu)化生命周期方法將軟件生命周期劃分成________。
A)定義、開(kāi)發(fā)、運(yùn)行維護(hù)
B)設(shè)計(jì)階段、編程階段、測(cè)試階段
C)總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編程調(diào)試
D)需求分析、功能定義、系統(tǒng)設(shè)計(jì)
答案:A
評(píng)析:通常,將軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過(guò)程稱為軟件生命周期。它可以分為軟件定義、軟件開(kāi)發(fā)及軟件運(yùn)行維護(hù)三個(gè)階段。
(7)在軟件工程中,白盒測(cè)試法可用于測(cè)試程序的內(nèi)部結(jié)構(gòu)。此方法將程序看做是________。
A) 循環(huán)的集合 B)地址的集合 C)路徑的集合 D)目標(biāo)的集合
答案:C
評(píng)析:軟件的白盒測(cè)試方法是把測(cè)試對(duì)象看做一個(gè)打開(kāi)的盒子,它允許測(cè)試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信息,設(shè)計(jì)或選擇測(cè)試用例,對(duì)程序所有邏輯路徑進(jìn)行測(cè)試。
(8)在數(shù)據(jù)管理技術(shù)發(fā)展過(guò)程中,文件系統(tǒng)與數(shù)據(jù)庫(kù)系統(tǒng)的主要區(qū)別是數(shù)據(jù)庫(kù)系統(tǒng)具有________。
A)數(shù)據(jù)無(wú)冗余 B)數(shù)據(jù)可共享
C)專門(mén)的數(shù)據(jù)管理軟件 D)特定的數(shù)據(jù)模型
答案:D
評(píng)析:在文件系統(tǒng)中,相互獨(dú)立的記錄其內(nèi)部結(jié)構(gòu)的最簡(jiǎn)單形式是等長(zhǎng)同格式記錄的集合,易造成存儲(chǔ)空間大量浪費(fèi),不方便使用。而在數(shù)據(jù)庫(kù)系統(tǒng)中,數(shù)據(jù)是結(jié)構(gòu)化的,這種結(jié)構(gòu)化要求在描述數(shù)據(jù)時(shí)不僅描速數(shù)據(jù)本身,還要描述數(shù)據(jù)間的關(guān)系,這正是通過(guò)采用特定的數(shù)據(jù)模型來(lái)實(shí)現(xiàn)的。
(9)分布式數(shù)據(jù)庫(kù)系統(tǒng)不具有的特點(diǎn)是________。
A)分布式 B)數(shù)據(jù)冗余
C)數(shù)據(jù)分布性和邏輯整體性 D)位置透明性和復(fù)制透明性
答案:B
評(píng)析:分布式數(shù)據(jù)庫(kù)系統(tǒng)具有數(shù)據(jù)分布性、邏輯整體性、位置透明性和復(fù)制透明性的特點(diǎn),其數(shù)據(jù)也是分布的;但分布式數(shù)據(jù)庫(kù)系統(tǒng)中數(shù)據(jù)經(jīng)常重復(fù)存儲(chǔ),數(shù)據(jù)也并非必須重復(fù)存儲(chǔ),主要視數(shù)據(jù)的分配模式而定。若分配模式是一對(duì)多,即一個(gè)片段分配到多個(gè)場(chǎng)地存放,則是冗余的數(shù)據(jù)庫(kù),否則是非冗余的數(shù)據(jù)庫(kù)。
(10)下列說(shuō)法中,不屬于數(shù)據(jù)模型所描述的內(nèi)容的是________。
A)數(shù)據(jù)結(jié)構(gòu) B)數(shù)據(jù)操作 C)數(shù)據(jù)查詢 D)數(shù)據(jù)約束
答案:C
評(píng)析:數(shù)據(jù)模型所描述的內(nèi)容有3個(gè)部分,它們是數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和數(shù)據(jù)約束。數(shù)據(jù)操作主要是描述在相應(yīng)數(shù)據(jù)結(jié)構(gòu)上的操作類型與操作方式;數(shù)據(jù)模型中的數(shù)據(jù)約束主要描述數(shù)據(jù)結(jié)構(gòu)內(nèi)數(shù)據(jù)間的語(yǔ)法、語(yǔ)義聯(lián)系,它們之間的制約與依存關(guān)系,以及數(shù)據(jù)動(dòng)態(tài)變化的規(guī)則,以保證數(shù)據(jù)的正確、有效與胡容。
(11)在結(jié)構(gòu)化程序設(shè)計(jì)中,限制使用goto語(yǔ)句的原因是________。
A)提高程序的執(zhí)行效率
B)提高程序的清晰性和可靠性
C)便于程序的合成
D)該語(yǔ)句對(duì)任何結(jié)構(gòu)的程序都不適用
答案:B
評(píng)析:在c語(yǔ)言中,限制使用goto語(yǔ)句,其目的是為了提高程序的清晰性與可靠性,一般來(lái)說(shuō),除了從多重循環(huán)中跳出,一般不使用goto語(yǔ)句。
(12)以下選項(xiàng)中合法的實(shí)型常數(shù)是________。
A)5E2.0 B)E-3 C).2E0 D)1.3E
答案:C
評(píng)析:以指數(shù)形式表示實(shí)數(shù)時(shí),字母e(或E)之前必須有數(shù)字,且e后面指數(shù)必須為整數(shù)。
(13)下列敘述中,正確的是________。
A)C語(yǔ)言中既有邏輯類型也有集合類型
B)c語(yǔ)言中沒(méi)有邏輯類型但有集合類型
B)C語(yǔ)言中有邏輯類型但沒(méi)有集合類型
B)C語(yǔ)言中沒(méi)有邏輯類型也沒(méi)有集合類型
答案:B
評(píng)析:在c語(yǔ)言中只提供了整型、浮點(diǎn)型、字符型這幾種基本類型,c語(yǔ)言沒(méi)有提供邏輯類型,在c中一般用整型來(lái)表示邏輯類型。在自定義類型中,c提供了struct,enum及union類型,但沒(méi)有提供集合類型,在pascal中提供了集合類型set。
(14)已知大寫(xiě)字母A的ASCII碼是65,小寫(xiě)字母a的ASCII碼是97,則用八進(jìn)制表示的字符常量'\10l'是________。
A)字符A B)字符a C)字符e D)非法的常量
答案:A
評(píng)析:八進(jìn)制101轉(zhuǎn)換為十進(jìn)制即為65,而字母A的ASCII碼是65,所以用八進(jìn)制表示的字符常量'\101'是A。
(15)設(shè)a和b均為double型常量,且a=5.5、b=2.5,則表達(dá)式(int)a+b/b的值是________。
A)6.500000 B)6 C)5.500000 D)6.000000
答案:D
評(píng)析:各類數(shù)值型數(shù)據(jù)在進(jìn)行混合運(yùn)算時(shí),不同類型的數(shù)據(jù)要先轉(zhuǎn)換成同一類型,然后進(jìn)行運(yùn)算。轉(zhuǎn)換的規(guī)則為:總是轉(zhuǎn)換為精度更大的數(shù)據(jù)類型,字符數(shù)據(jù)轉(zhuǎn)換為整數(shù),short型轉(zhuǎn)為int型,float型數(shù)據(jù)在運(yùn)算時(shí)轉(zhuǎn)換成雙精度型,以提高運(yùn)算精度。
(16)以下四個(gè)選項(xiàng)中不能看作一條語(yǔ)句的是________。
A){;} B)a=0,b:0,c=0; C)if(a>0); D)if(b==0)m=l;n=2;
答案:D
評(píng)析:選項(xiàng)A為空語(yǔ)句,選項(xiàng)B是一個(gè)由逗號(hào)運(yùn)算符表達(dá)式形成的語(yǔ)句,選項(xiàng)c為一個(gè)條件語(yǔ)句,選項(xiàng)D有兩個(gè)分號(hào),是由兩個(gè)語(yǔ)句構(gòu)成,不能看成一條語(yǔ)句。
(17)已知i、j、k為int型變量,若從鍵盤(pán)輸入:1,2,3↙,使i的值為l、j的值為2、k的值為3,以下選項(xiàng)中正確的輸入語(yǔ)句是________。
A)scanf("%2d%2d%2 dtt,&i,&j,&k);
B)scanf("%d。 %d",&i,&j,&k);
C)scanf("%d,%d,%dfI,&i,&j,&k);
D)scanf("i=%d,j=%d,k=%d-t,&i,&j,&k);
答案:C
評(píng)析:如果在"格式控制"字符串中除了格式說(shuō)明以外還有其它字符,則在輸入數(shù)據(jù)時(shí)應(yīng)輸入與這些字符相同的字符。
(18)關(guān)于goto語(yǔ)句的使用,下面正確的是________。
A)goto 2; B)goto g; C)goto g:; D)goto 2;
2:exit(0); g:exit(O); g:exit(O); 2 exit(0);
答案:B
評(píng)析:在c中,goto語(yǔ)句后面的標(biāo)號(hào)的命名規(guī)則與c語(yǔ)言中標(biāo)識(shí)符的命名規(guī)則相同,在goto語(yǔ)句后面的標(biāo)號(hào)后不要加":"號(hào),在某一行上添加標(biāo)號(hào)時(shí),在標(biāo)號(hào)的后面要添加":"號(hào)。
(19)若有以下程序:
main()
{int k=2,i=2,m;
m=(k+=I*=k);
printf("%d,%d、n",m,i);
}
執(zhí)行后的輸出結(jié)果是__________。
A)8,6 B)8,3 C)6,4 D) 7,4
答案:C
評(píng)析:在賦值符"="之前加上其它運(yùn)算符,可以構(gòu)成復(fù)合的運(yùn)算符。此運(yùn)算為右結(jié)合性,即從右往左計(jì)算。I*=k即i=i*k=2*2=4,k=k+i=2+4=6,然后將k的值賦給m。
(20)以下函數(shù)的功能是:通過(guò)鍵盤(pán)輸入數(shù)據(jù),為數(shù)組中的所有元素賦值。
#define N 10
void arrin(int x[N])
{ int i=0;
while(i<N)scanf("%d",_________);
}
在下劃線處應(yīng)填入的是_________。
A)x+i B)&x[i+l] C)x+(i++) D)&x[++I]
答案:C
評(píng)析:在c中,對(duì)于一維數(shù)組而言,數(shù)組變量表示數(shù)組中首元素的的地址。當(dāng)用scanf函數(shù)向數(shù)組x的第i個(gè)元素中輸入整型數(shù)據(jù)時(shí),只要執(zhí)行scanf("%d"x+i):由于要循環(huán)輸入數(shù)組中和各個(gè)元素,必須要使其地址值不斷自增。故本題答案為c。
(21)已有定義:int x=3,y=4,z=5;,則表達(dá)式!(x+y)+z-l&&y+z/2的值是_________。
A)6 B)0 C)2 D)1
答案:D
評(píng)析:在本題中,運(yùn)算符的優(yōu)先級(jí)分別為:!>/>+,->&&即:!(3+4)+5-1&&4+5/2=0+5-1&&4+2=4&&6=l。
(22)以下選項(xiàng)中,與k=11++完全等價(jià)的表達(dá)式是__________。
A)k=n,n=n+1 B)n=n+1,l(=n C)l(=什n D)k+--n+1
答案:A
評(píng)析:n++是自增運(yùn)算,是先使用,然后再使n加1,分開(kāi)來(lái)寫(xiě)即為:k=n,n=n+l。
(23)以下程序運(yùn)行后,輸出結(jié)果為_(kāi)_________。
main()
{
int y=18,i=0J,a[8];
do
{a[I]=y%2;i++;y。y/2;
}while(y>。1);
for(j=i一1 0>=00一)
printf("%d"a[j]);
printf("\n");
}
A)10000 B)10010 C)00l 10 D)10100
答案:B
評(píng)析:分析程序不難得知該程序的功能實(shí)際上就是采用除余取整法實(shí)現(xiàn)將10進(jìn)制數(shù)據(jù)轉(zhuǎn)換成二進(jìn)制數(shù)。對(duì)于10進(jìn)制數(shù)18,其轉(zhuǎn)化為二進(jìn)制數(shù)后,結(jié)果為10010。
(24)以下程序的功能是:按順序讀入10名學(xué)生4門(mén)課程的成績(jī),計(jì)算出每位學(xué)生的平均分并輸出,程序如下:
main()
{int n,k;
float score,sum,ave;
sum=0.0;
for(n=1;n<=10;n++)
{for(k=l;k<=4;k++)
{seal3f("%f",&score);
sum+=score;
}
ave=sum/4.0;
printf("NO%d:%f\n",n,ave);
}
}
上述程序運(yùn)行后結(jié)果不正確,調(diào)試中發(fā)現(xiàn)有一條語(yǔ)句出現(xiàn)在程序的位置不正確。這條 語(yǔ)句是________。
A)sum=O.O; B)sum+=score;
C)ave=sum/4.0; D)printf("NO%d:%fua",n,ave);
答案:A
評(píng)析:題目中要求每位學(xué)生的平均分?jǐn)?shù),首先要求每位學(xué)生的總分,也就是程序中的Sum,所以sum應(yīng)在第一個(gè)for循環(huán)體內(nèi)賦初值,如果在循環(huán)體外賦初值就會(huì)得到所有學(xué)生的分?jǐn)?shù)總和,不合題意。
(25)下面程序執(zhí)行后的輸出結(jié)果是__________。
main()
{
charx=Oxddff;
printf("%d\n",x);
}
A)-35 B)-1 C)255 D)-8705
答案:B
評(píng)析:由于程序中對(duì)字符變量x賦值為0xddff,而字符型變量只占一個(gè)字節(jié),故實(shí)際存入c單元的為該16進(jìn)制的低字節(jié)部分,即ff。對(duì)該數(shù)按整型格式輸出,其結(jié)果為-1。
(26)有以下程序
main()
{ int a=15,b=21,m=O;
switch(a%3)
{ case O:m++;break;
case l:m++:
switch(b%2)
{ default:m++;
case O:m++;break;
}
}
printf("%d\n",m);
}
程序運(yùn)行后的輸出結(jié)果是_________。
A)l B)2 C)3 D)4
答案:A
評(píng)析:因?yàn)閍%3是個(gè)常數(shù),所以只執(zhí)行一次就跳出switch結(jié)構(gòu)。即只執(zhí)行m++,此時(shí)m為1。
(27)若有說(shuō)明:int n=2,*p=&n,*q=p;,則以下非法的賦值語(yǔ)句是_________。
A)p=q; B)*p=*q; C)n=*q; D)p*n;
答案:D
評(píng)析:指針變量不同于整型變量和其它類型的變量,它是用來(lái)存放地址(指針)的,不能將一個(gè)整型量(或任何其它非地址類型的數(shù)據(jù))賦給一個(gè)指針變量,這樣的賦值是不合法的。
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |