事業(yè)單位計算機復(fù)習指南(詳細解析)_第1頁
事業(yè)單位計算機復(fù)習指南(詳細解析)_第2頁
事業(yè)單位計算機復(fù)習指南(詳細解析)_第3頁
事業(yè)單位計算機復(fù)習指南(詳細解析)_第4頁
事業(yè)單位計算機復(fù)習指南(詳細解析)_第5頁
已閱讀5頁,還剩84頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

事業(yè)單位計算機復(fù)習指南

1)下面敘述正確的是。

A)算法的執(zhí)行效率與數(shù)據(jù)的存儲結(jié)構(gòu)無關(guān)

B)算法的空間復(fù)雜度是指算法程序中指令(或語句)的條數(shù)

0算法的布?窮性是指算法必須能在執(zhí)行有限個步驟之后終止

D)算法的時間復(fù)雜度是指執(zhí)行算法程序所需要的時間

(DC

知識點:算法的基本概念;算法笑雜度的概念和意義(時間復(fù)雜度與空間復(fù)雜度)

評析:算法的設(shè)計可以避開具體的計算機程序設(shè)計語言,但算法的實現(xiàn)必須借助程序設(shè)計語言中提

供的數(shù)據(jù)類型及其算法。數(shù)據(jù)結(jié)構(gòu)和算法是計算機科學的兩個重要支柱。它們是一個不可分割的整

體。算法在運行過程中需輔助存儲空間的大小稱為算法的空間復(fù)雜度。算法的有窮性是指一個算法

必須在執(zhí)行有限的步躲以后結(jié)束。算法的時間復(fù)雜度是指執(zhí)行算法所需要的計算工作量,即算法執(zhí)

行過程中所需要的基本運算次數(shù)。

(2)以下數(shù)據(jù)結(jié)構(gòu)屬于非線性數(shù)據(jù)結(jié)構(gòu)的是。

A)隊列B)線性表C)二叉樹D)棧

(2)C

知識點:棧和隊列的定義;棧和隊列的順序存儲結(jié)構(gòu)及其基本運算

評析:線性表、棧和隊列等數(shù)據(jù)結(jié)構(gòu)所表達和處理的數(shù)據(jù)以線性結(jié)構(gòu)為組織形式。棧是一種特殊的

線性表,這種線性表只能在固定的一端進行插入和刪除操作,允許插入和刪除的一端稱為棧頂,另

一端稱為棧底。?個新元素只能從棧頂一端進入,刪除時,只能刪除棧頂?shù)脑?,即剛剛被插入?/p>

元素。所以棧又稱后進先出表(LastInFirstOut)。隊列可看作是插入在一端進行,刪除在另一端

進行的線性表,允許插入的一端稱為隊尾,允許刪除的一端稱為隊頭。在隊列中,只能刪除隊頭元

素,隊列的最后一個元素一定是最新入隊的元素。因此隊列又稱先進先出表(FirstInFirstOut)。

:叉樹的數(shù)據(jù)結(jié)構(gòu)是樹型結(jié)構(gòu),結(jié)構(gòu)中數(shù)據(jù)元素之間存在著一對多的關(guān)系,因此它是一種非線性數(shù)

據(jù)結(jié)構(gòu)。

(3)在一棵二叉樹上第8層的結(jié)點數(shù)最多是。

A)8B)16C)128D)256

⑶C

知識點:二叉樹的定義及其存儲結(jié)構(gòu)

評析:根據(jù)二叉樹的性質(zhì):二叉樹第i(l〉l)層上至多有2iT個結(jié)點。得到第8層的結(jié)點數(shù)最多是128。

(4)下面描述中,不符合結(jié)構(gòu)化程序設(shè)計風格的是。

A)使用順序、選擇和重復(fù)(循環(huán))三種基本控制結(jié)構(gòu)表示程序的控制邏輯

B)自頂向下

C)注重提高程序的執(zhí)行效率

D)限制使用goto語句

(4)C

知識點:結(jié)構(gòu)化程序設(shè)計

評析:結(jié)構(gòu)化程序設(shè)計方法的四條原則是:L自頂向下:2.逐步求精;3.模塊化;4.限制使用

goto語句?!白皂斚蛳隆笔钦f,程序設(shè)計時,應(yīng)先考慮總體,后考慮細節(jié),先考慮全局目標,后考慮

局部目標;“逐步求精''是說,對復(fù)雜問題,應(yīng)設(shè)計一些子目標作過渡,逐步細節(jié)化;“模塊化”是說,

一個復(fù)雜問題肯定是由若干稍簡單的問題構(gòu)成,解決這個復(fù)雜問題的程序,也應(yīng)對應(yīng)若干稍簡單的

問題,分解成若干稍小的部分。

(5)下面概念中,不屬于面向?qū)ο蠓椒ǖ氖?

A)對象、消息B)繼承、多態(tài)C)類、封裝D)過程調(diào)用

⑸D

知識點:面向?qū)ο蟮某绦蛟O(shè)計方法、對象、方法、屬性及繼承與多態(tài)性

評析:面向?qū)ο蠓椒ㄊ且环N運用對象、類、封裝、繼承、多態(tài)和消息等概念來構(gòu)造、測試、重構(gòu)軟

件的方法。面向?qū)ο蠓椒◤膶ο蟪霭l(fā),發(fā)展出對象、類、消息、繼承等概念。

(6)在結(jié)構(gòu)化方法中,用數(shù)據(jù)流程圖(DFD)作為描述工具的軟件開發(fā)階段是.

A)可行性分析B)需求分析C)詳細設(shè)計D)程序編碼

(6)B

知識點:結(jié)構(gòu)化設(shè)計方法

評析:軟件開發(fā)階段包括需求分析、總體設(shè)計、詳細設(shè)計、編碼和測試五個階段。其中需求分析階

段常用的工具是數(shù)據(jù)流程圖和數(shù)據(jù)字典。

(7)軟件生命周期中所花費用最多的階段是_______。

A)詳細設(shè)計B)軟件編碼C)軟件測試D)軟件維護

(7)D

知識點:軟件工程基本概念,軟件生命周期概念,軟件工具與軟件開發(fā)環(huán)境

評析:軟件生命周期分為軟件定義、軟件開發(fā)及軟件運行維護3個階段。本題中詳細設(shè)計、軟件編碼

和軟件測試都屬于軟件開發(fā)階段;維護是軟件生命周期的最后一個階段,也是持續(xù)時間最長,花費

代價最大的一個階段,軟件工程學的一個目的就是提高軟件的可維護性,降低維護的代價。

(8)數(shù)據(jù)庫系統(tǒng)的核心是。

A)數(shù)據(jù)模型B)DBMSC)軟件工具D)數(shù)據(jù)庫

(8)B

知識點:數(shù)據(jù)庫的基本概念:數(shù)據(jù)庫,數(shù)據(jù)庫管理系統(tǒng),數(shù)據(jù)庫系統(tǒng)

評析:數(shù)據(jù)庫管理系統(tǒng)DBMS是數(shù)據(jù)庫系統(tǒng)的核心。DBMS是負責數(shù)據(jù)庫的建立、使用和維護的軟件。

DBMS建立在操作系統(tǒng)之上,實施對數(shù)據(jù)庫的統(tǒng)一管理和控制。用戶使用的各種數(shù)據(jù)庫命令以及應(yīng)用

程序的執(zhí)行,最終都必須通過DBMS。另外,DBMS還承擔著數(shù)據(jù)庫的安全保護工作,按照DBA所規(guī)定的

要求,保證數(shù)據(jù)庫的完整性和安全性。

(9)下列敘述中正確的是。

A)數(shù)據(jù)處理是將信息轉(zhuǎn)化為數(shù)據(jù)的過程

B)數(shù)據(jù)庫設(shè)計是指設(shè)計數(shù)據(jù)庫管理系統(tǒng)

