第 1 頁:選擇題 |
第 3 頁:程序填空題 |
第 4 頁:程序修改題 |
第 5 頁:程序設計題 |
第 6 頁:參考答案 |
參考答案:
一、選擇題
(1)D
【解析】除了堆排序算法的比較次數(shù)是O(nlog2n),其他的都是n(n-1)/2。
(2)B
【解析】棧是按“先進后出”的原則組織數(shù)據(jù)的,數(shù)據(jù)的插入和刪除都在棧頂進行操作。
(3)C
【解析】E-R圖轉(zhuǎn)換成關(guān)系模型數(shù)據(jù)則是把圖形分析出來的聯(lián)系反映到數(shù)據(jù)庫中,即設計出表,所以屬于邏輯設計階段。
(4)C
【解析】當有序線性表為順序存儲時才能用二分法查找?梢宰C明的是對于長度為n的有序線性表,在最壞情況下,二分法查找只需要比較log2n次,而順序查找需要比較n次。
(5)C
【解析】數(shù)據(jù)管理發(fā)展至今已經(jīng)歷了三個階段:人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。其中最后一個階段結(jié)構(gòu)簡單,使用方便邏輯性強物理性少,在各方面的表現(xiàn)都最好,一直占據(jù)數(shù)據(jù)庫領域的主導地位。所以選擇C。
(6)D
【解析】自然連接是一種特殊的等值連接,它要求兩個關(guān)系中進行比較的分量必須是相同的屬性組,并且在結(jié)果中把重復的屬性列去掉,所以根據(jù)T關(guān)系中的有序組可知R與S進行的是自然連接操作。
(7)C
【解析】學號是學生表S的主鍵,課號是課程表C的主鍵,所以選課表SC的關(guān)鍵字就應該是與前兩個表能夠直接聯(lián)系且能唯一定義的學號和課號,所以選擇C。
(8)B
【解析】在一個C語言程序中可以進行多種算法的實現(xiàn),對算法的個數(shù)沒有規(guī)定,所以B錯誤。
(9)A
【解析】A選項中115L表示115是長整型數(shù)據(jù),合法。B選項是八進制常量的表示方法,但是在八進制中不能含有數(shù)字8,所以B錯誤。C選項中e后面應該是整數(shù)不能是
小數(shù)1.5,所以C錯誤。D選項中八進制常量應該是數(shù)字“0”開始,而不是字母“o”開始。
(10)D
【解析】C語言中標識符由字母、下劃線、數(shù)字組成,且開頭必須是字母或下劃線。所以D選項中的連接符不合法。
(11)A【解析】B與D選項中取模運算符%的左右兩個操作數(shù)均應為整數(shù),所以B、D錯誤。C選項中不能將x+y的值賦給表達式y(tǒng)*5,所以C錯誤。
(12)A
(13)A
【解析】C語言的邏輯運算符比較特別,它的操作數(shù)沒有明確的數(shù)據(jù)類型,可以是任意合法的表達式,所以選擇A。
(14)A
(15)B
【解析】取模運算符“%”,二元運算符,具有左結(jié)合性,參與運算的量均為整型。選項B中的a變量是double實型,所以B不符合規(guī)定。
(16)D【解析】C語言中利用sizeof()函數(shù)判斷數(shù)據(jù)類型長度,在VC6.0平臺中,整型int占有4個字節(jié),double型數(shù)據(jù)占有8個字節(jié)。
(17)C
【解折】z=x++,Y++,++y;因為賦值運算符的優(yōu)先級高于逗號運算符的優(yōu)先級,所以可以將上式表示成(z=x++),(y++),(++y)。然后從左向右先計算表達式z=x++因為x++先使用后自增,所以z的值為1,x的值為2。再計算逗號表達式第二個表達式y(tǒng)++,此時y的值為2,最后計算第三個表達式++y,y的值為3。
(18)A
【解析】本題目中字符變量cl是字符‘A’的ASCII碼加上4,即69所對應的字符‘E’。字符變量c2是字符‘A’的ASCII碼加上3,即68所對應的字符‘D’。但是打印輸出時,cl以%C的格式輸出,所以是E,c2以%d的格式輸出,所以是68。
(19)A【解析】條件表達式:x=表達式1?表達式2:表達式3的含義是:先求解表達式1,若為非0(真),則求解表達式2,將表達式2的值賦給x。若表達式1的值為0(假),則求解表達式3,將表達式3的值賦給x。在本題中與表達式1:(x-y)等價的是(x-y<0||x-Y>0)。
(20)A
【解析】B選項中打開一個已存在的文件并進行了寫操作后,原有文件中的全部數(shù)據(jù)不一定被覆蓋,也可以對源文件進行追加操作等。C選項中在一個程序中當對文件進行了寫操作后,不用先關(guān)閉該文件然后再打開,才能讀到第1個數(shù)據(jù),可以用fseek()函數(shù)進行重新定位即可。D選項中,C語言中的文件可以進行隨機讀寫。
(21)C
【解析】根據(jù)二叉樹的基本性質(zhì)3:在任意一棵二叉樹中,度為0的葉子結(jié)點總是比度為2的結(jié)點多一個,所以本題中是5+1=6個。
(22)C
【解析】編譯軟件、操作系統(tǒng)、匯編程序都屬于系統(tǒng)軟件,只有C教務管理系統(tǒng)才是應用軟件。
(23)B
【解析】投影運算是指對于關(guān)系內(nèi)的域指定可引入新的運算。本題中s是在原有關(guān)系R的內(nèi)部進行的,是由目中原有的那些域的列所組成的關(guān)系。所以選擇B。
(24)B
【解析】C語言中注釋語句的注釋方法是:/*注釋內(nèi)容*/或//注釋一行。所以A與C錯誤,D選項中預編譯命令include前丟掉了“#”號。所以選擇B。
(25)A
【解析】C語言中標識符由字母、下劃線、數(shù)字組成,且開頭必須是字母或下劃線。另外,關(guān)鍵字不能作為標識符:B中以數(shù)字8開頭,所以錯誤。C與D中用的是關(guān)鍵字void與unsigned,所以錯誤。
(26)C
【解析】算術(shù)運算符+的優(yōu)先級高于-=,且-=的結(jié)合方向為自右向左,所以表達式x-=x+x可以表示成x=x-(x+x)=10-(10+10)=-10,選擇C。
(27)A
【解析】首先打印b=a+b=1+0=1的值1,此時已給b賦值為1。然后打印a=2*b=2*l=2的值2。所以結(jié)果是1,2。
(28)D
【解析】在輸人多個數(shù)據(jù)時,若格式控制串中無非格式字符,則認為所有輸入的字符均為有效字符。所以應按選項D的順序輸入數(shù)據(jù)。
(29)B
【解析】A選項中不能將變量Y賦給表達式,c選項中錯誤與A選項一樣,D選項中強制類型轉(zhuǎn)換表達式應寫威(double)x/10。
(30)D
【解析】scanf()的格式控制串可以使用其他非空白字符,如本題中的逗號,但在輸入時必須輸入這些字符,以保證匹配。所以逗號必須輸入。
(31)B
【解析】A選項語句中b變量還沒有定義不能直接用于給a變量賦值。C選項語句中*b、*e表示的是一個實型變量的地址,不能再將&b賦值給指針型變量c。D選項語句中a=0.0后面應該為逗號,不能是分號。
(32)B
【解析】B選項輸出的格式為%d,即為整型格式,所以輸出字符A的ASCII碼值65,而不是字符A。由于大寫字母比與其對應的小寫字母的ASCII碼值小32,所以A正確。字符A的ASCIl碼值就是65,所以以%c格式輸出可以輸出字符A,所以C正確。由于字符A的ASCII碼值比字符B的小1,所以D正確。
(33)C
【解析】由于a小于b,所以所有選項中的條糾都為假,C選項中實際執(zhí)行了a=b;b=c;兩個操作。而A、BD選項由于條件不成立,所以什么也沒有做,所以選擇C選項。
(34)B
【解析】執(zhí)行y--直到值為0,由于y--是先用再減,所以退出循環(huán)時,y的值為-1。
(35)A
(36)B
(37)D 【解析】int m=1,n=2,* p=&m,* q=&n,* r;即指針變量P指向m,指針變量q指向n,r=p;p=q;q=r;即通過指針變量r,將指針p和指針q的指向交換。因此最后輸出1,2,2,1。
(38)D 【解析】沒有A選項的引用形式。*與&放在一起作用抵消,所以B選項錯誤,最大只能引用到x[9]。*(pt+i)表示引用指針pt所指元素后的第i個元素,所以C選項錯誤,最大只能為*(pt+9)。因此D選項正確。
(39)B
【解析】統(tǒng)計1~9九個數(shù)中的奇數(shù)和,此題考察指向數(shù)組的指針。C語言規(guī)定數(shù)組名代表數(shù)組的首地址,也就是第一個元素的地址。因此*(t+i)代表數(shù)組的第i+1個元素。程序運行的結(jié)果是1+3+5+7+9=25。
(40)A
【解析】該程序首先在定義變量時,對二維數(shù)組a[][N]進行賦值操作;調(diào)用兩數(shù)fun,函數(shù)fun的功能是將二維數(shù)組中的a[0][0]、a[1][1]、a[2][2]和a[3][3]賦值給一維數(shù)組,最后將一維數(shù)組元素1,0,7,0,輸出。
相關(guān)推薦:
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |