全國計算機二級C選擇題題庫第34套_第1頁
全國計算機二級C選擇題題庫第34套_第2頁
全國計算機二級C選擇題題庫第34套_第3頁
全國計算機二級C選擇題題庫第34套_第4頁
全國計算機二級C選擇題題庫第34套_第5頁
已閱讀5頁,還剩12頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、全國計算機二級C選擇題題庫第34套1、下列敘述中錯誤的是A) 數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)元素不能是另一數(shù)據(jù)結(jié)構(gòu)B) 數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)元素可以是另一數(shù)據(jù)結(jié)構(gòu)C) 空數(shù)據(jù)結(jié)構(gòu)可以是線性結(jié)構(gòu)也可以是非線性結(jié)構(gòu)D) 非空數(shù)據(jù)結(jié)構(gòu)可以沒有根結(jié)點 參考答案:A數(shù)據(jù)元素是一個含義很廣泛的概念,它是數(shù)據(jù)的"基本單位",在計算機中通常作為一個整體進行考慮和處理。數(shù)據(jù)元素可以是一個數(shù)據(jù)也可以是被抽象出的具有一定結(jié)構(gòu)數(shù)據(jù)集合,所以數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)元素可以是另一數(shù)據(jù)結(jié)構(gòu)。滿足有且只有一個根結(jié)點并且每一個結(jié)點最多有一個前件,也最多有一個后件的非空的數(shù)據(jù)結(jié)構(gòu)認為是線性結(jié)構(gòu),不滿足條件的結(jié)構(gòu)為非線性結(jié)構(gòu)??諗?shù)據(jù)結(jié)

2、構(gòu)可以是線性結(jié)構(gòu)也可以是非線性結(jié)構(gòu)。非空數(shù)據(jù)結(jié)構(gòu)可以沒有根結(jié)點,如非性線結(jié)構(gòu)"圖"就沒有根結(jié)點。故選A選項。2、為了降低算法的空間復(fù)雜度,要求算法盡量采用原地工作(in place)。所謂原地工作是指A) 執(zhí)行算法時所使用的額外空間固定(即不隨算法所處理的數(shù)據(jù)空間大小的變化而變化)B) 執(zhí)行算法時所使用的額外空間隨算法所處理的數(shù)據(jù)空間大小的變化而變化C) 執(zhí)行算法時不使用額外空間D) 執(zhí)行算法時不使用任何存儲空間 參考答案:A算法的空間復(fù)雜度是指執(zhí)行這個算法所需要的內(nèi)存空間,包括輸入數(shù)據(jù)所占的存儲空間、程序本身所占的存儲空間、算法執(zhí)行過程中所需要的額外空間。如果額外空間量相

3、對于問題規(guī)模(即輸入數(shù)據(jù)所占的存儲空間)來說是常數(shù),即額外空間量不隨問題規(guī)模的變化而變化,則稱該算法是原地工作的。故選A選項3、某循環(huán)隊列的存儲空間為Q(1:m),初始狀態(tài)為front=rear=m?,F(xiàn)經(jīng)過一系列的入隊操作和退隊操作后,front=m,rear=m-1,則該循環(huán)隊列中的元素個數(shù)為A) m-1B) mC) 1D) 0 參考答案:A循環(huán)隊列長度為m,由初始狀態(tài)為front=rear=m,可知此時循環(huán)隊列為空。入隊運算時,首先隊尾指針進1(即rear+1),然后在rear指針指向的位置插入新元素。特別的,當隊尾指針rear=m+1時,置rear=1。退隊運算時,排頭指針進1(即fro

4、nt+1),然后刪除front指針指向的位置上的元素,當排頭指針front=m+1時,置front=1。從排頭指針front指向的后一個位置直到隊尾指針rear指向的位置之間所有的元素均為隊列中的元素。如果rear-front>0,則隊列中的元素個數(shù)為rear-front個;如果rear-front<0,則隊列中的元素個數(shù)為rear-front+m 。該題中m-1<m,即rear-front<0,則該循環(huán)隊列中的元素個數(shù)為(m-1)-m+m=m-1。故選A選項。4、某棵樹只有度為3的結(jié)點和葉子結(jié)點,其中度為3的結(jié)點有8個,則該樹中的葉子結(jié)點數(shù)為A) 15B) 16C)