C)如果一個關(guān)系中的屬性或?qū)傩越M并非該關(guān)系的關(guān)鍵字,但它是另?個關(guān)系的關(guān)鍵

字,則稱其為本關(guān)系的外關(guān)鍵字

D)關(guān)系中的每列稱為元組,一個元組就是一個字段

(9)C

知識點:數(shù)據(jù)模型,實體聯(lián)系模型及E-R圖,從E-R圖導(dǎo)出關(guān)系數(shù)據(jù)模型

評析:數(shù)據(jù)處理是指將數(shù)據(jù)轉(zhuǎn)換成信息的過程,故選項A敘述錯誤;設(shè)計數(shù)據(jù)庫的目的實質(zhì)上是設(shè)

計出滿足實際應(yīng)用需求的實際關(guān)系模型,故選項B敘述錯誤;關(guān)系中的行稱為元組,對應(yīng)存儲文件中

的記錄,關(guān)系中的列稱為屬性。對應(yīng)存儲文件中的字段,故D選項敘述錯誤。

(10)下列模式中,是用戶模式。

A)內(nèi)模式B)外模式C)概念模式D)邏輯模式

(10)B

知識點:數(shù)據(jù)庫的基本概念:數(shù)據(jù)庫,數(shù)據(jù)庫管理系統(tǒng),數(shù)據(jù)庫系統(tǒng)

評析:數(shù)據(jù)庫管理系統(tǒng)的三級模式結(jié)構(gòu)由外模式、模式和內(nèi)模式組成。外模式,或稱子模式,或稱

用戶模式,是指數(shù)據(jù)庫用戶所看到的數(shù)據(jù)結(jié)構(gòu),是用戶看到的數(shù)據(jù)視圖。模式,或稱邏輯模式,是

數(shù)據(jù)庫中對全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特性的描述,是所有用戶所見到的數(shù)據(jù)視圖的總和。外模式是模

式的?部分。內(nèi)模式,或稱存儲模式,或稱物理模式,是指數(shù)據(jù)在數(shù)據(jù)庫系統(tǒng)內(nèi)的存儲介質(zhì)上的表

示。即對數(shù)據(jù)的物理結(jié)構(gòu)和存取方式的描述。

(11)C語言規(guī)定,程序中各函數(shù)之間<,

A)既允許直接遞歸調(diào)用也允許間接遞歸調(diào)用

B)不允許直接遞歸調(diào)用也不允許間接遞歸調(diào)用

0允許直接遞歸調(diào)用不允許間接遞歸調(diào)用

D)不允許直接遞歸調(diào)用允許間接遞歸調(diào)用

(1DA

知識點:函數(shù)的遞歸調(diào)用

評析:c語言規(guī)定,程序中各函數(shù)之間既允許直接遞歸調(diào)用也允許間接遞歸調(diào)用。

(12)C語言中下列敘述正確的是o

A)不能使用do-while語句構(gòu)成的循環(huán)

B)do-while語句構(gòu)成的循環(huán),必須用break語句才能退出

C)do-while語句構(gòu)成的循環(huán),當while語句中的表達式值為非零時結(jié)束循環(huán)

D)do-while語句構(gòu)成的循環(huán),當while語句中的表達式值為零時結(jié)束循環(huán)

(12)D

知識點:do-while語句

評析:選項A是錯誤的,c語言支持do-while語句;選項B是錯誤的,do-while構(gòu)成的循環(huán),當while

語句中的表達式值為零時結(jié)束循環(huán),而不是非零;選項C也是錯誤的。

(13)以下選項中屬于C語言的數(shù)據(jù)類型是。

A)第數(shù)型B)邏輯型C)雙精度型D)集合型

(13)C

知識點:c語言的數(shù)據(jù)類型

評析:c語言的數(shù)據(jù)類型分為基本類型、構(gòu)造類型、指針類型、空類型四大類。其中,基本類型分

為整型、字符型、實型三類。實型又稱浮點型,包括單精度型和雙精度型兩種類型。

(14)在C語言中,不正確的int類型的常數(shù)是。

A)32768B)00037D)OxAF

(14)A

知識點:int類型的范圍

評析:c語言中int類型的常數(shù)的范圍是:-32768?32767。c整常數(shù)可用三種形式表示:十進制整

數(shù),八進制整數(shù),十六進制整數(shù)。選項A超出范圍,不正確。

(15)下列描述中不正確的是。

A)字符型數(shù)組中可以存放字符串

B)可以對字符型數(shù)組進行整體輸入、輸出

C)可以對整型數(shù)組進行整體輸入、輸出

D)不能在賦值語句中通過賦值運算符“=”對字符型數(shù)組進行整體賦值

(15)C

知識點:對數(shù)組的理解

評析?:c語言規(guī)定只能逐個引用數(shù)組元素而不能一次引用整個數(shù)組。字符數(shù)組的輸入、輸出可以將

整個字符串一次輸入或輸出。所以,選項C的說法是不正確的。

(16)以下程序的輸出結(jié)果是o

main()

{inti,x[3][3]={9,8,7,6,5,4,3,2,1},*p?&x[l][l];

for(i=0;i<4;i+=2)printf("%d",p[i]];

)

A)52B)51C)53D)97

(16)C

知識點:通過指針引用數(shù)組元素

評析:題中*p=&x[l][1];是指將數(shù)組x的數(shù)組元素x[l][1]的地址賦值給指針變量p,使p指向x[l][1]

這個數(shù)組元素,那么p[0]即為指針變量P當前所指向的數(shù)組元素的值。具體執(zhí)行時如卜所示:

i=0時,輸出p[0],也就是輸出是5:

i=2時,輸出p[2],即p[2+0],也就是x[2][0],輸出是3。

(17)以下程序的運行結(jié)果是。

ttinclude"stdio.h"

main()

I

inta[]={l,2,3,4,5,6,7,8,9,10,11,12);

int*p=a十5,*q=NULL;

*q=*(p+5);

printf("%d%d\n",*p,*q);

}

A)運行后報錯B)66

0612D)55

(17)A

知識點:通過指針引用數(shù)組

評析:題目中沒有給q分配存儲單元,只是簡單地給它賦了一個值,所以程序的運行結(jié)果是611NULL

pointerassignment,也就是運行后報錯。

(18)以下說法中正確的是。

A)c語言程序總是從第一個函數(shù)開始執(zhí)行

B)在C語言程序中,要調(diào)用函數(shù)必須在main。函數(shù)中定義

C)C語言程序總是從main。函數(shù)開始執(zhí)行

D)c語言程序中的main()函數(shù)必須放在程序的開始部分

(18)C

知識點:C程序的運行順序

評析:c語言的程序是由主函數(shù)main。開始運行,由主函數(shù)來調(diào)用其他函數(shù),所以選項A錯誤;c語

言中定義的函數(shù)必須是并列的,不能在一個函數(shù)中定義其他函數(shù),選項B錯誤;函數(shù)必須先定義后使

用,在調(diào)用函數(shù)之前要定義函數(shù),而mmn()函數(shù)不一定要放在程序的開始部分,故選項D錯誤。

(19)能正確表示a和b同時為正或同時為負的邏輯表達式是.。

A)(a>=01lb>=0)&&(a<0Ilb<0)B)(a>=0&&b>—0)&&(a<0&&b<0)

0(a+b>0)&&(a+b<=0)D)a*b>0

(19)D

知識點:對邏輯表達式的判斷

評析:邏輯表達式是指用邏輯運算符將關(guān)系表達式或邏輯量連接起來。

選項A中,表達式表示的是a,b為異號;

選項B中,表達式表示的是0,因為沒有滿足條件的值;

選項C中,表達式表示的是0,因為沒有滿足條件的值;

選項D表示的是a和b為同號。

(20)若己定義:inta[9],*p=a;并在以后的語句中未改變p的值,不能表示a[l]地址的表達式是

A)p+1B)a+1C)a++D)++p

(20)C

知識點:數(shù)組地址的表示

評析:數(shù)組名是指針常量,是個固定的指針,不能對數(shù)組名賦予一個新的地址值,也不能使這個指

針常量"移動”,指向數(shù)組的其他元素。

(21)以下程序的輸出結(jié)果是。

main()

{inta=-l,b=l,k:

if((++a<0)&&!(b—<=0))

printf("%d%d\n",a,b);

else

printf("%d%d\n”,b,a);

)

A)-l1B)01

C)10D)00

(21)C

知識點:if條件的判斷

評析:邏輯運算符的優(yōu)先次序如下:!(非)一&&(與)一I(或),但本題需特別注意的是短路的概念:

對于&&運算符,其兩邊表達式的值只要有邊為假,則整個與運算表達式的值即為假,系統(tǒng)在執(zhí)行

時,先運算&&左邊的表達式,若為假,則系統(tǒng)不會再判斷&&運算符右邊的表達式了,直接運用短路

原理得整個與運算表達式的值為0。由于++a是先運算后使用,b一是先使用后運算。所以本題在執(zhí)行

++a后,a值為0,不滿足條件,所以a為1,根據(jù)短路原理,b仍為0,接下去執(zhí)行else語句,輸出10。

(22)以下選項中,能定義s為合法的結(jié)構(gòu)體變量的是_______。

A)typedefstructabc

{doublea;

charb[10];

)s;

B)struct

{doublea;

charb[10];

}s;

C)structABC

{doublea;

charb[10];

)

ABCs;

D)typedefABC

{doublea;

charb[10];

)

ABCs:

(22)B

知識點:結(jié)構(gòu)體變量的定義

評析:定義一個結(jié)構(gòu)體類型的變量,可采用三種方法:

①先定義結(jié)構(gòu)體類型,再定義變量名;

②在定義類型的同時定義變量;

③直接定義結(jié)構(gòu)類型變量,即不出現(xiàn)結(jié)構(gòu)體名。

選項B符合笫三種定義方法。

(23)請讀程序:

#includc<stdio.h>

#include<string.h>

main()

I

char*sl="AbCdEf",*s2="aB";

sl++;s2++;

printf("%d\n",strcmp(sl,s2));

)

上面程序的輸出結(jié)果是。

A)正數(shù)B)負數(shù)C)零D)不確定的值

(23)A

知識點:字符串比較函數(shù)strcmp()的應(yīng)用

評析:strcmp(Xl,X2)是串比較函數(shù),當X1>X2時返回值為正數(shù),當X"X2時返回值為負數(shù),當XI=X2

時返回值為零。

本題中“sl”、“S2”分別表示這兩個串中第一個字符的地址,sl++和S2++是將指針指向串的第二個字

符,則*si為“bCdEf',,*s2為"B”。而在字符串比較中。大小的確定是由各個字符串相應(yīng)位置字符

的ASCII碼值的大小決定的?!癇”的ASCII碼值為66,“b”的ASCII碼值為98,所以sl>s2,返回值為正數(shù)。

(24)請讀程序:

#include<stdio.h>

func(inta,intb){

intc:

c=a+b:

returnC:

)

main(){

intx=6>y=7,z=8,r;

r=func((x一,y++,x+y),z一);

printf("%d\n",r);

)

上面程序的輸出結(jié)果是o

A)11B)20C)21D)31

(24)C

知識點:自增、自減運算

評析:函數(shù)func()的作用是返回兩個形參的和,第一個形參是x、y分別自減和自增后的和,其中(X--,

y++,x+y)是一個逗號表達式,它的值應(yīng)該等于x+y,所以整個表達式(x-,y++,x+y)的值為13,而

第二個形參的值為8(根據(jù)語法規(guī)則,應(yīng)當先使用,后自增),所以fune()的返回值為13+8=21。

(25)請讀程序:

#include<stdio.h>

main()

(

inta,b;

for(a=l,b=l;a<=100;a++){

if(b>=20)break;

if(b%3==D{b+=3;continue;}

b_=5:

)

printf("%d\n",a);

)

上面程序的輸出結(jié)果是?

A)7B)809D)10

(25)B

知識點:break語句和continue語句

評析:break語句的作用是用于跳出循環(huán)體,繼續(xù)執(zhí)行循環(huán)體下面的語句;而continue語句的作用是

用于跳出本次循環(huán),即跳過循環(huán)體中尚未執(zhí)行的語句,接著進行下一次是否執(zhí)行循環(huán)的判定?!埃ァ?/p>

是求余運算符,執(zhí)行第一次循環(huán)時,條件(b%3==l)為真,b=4,繼續(xù)下一次循環(huán),如此反復(fù),當b=22

時,條件(b〉=20)為假,跳出循環(huán),此時共循環(huán)8次,即a=8。

(26)請讀程序片段(字符串內(nèi)沒有空格字符):

printf("%d\n",strlen("ATS\nO12\l\\"));

上面程序片段的輸出結(jié)果是。

A)llB)10C)9D)8

(26)C

知識點:字符串的長度

評析:這個語句的目的是輸出“ATS\nO12\l\\”這個串的長度,在串中“\\”代表一個“\”,為了

和printf()函數(shù)中的轉(zhuǎn)義字符區(qū)分開來,在語法上使用了兩個反斜杠代替了一個反斜杠,所以它僅

僅為一個字符,而”\1”代表數(shù)字1,也占一個字符,“\n”是回車換行符,也占一個字符,加上A、T、

s、0、1、2,一共是9個字符。

(27)請選出可用作C語言用戶標識符的一組標識符。

A)VoidB)a3_b3C)ForD)2a

define_123_abcDO

WORDIFcasesizeof

(27)B

知識點:c語言的標識符

評析:c語言規(guī)定標識符只能由字母、數(shù)字和下劃線三種符號組成,而且第一個字符必須是字母或下

劃線。

選項A中的void和define都和c語言的關(guān)鍵字重名,不合法;

選項C中的case和c語言的關(guān)鍵字重名,不合法;

選項D中的2a是數(shù)字打頭而且sizeof和c語言的關(guān)鍵字重名,不合法。

(28)請選出以下程序的輸出結(jié)果

#include<stdio_h>

sub(int*s,inty)

{staticintt=3;

y=s[t];t—;

)

main()

{inta[]={l,2,3>4},i,x=0;

for(i=0;i<4;i++){

sub(a,x);printf("%d",x);}

printf("\n");

)

A)1234B)4321C)0000D)4444

(28)C

知識點:函數(shù)的形參和實參的關(guān)系

評析:x作為函數(shù)sub()的實參時,函數(shù)對x值的改變沒有返回主函數(shù),并不能使得x的值變化,所以

在打印時,x的值是始終不變的,即為0。

(29)若有以下說明和語句,請選出哪個是對c數(shù)組元素的正確引用。

intc[4][5],(*cp)[5];

cp=c;

A)cp+1B)*(cp+3)C)*(cp+1)+3D)*(*cp+2)

(29)D

知識點:數(shù)組元素的引用

評析:cp=c這個語句是將數(shù)組第0行的地址賦給了cp。cp+1使指針指向二維數(shù)組c的第一行;*(cp+3)

是數(shù)組c的第三行的第0列的地址值;+(cp+l)+3是數(shù)組c的第一行第三列的地址值。

(30)設(shè)有以下語句

chara=3,b=6,c;

c=a'b<<2:

則c的二進制值是o

A)000110116)00010100000011100D)00011000

(30)A

知識點:位運算

評析:“<<“是c語言中規(guī)定的左移運算符,例如,a=a<<2,這個語句即是將a的二進制數(shù)左移兩位,左

移一位相當于該數(shù)乘以2,左移兩位相當于該數(shù)乘以2的2次方;,~是異或運算符,所以,c的:進制

值應(yīng)為00011011。

(31)設(shè)有

