本文目錄一覽:
- 1、計算機二級考試(江西考區)試題c語言及答案
- 2、計算機二級C語言筆試題和面試題答案目
- 3、求2011年九月以及以前的計算機二級考試C語言試題及答案、以及考試內容分析和解題技巧。記住只要C的。
- 4、跪求2010.9計算機二級C語言筆試複習資料
計算機二級考試(江西考區)試題c語言及答案
2010年3月全國計算機等級考試二級C語言筆試真題及參考答案一、選擇題
(1)下列敘述中正確的是
A)對長度為n的有序鏈表進行查找,最壞清況下需要的比較次數為n
B)對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數為(n/2)
C)對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數為(log2n)
D)對長度為n的有序鏈表進行對分查找,最壞情況下需要的比較次數為(nlog2n)(2)算法的時間複雜度是指
A)算法的執行時間
B)算法所處理的數據量
C)算法程序中的語句或指令條數
D)算法在執行過程中所需要的基本運算次數(3)軟件按功能可以分為:應用軟件、系統軟件和支撐軟件(或工具軟件)。下面屬於系統軟件的是
A)編輯軟件
B)操作系統
C)教務管理系統
D)瀏覽器(4)軟件(程序)調試的任務是
A)診斷和改正程序中的錯誤
B)儘可能多地發現程序中的錯誤
C)發現並改正程序中的所有錯誤
D)確定程序中錯誤的性質(5)數據流程圖(DFD圖)是
A)軟件概要設計的工具
B)軟件詳細設計的工具
C)結構化方法的需求分析工具
D)面向對象方法的需求分析工具(6)軟件生命周期可分為定義階段,開發階段和維護階段。詳細設計屬於
A)定義階段
B)開發階段
C)維護階段
D)上述三個階段(7)數據庫管理系統中負責數據模式定義的語言是
A)數據定義語言
B)數據管理語言
C)數據操縱語言
D)數據控制語言(8)在學生管理的關係數據庫中,存取一個學生信息的數據單位是
A)文件
B)數據庫
C)字段
D)記錄(9)數據庫設計中,用E-R圖來描述信息結構但不涉及信息在計算機中的表示,它屬於數據庫設計的
A)需求分析階段
B)邏輯設計階段
C)概念設計階段
D)物理設計階段(10)有兩個關係R和T如下:
則由關係K得到關係T的操作是
A)選擇
B)投影
C)交
D)並(11)以下敘述正確的是
A)C語言程序是由過程和函數組成的
B)C語言函數可以嵌套調用,例如:fun(fun(x))
C)C語言函數不可以單獨編譯
D)C語言中除了main函數,其他函數不可作為單獨文件形式存在(12)以下關於C語言的敘述中正確的是
A)C語言中的注釋不可以夾在變量名或關鍵字的中間
B)C語言中的變量可以在使用之前的任何位置進行定義
C)在C語言算術表達式的書寫中,運算符兩側的運算數類型必須一致
D)C語言的數值常量中夾帶空格不影響常量值的正確表示(13)以下C語言用戶標識符中,不合法的是
A)_1
B)AaBc
C)a_b
D)a-b(14)若有定義:double a=22;int i=0,k=18;,則不符合C語言規定的賦值語句是
A)a=a++,i++;
B)i=(a+k)=(i+k);
C)i=a%11;
D)i=!a;(15)有以下程序
#includestdio.h
main()
{ char a,b,c,d;
scanf(“%c%c”,a,b);
c=getchar(); d=getchar();
printf(“%c%c%c%c\n”,a,b,c,d);
}
當執行程序時,按下列方式輸入數據(從第1列開始,CR代表回車,注意:回車也是一個字符)
12CR
34CR
則輸出結果是
A)1234
B)12
C)12
3
D)12
34(16)以i關於C語言數據類型使用的敘述中錯誤的是
A)若要準確無誤差的表示自然數,應使用整數類型
B)若要保存帶有多位小數的數據,應使用雙精度類型
C)若要處理如“人員信息”等含有不同類型的相關數據,應自定義結構體類型
D)若只處理“真”和“假”兩種邏輯值,應使用邏輯類型(17)若a是數值類型,則邏輯表達式(a==1)||(a!=1)的值是
A)1
B)0
C)2
D)不知道a的值,不能確定(18)以下選項中與if(a==1)a=b; else a++;語句功能不同的switch語句是
A)switch(a)
{case:a=b;break;brdefault:a++;br}brB)switch(a==1)br{case 0:a=b;break;brcase 1:a++;br}
C)switch(a)
{default:a++;break;brcase 1:a=b;br}
D)switch(a==1)
{case 1:a=b;break;brcase 0:a++;br}(19)有如下嵌套的if語句
if (ab)
if(ac)k=a;
else k=c;
else
if(bc) k=b;
else k=c;
以下選項中與上述if語句等價的語句是
A)k=(a<b)?a:b;k=(b<c)?b:c;
B)k=(a<b)?((b<c)?a:b):((b>c)?b:c);
C)k=(a<b)?((a<c)?a:):((b<c)?b:c);
D)k=(a<b)?a:b;k=(a<c)?a:c;(20)有以下程序
#include<s七dio.h>
main()
{in i,j,m=1;
for(i=1;i<3;i++)
{for(j=3;j>O;j–)
{if(i*j)>3)break;brm=i*j;br}
}
printf(”m=%d\n”,m);
}
程序運行後的輸出結果是
A)m=6
B)m=2
C)m=4
D)m=5(21)有以下程序
#include(stdio.h>
main()
{int a=l;b=2;
for(;a<8;a++) {b+=a;a+=2;}
printf(”%d,%d\n”,a,b);
}
程序運行後的輸出結果是
A)9,18
B)8,11
C)7,11
D)10,14(22)有以下程序,其中k的初值為八進制數
#include stdio.h
main()
{int k=011;
printf(”%d\n”,k++);
}
程序運行後的輸出結果是
A)12
B)11
C)10
D)9(23)下列語句組中,正確的是
A)char *s;s=”Olympic”;
B)char s[7];s=”Olympic”;
C)char *s;s={”Olympic”};
D)char s[7];s={”Olympic”};(24)以下關於return語句的敘述中正確的是
A)一個自定義函數中必須有一條return語句
B)一個自定義函數中可以根據不同情況設置多條return語句
C)定義成void類型的函數中可以有帶返回值的return語句
D)沒有return語句的自定義函數在執行結束時不能返回到調用處(25)下列選項中,能正確定義數組的語句是
A)int num[0..2008];
B)int num[];
C)int N=2008;
int num[N];
D)#define N 2008
int num[N];(26)有以下程序
#include stdio.h
void fun(char *c,int d)
{*c=*c+1;d=d+1;
printf(”%c,%c,”,*c,d);
main()
{char b=’a’,a=’A’;
fun(b,a);printf(”%e,%e\n”,b,a);
}
程序運行後的輸出結果是
A)b,B,b,A
B)b,B,B,A
C)a,B,B,a
D)a,B,a,B(27)若有定義int(*Pt)[3];,則下列說法正確的是
A)定義了基類型為int的三個指針變量
B)定義了基類型為int的具有三個元素的指針數組pt
C)定義了一個名為*pt、具有三個元素的整型數組
D)定義了一個名為pt的指針變量,它可以指向每行有三個整數元素的二維數組(28)設有定義double a[10],*s=a;,以下能夠代表數組元素a[3]的是
A)(*s)[3]
B)*(s+3)
C)*s[3]
D)*s+3(29)有以下程序
#include(stdio.h)
main()
{int a[5]={1,2,3,4,5},b[5]={O,2,1,3,0},i,s=0;
for(i=0;i<5;i++) s=s+a[b[i]]);
printf(”%d\n”, s);
}
程序運行後的輸出結果是
A)6
B)10
C)11
D)15(30)有以下程序
#include stdio.h
main()
{int b [3][3]={O,1,2,0,1,2,O,1,2},i,j,t=1;
for(i=0;i3;i++)
for(j=ij=1;j++) t+=b[i][b[j][i]];
printf(”%d\n”,t);
}
程序運行後的輸出結果是
A)1
B)3
C)4
D)9(31)若有以下定義和語句…….這是全國2010全國c語言考試的部分題目,樓主需要的話可以自己去下載轉自:酷8學習網
計算機二級C語言筆試題和面試題答案目
如下這份計算機二級C語言筆試題目對於要考基計算機二級證書的朋友來說,應該會很有幫助,需要的朋友趕緊收藏吧!
一、選擇題((1)-(10),(21)-(40)每題2分,(11)-(20)每題1分,共70分)
下列各題A)、B)、C)、D)四個選項中,只有一個選項是正確的。請將正確選項填塗在答題卡相應位置上,答在試卷上不得分。
1. 下列敘述中正確的是
A 線性表的鏈式存儲結構與順序存儲結構所需要的存儲空間是相同的
B 線性表的鏈式存儲結構所需要的存儲空間一般要多於順序存儲結構
C 線性表的鏈式存儲結構所需要的存儲空間一般要少於順序存儲結構
D 上述三種說法都不對 答案:B
2. 下列敘述中正確的是
A 在棧中,棧中元素隨棧底指針與棧頂指針的變化而動態變化
B 在棧中,棧頂指針不變,棧中元素隨棧底指針的變化而動態變化
C 在棧中,棧底指針不變,棧中元素隨棧頂指針的變化而動態變化
D 上述三種說法都不對 答案:C
3. 軟件測試的目的是
A 評估軟件可靠性 B 發現並改正程序中的錯誤 C 改正程序中的錯誤
D 發現程序中的錯誤 答案:B
4. 下面描述中,不屬於軟件危機表現的是
A 軟件過程不規範 B 軟件開發生產率低 C 軟件質量難以控制
D 軟件成本不斷提高 答案:A
5. 軟件生命周期是指
A 軟件產品從提出、實現、使用維護到停止使用退役的過程
B 軟件從需求分析、設計、實現到測試完成的過程 C 軟件的開發過程
D 軟件的運行維護過程 答案:A
6. 面向對象方法中,繼承是指
A 一組對象所具有的相似性質 B 一個對象具有另一個對象的性質 C 各對象之間的共同性質 D 類之間共享屬性和操作的機制 答案:D
7. 層次型、網狀型和關係型數據庫劃分原則是
A 記錄長度 B 文件的大小 C 聯繫的複雜程度
D 數據之間的聯繫方式 答案:D
8. 一個工作人員可以使用多台計算機,而一台計算機可被多個人使用,則實體工作人員、與實體計算機之間的聯繫是
A 一對一B 一對多C 多對多D 多對一 答案:C
9. 數據庫設計中反映用戶對數據要求的模式是
A 內模式B 概念模式C 外模式D 設計模式 答案:C
10. 有三個關係R、S和T如下:則由關係R和S得到關係T的操作是
A 自然連接B 交C 投影D 並 答案:A
11. 以下關於結構化程序設計的敘述中正確的是
A 一個結構化程序必須同時由順序、分支、循環三種結構組成
B 結構化程序使用goto語句會很便捷 C 在C語言中,程序的模塊化是利用函數實現的
D 由三種基本結構構成的程序本文由論文聯盟收集整理只能解決小規模的問題 答案:C
12. 以下關於簡單程序設計的步驟和順序的說法中正確的是
A 確定算法後,整理並寫出文檔,最後進行編碼和上機調試
B 首先確定數據結構,然後確定算法,再編碼,並上機調試,最後整理文檔
C 先編碼和上機調試,在編碼過程中確定算法和數據結構,最後整理文檔
D 先寫好文檔,再根據文檔進行編碼和上機調試,最後確定算法和數據結構 答案:D
13. 以下敘述中錯誤的是
A C程序在運行過程中所有計算都以二進制方式進行 B C程序在運行過程中所有計算都以十進制方式進行 C 所有C程序都需要編譯鏈接無誤後才能運行
D C程序中整型變量只能存放整數,實型變量只能存放浮點數 答案:B
14. 有以下定義:inta; longb; doublex,y;則以下選項中正確的表達式是
A a%(int)(x-y) B a=x!=y; C (a*y)%b D y=x+y=x 答案:C
15. 以下選項中能表示合法常量的是
A 整數:1,200 B 實數:1.5E2.0 C 字符斜杠:‘\’ D 字符串:”\007″ 答案:C
16. 表達式a+=a-=a=9的值是
A 9 B _9 C 18 D 0 答案:D
17. 若變量已正確定義,在if (W)printf(“%d\n,k”);中,以下不可替代W的是
A ab+c B ch=getchar() C a==b+c D a++ 答案:A
18. 有以下程序
#include
main()
{inta=1,b=0;
if(!a) b++;
elsEif(a==0)if(a)b+=2;
elseb+=3;
printf(”%d\n”,b);
}
程序運行後的輸出結果是
A 0 B 1 C 2 D 3 答案:C
20. 有以下程序
#include
main()
{int a=1,b=2;
while(a6){b+=a;a+=2;b%二10;}
printf(”%d,%d\n”,a,b);
}
程序運行後的輸出結果是
A 5,11 B 7,1 C 7,11 D 6,1 答案:D
21. 有以下程序
#include
main()
{int y=10;
while(y–);
printf(”Y=%d\n”,Y);
}
程序執行後的輸出結果是
A y=0 B y= -1 C y=1 D while構成無限循環 答案:B
22. 有以下程序
#include
main()
{char s[」=”rstuv”;
printf(”%c\n”,*s+2);
}
程序運行後的輸出結果是
A tuv B 字符t的ASCII碼值 C t D 出錯 答案:D
23. 有以下程序
#include
#include
main()
{char x[]=”STRING”;
x[0」=0;x=’\0’;x[2」=’0’;
printf(”%d%d\n”,sizeof(x),strlen(x));
}
程序運行後的輸出結果是
A 61 B 70 C 63 D 71 答案:B
24. 有以下程序
#include
Int f(intx);
main()
{intn=1,m;
m=f(f(f(n)));printf(”%d\n”,m);
}
intf(intx)
{returnx*2;}
程序運行後的輸出結果是
A 1 B 2 C 4 D 8 答案:D
25. 以下程序段完全正確的是
A int *p;scanf(“%d”,p); B int *p;scanf(“%d”,p);
C int k, *p=k;scanf(“%d”,p); D int k, *p:;*p= k; scanf(“%d”,p); 答案:D
26. 有定義語句:int *p[4];以下選項中與此語句等價的是
A intp[4]; B int**p; C int*(p「4」); D int (*p)「4」; 答案:D
27. 下列定義數組的語句中,正確的是
A B C intx[0..10]; D int x[]; 答案:B
28. 若要定義一個具有5個元素的整型數組,以下錯誤的定義語句是
A inta[5]=﹛0﹜; B intb[]={0,0,0,0,0}; C intc[2+3]; D inti=5,d[i]; 答案:A
29. 有以下程序
#include
voidf(int *p);
main()
{inta[5]={1,2,3,4,5},*r=a;
f(r);printf(”%d\n”;*r);
}
void f(int *p)
{p=p+3;printf(”%d,”,*p);}
程序運行後的輸出結果是
A 1,4 B 4,4 C 3,1 D 4,1 答案:D
30. 有以下程序(函數fun只對下標為偶數的元素進行操作)
# include
void fun(int*a;int n)
{int i、j、k、t;
for (i=0;i
求2011年九月以及以前的計算機二級考試C語言試題及答案、以及考試內容分析和解題技巧。記住只要C的。
(1)下面敘述正確的是________。
A)算法的執行效率與數據的存儲結構無關
B)算法的空間複雜度是指算法程序中指令(或語句)的條數
C)算法的有窮性是指算法必須能在執行有限個步驟之後終止
D)算法的時間複雜度是指執行算法程序所需要的時間
(1)C
知識點:算法的基本概念;算法複雜度的概念和意義(時間複雜度與空間複雜度)
評 析:算法的設計可以避開具體的計算機程序設計語言,但算法的實現必須藉助程序設計語言中提供的數據類型及其算法。數據結構和算法是計算機科學的兩個重要支柱。它們是一個不可分割的整體。算法在運行過程中需輔助存儲空間的大小稱為算法的空間複雜度。算法的有窮性是指一個算法必須在執行有限的步驟以後結束。算法的時間複雜度是指執行算法所需要的計算工作量,即算法執行過程中所需要的基本運算次數。
(2)以下數據結構屬於非線性數據結構的是________。
A)隊列 B)線性表 C)二叉樹 D)棧
(2)C
知識點:棧和隊列的定義;棧和隊列的順序存儲結構及其基本運算
評 析:線性表、棧和隊列等數據結構所表達和處理的數據以線性結構為組織形式。棧是一種特殊的線性表,這種線性表只能在固定的一端進行插入和刪除操作,允許插入和刪除的一端稱為棧頂,另一端稱為棧底。一個新元素只能從棧頂一端進入,刪除時,只能刪除棧頂的元素,即剛剛被插入的元素。所以棧又稱後進先出表(Last In First Out)。隊列可看作是插入在一端進行,刪除在另一端進行的線性表,允許插入的一端稱為隊尾,允許刪除的一端稱為隊頭。在隊列中,只能刪除隊頭元素,隊列的最後一個元素一定是最新入隊的元素。因此隊列又稱先進先出表(First In First Out)。二叉樹的數據結構是樹型結構,結構中數據元素之間存在着一對多的關係,因此它是一種非線性數據結構。
(3)在一棵二叉樹上第8層的結點數最多是________。
A)8 B)16 C)128 D)256
(3)C
知識點:二叉樹的定義及其存儲結構
評 析:根據二叉樹的性質:二叉樹第i(I1)層上至多有2i-1個結點。得到第8層的結點數最多是128。
(4)下面描述中,不符合結構化程序設計風格的是________。
A)使用順序、選擇和重複(循環)三種基本控制結構表示程序的控制邏輯
B)自頂向下
C)注重提高程序的執行效率
D)限制使用goto語句
(4)C
知識點:結構化程序設計
評 析:結構化程序設計方法的四條原則是:1.自頂向下:2.逐步求精;3.模塊化;4.限制使用goto語句。“自頂向下”是說,程序設計時,應先考慮總體,後考慮細節,先考慮全局目標,後考慮局部目標;“逐步求精’’是說,對複雜問題,應設計一些子目標作過渡,逐步細節化;“模塊化”是說,一個複雜問題肯定是由若干稍簡單的問題構成,解決這個複雜問題的程序,也應對應若干稍簡單的問題,分解成若干稍小的部分。
(5)下面概念中,不屬於面向對象方法的是________。
A)對象、消息 B)繼承、多態 C)類、封裝 D)過程調用
(5)D
知識點:面向對象的程序設計方法、對象、方法、屬性及繼承與多態性
評 析:面向對象方法是一種運用對象、類、封裝、繼承、多態和消息等概念來構造、測試、重構軟件的方法。面向對象方法從對象出發,發展出對象、類、消息、繼承等概念。
(6)在結構化方法中,用數據流程圖(DFD)作為描述工具的軟件開發階段是________。
A)可行性分析 B)需求分析 C)詳細設計 D)程序編碼
(6)B
知識點:結構化設計方法
評 析:軟件開發階段包括需求分析、總體設計、詳細設計、編碼和測試五個階段。其中需求分析階段常用的工具是數據流程圖和數據字典。
(7)軟件生命周期中所花費用最多的階段是________。
A)詳細設計 B)軟件編碼 C)軟件測試 D)軟件維護
(7)D
知識點:軟件工程基本概念,軟件生命周期概念,軟件工具與軟件開發環境
評 析:軟件生命周期分為軟件定義、軟件開發及軟件運行維護3個階段。本題中詳細設計、軟件編碼和軟件測試都屬於軟件開發階段;維護是軟件生命周期的最後一個階段,也是持續時間最長,花費代價最大的一個階段,軟件工程學的一個目的就是提高軟件的可維護性,降低維護的代價。
(8)數據庫系統的核心是________。
A)數據模型 B)DBMS C)軟件工具 D)數據庫
(8)B
知識點:數據庫的基本概念:數據庫,數據庫管理系統,數據庫系統
評 析:數據庫管理系統DBMS是數據庫系統的核心。DBMS是負責數據庫的建立、使用和維護的軟件。DBMS建立在操作系統之上,實施對數據庫的統一管理和控制。用戶使用的各種數據庫命令以及應用程序的執行,最終都必須通過DBMS。另外,DBMS還承擔著數據庫的安全保護工作,按照DBA所規定的要求,保證數據庫的完整性和安全性。
(9)下列敘述中正確的是________。
A)數據處理是將信息轉化為數據的過程
B)數據庫設計是指設計數據庫管理系統
C)如果一個關係中的屬性或屬性組並非該關係的關鍵字,但它是另一個關係的關鍵
字,則稱其為本關係的外關鍵字
D)關係中的每列稱為元組,一個元組就是一個字段
(9)C
知識點:數據模型,實體聯繫模型及E-R圖,從E-R圖導出關係數據模型
評 析:數據處理是指將數據轉換成信息的過程,故選項A敘述錯誤;設計數據庫的目的實質上是設計出滿足實際應用需求的實際關係模型,故選項B敘述錯誤;關係中的行稱為元組,對應存儲文件中的記錄,關係中的列稱為屬性。對應存儲文件中的字段,故D選項敘述錯誤。
(10)下列模式中,_______是用戶模式。
A)內模式 B)外模式 C)概念模式 D)邏輯模式
(10)B
知識點:數據庫的基本概念:數據庫,數據庫管理系統,數據庫系統
評 析:數據庫管理系統的三級模式結構由外模式、模式和內模式組成。外模式,或稱子模式,或稱用戶模式,是指數據庫用戶所看到的數據結構,是用戶看到的數據視圖。模式,或稱邏輯模式,是數據庫中對全體數據的邏輯結構和特性的描述,是所有用戶所見到的數據視圖的總和。外模式是模式的一部分。內模式,或稱存儲模式,或稱物理模式,是指數據在數據庫系統內的存儲介質上的表示。即對數據的物理結構和存取方式的描述。
36)算法的時間複雜度是指_______。
A)執行算法程序所需要的時間
B)算法程序的長度
C)算法執行過程中所需要的基本運算次數
D)算法程序中的指令條數
(36)C
知識點:算法複雜度的概念和意義(時問複雜度與空間複雜度)
評析:所謂算法的時間複雜度,是指執行算法所需要的計算工作量。為了能夠比較客觀地反映出一個算法的效率,在度量一個算法的工作量時,不僅應該與所使用的計算機、程序設計語言以及程序編製者無關,而且還應該與算法實現過程中的許多細節無關。為此,可以用算法在執行過程中所需基本運算的執行次數來度量算法的工作量。
(37)下列敘述中正確的是_______。
A)線性表是線性結構 B)棧與隊列是非線性結構
C)線性鏈表是非線性結構 D)二叉樹是線性結構
(37)A
知識點:線性結構與非線性結構的概念
評析:根據數據結構中各數據元素之間相關聯關係的複雜程度,一般將數據結構分為兩大類型:線性結構與非線性結構。如果一個非空的數據結構滿足下列兩個條件: (1)有且只有一個根結點; (2)每一個結點最多有一個前件,也最多有一個後件。則稱該數據結構為線性結構,又稱線性表。所以線性表、棧與隊列、線性鏈表都是線性結構,而二叉樹是非線性結構。
(38)下面關於完全二叉樹的敘述中,錯誤的是_______。
A)除了最後一層外,每一層上的結點數均達到最大值
B)可能缺少若干個左右葉子結點
C)完全二叉樹一般不是滿二叉樹
D)具有結點的完全二叉樹的深度為[log2n]+l
(38)B
知識點:二叉樹的定義及其存儲結構
評析:這裡考察完全二又樹與滿二叉樹的定義及二叉樹的性質。滿二叉樹指除最後一層外每一層上所有結點都有兩個子結點的二叉樹。完全二叉樹指除最後一層外,每一層上的結點數均達到最大值,在最後一層上只缺少右邊的若干子結點(葉子結點)的二叉樹。因此選項A是正確的,而選項B是錯誤的。由定義可知,滿二叉樹肯定是完全二又樹,而完全二又樹一般不是滿二叉樹,因此選項c是正確的敘述。選項D即二又樹性質(5),也是正確的。
(39)結構化程序設計主要強調的是_______。
A)程序的規模 B)程序的易讀性
C)程序的執行效率 D)程序的可移植性
(39)B
知識點:結構化程序設計
評析:結構化程序設計主要強調的足結構化程序清晰易讀,可理解性好,程序員能夠進行逐步求精、程序證明和測試.以保證程序的正確性。
(40)在軟件生命周期中,能準確地確定軟件系統必須做什麼和必須具備哪些功能的階段是_______。
A)概要設計 B)詳細設計 C)可行性分析 D)需求分析
(40)D
知識點:軟件工程基本概念,軟件生命周期概念,軟件工具與軟件開發環境
評析:通常,將軟件產品從提出、實現、使用維護到停止使用退役的過程稱為軟件生命周期。也就是說,軟件產品從考慮其概念開始,到該軟件產品不能使用為止的整個時期都屬於軟件生命周期。軟件生命周期的主要活動階段為:
① 可行性研究和計劃制定。確定待開發軟件系統的開發目標和總的要求,給出它的功能、性能、可靠性以及接口等方面的可行方案,制定完成開發任務的實施計劃。
②需求分析。對待開發軟件提出的需求進行分析並給出詳細定義,即準確地確定軟件系統的功能。編寫軟件規格說明書及初步的用戶手冊,提交評審。
③軟件設計。系統設計人員和程序設計人員應該在反覆理解軟件需求的基礎上,給出軟件的結構、模塊的劃分、功能的分配以及處理流程。
④軟件實現。把軟件設計轉換成計算機可以接受的程序代碼。即完成源程序的編碼,編寫用戶手冊、操作手冊等面向用戶的文檔,編寫單元測試計劃。
⑤軟件測試。在設計測試用例的基礎上,檢驗軟件的各個組成部分。編寫測試分析報告。
⑥運行和維護。將已交付的軟件投入運行,並存運行使用中不斷地維護,根據新提出的需求進行必要而且可能的擴充和刪改。
(41)數據流圖用於抽象描述一個軟件的邏輯模型,數據流圖由一些特定的圖符構成。下列圖符名標識的圖符不屬於數據流圖合法圖符的是_______。
A)控制流 B)加工 C)數據存儲 D)源和潭
(41)A
知識點:結構化分析方法,數據流圖,數據字典,軟件需求規格說明書
評析:數據流圖從數據傳遞和加工的角度,來刻畫數據流從輸入到輸出的移動變換過程。數據流圖中的主要圖形元素有:加工(轉換)、數據流、存儲文件(數據源)、源和潭。
(42)軟件需求分析一般應確定的是用戶對軟件的_______。
A)功能需求 B)非功能需求 C)性能需求 D)功能需求和非功能需求
(42)D
知識點:結構化設計方法
評析:軟件需求分析中需要構造一個完全的系統邏輯模型,理解用戶提出的每一功能與性能要求,是用戶明確自己的任務。因此,需求分析應確定用戶對軟件的功能需求和非功能需求。
(43)下述關於數據庫系統的敘述中正確的是_______。
A)數據庫系統減少了數據冗餘
B)數據庫系統避免了一切冗餘
C)數據庫系統中數據的一致性是指數據類型的一致
D)數據庫系統比文件系統能管理更多的數據
(43)A
知識點:數據庫的基本概念:數據庫,數據庫管理系統,數據庫系統
評析:由於數據的集成性使得數據可為多個應JH=j所共享,特別是在網絡發達的今天,數據庫與網絡的結合擴大了數據關係的應用範圍。數據的共享自身義可極大地減少數據冗餘性,不僅減少了不必要的存儲空間,更為重要的是可以避免數據的不一致性。所謂數據的一致性是指在系統中同一數據的不同出現應保持相同的值,而數據的不一致性指的是同一個數據在系統的不同拷貝處有不同的值。
(44)關係表中的每一橫行稱為一個_______。
A)元組 B)字段 C)屬性 D)碼
(44)A
知識點:數據庫的基本概念:數據庫.數據庫管理系統,數據庫系統
評析:在關係數據庫中,關係模型採用二維表來表示,簡稱“表”。二維表是由表框架及表元組組成。在表框架中,按行可以存放數據,每行數據稱為元組。
(45)數據庫設計包括兩個方面的設計內容,它們是_______。
A)概念設計和邏輯設計 B)模式設計和內模式設計
C)內模式設計和物理設計 D)結構特性設計和行為特性設計
(45)A
知識點:數據庫設計方法和步驟:需求分析、概念設計、邏輯設計和物理設計的相關策略
評析:數據庫設計可分為概念設計與邏輯設計。數據庫概念設計的目的是分析數據問內存語義關聯,在此基礎上建立一個數據的抽象模型。數據庫邏輯設計的主要工作是將E-R圖轉換為指定的RDBMS中的關係模型。
(61)字符(char)型數據在微機內存中的存儲形式是________。
A)反碼 B)補碼
C)EBCDIC碼 D)ASCII碼
(61)D
知識點:字符數據在內存中的存儲形式
評析:將一個字符常量放到一個字符變量中,實際上並不是把該字符本身放到內存單元中去,而是將該字符的ASCII碼值放到存儲單元中。
71)算法的空間複雜度是指_______。
A)算法程序的長度 B)算法程序中的指令條數
C)算法程序所佔的存儲空間 D)算法執行過程中所需要的存儲空間
(71)D
知識點:算法的複雜度
評析:一個算法的空間複雜度,一般是指執行這個算法所需的內存空間。
一個算法所佔用的存儲空間包括算法程序所佔的空間、輸入的初始數據所佔的存儲空間以及算法執行過程中所需要的額外空間。
(72)下列關於棧的敘述中正確的是_______。
A)在棧中只能插入數據 B)在棧中只能刪除數據
C)棧是先進先出的線性表 D)棧是先進後出的線性表
(72)D
知識點:棧的輸入輸出操作
評析:棧是限定在一端進行插入與刪除的線性表。
棧是按照“先進後出”的或“後進先出”的原則組織數據的,因此,棧也被稱為“先進後出”表或“後進先出”表。
(73)在深度為5的滿二叉樹中,葉子結點的個數為_______。
A)32 B)31 C)16 D)15
(73)C
知識點:二叉樹的概念
評析:所謂滿二叉樹是指除最後一層外,每層上的所有結點都有兩個子結點。也就是說,在滿二又樹中,每一層上的結點數都達到最大值,即在滿二叉樹的第K層上有2k-1個結點,且深度為m的滿二叉樹有2m個結點。
在滿二叉樹中,最後一層的結點個數就是葉子結點的個數,本題中深度為5,故葉子結點數為25-1=24==16。
(74)對建立良好的程序設計風格,下面描述正確的是_______。
A)程序應簡單、清晰、可讀性好 B)符號名的命名要符合語法
C)充分考慮程序的執行效率 D)程序的注釋可有可無
(74)A
知識點:程序設計風格
評析:要形成良好的程序設計風格,主要應注重和考慮下述一些因素:符號名的命名應具有一定的實際含義,以便於對程序功能的理解;正確的注釋能夠幫助讀者理解程序;程序編寫應優先考慮清晰性,除非對效率有特殊要求,程序編寫要做到清晰第一,效率第二。
(75)下面對對象概念描述錯誤的是_______。
A)任何對象都必須有繼承性 B)對象是屬性和方法的封裝體
C)對象問的通訊靠消息傳遞 D)操作是對象的動態性屬性
(75)A
知識點:對象的概念
評析:對象是由數據和容許的操作組成的封裝體,與客觀實體有直接的對應關係。對象之間通過傳遞消息互相聯繫,以模擬現實世界中不同事物彼此之間的聯繫。
(76)下面不屬於軟件工程的3個要素的是_______。
A)工具 B)過程 C)方法 D)環境
(76)D
知識點:軟件:[程的要素
評析:軟件工程包括3個要素,即方法、工具和過程。
(77)程序流程圖(PFD)中的箭頭代表的是_______。
A)數據流 B)控制流 C)調用關係 D)組成關係
(77)B
知識點:軟件設計工具
評析:程序流程圖(PFD)是一種傳統的、應用廣泛的軟件過程設計表示工具,通常也稱為程序框圖,其箭頭代表的是控制流。
(78)在數據管理技術的發展過程中,經歷了人工管理階段、文件系統階段和數據庫系統階段。其中數據獨立性最高的階段是_______。
A)數據庫系統 B)文件系統 C)人工管理 D)數據項管理
(78)A
知識點:數據管理技術的發展
評析:在數據管理技術的發展過程中,經歷了人工管理階段、文件系統階段和數據庫系統階段。其中數據獨立性最高的階段是數據庫系統。
跪求2010.9計算機二級C語言筆試複習資料
一、選擇題(每題2分,共計70分)
1.(1)下列數據結構中,屬於非線性結構的是
A)循環隊列
B)帶鏈隊列
C)二叉樹
D)帶鏈棧
A B C D
2.
(2)下列數據結構中,能夠按照“先進後出”原則存取數據的是
A)循環隊列
B)棧
C)隊列
D)二叉樹
A B C D
3.
(3)對於循環隊列,下列敘述中正確的是
A)隊頭指針是固定不變的
B)隊頭指針一定大於隊尾指針
C)隊頭指針一定小於隊尾指針
D)隊頭指針可以大於隊尾指針,也可以小於隊尾指針
A B C D
4.
(4)算法的空間複雜度是指
A)算法在執行過程中所需要的計算機存儲空間
B)算法所處理的數據量
C)算法程序中的語句或指令條數
D)算法在執行過程中所需要的臨時工作單元數
A B C D
5.
(5)軟件設計中劃分模塊的一個準則是
A)低內聚低耦合
B)高內聚低耦合
C)低內聚高耦合
D)高內聚高耦合
A B C D
6.
(6)下列選項中不屬於結構化程序設計原則的是
A)可封裝
B)自頂向下
C)模塊化
D)逐步求精
A B C D
7.(7)軟件詳細設計產生的圖如下:
該圖是
A)N-S圖
B)PAD圖
C)程序流程圖
D)E-R圖
A B C D
8.
(8)數據庫管理系統是
A)操作系統的一部分
B)在操作系統支持下的系統軟件
C)一種編譯系統
D)一種操作系統
A B C D
9.
(9)在E-R圖中,用來表示實體聯繫的圖形是
A)橢圓形
B)矩形
C)菱形
D)三角形
A B C D
10.(10)有三個關係R,S,和T如下:
其中關係T由關係R和S通過某種操作得到,該操作為
A)選擇
B)投影
C)交
D)並
A B C D
11.(11)以下敘述中正確的是
A)程序設計的任務就是編寫程序代碼並上機調試
B)程序設計的任務就是確定所用的數據結構
C)程序設計的任務就是確定所用算法
D)以上三種說法都不完整
A B C D
12.(12)以下選項中,能用作用戶標識符的是
A)void
B)8_8
C)_0_
D)unsigned
A B C D
13.(13)閱讀以下程序
#include stdio.h
main()
{ int case; float printF;
printf(“請輸入2個數:”);
scanf(“%d %f”,case,printF);
printf(“%d %f\n”,case,printf);
}
該程序在編譯時產生錯誤,其出錯原因是
A)定義語句出錯,case是關鍵字,不能用作用戶自定義標識符
B)定義語句出錯,printF不能用作用戶自定義標識符
C)定義語句無錯,scanf不能作為輸入函數使用
D)定義語句無措,printf不能輸出case的值
A B C D
14.(14)表達式:(int)((double)9/2)-(9)%2的值是
A)0
B)3
C)4
D)5
A B C D
15.(15)若有定義語句: int x=10;,則表達式x-=x+x的值為
A)-20
B)-10
C)0
D)10
A B C D
16.(16)有以下程序
#include stdio.h
main()
{ int a=1,b=0;
printf(“%d,”,b=a+b);
printf(“%d”,a=2*b);
}
程序運行後的輸出結果是
A)0,0
B)1,0
C)3,2
D)1,2
A B C D
17.(17)設有定義: int a=1,b=2,c=3;,以下語句中執行效果與其它三個不同的是
A)if(ab) c=a,a=b,b=c;
B)if(ab){c=a,a=b,b=c;}
C)if(ab) c=a;a=b;b=c;
D)if(ab){c=a;a=b;b=c;}
A B C D
18.(18)有以下程序
#include stdio.h
main()
{ int c=0,k;
for(k=1;k3;k++)
switch(k)
{ default:c+=k;
case 2:c++;break;
case 4:c+=2;break;
}
printf(“%d\n”,c);
}
程序運行後的輸出結果是
A)3
B)5
C)7
D)9
A B C D
19.(19)以下程序段中,與語句: k=ab?(bc?1:0):0;功能相同的是
A)if((ab)(bc)) k=1;
else k=0;
B)if((ab)||(bc)) k=1;
else k=0;
C)if(a=b)k=0;
else if(b=c) k=1;
D) if(ab) k=1;
else if(bc) k=1;
else k=0;
A B C D
20.(20)有以下程序
#include stdio.h
main()
{ char s[]={“012xy”};int i,n=0;
for(i=0;s[i]!=0;i++)
if(s[i]’a’s[i]=’z’) n++;
printf(“%d\n”,n);
}
程序運行後的輸出結果是
A)0
B)2
C)3
D)5
A B C D
21.
(21)有以下程序
#include stdio.h
main()
{ int n=2,k=0;
while(k++n++2);
printf(“%d %d\n”,k,n);
}
程序運行後的輸出結果是
A)0 2
B)1 3
C)5 7
D)1 2
A B C D
22.
(22)有以下定義語句,編譯時會出現編譯錯誤的是
A) char a=’a’;
B) char a=’\n’;
C) char a=’aa’;
D) char a=’\x2d’;
A B C D
23.
(23)有以下程序
#include stdio.h
main()
{ char c1,c2;
c1=’A’+’8′-‘4’;
c2=’A’+’8′-‘5’;
printf(“%c,%d\n”,c1,c2);
}
已知字母A的ASCII碼為65,程序運行後的輸出結果是
A)E,68
B)D,69
C)E,D
D)輸出無定值
A B C D
24.
(24)有以下程序
#include stdio.h
void fun(int p)
{ int d=2;
p=d++;
printf(“%d”,p);
}
main()
{ int a=1;
fun(a);
printf(“%d\n”,a);
}
程序運行後的輸出結果是
A)32
B)12
C)21
D)22
A B C D
25.
(25)以下函數findmax擬實現在數組中查找最大值並作為函數值返回,
但程序中有錯導致不能實現預定功能
#define MIN -2147463647
int findmax(int x[],int n)
{ int i,max;
for(i=0;in;i++)
{ max=MIN;
if(maxx[i]) max=x[i];
}
return max;
}
造成錯誤的原因是
A)定義語句int i,max中max未賦值
B)賦值語句max=MIN;中,不應該給max賦MIN值
C)語句if(maxx[i]) max=x[i];中判斷條件設置錯誤
D)賦值語句max=MIN;放錯了位置
A B C D
26.
(26)有以下程序
#include stdio.h
main()
{ int m=1,n=2,*p=m,*q=n,*r;
r=p;p=q;q=r;
printf(“%d,%d,%d,%d\n”,m,n,*p,*q);
}
程序運行後的輸出結果是
A)1,2,1,2
B)1,2,2,1
C)2,1,2,1
D)2,1,1,2
A B C D
27.
(27)若有定義語句: int a[4][10],*p,*q[4];且0=i4,則錯誤的賦值是
A)p=a
B)q[i]=a[i]
C)p=a[i]
D)p=a[2][1]
A B C D
28.
(28)有以下程序
#include stdio.h
#include string.h
main()
{ char str[][20]={“One*World”,”One*Dream!”},*p=str[1];
printf(“%d,”,strlen(p));
printf(“%s\n”,p);
}
程序運行後的輸出結果是
A)9,One*World
B)9,One*Dream!
C)10,One*Dream!
D)10,One*World
A B C D
29.
(29)有以下程序
#include stdio.h
main()
{ int a[]={2,3,5,4},i;
for(i=0;i4;i++)
switch(i%2)
{ case 0:
switch(a[i]%2)
{ case 0:a[i]++;break;
case 1:a[i]–;
} break;
case 1:a[i]=0;
}
for(i=0;i4;i++)
printf(“%d “,a[i]);
printf(“\n”);
}
程序運行後的輸出結果是
A)3 3 4 4
B)2 0 5 0
C)3 0 4 0
D)0 3 0 4
A B C D
30.
(30)有以下程序
#include stdio.h
#include string.h
main()
{ char a[10]=”abcd”;
printf(“%d,%d\n”,strlen(a),sizeof(a));
}
程序運行後的輸出結果是
A)7,4
B)4,10
C)8,8
D)10,10
A B C D
31.
(31)下面是有關C語言字符數組的描述,其中錯誤的是
A)不可以用賦值語句給字符數組名賦字符串
B)可以用輸入語句把字符串整體輸入給字符數組
C)字符數組中的內容不一定是字符串
D)字符數組只能存放字符串
A B C D
32.
(32)下列函數的功能是
fun(char *a,char *b)
{ while((*b=*a)!=’\0′){a++;b++;} }
A)將a所指字符串賦給b所指空間
B)使指針b指向a所指字符串
C)將a所指字符串和b所指字符串進行比較
D)檢查a和b所指字符串中是否有’\0′
A B C D
33.
(33)設有以下函數:
void fun(int n,char *s){……}
則下面對函數指針的定義和賦值均正確的是
A)void (*pf)(); pf=fun;
B)void *pf(); pf=fun;
C)void *pf(); *pf=fun;
D)void (*pf)(int,char);pf=fun;
A B C D
34.(34)有以下程序
#include stdio.h
int f(int n);
main()
{ int a=3,s;
s=f(a);s=s+f(a);printf(“%d\n”,s);
}
int f(int n)
{ static int a=1;
n+=a++;
return n;
}
程序運行後的輸出結果是
A)7
B)8
C)9
D)10
A B C D
35.
(35)有以下程序
#include stdio.h
#define f(x) x*x*x
main()
{ int a=3,s,t;
s=f(a+1);t=f((a+1));
printf(“%d,%d\n”,s,t);
}
程序運行後的輸出結果是
A)10,64
B)10,10
C)64,10
D)64,64
A B C D
36.
(36)下面結構體的定義語句中,錯誤的是
A)struct ord {int x;int y;int z;};struct ord a;
B)struct ord {int x;int y;int z;} struct ord a;
C)struct ord {int x;int y;int z;} n;
D)struct {int x;int y;int z;} a;
A B C D
37.(37)設有定義: char *c;以下選項中能夠使字符型指針C正確指向一個字符串的是
A) char str[]=”string”;c=str;
B) scanf(“%s”,c);
C) c=getchar();
D) *c=”string”;
A B C D
38.
(38)有以下程序
#include stdio.h
#include string.h
struct A
{ int a;char b[10];double c;};
struct A f(struct A t);
main()
{ struct A a={1001,”ZhangDa”,1098.0};
a=f(a); printf(“%d,%s,%6.1f\n”,a.a,a.b,a.c);
}
struct A f(struct A t)
{ t.a=1002;strcpy(t.b,”ChangRong”);t.c=1202.0;return t;}
程序運行後的輸出結果是
A)1001,ZhangDa,1098.0
B)1002,ZhangDa,1202.0
C)1001,ChangRong,1098.0
D)1002,ChangRong,1202.0
A B C D
39.
(39)有以下程序
int r=8;
printf(“%d\n”,r1);
輸出結果是
A)16
B)8
C)4
D)2
A B C D
40.
(40)下列關於C語言文件的敘述中正確的是
A)文件由一系列數據一次排列組成,只能構成二進制文件
B)文件由結構序列組成,可以構成二進制文件或文本文件
C)文件由數據序列組成,可以構成二進制文件或文本文件
D)文件由字符序列組成,只能是文本文件
A B C D
二、填空題(每空2分,共計30分)
1.(1)某二叉樹有5個度為2的結點以及3個度為1的結點,則該二叉樹中共有【1】個結點。
輸入答案,中間不含空格:
2.
(2)程序流程圖中菱形框表示的是【2】
輸入答案,中間不含空格:
3.
(3)軟件開發過程主要分為需求分析、設計、編碼與測試四個階段。其中【3】階段
產生”軟件需求規格說明書“。
輸入答案,中間不含空格:
4.
(4)在數據庫技術中,實體集之間的聯繫可以是一對一或一對多或多對多的,那麼”學生“
和”可選課程”的聯繫為【4】
輸入答案,中間不含空格:
5.
(5)人員基本信息一般包括:身份證號,姓名,性別,年齡等。其中可以作為主關鍵字的
是【5】
輸入答案,中間不含空格:
6.
(6)若有定義語句:int a=5;,則表達式a++的值是【6】。
輸入答案,中間不含空格:
7.
(7)若有語句double x=17;int y;,當執行y=(int)(x/5)%2;之後y的值是【7】
輸入答案,中間不含空格:
8.
(8)以下程序運行後的輸出結果是【8】
#include stdio.h
main()
{ int x=20;
printf(“%d “,0x20);
printf(“%d\n”,0xx20);
}
輸入答案,中間不含空格:
9.
(9)以下程序運行後的輸出結果是【9】
#include stdio.h
main()
{ int a=1,b=7;
do{
b=b/2;a+=b;
} while (b1);
printf(“%d\n”,a);
}
輸入答案,中間不含空格:
10.
(10)有一下程序
#include stdio.h
main()
{ int f,f1,f2,i;
f1=0;f2=1;
printf(“%d %d “,f1,f2);
for(i=3;i=5;i++)
{ f=f1+f2; printf(“%d”,f);
f1=f2; f2=f;
}
printf(“\n”);
}
程序運行後的輸出結果是【10】
輸入答案,中間不含空格:
11.
(11)有以下程序
#include stdio.h
int a=5;
void fun(int b)
{ int a=10;
a+=b; printf(“%d”,a);
}
main()
{ int c=20;
fun(c); a+=c; printf(“%d\n”,a);
}
程序運行後的輸出結果是【11】
輸入答案,中間不含空格:
12.
(12)設有定義
struct person
{ int ID;char name[12];} p;
請將scanf(“%d”,【12】);語句補充完整,使其能夠為結構體變量p的
成員ID正確讀入數據。
輸入答案,中間不含空格:
13.
(13)有以下程序
#include stdio.h
main()
{ char a[20]=”How are you?”,b[20];
scanf(“%s”,b); printf(“%s %s\n”,a,b);
}
程序運行時從鍵盤輸入: How are you?回車
則輸出結果為【13】
輸入答案,中間不含空格:
14.
(14)有以下程序
#include stdio.h
typedef struct
{ int num;double s;} REC;
void fun1(REC x){ x.num=23;x.s=88.5; }
main()
{ REC a={16,90.0};
fun1(a);
printf(“%d\n”,a.num);
}
輸入答案,中間不含空格:
15.
(15)有以下程序
#include stdio.h
fun(int x)
{ if(x/20) fun(x/2);
printf(“%d “,x);
}
main()
{ fun(6);printf(“\n”);}
程序運行後的輸出結果是【15】
輸入答案,中間不含空格:
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/279739.html