5、17D) 不存在這樣的樹 參考答案:C樹是一種簡單的非線性結(jié)構(gòu),直觀地來看,樹是以分支關(guān)系定義的層次結(jié)構(gòu)。在樹結(jié)構(gòu)中,一個結(jié)點所擁有的后件個數(shù)稱為該結(jié)點的度,所有結(jié)點中最大的度稱為樹的度。由于只有度為3的結(jié)點和葉子結(jié)點,可知最后一層都為葉子結(jié)點,倒數(shù)第二層一部分結(jié)點度為3,一部分為葉子結(jié)點,其余的結(jié)點的度均為3,計算度為3的結(jié)點總數(shù)(33-1-1)/2<8<(34-1-1)/2可知,樹共有4層,前兩層有度為3的結(jié)點(33-1-1)/2=4個,第三層有33=9個結(jié)點,其中4個是度為3的結(jié)點,5個是葉子結(jié)點,所以該樹中的葉子結(jié)點數(shù)為4×3+5=17。故選C選項。5、某二叉樹共

6、有530個結(jié)點,其中度為2的結(jié)點有250個,則度為1的結(jié)點數(shù)為A) 29B) 30C) 249D) 251 參考答案:A在樹結(jié)構(gòu)中,一個結(jié)點所擁有的后件個數(shù)稱為該結(jié)點的度,所有結(jié)點中最大的度稱為樹的度。對任何一棵二叉樹,度為0的結(jié)點總是比度為2的結(jié)點多一個。二叉樹結(jié)點總數(shù)為530,度為2的結(jié)點有250個,則度為0的結(jié)點有251個,那么度為1的結(jié)點個數(shù)為530-250-251=29。故選A選項。6、若某二叉樹中的所有結(jié)點值均大于其左子樹上的所有結(jié)點值,且小于右子樹上的所有結(jié)點值,則該二叉樹遍歷序列中有序的是A) 前序序列B) 中序序列 C) 后序序列D) 以上說法均可以 參考答案:B二叉樹遍歷可

7、以分為3種:前序遍歷(訪問根結(jié)點在訪問左子樹和訪問右子樹之前)、中序遍歷(訪問根結(jié)點在訪問左子樹和訪問右子樹兩者之間)、后序遍歷(訪問根結(jié)點在訪問左子樹和訪問右子樹之后)。由于結(jié)點值均大于其左子樹上的所有結(jié)點值,且小于右子樹上的所有結(jié)點值,那么只要遍歷時訪問根結(jié)點在訪問左子樹和右子樹之間,遍歷序列有序,即中序序列有序。故選B選項。7、將C語言的整數(shù)設(shè)為整數(shù)類I,則下面屬于類I實例的是A) -103 B) 10E3C) 10.3D) "0103" 參考答案:A整數(shù)類實例包括:十進制常量用09表示,不能以0開頭;八進制常量用07表示,必須用0開頭;十六進制常量用09和AF(af

8、)表示,必須以0x或0X開頭。本題中B選項是科學計數(shù)法表示的浮點數(shù)實例,C選項是浮點數(shù)實例,D選項是字符串實例。故選A選項。8、下列敘述中正確的是A) 軟件是程序、數(shù)據(jù)和文檔B) 軟件是程序和數(shù)據(jù)C) 軟件是算法和數(shù)據(jù)結(jié)構(gòu)D) 軟件是算法和程序 參考答案:A計算機軟件由兩部分組成:一是機器可執(zhí)行的程序和數(shù)據(jù);二是機器不可執(zhí)行的,與軟件開發(fā)、運行、維護、使用等有關(guān)的文檔。故選A選項。9、軟件生命周期是指A) 軟件的定義和開發(fā)階段B) 軟件的需求分析、設(shè)計與實現(xiàn)階段C) 軟件的開發(fā)階段D) 軟件產(chǎn)品從提出、實現(xiàn)、使用維護到停止使用退役的過程 參考答案:D通常把軟件產(chǎn)品從提出、實現(xiàn)、使用、維護到停止