staticcharstr[]="Beijing";

則執(zhí)行

printf("%d\n",strlen(strcpv(str,"China")));

后的輸出結(jié)果為。

A)5B)7C)12D)14

(31)A

知識點:字符串的長度

評析:在執(zhí)行printf()函數(shù)前,數(shù)組str的長度是7,但是當使用strcpy()函數(shù)將新的值賦給str后,

strlenO函數(shù)返回的應(yīng)當是現(xiàn)在的str字符串的字符個數(shù),即是5。

(32)以下程序的輸出結(jié)果是。

#include<stdio.h>

mainO

{inti;

for(i=l;i<5;i++){

if(i^2)printf("*");

elsecontinue;

printf("#"

}

print"$\n");

)

A)*#*#*#$B)#*#*#*$C)*#*#$D)#*#*$

(32)C

知識點:if語句的判斷

評析:當i不可以整除2時打印然后打印“#",不能整除2則執(zhí)行continue,跳過printf(“#");語

句,結(jié)束本次循環(huán),返回到循環(huán)的起始點。當循環(huán)結(jié)束后,打印

(33)有以下程序

#include<stdio.h>

mainO

{intc;

whi1e((c=getchar())!='\n'){

switch(C-'2'){

case0:case1:putchar(c+4);

case2:putchar(c+4);break;

case3:putchar(c+3);

default:putchar(c十2);break;)

)

}

從第一列開始輸入以下數(shù)據(jù),/代表一個回車符。

2473/

程序的輸出結(jié)果是。

A)668977B)668966066778777D)6688766

(33)A

矢11占,.switch。1吾

評笳;“getchar()函薪是從鍵盤接受一個字符輸入;當用戶鍵入的字符不是回車符時,會進入一個多

分支選擇語句,根據(jù)表達式c-⑵的值進行分支選擇:putchar()是在屏幕上打印一個字符,最后的結(jié)

果應(yīng)當為668977。

(34)以下程序的輸出結(jié)果是。

main()

{intw=5;fun(w);printf("\n");}

fun(intk)

(if(k>0)fun(k_l);

printf("%d",k);

)

A)54321B)O12345

012345D)543210

(34)B

知識點:函數(shù)的遞歸調(diào)用

評析:函數(shù)的遞歸調(diào)用就是在調(diào)用一個函數(shù)的過程中乂出現(xiàn)直接或間接地調(diào)用該函數(shù)本身。fun函數(shù)

共被調(diào)用6次,即fun(5)、fun(4),fun(3),fun(2)>fun(l)-fun(O)<,其中fun(5)是main函數(shù)調(diào)用

的,其余是在fun函數(shù)中調(diào)用的。

(35)若fp是指向某文件的指針,且已讀到此文件的末尾,則函數(shù)£0?!丁?))的返回值是.

A)EOFB)0C)非零值D)NULL

(35)C

知識點:文件結(jié)束符的返回值

評析:函數(shù)feof是用來判斷文件是否已讀到末尾,如果己讀到末尾則返回非零值,否則返回0。

(36)算法的時間復(fù)雜度是指。

A)執(zhí)行算法程序所需要的時間

B)算法程序的長度

0算法執(zhí)行過程中所需要的基本運算次數(shù)

D)算法程序中的指令條數(shù)

(36)C

知識點;算法復(fù)雜度的概念和意義(時間復(fù)雜度與空間復(fù)雜度)

評析:所謂算法的時間復(fù)雜度,是指執(zhí)行算法所需要的計算工作量。為了能夠比較客觀地反映出一

個算法的效率,在度量一個算法的工作量時,不僅應(yīng)該與所使用的計算機、程序設(shè)計語言以及程序

編制者無關(guān),而且還應(yīng)該與算法實現(xiàn)過程中的許多細節(jié)無關(guān)。為此,可以用算法在執(zhí)行過程中所需

基本運算的執(zhí)行次數(shù)來度量算法的工作量。

(37)下列敘述中正確的是。

A)線性表是線性結(jié)構(gòu)B)棧與隊列是非線性結(jié)構(gòu)

0線性鏈表是非線性結(jié)構(gòu)D)二叉樹是線性結(jié)構(gòu)

(37)A

知識點:線性結(jié)構(gòu)與非線性結(jié)構(gòu)的概念

評析:根據(jù)數(shù)據(jù)結(jié)構(gòu)中各數(shù)據(jù)元素之間相關(guān)聯(lián)關(guān)系的復(fù)雜程度,一般將數(shù)據(jù)結(jié)構(gòu)分為兩大類型:線

性結(jié)構(gòu)與非線性結(jié)構(gòu)。如果一個非空的數(shù)據(jù)結(jié)構(gòu)滿足下列兩個條件:(1)有且只有一個根結(jié)點;(2)

每一個結(jié)點最多有一個前件,也最多有一個后件。則稱該數(shù)據(jù)結(jié)構(gòu)為線性結(jié)構(gòu),又稱線性表。所以

線性表、棧與隊列、線性鏈表都是線性結(jié)構(gòu),而二叉樹是非線性結(jié)構(gòu)。

(38)下面關(guān)于完全二叉樹的敘述中,錯誤的是。

A)除了最后一層外,每層上的結(jié)點數(shù)均達到最大值

B)可能缺少若干個左右葉子結(jié)點

0完全二叉樹一般不是滿二叉樹

D)具有結(jié)點的完全二叉樹的深度為[log2n]+l

(38)B

知識點:二叉樹的定義及其存儲結(jié)構(gòu)

評析:這里考察完全二又樹與滿二叉樹的定義及二叉樹的性質(zhì)。滿二叉樹指除最后一層外每一層上

所有結(jié)點都有兩個子結(jié)點的二叉樹。完全二叉樹指除最后一層外,每一層上的結(jié)點數(shù)均達到最大值,

在最后一層上只缺少右邊的若干子結(jié)點(葉子結(jié)點)的二叉樹。因此選項A是正確的,而選項B是錯誤

的。由定義可知,滿:叉樹肯定是完全二又樹.,而完全二又樹一般不是滿二叉樹,因此選項c是正確

的敘述。選項D即:又樹性質(zhì)(5),也是正確的。

(39)結(jié)構(gòu)化程序設(shè)計主要強調(diào)的是。

A)程序的規(guī)模B)程序的易讀性

C)程序的執(zhí)行效率D)程序的可移植性

(39)B

知識點:結(jié)構(gòu)化程序設(shè)計

評析:結(jié)構(gòu)化程序設(shè)計主要強調(diào)的足結(jié)構(gòu)化程序清晰易讀,可理解性好、程序員能夠進行逐步求精、

程序證明和測試.以保證程序的正確性。

(40)在軟件生命周期中,能準確地確定軟件系統(tǒng)必須做什么和必須具備哪些功能的階段是。

A)概要設(shè)計B)詳細設(shè)計C)可行性分析D)需求分析

(40)D

知識點:軟件工程基本概念,軟件生命周期概念,軟件工具與軟件開發(fā)環(huán)境

評析:通常,將軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程稱為軟件生命周期。也就

是說,軟件產(chǎn)品從考慮其概念開始,到該軟件產(chǎn)品不能使用為止的整個時期都屬于軟件生命周期。

軟件生命周期的主要活動階段為:

①可行性研究和計劃制定。確定待開發(fā)軟件系統(tǒng)的開發(fā)目標和總的要求,給出它的功能、性能、可

靠性以及接口等方面的可行方案,制定完成開發(fā)任務(wù)的實施計劃。

②需求分析。對待開發(fā)軟件提出的需求進行分析并給出詳細定義,即準確地確定軟件系統(tǒng)的功能。

編寫軟件規(guī)格說明書及初步的用戶手冊,提交評審。

③軟件設(shè)計。系統(tǒng)設(shè)計人員和程序設(shè)計人員應(yīng)該在反復(fù)理解軟件需求的基礎(chǔ)上,給出軟件的結(jié)構(gòu)、

