計算機二級C語言選擇題題庫


近來為了准備二級,水了不少二級選擇題,大概1000道左右,總結一下其中的一些錯題,題解是刷題軟件中的解釋,可能會有一些重復。

 

 結果出來了,拿了個良,應該是選擇題錯的多了,,,二級水一水就行了,其實用處不大

 設表的長度為n。在下列算法中,最壞情況下時間復雜度最高的是

A)循環鏈表中尋找最大項

B)有序鏈表查找

C)堆排序

D)希爾排序

對長度為n的線性表排序,在最壞情況下,有序鏈表查找為O(n),循環鏈表中尋找最大項為O(1),堆排序需要比較的次數為O(nlog2n),希爾排序所需要的比較次數為O(n1.5

 

 

 設循環隊列的存儲空間為Q(1: 50),初始狀態為 front=rear=50。經過一系列正常的操作后,front=rear-1。為了在該隊列中尋找值最大的元素,在最壞情況下需要的比較次數為

A)0

B)1

C)50

D)49

 

 

該題中rear-front=rear-(rear-1)>0,則該循環隊列中的元素個數為rear-front=rear-(rear-1)=1。因隊列中只有1個元素,故尋找值最大的元素不需要進行比較,即比較次數為0。

 

 

 

 

 

 設順序表的長度為16,對該表進行簡單插入排序。在最壞情況下需要的比較次數為

A)60

B)30

C)15

D)120

對長度為n的線性表排序,在最壞情況下,簡單插入排序需要比較的次數為n(n-1)/2。當表的長度為16,則在最壞情況下,簡單插入排序所需要的比較次數為16*(16-1)/2=120。

 

 

 下面描述中正確的是

A)軟件測試要確定錯誤的性質和位置

B)軟件測試是軟件質量保證的重要手段 

C)軟件調試是為了改善軟件的性能

D)軟件調試的任務是發現並改正程序中的錯誤

 

軟件測試是保證軟件質量的重要手段,其主要過程涵蓋了整個軟件生命期的過程,包括需求定義階段的需求測試、編碼階段的單元測試、集成測試以及后期的確認測試、系統測試,驗證軟件是否合格、能否交付用戶使用等;軟件測試的目的是為了發現錯誤而執行程序的過程;程序調試的任務是診斷和改正程序中的錯誤。

 

 

 

 數據庫系統內部采用三級模式和模式間的二級映射,是為了提高數據庫的邏輯獨立性和

A)物理獨立性

B)並發性

C)數據獨立性

D)安全性

 

數據庫系統中采用多級映射是為了提高數據的物理獨立性。

 

 

 

 在家政服務管理系統中,實體服務員與實體客戶間的聯系是

A)1:1

B)1:N

C)M:N

D)N:1

 

 

實體服務員可以服務多名實體客戶,實體客戶可以由多名服務員服務,所以聯系為M:N

 

 

 

 以下敘述正確的是

A)函數體內的定義語句和可執行語句允許任意交替出現

B)C語言中的語句之間必須用分號作為分隔符

C)C程序總是以main()作為程序執行的起始行

D)main()函數若不帶參數,其后面的一對圓括號可省略

main()函數后面的括號告訴編譯器這是一個函數,不可以省略;在復合語句中,不僅可以有執行語句,還可以有定義語句,定義語句應該出現在執行語句的前面;C語言中的某些語句可以不用分號,例如if語句、宏定義。

 

 

 

 

 

 

 

 對於 if(表達式) ,以下說法正確的是

A)在“表達式”中不能出現非邏輯值

B)“表達式”的值必須是邏輯值

C)在“表達式”中必須出現變量

D)“表達式”的值可以是1

 

表達式的值不一定是邏輯值,存在非邏輯值,表達式可以是確定的值,即變量為非必需。

 

 

 

 設有定義:
int n = 1234;  
double x = 3.1415;
則語句: printf("%3d,%1.3f\n", n, x); 的輸出結果是

A)123,3.142

B)123,3.141

C)1234,3.142

D)1234,3.141

 

函數printf()中,%md指輸出帶符號的十進制整數,給定最小寬度為m位,不足m位左端補空格,超過m位按實際位數輸出;%.nf表示以小數的形式輸出實數,小數占n位,對應題目,該題的輸出結果應為1234,3.142

 

 

 

 

 

 

 

 

 

 

 有如下程序
#include <stdio.h>
int change(int* data)
{
    return (*data) ++;
}
main() 
{
    int data = 123;
    change(&data);
    printf("%d,", data);
    data = change(&data);
    printf("%d,", data);
    printf("\n");
}
程序運行后的輸出結果是

A)123,124,

B)124,123,

C)123,123,

D)124,124,

 

函數change()為中先獲取指針data指向的變量的數值並返回之后該數值再自增。函數為地址傳參,形參與實參的變化保持同步,所以調用語句"change(&data);"執行完畢后,data的值為123+1=124,調用語句"data = change(&data);",函數change()將返回值賦值給data,返回的是變化之前的數據,所以輸出結果仍然是124

 

 

 有下列程序
#include <stdio.h> 
main( )
{  
   char v[4][10]={"efg","abcd","mnopq","hijkl"},*p[4],t;  
   int i,j;
   for (i=0; i<4; i++)
      p[i] = v[i];
   for (i=0; i<3; i++)
      for (j=i+1; j<4; j++)
         if (*p[i] > *p[j])
         {  t = *p[i]; *p[i] = *p[j]; *p[j] = t;  }
   for (i=0; i<4; i++)
      printf("%s " , v[i]); 
}
程序執行后的輸出結果是

A)mijkl hnopq ebcd afg 

B)afg ebcd hnopq mijkl

C)abcd efg hijkl mnopq

D)efg abcd mnopq hijkl

 

本題主要考查for循環語句。第一次循環將數組V賦值給了數組p,第二次循環實現了將指針所對應存儲的首地址進行了升序排序,第三次循環將被重新賦值的數組v輸出,所以經分析可知程序執行后的輸出結果為“afg ebcd hnopq mijkl”。

 

 

 有下列程序
#include <stdio.h>
main( )
{  
   char v[5][10]={"efg","abcd","snopq","hijkl","xyz"};  
   printf("%s,%c,%s,%c,%s" , *v, **(v+3), v[4]+2, *(v[2]+4),v[1]+1); 
}
程序執行后的輸出結果是

A)efg,h,z,q,bcd

B)efgabcdsnopqhijklxyz,h,z,q,bcd

C)efgabcdsnopqhijklxyz,d,zyz,w,bbcd

D)efg,d,zyz,w,bbcd

 

 

本題考查對指針的理解。*v存儲的字符串為efg,**(v+3)存儲的是字符串的首地址即“h”,v[4]+2存儲的字符串為z,*(v[2]+4)存儲的字符為q,v[1]+1存儲的字符串為“bcd”。故程序執行后的輸出結果為“efg,h,z,q,bcd”。

 

 

 若有宏定義 :#define A_RECT(W,H)  W*H 和以下程序段
     int x=5,y=6,area1,area2; 
     area1= A_RECT((x-1),(y+1));
     area2= A_RECT(x+3,y-1);
     執行上述程序段后,變量area1和area2的值分別是

A)28  22

B)0  22

C)0  40

D)28  40

 