9、使用、退役的過程稱為軟件生命周期。選項A、B、C選項均為生命周期的一部分。故選D選項。10、下列敘述中正確的是A) 數(shù)據(jù)庫系統(tǒng)可以解決數(shù)據(jù)冗余和數(shù)據(jù)獨立性問題,而文件系統(tǒng)不能B) 數(shù)據(jù)庫系統(tǒng)能夠管理各種類型的文件,而文件系統(tǒng)只能管理程序文件C) 數(shù)據(jù)庫系統(tǒng)可以管理龐大的數(shù)據(jù)量,而文件系統(tǒng)管理的數(shù)據(jù)量較少D) 數(shù)據(jù)庫系統(tǒng)獨立性較差,而文件系統(tǒng)獨立性較好 參考答案:A數(shù)據(jù)管理技術(shù)的發(fā)展經(jīng)歷了個階段:人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。三者各自的特點如下表所示。特點人工管理階段文件系統(tǒng)階段數(shù)據(jù)庫系統(tǒng)階段管理者人文件系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)面向?qū)ο竽硞€應(yīng)用程序某個應(yīng)用程序現(xiàn)實世界共享程度無共享,冗余

10、度大共享性差,冗余度大共享性大,冗余度小獨立性不獨立,完全依賴于程序獨立性差具有高度的物理獨立性和一定的邏輯獨立性結(jié)構(gòu)化無結(jié)構(gòu)記錄內(nèi)有結(jié)構(gòu),整體無結(jié)構(gòu)整體結(jié)構(gòu)化,用數(shù)據(jù)模型描述控制能力由應(yīng)用程序控制由應(yīng)用程序控制由DBMS提供數(shù)據(jù)安全性、完整性、并發(fā)控制和恢復(fù)數(shù)據(jù)庫系統(tǒng)可以解決數(shù)據(jù)冗余和數(shù)據(jù)獨立性問題,而文件系統(tǒng)不能。數(shù)據(jù)庫系統(tǒng)和文件系統(tǒng)的區(qū)別不僅在于管理的文件類型與數(shù)據(jù)量的多少。數(shù)據(jù)庫系統(tǒng)具有高度的物理獨立性和一定的邏輯獨立性,而文件系統(tǒng)獨立性較好。故本題選A選項。11、關(guān)于程序模塊化,以下敘述錯誤的是A) 程序模塊化可以提高程序運行的效率B) 程序模塊化可以提高程序編制的效率C) 程序模塊

11、化可以提高程序代碼復(fù)用率D) 程序模塊化可以提高調(diào)試程序的效率 參考答案:A模塊化程序的優(yōu)點:1、易于維護和復(fù)用,可以提高程序編制的效率,2、易于分工合作,3、易于模塊化調(diào)試測試。模塊化程序的副作用:1、可能會降低程序運行效率,2、設(shè)計的前期工作需要多花費時間??芍x項B,C,D正確。12、以下是正確C語言標識符的A) &3B) #3C) _3D) -3 參考答案:CC語言合法標識名的命名規(guī)則是:(1)標識符由字母、數(shù)字和下劃線組成,(2)第一個字符不能是數(shù)字只能是字母或下劃線。選項A的第一個字符為&,非法,選項B,第一個字符為#,非法,選項D,第一個字符為-,非法。 答案為選

12、項C。13、若有定義:int a,b,c; 以下程序段的輸出結(jié)果是 a=11; b=3; c=0; printf("%dn",c=(a/b,a%b);A) 2B) 0C) 3D) 1 參考答案:AC 語言中,逗號運算符可以把兩個以上(包含兩個)的表達式連接成一個表達式。逗號運算符的優(yōu)先級是所有運算符中級別最低的,逗號運算符保證左邊的子表達式運算結(jié)束后才進行右邊的子表達式的運算。也就是說,逗號運算符是一個序列點,其左邊所有副作用都結(jié)束后,才對其右邊的子表達式進行運算,并以最右邊表達式值作為整個逗號表達式的值。因此c的值為a%b即11%3=2,故答案為A選項。14、以下選項中合

13、法的C語言常量是A) 'C-STR'B) 2014.1C) "1.0D) 2EK 參考答案:B所謂常量是指在程序運行的過程中,其值不能被改變的量。在C語言中,有整型常量、實型常量、字符常量和字符串常量等類型。選項A是字符串,但使用單引號,錯誤,選項C,D,為實型常量中指數(shù)形式,但指數(shù)形式e(E)之前必須是數(shù)字,之后必須為整數(shù),錯誤。故答案為B選項。15、設(shè)有定義:int x,y,z;,且各變量已賦正整數(shù)值,則以下能正確表示代數(shù)式""的C語言表達式是( )。A) 1.0/x/y/zB) 1/x*y*zC) 1/(x*y*z)D) 1/x/y/(dou