模塊的劃分、功能的分配以及處理流程。

④軟件實現(xiàn)。把軟件設(shè)計轉(zhuǎn)換成計算機可以接受的程序代碼。即完成源程序的編碼,編寫用戶手冊、

操作手冊等面向用戶的文檔,編寫單元測試計劃。

⑤軟件測試。在設(shè)計測試用例的基礎(chǔ)上,檢驗軟件的各個組成部分。編寫測試分析報告。

⑥運行和維護。將已交付的軟件投入運行,并存運行使用中不斷地維護,根據(jù)新提出的需求進行必

要而且可能的擴充和刪改。

(41)數(shù)據(jù)流圖用于抽象描述一個軟件的邏輯模型,數(shù)據(jù)流圖由一些特定的圖符構(gòu)成。下列圖符名標

識的圖符不屬于數(shù)據(jù)流圖合法圖符的是o

A)控制流B)加工C)數(shù)據(jù)存儲D)源和潭

(41)A

知識點:結(jié)構(gòu)化分析方法,數(shù)據(jù)流圖,數(shù)據(jù)字典,軟件需求規(guī)格說明書

評析:數(shù)據(jù)流圖從數(shù)據(jù)傳遞和加工的角度,來刻畫數(shù)據(jù)流從輸入到輸出的移動變換過程。數(shù)據(jù)流圖

中的主要圖形元素有:加工(轉(zhuǎn)換)、數(shù)據(jù)流、存儲文件(數(shù)據(jù)源)、源和潭。

(42)軟件需求分析一般應(yīng)確定的是用戶對軟件的o

A)功能需求B)非功能需求C)性能需求D)功能需求和非功能需求

(42)D

知識點:結(jié)構(gòu)化設(shè)計方法

評析:軟件需求分析中需要構(gòu)造一個完全的系統(tǒng)邏輯模型,理解用戶提出的每一功能與性能要求,

是用戶明確自己的任務(wù)。因此,需求分析應(yīng)確定用戶對軟件的功能需求和非功能需求。

(43)下述關(guān)于數(shù)據(jù)庫系統(tǒng)的敘述中正確的是。

A)數(shù)據(jù)庫系統(tǒng)減少了數(shù)據(jù)冗余

B)數(shù)據(jù)庫系統(tǒng)避免了一切冗余

C)數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)的一致性是指數(shù)據(jù)類型的?致

D)數(shù)據(jù)庫系統(tǒng)比文件系統(tǒng)能管理更多的數(shù)據(jù)

(43)A

知識點:數(shù)據(jù)庫的基本概念:數(shù)據(jù)庫,數(shù)據(jù)庫管理系統(tǒng),數(shù)據(jù)庫系統(tǒng)

評析:由于數(shù)據(jù)的集成性使得數(shù)據(jù)可為多個應(yīng)川4所共享,特別是在網(wǎng)絡(luò)發(fā)達的今天,數(shù)據(jù)庫與網(wǎng)

絡(luò)的結(jié)合擴大了數(shù)據(jù)關(guān)系的應(yīng)用范圍。數(shù)據(jù)的共享自身義可極大地減少數(shù)據(jù)冗余性,不僅減少了不

必要的存儲空間,更為重要的是可以避免數(shù)據(jù)的不一致性。所謂數(shù)據(jù)的一致性是指在系統(tǒng)中同一數(shù)

據(jù)的不同出現(xiàn)應(yīng)保持相同的值,而數(shù)據(jù)的不一致性指的是同一個數(shù)據(jù)在系統(tǒng)的不同拷貝處有不同的

值。

(44)關(guān)系表中的每一橫行稱為一個。

A)元組B)字段C)屬性D)碼

(44)A

知識點:數(shù)據(jù)庫的基本概念:數(shù)據(jù)庫.數(shù)據(jù)庫管理系統(tǒng),數(shù)據(jù)庫系統(tǒng)

評析:在關(guān)系數(shù)據(jù)庫中,關(guān)系模型采用:維表來表示,簡稱“表”。:維表是由表框架及表元組組成。

在表框架中,按行可以存放數(shù)據(jù),每行數(shù)據(jù)稱為元組。

(45)數(shù)據(jù)庫設(shè)計包括兩個方面的設(shè)計內(nèi)容,它們是。

A)概念設(shè)計和邏輯設(shè)計B)模式設(shè)計和內(nèi)模式設(shè)計

0內(nèi)模式設(shè)計和物理設(shè)計D)結(jié)構(gòu)特性設(shè)計和行為特性設(shè)計

(45)A

知識點:數(shù)據(jù)庫設(shè)計方法和步驟:需求分析、概念設(shè)計、邏輯設(shè)計和物理設(shè)計的相關(guān)策略

評析:數(shù)據(jù)庫設(shè)計可分為概念設(shè)計與邏輯設(shè)計。數(shù)據(jù)庫概念設(shè)計的目的是分析數(shù)據(jù)問內(nèi)存語義關(guān)聯(lián),

在此基礎(chǔ)上建立一個數(shù)據(jù)的抽象模型。數(shù)據(jù)庫邏輯設(shè)計的主要工作是將E-R圖轉(zhuǎn)換為指定的RDBMS中

的關(guān)系模型。

(46)請讀程序:

#include<stdio.h>

main()

(

inta;floatb,c;

scanf("%2d%3f%4f",&a,&b,&c);

printf("\na=%d.b=%Cc=%f\n",a,b,c);

)

若運行時從鍵盤上輸入9876543210/,則上面程序的輸出結(jié)果是一。

A)a=98,b=765,c=4321

B)a=10,b=432,c=8765

C)a=98,b=765.000000,c=4321.000000

D)a=98,b=765.0,c=4321.0

(46)C

知識點:格式輸入、輸出函數(shù)

評析:scanfO把剛戶從鍵盤錄入的數(shù)字的第1、2位存入整型變量a;把第3、4、5位存入單精度實型

變量b,由于“f”是以小數(shù)形式輸出單、雙精度數(shù)。隱含輸出6位小數(shù),所以b=4321.000000;把第6、

7、8、9位存入單精度實型變量c,用戶錄入的第10位被scanfO遺棄。這時變量fd、b、c的值分別為:

98、765.000000、4321.000000,

(47)請選出以下程序的輸出結(jié)果。

#include<stdio.h>

sub(x,y,z)

intx,y,*z:

(*z=y-x;}

main(){

inta,b,c;

sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);

printf("%d,%d,%d\n”,a,b,c);

)

A)5,2,3B)-5,-12,-7C)-5,-12,-17D)5,-2,-7

(47)B

知識點:函數(shù)的調(diào)用

評析:sub()函數(shù)的作脂是將形參y和x的差賦給了z指向的那個內(nèi)存地址,所以在sub(10,5,&a)中,

10和5膈于值傳遞,直接將數(shù)值j0和5分別傳遞給了變量x和y,而對于a是屬于地址傳遞,也就是a與z

指向了蚓一個存儲單元,在執(zhí)行函數(shù)后,a的值隨*z變化,但b,c值并不改變,所以此次函數(shù)被調(diào)用

后,a的值為y-x=-5,同理可知,在sub(7,a,&b)后,b的值發(fā)生變化,其值為-5-7=72,住sub(a,b,&c)

后,c的值發(fā)生變化,其值為T2-(-5)=-7。

(48)若x是整型變量,pb是基類型為整型的指針變量,則正確的賦值表達式是.。

A)pb=&x;B)pb=x;C)*pb=&x;D)*pb=*x

(48)A

知識點:賦值表達式

評析:選項A是將變量x的地址賦給指鉗,變量pb,使pb指向x,故為正確的賦值表達式。

選項B是將x的值當作地址賦給指針pb,pb指-一個地址等于x值的內(nèi)存單元。