area1=(x-1)*(y+1)=4*7=28,area2=x+3*y-1=5+3*6-1=22。

 

 

 以下關於C語言文件系統的敘述中正確的是

A)fprintf()與fwrite()函數功能相同

B)fscanf()與fread()函數功能相同

C)文件以"r"方式打開后,可以存儲文本類型的數據

D)以"w"或"wb"方式打開的文件,不可以從中讀取數據

 

 

fscanf()函數用於從文件中讀取數據;fread經常被用在對二進制文件的讀入函數;fprintf()的功能是將內存中的數據轉換成對應的字符,並以ASCII代碼形式輸出到文本文件中;函數fwrite()的功能是將數據寫入二進制文件;"w"或"wb"方式代表寫入文件數據,r以只讀方式打開文本文件。r方式表示只讀

 

 

 下列敘述中錯誤的是

A)算法的時間復雜度與實現算法過程中的具體細節無關

B)算法的時間復雜度與使用的程序設計語言無關

C)算法的時間復雜度與使用的計算機系統無關

D)對於各種特定的輸入,算法的時間復雜度是固定不變的

 

算法的時間復雜度是指執行算法所需要的計算工作量,可以用算法在執行過程中所需基本運算的執行次數來度量算法的工作量,對於一個固定的規模,算法所執行的基本運算次數還可能與特定的輸入有關。

 

 

 循環隊列的存儲空間為 Q(1:50),初始狀態為 front=rear=50。經過一系列正常的入隊與退隊操作后,front=rear=25,此后又插入一個元素,則循環隊列中的元素個數為

A)26

B)1,或50且產生上溢錯誤

C)2

D)51

在循環隊列中,當front=rear時,不能確定是隊列滿還是隊列空,那么元素個數即為空或者滿。然而此時插入了一個元素,若此時隊列為空,在隊列為空的狀態下,又插入一個元素,所以最后該隊列中元素個數為1;若此時隊列為滿,不能再進行入隊運算,這種情況稱為“上溢”,此時算法結束。

 

 若有C語言表達式 2+3*4+7/3,則以下選項中關於執行順序的敘述,正確的是

A)先執行2+3得5,再執行5*4得20,再執行20+7得27,最后執行27/3得9

B)先執行3*4得12,再執行7/3得2.5,最后執行2+12+2.5得16.5

C)先執行7/3得2,再執行3*4得12,再執行12+2得14,最后執行2+14得16

D)先執行3*4得12,再執行2+12得14,再執行7/3得2,最后執行14+2得16

 

 

 設有定義:int  a=0,b=1;,以下表達式中,會產生“短路”現象,致使變量b的值不變的是

A)+a || ++b

B)a++ && b++

C)++a && b++

D)a++ || ++b

 

運算符"++"放在變量前面時,表示將變量+1,再參與其他操作,a++?&&?b++時,由於a值是0直接判定與運算結果為0,忽視b++的值,因此b值不發生改變。

 

 軟件生命周期可分為定義階段、開發階段和維護階段,下面屬於開發階段任務的是

A)軟件開發計划

B)可行性研究

C)軟件運行

D)軟件集成測試

 

 

軟件集成測試屬於軟件開發階段的任務,軟件開發計划和可行性研究屬於定義階段的任務,軟件運行屬於維護階段的任務,

 

 

 軟件測試的目的是

A)發現程序中的錯誤

B)修改程序中的錯誤

C)發現和修改程序中的錯誤

D)避免程序中的錯誤

 

軟件測試的目的是為了發現錯誤而執行程序的過程。

 

 

 以下合法的字符常量是

A)'\068'

B)'\x6D'

C)'\0x41'

D)'\X51'

 

“\”后跟着三個數字,是表示一個ASCII碼值等於這三位數字所組成的八進制數數值的字符,但是八進制數只能是由0-7這八個數字表示;轉義字符中,用\xhh表示十六進制所代表的任意字符;十六進制的整型常量以0X或0x作為前綴,'\0x41'為整型常量。

 

 

 以下敘述中錯誤的是

A)函數的形參是局部變量

B)在一個函數內的復合語句中定義的變量在本函數范圍內有效

C)在不同的函數中可以定義相同名字的變量

D)在一個函數內定義的變量只在本函數范圍內有效

函數內的復合語句中定義的變量,只能在該復合語句中起作用,在復合語句以外,該變量不起作用。

 

 

 以下敘述中錯誤的是

A)實參的個數應與形參的個數一致

B)實參的類型應與形參的類型賦值兼容

C)形參可以是常量、變量或表達式

D)實參可以是常量、變量或表達式

 

實參可以是任意類型的數據;形參可以是變量,或缺省常量,不可以是表達式。

 

 

 以下敘述中正確的是

A)用static說明的變量是全局變量

B)系統默認auto變量的初值為0

C)用register說明的變量被強制保留在CPU的寄存器中

D)register變量不能進行求地址運算

 

全局變量(extern)和用static修飾的局部變量都是靜態變量,該變量是在編譯時給變量分配存儲空間,所占用存儲單元直到程序結束時才釋放。而自動變量(auto)和寄存器變量(register)為動態局部變量,只在程序執行到定義它的函數或者語句塊時才為其分配內存。

 

 

 

 

 循環隊列的存儲空間為Q(1:50)。經過一系列正常的入隊與退隊操作后,front=rear=25。后又成功地將一個元素入隊,此時隊列中的元素個數為

A)1

B)26

C)2

D)50

 

 

在循環隊列中,當front=rear時,不能確定是隊列滿還是隊列空,那么元素個數即為空或者滿。然而可以正常地插入了一個元素,所以此時隊列為空,在隊列為空的狀態下,又插入一個元素,所以最后該隊列中元素個數為1。

 

 

 

A)0

B)2

C)3

D)1

 

系統結構圖的扇入指的調用一個給定模塊的模塊個數,本系統圖中“功能3.1”模塊上方連接的模塊為“功能2”和“功能3”,所以系統結構圖的最大扇入數為2。

 

 

 下面不屬於對象主要特征的是

A)對象持久性

B)對象繼承性

C)對象依賴性

D)對象唯一性

對象有如下一些基本特點:標識唯一性、分類性、多態性、封裝性、模塊獨立性好。

 有以下程序 
#include <stdio.h>
main()
{
  int a=1,b=2,c=3;
  char flag;
  flag = b>=2 && c<=3;
  switch(a)
  {
    case 1: switch(flag)
    { 
          case 0: printf("**"); break;
          case 1: printf("%%"); break;
    }
    case 0: switch(c)
    { 
          case 1: printf("$$"); break;
          case 2: printf("&&"); break;
          default : printf("##");
    }
  }
  printf("\n");
}
程序運行后的輸出結果是

A)%##

B)%&&

C)**##

D)**$$

 

 

 下列算法中,最壞情況下時間復雜度最低的為

A)順序查找法

B)快速排序

C)二分查找法

D)堆排序

 

對長度為n的線性表排序,在最壞情況下,快速排序需要比較的次數為n(n-1)/2,堆排序需要比較的次數為O(nlog2n),順序查找需要比較n次,希爾排序所需要的比較次數為O(n1.5)。

 

 

 循環隊列的存儲空間為 Q(1:50),初始狀態為 front=rear=50。經過一系列正常的入隊與退隊操作后,front=rear=25,則循環隊列中的元素個數為

A)49

B)0或50

C)26

D)25

 

在循環隊列中,當front=rear時,不能確定是隊列滿還是隊列空,那么元素個數即為空或者滿。

 

 

 以下敘述正確的是

A)每個C程序文件都應當包含一個main函數

B)每個C程序都只能有一個main函數

C)C程序由函數組成,可以不包含main函數

D)每個C程序文件中的main函數都應當放在最前面

 

main函數可以放在程序的任何位置,不一定要放在程序的最前面,不論main函數放在什么位置,程序的執行卻總是從main函數開始的;C語言程序的入口函數是main(),C語言程序中有且只有一個main函數。

 

 

 若有定義:int  a,b,c; 以下程序段的輸出結果是
          a=11;  b=3;  c=0;
          printf("%d\n",c=(a/b,a%b));

A)3

B)1

C)0

D)2

 

C語言中,逗號運算符可以把兩個以上(包含兩個)的表達式連接成一個表達式。逗號運算符的優先級是所有運算符中級別最低的,逗號運算符保證左邊的子表達式運算結束后才進行右邊的子表達式的運算。也就是說,逗號運算符是一個序列點,其左邊所有副作用都結束后,才對其右邊的子表達式進行運算,並以最右邊表達式值作為整個逗號表達式的值。因此變量c的值為a%b即11%3=2。

 

 以下選項中,與表達式flag ? a*=2 : a/=3等價的是

A)flag!=1 ? a*=2 : a/=3

B)flag==0 ? a*=2 : a/=3

C)flag==1 ? a*=2 : a/=3

D)flag!=0 ? a+=a : a/=3

 

 

 有下列程序
#include <stdio.h>
void swap(int *a, int *b)
{  int *tp;
   tp = a;  a = b;  b = tp;
   printf("%d,%d,", *a, *b);
}
main( )
{  int i = 3, j = 7, *p = &i, *q = &j;
   swap(p, q);
   printf("%d,%d", *p, *q);
}
程序執行后的輸出結果是

A)3,7,3,7 

B)3,7,7,3

C)7,3,7,3 

D)7,3,3,7 

 

swap函數是將輸入的兩個指針的指向進行交換,這種交換不影響值,所以指針指向為7,3,值為3,7。

 

 以下敘述中錯誤的是

A)當變量同名時,函數內的局部變量覆蓋全局變量

B)C語言的寄存器變量位於內存,因此可以求地址

C)不借助指針,靜態局部變量只能供定義它的函數使用

D)用extern說明變量是改變變量的作用域

 

 

循環變量,系統必須多次訪問內存中的該單元,影響程序的執行效率。因此,C語言還定義了一種變量,不是保存在內存上,而是直接存儲在CPU中的寄存器中,這種變量稱為寄存器變量.

 

 設有定義:
        typedef  struct data1{int  x, y;}   data2;
        typedef  struct {float  x, y;}   data3;
則以下選項不能作為類型名使用的是

A)data2

B)data1

C)struct data1

D)data3

類型名為系統或用戶已定義的一種數據類型,它是函數執行過程中通過return語句要求返回的值的類型,又稱為該函數的類型。程序中作為類型名應為“struct data1”,因此“data1”不能作為類型名使用。

 

 

 以下關於C語言文件的敘述中正確的是

A)C語言的源代碼文件是二進制文件

B)C語言中只有“順序存取”一種文件存取方式

C)文件由數據序列組成,其類型可以為二進制文件或文本文件

D)當數據按二進制形式輸出到文件中時,數據需要經過轉換

 

本題考查的是數據文件的有關概念。文件由數據流的形式組成,可以按數據存放的形式分為二進制文件和文本文件,C語言既能讀寫文本文件,又能讀寫二進制文件。

 

 設循環隊列的存儲空間為Q(1:m),初始狀態為空。現經過一系列正常的入隊與退隊操作后,front=m-1,rear=m,此后再向該循環隊列中插入一個元素,則隊列中的元素個數為

A)m

B)m-1

C)2

D)1

 

在循環隊列中,當排頭指針指向m-1,尾指針指向m時,循環隊列中有m-(m-1)=1個元素,而此后又插入一個元素,則循環隊列中元素個數為2。 

 

 

某二叉樹共有530個結點,其中度為2的結點有250個,則度為1的結點數為

A)251

B)249

C)29

D)30

 

二叉樹具有如下性質:在任意一棵二叉樹中,度為0的結點(即葉子結點)總是比度為2的結點多一個,所以本題中度為0的結點是250+1=251個;在二叉樹中,總結點數=葉子結點數+度為1的結點數+度為2的結點數,所以度為1的結點數為530-250-251=29個。

 

 

 

 

 在最壞情況下,堆排序的時間復雜度是

A)

 

B)

 

C)

 

D)

 

 

對長度為n的線性表排序,在最壞情況下,堆排序需要比較的次數為O(nlog2n)。

 

 下列敘述中正確的是

A)對象間的通信是靠方法調用 

B)對象具有封裝性 

C)對象標識可以不唯一

D)對象是屬性名和屬性的封裝體 

對象是由數據和容許的操作組成的封裝體;對象有如下一些基本特點:標識唯一性、分類性、多態性、封裝性、模塊獨立性好;對象之間是通過消息來進行合作交流的。

 

 有三個關系R,S和T如下圖所示:

則由關系R和S得到關系T的運算是

A)交

B)並

C)自然連接

D)投影

C

 

 以下選項中不能在C語言程序中用作用戶標識符的是

A)_3_14

B)Float

C)scanf

D)auto

Auto  scanf只是函數

 

 

 

 

 設有語句:printf("%2d\n",2010);,則以下敘述正確的是

A)指定的輸出寬度不夠,編譯出錯

B)程序運行時輸出10

C)程序運行時輸出2010

D)程序運行時輸出20

 

printf()函數格式化字符串的一般形式為:[標志][輸出最小寬度][精度][長度]類型。函數printf()中,%md指輸出帶符號的十進制整數,給定最小寬度為m位,不足m位左端補空格,超過m位按實際位數輸出,所以該程序輸出2010。

 

 

 

 以下選項中錯誤的是

A)printf("%c\n", 65);

B)printf("%d %c\n", 's','s');

C)printf("%c\n", 's'- 32);

D)printf("%s\n", 's');

 

%d可以作為輸出字符和整型類型的格式,%c作為輸出字符類型的格式,%s作為輸出字符串類型的格式,printf("%s\n", 's');中,'s'是字符,不能用%s格式來輸出。

 

 

 

 

 

 

 

 

 下列敘述中錯誤的是

A)循環鏈表是循環隊列的存儲結構

B)循環隊列是隊列的存儲結構

C)二叉鏈表是二叉樹的存儲結構

D)棧是線性結構

 

循環隊列是隊列的一種順序存儲結構,用隊尾指針rear指向隊列中的隊尾元素,用排頭指針front指向排頭元素的前一個位置;循環鏈表是用不連續的存儲單元存儲數據,它有一個表頭結點,隊頭指針指向表頭結點,最后一個結點的指針域指向表頭結點;二叉鏈表是樹的二叉鏈表實現方式;棧是一種特殊的線性表。

 

 循環隊列的存儲空間為 Q(1:100),初始狀態為 front=rear=100。經過一系列正常的入隊與退隊操作后,front=rear=99,則循環隊列中的元素個數為

A)0或100

B)99

C)1

D)2

隊滿或隊空

 

 軟件設計中模塊划分應遵循的准則是

A)高耦合高內聚

B)低耦合低內聚

C)內聚與耦合無關

D)低耦合高內聚

 

模塊的內聚性越高,模塊間的耦合性就越低,可見模塊的耦合性和內聚性是相互關聯的。因此,好的軟件,應盡量做到高內聚,低耦合,即在軟件設計中,模塊划分應遵循高內聚低耦合的准則。

 

 

 

 

 下面屬於白盒測試方法的是

A)錯誤推測法

B)等價類划分法

C)邊界值分析法

D)基本路徑測試

 

白盒測試的主要方法有邏輯覆蓋、基本路徑測試等。

 

 數據庫系統的數據獨立性是指

A)不會因為存儲策略的變化而影響存儲結構

B)不會因為系統數據存儲結構與數據邏輯結構的變化而影響應用程序

C)不會因為某些存儲結構的變化而影響其他的存儲結構

D)不會因為數據的變化而影響應用程序

數據獨立性是指程序不會因為數據的邏輯結構、存儲結構與存取方式的改變而受到影響

 

 設有三張表,客戶(客戶號,姓名,地址),產品(產品號,產品名,規格,進價),購買(客戶號,產品號,價格)。其中表客戶和表產品的關鍵字(鍵或碼)分別為客戶號和產品號,則表購買的關鍵字為

A)客戶號,產品號

B)客戶號

C)客戶號,產品號,價格

D)產品號

購買表是客戶表與產品表的紐帶表,所以其關鍵字應包括兩個表的關鍵字。

 

 以下敘述中錯誤的是

A)由三種基本結構構成的程序是結構化程序

B)用C語言編寫的是機器語言程序

C)用高級語言編寫的程序稱為“源程序”

D)由編譯器編譯生成的二進制代碼稱為“目標程序”

C語言是一門面向過程的計算機編程語言。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、僅產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。

 

 以下合法的用戶標識符是 

A)I-max

B)_12315_

C)m$

D)2x

B

 

 以下敘述中錯誤的是

A)整型變量不能存放實數

B)實型變量可以精確存放整數

C)負整數在內存中以“補碼”形式存放

D)無符號整數不可以是負數

 

在整型變量的空間不能存放一個實數,也不能在實型變量的空間存放一個整數。

 

 

  數據模型包括數據結構、數據完整性約束和

A)查詢

B)數據類型

C)數據操作

D)關系運算

 

數據模型包括數據結構、數據完整性約束、數據操作。

 

 

 

 

 

 

 關於程序設計基本概念,以下敘述錯誤的是

A)計算機可以直接執行由任意高級語言編寫的程序

B)高級語言都有與之對應的編譯程序或解釋程序

C)結構化算法可以解決任何復雜的問題

D)用任何一種計算機高級語言都可以把算法轉換為程序

 

計算機只能識別機器語言,不能直接識別由高級語言編寫的程序。

 

 關於程序中的注釋,以下敘述正確的是

A)注釋內容錯誤會導致編譯出錯

B)注釋的內容必須放在/* 和 */之間

C)注釋必須置於所說明的語句前或語句后

D)注釋中間可以嵌套另一個注釋

 

程序中,注釋可以出現在程序的任何位置;注釋中間不能嵌套另一個注釋;注釋的內容不影響程序編譯。

 

 

指針時地址不能變值能變。

 

 循環隊列的存儲空間為Q(1:60),初始狀態為空。經過一系列正常的入隊與退隊操作后,front=24,rear=25。循環隊列中的元素個數為

A)1

B)60

C)59

D)2

循環隊列中,rear指向隊列中的隊尾元素,front指向隊頭元素的前一個位置,在front指向的后一個位置和rear指向的位置之間,所有的元素均為隊列中的元素。隊列初始狀態為空,當front=24,rear=25時,隊列中共有25-24(尾指針-頭指針)=1個元素。

 

 

 

 

 

 

 

 

 

 下面對軟件特點描述正確的是

A)軟件是一種邏輯實體,具有抽象性

B)軟件在使用中存在磨損、老化問題

C)軟件具有明顯的制作過程

D)軟件復制不涉及知識產權

 

 

軟件有如下特點:①軟件是一種邏輯實體,而不是物理實體,具有抽象性。②軟件的生產與硬件不同,它沒有明顯的制作過程。③軟件在運行、使用期間不存在磨損、老化問題。④軟件的開發、運行對計算機系統具有依賴性,受計算機系統的限制,這導致了軟件移植的問題。⑤軟件復雜性高,成本昂貴。軟件是人類有史以來生產的復雜度最高的工業產品。⑥軟件開發涉及諸多的社會因素。

 

 

 

 在數據庫管理系統提供的數據語言中,負責數據的查詢、增加、刪除和修改等操作的是

A)數據操縱語言

B)數據定義語言

C)數據控制語言

D)數據管理語言

 

 

數據操縱語言主要實現的是對數據庫的操作功能,包括數據的查詢、增加和修改等操作。

 

 

 以下敘述正確的是

A)鏈接程序把文件后綴為.c的源程序文件鏈接成文件后綴為.exe的可執行文件

B)C編譯程序把文件后綴為.obj的二進制文件編譯成文件后綴為.exe的可執行文件

C)C編譯程序把文件后綴為.c的源程序文件編譯成文件后綴為.obj的二進制文件

D)C編譯程序把文件后綴為.c的源程序文件編譯成文件后綴為.exe的可執行文件

 

 

C語言源程序后綴名為.c,編譯程序編譯之后中生成一個后綴為.obj的目標程序,再經過連接之后才形成一個可執行的.exe可執行文件。

 

 

 

 

 

 

 

 算法應當具有的特性不包括

A)確定性

B)有窮性

C)可行性

D)美觀性

 

算法的特性有:有窮性、確定性、可行性、有零個或多個輸入、至少有一個輸出

 

 

 以下不屬於C語言整數的是

A)12f

B)-32

C)+20L

D)25u

 

F為float

12f

 

 

 

 庫函數rand()的功能是產生一個在0~32767之間的隨機數。若要用此函數隨機產生一個0~99.99(2位小數)之間的數,以下能實現此要求的表達式是

A)(rand()%100)/100.0

B)(rand()%9000+1000.0)/100.0

C)(rand()%10000)/100.0

D)(rand()%10000)/100

 

 

在標准的C庫中函數rand()可以生成0~RAND_MAX之間的一個隨機數,其中RAND_MAX 是stdlib.h 中定義的一個整數,它與系統有關,通常為32767。而要產生浮點數,則需用“rand()/(double)(RAND_MAX); ”,若要產生0-10之前的浮點數,則修改為“rand() /(double)(RAND_MAX/10);”, 若要產生0-100之前的浮點數,則修改為“rand() /(double)(RAND_MAX/100);”。而在本題中,通過最后除的100.0來實現浮點數的轉換。

 

 

C

 

 

 

 

 軟件工程的三要素是

A)建模、方法和工具

B)建模、方法和過程

C)定義、方法和過程

D)方法、工具和過程

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

 

 

 

 

 通常軟件測試實施的步驟是

A)單元測試、集成測試、確認測試

B)單元測試、確認測試、集成測試

C)集成測試、單元測試、確認測試