14、ble)z 參考答案:A代數(shù)表達式1/是小數(shù),轉(zhuǎn)為c語言的表達式必須是小數(shù)A選項由于1.0為浮點數(shù),計算結(jié)果自動轉(zhuǎn)換為浮點數(shù),故A正確。選項B,C,D的表達式均為0,因此只有選項A正確。答案為A選項。16、有以下程序 #include <stdio.h> main() char a,b,c,d; scanf("%c%c",&a, &b); c=getchar(); d=getchar(); printf("%c%c%c%cn",a,b,c,d); 當執(zhí)行程序時,按下列方式輸入數(shù)據(jù)(從第1列開始,<CR>代表回車,注

15、意:回車也是一個字符) 12<CR> 34<CR>則輸出結(jié)果是A) 12 3B) 12C) 1234D) 12 34 參考答案:Ascanf()函數(shù)從標準輸入輸出中讀入兩個字符12分別賦給變量a、b,遇到回車自動結(jié)束,但回車符已經(jīng)存入緩沖區(qū),函數(shù)getchar()將從中接受這個字符,故c賦值為回車符,然后第二個getchar()讀入字符3,因此a=1,b=2,c=<CR>,d=3,故答案為A選項。17、有以下程序#include <stdio.h>main( ) int a, b; for (a=0; a<3; a+) scanf(&quo

16、t;%d", &b); switch(b) default: printf("%d,",b+1); continue; case 1: printf("%d,", b+1); case 2: printf("%d,", b+1); continue; 執(zhí)行時輸入:1 2 3<回車>,則輸出結(jié)果是A) 2,2,3,4,4,4,B) 2,3,4,C) 2,2,3,4,D) 2,3,3,4,5,6, 參考答案:Ccontinue語句的作用是跳過循環(huán)體中剩余的語句而強行執(zhí)行下一次循環(huán)。switchcase如果沒有

17、break會導致多個分支重疊。因此,輸入1,2,3,則1執(zhí)行case 1: printf("%d,", b+1);case 2: printf("%d,", b+1); continue;后結(jié)束。2則執(zhí)行case 2: printf("%d,", b+1); continue;3則執(zhí)行default: printf("%d,",b+1); continue;得到的結(jié)果是2,2,3,4。故答案為C選項。18、有以下程序#include <stdio.h>#include <math.h>mai

18、n() double x, y, z; scanf("%lf%lf",&x,&y ); z= x/ y; while(1) if( fabs(z) > 1.0 ) x=y; y=x; z=x/y; else break; printf("y=%f n", y );執(zhí)行時輸入:3.6 2.4<回車>,則輸出結(jié)果是A) 2.400000B) 1.500000C) 1.600000D) 2.000000 參考答案:A題目中程序執(zhí)行過程中關(guān)鍵語句的結(jié)果為:z=1.5,if條件成立,x=2.4,y=2.4,z=1.0,下一次循環(huán)i

19、f條件不成立跳出循環(huán),按照格式打印y值為2.400000。故答案為A選項。19、有以下程序#include <stdio.h>main( ) int i; char c; scanf("%c", &c); for (i=0; i<5; i+) if (i > c) continue; printf("%d,", i); 執(zhí)行時輸入:0<回車>后,則輸出結(jié)果是A) 5B) 0,0,0,0,0,C) 0,1,2,3,4,D) 0,1, 參考答案:Cscanf("%c", &c),輸入的字

20、符,題目中輸入了0,是字符,對應(yīng)于ASCII碼為48,因此for循環(huán),i的范圍從05,均小于48,if條件不成立,直接執(zhí)行下一條語句,因此執(zhí)行printf,因此得到的結(jié)果是0,1,2,3,4。故答案為C選項。20、以下程序擬實現(xiàn)計算 sum=1+1/2+1/3+ +1/50 。#include <stdio.h>main( ) int i; double sum; sum=1.0; i=1; do i+; sum += 1/i; while( i<50 ); printf("sum=%lfn",sum);程序運行后,不能得到正確結(jié)果,出現(xiàn)問題的語句是A)

