2016年計算機二級《C語言》考試題庫及答案
(1)下列敘述中正確的是( )。
A.線性表的鏈式存儲結構與順序存儲結構所需要的存儲空間是相同的
B.線性表的鏈式存儲結構所需要的存儲空間一般要多于順序存儲結構
C.線性表的鏈式存儲結構所需要的存儲空間一般要少于順序存儲結構
D.線性表的鏈式存儲結構與順序存儲結構在存儲空間的需求上沒有可比性
(2)下列敘述中正確的是( )。
A.棧是一種先進先出的線性表
B.隊列是一種后進先出的線性表
C.棧與隊列都是非線性結構
D.以上三種說法都不對
(3)軟件測試的目的是( )。
A.評估軟件可靠性
B.發現并改正程序中的錯誤
C.改正程序中的錯誤
D.發現程序中的錯誤
(4)在軟件開發中,需求分析階段產生的主要文檔是( )。
A.軟件集成測試計劃
B.軟件詳細設計說明書
C.用戶手冊。
D.軟件需求規格說明書
(5)軟件生命周期是指( )。
A.軟件產品從提出、實現、使用維護到停止使用退役的過程
B.軟件從需求分析、設計、實現到測試完成的過程
C.軟件的開發過程
D.軟件的運行維護過程
(6)面向對象方法中,繼承是指( )。
A.一組對象所具有的相似性質
B.一個對象具有另一個對象的性質
C.各對象之間的共同性質
D.類之間共享屬性和操作的機制
(7)層次型、網狀型和關系型數據庫劃分原則是( )。
A.記錄長度
B.文件的大小
C.聯系的復雜程度
D.數據之間的聯系方式
(8)一個工作人員可以使用多臺計算機,而一臺計算機可被多個人使用,則實體工作人員與實體計算機之間的聯系是( )。
A.一對一
B.一對多
C.多對多
D.多對一
(9)數據庫設計中反映用戶對數據要求的模式是( )。
A.內模式
B.概念模式
C.外模式
D.設計模式
(10)有三個關系R、S和T如下:
則由關系R和s得到關系T的操作是( )。
A.自然連接
B.差
C.交
D.并
(11)計算機能直接執行的程序是( )。
A.源程序
B.目標程序
C.匯編程序
D.可執行程序
(12)以下敘述中正確的是( )。
A.c語言規定必須用main作為主函數名,程序將從此開始執行
B.可以在程序中由用戶指定任意一個函數作為主函數,程序將從此開始執行
C.c語言程序將從源程序中第一個函數開始執行、
D.main的各種大小寫拼寫形式都可以作為主函數名,如MAIN,Main等
(13)以下選項中可用做c程序合法實數的是( )。
A.3.0e0.2
B..1e0
C.E9
D.9.12E
(14)下列定義變量的語句中錯誤的是( )。
A.int jnt;
B.double int_;
C.char For;
D.float US$;
(15)表達式:(im)((double)9/2)一9%2的值是( )。
A.0
B.3
C.4
D.5
(16)設變量均已正確定義,若要通過
scaIIf(”%d%c%d%c”,&al,&el,&a2,&c2);
語句為變量al和a2賦數值l0和20,為變量cl和c2賦字符x和Y。以下所示的輸入形式中正確的是( )。(注:口代表空格字符)
(17)以下選項中不能作為c語言合法常量的是( )。.
A.0.1e+6
B.’cd’.
C.”、a”
D.’\011
(18)if語句的基本形式是:if(表達式)語句,以下關于“表=迭式”值的敘述中正確的是( )。
A.必須是邏輯值
B.必須是整數值
C.必須是正數
D.可以是任意合法的數值
(19)有如下嵌套的if語句:
以下選項中與上述if語句等價的語句是( )。
k=(a
B.B.:((b>C.?b:
c.;B.k=(a
D.k=(a
(20)有以下程序:
程序執行后的輸出結果是( )。
A.1
B.2
C.4
D.死循環
(21)有以下程序:
程序運行后的輸出結果是( )。
(22)有以下程序:
程序運行后的輸出結果是( )。
A.02356
B.0235
C.235
D.2356
以下關于retllm語句的敘述中正確的是( )。
A.一個自定義函數中必須有一條return語句
B.一個自定義函數中可以根據不同情況設置多條retum語句
C.定義成void類型的函數中可以有帶返回值的return語句
D.沒有return語句的自定義函數在執行結束時不能返回到調用處
(24)已定義以下函數:
fun函數的返回值是( )。
一個整數
B.不確定的值
C.形參P中存放的值
D.形參P的地址值(25)以下程序段完全正確的是( )。
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);
(26)設有定義:
double a[10],*s=a;
以下能夠代表數組元素a[3]的是( )。
A.($s)[3]
B.}(s+3)
C.*s[3]
D.}s+3
27、有以下程序
程序運行后的輸出結果是( )。
A.6,2,3,4,5,
B.2,2,3,4,5,
C.1,2,3,4,5,
D.2,3,4,5,6,
(28)有以下程序:
程序運行后的輸出結果是( )。
A.4
B.34
C.31
D.32
(29)以下選項中正確的語句組是( )。
A.char*s;8={1.BOOK!”}i
B.char*s;8=”BOOK!”;
C.char S[10];S=”BOOK!”;
D.char S[];S=”BOOK!”;(30)若有定義語句:
char}sl=‘’0K”,:It s2=”ok”;
以下選項中,能夠輸出“OK”的語句是( )。
A.if(strcmp(sl,s2)!=0)puts(s2);
B.if(strcmp(sl,s2)!=0)puts(s1);
C.if(strcmp(sl,s2)==1)puts(s1);
D.if(strcmp(sl,s2)==0)puts(s1);
(31)有以下程序:
程序運行后的輸出結果是( )。
A.Afternoon
B.ftemoon
C.Morning
D.oming
(32)有以下程序,程序中庫函數islower(ch)用以判斷ch中的字母是否為小寫字母:
程序運行后的輸出結果是( )。
A.ab cd EFg!
B.Ab Cd EFg!
C.ab cd EFG!
D.aB cD EFG!
(33)有以下程序:
程序運行后的輸出結果是( )。
A.0
B.9
C.6
D.8
(34)有以下程序:
程序執行后的輸出結果是( )。
A.55.
B.50
C.45
D.60
(35)有以下結構體說明、變量定義和賦值語句:
則以下scanf函數調用語句有錯誤的是( )。
scanf(”%s”,s[0].name);
B.scanf(”%d”,&s[0].age);
C.scanf(”%c”,&(ps一>sex));
D.scanf(”%d”,ps一>age):
(36)若有以下語句:typedef struct S{int 9;char h;}T;以下敘述中正確的是( )。
A.可用s定義結構體變量
B.可用T定義結構體變量
C.S是struct類型的變量
D.T是struct S類型的變量
程序運行后的輸出結果是( )。
A.1002,ZhangDa,1202.0
B.1002,ChangRon9。1202.0
C.1001,ChangRon9,1098.0
D.1001,ZhangDa,1098.0
(38)設有宏定義:
#define IsDIV(k,n)((k%1"1==1)?1:O)且變量m已正確定義并賦值,則宏調用:
IsDIV(m,5)&&IsDIV(m,7)為真時所要表達的是( )。
判斷m是否能被5和7整除
B.判斷m被5和7整除是否都余l
C.判斷m被5或者7整除是否余1
D.判斷m是否能被5或者7整除
(39)有以下程序:
程序運行后的輸出結果是( )。
A.3
B.1
C.2
D.0
(40)有以下程序:
程序運行后的輸出結果是( )。
A.1 2
B.1 4
C.123 4
D.123 456
參考答案與解析
(1)B
【解析】線性鏈式存儲結構中每個結點都由數據域與指針域兩部分組成,增加了存儲空間,所以一般要多于順序存儲結構。
(2)D
【解析】棧是一種先進后出的線性表,隊列是一種先進先出的線性表,棧與隊列都是線性結構。
(3)D
【解析】軟件測試是為了發現錯誤而執行程序的過程,測試要以查找錯誤為中心,而不是為了演示軟件的正確功能。不是為了評估軟件或改正錯誤。
(4)D
【解析】需求分析階段的工作可以概括為:需求獲取、需求分析、編寫需求規格說明書、需求評審四個方面。所以選擇D。
(5)A
【解析】通常,將軟件產品從提出、實現、使用維護到停止使用退役的過程稱為軟件生命周期。也就是說,軟件產品從考慮其概念開始,到該軟件產品不能使用為止的整個時期都屬于軟件生命周期。
(6)D
【解析】繼承是面向對象的方法的一個主要特征,是使用已有的類的定義作為基礎建立新類的定義技術。廣義地說,繼承是指能夠直接獲得已有的性質和特征,而不必重復定義它們,所以說繼承是指類之間共享屬性和操作的機制。
(7)D
【解析】層次模型的基本結構是樹形結構,網狀模型是一個不加任何條件限制的無向圖,關系模型采用二維表來表示,所以三種數據庫的劃分原則是數據之間的聯系方式。
(8)C
【解析】因為一個人可以操作多個計算機,而一臺計算機又可以被多個人使用,所以兩個實體之間是多對多的關系。
(9)C
【解析】數據庫系統的三級模式是概念模式、外模式和內模式。概念模式是數據庫系統中全局數據邏輯結構的描述,是全體用戶公共數據視圖。外模式也稱子模式或用戶模式,它是用戶的數據視圖,給出了每個用戶的局部數據描述,所以選擇C。內模式又稱物理模式,它給出了數據庫物理存儲結構與物理存取方法。
(10)B
【解析】關系T中的元組是R關系中有而s關系中沒有的元組的集合,所以進行的是差的運算。
(11)D
【解析】計算機能直接執行的程序是二進制的可執行程序,擴展名為.exe。所以選擇D選項。
(12)A
【解析】C語言中的主函數只能是main()函數,不能任意指定,所以B選項錯誤。C語言從主函數main()開始,到主函數main()結束,所以C選項錯誤。主函數必須寫成小寫的main,不能混淆大小寫,所以D選項錯誤。
(13)B
【解析】A選項中e后面的指數必須為整數,所以錯誤。C語言規定,E之前必須要有數字,所以c選項錯誤。E后面必須要有數字,且必須為整數,所以D選項錯誤。
(14)D
【解析】C語言規定,變量命名必須符合標識符的命名規則。D選項中包含了非法字符“$”,所以錯誤。標識符由字母、數字或下劃線組成,且第一個字符必須是大小寫英文字母或者下劃線,而不能是數字。大寫字符與小寫字符被認為是兩個不同的字符,所以For不是關鍵字for。
(15)B
【解析】先將整型數據9強制轉換成doub1e型,然后除以2得到的結果與doub1e型保持一致,即為4.5,然后將4.5強制轉換成整型數據4,然后計算9%2的值為1,最后計算4一1的值為3,所以選擇B選項。
(16)C
【解析】輸入數據的格式必須與scanf()的格式控制串完全匹配,如果A、B、c選項中在數字10后面均輸入了空格,則會將空格賦給變量c1,而不是把x賦給c1,所以選擇C選項。
(17)B
【解析】要想表示字符串常量應該用雙引號表示,即“cd”,單引號用于表示字符常量,所以B選項中的表示方法錯誤。
(18)D
【解析】if語句中的表達式可以是任意合法的數值,如常量、變量表達式。所以D選項正確。
(19)B
【解析】題目中嵌套語句的含義是當a&1t;b且a&1t;c成立,則將a的值賦給k。如果a&1t;b成立而a&1t;c不成立將e的值賦給k。如果a&1t;b不成立而b&1t;c成立,將b的值賦給k。如果如果a&1t;b不成立且b&1t;c也不成立,將c的值賦給k。判斷條件表達式只有B選項可以表示這個含義。
(20)A
【解析】一一k先自減再使用,所以第一次判斷條件即為whi1e(4),條件為真,執行打印k的值k=4—3,結果為1;第二次判斷條件即為whi1e(0),條件為假,結束循環,打印回車換行符。所以選擇A選項。
(21)B
【解析】第一次執行外循環,i的值為3,第一次執行內循環j的值為1,j&1t;=2條件成立,打印i+j的值,即4;第二次執行內循環J的值為2,j&1t;=2條件成立,打印i+j的值,即5;再判斷條件不成立,打印回車換行符,跳出內循環。第二次執行外循環,i的值為2,內循環的執行同第一次一樣,所以打印3和4,打印回車換行,結束內循環。第三次執行外循環i的值為1,同理內循環中打印2和3,打印回車換行符,結束內循環。
(22)C
【解析】k的值為5,逐個對caBe語句進行匹配,均不匹配,執行defau1t下的語句n=0;k一一。再執行case2:ca804:后面的語句n+=2;k一一;。執行break語句跳出switch判斷,打印n的值,即2。經過第一次循環后,k的值為3,然后進行k>0&&11&1t;5條件判斷為真。第二次執行循環體,執行case3:后面的語句n+=1;k一一;。再執行break語句跳出循環,此時打印n的值3,此時k的值為2。第三次執行循環體k的值為2,滿足條件,執行case2:case4:后面的語句n+=2;k一一;。執行break語句跳出循環體。打印n的值5。此時n不滿足條件k>0&&n&1t;5,所以結束循環。整個程序的打印結果為235。
(23)B
【解析】在函數中允許有多個Iett1r11語句,但每次調用只能有一個return語句被執行,因此只能返回一個函數值。定義成void類型的函數,不允許從該函數取得返回值,也不允許使用return語句,c選項描述錯誤。沒有return語句的函數在執行到函數的最后一條語句后會自動返回到調用處,A、D選項描述錯誤。因此B選項正確。
(24)A
【解析】返回值為指針變量指向的數據,該數據已被定義為整型。因此A選項正確。
(25)C
【解析】A選項中錯在沒有對指針進行初始化,是無效指針,并且在scanf(”%d”,&p)中無需再進行取地址操作;B選項中沒有對指針進行初始化,是無效指針;D選項中語句+P=&k;的左端t pt是指針所指內存空間的值,&k是地址,應為P=&k。因此C選項正確。
(26)B
【解析】語句·s=a;表示指針變量s指向一維數
組a的首地址。a[3]表示引用數組a的第4個元素,+(s+i)表示引用指針8所指數組a的第i+1個元素,選項A、C、D的表示方法錯誤,只有B選項正確。
(27)A
【解析】本題考查的是函數的地址調用,將數組名作為數組首地址進行傳遞,然后取首個數組元素值進行加1運算,循環5次。因此A選項正確。
(28)C
【解析】本題重點考察二維數組名作為實參進行參數傳遞,在主函數中調用了fun函數,實參為二維數組名a和兩個整數4.0,這樣對應定義fun函數首部有三種形式,這里采用了第一種形式——行指針,這樣在fun函數對s[i][j]進行操作實際上就是對主函數中的a[i][j]進行操作,再分析fun函數的作用便可知,是求二維數組第0列中最大的那個元素。因此C選項正確。
(29)B
【解析】A選項去掉大括號就正確了;c選項和D選項應在定義時賦初值。因此B選項正確。
(30)B
【解析】strcmp(s1,s2)是字符串比較函數,比較規則是兩個字符串自左向右逐個字符相比(按照ASCI1碼值大小),-以第一個不相同的字符的大小作為比較結果。因為。O。&1t;10.,所以strcmp(s1,s2)為負值,只有B選項正確。
(31)A
【解析】本題主函數中定義了一個指針數組a,可以將它看成一個以字符指針為元素的一維數組。和一般的一維數組名能賦給同類型指針變量一樣,該字符指針數組也可以賦給指向字符指針的指針,所以數組名a可以用做函數fun()的實參。在fun()函數中,++P操作使形參P往后移動一個字符指針的位置,即指針a[1]的位置。故最后通過礎nd()函數輸出的字符串為“Afternoon”。因此A選項正確。
(32)D
【解析】調用缸函數后,實參數組名s1傳給形參指針P,P也指向數組s1。m函數的功能是遍歷字符數組中的所有字符,如果某一個字符是空格并且前一個字符是小寫字母的話,就把前一個字符轉換為大寫。程序中語句P[i一1]=P[i—1]一ga’+-A‘;即P[i一1]=P[i一1]一32,意思是將P[i一1]中的字符轉換為大寫。因此D選項正確。
(33)C
【解析】主函數中調用f函數,同時將數值3傳遞給變量x,執行條件不滿足條件if(x==0I1X==1);跳過re—turn(3);,直接執行語句Y=X}X—f(x一2);這里f(x一2)為函數的遞歸調用,再次訶用f函數,此時x=1,判斷條件成立,返回3給f(1),Y=3}3—3=6,最后將6返回主函數,并進行輸出。因此c選項正確。
(34)D
【解析】內部靜態變量是始終存在的,當函數被調用退出后,內部靜態變量會保存數據,再次調用該函數時,以前調用時的數值仍然保留著。m(a,5)的值是15,再次調用后Ⅲm=15,所以fun(b,4)=45,s=45+15=60。因此D選項正確。
(35)D
【解析】本題考查結構體的相關知識,題目中需要輸入一個變量,scanf要求參數為指針,而D選項中ps一>age為一個變量,不是指針,所以錯誤。
(36)B
【解析】本題考查typ1edef重新聲明一種結構體類型,那么T為結構體類型,而不是結構體變量,所以B選項正確。
(37)B
【解析】本題考查結構體變量的引用以及作為函數參數,題目雖然看似復雜,其實比較容易,f函數的參數是結構體變量,然后對參數重新賦值并返回,所以該題目的答案為B選項。
(38)B
【解析】本題考查邏輯運算符的相關概念,邏輯與若要為真,那么兩邊都要為真,即m都能被5和7整除都余1,所以選項B正確。
(39)A
【解析】本愿考查位運算符以及相關運算,‘為按位或,&為按位與,部么a'b為3,再與c按位與仍然為3,所以答案為A選項。
(40)D
【解析】fprintf()函數向文本文件輸出數據,將輸出的內容按格式輸出翻硬盤的文本文件中。執行兩次fprintf后。文件中的內容為。123 456”,所以D選項正確。
【計算機二級《C語言》考試題庫及答案】相關文章:
2016計算機二級C語言題庫及答案04-22
2017計算機二級C語言上機題庫及答案08-07
計算機二級《C語言》選擇題題庫及答案11-16
計算機二級《C語言》選擇題題庫與答案07-27
2016年計算機二級c語言題庫及答案08-12
全國計算機二級《C語言》考試題庫與答案06-29
計算機二級c語言題庫2016精選06-23
2015年計算機二級考試c語言題庫07-26