全國計(jì)算機(jī)等級考試《二級C語言程序設(shè)計(jì)》試題(網(wǎng)友回憶版)二_第1頁
全國計(jì)算機(jī)等級考試《二級C語言程序設(shè)計(jì)》試題(網(wǎng)友回憶版)二_第2頁
全國計(jì)算機(jī)等級考試《二級C語言程序設(shè)計(jì)》試題(網(wǎng)友回憶版)二_第3頁
全國計(jì)算機(jī)等級考試《二級C語言程序設(shè)計(jì)》試題(網(wǎng)友回憶版)二_第4頁
全國計(jì)算機(jī)等級考試《二級C語言程序設(shè)計(jì)》試題(網(wǎng)友回憶版)二_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

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

文檔簡介

全國計(jì)算機(jī)等級考試《二級C語言程序設(shè)計(jì)》試題(網(wǎng)友回憶版)二[單選題]1.某二叉樹的中序序列為DCBAEFG,后序序列為DCBG(江南博哥)FEA,則該二叉樹的深度(根結(jié)點(diǎn)在第1層)為()。A.5B.4C.3D.2參考答案:B參考解析:二叉樹的后序序列為DCBGFEA,則A為根結(jié)點(diǎn)。中序序列為DCBAEFG,則DCB為左子樹結(jié)點(diǎn),EFG為右子樹結(jié)點(diǎn)。同理B為C父結(jié)點(diǎn),C為D父結(jié)點(diǎn)。根據(jù)分析,可畫出左子樹,同理E為F父結(jié)點(diǎn),F(xiàn)為G父結(jié)點(diǎn)。根據(jù)分析,可畫出右子樹,故二叉樹深度為4層。答案選擇B選項(xiàng)。[單選題]2.設(shè)有定義:sdivuct{intn;floatx;}s[2],m[2]={{10,2.8},{0,0.0}};,則以下賦值語句中正確的是()。A.s[0]=m[1];B.s=m;C.s.n=m.n;D.s[2].x=m[2].x;參考答案:A參考解析:定義了結(jié)構(gòu)體類型數(shù)組s,長度為2,結(jié)構(gòu)體類型數(shù)組m,長度為2,并對數(shù)組m進(jìn)行了初始化。同類型的結(jié)構(gòu)體可以直接用變量名實(shí)現(xiàn)賦值,A項(xiàng)正確;數(shù)組名為數(shù)組首地址,地址常量之間不可以相互賦值,B項(xiàng)錯(cuò)誤;數(shù)組名為地址常量不是結(jié)構(gòu)體變量,不能引用成員,C項(xiàng)錯(cuò)誤;s[2]與m[2]數(shù)組越界,D項(xiàng)錯(cuò)誤。答案選擇A選項(xiàng)。[單選題]3.關(guān)于C語言標(biāo)識符,以下敘述錯(cuò)誤的是()。A.標(biāo)識符可全部由數(shù)字組成B.標(biāo)識符可全部由下劃線組成C.標(biāo)識符可全部由小寫字母組成D.標(biāo)識符可全部由大寫字母組成參考答案:A參考解析:C語言標(biāo)識符只能由字母、數(shù)字、下劃線構(gòu)成,且只能以字母、下劃線開頭,故答案選擇A選項(xiàng)。[單選題]4.以下程序段中的變量已定義為int類型,則sum=pAd=5;pAd=sum++,++pAd,pAd++;printf("%d\n",pAd);程序段的輸出結(jié)果是()。A.6B.4C.5D.7參考答案:D參考解析:自增和自減運(yùn)算符的兩種用法:前置運(yùn)算,運(yùn)算符放在變量之前,規(guī)則是先使變量的值增(或減)1,然后以變化后表達(dá)式的值參與其他運(yùn)算;后置運(yùn)算,運(yùn)算符放在變量之后,規(guī)則是變量先參與其他運(yùn)算,然后再使變量的值增(或減)1。執(zhí)行pAd=sum++,sum++是后置自增,執(zhí)行完后,pAd=5,sum=6。++pAd和pAd++語句中沒有其他運(yùn)算,即效果相同,pAd分別加1,兩句執(zhí)行完后,pAd=7。答案選擇D選項(xiàng)。[單選題]5.設(shè)循環(huán)隊(duì)列為Q(1:m),其初始狀態(tài)為front=rear=m。經(jīng)過一系列入隊(duì)與退隊(duì)運(yùn)算后,front=20,rear=15?,F(xiàn)要在該循環(huán)隊(duì)列中尋找最小值的元素,最壞情況下需要比較的次數(shù)為()。A.5B.6C.m-5D.m-6參考答案:D參考解析:循環(huán)隊(duì)列是隊(duì)列的一種順序存儲(chǔ)結(jié)構(gòu),用隊(duì)尾指針rear指向隊(duì)列中的隊(duì)尾元素,用隊(duì)首指針指向隊(duì)首元素的前一個(gè)位置,因此,從隊(duì)首指針front指向的后一個(gè)位置直到隊(duì)尾指針rear指向的位置之間所有的元素均為隊(duì)列中的元素,隊(duì)列初始狀態(tài)為front=rear=m,當(dāng)front=20,rear=15時(shí),隊(duì)列中有m-20+15=m-5個(gè)元素,最壞情況下需要比較次數(shù)為m-6次。答案選擇D選項(xiàng)。[單選題]6.以下選項(xiàng)中,合法的C語言常量是()。A.1.234B.'C++'C."\2.0D.2Kb參考答案:A參考解析:C語言中的常量:①整型常量,用不帶小數(shù)點(diǎn)的數(shù)字表示;②實(shí)型常量,用帶小數(shù)點(diǎn)的數(shù)字表示;③字符型常量,用帶有單引號的一個(gè)字符表示;④字符串常量,用一對雙引號括起來的一串字符。1.234為實(shí)型常量,A項(xiàng)正確;'C++'不合法,若改成"C++"則為字符串常量,B項(xiàng)錯(cuò)誤;"\2.0不合法,不是任何類型常量,C項(xiàng)錯(cuò)誤;2Kb不合法,若加上雙引號"2Kb"為字符串常量,D項(xiàng)錯(cuò)誤。答案選擇A選項(xiàng)。[單選題]7.設(shè)有定義intx=0,*p;立即執(zhí)行以下語句,正確的語句是()。A.p=x;B.*p=x;C.p=NULL;D.*p=NULL;參考答案:C參考解析:p沒有初始化,不能用*p直接訪問,但可以進(jìn)行賦值操作。注意,p=NULL并不是指向地址為0的存儲(chǔ)單元,而是具有一個(gè)確定的值——“空”。答案選擇C選項(xiàng)。[單選題]8.C語言中,最基本的數(shù)據(jù)類型包括()?!瓵.整型、實(shí)型、邏輯型B.整型、字符型、數(shù)組C.整型、實(shí)型、字符型D.整型、實(shí)型、結(jié)構(gòu)體參考答案:C參考解析:C語言中,最基本的數(shù)據(jù)類型包括整型、實(shí)型、字符型,答案選擇C選項(xiàng)。[單選題]9.下列敘述中錯(cuò)誤的是()。A.算法的時(shí)間復(fù)雜度與算法所處理數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)有直接關(guān)系B.算法的空間復(fù)雜度與算法所處理數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)有直接關(guān)系C.算法的時(shí)間復(fù)雜度與空間復(fù)雜度有直接關(guān)系D.算法的時(shí)間復(fù)雜度與算法程序執(zhí)行的具體時(shí)間是不一致的參考答案:C參考解析:算法的時(shí)間復(fù)雜度是指執(zhí)行算法所需要的計(jì)算工作量。數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)直接決定數(shù)據(jù)輸入,因此會(huì)影響算法所執(zhí)行的基本運(yùn)算次數(shù),A項(xiàng)正確;算法的空間復(fù)雜度是指執(zhí)行這個(gè)算法所需要的內(nèi)存空間,其中包括輸入數(shù)據(jù)所占的存儲(chǔ)空間,B項(xiàng)正確;算法的時(shí)間復(fù)雜度與空間復(fù)雜度沒有直接關(guān)系,C項(xiàng)錯(cuò)誤;算法程序執(zhí)行的具體時(shí)間受到所使用的計(jì)算機(jī)、程序設(shè)計(jì)語言以及算法實(shí)現(xiàn)過程中的許多細(xì)節(jié)影響,而算法的時(shí)間復(fù)雜度與這些因素?zé)o關(guān),所以算法的時(shí)間復(fù)雜度與算法程序執(zhí)行的具體時(shí)間是不一致的,D項(xiàng)正確。答案選擇C選項(xiàng)。[單選題]10.以下能正確輸出字符a的語句是()。A.printf("%s","a");B.printf("%s",'a');C.printf("%c","a");D.printf("%d",'a');參考答案:A參考解析:輸出函數(shù)printf()的一般形式為“printf("格式控制字符串",輸出項(xiàng)1,輸出項(xiàng)2,…)”,輸出項(xiàng)的形式要和格式控制字符串中的格式控制符保持一致,"%s"為輸出字符串,"%c"為輸出單個(gè)字符,"%d"為以十進(jìn)制形式輸出帶符號整數(shù),答案選擇A選項(xiàng)。[單選題]11.字符數(shù)組a和b中存儲(chǔ)了兩個(gè)字符串,判斷字符串a(chǎn)和b是否相等,應(yīng)當(dāng)使用的是()。A.if(sdivcmp(a,b)==0)B.if(sdivcpy(a,b))C.if(a==b)D.if(a=b)參考答案:A參考解析:C語言中,判斷字符串是否相等,使用字符串比較函數(shù)strcmp(),不能使用相等操作符“==”。strcmp(s1,s2)函數(shù)比較s1和s2所指字符串的大小時(shí),若串s1>串s2,函數(shù)值大于0(正數(shù));若串s1=串s2,函數(shù)值等于0;若串s1<串s2,函數(shù)值小于0(負(fù)數(shù))。答案選擇A選項(xiàng)。[單選題]12.設(shè)有定義:intx=11,y=12,z=0;以下表達(dá)式值不等于12的是()。A.(z,x,y)B.(z=x,y)C.z=(x,y)D.z=(x==y)參考答案:D參考解析:逗號表達(dá)式的計(jì)算過程是從左到右逐個(gè)求每個(gè)表達(dá)式的值,取最右邊一個(gè)表達(dá)式的值作為該逗號表達(dá)式的值。賦值運(yùn)算結(jié)合性為由右向左結(jié)合,賦值運(yùn)算符左值為變量,右值為變量或常量或表達(dá)式,且左右兩邊數(shù)據(jù)類型相同才能實(shí)現(xiàn)賦值。成功實(shí)現(xiàn)賦值后以左值為返回值。邏輯表達(dá)式成立則返回1,不成立返回0。D選項(xiàng)邏輯表達(dá)式x==y不成立,則z=0,表達(dá)式值為0。B選項(xiàng)逗號表達(dá)式x,y取y值為表達(dá)式值,然后賦值給z=12,表達(dá)式值為12。C選項(xiàng)逗號表達(dá)式(x,y)取y值為表達(dá)式值,然后賦值給z=12,表達(dá)式值為12。A選項(xiàng)逗號表達(dá)式(z,x,y)取y值為表達(dá)式值12。答案選擇D選項(xiàng)。[單選題]13.下列敘述中正確的是()。A.存儲(chǔ)空間連續(xù)的數(shù)據(jù)結(jié)構(gòu)一定是線性結(jié)構(gòu)B.存儲(chǔ)空間不連續(xù)的數(shù)據(jù)結(jié)構(gòu)一定是非線性結(jié)構(gòu)C.沒有根結(jié)點(diǎn)的非空數(shù)據(jù)結(jié)構(gòu)一定是線性結(jié)構(gòu)D.具有兩個(gè)根結(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)一定是非線性結(jié)構(gòu)參考答案:D參考解析:A項(xiàng)錯(cuò)誤,數(shù)據(jù)結(jié)構(gòu)線性與否與存儲(chǔ)空間是否連續(xù)沒有直接關(guān)系,如二叉樹可以用一片連續(xù)的空間來存儲(chǔ),但二叉樹為非線性結(jié)構(gòu);B項(xiàng)錯(cuò)誤,線性表的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)可以用不連續(xù)的空間來存儲(chǔ),但線性表為線性結(jié)構(gòu);C項(xiàng)錯(cuò)誤,沒有根結(jié)點(diǎn)的非空數(shù)據(jù)結(jié)構(gòu)一定不是線性結(jié)構(gòu);D項(xiàng)正確,線性結(jié)構(gòu)有且只有一個(gè)根結(jié)點(diǎn),具有兩個(gè)根結(jié)點(diǎn)的結(jié)構(gòu)一定是非線性結(jié)構(gòu)。答案選擇D選項(xiàng)。[單選題]14.以下選項(xiàng)中,合法的實(shí)數(shù)是()。A.4.5E2B.E1.3C.7.11ED.1.2E1.2參考答案:A參考解析:實(shí)型常量用帶小數(shù)點(diǎn)的數(shù)字表示,其值有兩種表達(dá)形式,分別為十進(jìn)制小數(shù)形式和指數(shù)形式。十進(jìn)制小數(shù)形式由數(shù)字和小數(shù)組成,必須有小數(shù)點(diǎn),且小數(shù)點(diǎn)的位置不受限制。指數(shù)形式由十進(jìn)制數(shù)加階碼標(biāo)志“e”或“E”以及階碼(只能為整數(shù),可以帶符號)組成。4.5E2為指數(shù)形式實(shí)數(shù),A項(xiàng)正確。E1.3階碼標(biāo)志前缺少十進(jìn)制數(shù),并且階數(shù)不是整數(shù),B項(xiàng)錯(cuò)誤。7.11E缺少階數(shù),C項(xiàng)錯(cuò)誤。1.2E1.2階數(shù)不是整數(shù),D項(xiàng)錯(cuò)誤。答案選擇A選項(xiàng)。[單選題]15.以下選項(xiàng)中敘述正確的是()。A.函數(shù)體必須由{開始B.C程序必須由main語句開始C.C程序中的注釋可以嵌套D.C程序中的注釋必須在一行完成參考答案:A參考解析:函數(shù)體是函數(shù)首部下面的花括號內(nèi)的部分,所以函數(shù)體必須由{開始,A選項(xiàng)正確。一個(gè)源程序文件可以包括預(yù)處理命令、全局聲明、函數(shù)定義,程序總是從main函數(shù)開始執(zhí)行的,不是main語句,B選項(xiàng)錯(cuò)誤。函數(shù)可以嵌套,注釋不能嵌套,C選項(xiàng)錯(cuò)誤。C程序中允許兩種注釋,以//開頭的單行注釋;以/*開始,以*/結(jié)束的塊式注釋,D選項(xiàng)錯(cuò)誤。答案選擇A選項(xiàng)。[單選題]16.在源程序的開始處加上“#include”進(jìn)行文件引用的原因,以下敘述正確的是()。A.sdivio.h文件中包含標(biāo)準(zhǔn)輸入輸出函數(shù)的函數(shù)說明,通過引用此文件以便能正確使用prinff、scanf等函數(shù)B.將sdivio.h中標(biāo)準(zhǔn)輸入輸出函數(shù)鏈接到編譯生成的可執(zhí)行文件中,以便能正確運(yùn)行C.將sdivio.h中標(biāo)準(zhǔn)輸入輸出函數(shù)的源程序插入到引用處,以便進(jìn)行編譯鏈接D.將sdivio.h中標(biāo)準(zhǔn)輸入輸出函數(shù)的二進(jìn)制代碼插入到引用處,以便進(jìn)行編譯鏈接參考答案:A參考解析:“stdio.h”文件中包含標(biāo)準(zhǔn)輸入輸出函數(shù)的函數(shù)說明,預(yù)處理指令#include是指程序可以在該文件中找到printf,scanf等函數(shù),答案選擇A選項(xiàng)。[單選題]17.下面屬于白盒測試方法的是()。A.邊界值分析法B.基本路徑測試C.等價(jià)類劃分法D.錯(cuò)誤推測法參考答案:B參考解析:白盒測試是把程序看成裝在一只透明的白盒子里,測試者完全了解程序的結(jié)構(gòu)和處理過程。它根據(jù)程序的內(nèi)部邏輯來設(shè)計(jì)測試用例,檢查程序中的邏輯通路是否都按預(yù)定的要求正確地工作。白盒測試的主要技術(shù)有邏輯覆蓋測試、基本路徑測試等,B選項(xiàng)正確。常用的黑盒測試方法和技術(shù)有:等價(jià)類劃分法、邊界值分析法、錯(cuò)誤推測法和因果圖等,ACD三項(xiàng)錯(cuò)誤。答案選擇B選項(xiàng)。[單選題]18.有以下程序(其中的sdivsdiv()函數(shù)頭部格式為:char*sdivsdiv(char*p1,char*p2)確定p2字符串是否在p1中出現(xiàn),并返回p2第一次出現(xiàn)的字符串首地址):#include#includechar*a="you";char*b="WelcomeyoutoBeijing!";main(){char*p;p=sdivsdiv(b,a)+sdivlen(a)+1;printf("%s\n",p);}程序的運(yùn)行結(jié)果是()。A.toBeijing!B.youtoBeijing!C.WelcomeyoutoBeijing!D.Beijing!參考答案:A參考解析:調(diào)用strstr函數(shù),返回值為a指向的字符串在b指向的字符串中第一次出現(xiàn)的位置,并將此地址賦給指針p。strlen()函數(shù)求字符串的實(shí)際長度(不包含結(jié)束標(biāo)志)。strstr函數(shù)返回的地址下標(biāo)值為8,加上a長度3,再加1,指針P指向的地址下標(biāo)值為12,輸出:toBeijing!,答案選擇A選項(xiàng)。[單選題]19.有如下程序:#includevoidchange(int*array,intlen){for(;len>=0;len--)array[len]-=1;}main(){inti,array[5]={2,2};change(array,4);for(i=0;i<5;i++)printf("%d,",array[i]);printf("\n");}程序運(yùn)行后的輸出結(jié)果是()。A.1,1,-1,-1,-1,B.1,0,-1,1,-1,C.1,1,1,1,1,D.1,-1,1,-1,1,參考答案:A參考解析:在main()函數(shù)中,首先給一維數(shù)組array賦初值[2,2,0,0,0],再調(diào)用change函數(shù),對array數(shù)組中的每一個(gè)數(shù)進(jìn)行減1處理,最后使用for循環(huán)語句輸出數(shù)組元素的值,答案選擇A選項(xiàng)。[單選題]20.有如下程序:#includemain(){inti,data;scanf("%d",&data);for(i=0;i<5;i++){if(i<data)continue;printf("%d,",i);}printf("\n");}程序運(yùn)行時(shí),從鍵盤輸入:3<回車>后,程序輸出結(jié)果為()。A.3,4,B.1,2,3,4,C.0,1,2,3,4,5,D.0,1,2,參考答案:A參考解析:continue語句只能用在循環(huán)結(jié)構(gòu)中,其作用是結(jié)束本次循環(huán),即不再執(zhí)行循環(huán)體中continue語句之后的語句,而是立即轉(zhuǎn)入對循環(huán)條件的判斷與執(zhí)行。本題執(zhí)行過程為:輸入3,則data=3;執(zhí)行for循環(huán),i=0,if條件成立,結(jié)束本次循環(huán),不輸出i值,執(zhí)行下一次循環(huán);直到i>=3,if條件不成立,依次輸出i值3,4,;直到i=5退出for循環(huán)。答案選擇A選項(xiàng)。[單選題]21.設(shè)序列長度為n,在最壞情況下,時(shí)間復(fù)雜度為O(1og2n)的算法是()。A.二分法查找B.順序查找C.分塊查找D.哈希查找參考答案:A參考解析:對長度為n的線性表排序,最壞情況下時(shí)間復(fù)雜度,二分法查找為O(1og2n);順序查找法為O(n);分塊查找時(shí)間復(fù)雜度與分塊規(guī)則有關(guān);哈希查找時(shí)間復(fù)雜度為O(1),因其通過計(jì)算哈希函數(shù)來定位元素位置,所以只需一次即可。答案選擇A選項(xiàng)。[單選題]22.有以下程序:#includemain(){intx;scanf("%d",&x);if(x>10)printf("1");elseif(x>20)printf("2");elseif(x>30)printf("3");}若運(yùn)行時(shí)輸入:35<回車>,則輸出結(jié)果是()。A.123B.2C.3D.1參考答案:D參考解析:程序執(zhí)行過程為:輸入35<回車>,scanf函數(shù)從鍵盤讀入35賦值給x=35,對if條件進(jìn)行判斷,35>10,條件成立,輸出1,不再執(zhí)行下面的elseif語句,程序結(jié)束。答案選擇D選項(xiàng)。[單選題]23.以下非法的字符常量是()。A.'\\n'B.'\101'C.'\x21'D.'\0'參考答案:A參考解析:C語言允許使用一些以特殊形式出現(xiàn)的字符常量,使用'\n'來表示換行,'\n'實(shí)際上是一個(gè)字符,它的ASCII碼值為10,不存在'\\n'用法。答案選擇A選項(xiàng)。[單選題]24.有以下程序:#include#defineS(x)x*xmain(){intk=5,j=2;printf("%d,%d\n",S(k+j+2),S(j+k+2));}程序的運(yùn)行結(jié)果是()。A.21,18B.81,81C.21,21D.18,18參考答案:A參考解析:帶參數(shù)的宏的替換過程是,用宏調(diào)用提供的實(shí)參字符串直接置換宏定義命令行中相應(yīng)形參字符串,非形參字符保持不變。S(k+j+2)被置換成k+j+2*k+j+2,計(jì)算時(shí)先計(jì)算2*k,結(jié)果為21;S(j+k+2)被置換成j+k+2*j+k+2,計(jì)算時(shí)先計(jì)算2*j,結(jié)果為18。程序的運(yùn)行結(jié)果是21,18。答案選擇A選項(xiàng)。[單選題]25.一名雇員就職于一家公司,一個(gè)公司有多名雇員,則實(shí)體公司和實(shí)體雇員之間的聯(lián)系是()。A.1:1聯(lián)系B.1:m聯(lián)系C.m:1聯(lián)系D.m:n聯(lián)系參考答案:B參考解析:實(shí)體集之間的聯(lián)系分為3類:一對一聯(lián)系(1:1)、一對多聯(lián)系(1:m)、多對多聯(lián)系(m:n)。題目中一名雇員就職于一家公司,一個(gè)公司有多名雇員,公司與雇員之間的聯(lián)系為一對多(1:m)聯(lián)系。答案選擇B選項(xiàng)。[單選題]26.將E-R圖轉(zhuǎn)換為關(guān)系模式時(shí),E-R圖中的實(shí)體和聯(lián)系都可以表示為()。A.屬性B.鍵C.關(guān)系D.域參考答案:C參考解析:采用E-R方法得到的全局概念模型是對信息世界的描述,為了適合關(guān)系數(shù)據(jù)庫系統(tǒng)的處理,必須將E-R圖轉(zhuǎn)換成關(guān)系模式。E-R圖是由實(shí)體、屬性和聯(lián)系組成,而關(guān)系模式中只有一種元素——關(guān)系。答案選擇C選項(xiàng)。[單選題]27.以下針對全局變量的敘述錯(cuò)誤的是()。A.全局變量的作用域是從定義位置開始至源文件結(jié)束B.全局變量是在函數(shù)外部任意位置上定義的變量C.用extern說明符可以限制全局變量的作用域D.全局變量的生存期貫穿于整個(gè)程序的運(yùn)行期間參考答案:C參考解析:在不同編譯單位內(nèi)用extern說明符來擴(kuò)展全局變量的作用域,extern可以將全局變量作用域擴(kuò)展到其他文件,而不是限制全局變量的作用域。答案選擇C選項(xiàng)。[單選題]28.有以下程序:#includemain(){char*s="120119110";intn0,n1,n2,nn,i;n0=n1=n2=nn=i=0;do{switch(s[i++]){default:nn++;case'0':n0++;case'1':n1++;case'2':n2++;}}while(s[i]);printf("n0=%d,n1=%d,n2=%d,nn=%d\n",n0,n1,n2,nn);}程序的運(yùn)行結(jié)果是()。A.n0=3,n1=8,n2=9,nn=1B.n0=2,n1=5,n2=1,nn=1C.n0=2,n1=7,n2=10,nn=1D.n0=4,n1=8,n2=9,nn=1參考答案:A參考解析:本題執(zhí)行過程為:s[0]='1',匹配case'1',n1=1,n2=1;s[1]='2',匹配case'2',n2=2;s[2]='0',匹配case'0',n0=1,n1=2,n2=3;s[3]='1',匹配case'1',n1=3,n2=4;s[4]='1',匹配case'1',n1=4,n2=5;s[5]='9',匹配default,nn=1,n0=2,n1=5,n2=6;s[6]='1',匹配case'1',n1=6,n2=7;s[7]='1',匹配case'1',n1=7,n2=8;s[8]='0',匹配case'0',n0=3,n1=8,n2=9;s[9]='\0',對應(yīng)ASCII碼為0,退出循環(huán)。輸出n0,n1,n2,nn為3,8,9,1。答案選擇A選項(xiàng)。[單選題]29.在最壞情況下()。A.快速排序的時(shí)間復(fù)雜度比冒泡排序的時(shí)間復(fù)雜度要小B.快速排序的時(shí)間復(fù)雜度比希爾排序的時(shí)間復(fù)雜度要小C.希爾排序的時(shí)間復(fù)雜度比直接插入排序的時(shí)間復(fù)雜度要小D.快速排序的時(shí)間復(fù)雜度與希爾排序的時(shí)間復(fù)雜度是一樣的參考答案:C參考解析:最壞情況下:快速排序與冒泡排序的時(shí)間復(fù)雜度均為O(n2),A項(xiàng)錯(cuò)誤;快速排序比希爾排序的時(shí)間復(fù)雜度要大(O(n2)>O(n1.5)),B、D項(xiàng)錯(cuò)誤;希爾排序的時(shí)間復(fù)雜度比直接插入排序的時(shí)間復(fù)雜度要小(O(n1.5)<o(n2)),C項(xiàng)正確。答案選擇C選項(xiàng)。[單選題]30.有如下程序:#includemain(){intx=0x13;if(x=0x18)printf("T");printf("F");printf("\n");}程序運(yùn)行后的輸出結(jié)果是()。A.TFB.TC.FD.TFT參考答案:A參考解析:x=0x18為賦值表達(dá)式,十六進(jìn)制數(shù)0x18非0,故x非0,if條件成立輸出T,之后再輸出F與回車符。程序運(yùn)行后的輸出結(jié)果是TF。答案選擇A選項(xiàng)。[單選題]31.以下關(guān)于宏的敘述錯(cuò)誤的是()。A.宏替換不具有計(jì)算功能B.宏是一種預(yù)處理指令C.宏名必須用大寫字母構(gòu)成D.宏替換不占用運(yùn)行時(shí)間參考答案:C參考解析:宏名習(xí)慣采用大寫字母,以便與一般變量區(qū)別,但是并沒有規(guī)定一定要用大寫字母,答案選擇C選項(xiàng)。[單選題]32.有以下程序:#includeintfun(char*s){char*p=s;while(*p++!='\0');return(p-s);}main(){char*p="01234";printf("%d\n",fun(p));}程序的運(yùn)行結(jié)果是()。A.6B.5C.4D.3參考答案:A參考解析:程序執(zhí)行過程為:定義字符串指針p并為其初始化為"01234",調(diào)用函數(shù)fun(p),將指針傳入函數(shù)。fun函數(shù)功能即返回字符串首地址與結(jié)束符下一個(gè)地址之差,也即是字符串長度加1。輸出地址差為6,答案選擇A選項(xiàng)。[單選題]33.計(jì)算機(jī)軟件包括()。A.算法和數(shù)據(jù)B.程序和數(shù)據(jù)C.程序和文檔D.程序、數(shù)據(jù)及相關(guān)文檔參考答案:D參考解析:計(jì)算機(jī)軟件由兩部分組成:①機(jī)器可執(zhí)行的程序和數(shù)據(jù);②機(jī)器不可執(zhí)行的,與軟件開發(fā)、運(yùn)行、維護(hù)、使用等有關(guān)的文檔。答案選擇D選項(xiàng)。[單選題]34.有如下程序:#includemain(){inti,array[5]={3,5,10,4};for(i=0;i<5;i++)printf("%d,",array[i]&3);printf("\n");}程序運(yùn)行后的輸出結(jié)果是()。A.3,1,2,0,0,B.3,5,10,4,0,C.3,3,3,3,0,D.3,2,2,2,0,參考答案:A參考解析:在對數(shù)組進(jìn)行初始化時(shí),如果在聲明數(shù)組時(shí)給出了長度,但沒有給所有的元素賦予初始值,那么C語言將自動(dòng)對余下的元素賦初值0,則array={3,5,10,4,0}。按位與運(yùn)算“&”,當(dāng)參加運(yùn)算的兩個(gè)二進(jìn)制數(shù)的對應(yīng)位都為1,則該位的結(jié)果為1,否則為0。將數(shù)組元素與3按位與,即3&3=3,5&3=1,10&3=2,4&3=0,0&3=0。for循環(huán)輸出與運(yùn)算結(jié)果:3,1,2,0,0,。答案選擇A選項(xiàng)。[單選題]35.以下敘述正確的是()。A.do-while語句構(gòu)成的循環(huán),當(dāng)while語句中的表達(dá)式值為0時(shí)結(jié)束循環(huán)B.do-while語句和while-do構(gòu)成的循環(huán)功能相同C.while-do語句構(gòu)成的循環(huán),當(dāng)while語句中的表達(dá)式值為非0時(shí)結(jié)束循環(huán)D.do-while語句構(gòu)成的循環(huán),必須用break語句退出循環(huán)參考答案:A參考解析:B項(xiàng)錯(cuò)誤,do-while語句先執(zhí)行循環(huán)體,再判斷循環(huán)條件語句,while-do循環(huán)先判斷循環(huán)條件語句,再執(zhí)行循環(huán)體;C項(xiàng)錯(cuò)誤,do-while語句構(gòu)成的循環(huán),while語句中的表達(dá)式值為0時(shí)結(jié)束循環(huán);D項(xiàng)錯(cuò)誤,do-while語句除了可以使用break語句退出循環(huán)外,還可以使用循環(huán)條件語句,當(dāng)不滿足循環(huán)條件時(shí)退出循環(huán)。答案選擇A選項(xiàng)。[單選題]36.關(guān)于地址和指針,以下說法正確的是()。A.通過強(qiáng)制類型轉(zhuǎn)換可以將一種類型的指針變量賦值給另一種類型的指針變量B.可以取一個(gè)常數(shù)的地址賦值給同類型的指針變量C.可以取一個(gè)表達(dá)式的地址賦值給同類型的指針變量D.可以取一個(gè)指針變量的地址賦值給基類型相同的指針變量參考答案:A參考解析:常數(shù)的地址存儲(chǔ)在內(nèi)存的常量區(qū),常量區(qū)存儲(chǔ)的都是常量,值都是不可修改的,所以直接取常量的地址賦給指針變量沒有任何意義,C語言也不允許這樣做,編譯會(huì)出錯(cuò),B項(xiàng)錯(cuò)誤;表達(dá)式的值存儲(chǔ)在臨時(shí)變量中,內(nèi)存中存在專門用來存儲(chǔ)臨時(shí)變量的區(qū)域,對這塊地址進(jìn)行操作也是沒有意義的,C語言不允許這樣做,編譯會(huì)出錯(cuò),C項(xiàng)錯(cuò)誤;可以取一個(gè)指針變量的地址,但是指針變量的地址屬于指針,只能賦值給指針類型的指針變量,D項(xiàng)錯(cuò)誤。答案選擇A選項(xiàng)。[單選題]37.下面描述不屬于軟件特點(diǎn)的是()。A.軟件是一種邏輯實(shí)體,具有抽象性B.軟件在使用中不存在磨損、老化問題C.軟件復(fù)雜性高D.軟件使用不涉及知識產(chǎn)權(quán)參考答案:D參考解析:軟件具有以下特點(diǎn):①軟件是一種邏輯實(shí)體,具有抽象性;②軟件沒有明顯的制作過程;③軟件在使用期間不存在磨損、老化問題;④軟件對硬件和環(huán)境具有依賴性;⑤軟件復(fù)雜性高,成本昂貴;⑥軟件開發(fā)涉及諸多的社會(huì)因素,如知識產(chǎn)權(quán)等。答案選擇D選項(xiàng)。[單選題]38.以下程序的功能是:通過調(diào)用calc函數(shù),把所求得的兩數(shù)之和值放入變量add中,并在主函數(shù)中輸出。#include

void

calc(float

x,float

y,float

*sum){______

=

x+y;}main

(){float

x,y,add;scanf("%f%f",&x,&y);calc(x,y,&add);printf("x+y=%f\n",add);}calc函數(shù)中下劃線處應(yīng)填入的是()。A.*sumB.sumC.&sumD.add參考答案:A參考解析:程序的執(zhí)行過程為:從鍵盤讀入兩個(gè)float類型數(shù)據(jù),分別賦給x,y,調(diào)用函數(shù)calc將x與y的值與add變量地址傳入函數(shù),地址賦給指針sum,函數(shù)體中將兩數(shù)之和放入指針指向的地址,指針正確的引用形式為:*sum,這表示變量,可以被賦值。所以橫線處填寫*sum。答案選擇A選項(xiàng)。[單選題]39.有以下程序:#includemian(){char

c;for(;(c=getchar())!=

'#';)

putchar(++c);}執(zhí)行時(shí)如輸入為:abcdefgh#,則輸出結(jié)果是()。A.abcdefgB.bcdefgh$C.bcdefgh$$D.bcdefgh參考答案:D參考解析:for循環(huán)每次將函數(shù)getchar()的輸入值賦給變量c,如果不等于#,則執(zhí)行putchar(++c),即將當(dāng)前變量c的ASCII碼加1后,再輸出改變后的變量c的值。當(dāng)變量c的值等于#,則終止循環(huán),所以輸出應(yīng)該是bcdefgh。答案選擇D選項(xiàng)。[單選題]40.有以下程序:#includevoidfun(int*x,ints,inte){inti,j,t;for(i=s,j=e;i<j;i++,j--){t=*(x+i);*(x+i)=*(x+j);*(x+j)=t;}}main(){intm[]={0,1,2,3,4,5,6,7,8,9},k;fun(m,0,3);fun(m+4,0,5);fun(m,0,9);for(k=0;k<10;k++)printf("%d",m[k]);}程序的運(yùn)行結(jié)果是()。A.4567890123B.3210987654C.9876543210D.0987651234參考答案:A參考解析:程序的執(zhí)行過程為:定義數(shù)組m,并為其賦初值,數(shù)組長度為10。調(diào)用函數(shù)fun(m,0,3)將數(shù)組首地址傳入函數(shù),函數(shù)實(shí)現(xiàn)將數(shù)組下標(biāo)值從0到3的元素首尾倒置,for循環(huán)結(jié)束之后數(shù)組為m={3,2,1,0,4,5,6,7,8,9}。調(diào)用函數(shù)fun(m+4,0,4)將數(shù)組下標(biāo)值為4的元素地址傳入函數(shù),函數(shù)實(shí)現(xiàn)將數(shù)組下標(biāo)值從4到9的元素首尾倒置,for循環(huán)結(jié)束之后數(shù)組為m={3,2,1,0,9,8,7,6,5,4}。調(diào)用函數(shù)fun(m,0,9)將數(shù)組首地址傳入函數(shù),函數(shù)實(shí)現(xiàn)將數(shù)組下標(biāo)值從0到9的元素首尾倒置,for循環(huán)結(jié)束之后數(shù)組為m={4,5,6,7,8,9,0,1,2,3}。依次輸出數(shù)組元素,結(jié)果為4567890123。答案選擇A選項(xiàng)。[問答題]1.下列給定程序的功能是調(diào)用fun函數(shù)建立班級通信錄。通信錄中記錄每位學(xué)生的編號、姓名和電話號碼。班級人數(shù)和學(xué)生信息從鍵盤讀入,每個(gè)人的信息作為一個(gè)數(shù)據(jù)塊寫到名為myfile5.dat的二進(jìn)制文件中。請?jiān)诔绦虻南庐嬀€處填入正確的內(nèi)容并將下畫線刪除,使程序得出正確的結(jié)果。注意:部分源程序給出如下。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!/**********code.c**********/#include#include#defineN5typedefsdivuct{intnum;charname[10];chartel[10];}STYPE;voidcheck();/**********found**********/intfun(①______*sdiv){/**********found**********/②______*fp;inti;if((fp=fopen("myfile5.dat","wb"))==NULL)return(0);printf("\nOutputdatatofile!\n");for(i=0;i<n;i++)/**********found**********/fwrite(&sdiv[i],sizeof(STYPE),1,③______);fclose(fp);return(1);}voidmain(){STYPEs[10]={{1,"aaaaa","111111"},{1,"bbbbb","222222"},{1,"ccccc","333333"},{1,"ddddd","444444"},{1,"eeeee","555555"}};intk;k=fun(s);if(k==1){printf("Succeed!");check();}elseprintf("Fail!");}voidcheck(){FILE*fp;inti;STYPEs[10];if((fp=fopen("myfile5.dat","rb"))==NULL){printf("Fail!\n");exit(0);}printf("\nReadfileandoutputtoscreen:\n");printf("\nnum

name

tel\n");for(i=0;i<n;i++){fread(&s[i],sizeof(STYPE),1,fp);printf("%6d%s%s\n",s[i].num,s[i].name,s[i].tel);}fclose(fp);}/**********-code.c**********/參考答案:①STYPE②FILE③fp參考解析:填空1:根據(jù)主函數(shù)中的調(diào)用函數(shù)可知,函數(shù)的形參應(yīng)為結(jié)構(gòu)體類型,因此填入STYPE。填空2:fp是指向文件類型的指針變量,因此填入FILE。填空3:函數(shù)fwrite調(diào)用的一般形式為“fwrite(buffer,size,count,fp);”,其中,fp表示文件指針。[問答題]2.下列給定程序中,函數(shù)fun的功能是:從s所指字符串中,找出t所指字符串的個(gè)數(shù)作為函數(shù)值返回。例如,當(dāng)s所指字符串中的內(nèi)容為“abcdabfab”,t所指字符串的內(nèi)容為“ab”,則函數(shù)返回整數(shù)3。請改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!/**********code.c**********/#include#include#include#includeintfun(char*s,char*t){intn;char*p,*r;n=0;while(*s){p=s;r=t;while(*r)/**********found**********/if(*r==*p){r++;p++}elsebreak;/*

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論