D)確認測試、集成測試、單元測試

 

軟件測試過程一般按4個步驟進行,即單元測試、集成測試、驗收測試(確認測試)和系統測試。

 

 

 

 下面可以作為軟件設計工具的是

A)系統結構圖

B)甘特圖

C)數據流程圖(DFD圖)

D)數據字典(DD)

 

 

 

常用的軟件結構設計工具是系統結構圖,也稱為程序結構圖;數據字典(DD)、數據流程圖(DFD)是結構化分析方法的常用工具;甘特圖是項目管理中的一種項目進度規划工具。

 

 

 

 邏輯模型是面向數據庫系統的模型,下面屬於邏輯模型的是

A)關系模型

B)物理模型

C)實體-聯系模型

D)謂詞模型

 

邏輯模型,是指數據的邏輯結構。在數據庫中,邏輯模型有關系、網狀、層次,可以清晰表示個個關系。概念模型、邏輯模型、物理模型同屬於面向數據庫系統的模型。實體聯系圖(Entity Relationship Diagram),是指提供了表示實體型、屬性和聯系的方法,用來描述現實世界的概念模型。

 

 

 

 

 

 

 

 以下說法正確的是

A)C語言只接受十進制的數

B)C語言接受任何進制的數

C)C語言接受除二進制之外任何進制的數

D)C語言只接受八進制、十進制、十六進制的數

 

 

C語言只接受八進制、十進制、十六進制的數。

 

 

 若有定義: int a=1234, b=-5678; 用語句 printf("%+-6d%+-6d",a,b); 輸出,以下正確的輸出結果是

A)+-1234+-5678 (最前面和最后均無空格)

B)1234  -5678  (中間有兩個空格,最后有一個空格)

C)+1234 -5678  (中間有一個空格,最后有一個空格) 

D) +1234 -5678 (最前面有一個空格,中間有一個空格) 

 

函數printf()中,%md指輸出帶符號的十進制整數,給定最小寬度為m位,不足m位左端補空格,超過m位按實際位數輸出,%+-6d表示輸出整型數,正負都帶符號。所以輸出結果為+1234 -5678 (中間有一個空格,最后有一個空格)。

 

 

 

 

 

 

 

 

 

 下列敘述中正確的是

A)循環隊列是非線性存儲結構

B)循環隊列是鏈式存儲結構

C)循環隊列是線性邏輯結構

D)循環隊列是線性結構

 

 

隊列和線性表都是線性結構;所謂循環隊列,就是將隊列存儲空間的最后一個位置繞到第一個位置,形成邏輯上的環狀空間,供隊列循環使用;在實際應用中,隊列的順序存儲結構一般采用循環隊列的形式。

 

 

 設某棵樹的度為3,其中度為3,2,1的結點個數分別為3,0,4。則該樹中的葉子結點數為

A)8

B)6

C)不可能有這樣的樹

D)7

 

在任意一棵樹中,葉子結點個數n0=1+n2+2n3+3n4+…+(n-1)nn ,所以該樹中n0=1+0+2*3=7。

 

 

 

 設有一個棧與一個隊列的初始狀態均為空。現有一個序列A,B,C,D,E,F,G,H。先分別將序列中的前4個元素依次入棧,后4個元素依次入隊;然后分別將棧中的元素依次退棧,再將隊列中的元素依次退隊。最后得到的序列為

A)D,C,B,A,E,F,G,H

B)D,C,B,A,H,G,F,E

C)A,B,C,D,H,G,F,E

D)A,B,C,D,E,F,G,H

 

 

 

棧是按照“先進后出”或“ 后進先出”的原則組織數據的;所以入棧最早的最后出棧,最后入棧的最先出棧,所以前4個元素依次入棧后又出棧,退出順序為D,C,B,A;隊列是根據“先進先出”或“后進后出”的原則組織數據的,所以后4個元素依次入隊后又退隊,所以退隊元素的順序為E,F,G,H。

 

 

 

 

 下面不屬於系統軟件的是

A)操作系統

B)編譯程序

C)數據庫管理系統

D)殺毒軟件

 

殺毒軟件屬於應用軟件。

 

 

 

 sizeof( double ) 是

A)一個雙精度表達式

B)不合法的表達形式

C)一個整型表達式

D)一個函數調用

 

 

sizeof為求字節數的運算符,操作的對象可以是類型說明符、數組名或者表達式,求得的結果為一個整數。

 

 

 

 

 以下說法正確的是

A)函數返回值可以是一個數組,同時返回多個值

B)函數返回值可以是一個指向函數的指針

C)函數可以返回另一個函數的整個函數體

D)函數返回值只能是基本數據類型的數值或指針

 

 

函數返回值可以整型、實型、字符型、指針和結構類型,也可以沒有返回值;函數不可以返回另一個函數的整個函數體;在C語言中,一般情況下函數的返回值是通過函數中的return語句來實現的,每調用一次return語句只能從函數中返回一個值。

 

 

 

 

 

 

 

 

關於地址和指針,以下說法錯誤的是

A)p = f; 可以讓函數指針p指向一個同類型的函數f

B)q = a; 可以讓指針q指向一個同類型的數組a

C)指針變量可以賦NULL值

D)絕對不可以通過強制類型轉換讓char型指針指向double型變量

 

 

char型根據轉化原則可以轉化為double類型。

 

 

 有以下程序

    #include <stdio.h>
    void swap(int *a, int *b)
   {   int  t, *tp;
       t = *a; *a = *b; *b = t;
       tp = a;  a = b;  b = tp;
       printf("%d,%d,", *a,*b);
    }
    main( )
    {  int i=3, j=7, *p=&i, *q=&j;
       swap(p, q);
       printf("%d,%d,%d,%d", i, j, *p, *q);
    }
    程序執行后的輸出結果是

A)7,3,7,3,7,3

B)3,7,7,3,7,3

C)3,7,3,7,3,7

D)3,7,3,7,7,3

 

main()函數中,首先定義兩個整型變量i和j,初值為3和7,並將i的地址賦給p,j的地址賦給q,傳給swap()函數,swap()函數接收兩個整型指針變量a,b,然后使用整型變量t交換a、b所指向的值並輸出,通過指針變量,這次交換改變了實參i、j的值,使得i=7,j=3;指針變量tp交換a和b的值,由於a、b的值是p,q值的拷貝,所以這次交換只改變了形參a,b的值,對實參p,q的值沒有改變,所以此時a指向j,b指向i,函數最后輸出*a和*b,所以輸出3,7;由於swap()函數改變了p和q指向的值,但未改變p,q的值,所以main()函數輸出i的值為7,j的值為3,*p的值為i,*q的值為j,所以程序輸出:3,7,7,3,7,3。

 

 

 

 

 某二叉樹共有150個結點,其中有50個度為1的結點,則

A)不存在這樣的二叉樹

B)該二叉樹有49個葉子結點

C)該二叉樹有51個葉子結點

D)該二叉樹有50個葉子結點

 

在二叉樹中,總結點數=葉子結點數+度為1的結點數+度為2的結點數,所以度為0和度為2的結點,共有150-50=100個,而二叉樹又有如下性質:在任意一棵二叉樹中,度為0的結點(即葉子結點)總是比度為2的結點多一個。所以度為0的結點個數加上度為2的結點個數之和一定是奇數,不可能是100。

 

 

 

 軟件生命周期可分為定義階段、開發階段和維護階段,下面不屬於開發階段任務的是