21、sum += 1/i;B) while(i<50);C) sum = 1.0;D) i+; 參考答案:A選項A,sum+=1/i;i為整型,因此1/i是整型類型,當1/i有小數(shù)時,會被截斷。因此1/i結(jié)果始終為0,導致結(jié)果出錯。,應(yīng)該改為sum+=1.0/i。因此答案為A選項。21、若有定義語句: double a, *p=&a;以下敘述中錯誤的是A) 定義語句中的 * 號是一個間址運算符B) 定義語句中的 * 號是一個說明符C) 定義語句中的p只能存放double類型變量的地址D) 定義語句中 *p=&a 把變量a的地址作為初值賦給指針變量p 參考答案:A指針運算符 (

22、通常稱為間接引用運算符:indirection operator或復(fù)引用運算符:dereferencing operator),它返回其操作數(shù)(即一個指針)所指向的對象的值。定義語句中的 * 號不是一個間址運算符,而是定義指針變量的說明符,因此,A項錯誤,B項正確,原則上說p可以放double兼容性的變量地址,C項正確,根據(jù)指針的賦值運算,可知D項正確。故答案為A選項。22、關(guān)于函數(shù)返回值,以下敘述正確的是A) 函數(shù)可以返回整個結(jié)構(gòu)體,即使結(jié)構(gòu)體中有數(shù)組B) 函數(shù)只能返回基本數(shù)據(jù)類型的數(shù)值或指針C) 函數(shù)不可以返回一個數(shù)組D) 函數(shù)不能沒有返回值 參考答案:A函數(shù)返回值可以整型、實型、字符型、

23、指針和結(jié)構(gòu)類型,也可以沒有返回值。因此選項A正確,可以返回數(shù)組指針,因此可知選項B,C,D錯誤。故答案為A選項。23、有以下程序#include <stdio.h>int fun( int *b, int n ) int i, r=1; for( i=0; i<=n; i+ ) r=r*bi; return r;main() int x, a=2,3,4,5,6,7,8,9 ; x=fun( a,3 ); printf("%dn", x);程序運行后的輸出結(jié)果是A) 24B) 720C) 120D) 6 參考答案:Cfun(),求數(shù)組指定返回的元素的積。f

24、un(a,3),求的是數(shù)組a0a3的積。因此結(jié)果為2*3*4*5=120,故答案為C選項。24、若有語句:int a34, (*p)4; p = a;,則以下選項中敘述錯誤的是A) 系統(tǒng)將開辟一個名為p的二維數(shù)組,p00中的值即為a00中的值B) p+1代表a10的地址C) p中將存放 a 數(shù)組的首地址D) p+2代表 a 數(shù)組最后一行的首地址 參考答案:A(*p)4定義了一個數(shù)組指針。p可以指向類似于arry4的數(shù)組,題設(shè)中,p不是一個二維數(shù)組,只是可以指向這類二維數(shù)組,因此選項A錯誤。p+1代表了第一行第一個元素的地址,p=a指向數(shù)組a的首地址,則B、C選項正確,同理可知選項D也正確。故答

25、案為A選項。25、有以下程序#include <stdio.h>void change( char* array, int len ) for (len-; len>=0; len-) arraylen += 1;main( ) int i; char array5 = "ABCD" change(array, 4); for (i=0; i<4; i+) printf("%c,", arrayi);程序運行后的輸出結(jié)果是A) B,C,D,E,B) A,B,C,D,C) C,D,E,F, D) B,D,F,H, 參考答案:A函數(shù)c

26、hange()的作用將從數(shù)組尾部將數(shù)組內(nèi)的元素值加1。數(shù)組的初始值為ABCD,因此經(jīng)change()后,得到的值為BCDE。故答案為A選項。26、設(shè)有以下程序段 float a8 = 1.0, 2.0; int b1 = 0; char c = "A", "B" char d = "1" 以下敘述正確的是A) 只有變量c的定義是合法的B) 只有變量a,b,c的定義是完全合法的C) 所有變量的定義都是完全合法的D) 只有變量a, b的定義是完全合法的 參考答案:Dfloat a8=1.0, 2.0;定義了一個包含8個float型元素的數(shù)

27、組,并初始化了數(shù)組的前2項,其他項是隨機數(shù)。int b1 = 0,定義了只有一個int型元素的數(shù)組,并初始化為0。char c = "A", "B"定義一個char型數(shù)組,大小有初始化元素決定,但初始化值是字符串,類型不兼容,編譯出錯。char d = "1"定義一個char型變量,但是初始化賦值字符串,類型不兼容,編譯出錯。因此只有a,b定義和初始化正確。故答案為D選項。27、有以下程序#include <stdio.h>main( ) int a4,p,x,i; for( i=3;i>0;i- )ai-1=i*2