選項C足將x的地址賦給指針pb指向的那個地址等于x值的內(nèi)存單元。

選項D是不正確的語句。

(49)若要用下面的程序片段使指針變量p指向-個存儲整型變量的動態(tài)存儲單元

int*p;

p=malloc(sizeof(int));

則應(yīng)填入

A)intB)ira*C)(*int)D)(int*)

(49)D

知識點:強制類型轉(zhuǎn)換

評析:不論P是指向什么類型的指針變量,都可以通過強制類型轉(zhuǎn)換的方法使之類型一致,強制類型

轉(zhuǎn)換的格式為(數(shù)據(jù)類型*)。

(50)若執(zhí)行下面程序時從鍵盤上輸入5,

mainO

(

intx;

scanf("%d",&x);

if(x++>5)printf("%d\n",x);

elseprintf("%d\n",x一);

)

則輸出是。

A)7B)6C)5D)4

(50)B

知識點:if條件的判斷

評析:根據(jù)c語言的語法,x+十是在使用x之后,再將x的值加1,在if語句中,x的值為5,條件不成

立,執(zhí)行else后面的語句,因為x的值已經(jīng)加1,為6,所以打印結(jié)果為6。

(51)設(shè)a、b和c都是int型變量,且a=3、b=4、c=5,則下面的表達式中,值為0的表達式是.

A)'a'&&'b'B)a<=bC)a|+c&&b-cD)!((a<b)&&!c|11)

(51)D

知識點:幾種運算符的使用

評析:選項A:%,&&州是字符@與13的相與,故不為0。

選項B:a<=b,由題中變量賦值可知,結(jié)果為1。

選項c:a||+c&&b-c,此表達式先做算術(shù)運算b-c,結(jié)果為-1.而+c屬于單目運算符,由于c初值為5,

經(jīng)過單目運算符運算后,還是5,下面再進行邏輯與的運算,即5&&T結(jié)果為1(因為c語言中除0代表

假外,其他任一個數(shù)都代表真),最后a||1,結(jié)果為1。

選項D:!((a〈b)&&Ic[h),此表達式先運算最外面括號內(nèi)的表達式(a<b)&&!ci1,然后進行非運算,

由于(a〈b)&&!c」l中先算小括號內(nèi)的a〈b結(jié)果為1,再按邏輯運算符的運算順序:!,&&,|,進行

運算后得(a〈b)&&!c|1的值為1,所以最后進行非運算知D選項的運算結(jié)果為0。

(52)設(shè)有如下程序

#include<stdio.h>

main()

int**k,*j,i=100;

j=&i;k=&j;

printf("%d\n",**k);

)

上述程序的輸出結(jié)果是.

A)運行錯誤B)100c)i的地址D)j的地址

(52)B

知識點:指針變量的引用

評析:j=&i,j的值就是i的地妣,*j=100,將j的地址賦給k,這時*k=j,那么,**k=*j,而*j=100,

所以**k=100,最后的打印結(jié)果應(yīng)當為100。

(53)設(shè)有以下語句,其中不是對a數(shù)組元素的正確引用的是:(其中OWi<10)

inta[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))

(53)D

知識點:通過指針引用數(shù)組元素

評析:觀察程序可知.a實際上就是數(shù)組a的首地址,所以“*(a+i)”表示的就是數(shù)組a中的第i個元素

的值,進而,我們可以知道*(*(a+i))必然不是對a數(shù)組元素的正確引用。

(54)有以下程序:

#include<stdio.h>

main(){

charc[6];

inti=0:

for(;i<6;c[i]=getchar(),i++);

for(i=0;i<6;i++)putchar(c[i]);

printf("\n");

}

如果從鍵盤上輸入:

ab〈回車)

c〈回車》

def<回車)

則輸出結(jié)果為_______。

A)aB)aC)abD)abcdef

bbc

ccd

dd

e

f

(54)C

知識點:字符數(shù)據(jù)的輸入、輸出

評析:1.getcharO

此函數(shù)的作用是從終端(或系統(tǒng)隱含指定的輸入設(shè)備)輸入?個字符。請注意:getcharO只能接受一

個字符(回車符也算是一個字符)。getchar函數(shù)得到的字符可以賦給一個字符變量或整型變量,也可

不賦給任何變量,作為表達式的一部分。

2.putchar()

此函數(shù)的作用是向終端輸出一個字符,也可以輸出控制字符,如回車符?使輸出的當前位置移到下

一行的開頭。

本題在輸入字符時,ab和c后面的回車符分別賦給了c[2]和c[4],所以,正確答案為C。

(55)下面程序

#include<stdio.h>

#include<string.h>

main()

{char*pl;"abc",*p2="ABC",str[50]="xyz";

strcpy(str+2,strcat(pl,p2));

printf("%s\n",str);

}

的輸出是。

A)xyzabcABCB)zabcABC

C)yzabcABCD)xyabcABC

(55)D

知識點:字符串的連接和拷貝

評析:strcat(字符數(shù)組1,字符數(shù)組2)的作用是連接兩個字符數(shù)組中的字符串,把字符串2接到字符

串1的后面,結(jié)果放在字符數(shù)組1中,本題中strcat(pl,p2)函數(shù)將*pl和*p2指向的兩個串連接了起

來,將字符串a(chǎn)bcABC放到了*pl所指向的存儲單元中:而strcpy(字符數(shù)組1,字符串2)函數(shù)將字符串

2復(fù)制到字符數(shù)組1中去,本題將字符串a(chǎn)bcABC復(fù)制到了str+2所指向的存儲單元中,即將原str數(shù)組

中的字符z及z向后的所有字符覆蓋,所以在打印輸出時,str的值已經(jīng)等于“xyabcABC”。

(56)下面程序

intaa[3][3]={⑵,⑷,{6}};

main()

{inti,*p=&aa[O][0];

for(i=0;i<2;i++){

if(i==0)aa[i][i+l]=*p+l;

else++p;

printf("%d",*p);

)

}

的輸出是o

A)23B)26C)33D)36

(56)A

知識點:for循環(huán)語句

評析:觀察題目,可以發(fā)現(xiàn),*P=&aa[0][0]語句實際是將數(shù)組aa的首地址賦給了指針變量p,將i的

值帶入for循環(huán)中,i=0時,aa[0][1]=3,*p=2;*p輸出的是指針所指向的數(shù)組值,此時p所指向的是

aa[0][0],輸出2,而i=l時執(zhí)行了++p操作,使指針向后移動指向了aa[0][1],所以在輸出*p時應(yīng)為

3o

(57)下面程序

main()

{intx=100,a=10>b=20.okl=5>ok2=0;

if(a<b)

if(b!=15)

if(!okl)x=l;

elseif(ok2)x=10;

X=-l;

Ptintf("%d\n",x);

)

的輸出是

A)-lB)001D)不確定的值

(57)A

知識點:判斷語句的循環(huán)嵌套

評析:第一個判斷值為真,過渡到下一個判斷,第二個判斷為真,過渡到第三個判斷……如此循環(huán),

在打印輸出語句的前一行,程序給變量X賦了值,為一1,所以,無論前期如何變化,最后的X值依然

為一1。

(58)下面程序

raainO

(

intx=32:

printf("%d\n",x=x?l);

)

的輸出是__。

A)100B)1600120D)64

(58)D

知識點:位運算

評析:<〈是c語言中規(guī)定的左移運算符,例如,a=a?2,這個語句即是將a的二進制數(shù)左移兩位,左

移一位相當于該數(shù)乘以2,左移兩位相當于該數(shù)乘以2的2次方。所以,x?1=32*2-64.

(59)以下程序的輸出結(jié)果是。

#include<stdio.h>

ttdefineFUDGE(y)2.84+y

ttdefinePR(a)printf("%d",(int))(a))

#definePRINT1(a)PR(a);putchar\n')

main()

{intx=2;

PRINT1(FUDGE(5)*X);

)