A)測試

B)編碼       

C)設計     

D)需求分析        

 

 

 

軟件定義階段包括可行性研究初步項目計划以及需求分析;軟件開發階段的任務是:具體完成設計和實現定義階段所定義的軟件,通常包括總體設計、詳細設計、編碼和測試。

 

 

 

 下面屬於黑盒測試方法的是   

A)基本路徑測試       

B)判定覆蓋            

C)條件覆蓋

D)錯誤推測法   

 

 

黑盒測試方法主要有等價類划分法、邊界值分析法和錯誤推測法。

 

 

 

 

 

 在數據庫的數據模型中,面向數據在計算機中物理表示的是

A)物理模型

B)面向對象的模型

C)概念模型

D)數據模型

 

 

 

物理模型是面向計算機物理表示的模型,描述了數據在儲存介質上的組織結構,它不但與具體的DBMS有關,而且還與操作系統和硬件有關。所以面向數據在計算機中的物理表示為物理模型。

 

 

 

 若有定義 int a, b, c; 以下選項中的賦值語句正確的是

A)a + b = c;

B)a = (b == c) = 1;

C)(a = b) = c = 1;

D)a = (b = c) + 1;

 

賦值運算符的左側必須為變量而不能是表達式。

 

樹是一種簡單的非線性結構。

 

 

 設循環隊列的存儲空間為Q(1: m),初始狀態為 front=rear=m。經過一系列正常的操作后,front=1,rear=m。為了在該隊列中尋找值最大的元素,在最壞情況下需要的比較次數為

A)m-1

B)m

C)1

D)m-2

 

 

 

 

該題中1<m,即rear-front>0,則該循環隊列中的元素個數為m-1。此在該隊列中尋找值最大的元素,在最壞情況下需要的比較次數為m-1-1=m-2。

 

 

 

 

 

 設二叉樹的后序序列為DGHEBIJFCA,中序序列為DBGEHACIFJ。則前序序列為

A)ABCDEFGHIJ

B)JIHGFEDCBA

C)GHIJDEFBCA

D)ABDEGHCFIJ

 

由於在后序遍歷二叉樹中訪問根結點在最后,因此,后序序列中的最后一個結點為二叉樹的根結點,即A為根結點,又由於在中序遍歷中訪問根結點的次序為居中,而訪問左子樹上的結點為居先,訪問右子樹上的結點為最后,因此在中序序列以根結點(A)為分界線,前面的子序列(DBGEH)一定在左子樹中,后面的子序列(CIFJ)一定在右子樹中。同樣的道理對於已經划分出的子序列再進行如上操作,還原二叉樹后再按前序遍歷,得序列為ABDEGHCFIJ。

 

 

 

 
 某系統結構圖如下圖所示:

則該系統結構圖的深度是

A)3

B)1

C)4

D)2

 

結構圖中,深度表示控制的層數,根據總體結構圖可以看出該圖的深度為3。

 

 

 

 數據庫(DB)、數據庫系統(DBS)和數據庫管理系統(DBMS)之間的關系是

A)DBS就是DB,也就是DBMS

B)DB包括DBS和DBMS

C)DBMS包括DB和DBS

D)DBS包括DB和DBMS

數據庫系統包括數據庫和數據庫管理系統。

 

 

 公司中有不同部門,而每個員工分屬不同的部門,則實體部門與實體員工間的聯系是

A)一對多

B)多對多

C)多對一

D)一對一

 

由題意及常識分析可知,一個部門有多個員工,所以部門與員工之間是一對多的關系。

 

 

 

 以下敘述正確的是

A)C程序的執行是從源文件的開頭,一行一行向下執行,每行都會被執行到

B)每個C源文件都應當有一個主函數

C)C程序的執行一定是從主函數開始,從主函數結束

D)對於只包含表達式語句的程序段,執行順序與書寫順序一致

 

條件語句中,不滿足條件的不會被執行,C源文件不一定有主函數,C程序也不一定是先執行主函數,結束的地方也不一定是主函數。

 

 

 

 以下敘述正確的是

A)一個#include行可以包含多個文件,文件名用逗號分開

B)使用符號\可以將一條#include 命令寫在多行里

C)一個#include行可以包含多個文件,且最后一個文件起作用

D)#include <stdio.h> 是C程序的一條語句

 

 

一個#include行只能有一個文件,#include <stdio.h> 成為編譯預處理命令。

 

B

 

 

 

 

 

 

 

 

 

 

 

 

 一個模塊直接調用的下層模塊的數目稱為模塊的

A)扇出數

B)扇入數

C)作用域

D)寬度

 

 

系統結構圖的扇出指的是一個模塊直接調用的其他模塊數。

 

 

 數據庫系統內部采用三級模式和模式間的二級映射,是為了提高數據庫的物理獨立性和

A)數據獨立性

B)安全性 

C)並發性

D)邏輯獨立性

 

數據庫系統中采用多級映射是為了提高數據的物理獨立性和邏輯獨立性。

 

 

 

 將數據和操作置於對象統一體中的實現方式是

A)隱藏

B)封裝

C)結合

D)抽象

 

對象是由描述該對象屬性的數據以及可以對這些數據施加的所有操作封裝在一起構成的統一體。

 

 

 

 

 

 

 

 

 

 

 

 某二叉樹中有n個葉子結點,則該二叉樹中度為2的結點數為

A)n+1

B)n/2

C)n-1

D)2n

 

二叉樹具有如下性質:在任意一棵二叉樹中,度為0的結點(即葉子結點)總是比度為2的結點多一個。二叉樹中有n個葉子結點,則該二叉樹中度為2的結點數為n-1。

 

 

 

 下列敘述中錯誤的是

A)算法的時間復雜度與空間復雜度有直接關系

B)算法的空間復雜度與算法所處理數據的存儲結構有直接關系

C)算法的時間復雜度與算法所處理數據的存儲結構有直接關系

 

 

算法的時間復雜度是指執行算法所需要的計算工作量,與數據的存儲結構有關;算法的空間復雜度是指執行這個算法所需要的內存空間;根據各自的定義可知,算法的時間復雜度與空間復雜度並不相關

 

 

 

 

 

 E-R圖中用來表示實體的圖形是

A)橢圓形

B)矩形

C)菱形

D)三角形

 

 

E-R圖中用矩形表示實體,橢圓表示屬性,菱形表示聯系。

 

 

 

 

 

 

 在關系表中,屬性值必須是另一個表主鍵的有效值或空值,這樣的屬性是

A)候選鍵

B)主鍵

C)外鍵

 

 

一個屬性不是本表的關鍵字,卻是另外一個表的關鍵字,則稱這個屬性為外鍵。

 

 

 

 

 

 以下說法正確的是

A)賦值語句可以出現在源程序中的任意位置

B)賦值語句是一種可執行語句,應當出現在函數的可執行部分

C)賦值語句可以出現在函數外單獨執行

D)賦值語句可以出現在函數中的任意位置

 

 

賦值語句是一種可執行語句,應當出現在函數的可執行部分。

 

 

 

 

 

 

 

 下列敘述中錯誤的是

A)循環隊列是隊列的存儲結構

B)具有兩個指針域的鏈表不一定是非線性結構