28、-1; scanf("%d",&x); i=0; while( ai<x ) i+; p=i; for( i=3;i>p;i- ) ai=ai-1; ap=x; for( i=0;i<4;i+ ) printf("%3d",ai); printf("n");執(zhí)行時輸入:2<回車>,則輸出結(jié)果是A) 1 2 3 4B) 5 4 3 1C) 1 2 3 5D) 3 2 1 4 參考答案:C第一個for循環(huán)初始化數(shù)組a,分別為1,3,5,隨機數(shù),形成了基本有序的序列,再將輸入的數(shù)字插入到數(shù)組a,使他們形

29、成有序序列。因此可以分析出,打印的結(jié)果為1,2,3,5。故答案為C選項。28、有以下程序 #include <stdio.h>int fun(int a,int n,int x) int *p=a; while( p<a+n && *p!=x ) p+; if ( p<a+n ) return p-a; else return -1;main() int a10=1,2,3,4,5,6,7,8,9,10; printf("%dn",fun(a,10,10); 程序運行后的輸出結(jié)果是A) 9B) -1C) 10D) 0 參考答案:Awh

30、ile( p<a+n && *p!=x ) p+;p=a;n=10,x=10;while循環(huán)條件成立,直到p=a+9,結(jié)束循環(huán),執(zhí)行下一條語句,if條件成立,返回p-a,此時執(zhí)行p-a=a+9-a=9;因此,輸出9。 故答案為A選項。29、有以下程序#include <stdio.h>main( ) char w20, a510="abcde", "fghij", "klmno", "pqrst", "uvwxy" int i; for ( i=0; i<

31、5; i+ ) wi = aii; w5= '0' printf( "%sn", w );程序運行后的輸出結(jié)果是A) ejotyB) afkpuC) agmsyD) eimqu 參考答案:C數(shù)組a是二維數(shù)組,數(shù)組w存放二維數(shù)組a行列值相同位置的元素,由a510可得w0w4的元素分別是agmsy,因此打印結(jié)果為agmsy。故答案為C選項。30、語句printf("%dn", strlen("t"n'06508AB");的輸出結(jié)果是A) 6B) 7C) 8D) 9 參考答案:A字符串"t&quo

32、t;n'06508AB"中共有13個字符,而strlen()函數(shù)從字符串第一個字符開始掃描,直到碰到第一個結(jié)束符'0'為止,然后返回計數(shù)器值(長度不包含"0")。故輸出結(jié)果為6。答案為A選項。31、有以下程序#include <stdio.h>#include <string.h>void fun( char *s, int m1, int m2 ) char t, *p; p=s + m1; s= s+m2; while( s<p ) t=*s; *s=*p; *p=t; s+; p-; main() cha

33、r ss10="012345678" int n=6; fun( ss,0,n-1 ); fun( ss,9,n ); fun( ss,0,9 ); printf("%sn", ss );程序運行后的輸出結(jié)果是A) 012345B) 876543210C) 876543D) 012345678 參考答案:Afun(*ss, m1, m2 )的作用是,如果m1>m2交換數(shù)組元素ssm1,ssm2。因此,fun(ss,0,5)后ss的0,1,2,3,4,5,6,7,8,0。fun(ss,9,6) 后ss的0,1,2,3,4,5, 0,8,7,6。fun

34、(ss,0,9)后ss的0,1,2,3,4,5,0,8,7,6。因此打印結(jié)果012345。故答案為A選項。32、有以下程序 #include <stdio.h>int m=1,n=2;void sub1(int m,int n) m+=2; n+; void sub2( ) m+; n+=2; main( ) printf("%d,%d,",m,n); sub1(4,5); printf("%d,%d,",m,n); sub2(); printf("%d,%dn",m,n);程序運行后的輸出結(jié)果是A) 1,2,1,2,2,

35、4B) 1,2,6,6,7,8C) 1,2,2,4,2,4 D) 1,2,6,6,2,4 參考答案:A全局變量與函數(shù)體內(nèi)局部變量同名時,局部變量會覆蓋全局變量,因此在sub1()函數(shù)內(nèi),全局變量m,n是不可見的,在sub1()對m,n操作的是局部變量,對全局變量不產(chǎn)生影響。但在sub2()函數(shù)內(nèi),由于沒有和全局變量變量重名,因此在此函數(shù)內(nèi),m,n是可見的。因此,第一個printf()打印的是全局變量m,n,故打印的是1,2,第二個printf(),調(diào)用sub1(),沒有修改全局變量m,n.故打印的是1,2,第三個printf(),之前調(diào)用了sub2(),修改了全局變量m,n。因此,打印的是2,

36、4,故答案為A選項。33、有以下程序#include <ctype.h>#include <stdio.h>long fun( char s ) long n; int sign; for( ; isspace(*s); s+ ); sign=(*s='-')? -1 : 1; if(*s='+' | *s='-') s+; for( n=0 ; isdigit(*s); s+ ) n=10*n+(*s-'0'); return sign*n;main() char s=" -26a3"

37、 printf("%dn ",fun(s); 程序運行后的輸出結(jié)果是A) -263B) 2C) 0D) -26 參考答案:Disspace()檢查參數(shù)c是否為空格字符,也就是判斷是否為空格()、水平定位字符(t)、歸位鍵(r)、換行(n)、垂直定位字符(v)或翻頁(f)的情況。若參數(shù)c為空格字符,則返回TRUE,否則返回NULL(0)。Isdigit()函數(shù)檢查參數(shù)c是否為阿拉伯數(shù)字0到9。返回值若參數(shù)c為阿拉伯數(shù)字,則返回TRUE,否則返回NULL(0)。fun()函數(shù)的第一個for循環(huán)判斷字符串是否負號。第二個for循環(huán)獲取符號后面的數(shù)字字符,并將它們轉(zhuǎn)化為整數(shù)。遇到了

38、非數(shù)字的字符跳出,最后返回數(shù)組的結(jié)果。因此,可知首先獲取負號,緊接著獲取數(shù)值26,遇到了字符a,跳出返回-26,因此打印的結(jié)果是-26。故答案為D選項。34、設(shè)有定義: struct complex int real,unreal; data1=1,8,data2;則以下賦值語句中錯誤的是A) data2=(2,6);B) data2=data1;C) data2.real=data1.real;D) data2.real=data1.unreal; 參考答案:A結(jié)構(gòu)體變量建議在定義的時候進行初始化。結(jié)構(gòu)體常見的幾種初始化方法如下:(1)struct a a1 = .b = 1, .c = 2

39、;(2)struct a a1 = b:1, c:2;(3)struct a a1 = 1, 2;計算機內(nèi)核喜歡用第一種,使用第一種和第二種時,成員初始化順序可變。因此,可以判斷選項A錯誤。35、有以下程序#include <stdio.h>#define S(x) x*x/xmain( ) int k = 6, j = 3; printf("%d,%dn", S(k+j+2), S(j+k+2);程序運行后的輸出結(jié)果是A) 11,11B) 29,29C) 26,29D) 121,121 參考答案:B#define命令是C語言中的一個宏定義命令,標識符一般使用大

40、寫,為了區(qū)分其他標識符,它用來將一個標識符定義為一個字符串,該標識符被稱為宏名,被定義的字符串稱為替換文本。宏定義不進行其他操作,僅僅只是替換標識符。S(k+j+2)=k+j+2*k+j+2/k+j+2,經(jīng)計算可得29,S(j+k+2)=j+k+2*k+j+2/j+k+2,計算可得29。因此輸出為29,29。答案為B選項。36、若有定義 typedef int *T10; T a;則以下選項與上述定義中a的類型完全相同的是A) int *a10;B) int (*a)10;C) int a10;D) int (*a10)(); 參考答案:AC語言允許由用戶自己定義類型說明符,也就是說允許由用戶

41、為數(shù)據(jù)類型取"別名"。類型定義符typedef即可用來完成此功能,可以完全代替原來的類型說明符。因此,變量a的類型為int *a10。typedef int *T10,由于運算符優(yōu)先級高于*,可以看成typedef int10 *T,替換T可得int10 *a=>int *a10,因此,答案為A選項。37、有以下程序#include <stdio.h>main( ) FILE *fp; int i, a6=1,2,3,4,5,6,k; fp = fopen( "data.dat", "w+" ); for ( i=0; i<6; i+ ) fprintf(fp, "%dn", a5-i); rewind(fp); for ( i=0; i<6; i+ ) fscanf(fp, "%d", &k); printf("%d,", k); fclose(fp);程序運行后的輸出結(jié)果是A) 6,5,4,3,2,1, B) 1,2,3,4,5,6, C) 1,1,1,1,1,1D) 6,6,6,6,6,6, 參考答案:Afopen( "data.dat", &qu

溫馨提示

  • 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

提交評論