一、選擇題(1)~(10)每小題2分,(11)-(50)每小題1分,共60分)
下列各題A)、B)、c)、D)四個(gè)選項(xiàng)中,只有一個(gè)選項(xiàng)是正確的,請(qǐng)將正確選項(xiàng)涂寫在答題卡相應(yīng)位置上,答在試卷上不得分。
(1)下面敘述正確的是________。
A)算法的執(zhí)行效率與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)無(wú)關(guān)
B)算法的空間復(fù)雜度是指算法程序中指令(或語(yǔ)句)的條數(shù)
C)算法的有窮性是指算法必須能在執(zhí)行有限個(gè)步驟之后終止
D)算法的時(shí)間復(fù)雜度是指執(zhí)行算法程序所需要的時(shí)間
答案:C
評(píng)析:算法的設(shè)計(jì)可以避開具體的計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言,但算法的實(shí)現(xiàn)必須借助程序設(shè)計(jì)語(yǔ)言中提供的數(shù)據(jù)類型及其算法。數(shù)據(jù)結(jié)構(gòu)和算法是計(jì)算機(jī)科學(xué)的兩個(gè)重要支柱。
(2)以下數(shù)據(jù)結(jié)構(gòu)屬于非線性數(shù)據(jù)結(jié)構(gòu)的________。
A)隊(duì)列 B)線性表 C)二叉樹 D)棧
答案:C
評(píng)析:線性表、棧和隊(duì)列等數(shù)據(jù)結(jié)構(gòu)所表達(dá)和處理的數(shù)據(jù)以線性結(jié)構(gòu)為組織形式。棧又稱后進(jìn)先出表(Last In First Out);隊(duì)列又稱先進(jìn)先出表(First:In First Out)。二叉樹的數(shù)據(jù)結(jié)構(gòu)是樹型結(jié)構(gòu),結(jié)構(gòu)中數(shù)據(jù)元素之間存在著一對(duì)多的關(guān)系,因此它是一種非線性數(shù)據(jù)結(jié)構(gòu)。
(3)在一棵二叉樹上第8層的結(jié)點(diǎn)數(shù)最多是________。
A)8 B)16 C)128 D)256
答案:C
評(píng)析:根據(jù)二叉樹的性質(zhì):二叉樹第i(i≥1)層上至多有2i-1個(gè)結(jié)點(diǎn)。得到第8層的結(jié)點(diǎn)數(shù)最多是128。
(4)下面描述中,不符合結(jié)構(gòu)化程序設(shè)計(jì)風(fēng)格的是________。
A)使用順序、選擇和重復(fù)(循環(huán))三種基本控制結(jié)構(gòu)表示程序的控制邏輯
B)自頂向下
C)注重提高程序的執(zhí)行效率
D)限制使用goto語(yǔ)句
答案:C
評(píng)析:結(jié)構(gòu)化程序設(shè)計(jì)方法的四條原則是:1.自項(xiàng)向下;2.逐步求精;3.模塊化;4.限制使用goto語(yǔ)句。
(5)下面概念中,不屬于面向?qū)ο蠓椒ǖ氖莀_______。
A)對(duì)象、消息 B)繼承、多態(tài) c)類、封裝 D)過(guò)程調(diào)用
答案:D
評(píng)析:面向?qū)ο蠓椒ㄊ且环N運(yùn)用對(duì)象、類、封裝、繼承、多態(tài)和消息等概念來(lái)構(gòu)造、測(cè)試、重構(gòu)軟件的方法。面向?qū)ο蠓椒◤膶?duì)象出發(fā),發(fā)展出對(duì)象、類、消息、繼承等概念。
(6)在結(jié)構(gòu)化方法中,用數(shù)據(jù)流程圖(DFD)作為描述工具的軟件開發(fā)階段是________。
A)可行性分析 B)需求分析 c)詳細(xì)設(shè)計(jì) D)程序編碼
答案:B
評(píng)析:軟件開發(fā)階段包括需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和測(cè)試五個(gè)階段。其中需求分析階段常用的工具是數(shù)據(jù)流圖和數(shù)據(jù)字典。
(7)軟件生命周期中所花費(fèi)用最多的階段是________。
A)詳細(xì)設(shè)計(jì) B)軟件編碼 c)軟件測(cè)試 D)軟件維護(hù)
答案:D
評(píng)析:軟件生命周期分為軟件定義、軟件開發(fā)及軟件運(yùn)行維護(hù)3個(gè)階段。本題中詳細(xì)設(shè)計(jì)、軟件編碼和軟件測(cè)試都屬于軟件開發(fā)階段;維護(hù)是軟件生命周期的最后一個(gè)階段。
(8)數(shù)據(jù)庫(kù)系統(tǒng)的核心是________。
A)數(shù)據(jù)模型 B)DBMS C)軟件工具 D)數(shù)據(jù)庫(kù)
答案:B
評(píng)析:數(shù)據(jù)庫(kù)管理系統(tǒng)DBMS是數(shù)據(jù)庫(kù)系統(tǒng)的核心。DBMS是負(fù)責(zé)數(shù)據(jù)庫(kù)的建立、使用和維護(hù)的軟件。DBMS建立在 操作系統(tǒng) 之上,實(shí)施對(duì)數(shù)據(jù)庫(kù)的統(tǒng)一管理和控制。用戶使用的各種數(shù)據(jù)庫(kù)命令以及應(yīng)用程序的執(zhí)行,最終都必須通過(guò)DBMS。
(9)下列敘述中正確的________。
A)數(shù)據(jù)處理是將信息轉(zhuǎn)化為數(shù)據(jù)的過(guò)程
B)數(shù)據(jù)庫(kù)設(shè)計(jì)是指設(shè)計(jì)數(shù)據(jù)庫(kù)管理系統(tǒng)
c)如果一個(gè)關(guān)系中的屬性或?qū)傩越M并非該關(guān)系的關(guān)鍵字,但它是另一個(gè)關(guān)系的關(guān)鍵字,則稱其為本關(guān)系的外關(guān)鍵字
D)關(guān)系中的每列稱為元組,一個(gè)元組就是一個(gè)字段
答案:C
評(píng)析:數(shù)據(jù)處理是指將數(shù)據(jù)轉(zhuǎn)換成信息的過(guò)程,故選項(xiàng)A敘述錯(cuò)誤;設(shè)計(jì)數(shù)據(jù)庫(kù)的目的實(shí)質(zhì)上是設(shè)計(jì)出滿足實(shí)際應(yīng)用需求的實(shí)際關(guān)系模型;關(guān)系中的行稱為元組,對(duì)應(yīng)存儲(chǔ)文件中的記錄,關(guān)系中的列稱為屬性,對(duì)應(yīng)存儲(chǔ)文件中的字段,故D選項(xiàng)敘述錯(cuò)誤。
(10)下列模式中,________是用戶模式。
A)內(nèi)模式 B)外模式 C)概念模式 D)邏輯模式
答案:B
評(píng)析:數(shù)據(jù)庫(kù)管理系統(tǒng)的三級(jí)模式結(jié)構(gòu)由外模式、模式和內(nèi)模式組成。外模式,指數(shù)據(jù)庫(kù)用戶所看到的數(shù)據(jù)結(jié)構(gòu),是用戶看到的數(shù)據(jù)視圖。模式,是數(shù)據(jù)庫(kù)中對(duì)全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特性的描述,是所有用戶所見(jiàn)到的數(shù)據(jù)視圖的總和。內(nèi)模式是指數(shù)據(jù)在數(shù)據(jù)庫(kù)系統(tǒng)內(nèi)的存儲(chǔ)介質(zhì)上的表示,即對(duì)數(shù)據(jù)的物理結(jié)構(gòu)和存取方式的描述。
(11)C語(yǔ)言規(guī)定,程序中各函數(shù)之間________。
A)既允許直接遞歸調(diào)用也允許間接遞歸調(diào)用
B)不允許直接遞歸調(diào)用也不允許間接遞歸調(diào)用
C)允許直接遞歸調(diào)用不允許間接遞歸調(diào)用
D)不允許直接遞歸調(diào)用允許間接遞歸調(diào)用
答案:A
評(píng)析:c語(yǔ)言規(guī)定,程序中各函數(shù)之間既允許直接遞歸調(diào)用也允許間接遞歸調(diào)用。
(12)在使用程序流程圖來(lái)表示算法時(shí),菱形用來(lái)表示________。
A)輸入與輸出B)子程序 C)判斷分支 D)循環(huán)邊界
答案:C
評(píng)析:美國(guó)國(guó)家標(biāo)準(zhǔn)化協(xié)會(huì)ANSI規(guī)定了一些常用的流程圖符號(hào),其中橢圓框表示起止框,方框表示處理框,菱形框表示判斷分支,箭頭表示流程線。
(13)C語(yǔ)言中下列敘述正確的是________。
A)不能使用do…while語(yǔ)句構(gòu)成的循環(huán)
B)do…while語(yǔ)句構(gòu)成的循環(huán),必須用break語(yǔ)句才能退出
C)do…while語(yǔ)句構(gòu)成的循環(huán),當(dāng)while語(yǔ)句中的表達(dá)式值為非零時(shí)結(jié)束循環(huán)
D)do…while語(yǔ)句構(gòu)成的循環(huán),當(dāng)while語(yǔ)句中的表達(dá)式值為零時(shí)結(jié)束循環(huán)
答案:D
評(píng)析:選項(xiàng)A是錯(cuò)誤的,c語(yǔ)言支持d0…while語(yǔ)句;選項(xiàng)B是錯(cuò)誤的,do...while構(gòu)成的循環(huán),當(dāng)while語(yǔ)句中的表達(dá)式值為零時(shí)結(jié)束循環(huán),而不是非零;選項(xiàng)c也是錯(cuò)誤的。
(14)以下選項(xiàng)中屬于C語(yǔ)言的數(shù)據(jù)類型是________。
A)復(fù)數(shù)型 B)邏輯型 C)雙精度型 D)集合型
答案:C
評(píng)析:c語(yǔ)言的數(shù)據(jù)類型分為基本類型、構(gòu)造類型、指針類型、空類型四大類。其中,基本類型分為整型、字符型、實(shí)型三類。實(shí)型又稱浮點(diǎn)型,包括單精度型和雙精度型兩種類型。
(15)在C語(yǔ)言中,不正確的int類型的常數(shù)是________。
A)32768 B)0 C)037 D)0xAF
答案:A
評(píng)析:c語(yǔ)言中int類型的常數(shù)的范圍是:-32768~32767。c整常數(shù)可用三種形式表示:十進(jìn)制整數(shù),八進(jìn)制整數(shù),十六進(jìn)制整數(shù)。選項(xiàng)A超出范圍,不正確。
(16)以下程序輸出的結(jié)果是________。
main()
{
int a=65535;
printf("%d%u",a,a);
}
A)-1 -1 B)65535 65535 C)-1 65535 D)65535 -l
答案:C
評(píng)析:printf函數(shù)中不同類型的數(shù)據(jù)用不同的格式字符,其中%d是按整型數(shù)據(jù)的實(shí)際長(zhǎng)度輸出十進(jìn)制整數(shù)。變量a=65535以%d格式輸出時(shí)溢出輸出值為該數(shù)的補(bǔ)碼值,即.1;%u用來(lái)輸出unsigned型數(shù)據(jù),無(wú)符號(hào)整型變量的數(shù)值范圍為0~65535,所以變量a=65535以%u格式輸出的值為65535。
(17)下列描述中不正確的是________。
A)字符型數(shù)組中可以存放字符串
B)可以對(duì)字符型數(shù)組進(jìn)行整體輸入、輸出
c)可以對(duì)整型數(shù)組進(jìn)行整體輸入、輸出
D)不能在賦值語(yǔ)句中通過(guò)賦值運(yùn)算符"="對(duì)字符型數(shù)組進(jìn)行整體賦值
答案:C
評(píng)析:c語(yǔ)言規(guī)定只能逐個(gè)引用數(shù)組元素而不能一次引用整個(gè)數(shù)組。字符數(shù)組的輸入、輸出可以將整個(gè)字符串一次輸入或輸出。所以,選項(xiàng)c的說(shuō)法是不正確的。
(18)以下程序的輸出結(jié)果是________。
main()
{ int i,x[3][3]={9,8,7,6,5,4,3,2,1},*p=&x[1][1];
for(I=0;i<4;i+=2)printf("%d",p[I]);
}
A)5 2 B)5 l C)5 3 D)9 7
答案:C
評(píng)析:題中*p=&x[1][1];是指將數(shù)組x的數(shù)組元素x[1][1]的地址賦值給指針變量p,使p指向x[11[1]這個(gè)數(shù)組元素,那么p[0]即為指針變量p當(dāng)前所指向的數(shù)組元素x[1][1]的值。
(19)下列可用于C語(yǔ)言標(biāo)識(shí)符的一組是________。
A)voidWORDdefine B)a 6$sysFor
C)2a sizeof abc D)Int define sizeof
答案:D
評(píng)析:c語(yǔ)言規(guī)定標(biāo)識(shí)符只能由字母、數(shù)字和下劃線三種字符組成,且第一個(gè)字符必須為字母或下劃線。注意,大寫字母和小寫字母被認(rèn)為是兩個(gè)不同的字符。C語(yǔ)言中的關(guān)鍵字不能用作標(biāo)識(shí)符。
(20)以下程序的運(yùn)行結(jié)果是__________。
#include "stdio.H"
main()
{
int a[]={1,2,3,4,5,6,7,8,9,10,1 1,12};
int*p=a+5,*q=NULL;
*q=*(p十5);
printf("%d ?。、n",'p,*q);
}
A)運(yùn)行后報(bào)錯(cuò) B)6 6
C)6 12 D)5 5
答案:A
評(píng)析:題目中沒(méi)有給q分配存儲(chǔ)單元,只是簡(jiǎn)單的給它賦了一個(gè)值,所以程序的運(yùn)行結(jié)果是6 ll NULL pointer assignment,也就是運(yùn)行后報(bào)錯(cuò)。
(21)以下說(shuō)法中正確的是_________。
A)C語(yǔ)言程序總是從第一個(gè)函數(shù)開始執(zhí)行
B)在C語(yǔ)言程序中,要調(diào)用函數(shù)必須在main()函數(shù)中定義
c)c語(yǔ)言程序總是從main()函數(shù)開始執(zhí)行
D)c語(yǔ)言程序中的main()函數(shù)必須放在程序的開始部分
答案:C
評(píng)析:c語(yǔ)言的程序是由主函數(shù)main()開始運(yùn)行,由主函數(shù)來(lái)調(diào)用其他函數(shù),函數(shù)必須是并列的,定義后使用,不能在一個(gè)函數(shù)中定義其他函數(shù),main()函數(shù)不一定要放在程序的開始部分,故選c。
(22)有如下程序
float fun(int x,int y){return(x+y);}
main()
{
int a=2,b=5,c=8;
printf("%3.0f\n",fun((int)fun(a+c,b),(a-c)));
}
程序運(yùn)行后的輸出結(jié)果為__________。
A)編譯出錯(cuò) B)9 C)21 D)9.0
答案:B
評(píng)析:本題中先執(zhí)行(int)fun(a+c,b)函數(shù)的調(diào)用,值為整型數(shù)值15;然后再執(zhí)行fun(15,(a-e))函數(shù)調(diào)用,值為單精度實(shí)型數(shù)值9.000000。輸出為%3.0f,即有效數(shù)長(zhǎng)度為3,沒(méi)有小數(shù)位數(shù),所以最后結(jié)果為9。
(23)能正確表示a和b同時(shí)為正或同時(shí)為負(fù)的邏輯表達(dá)式是_________。
A)(a>=‖b>=0)&&(a=0&&b>=O)&&(a<0&&b C)(a+b>0)&&(a+b<=0) D)a*b>0
答案:D
評(píng)析:選項(xiàng)A中,表達(dá)式表示的是a,b為異號(hào);選項(xiàng)B中,表達(dá)式表示的是0,因?yàn)闆](méi)有滿足條件的值;選項(xiàng)c中,表達(dá)式表示的是0,因?yàn)闆](méi)有滿足條件的值;選項(xiàng)D表示的是a和b為同號(hào)。
(24)若己定義:int a[9],*p=a;并在以后的語(yǔ)句中未改變p的值,不能表示a[l]地址的
表達(dá)式是__________。
A)p+l B)a+l C)a++ D)++p
答案:C
評(píng)析:數(shù)組名是指針常量,是個(gè)固定的指針,不能對(duì)數(shù)組名賦予一個(gè)新的地址值,也不能使這個(gè)指針常量"移動(dòng)",指向數(shù)組的其它元素。
(25)以下程序的輸出結(jié)果是__________。
main()
{ int a==-1,b=1,k;
if((++a<0)&&!(b--<=0))
printf("%d?。\n",a,b);
else
printf("%d?。\n",b,a);
}
A)-1 l B)0 l
C)1 0 D)0 0
答案:C
評(píng)析:邏輯運(yùn)算符的優(yōu)先次序如下:!(非)→&&(與)→‖(或),但本題需特別、注意的是短路的概念。
下列各題A)、B)、c)、D)四個(gè)選項(xiàng)中,只有一個(gè)選項(xiàng)是正確的,請(qǐng)將正確選項(xiàng)涂寫在答題卡相應(yīng)位置上,答在試卷上不得分。
(1)下面敘述正確的是________。
A)算法的執(zhí)行效率與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)無(wú)關(guān)
B)算法的空間復(fù)雜度是指算法程序中指令(或語(yǔ)句)的條數(shù)
C)算法的有窮性是指算法必須能在執(zhí)行有限個(gè)步驟之后終止
D)算法的時(shí)間復(fù)雜度是指執(zhí)行算法程序所需要的時(shí)間
答案:C
評(píng)析:算法的設(shè)計(jì)可以避開具體的計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言,但算法的實(shí)現(xiàn)必須借助程序設(shè)計(jì)語(yǔ)言中提供的數(shù)據(jù)類型及其算法。數(shù)據(jù)結(jié)構(gòu)和算法是計(jì)算機(jī)科學(xué)的兩個(gè)重要支柱。
(2)以下數(shù)據(jù)結(jié)構(gòu)屬于非線性數(shù)據(jù)結(jié)構(gòu)的________。
A)隊(duì)列 B)線性表 C)二叉樹 D)棧
答案:C
評(píng)析:線性表、棧和隊(duì)列等數(shù)據(jù)結(jié)構(gòu)所表達(dá)和處理的數(shù)據(jù)以線性結(jié)構(gòu)為組織形式。棧又稱后進(jìn)先出表(Last In First Out);隊(duì)列又稱先進(jìn)先出表(First:In First Out)。二叉樹的數(shù)據(jù)結(jié)構(gòu)是樹型結(jié)構(gòu),結(jié)構(gòu)中數(shù)據(jù)元素之間存在著一對(duì)多的關(guān)系,因此它是一種非線性數(shù)據(jù)結(jié)構(gòu)。
(3)在一棵二叉樹上第8層的結(jié)點(diǎn)數(shù)最多是________。
A)8 B)16 C)128 D)256
答案:C
評(píng)析:根據(jù)二叉樹的性質(zhì):二叉樹第i(i≥1)層上至多有2i-1個(gè)結(jié)點(diǎn)。得到第8層的結(jié)點(diǎn)數(shù)最多是128。
(4)下面描述中,不符合結(jié)構(gòu)化程序設(shè)計(jì)風(fēng)格的是________。
A)使用順序、選擇和重復(fù)(循環(huán))三種基本控制結(jié)構(gòu)表示程序的控制邏輯
B)自頂向下
C)注重提高程序的執(zhí)行效率
D)限制使用goto語(yǔ)句
答案:C
評(píng)析:結(jié)構(gòu)化程序設(shè)計(jì)方法的四條原則是:1.自項(xiàng)向下;2.逐步求精;3.模塊化;4.限制使用goto語(yǔ)句。
(5)下面概念中,不屬于面向?qū)ο蠓椒ǖ氖莀_______。
A)對(duì)象、消息 B)繼承、多態(tài) c)類、封裝 D)過(guò)程調(diào)用
答案:D
評(píng)析:面向?qū)ο蠓椒ㄊ且环N運(yùn)用對(duì)象、類、封裝、繼承、多態(tài)和消息等概念來(lái)構(gòu)造、測(cè)試、重構(gòu)軟件的方法。面向?qū)ο蠓椒◤膶?duì)象出發(fā),發(fā)展出對(duì)象、類、消息、繼承等概念。
(6)在結(jié)構(gòu)化方法中,用數(shù)據(jù)流程圖(DFD)作為描述工具的軟件開發(fā)階段是________。
A)可行性分析 B)需求分析 c)詳細(xì)設(shè)計(jì) D)程序編碼
答案:B
評(píng)析:軟件開發(fā)階段包括需求分析、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、編碼和測(cè)試五個(gè)階段。其中需求分析階段常用的工具是數(shù)據(jù)流圖和數(shù)據(jù)字典。
(7)軟件生命周期中所花費(fèi)用最多的階段是________。
A)詳細(xì)設(shè)計(jì) B)軟件編碼 c)軟件測(cè)試 D)軟件維護(hù)
答案:D
評(píng)析:軟件生命周期分為軟件定義、軟件開發(fā)及軟件運(yùn)行維護(hù)3個(gè)階段。本題中詳細(xì)設(shè)計(jì)、軟件編碼和軟件測(cè)試都屬于軟件開發(fā)階段;維護(hù)是軟件生命周期的最后一個(gè)階段。
(8)數(shù)據(jù)庫(kù)系統(tǒng)的核心是________。
A)數(shù)據(jù)模型 B)DBMS C)軟件工具 D)數(shù)據(jù)庫(kù)
答案:B
評(píng)析:數(shù)據(jù)庫(kù)管理系統(tǒng)DBMS是數(shù)據(jù)庫(kù)系統(tǒng)的核心。DBMS是負(fù)責(zé)數(shù)據(jù)庫(kù)的建立、使用和維護(hù)的軟件。DBMS建立在 操作系統(tǒng) 之上,實(shí)施對(duì)數(shù)據(jù)庫(kù)的統(tǒng)一管理和控制。用戶使用的各種數(shù)據(jù)庫(kù)命令以及應(yīng)用程序的執(zhí)行,最終都必須通過(guò)DBMS。
(9)下列敘述中正確的________。
A)數(shù)據(jù)處理是將信息轉(zhuǎn)化為數(shù)據(jù)的過(guò)程
B)數(shù)據(jù)庫(kù)設(shè)計(jì)是指設(shè)計(jì)數(shù)據(jù)庫(kù)管理系統(tǒng)
c)如果一個(gè)關(guān)系中的屬性或?qū)傩越M并非該關(guān)系的關(guān)鍵字,但它是另一個(gè)關(guān)系的關(guān)鍵字,則稱其為本關(guān)系的外關(guān)鍵字
D)關(guān)系中的每列稱為元組,一個(gè)元組就是一個(gè)字段
答案:C
評(píng)析:數(shù)據(jù)處理是指將數(shù)據(jù)轉(zhuǎn)換成信息的過(guò)程,故選項(xiàng)A敘述錯(cuò)誤;設(shè)計(jì)數(shù)據(jù)庫(kù)的目的實(shí)質(zhì)上是設(shè)計(jì)出滿足實(shí)際應(yīng)用需求的實(shí)際關(guān)系模型;關(guān)系中的行稱為元組,對(duì)應(yīng)存儲(chǔ)文件中的記錄,關(guān)系中的列稱為屬性,對(duì)應(yīng)存儲(chǔ)文件中的字段,故D選項(xiàng)敘述錯(cuò)誤。
(10)下列模式中,________是用戶模式。
A)內(nèi)模式 B)外模式 C)概念模式 D)邏輯模式
答案:B
評(píng)析:數(shù)據(jù)庫(kù)管理系統(tǒng)的三級(jí)模式結(jié)構(gòu)由外模式、模式和內(nèi)模式組成。外模式,指數(shù)據(jù)庫(kù)用戶所看到的數(shù)據(jù)結(jié)構(gòu),是用戶看到的數(shù)據(jù)視圖。模式,是數(shù)據(jù)庫(kù)中對(duì)全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特性的描述,是所有用戶所見(jiàn)到的數(shù)據(jù)視圖的總和。內(nèi)模式是指數(shù)據(jù)在數(shù)據(jù)庫(kù)系統(tǒng)內(nèi)的存儲(chǔ)介質(zhì)上的表示,即對(duì)數(shù)據(jù)的物理結(jié)構(gòu)和存取方式的描述。
(11)C語(yǔ)言規(guī)定,程序中各函數(shù)之間________。
A)既允許直接遞歸調(diào)用也允許間接遞歸調(diào)用
B)不允許直接遞歸調(diào)用也不允許間接遞歸調(diào)用
C)允許直接遞歸調(diào)用不允許間接遞歸調(diào)用
D)不允許直接遞歸調(diào)用允許間接遞歸調(diào)用
答案:A
評(píng)析:c語(yǔ)言規(guī)定,程序中各函數(shù)之間既允許直接遞歸調(diào)用也允許間接遞歸調(diào)用。
(12)在使用程序流程圖來(lái)表示算法時(shí),菱形用來(lái)表示________。
A)輸入與輸出B)子程序 C)判斷分支 D)循環(huán)邊界
答案:C
評(píng)析:美國(guó)國(guó)家標(biāo)準(zhǔn)化協(xié)會(huì)ANSI規(guī)定了一些常用的流程圖符號(hào),其中橢圓框表示起止框,方框表示處理框,菱形框表示判斷分支,箭頭表示流程線。
(13)C語(yǔ)言中下列敘述正確的是________。
A)不能使用do…while語(yǔ)句構(gòu)成的循環(huán)
B)do…while語(yǔ)句構(gòu)成的循環(huán),必須用break語(yǔ)句才能退出
C)do…while語(yǔ)句構(gòu)成的循環(huán),當(dāng)while語(yǔ)句中的表達(dá)式值為非零時(shí)結(jié)束循環(huán)
D)do…while語(yǔ)句構(gòu)成的循環(huán),當(dāng)while語(yǔ)句中的表達(dá)式值為零時(shí)結(jié)束循環(huán)
答案:D
評(píng)析:選項(xiàng)A是錯(cuò)誤的,c語(yǔ)言支持d0…while語(yǔ)句;選項(xiàng)B是錯(cuò)誤的,do...while構(gòu)成的循環(huán),當(dāng)while語(yǔ)句中的表達(dá)式值為零時(shí)結(jié)束循環(huán),而不是非零;選項(xiàng)c也是錯(cuò)誤的。
(14)以下選項(xiàng)中屬于C語(yǔ)言的數(shù)據(jù)類型是________。
A)復(fù)數(shù)型 B)邏輯型 C)雙精度型 D)集合型
答案:C
評(píng)析:c語(yǔ)言的數(shù)據(jù)類型分為基本類型、構(gòu)造類型、指針類型、空類型四大類。其中,基本類型分為整型、字符型、實(shí)型三類。實(shí)型又稱浮點(diǎn)型,包括單精度型和雙精度型兩種類型。
(15)在C語(yǔ)言中,不正確的int類型的常數(shù)是________。
A)32768 B)0 C)037 D)0xAF
答案:A
評(píng)析:c語(yǔ)言中int類型的常數(shù)的范圍是:-32768~32767。c整常數(shù)可用三種形式表示:十進(jìn)制整數(shù),八進(jìn)制整數(shù),十六進(jìn)制整數(shù)。選項(xiàng)A超出范圍,不正確。
(16)以下程序輸出的結(jié)果是________。
main()
{
int a=65535;
printf("%d%u",a,a);
}
A)-1 -1 B)65535 65535 C)-1 65535 D)65535 -l
答案:C
評(píng)析:printf函數(shù)中不同類型的數(shù)據(jù)用不同的格式字符,其中%d是按整型數(shù)據(jù)的實(shí)際長(zhǎng)度輸出十進(jìn)制整數(shù)。變量a=65535以%d格式輸出時(shí)溢出輸出值為該數(shù)的補(bǔ)碼值,即.1;%u用來(lái)輸出unsigned型數(shù)據(jù),無(wú)符號(hào)整型變量的數(shù)值范圍為0~65535,所以變量a=65535以%u格式輸出的值為65535。
(17)下列描述中不正確的是________。
A)字符型數(shù)組中可以存放字符串
B)可以對(duì)字符型數(shù)組進(jìn)行整體輸入、輸出
c)可以對(duì)整型數(shù)組進(jìn)行整體輸入、輸出
D)不能在賦值語(yǔ)句中通過(guò)賦值運(yùn)算符"="對(duì)字符型數(shù)組進(jìn)行整體賦值
答案:C
評(píng)析:c語(yǔ)言規(guī)定只能逐個(gè)引用數(shù)組元素而不能一次引用整個(gè)數(shù)組。字符數(shù)組的輸入、輸出可以將整個(gè)字符串一次輸入或輸出。所以,選項(xiàng)c的說(shuō)法是不正確的。
(18)以下程序的輸出結(jié)果是________。
main()
{ int i,x[3][3]={9,8,7,6,5,4,3,2,1},*p=&x[1][1];
for(I=0;i<4;i+=2)printf("%d",p[I]);
}
A)5 2 B)5 l C)5 3 D)9 7
答案:C
評(píng)析:題中*p=&x[1][1];是指將數(shù)組x的數(shù)組元素x[1][1]的地址賦值給指針變量p,使p指向x[11[1]這個(gè)數(shù)組元素,那么p[0]即為指針變量p當(dāng)前所指向的數(shù)組元素x[1][1]的值。
(19)下列可用于C語(yǔ)言標(biāo)識(shí)符的一組是________。
A)voidWORDdefine B)a 6$sysFor
C)2a sizeof abc D)Int define sizeof
答案:D
評(píng)析:c語(yǔ)言規(guī)定標(biāo)識(shí)符只能由字母、數(shù)字和下劃線三種字符組成,且第一個(gè)字符必須為字母或下劃線。注意,大寫字母和小寫字母被認(rèn)為是兩個(gè)不同的字符。C語(yǔ)言中的關(guān)鍵字不能用作標(biāo)識(shí)符。
(20)以下程序的運(yùn)行結(jié)果是__________。
#include "stdio.H"
main()
{
int a[]={1,2,3,4,5,6,7,8,9,10,1 1,12};
int*p=a+5,*q=NULL;
*q=*(p十5);
printf("%d ?。、n",'p,*q);
}
A)運(yùn)行后報(bào)錯(cuò) B)6 6
C)6 12 D)5 5
答案:A
評(píng)析:題目中沒(méi)有給q分配存儲(chǔ)單元,只是簡(jiǎn)單的給它賦了一個(gè)值,所以程序的運(yùn)行結(jié)果是6 ll NULL pointer assignment,也就是運(yùn)行后報(bào)錯(cuò)。
(21)以下說(shuō)法中正確的是_________。
A)C語(yǔ)言程序總是從第一個(gè)函數(shù)開始執(zhí)行
B)在C語(yǔ)言程序中,要調(diào)用函數(shù)必須在main()函數(shù)中定義
c)c語(yǔ)言程序總是從main()函數(shù)開始執(zhí)行
D)c語(yǔ)言程序中的main()函數(shù)必須放在程序的開始部分
答案:C
評(píng)析:c語(yǔ)言的程序是由主函數(shù)main()開始運(yùn)行,由主函數(shù)來(lái)調(diào)用其他函數(shù),函數(shù)必須是并列的,定義后使用,不能在一個(gè)函數(shù)中定義其他函數(shù),main()函數(shù)不一定要放在程序的開始部分,故選c。
(22)有如下程序
float fun(int x,int y){return(x+y);}
main()
{
int a=2,b=5,c=8;
printf("%3.0f\n",fun((int)fun(a+c,b),(a-c)));
}
程序運(yùn)行后的輸出結(jié)果為__________。
A)編譯出錯(cuò) B)9 C)21 D)9.0
答案:B
評(píng)析:本題中先執(zhí)行(int)fun(a+c,b)函數(shù)的調(diào)用,值為整型數(shù)值15;然后再執(zhí)行fun(15,(a-e))函數(shù)調(diào)用,值為單精度實(shí)型數(shù)值9.000000。輸出為%3.0f,即有效數(shù)長(zhǎng)度為3,沒(méi)有小數(shù)位數(shù),所以最后結(jié)果為9。
(23)能正確表示a和b同時(shí)為正或同時(shí)為負(fù)的邏輯表達(dá)式是_________。
A)(a>=‖b>=0)&&(a
答案:D
評(píng)析:選項(xiàng)A中,表達(dá)式表示的是a,b為異號(hào);選項(xiàng)B中,表達(dá)式表示的是0,因?yàn)闆](méi)有滿足條件的值;選項(xiàng)c中,表達(dá)式表示的是0,因?yàn)闆](méi)有滿足條件的值;選項(xiàng)D表示的是a和b為同號(hào)。
(24)若己定義:int a[9],*p=a;并在以后的語(yǔ)句中未改變p的值,不能表示a[l]地址的
表達(dá)式是__________。
A)p+l B)a+l C)a++ D)++p
答案:C
評(píng)析:數(shù)組名是指針常量,是個(gè)固定的指針,不能對(duì)數(shù)組名賦予一個(gè)新的地址值,也不能使這個(gè)指針常量"移動(dòng)",指向數(shù)組的其它元素。
(25)以下程序的輸出結(jié)果是__________。
main()
{ int a==-1,b=1,k;
if((++a<0)&&!(b--<=0))
printf("%d?。\n",a,b);
else
printf("%d?。\n",b,a);
}
A)-1 l B)0 l
C)1 0 D)0 0
答案:C
評(píng)析:邏輯運(yùn)算符的優(yōu)先次序如下:!(非)→&&(與)→‖(或),但本題需特別、注意的是短路的概念。