A)11B)12013D)15

(59)B

知識點:帶參數(shù)的宏定義

評析:在程序中如果有帶實參的宏,則按#define命令行中指定的字符串從左到右進行置換,如果串

中包含宏中的形參,則將程序語句中相應(yīng)的實參代替形參,如果宏定義中的字符串中的字符不是參

數(shù)字符,則保留,這樣就形成了置換的字符串。

根據(jù)以上原則,我們將實參帶入已經(jīng)定義的宏中,可以得出答案,最后打印出來的是“12”。

(60)以下程序段給數(shù)組所有的元素輸入數(shù)據(jù),請選擇正確答案填入:

#include<stdiO.h>

main()

(

inta[10],i=0;

while(i<10)scanf("%d",);

)

A)a+(i++)B)&a[i+1]C]a+iD]&a[++i]

(60)A

知識點:格式輸入函數(shù)scanf()

評析:因為a實際上就是數(shù)組a的首地址,而a+x則是數(shù)組中第x個元素的地址,所以在四個選項中,

選項B和C只能輸入一個數(shù)據(jù),選項D不能給a[0]輸入數(shù)據(jù),只有選項A可以完成給數(shù)組所有的元素輸

入數(shù)據(jù)的任務(wù)。

(61)字符(char)型數(shù)據(jù)在微機內(nèi)存中的存儲形式是。

A)反碼B)補碼

C)EBCDIC碼D)ASCH碼

(61)D

知識點:字符數(shù)據(jù)在內(nèi)存中的存儲形式

評析:將一個字符常量放到一個字符變量中,實際上并不是把該字符本身放到內(nèi)存單元中去,而是

將該字符的ASCII碼值放到存儲單元中。

(62)下面程序的輸出是o

typedefunion

(longx⑵;

inty[4];

charz[8];

JMYTYPE;

MYTYPEthem;

main()

{printf("%d\n",sizeof(them));)

A)32B)16C)8D)24

(62)C

知識點:共用體的長度

評析:sizeof(x)是一個標準c函數(shù),它的返回值是x型的數(shù)據(jù)結(jié)構(gòu)占用的內(nèi)存字節(jié)數(shù)。題目中定義了

一個共用體,共用體變量在內(nèi)存中所占的長度等于最長的成員的長度,所以共用體MYTYPE需要8個字

節(jié)的存儲空間,由它定義的變量的長度當然也是8。

(63)不能把字符串:“Hello!”賦給數(shù)組b的語句是。

A)charb[10]={*H,,A',1,T,'O','!'};

B)charb[10]={*h,,'e',T,'!'};

C)charb[10];strcpy(b,"Hello!");

D)charb[10]="Hello!";

(63)B

知識點:給數(shù)組賦值

評析:在c語言中,大寫字母和小寫字母被認為是兩個不同的字符,因此,“hell。!”和“Hell。!”是兩

個不同的字符串。

(64)下面程序的輸出是o

main()

{intx=3,y=6,a=0;

while(x++!=(y—=1))

{a+=l;

if(y<x)break;

}

printf("x:%d,y:%d,a=%d\n",x,y,a);

)

A)x=4.v=4,a=lB)x=5>y=5,a=l

C)x=5,y=4,a=3D)x=5,y=4,a=l

(64)D

知識點:運算符

評析:注意在x++中x值的引用時,這里應(yīng)當是先引用,后自加,具體執(zhí)行過程如下:

第一次while循環(huán):x=3與y=5比較,條件為真,執(zhí)行a=a+l=l;此時,x的值己為4,判斷y〈x不成立,

繼續(xù)執(zhí)行循環(huán);

第二次while循環(huán):x=4與y=4比較,條件為假,此時x的值已為5,退出while循環(huán),執(zhí)行printf。

(65)下面程序的輸出是

main()

(char*s:"12134211";

intvl=O,v2=0,V3=0,v4=0,k;

for(k=0;s[k];k++)

switch(s[k])

(default:V4++;

case*!':vl++:

case*3':v3++:

case'2':v2++:

}

printf("vl=%d,v2=%d,v3=%d,v4=%d\n",vl,v2,v3,V4);

)

A)vl=4,v2=2,v3=l,v4=lB)vl=4,V2=9,V3=3,V4=l

C)vl=5,v2=8,v3=6,v4=lD)vl=8,V2=8,V3=8,v4=8

(65)C

知識點:switch。語句

評析:當switch后面括弧內(nèi)的表達式的值與某一個case后面的常量的表達式的值相等時,就執(zhí)行此

case后面的語句,若所有的case中的常量表達式的值都沒有與表達式的值匹配的,就執(zhí)行default

后面的語句。本題中,for循環(huán)的條件是s數(shù)組的數(shù)組元素值,只要將數(shù)組的值■■一代入程序逐步求

解即可.

(66)下面程序的輸出是.。

main()

(intk=ll;

printf("k=%d,k=%o,k=%x\n",k,k,k);

}

A)k=ll.k=12,k=llB)k=ll,k=13,k=13

C)k=l1,k=013,k=0xbD)k=l1,k=13,k=B

(66)D

知識點:格式字符

評析:在c語言格式字符的輸出中,“%d”是以帶符號的卜進制形式輸出整數(shù),即k=ll:"%。”是以8

進制無符號形式輸出整數(shù)(不輸出前導(dǎo)符0),即k=13:"%x”是以16進制無符號形式輸出整數(shù)(不輸出

前導(dǎo)符Ox),即k=B。

(67)以下敘述中正確的是。

A)c語言比其他語言高級

B)C語言可以不用編譯就能被計算機識別執(zhí)行

c)c語言以接近英語國家的自然語言和數(shù)學語言作為語言的表達形式

D)C語言出現(xiàn)的最晚,具有其他語言的一切優(yōu)點

(67)C

知識點:c語肅風格

評析:計算機語言分為低級語言、匯編語言和高級語言,C語言屬于高級語言,但并不是說C語言比

其他語言高級,所以選項A錯誤;除了低級語言外,其他各種語言都必須編譯成能被計算機識別的二

進制數(shù)才能執(zhí)行,選項B錯誤;c語言出現(xiàn)于1972年到1973年間,并不是出現(xiàn)最晚的語言,所以選項D

也是錯誤的。

(68)下列可用于c語言用戶標識符的一組是。

A)voiddefineWORDB)a3_b3_123Car

C)For-abcIFCaseD)2aDOsizeof

(68)B

知識點:c語言的標識符

評析:c語言規(guī)定標識符只能由字母、數(shù)字和下劃線3種字符組成,且第一個字符必須為字母或下劃

線,所以排除c和D。c語言還規(guī)定標識符不能為c語言的關(guān)鍵字,從而選項A是錯誤的,因為void為關(guān)

鍵字。

(69)請選出正確的程序段—

A)int*pB)int*s,k;

Scanf(u%d",p);*s=100;

C)int*s,k:D)int*s,k;

Char*p,c;char*p,e;

s=&k;s=&k;

p=&c;p二&c;

*p=ta,;s=p;

...*s=l;

(69)C

知識點:指針變量

評析:本題的A和B犯了個同樣的錯誤,即指針變量p定義后并沒有指向具體的變量。也就是說,p

中沒有確定的地址值,它的值是不可預(yù)見的,所指向的單元也是不可預(yù)見的,因此不能進行賦值操

作。另外,在選項D中,s是int指針變量,p是char型指針變量,所指向的內(nèi)存單元所占用的字節(jié)數(shù)

是不同的,因而不能將字符指針變量p的值賦給整型指針變最s。

(70)若有下面的說明和定義,貝ijsizeof(structaa)的值是。

stmctaa

(

imrl;doubler2;floatr3;

unionuu(charul[5];longu2[2])ua;

)mya;

A)30B)29C)24D)22

(70)D

知識點:結(jié)構(gòu)體和共用體變量所占存儲空間大小的計算方法

評析:結(jié)構(gòu)體變量所占內(nèi)存長度是各成員占的內(nèi)存長度之和,每個成員分別占有自己的內(nèi)存單元;

共用體變量所占的內(nèi)存長度等于最長的成員的長度。結(jié)構(gòu)體變量aa中,成員rl占2個字節(jié),「2占8個

字節(jié),r3占4個字節(jié),共用體ua占8個字節(jié),所以共占用2+8+4+8=22個字節(jié)。

(71)算法的空間復(fù)雜度是指。

A)算法程序的長度B)算法程序中的指令條數(shù)

0算法程序所占的存儲空間D)算法執(zhí)行過程中所需要的存儲空間

(71)D

知識點:算法的復(fù)雜度

評析:一個算法的空間復(fù)雜度,一般是指執(zhí)行這個算法所需的內(nèi)存空間。

一個算法所占用的存儲空間包括算法程序所占的空間、輸入的初始數(shù)據(jù)所占的存儲空間以及算法執(zhí)

行過程中所需要的額外空間。

(72)下列關(guān)于棧的敘述中正確的是。

A)在棧中只能插入數(shù)據(jù)B)在棧中只能刪除數(shù)據(jù)

C)棧是先進先出的線性表D)棧是先進后出的線性表

(72)D

知識點:棧的輸入輸出操作

評析:棧是限定在一端進行插入與刪除的線性表。

棧是按照“先進后出”的或“后進先出”的原則組織數(shù)據(jù)的,因此,棧也被稱為“先進后出”表或“后進先

出”表。

(73)在深度為5的滿二叉樹中,葉子結(jié)點的個數(shù)為。

A)32B)31C)16D)15

(73)C

知識點:二叉樹的概念

評析:所謂滿二叉樹是指除最后一層外,每層上的所有結(jié)點都有兩個子結(jié)點。也就是說,在滿:又

樹中,每一層上的結(jié)點數(shù)都達到最大值,即在滿二叉樹的第K層上有2k-l個結(jié)點,且深度為m的滿二

叉樹有2nl個結(jié)點。

在滿:叉樹中,最后一層的結(jié)點個數(shù)就是葉子結(jié)點的個數(shù),本題中深度為5,故葉子結(jié)點數(shù)為

25T=24==16。

(74)對建立良好的程序設(shè)計風格,下面描述正確的是。

A)程序應(yīng)簡單、清晰、可讀性好B)符號名的命名要符合語法

0充分考慮程序的執(zhí)行效率D)程序的注釋可有可無

(74)A

知識點:程序設(shè)計風格

評析:要形成良好的程序設(shè)計風格,主要應(yīng)注重和考慮下述一些因素:符號名的命名應(yīng)具有一定的

實際含義,以便于對程序功能的理解;正確的注釋能夠幫助讀者理解程序;程序編寫應(yīng)優(yōu)先考慮清

晰性,除非對效率有特殊要求,程序編寫要做到清晰第一,效率第二。

(75)下面對對象概念描述錯誤的是。

A)任何對象都必須有繼承性B)對象是屬性和方法的封裝體

C)對象問的通訊靠消息傳遞D)操作是對象的動態(tài)性屬性

(75)A

知識點:對象的概念

評析:對象是由數(shù)據(jù)和容許的操作組成的封裝體,與客觀實體有直接的對應(yīng)關(guān)系。對象之間通過傳

遞消息互相聯(lián)系,以模擬現(xiàn)實世界中不同事物彼此之間的聯(lián)系。

(76)下面不屬于軟件工程的3個要素的是o

A)工具B)過程C)方法D)環(huán)境

(76)D

知識點:軟件:[程的要素

評析:軟件工程包括3個要素,即方法、工具和過程。

(77)程序流程圖(PFD)中的箭頭代表的是o

A)數(shù)據(jù)流B)控制流C)調(diào)用關(guān)系D)組成關(guān)系

(77)B

知識點:軟件設(shè)計工具

評析:程序流程圖(PFD)是一種傳統(tǒng)的、應(yīng)用廣泛的軟件過程設(shè)計表示工具,通常也稱為程序框圖,

其箭頭代表的是控制流。

(78)在數(shù)據(jù)管理技術(shù)的發(fā)展過程中,經(jīng)歷了人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。其中

數(shù)據(jù)獨立性最高的階段是_______。

A)數(shù)據(jù)庫系統(tǒng)B)文件系垢C)人工管理D)數(shù)據(jù)項管理

(78)A

知識點:數(shù)據(jù)管理技術(shù)的發(fā)展

評析:在數(shù)據(jù)管理技術(shù)的發(fā)展過程中,經(jīng)歷了人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。其

中數(shù)據(jù)獨立性最高的階段是數(shù)據(jù)庫系統(tǒng)。

(79)用樹形結(jié)構(gòu)來表示實體之間聯(lián)系的模型稱為。

A)關(guān)系模型B)層次模型C)網(wǎng)狀模型D)數(shù)據(jù)模型

(79)B

知識點:數(shù)據(jù)庫模型

評析:層次模型是最早發(fā)展出來的數(shù)據(jù)庫模型。它的基本結(jié)構(gòu)是樹形結(jié)構(gòu),這種結(jié)構(gòu)方式在現(xiàn)實世

界中很普遍,如家族結(jié)構(gòu)、行政組織機構(gòu),它們自頂向下、層次分明。

(80)關(guān)系數(shù)據(jù)庫管理系統(tǒng)能實現(xiàn)的專門關(guān)系運算包括。

A)排序、索引、統(tǒng)計B)選擇、投影、連接

C)關(guān)聯(lián)、更新、排序D)顯示、打印、制表

(80)B

知識點:關(guān)系的運卯操作

評析:關(guān)系數(shù)據(jù)庫管理系統(tǒng)能實現(xiàn)的專門關(guān)系運算,包括選擇運算、投影運算、連接運算。

(81)下列語句中符合C語言語法的賦值語句是一。

A)a=7+b+c=a+7B)a=a+7

C)a=7+b,b++,a+7;D)a=7+b,c?a+7;

(81)D

知識點:C表達式類型

評析:本題的考查點是賦值語句。

c語言中,賦值語句具有其他高級語言的賦值語句的一切特點和功能。但也有不同:

①c語言中的賦值號“=”是一個運算符,在其他大多數(shù)語言中賦值號不是運算符。

②關(guān)于“賦值表達式''這一概念,其他大多數(shù)高級語言并沒有,但在c語言中必須區(qū)分:例如:i=i+l

是一個表達式,而不是語句;i=i+l:是一個語句。可以看到,一個表達式的最后加一個分號就成了

一個語句。

由于賦值語句是由賦值表達式加分號構(gòu)成,而賦值表達式是賦值運算符“=”將一個變量和一個表達式

連接起來的式子,所以選項A、B均不是合法的賦值語句;選項c中,存在兩種運算符:逗號運算符和

賦值運.算符,其中賦值運算符的優(yōu)先級高,逗號表達式“a=7+b,b++,a+7”的值就是表達式“a+7”的

值,即選項C也就可以表示為:a+7;。由此可見,選項C也不是一個合法的賦值語句。選項D是用逗

號運算符連接的兩個賦值語句。因此符合題目要求的應(yīng)該是選項D。

(82)下面程序

main()

{inty=9;

for(;y>0;y-)(

if(y%3==0)

{printf("y);

continue;

)

)

}

的輸出是O

A)741B)852C)963D)875421

(82)B

知識點:用if語句實現(xiàn)選擇結(jié)構(gòu)

評析:本題的考查點是if判斷語句。

是求余運算符,所以if判斷語句中實際是指出只有當y可以被3整除時方可以繼續(xù);一y是先進

行y的自減運算,再使用y值。所以,最后的打印結(jié)果應(yīng)當為“852”。

(83)下面程序

main()

(

inta=T,b=4,k;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論