C)循環鏈表是循環隊列的鏈式存儲結構

D)具有兩個指針域的鏈表不一定是線性結構

 

 

循環鏈表是另一種形式的鏈式存儲結構,循環鏈表和循環隊列是平級關系。

 

 

 

 

 

 

  下面選項中不是關系數據庫基本特征的是

A)與行的次序無關

B)與列的次序無關

C)不同的列應有不同的數據類型

D)不同的列應有不同的列名

 

關系數據庫中,不同列的數據類型沒有必須相同或必須不相同的要求。

 

 

 

 

 下面不屬於軟件需求分析階段工作的是

A)需求計划

B)生成需求規格說明書

C)需求評審

D)需求獲取

 

 

 

需求分析階段的工作,可以概括為四個方面:①需求獲取,②需求分析,③編寫需求規格說明書,④需求評審。

 

 

 

 

 下面對“對象”概念描述錯誤的是

A)對象是屬性和方法的封裝體       

B)一個對象是其對應類的實例

C)對象間的通信是靠消息傳遞            

D)對象不具有封裝性   

 

對象有如下一些基本特點:標識唯一性、分類性、多態性、封裝性、模塊獨立性好。

 

 

 

 

 

 

 

 

 

 軟件設計一般划分為兩個階段,兩個階段依次是

A)數據設計和接口設計

B)總體設計(概要設計)和詳細設計

C)算法設計和數據設計

D)界面設計和結構設計

 

 

從工程管理角度來看,軟件設計分兩步完成:概要設計和詳細設計。

 

 

 

 結構化程序設計強調

A)程序的可復用性

B)程序的易讀性

C)程序的效率

D)程序的規模

 

 

結構化程序設計主要強調的是程序簡明清晰,易讀易懂,程序必須是可以理解的。結構化程序設計的基本原則是“清晰第一,效率第二”。

 

 

 

 

 邏輯模型是面向數據庫系統的模型,下面屬於邏輯模型的是

A)實體-聯系模型

B)關系模型

C)謂詞模型

D)物理模型

 

邏輯模型,是指數據的邏輯結構。在數據庫中,邏輯模型有關系、網狀、層次,可以清晰表示個個關系。概念模型、邏輯模型、物理模型同屬於面向數據庫系統的模型。實體聯系圖(Entity Relationship Diagram),是指提供了表示實體型、屬性和聯系的方法,用來描述現實世界的概念模型。

 

 

 

 

 

下列排序方法中,最壞情況下時間復雜度最低的是

A)堆排序

B)冒泡排序

C)希爾排序

D)快速排序

 

對長度為n的線性表排序,在最壞情況下,冒泡排序和快速排序需要比較的次數為n(n-1)/2,堆排序需要比較的次數為O(nlog2n),希爾排序所需要的比較次數為O(n1.5)。

 

 

 某二叉樹的深度為7,其中有64個葉子結點,則該二叉樹中度為1的結點數為

A)63

B)2

C)0

D)1

 

 

在滿二叉樹中,每一層上的結點數都達到最大值,即在滿二叉樹的第k層上有2k-1個結點。而題目中的二叉樹在第7層有27-1=64個結點,所以該二叉樹為滿二叉樹,在滿二叉樹中不存在度為1的結點。

 

 

 在關系模型中,每一個二維表稱為一個

A)關系

B)元組

C)主碼(鍵)

D)屬性

 

 

 

 

關系模型采用二維表來表示,一個二維表表示一個關系。

 

 

 

 

 

 

 

 

 

 

 

 以下說法錯誤的是

A)程序模塊化的目的之一是提高程序編制的效率

B)程序模塊化的目的之一是提高程序的執行速度

C)程序模塊化的目的之一是提高調試程序的效率

D)程序模塊化的目的之一是提高程序代碼復用率

 

模塊化程序的優點:(1)易於維護和復用,可以提高程序編制的效率。(2)易於分工合作。(3)易於模塊化調試測試。模塊化程序的副作用:(1)可能會降低程序運行效率。(2)設計的前期工作需要多花費時間。

 

 

 

 

 以下正確的轉義字符是

A)'\X41'

B)'\x41'

C)'\0X41'

D)'\0x41'

 

 

轉義字符中,\xhh表示十六進制所代表的任意字符,只有'\x41'是正確的轉義字符。

 

 

 

 有如下程序段
      for (i=0; i<10; i++)
         if (i <= 5) break;
則循環結束后i的值為

A)10

B)1

C)5

D)0

 

 

i的初值為0,滿足循環條件,在if語句中i小於5滿足條件,所以執行break,跳出循環,i++不用執行,因此輸出i的值為0。

 

 

 

 有如下形式的函數 
 int fun(int a[4][5], int *p[10], int n)
 {……}
調用函數之前需要對函數進行說明,即所謂的函數向前引用說明,以下對fun函數說明正確的是

A)int fun(int a[][], int *p[], int n);

B)int fun(int a[], int *p[], int n);

C)int fun(int b[][5], int *r[], int m);

D)int fun(int a[4][], int *p[10], int n);

 

函數向前引用說明中是對要定義的數據進行說明,而不是定義數據的具體數值,故函數向前引用說明中的符號和實際引用的不一樣

 

C

 

 

 

 

 下列敘述中正確的是

A)雙向鏈表既能表示線性結構,又能表示非線性結構

B)具有多個指針域的鏈表肯定是非線性結構

C)循環隊列與循環鏈表都是線性結構

D)順序存儲結構只能表示線性結構

 

 

一個非空的數據結構滿足以下兩個條件:①有且只有一個根結點;②每個結點最多有一個前件,也最多有一個后件。則稱該數據結構為線性結構;能順序存儲的數據結構可以是線性結構也可以是非線性結構,例如樹可以順序存儲數據,而樹是非線性結構;雙向鏈表是線性結構。

 

C

 

數據庫系統中采用多級映射是為了提高數據的物理獨立性和邏輯獨立性。

 

 

 

 

 

 

 

 

 

 

 

 

 設某棵樹的度為3,其中度為3,2,1的結點個數分別為3,0,4。則該樹中的葉子結點數為

A)不可能有這樣的樹

B)8

C)6

D)7

 

 

在任意一棵樹中,葉子結點個數n0=1+n2+2n3+3n4+…+(n-1)nn ,所以該樹中n0=1+0+2*3=7。

 

 

 以下選項中,合法的C語言實數是

A)7.12E

B)E13

C)3.1e0.4

D).2e0

 

科學計數法中,e/E前后必須有數字並且后面的數字必須為整數。

 

 

 

 

 下列敘述中錯誤的是

A)算法的時間復雜度與問題規模無關

B)算法的空間復雜度與算法運行輸出結果的數據量無關

C)算法的時間復雜度與計算機系統無關

D)算法的時間復雜度與空間復雜度沒有必然的聯系

 

 

算法的復雜度主要包括時間復雜度和空間復雜度,算法的時間復雜度是指執行算法所需要的計算工作量,可以用算法在執行過程中所需基本運算的執行次數來度量算法的工作量,而算法所執行的基本運算次數與問題的規模有關。

 

 

 

 

 

 

 

 

 

 某帶鏈棧的初始狀態為 top=bottom=NULL,經過一系列正常的入棧與退棧操作后,top=10,bottom=20。該棧中的元素個數為

A)0

B)1

C)10

