上午試題:
●數字簽名技術可以用于對用戶身份或信息的真實性進行驗證與鑒定,但是下列的 (l) 行為不能用數字簽名技術解決。
(1):A.抵賴 B.偽造 C.篡改 D,竊聽
●軟件是一種 (2) 的產品。為了軟件產業的健康發展,應對軟件產品的 (3) 上進行保護。
(2) A、易復制 B、易損壞 C、易開發 D、易使用
(3) A、 技術 B、版權 C、開發 D、使用說明
●用戶提出需求并提供經費,委托軟件公司開發軟件。如果雙方商定的協議中未涉及軟件著作權歸屬,則軟件著作權屬于 (4) 所有。
(4) A、用戶 B、軟件公司 C、用戶、軟件公司雙方 F、經裁決所確認的一方
● (5) 是面向對象程序設計語言不同于其它語言的主要特點。是否建立了豐富的 (6) 是衡量一個面向對象程序設計語言成熱與否的一個重要標志。 (7) 是在類及子類之間自動地共享數據和方法的一種機制。
(5) A、繼承性 B、消息傳遞 C、多態性 D、靜態聯編
(6) A、函數庫 B、類庫 C、類型庫 D、方法庫
(7) A、調用 B、引用 C、消息傳遞 D、繼承
●前序遍歷序列與中序遍歷序列相同的二叉樹為 (8) ,前序遍歷序列與后序遍歷序列相同的二叉樹為 (9) 。
(8) A、根結點無左子樹的二叉樹
B、根結點無右子樹的二叉樹
C、只有根結點的二叉樹或非葉子結點只有左子樹的二叉樹
D、只有根結點的二叉樹或非葉子結點只有右子樹的二叉樹
(9) A、非葉子結點只有左子樹的二叉樹
B、只有根結點的二叉樹
C、根結點無右子樹的二叉樹
D、非葉子結點只有右子樹的二叉樹
● 假設一棵二叉樹的后序遍歷序列為DGJHEBIFCA,中序遍歷序列為DBGEHJACIF,則其前序遍歷序列為 (10) 。
(10) A、ABCDEFGHIJ B、ABDEGHJCFI C、ABDEGHJFIC D、ABDEGJHCFI
●已知一個線性表(38,25,74,63,52,48),采用的散列函數為H(Key)=Key mod 7,將元素散列到表長為7的哈希表中存儲。若采用線性探測的開放定址法解決沖突,則在該散列表上進行等概率成功查找的平均查找長度為 (11) ;若利用拉鏈法解決沖突,則在該散列表上進行等概率成功查找的平均查找長度為 (12) 。
(11) A、1.5 B、1.7 C、2.0 D、2.3
(12) A、1.0 B、7/6 C、4/3 D、3/2
●編譯器和解釋器是兩種高級語言處理程序,與編譯器相比, (13) 。編譯器對高級語言源程序的處理過程可以劃分為詞法分析、語法分析、語義分析、中間代碼生成、代碼優化、目標代碼生成等幾個階段:其中,代碼優化和 (14) 并不是每種編譯器都必需的。詞法分析的作用是識別源程序中的 (15) ;語法分析中的預測分析法是 (16) 的一種語法分析方法;編譯器在 (17) 階段進行表達式的類型檢查及類型轉換。
(13) A、解釋器不參與運行控制,程序執行的速度慢
B、解釋器參與運行控制,程序執行的速度慢
C、解釋器參與運行控制,程序執行的速度快
D、解釋器不參與運行控制,程序執行的速度快
(14) A、詞法分析 B、語法分析 C、中間代碼生成 D、語義分析
(15) A、字符串 B、單詞 C、標識符 D、語句
(16) A、自左至右 B、自頂向下 C、自底向上 D、自右至左
(17) A、詞法分析 B、語法分析 C、語義分析 D、目標代碼生成
● 當程序運行陷于死循環時,說明程序中存在 (18) 。在C語言中,函數定義及函數調用應該遵循的原則是 (19) 。以求n!為例,采用遞歸方式編寫的程序相對于遞推方式的程序執行效率較低的原因是 (20) 。
(18) A、語法錯誤 D、靜態的語義錯誤 C、詞法錯誤 D、動態的語義錯誤
(19) A、可以進行函數的嵌套定義,不可以進行函數的嵌套調用
B、不可以進行函數的嵌套定義,可以進行函數的嵌套調用
C、既可以進行函數的嵌套定義,也可以進行函數的嵌套調用
D、既不能進行函數的嵌套定義,也不能進行函數的嵌套調用
(20) A、遞歸程序經編譯后形成較長目標代碼,所以需要較多的運行時間
B、遞歸程序執行時多次復制同一段目標代碼占用了較多的時間
C、遞歸程序執行時一系列的函數調用及返回占用了較多的時間
D、遞歸程序執行過程中重復存取相同的數據占用了較多的時間
● 白盒測試方法一般適合用于 (21) 測試。
(21) A、單元 B、系統 C、集成 D、確認
●瀑布模型(Waterfall Model)突出的缺點是不適應 (22) 的變動。
(22) A、算法 B、平臺 C、程序語言 D、用戶需求
●在數據流圖中, CD表示 (23) 。 表示 (24) 。
(23) A、加工 B、外部實體 C、數據流 D、存儲
(24) A、加工 B、外部實體 C、數據流 D、存儲
●結構化分析方法(SA)的一個重要指導思想是 (25) 。
(25) A.自頂向下,逐步抽象
B.自底向上,逐步抽象
C.自頂向下,逐步分解
D.自底向上,逐步分解
●軟件從一個計算機系統轉換到另一個計算機系統運行的難易程度是指軟件(26)。
在規定的條件下和規定的時間間隔內,軟件實現其規定功能的概率稱為(27)。
(26) A、兼容性 B、可移植性 C、可轉換性 D、可接近性
(27) A、可使用性 B、可接近性 C、可靠性 D、穩定性
●Jackson設計方法是由英國的M.Jackson提出的,它是一種面向 (28) 的軟件設計方法。
(28) A. 對象 B.數據流 C.數據結構 D.控制結構
●系統中有四個作業,它們的到達時間、運行時間、開始時間、完成時間和周轉時間如表1所示,該系統采用的作業調度算法是 (29) 。
表1
作業 到達時間 計算時間(分) 開始時間 完成時間 周轉時間(分)
J1 8:00 60 8:00 9:00 60
J2 8:10 20 9:10 9:30 80
J3 8:20 10 9:00 9:10 50
J4 8:40 15 9:30 9:45 65
(29) A、先來先服務 B、短作業優先 C、響應比高者優先 D、不能確定●為了保證對系統中文件的安全管理,任何一個用戶進入系統時都必須進行注冊,通常將這一級安全管理稱之為 (30) 安全管理。
在進程狀態轉換過程中,可能會引起進程阻塞的原因是 (31) 。計算機系統出現死鎖是因為
(32) 。 不通過CPU進行主存與I/0設備間大量的信息交換方式可以是 (33) 方式。
(30) A、用戶級 B、系統級 C、文件級 D、目錄級
(31) A、時間片到 B、執行V操作 C、I/O完成 D、執行P操作
(32) A、系統中有多個阻塞進程
B、資源數大大小于系統中的進程數
C、系統中多個進程同時申請的資源總數大大超過系統資源總數.
D、若干進程相互等待對方已占有的資源
(33) A、DMA B、中斷 C、查詢等待 D、程序控制
● 設某種二叉樹有如下特點;結點的子樹數目不是2個,則是0個。這樣的一棵二叉樹中有m(m>O)個子樹為0的結點時,該二叉樹上的結點總數為 (34) 。
(34) A.2m+l B.2m-1 C.2(m-1) D.2(m+1)
●數據庫系統實現數據獨立性是因為采用了 (35) 。當兩個子查詢的結果 (36) 時,可以執行并、交、差操作。SELECT語句中“SELECT DISTINCT”表示查詢結果中 (37) 。若4元關系R為:R(A,B,C,D),則 (38) 。給定關系模式學生(學號,課程號,名次),若每一名學生每門課程有一定的名次,每門課程每一名次只有一名學生,則以下敘述中錯誤的是 (39) 。
(35) A、層次模型 B、網狀模型 C、關系模型 D、三級模式結構
(36) A、結構完全不一致 B、結構完全一致 C、結構部分一致 D、主鍵一致
(37) A、去掉相同的屬性名 B、去掉了重復的列
C、行都不相同 D、屬性值都不相同
(38) A、 (R)為取屬性值為A、C的兩列組成新關系
B、 (R)為取屬性值為A、C的兩列組成新關系
C、 (R)與 (R)是等價的
D、 (R)與 (R)是不等價的
(39) A、(學號,課程號)和(課程號,名次)都可以作為候選鍵
B、只有(學號,課程號)能作為候選鍵
C、關系模式屬于第三范式
D、關系模式屬于BCNF
● 關系R和S如下表所示,關系代數表達式 的結果為 (40) ,與該表達式等價的SQL語句為 (41) 。
R關系 A B C a b c b a d c d e d f g S關系 A B E b a d d f g c d k h c l
(40)
A、 A B a b b a c d d f B、 A B a a b f c b d c C、 A B a f a d b f c f D、 A B b a d f c d h c
(41) A、SELECT A,B FROM R,S WHERE C<B
B、SELECT R.A,S.B From R,S WHERE R.C<S.B
C、SELECT A,B FROM R WHERE C<(SELECT B FROM S)
D、SELECT 1,5 FROM R WHERE C<(SELECT B FROM S)
●對動態圖像進行壓縮處理的基本條件是:動態圖像中幀與幀之間具有 (42) 。
(42) A、相關性 B、無關性 C、相似性 D、相同性
●在顯存中,表示黑白圖像的像素點最少需(43)位。彩色圖像可以用 (44) 三基色表示。
(43) A、1 B、2 C、3 D、4
(44) A、紅黃藍 B、紅綠藍 C、綠黃藍 D、紅綠黃
●以像素點陣形式描述的圖像稱為 (45) 。
(45) A、位圖 D、投影圖 C、矢量圖 D、幾何圖
●用n個二進制位表示帶符號純整數時,已知[X]補、[Y]補,則當 (46) 時,
等式[X]補+[Y]補=[X+Y]補如成立。
(46) A、-2n≤(X+Y) ≤2n-1 B、-2n-1≤(X+Y) <2n-1
C、-2n-1-1≤(X+Y) ≤2n-1 D、-2n-1≤(X+Y)< 2n
● 對于16位的數據,需要(47)個校驗位才能構成海明碼。
在某個海明碼的捧列方式D9D8D7D6D5D4P4D3D2D1P3D0P2P1中,其中Di(0≤i≤9)表
示數據位,Pj(1≤j≤4)表示校驗位,數據位D8由 (48) 進行校驗。
(47) A、3 B、4 C、5 D、6
(48) A、P4P2P1 B、P4P3P2 C、P4P3P1 D、P3P2P1
●在以下邏輯電路圖中,當(49)時,F=A⊕B~當(50)時,F=A∨B。
(49) A、X=0,Y=0 B、X=0,Y=1 C、X=1,Y=1 D、X=1,Y=0
(50) B、X=0,Y=1 B、X=0,Y=0 C、X=1,Y=1 D、X=1,Y=0
● (51) 。
(51) A、 B、 C、 D、
● 設機器碼的長度為8位,已知x,z為帶符號純整數,y為帶符號純小數,
[X]原=[Y]補+[Z]移=11111111,求出x、y、z的十進制真值:X= (51) ,
Y= (53) ,Z= (54) 。
(52) A、-1 B、127 C、-127 D、1
(53) A、1/128 B、-1/128 C、-127/128 D、127/128
(54) A、-1 B、127 C、-127 D、1
●某系統總線的一個總線周期包含3個時鐘周期,每個總線周期中可以傳送32位數據。若總線的時鐘頻率為33MHz,則總線帶寬為 (55) 。
(55) A.132MB/s B.33MB/s C.44MB/s D.396MB/s
●計算機指令系統中采用不同尋址方式的主要目的是 (56) 。在下列尋址方式中取得操作數速度最慢的是 (57) 。
(56) A、可直接訪問內存或外存
B、提供擴展操作碼并降低指令譯碼難度
C、簡化匯編指令的設計
D、縮短指令長度,擴大尋址空間,提高編程靈活性
(57) A、相對尋址 B、基址尋址
C、寄存器間接尋址 D、存儲器間接尋址
●某硬盤中共有9個盤片,16個記錄面,每個記錄面上有2100個磁道,每個磁道分為64個扇區,每扇區為512字節,則該硬盤的存儲容量為 (58) 。磁盤的位密度隨著磁道從內向外而 (59) 。
(58) A、590.6MB B、9225MB C、1050MB D、1101MB
(59) A、減少 B、不變 C、增加 D、視磁盤而定
● 對8位補碼操作數(A5)16,進行2位算術右移的結果為 (60) 。
(60) A、(D2)16 B、(52)16 C、(E9)16 D、(69)16
● 通過電話線連接因特網,可以使用的鏈路層協議有SLIP和 (61) ,這種情況下給主機 (62) 一個IP地址。如果通過N-ISDN連網,用戶可以使用的信道帶寬是2B+D,數據速率最大可達到 (63) 。如果通過局域網連接因特網,接入方式可以采用ADSL,最高下行速率可以達到 (64) 。CHINADDN是中國電信提供的數字數據網,它采用 (65) 的交換技術為用戶提供不同速率的專線連接。
(61) A、PPP B、HDLC C、Ethe.net D、POP
(62) A、靜態分配 B、動態分配 C、自動產生 D、不分配
(63) A、56kb/s B、64kb/s C、128kb/s D、144kb/s
(64) A、1.544Mb/s B、2.048MB/s C、8Mb/s D、l0Mb/s
(65) A、時分多路 B、空分多路 C、碼分多址 D、頻分多路
● In C language, one method of communicating data between functions is by (66) 。
(66) A、arguments B、variables C、messages D、constants
● In C program,all variables must be (67) before use, usually at the beginning of the function before any (68) statements。
(67) A、stated B、instructed C、illustrated D、declared
(68) A、operative B、active C、executable D、processing
● When a string constant is written in C program, the compiler creates (69) of characters containing the characters of the string, and terminating it with “\0”.
(69) A、a group B、an array C、a set D、a series
● In C language, (70) variables have to be defined outside function, this (71) actual storage for it.
(70) A、internal B、output C、export D、external
(71) A、locates B、allocates C、finds D、looks for
●In C language, the increment and decrement (72) can only be applied to variables, so an expression like x=(i+j)++ is illegal.
(72) A、operation B、operate C、operator D、operand
● In C program, it is convenient to use a (73) to exit from a loop.
(73) A、end B、break C、stop D、quit
● In C language, (74) is a collection of one or more variables, possibly of different types, grouped together under a single name for convenient handling.
(74) A、a structure B、a file C、an array D、a string
● In C language, the usual expression statements are (75) or function calls.
(75) A、I/Os B、assignments C、operations D、evaluations
下午試題:
試題一
閱讀下列算法說明和算法,將應填入 (n) 處的字句寫在答題紙的對應欄內。
[算法說明]
為便于描述屏幕上每個像素的位置,在屏幕上建立平面直角坐標系。屏幕左上角的像素設為原點,水平向右方向設為x軸,垂直向下方向設為y軸。
設某種顯示器的像素有128X128,即在每條水平線和每條垂直線上都有128個像素。這樣,屏幕上的每個像素可用坐標(x,y)來描述其位置,其中x和y都是整數,0≤x≤127,0≤y≤127。
現用一維數組MAP來存儲整個一屏顯示的位圖信息。數組的每個元素有16位二進位,其中每位對應一個像素,“1”表示該像素“亮”,“0”表示該像素“暗”。數組MAP的各個元素與屏幕上的像素相對應后,其位置可排列如下:
MAP(0),MAP(1),……,MAP(7)
MAP(8),MAP(9),……,MAP(15)
……
MAP(1016),MAP(1017),……,MAP(1023)
下述算法可根據用戶要求,將指定坐標(x,y)上的像素置為“亮”或“暗”。
在該算法中,變量X,Y,V,S,K都是16位無符號的二進制整數。數組BIT中的每個
元素BIT(K)(K=0,…,15)的值是左起第K位為1,其余位均為0的16位無符號二進制整
數,即BIT(K)的值為2l5-k。
[算法]
第1步根據用戶指定像素的位置坐標(x,y),算出該像素的位置所屬的數組元素MAP(V)。這
一步的具體實現過程如下:
1、將x送變量X,將y送變量Y;
2、將Y左移 (1) 位,仍存入變量Y;
3、將X右移 (2) 位,并存入變量S;
4、計算Y+S,存入變量V,得到像素的位置所屬的數組元素MAP(V)。
第2步算出指定像素在MAP(V)中所對應的位置K(K=0,…,15)。這一步的具體實現過程如下:
將變量X與二進制數 (3) 進行邏輯乘運算,并存入變量K。
第3步根據用戶要求將數組元素MAP(V)左起第K位設置為”1”或”0”。這一步的具體實現過程
如下: ,
1、為在指定像素置“亮”,應將MAP(V)與BIT(K)進行邏輯 (4) 運算,并存入MAP(V)。
2、為在指定像素置“暗”, 應先將BIT(K)各位取反,再將MAP(V)與BIT(K)進行邏輯 (5) 運算,并存入MAP(V)。
試題二
閱讀下列函數說明和C代碼,將應填入-匹l處的字句寫在答題紙的對應欄內。
[函數2.1說明]
函數strcat(char *si,char *s2)是將字符串s2連接在字符串si之后,構成一個首指
針為s1的字符串。
[函數2.1]
void strcat(char *sl,char *s2)
{ while(*s1!='\0') ;
(1) :
for( ; (2) ;s1++,s2++);
}
[函數2.2說明] .
本函數輸入n(<1000)個整數到指定數組,求該數組中最大元素的值和此元素的下標,最大元素值以函數值返回,此元素的下標通過指針形參帶回調用處。
[函數2.2]
#include<stdio.h>
#define MAXLINE 1000
int maxindex(int a[],int *index)
{ int i,n;
do {
printf("Please input n\n");
scanf("%d",&n);
}while( (3) );/*保證輸入的n在限定范圍內*/
for(i=0 ; i<n ; i++)
scanf("%d",&a[i]);
*index=0;
for(i=1 ; i<n ; i++)
if( (4) ) *index=i;
return (5) ;
}
試題三
閱讀下列函數說明和C代碼,將應填入(n)處的字句寫在答題紙的對應欄內。
[函數3.1說明]
函數insert_sort(int a[],int count)是用直接插入排序法對指定數組的前count個元素從小到大排序。
直接插入排序法的基本思想是:將整個數組(count個元素)看成是由有序的(a[0],…,a[i-1])和無序的(a[i],…,a[Count-1))兩個部分組成;初始時i等于1,每趟排序時將無序部分中的第一個元素a[i]插入到有序部分中的恰當位置,共需進行count-1趟,最終使整個數組有序。
[函數3.1]
void insert_sort(int a[] , int count)
{ int i, j, t;
for(i=1 ; i<count ; i++)
{ /*控制a[i],……, a[count-1]的比較和插入*/
t=a[i];
j= (1) ;
while (j>=0 && t<a[j])
{ /*在有序部分中尋找元素a[i]的插入位置*/
(2) ;
j--;
}
(3) ;
}
}
[函數3.2說明]
遞歸函數invert(int a[],int k)將指定數組中的前k個元素逆置。
[函數3.2]
void invert(int a[] , int k);
{ int t;
if ( (4) ) {
invert( (5) );
t=a[0];
a[0]=a[k-1];
a[k-1]=t;
}
}
試題四
閱讀下列程序說明和C代碼,將應填入 (n) 處的字句寫在答題紙的對應欄內。
[程序4說明]
本程序用古典的Eratosthenes的篩法求從2起到指定范圍內的素數。如果要找出2至10中的素數,開始時篩中有2到10的數,然后取走篩中的最小的數2,宣布它是素數,并把該素數的倍數都取走。這樣,第一步以后,篩子中還留下奇數3、5、7、9:重復上述步驟,再取走最小數3,宣布它為素數,并取走3的倍數,于是留下5、7。反復重復上述步驟,直至篩中為空時,工作結束,求得2至10中的全部素數。
程序中用數組sieve表示篩子,數組元素sieve[i]的值為1時,表示數i在篩子中,值為-1時表示數i已被取走。
[程序4]
#include <stdio.h>
#define MAX 22500
main()
{ unsigned int i , range , factor , k ;
int sieve[MAX] ;
printf(“please input the range : ”);
scanf(“%d”,&range); /*range指出在多大的范圍內尋找素數 */
for (i=2 ; i<=range ; i++) /* 篩子初始化 */
(1) ;
factor=2 ;
while (factor<=range) {
if ( (2) ) { /*篩子最小數是素數 */
printf(“%d\t”,factor);
k=factor;
while (k<=range)
{ /*移走素數的倍數 */
(3) ; /*篩中的個數減一 */
k= (4) ;
}
}
(5) ;
}
試題五
閱讀下列函數說明和C代碼,將應填入 (n) 處的字句寫在答題紙的對應欄內。
設二叉樹的結點數據類型為:
typedef struct node{
char data;
struct node *left;
struct node *right:
}BTREE;
[函數5.1說明]
函數void SortTreelnsert(BTREE **tree,BTREE*s)采用遞歸方法,將結點s插入以*tree為根結點指針的二叉排序樹(二叉查找樹)中。
[函數5.1)
void SortTreelnsert(BTREE **tree,BTREE *S)
{ if(*tree = = NULL) *tree=S;
else if(S->data<(*tree)->data)
SortTreelnsert( (1) ,S);
else if(S->data>(*tree)->data)
SortTreelnsert( (2) ,S);
}
[函數5.2說明]
函數void TraversalTree(BTREE *tree)用非遞歸方法,對以tree為根結點指針的二叉樹進行后序遍歷。
[函數5,2]
void TraversalTree(BTREE *tree)
{ BTREE *stack[1000],*p;
int tag[1000],top=0;
p=tree;
do {
while(p!=NULL){
stack[++top]=p;
(3) ;
tag[hop]=0; /*標志棧頂結點的左子樹已進行過后序遍歷*/ :
}
while(top>0 && (4) ){ /* 棧頂結點的右子樹是否被后序遍歷過*/
p=stack[top--];
putchar(p->data);
}
if (top>0) { /*對棧頂結點的右子樹進行后序遍歷*/
(5) ;
tag[top]=1;
}
}while(top>0);
}
參考答案:
上午答案
(1)D (2)A (3)B (4)B (5)A
(6)B (7)D (8)D (9)B (10)B
(11)C (12)C (13)B (14)C (15)B
(16)B (17)C (18)D (19)B (20)C
(21)A (22)D (23)A (24)D (25)C
(26)B (27)C (28)C (29)C (30)A
(31)D (32)D (33)A (34)B (35)D
(36)B (37)C (38)C (39)B (40)C
(41)B (42)A (43)A (44)B (45)A
(46)B (47)C (48)C (49)C (50)D
(51)B (52)C (53)B (54)B (55)C
(56)D (57)D (58)C (59)A (60)C
(61)A (62)B (63)D (64)C (65)A
(66)A (67)D (68)C (69)B (70)D
(71)B (72)A (73)A (74)C (75)D
下午答案
試題一 試題二
(1) 3 (1) s1++
(2) 4 (2) *s1= *s2
(3) 1111 (3) n<=0 ? ? n>=MAXLINE
(4) 或(加) (4) a[i] > a[*index]
(5) 與(乘) (5) a[*index]
試題三 試題四
(1) i-1 (1) sieve[i] = 1
(2) a[j+1] = a[j] (2) sieve[factor] == 1 或 sieve[factor] > 0 或 sieve[factor] >= 0 或 sieve[factor] != -1
(3) a[j+1] = t (3) sieve[k] = -1
(4) k > 1 (4) k+factor
(5) a+1 , k-2 (5) factor++
試題五
(1) &((*tree) -> left)
(2) &((*tree) -> right) (4)tag[top] == 1 或 tag[top] 或 tag[top] != 0
(3) p = p -> left 或 p = stack[top] -> left (5) p = stack[ top ] -> right
文章來源于領測軟件測試網 http://www.kjueaiud.com/