D)不確定

 

 

帶鏈的棧是具有棧屬性的鏈表,線性鏈表的存儲單元是不連續的,所以鏈表中的元素存儲在不連續的地址中,因此當top=10,bottom=20時,不能確定棧中元素的個數。

 

 

 

 

 

 

 

 

對長度為n的線性表排序,在最壞情況下,快速排序需要比較的次數為n(n-1)/2。當表的長度為15,則在最壞情況下,快速排序所需要的比較次數為15*(15-1)/2=105。

 

 

 

 

軟件按功能可以分為應用軟件、系統軟件和支撐軟件(或工具軟件)。下面屬於系統軟件的是

A)ERP系統

B)C編譯程序

C)CAI軟件

D)學籍管理系統

 

 

系統軟件是計算機管理自身資源,提高計算機使用效率並服務於其他程序的軟件。如操作系統,編譯程序,匯編程序,網絡軟件,數據庫管理系統等。CAI軟件、ERP系統和學籍管理系統均不屬於系統軟件。

 

 

 

 

 

 

 

 

 下面屬於對象基本特點的是

A)靈活性

B)方法唯一性

C)可修改性

D)多態性

 

 

 

對象有如下一些基本特點:標識唯一性、分類性、多態性、封裝性、模塊獨立性好。

 

 

 

 單元測試不應涉及的內容是

A)模塊的接口

B)模塊的局部數據結構

C)模塊的出錯處理功能

D)模塊的執行路徑 

 

單元測試主要針對模塊的下列5個基本特性進行:①模塊接口測試——測試通過模塊的數據流。②局部數據結構測試。③重要的執行路徑的檢查。④出錯處理測試。檢查模塊的錯誤處理功能。⑤影響以上各點及其他相關點的邊界條件測試。

 

 

 

 

 循環隊列的存儲空間為Q(1:50)。經過一系列正常的入隊與退隊操作后,front=rear=25。后又成功地將一個元素退隊,此時隊列中的元素個數為

A)0

B)26

C)49

D)24

 

 

 

 

在循環隊列中,當front=rear時,不能確定是隊列滿還是隊列空,那么元素個數即為空或者滿。然而可以正常地退出了一個元素,所以此時隊列為滿,在隊列為滿的狀態下,又退出一個元素,所以最后該隊列中元素個數為50-1=49個。

 

 

 設二叉樹中有20個葉子結點,5個度為1的結點,則該二叉樹中總的結點數為

A)46

B)不可能有這樣的二叉樹

C)44

D)45

 

 

二叉樹又有如下性質:在任意一棵二叉樹中,度為0的結點(即葉子結點)總是比度為2的結點多一個。所以度為2的結點個數為20-1=19;在二叉樹中,總結點數=葉子結點數+度為1的結點數+度為2的結點數,總結點數為20+5+19=44個。

 

 

 

 

 以下敘述錯誤的是

A)C語言提供了豐富的數據類型

B)C語言中提供了子程序的概念,可以和函數完成一樣的功能

C)C語言是結構化程序設計語言,結構化程序由順序結構、選擇結構和循環結構三種基本結構組成

D)C語言允許對函數單獨進行編譯,可以實現模塊化

 

C語言中沒有子程序的概念。

 

 

 

 

 以下有關scanf函數的敘述中錯誤的是

A)scanf函數從輸入字符流中按照格式控制指定的格式解析出相應數據,送到指定地址中

B)scanf函數有返回值,其值就是本次調用scanf函數時正確讀入的數據項個數

C)在scanf函數中的格式控制字符串不會輸出到屏幕上

D)在scanf函數的格式字符前既可以加入正整數指定輸入數據所占的寬度,也可以對實數指定小數位的寬度

 

 

scanf函數的格式字符不能指定小數位的寬度。

 

 

 

 

 

 

 

 

 下面不屬於對象主要特征的是

A)對象持久性

B)對象唯一性

C)對象繼承性

D)對象依賴性

 

 

 

對象有如下一些基本特點:標識唯一性、分類性、多態性、封裝性、模塊獨立性好

 

 

 

 下列算法中均以比較作為基本運算,則平均情況與最壞情況下的時間復雜度相同的是

A)在順序存儲的有序表中進行對分查找

B)在鏈式存儲的有序表中進行查找

C)在順序存儲的線性表中尋找最大項

D)在順序存儲的線性表中進行順序查找

 

 

在順序表中查找最大值,一定是需要把所有數據元素依次進行比較,所以平均情況和最壞情況的比較次數都是n-1。

 

 

 

 

 

 下列敘述中正確的是

A)循環鏈表中至少有一個結點

B)循環鏈表是循環隊列的鏈式存儲結構

C)雙向鏈表有兩個頭指針

D)雙向鏈表有兩個頭結點

 

a

 

 

循環隊列是隊列的一種順序存儲結構;雙向鏈表的每個結點有兩個指針,一個稱為左指針,用以指向其前件結點,另一個稱為右指針,用以指向其后件結點;循環鏈表有一個表頭結點,隊頭指針指向表頭結點,最后一個結點的指針域指向表頭結點。

 

 

  描述數據庫中全體數據的全局邏輯結構和特征的是

A)內模式

B)外模式

C)用戶模式

D)概念模式

 

 

概念模式用來描述數據庫中的邏輯結構和特征。內模式又稱存儲模式,對應於物理級,它是數據庫中全體數據的內部表示或底層描述,是數據庫最低一級的邏輯描述,它描述了數據在存儲介質上的存儲方式和物理結構,對應着實際存儲在外存儲介質上的數據庫。外模式面向具體的應用程序,定義在邏輯模式之上,但獨立於存儲模式和存儲設備,它是一個或幾個特定用戶所使用的數據集合(外部模型),是用戶與數據庫系統的接口,是概念模型的邏輯子集。用戶模式就是讓linux系統作為一個用戶進程運行。

 

 

 

 

 算法時間復雜度的度量方法是

A)執行算法所需要的基本運算次數

B)算法程序的長度

C)執行算法所需要的時間

D)執行算法所需要的所有運算次數

 

算法的時間復雜度是指執行算法所需要的計算工作量,可以用算法在執行過程中所需基本運算的執行次數來度量算法的工作量。

 

 

 下列敘述中正確的是

A)存儲空間不連續的所有鏈表一定是非線性結構

B)帶鏈的棧與隊列是線性結構

C)結點中有多個指針域的所有鏈表一定是非線性結構

D)能順序存儲的數據結構一定是線性結構

 

棧與隊列都是線性表,帶鏈的棧與隊列是線性結構;在線性表的鏈式存儲結構中,存儲數據結構的存儲空間可以不連續;結點中有多個指針域的所有鏈表不一定是非線性結構,雙向鏈表結點有兩個指針域,但它是線性結構;能順序存儲的數據結構可以是線性結構也可以是非線性結構,例如樹可以順序存儲數據,而樹是非線性結構。

 

 

 下列敘述中錯誤的是

A)非線性結構中至少有一個根結點

B)非線性結構中可以沒有根結點與葉子結點

C)有一個以上葉子結點的必定是非線性結構

D)有一個以上根結點的必定是非線性結構

 

一個非空的數據結構滿足以下兩個條件:①有且只有一個根結點;②每個結點最多有一個前件,也最多有一個后件。則稱該數據結構為線性結構


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM