國家二級(C語言)機(jī)試模擬試卷40(共342題)_第1頁
國家二級(C語言)機(jī)試模擬試卷40(共342題)_第2頁
國家二級(C語言)機(jī)試模擬試卷40(共342題)_第3頁
國家二級(C語言)機(jī)試模擬試卷40(共342題)_第4頁
國家二級(C語言)機(jī)試模擬試卷40(共342題)_第5頁
已閱讀5頁,還剩97頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

國家二級(C語言)機(jī)試模擬試卷40(共9套)(共342題)國家二級(C語言)機(jī)試模擬試卷第1套一、選擇題(本題共39題,每題1.0分,共39分。)1、需求分析階段的任務(wù)是()。A、軟件開發(fā)方法B、軟件開發(fā)工具C、軟件開發(fā)費(fèi)用D、軟件系統(tǒng)功能標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:需求分析是軟件定義時期的最后一個階段,它的基本任務(wù)就是詳細(xì)調(diào)查現(xiàn)實(shí)世界要處理的對象,充分了解原系統(tǒng)的工作概況,明確用戶的各種需求,然后在這些基礎(chǔ)上確定新系統(tǒng)的功能。2、在數(shù)據(jù)庫設(shè)計(jì)中,將E-R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過程屬于()。A、需求分析階段B、概念設(shè)計(jì)階段C、邏輯設(shè)計(jì)階段D、物理設(shè)計(jì)階段標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:邏輯結(jié)構(gòu)設(shè)計(jì)的任務(wù):概念結(jié)構(gòu)是各種數(shù)據(jù)模型的共同基礎(chǔ),為了能夠用某一DBMS實(shí)現(xiàn)用戶需求,還必須將概念結(jié)構(gòu)進(jìn)一步轉(zhuǎn)化為相應(yīng)的數(shù)據(jù)模型,這正是數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)所要完成的任務(wù)。它包括從E-R圖向關(guān)系模式轉(zhuǎn)換和邏輯模式規(guī)范化及調(diào)整、實(shí)現(xiàn)。3、數(shù)據(jù)管理技術(shù)發(fā)展的三個階段中,()沒有專門的軟件對數(shù)據(jù)進(jìn)行管理。I.人工管理階段II.文件系統(tǒng)階段III.?dāng)?shù)據(jù)庫階段A、僅IB、僅IIIC、I和IID、II和III標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:數(shù)據(jù)管理技術(shù)發(fā)展的三個階段中,只有人工管理階段,沒有操作系統(tǒng),沒有管理數(shù)據(jù)的軟件,數(shù)據(jù)處理方式是批處理。在文件系統(tǒng)階段,操作系統(tǒng)中已經(jīng)有了專門數(shù)據(jù)管理軟件,一般稱為文件系統(tǒng)。在數(shù)據(jù)庫系統(tǒng)階段,出現(xiàn)了統(tǒng)一管理數(shù)據(jù)的專門軟件系統(tǒng).即數(shù)據(jù)庫管理系統(tǒng)。4、以下敘述中錯誤的是()。A、C程序經(jīng)過編譯、鏈接步驟之后才能形成一個真正可執(zhí)行的二進(jìn)制機(jī)器指令文件B、C語言中的每條可執(zhí)行語句和非執(zhí)行語句最終都將被轉(zhuǎn)換成二進(jìn)制的機(jī)器指令C、用C語言編寫的程序稱為源程序,它以ASCII代碼形式存放在一個文本文件中D、C語言源程序經(jīng)編譯后生成后綴為.obj的目標(biāo)程序標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:C語言程序編譯時將每條可執(zhí)行語句轉(zhuǎn)換為二進(jìn)制的機(jī)器指令,但非執(zhí)行語句(如注釋語句)不被編譯。所以選項(xiàng)B錯誤。5、判斷字符串s1是否大于字符串s2,應(yīng)該使用()。A、if(strcmp(s1,s2)<0)B、if(s1>s2)C、if(strcmp(s2,s1)<0)D、igstrcmp(s1,s2))標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:本題考查字符串比較函數(shù)strcmp(),調(diào)用形式:strcmp(str+1,str+2),其中str+1、str+2分別是字符串存儲區(qū)的首地址,函數(shù)功能:比較字符串str1和str2,當(dāng)str1<str2時,返回值為負(fù)數(shù);當(dāng)str1=str2時,返回0;當(dāng)str1>str2,返回值為正數(shù)。注意:不能使用關(guān)系運(yùn)算符比較兩個字符串的大?。?、以下敘述中正確的是()。A、C程序中注釋部分可以出現(xiàn)在程序中任意合適的地方B、C程序的書寫格式是固定的,每行只能寫一條語句C、構(gòu)成C程序的基本單位是函數(shù),所有函數(shù)名都可以由用戶命名D、在對C語言程序進(jìn)行編譯時,可以發(fā)現(xiàn)注釋行中的拼寫錯誤標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:本題考查的是C語言程序設(shè)計(jì)的初步知識。選項(xiàng)A),程序中/*……*/表示注釋部分,注釋只是給人看的,對程序的編譯和運(yùn)行不起作用,可以在程序中的任何位置;選項(xiàng)B),C語言的書寫格式自由,一行可以寫多條語句,一條語句也可以寫在不同行上;選項(xiàng)C),一個C程序中必須有且只能有一個由“main”命名的主函數(shù),其他函數(shù)由用戶自行命名;選項(xiàng)D),程序的注釋僅僅是提供閱讀之用,并不參與程序的編譯,所以編譯也就不會發(fā)現(xiàn)注釋行中的錯誤。7、有以下程序:#include<stdio.h>#include<stdlib.h>main(){int*a,*b,*c;a=b=c=(int*)malloc(sizeof(int));*a=1;*b:2,*c=3;a=b:printf("%d,%d,%d\n",*a,*b,*c);程序運(yùn)行后的輸出結(jié)果是()。A、1,1,3B、2,2,3C、1,2,3D、3,3,3標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:malloc函數(shù)動態(tài)分配一個整型的內(nèi)存空間,然后把函數(shù)返回的地址用(int*)強(qiáng)制類型轉(zhuǎn)換為整型指針,再把它賦給a,b,c,即讓指針變量a,b,c都指向剛申請的內(nèi)存空間。所以只有最后一個賦值語句*c=3的值保留在了該空間內(nèi),因?yàn)閍、b、c三個指針堂量均指向該空間,所以打印該空間內(nèi)的數(shù)值為3。8、對關(guān)系S和R進(jìn)行集合運(yùn)算,結(jié)果中既包含S中的所有元組也包含R中的所有元組,這樣的集合運(yùn)算稱為()。A、并運(yùn)算B、交運(yùn)算C、差運(yùn)算D、積運(yùn)算標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:關(guān)系的并運(yùn)算是指由結(jié)構(gòu)相同的兩個關(guān)系合并,形成一個新的關(guān)系,新關(guān)系中包含兩個關(guān)系中的所有元組。9、字符數(shù)組a和b中存儲了兩個字符串,判斷字符串a(chǎn)和b是否相等,應(yīng)當(dāng)使用的是()。A、if(strcmp(a,b)==0)B、if(strcpy(a,b))C、if(a==b)D、if(a=b)標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:考查字符串比較函數(shù)strcmp的功能。10、下列說法正確的是()。A、auto和register將聲明的對象說明為自動存儲類對象,這些對象可用在函數(shù)中或函數(shù)外B、將變量其定義為static類型,則其初值默認(rèn)為隨機(jī)值C、typedef說明符并不會為對象預(yù)留存留空間D、如果一個對象被聲明為register,則對它應(yīng)用一元運(yùn)算符&,意在取得其存儲的地址標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:①這種聲明也具有定義的作用,并將預(yù)留存儲空間。register說明的聲明等價于auto說明的聲明,所不同的是,register暗示了聲明的對象將被頻繁地訪問,將盡可能存儲在寄存器中。如果一個對象被聲明為register,則將不能對它應(yīng)用一元運(yùn)算符&,聲明為register但實(shí)際按照auto類型處理的對象的地址進(jìn)行計(jì)算是非法的。②static將聲明的對象說明為靜態(tài)存儲類。這種對象可以用在函數(shù)內(nèi)部或者函數(shù)外部。在函數(shù)內(nèi)部,該說明符將引起存儲空間的分配,具有定義的作用。在函數(shù)外部,該說明符將引起聲明對象為具有內(nèi)部鏈接。另外,若將其定義為static類型,則其初值默認(rèn)為0。⑨函數(shù)內(nèi)部的extem聲明表明,被聲明的對象的存儲空間定義在其他地方。在函數(shù)外部,說明聲明的對象具有外部鏈接。④typedef說明符并不會為對象預(yù)留存留空間。11、以下選項(xiàng)中能表示合法常量的是()。A、1,200B、1.5E2.0C、‘\’D、“\007”標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:A選項(xiàng)中整型常量應(yīng)表示為1200,不能包含“,”。B選項(xiàng)中E后面的指數(shù)必須為整數(shù)。C選項(xiàng)中轉(zhuǎn)義字符以“\”開始,若要表示字符“\”,應(yīng)寫為“\\”。12、對于if(表達(dá)式)語句,以下敘述中正確的是()。A、“表達(dá)式”的值可以是任意合法的數(shù)值B、變量不能出現(xiàn)在“表達(dá)式”中C、常量不能出現(xiàn)在“表達(dá)式”中D、如果“表達(dá)式”的值不是邏輯值,程序會出編譯錯誤標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:B、C、D選項(xiàng)描述比較片面。13、有以下程序:#include<stdio.h>intfun(){staticintx=1:x+=1:returnx;}main()inti,s=1;for(i=1;i<=5;i++)s+=fun();printf("%d\n",s);}程序運(yùn)行后的輸出結(jié)果是()。A、120B、1C、6D、21標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:fun函數(shù)中的變量x為靜態(tài)的局部變量,占用固定的內(nèi)存單元,下一次調(diào)用時仍可以保留上次調(diào)用時的值。也就是說,如果多次調(diào)用fun函數(shù),x的定義只在第一次調(diào)用時有效,從第二次調(diào)用開始,x的定義卡相當(dāng)于不存在,直接使用上次x的值,fun函數(shù)被調(diào)用了5次,每次調(diào)用后的返回值累加到s上,5次調(diào)用后,x的值為6,s的值為1+2+3+4+5+6=21,因此D選項(xiàng)正確。14、以下敘述中錯誤的是()。A、C語言中的每條可執(zhí)行語句和非執(zhí)行語句最終都將被轉(zhuǎn)換成二進(jìn)制的機(jī)器指令B、C程序經(jīng)過編譯、鏈接步驟之后才能形成一個真正可執(zhí)行的二進(jìn)制機(jī)器指令文件C、用C語言編寫的程序稱為源程序,它以ASCII代碼形式存放在一個文本文件中D、C語言源程序經(jīng)編譯后生成后綴為.obj的目標(biāo)程序標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:C語言程序編譯時將每條可執(zhí)行語句轉(zhuǎn)換為二進(jìn)制的機(jī)器指令,但非執(zhí)行語句(如注釋語句)不被編譯。所以選項(xiàng)A)錯誤。15、交換兩個變量的值,不允許用臨時變量,應(yīng)該使用下列()位運(yùn)算符。A、&B、^c)||C、~標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:按邏輯位運(yùn)算的特定作用主要有3點(diǎn):①用按位與運(yùn)算將特定位清0或保留特定位;②用按位或運(yùn)算將特定的位置設(shè)置為1;③用按位異或運(yùn)算將某個變量的特定位翻轉(zhuǎn)或交換兩個變量的值。16、設(shè)有某函數(shù)的說明為int*func(inta[10],intn);則下列敘述中,正確的是()。A、說明中的a[10]寫成a[]或*a效果完全一樣B、形參a對應(yīng)的實(shí)參只能是數(shù)組名C、func的函數(shù)體中不能對a進(jìn)行移動指針(如a++)的操作D、只有指向10個整數(shù)內(nèi)存單元的指針,才能作為實(shí)參傳給a標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:考查數(shù)組名作為函數(shù)參數(shù)。數(shù)組名作為函數(shù)參數(shù)時,只傳遞數(shù)組的首地址而不檢查形參數(shù)組的長度,所以形參表中可以不給出形參數(shù)組的長度,形參數(shù)組和實(shí)參數(shù)組長度也可以不同,選項(xiàng)D)錯;a[10]、a[]、*a做形參都是接受實(shí)參數(shù)組首地址,效果一樣,A)正確。傳遞給形參的實(shí)參可以是數(shù)組名,還可以是指向該數(shù)組的指針變量,選項(xiàng)B)錯。數(shù)組名可以看做一個指針常量,對其進(jìn)行自加自減運(yùn)算相當(dāng)于指針變量的自加自減,選項(xiàng)C)錯。答案選A)。17、與數(shù)學(xué)表達(dá)式x≥y≥z對應(yīng)的C語言表達(dá)式是()。A、(x>=y)||(y>=x)B、(x>=y>=z)C、(x>=y)!(y>=z)D、(x>=y)&&(y>=z)標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:本題考查關(guān)系表達(dá)式和邏輯表達(dá)式。y大于等于x同時y小于等于z,因此x<=y和y<=z是邏輯與的關(guān)系。因此D選項(xiàng)正確。18、以下選項(xiàng)中關(guān)于C語言常量的敘述錯誤的是()。A、經(jīng)常被使用的變量可以定義成常量B、常量分為整型常量、實(shí)型常量、字符常量和字符串常量C、常量可分為數(shù)值型常量和非數(shù)值型常量D、所謂常量,是指在程序運(yùn)行過程中,其值不能被改變的量標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:C語言中,常量是指在程序運(yùn)行過程中其值不能被改變的量,變量是指運(yùn)行過程中其值可以改變的量,二者不能混淆,所以A選項(xiàng)錯誤。19、若已定義的函數(shù)有返回值,則以下關(guān)于該函數(shù)調(diào)用的敘述中錯誤的是()。A、函數(shù)調(diào)用可以作為獨(dú)立的語句存在B、函數(shù)調(diào)用可以作為一個函數(shù)的實(shí)參C、函數(shù)調(diào)用可以出現(xiàn)在表達(dá)式中D、函數(shù)調(diào)用可以作為一個函數(shù)的形參標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:本題考查函數(shù)調(diào)用的有關(guān)知識點(diǎn)。函數(shù)調(diào)用①可以出現(xiàn)在表達(dá)式中;②可以作為獨(dú)立的語句存在;③可以作為一個函數(shù)的實(shí)參。20、有以下程序:#includemain(){inti,j;for(i=3;i>=1;i--){for(j=1;j<=2;j++)printf("%d",i+j);prinTf("\n");}}程序運(yùn)行的結(jié)果是()。A、234345B、43254345C、233423D、453423標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:外層主循環(huán)i從3減到1執(zhí)行了3次,嵌套的內(nèi)層循環(huán)j從1增到2,執(zhí)行2次,每次輸出i+j的值,得到3+1,3+2,2+1,2+2,1+1,1+2。每次換行發(fā)生在外循環(huán)完成一次循環(huán)之后。21、設(shè)有以下函數(shù):voidfun(intn,char*s){……}則下面對函數(shù)指針的定義和賦值均正確的是A、void(*pf)(int,char);pf=&fun;B、void*pf();pf=fun;C、void*pf();*pf=fun;D、void(*pf)(int,char*);pf=fun;標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:函數(shù)的參數(shù)可以是指針類型。它的作用是將一個變量的地址傳送到另一個函數(shù)中。函數(shù)名代表函數(shù)的入口地址,指向函數(shù)的指針應(yīng)該定義為void(*pf)()。如果定義為void*pf(),則表示函數(shù)pf返回值為一個基類型為void的指針。因此D選項(xiàng)正確。22、設(shè)有條件表達(dá)式:(EXP)?i++;j--,則以下表達(dá)式中(EXP)完全等價的是()。A、(EXP==0)B、(EXP!=0)C、(EXP==1)D、(EXP!=1)標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:條件表達(dá)式的形式為:“表達(dá)式17表達(dá)式2:表達(dá)式3”。其含義為:當(dāng)“表達(dá)式1”的值為非零時,求出“表達(dá)式2”的值,此時“表達(dá)式2”的值就是整個條件表達(dá)式的值:當(dāng)“表達(dá)式1”的值為零時,求出“表達(dá)式3”的值,此時“表達(dá)式3”的值就是整個條件表達(dá)式的值。對于本題來說,當(dāng)表達(dá)式EXP為非0值時條件成立,即執(zhí)行語句i++:當(dāng)EXP等于0時,執(zhí)行語句j--;這等同于條件表達(dá)式“(EXP!=0)?i++;j++;”。23、以下程序中函數(shù)f的功能是:當(dāng)flag為1時,進(jìn)行由小到大排序;當(dāng)flag為0時,進(jìn)行由大到小排序。#includevoidf(intb[],intlq,intflag){inti,j,t;for(i=0;ib[j]:b[i]A、1,2,3,4,5,6,7,8,9,10,B、3,4,5,6,7,2,1,8,9,10,C、5,4,3,2,1,6,7,8,9,10,D、10,9,8,7,6,5,4,3,2,1,標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:本題重點(diǎn)考察函數(shù)的參數(shù)傳遞,函數(shù)的參數(shù)傳遞分為傳值和傳地址兩種情況。本題就是結(jié)合數(shù)組考查參數(shù)傳遞的情形。函數(shù)f完成的功能是對數(shù)據(jù)進(jìn)行排序,語句f(&a[2],5,0)的作用是對從a[2]開始的5個元素進(jìn)行從大到小排序。注意:這里傳遞的是地址&a[2],所以排序操作可看作是直接對數(shù)組a操作,執(zhí)行后的結(jié)果為5,4,7,6,3,2,1,8,9,10。語句f(a,5,1)對數(shù)組a的前5個元素從小到大排序,排序后數(shù)組為:3,4,5,6,7,2,1,8,9,10。因此B選項(xiàng)正確。24、有以下程序:#include<stdio.h>intfun(int(*s)[4],intn,intk){intm,i;m=s[0][k];for(i=l;i<n;i++)if(s[i][k]>m)m=s[i][k];returnm:}main(){inta[4][4]={{1,2,3,4},{11,12,13,14},{21,22,23,24},{31,32,33,34}};printf(’’%d\n’’,fun(a,4,0));}程序運(yùn)行后的輸出結(jié)果是()。A、4B、34C、31D、32標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:本題重點(diǎn)考察二維數(shù)組名作為實(shí)參進(jìn)行參數(shù)傳遞,在主函數(shù)中調(diào)用了fun函數(shù),實(shí)參為二維數(shù)組名a和兩個整數(shù)4、0,這樣對應(yīng)定義:fun函數(shù)首部有三種形式,這里采用了第一種形式——行指針,這樣在fun函數(shù)對s[i][j]進(jìn)行操作實(shí)際上就是對主函數(shù)中的a[i][j]進(jìn)行操作,再分析fun函數(shù)的作用便可知,是求二維數(shù)組第0列中最大的那個元素。因此C選項(xiàng)正確。25、有以下計(jì)算公式若程序前面已在命令行中包含math.h文件,不能夠正確計(jì)算上述公式的程序段是()。A、if(x>=0)y=sqrt(x);if(x<0)y=sqrt(一x);B、if(x>=0)y=sqrt(x);elsey=sqrt(一x);C、y=sqrt(x);D、if(x<0)y=sqrt(一x);標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:本題重點(diǎn)考查的知識點(diǎn)是:sqrt()函數(shù)。sqrt()函數(shù)的作用是計(jì)算平方根,要求輸出的參數(shù)x必須大于等于0。題目公式的要求是無論x大于等于0還是小于0,y的值都為x絕對值的開方。選項(xiàng)C中調(diào)用了sqrt(x)函數(shù),而沒有判斷x的正負(fù),則y=sqrt(x)會出錯。26、下列C語言語句會出現(xiàn)錯誤的是()。A、chara=’123’B、chara=’\n’;C、chara=’a’;D、char=’’\x2d’’;標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:選項(xiàng)A將一個字符串賦給了一個字符變量是不正確的;選項(xiàng)B和C是字符賦值,正確;選項(xiàng)D是十六進(jìn)制表示法。也正確。27、有以下程序#include<stdio.h>fun(inta,intb){intstaticm=0,i=2;i=i+m+1;m=i+a+b;returnm;}main(){intk=4,m=1,p;p=fun(k,m);printf("%d,",p);p=fun(k,m);printf("%d\n",p);}程序運(yùn)行后的輸出結(jié)果是A、8,17B、7,16C、8,8D、7,17標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:本題考查靜態(tài)局部變量,本題中先執(zhí)行fun(4,1)得到返回值為8,此時靜態(tài)局部變量m為8,i為3,那么再次執(zhí)行fun(4,1)得到的值為17,所以選項(xiàng)A正確。28、計(jì)算機(jī)算法中有窮性的意思是()。A、算法程序的運(yùn)行時間是有限的B、算法程序所處理的數(shù)據(jù)量是有限的C、算法程序的長度是有限的D、算法只能被有限的用戶使用標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:算法原則上能夠精確地運(yùn)行,而且人們用筆和紙做有限次運(yùn)算后即可完成。有窮性是指算法程序的運(yùn)行時間是有限的。29、在軟件開發(fā)中,需求分析階段可以使用的工具是()。A、N-S圖B、DFD圖C、PAD圖D、程序流程圖標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:在需求分析階段可以使用的工具有數(shù)據(jù)流圖DFD圖,數(shù)據(jù)字典DD,判定樹與判定表,所以選擇B。30、以下數(shù)組定義中錯誤的是()。A、intx[2][3]={1,2,3,4,5,6};B、intx[][3]={0};C、intx[][3]={{1,2,3},{4,5,6}};D、intx[2][3]={{1,2},{3,4},{5,6}};標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:D選項(xiàng)中x[2][3]定義的是一個兩行三列的二維數(shù)組,而在給數(shù)組元素賦值時卻賦成了三行,所以錯誤。31、若函數(shù)調(diào)用時的實(shí)參為變量,以下關(guān)于函數(shù)形參和實(shí)參的敘述中正確的是()。A、函數(shù)的實(shí)參和其對應(yīng)的形參共占同一存儲單元B、形參只是形式上的存在,不占用具體存儲單元C、同名的實(shí)參和形參占同一存儲單元D、函數(shù)的形參和實(shí)參分別占用不同的存儲單元標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:在C語言中,函數(shù)的實(shí)參單元與形參單元在內(nèi)存中分配不同的存儲單元。在調(diào)用函數(shù)時,給形參分配臨時存儲單元,并將實(shí)參對應(yīng)的值傳遞給形參,在被調(diào)用函數(shù)中對形參存儲單元中的值進(jìn)行運(yùn)算,最后通過retum語句把函數(shù)值返回調(diào)用函數(shù)。當(dāng)調(diào)用結(jié)束后,形參單元被釋放,實(shí)參單元仍保留并維持原值。32、假如下列選項(xiàng)中的變量已正確定義并成功賦值,其中正確的表達(dá)式是()。A、int(22.1%2)B、n=y+m+5,++yC、x=y*3=x+kD、x=21%7.0標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:求余運(yùn)算符的左右兩個數(shù)字都必須是整數(shù),所以選項(xiàng)A和D錯誤,另外,進(jìn)行整型強(qiáng)制轉(zhuǎn)化時正確的表達(dá)式是(int)x,而不是int(x);選項(xiàng)C中不能將x+k的值賦給y*3,所以選項(xiàng)C錯誤。選項(xiàng)B中涉及逗號運(yùn)算符,它的級別最低,因此,選項(xiàng)B表達(dá)式的執(zhí)行過程是先將y+m+5的值賦給n,y值自加一次。33、以下敘述中錯誤的是A、用typedef可以說明一種新的類型名B、typedef的作用是用一個新的標(biāo)識符來代表已存在的類型名C、可以用typedef說明的新類型名來定義變量D、typedef說明的新類型名必須使用大寫字母,否則會出編譯錯誤標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:本題考查typedef的使用方法,typedef對已存在的類型使用一個新的名字,新類型可以使用小寫,所以D選項(xiàng)錯誤。34、計(jì)算機(jī)軟件設(shè)計(jì)過程中,不屬于需求規(guī)格說明的是()。A、運(yùn)行環(huán)境B、算法詳細(xì)設(shè)計(jì)C、軟件的性能D、軟件的主要功能標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:軟件需求規(guī)格說明應(yīng)重點(diǎn)描述軟件的目標(biāo),軟件的功能需求、性能需求和運(yùn)行環(huán)境等。功能需求是軟件需求規(guī)格說明。給出軟件要執(zhí)行什么功能的詳盡描述。性能需求是指定量地描述軟件系統(tǒng)應(yīng)滿足的具體性能需求,即各種軟件功能的速度、響應(yīng)時間、恢復(fù)時間。外部接口指軟件如何與人、系統(tǒng)的硬件及其他硬件和其他軟件進(jìn)行交互。屬性是指與軟件有關(guān)的質(zhì)量屬性,如正確性、可用性、可靠性、安全性、可維護(hù)性等。約束條件包括影響軟件實(shí)現(xiàn)的各種設(shè)計(jì)約束,如使用的標(biāo)準(zhǔn)、編程語言、數(shù)據(jù)庫完整性方針、資源限制、運(yùn)行環(huán)境等方面的要求。35、以下程序的功能是:通過調(diào)用calc函數(shù),把所求得的兩數(shù)之和值放入變量add中,并在主函數(shù)中輸出。#include<stdio.h>voidcalc(floatx,floaty,float*sum){________=x+y;}main(){floatx,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標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:程序的執(zhí)行過程為:從鍵盤讀入兩個float類型數(shù)據(jù),分別賦給x,y,調(diào)用函數(shù)calc將x與y的值與add變量地址傳入函數(shù),地址賦給指針sum,函數(shù)體中將兩數(shù)之和放入指針指向的地址,指針正確的引用形式為(*sum),這表示變量,可以被賦值。所以橫線處填寫*sum,A選項(xiàng)正確。36、有以下程序#include<stdio.h>#include<string.h>main(){charname[9]="c##line";char*str=name;printf("%d,%d,%d,%d\n",sizeof(name),strlen(name),sizeof(str),strlen(str));}程序運(yùn)行后的輸出結(jié)果是A、9,7,4,7B、8,6,9,6C、8,6,3,6D、10,8,5,8標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:由于name是一個長度為9的一維數(shù)組,故在內(nèi)存中占用9個字節(jié)長度,而其中字符串"c##line"只有7個字符,strlen()函數(shù)返回的是該字符串的長度,不包含結(jié)束符,str是一個指針變量,占用4個字節(jié)長度,但是由于name首地址賦給了str指針變量,在調(diào)用strlen()函數(shù)時,返回的是指針對應(yīng)地址單元的字符串的長度7,因此答案為A選項(xiàng)。37、數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)獨(dú)立性是指A、不會因?yàn)橄到y(tǒng)數(shù)據(jù)存儲結(jié)構(gòu)與數(shù)據(jù)邏輯結(jié)構(gòu)的變化而影響應(yīng)用程序B、不會因?yàn)閿?shù)據(jù)的變化而影響應(yīng)用程序C、不會因?yàn)榇鎯Σ呗缘淖兓绊懘鎯Y(jié)構(gòu)D、不會因?yàn)槟承┐鎯Y(jié)構(gòu)的變化而影響其他的存儲結(jié)構(gòu)標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)獨(dú)立性,是指數(shù)據(jù)庫中數(shù)據(jù)獨(dú)立于應(yīng)用程序且不依賴于應(yīng)用程序,即數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲結(jié)構(gòu)與存取方式的改變不會影響應(yīng)用程序。故選A選項(xiàng)。38、軟件生命周期是指A、軟件的定義和開發(fā)階段B、軟件的需求分析、設(shè)計(jì)與實(shí)現(xiàn)階段C、軟件的開發(fā)階段D、軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過程標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:通常把軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用、維護(hù)到停止使用、退役的過程稱為軟件生命周期。選項(xiàng)A、B、C選項(xiàng)均為生命周期的一部分。故選D選項(xiàng)39、下列選項(xiàng)中,不屬于數(shù)據(jù)管理員(DBA)職責(zé)的是()。A、數(shù)據(jù)庫維護(hù)B、數(shù)據(jù)庫設(shè)計(jì)C、改善系統(tǒng)性能,提高系統(tǒng)效率D、數(shù)據(jù)類型轉(zhuǎn)換標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:數(shù)據(jù)庫管理員(DataBaseAdminiswator,DBA)是指對數(shù)據(jù)庫的規(guī)劃、設(shè)計(jì)、維護(hù)、監(jiān)視等的人員,其主要工作如下:數(shù)據(jù)庫設(shè)計(jì)。DBA的主要任務(wù)之一是數(shù)據(jù)庫設(shè)計(jì),具體地說是進(jìn)行數(shù)據(jù)模式的設(shè)計(jì);數(shù)據(jù)庫維護(hù)。DBA必須對數(shù)據(jù)庫中的數(shù)據(jù)安全性、完整性、并發(fā)控制及系統(tǒng)恢復(fù)、數(shù)據(jù)定期轉(zhuǎn)儲等進(jìn)行實(shí)施與維護(hù);改善系統(tǒng)性能,提高系統(tǒng)效率。DBA必須隨時監(jiān)視數(shù)據(jù)庫的運(yùn)行狀態(tài),不斷調(diào)整內(nèi)部結(jié)構(gòu),使系統(tǒng)保持最佳狀態(tài)與效率。二、程序填空題(本題共1題,每題1.0分,共1分。)40、下列給定程序中,函數(shù)fun的功能是:統(tǒng)計(jì)帶頭結(jié)點(diǎn)的單向鏈表中結(jié)點(diǎn)的個數(shù),并存放在形參n所指的存儲單元中。請?jiān)谙聞澗€處填入正確的內(nèi)容并將下劃線刪除,使程序得出正確的結(jié)果。注意:部分源程序給出如下。不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include#include#defineN8typedefstructlist{intdata;structlist*next;}SUIST;SLIST*creatlist(int*a);voidoutlist(SLIST*);voidfun(SLIST*h,int*n){SLIST*p;/**********found***********/【1】=0;p=h->next;while(p){(*n)++;/**********found***********/p=p->【2】;}}main(){SLIST*head;inta[N]={12,87,45,32,91,16,20,48},num;head=creatlist(a);outlist(head);/**********found***********/fun(【3】,&num);prinff(“\nnmumber=%d\n”,num);}SLIST*creatlist(inta[]){SLIST*h,*p,*q;inti;h=p=(sLIST*)malloc(sizeof(SLIST));for(i=0;idata=a[i];p->next=q;p=q;}p->next=0;returnh;}voidoutlist(SLIST*h){SLIST*p;p=h->next;if(p==NULL)printf("ThelistisNULL\n");else{prinff("\nHead");do{prinff("一>%d",p->data);pfp->next;}while(p!=NULL);pdnff("->End\n");}}標(biāo)準(zhǔn)答案:(1)*n(2)next(3)head知識點(diǎn)解析:填空1:n所指的存儲單元存放結(jié)點(diǎn)的個數(shù),對其賦初值為0。填空2:while循環(huán)用于遍歷鏈表,循環(huán)一次,指針指向鏈表的下一個結(jié)點(diǎn)。填空3:調(diào)用函數(shù)的實(shí)際參數(shù)與形參一致,即fun(head,&num);。三、程序修改題(本題共1題,每題1.0分,共1分。)41、下列給定程序中函數(shù)fun的功能是:計(jì)算n!。例如,給n輸入5,則輸出120.000000。請改正程序中的錯誤,使它能得出正確的結(jié)果。注意:不要改動main函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:1#include<stdio.h>2#include<conio.h>3doublefun(intn)4{5doubleresult=1.0;6/*********found*********/7ifn==08return1.0;9while(n>1&&n<170)10/*********found*********/11result=n--;12returnresult;13}14main()15{16intn;17printf(’’InputN:’’);18scanf(’’%d’’,&n);19printf(’’\n\n%d!=%if\n\n’’,n,fun(n));20}標(biāo)準(zhǔn)答案:(1)if(n==0)(2)result*=n--;或{result*=n;n--;}知識點(diǎn)解析:(1)這里是一個簡單的格式錯誤,if條件判斷語句應(yīng)該加括號。(2)根據(jù)階乘的概念,從n開始,n!=n*(n-1)!,直到1,所以應(yīng)該為result*=n--;。四、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)42、請編寫函數(shù)fun,函數(shù)的功能是:將M行N列的二維數(shù)組中的數(shù)據(jù),按行的順序依次放到一維數(shù)組中,一維數(shù)組中數(shù)據(jù)的個數(shù)存放在形參n所指的存儲單元中。例如,二維數(shù)組中的數(shù)據(jù)為:333333334444444455555555則一維數(shù)組中的內(nèi)容應(yīng)是:333333334444444455555555。注意:部分源程序在文件PROG1.C中。請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。1#include<stdio.h>2voidfun(int(*s)[10],int*b,int*n,intmm,intnn)3{45}6main()7{intw[10][10]={(33,33,33,33},{44,44,44,44},{55,55,55,55}},i,j;8inta[100]={0),n=0;voidNONO();9printf(’’Thematrix:\n’’);10for(i=0;i<3;i++)11{for(j=0;j<4;j++)printf(’’%3d’’,w[i][j]);12printf(’’\n’’);13}14fun(w,a,&n,3,4);15printf(’’TheAarray:\n’’);16for(i=0;i<n;i++)printf(’’%3d’’,a[i]);printf(’’\n\n’’);17NONO();18}19voidNONO()20{/*請?jiān)诖撕瘮?shù)內(nèi)打開文件,輸入測試數(shù)據(jù),調(diào)用fun函數(shù),輸出數(shù)據(jù),關(guān)閉文件。*/21FILE*rf,*wf;inti,j,k;22intw[10][10],a[100],n=0,mm,nn;23rf=fopen(’’in.dat’’,’’r’’);24wf=fopen(’’out.dat’’,’’w’’);25for(k=0;k<5;k++){26fscanf(rf,’’%d%d’’,&mm,&nn);27for(i=0;i<mm;i++)28for(j=0;j<nn;j++)fscanf(rf,’’%d’’,&w[i][j]);29fun(w,a,&n,mm,nn);30for(i=0;i<n;i++)fprintf(wf,’’%3d’’,a[i];fprintf{wf,’’\n’’);31}標(biāo)準(zhǔn)答案:1inti,j;2for(i=0;i<mm;i++)3for(j=0;j<nn;j++)4{b[*n]=*(*(s+i)+j);5*n=*n+1;}知識點(diǎn)解析:該程序功能是將M行、N列的二維數(shù)組中的數(shù)據(jù),按行的順序依次放到一維數(shù)組中。本題中首先要清楚數(shù)組元素在通常情況下是按行存放的,而如果要實(shí)現(xiàn)按行存放,其對應(yīng)關(guān)系應(yīng)為:s[0][0],s[0][1],s[0][2],…,s[0][M-1],s[1][0],s[1][1],…,s[N-1][M-1]。國家二級(C語言)機(jī)試模擬試卷第2套一、選擇題(本題共38題,每題1.0分,共38分。)1、下列敘述中正確的是()。A、程序執(zhí)行的效率與數(shù)據(jù)的存儲結(jié)構(gòu)密切相關(guān)B、程序執(zhí)行的效率只取決于程序的控制結(jié)構(gòu)C、程序執(zhí)行的效率只取決于所處理的數(shù)據(jù)量D、以上說法均錯誤標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:程序執(zhí)行的效率與數(shù)據(jù)的存儲結(jié)構(gòu)、數(shù)據(jù)的邏輯結(jié)構(gòu)、程序的控制結(jié)構(gòu)以及所處理的數(shù)據(jù)量等有關(guān)。2、軟件按功能可以分為應(yīng)用軟件、系統(tǒng)軟件和支撐軟件(或工具軟件)。下列各項(xiàng)中屬于應(yīng)用軟件的是()。A、學(xué)生成績管理系統(tǒng)B、C語言編譯程序C、UNIX操作系統(tǒng)D、數(shù)據(jù)庫管理系統(tǒng)標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件、支撐軟件。操作系統(tǒng)、編譯程序、匯編程序、網(wǎng)絡(luò)軟件、數(shù)據(jù)庫管理系統(tǒng)都屬于系統(tǒng)軟件。所以B、C、D選項(xiàng)都是系統(tǒng)軟件,只有A選項(xiàng)是應(yīng)用軟件。3、通常軟件測試實(shí)施的步驟是()。A、集成測試、單元測試、確認(rèn)測試B、單元測試、集成測試、確認(rèn)測試C、確認(rèn)測試、集成測試、單元測試D、單元測試、確認(rèn)測試、集成測試標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:軟件測試過程一般按4個步驟進(jìn)行,即單元測試、集成測試、驗(yàn)收測試(確認(rèn)測試)和系統(tǒng)測試。故答案應(yīng)該選B。4、下列敘述中錯誤的是()。A、系統(tǒng)總體結(jié)構(gòu)圖支持軟件系統(tǒng)的詳細(xì)設(shè)計(jì)B、軟件設(shè)計(jì)是將軟件需求轉(zhuǎn)換為軟件表示的過程C、數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)庫設(shè)計(jì)是軟件設(shè)計(jì)的任務(wù)之一D、PAD圖是軟件詳細(xì)設(shè)計(jì)的表示工具標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:詳細(xì)設(shè)計(jì)的任務(wù)是為軟件結(jié)構(gòu)圖而非總體結(jié)構(gòu)圖中的每一個模塊確定實(shí)現(xiàn)算法和局部數(shù)據(jù)結(jié)構(gòu)、用某種選定的表達(dá)工具表示算法和數(shù)據(jù)結(jié)構(gòu)的細(xì)節(jié),因此A選項(xiàng)描述錯誤。5、對長度為n的線性表作快速排序,在最壞情況下,比較次數(shù)為()。A、nB、n-1C、n(n-1)D、n(n-1)/2標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:快速排序最壞情況就是每次選的基準(zhǔn)數(shù)都和其他數(shù)做過比較,共需比較(n-1)+(n-2)+…+1=n(n-1)/2,故D選項(xiàng)正確。6、某二叉樹共有7個結(jié)點(diǎn),其中葉子結(jié)點(diǎn)只有1個,則該二叉樹的深度為(假設(shè)根結(jié)點(diǎn)在第1層)()。A、3B、4C、6D、7標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:根據(jù)二叉樹的基本性質(zhì):在任意一棵二叉樹中,度為0的葉子結(jié)點(diǎn)總比度為2的結(jié)點(diǎn)多一個,因此本題中度為2的結(jié)點(diǎn)為1-1=0個,據(jù)此可以知道本題中的二叉樹的每一個結(jié)點(diǎn)都有一個分支,所以共有7個結(jié)點(diǎn)、共7層,即深度為7,選擇D。7、下列關(guān)于棧的敘述中,正確的是()。A、棧頂元素最先能被刪除B、棧頂元素最后才能被刪除C、棧底元素永遠(yuǎn)不能被刪除D、棧底元素最先能被刪除標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:棧是“先進(jìn)后出”的數(shù)據(jù)結(jié)構(gòu),因此棧頂元素最后入棧卻最先被刪除,棧底元素最先入棧卻最后被刪除,答案為A。8、在數(shù)據(jù)庫中,數(shù)據(jù)模型包括數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和()。A、數(shù)據(jù)約束B、數(shù)據(jù)類型C、關(guān)系運(yùn)算D、查詢標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:數(shù)據(jù)模型是數(shù)據(jù)特征的抽象,從抽象層次上描述了系統(tǒng)的靜態(tài)特征、動態(tài)行為和約束條件,為數(shù)據(jù)庫系統(tǒng)的信息表示和操作提供一個抽象的框架,即描述了數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作及數(shù)據(jù)約束。故正確答案為A。9、一名教師可講授多門課程,一門課程可由多名教師講授。則實(shí)體教師和課程間的聯(lián)系是()。A、1:1聯(lián)系B、1:m聯(lián)系C、m:1聯(lián)系D、m:n聯(lián)系標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:因?yàn)橐幻處熆芍v授多門課程,而一門課程又能由多名教師講授,所以教師和課程之間是多對多的關(guān)系,可以表示為m:n,選擇D。10、支持子程序調(diào)用的數(shù)據(jù)結(jié)構(gòu)是()。A、棧B、樹C、隊(duì)列D、二叉樹標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:棧支持子程序調(diào)用。棧是一種只能在一端進(jìn)行插入或刪除的線性表。在主程序調(diào)用子函數(shù)時要首先保存主程序當(dāng)前的狀態(tài),然后轉(zhuǎn)去執(zhí)行子程序,最終把子程序的執(zhí)行結(jié)果返回到主程序中調(diào)用子程序的位置,繼續(xù)向下執(zhí)行,這種調(diào)用符合棧的特點(diǎn),所以A選項(xiàng)正確。11、以下正確的說法是()。A、用戶若需要調(diào)用標(biāo)準(zhǔn)庫函數(shù),調(diào)用前必須重新定義B、用戶可以重新定義標(biāo)準(zhǔn)庫函數(shù),但若重新定義,該函數(shù)將失去原有意義C、用戶系統(tǒng)根本不允許用戶重新定義庫函數(shù)D、用戶若需要調(diào)用庫函數(shù),調(diào)用前不必使用預(yù)編譯命令將該函數(shù)所在文件包括到用戶源文件中,系統(tǒng)會自動尋找該文件標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:無論是標(biāo)準(zhǔn)庫函數(shù),還是別的函數(shù),都屬于函數(shù)的范疇,都允許用戶重新定義和使用,使用的時候include命令必須以“#”號開頭,文件名用一對雙引號或一對尖括號括起來,系統(tǒng)提供的頭文件是以.h作為文件后綴。12、設(shè)有定義:inta;floatb;執(zhí)行scanf("%2d%f",&a,&b);語句時,若從鍵盤輸入876543.0,則a和b的值分別是()。A、87和6.0B、876和543.0C、87和543.0D、76和543.0標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:scanf()函數(shù)的一般形式為:scan(格式控制,地址表列)。其中,“格式控制”是用雙引號括起來的字符串,也稱為“轉(zhuǎn)換控制字符串”,它包括兩種信息:①格式說明,由“%”和格式字符組成;②普通字符,即需要原樣輸入的字符?!暗刂繁砹小笔切枰邮蛰斎霐?shù)據(jù)的一系列變量的地址。本題中的“格式控制”是“%2d%f”,“%2d”的意思是要輸入一個整數(shù),但該整數(shù)最寬只占2個字符,而“%2d”是要輸入一個浮點(diǎn)數(shù)。題目要求輸入的是876空格543.0,所以scanf()函數(shù)將87賦給a,將6賦給b。13、若變量均已正確定義并賦值,以下各項(xiàng)中屬于合法的C語言賦值語句是()。A、x=n%2.5;B、x=y==5;C、x+n=i;D、x=5=4+1;標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:%取余操作數(shù)只能是整數(shù),x+n和數(shù)值5不能作為賦值的左值,所以A、C、D選項(xiàng)錯誤。14、有以下程序:#include<stdio.h>main(){inta=3:a+=a-=a*a;printf("%d\n",a);}程序的輸出結(jié)果是()。A、0B、9C、3D、-12標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:等號“=”運(yùn)算符是從右到左,且與“+、-、*”運(yùn)算符比,優(yōu)先級較低。首先計(jì)算a*a,結(jié)果為9,執(zhí)行a=a-9后a的值為-6,然后執(zhí)行a+=a,即a=a+a=-6+(-6),所以值為-12。15、設(shè)有定義:chars[81];inti=0;以下不能將一行(不超過80個字符)帶有空格的字符串正確讀入的語句或語句組是()。A、gets(s);B、while((s[i++]=getchar())!=’\n’);s[i]=’\0’;C、scanf("%s",s);D、do{scanf("%c",&s[i]);}while(s[i++]!=’\n’);s[i]=’\0’;標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:函數(shù)scanf()輸入字符串時默認(rèn)空格為間隔符,所以不能輸入空格,答案選C。16、有以下程序:#include<stdio.h>main(){charc1,c2,c3,c4,c5,c6;scanf("%c%c%c%c",&c1,&c2,&c3,&c4);c5=getchar();c6=getchar();putchar(e1);putchar(c2);printf("%c%c\n",c5,c6);}程序運(yùn)行后,若從鍵盤輸入(從第1列開始):123<回車>45678<回車>則輸出結(jié)果是()。A、1256B、1245C、1278D、1267標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:對于字符型數(shù)據(jù)的輸入而言,從鍵盤上輸入的字符,不管是否可以輸出,都會被讀入字符型變量中。因此,c1=1,c2=2,c3=3,c4=<回車>,c5=4,c6=5,輸出c1,c2,c5,c6的結(jié)果為1245,答案選B。17、有以下程序:#include<stdio.h>main(){inta,b;for(a=0;a<3;a++){scanf("%d",&b);switch(b){default:printf("%d",++b);case1:printf("%d",++b);case2:printf("%d",++b);}}}執(zhí)行時輸入:123<回車>,則輸出結(jié)果是()。A、233456B、234C、223444D、234344標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:這是一個循環(huán)結(jié)構(gòu)嵌套選擇結(jié)構(gòu),按照外層循環(huán),內(nèi)層選擇一步一步處理即可。本題重點(diǎn)注意,switch語句中并沒有出現(xiàn)break語句,所以內(nèi)層循環(huán)是不會跳出的。18、對于if(表達(dá)式)語句,以下敘述中正確的是()。A、“表達(dá)式”的值可以是任意合法的數(shù)值B、變量不能出現(xiàn)在“表達(dá)式”中C、常量不能出現(xiàn)在“表達(dá)式”中D、如果“表達(dá)式”的值不是邏輯值,程序會出編譯錯誤標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:B、C、D選項(xiàng)描述比較片面。19、若有以下程序:#include<stdio.h>main(){intc;C=13|15;printf("%d\n",c);}則程序的輸出結(jié)果是()。A、13B、15C、18D、5標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:本題考查位運(yùn)算中按位或運(yùn)算符,或運(yùn)算只要兩個比較的位中有一個為1,其結(jié)果是1,否則結(jié)果為0。13用二進(jìn)制表示為00001101,15用二進(jìn)制表示為00001111,或運(yùn)算后結(jié)果為00001111,即15,故B選項(xiàng)正確。20、有以下程序:#include<stdio.h>main(){inta=1,b=0;if(--a)b++;elseif(a==0)b+=2;elseb+=3;printf("%d\n",b);}程序運(yùn)行后的輸出結(jié)果是()。A、0B、1C、2D、3標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:“++”和“--”運(yùn)算,當(dāng)以前綴形式出現(xiàn)時,則先進(jìn)行加1或減1操作,再進(jìn)行其他運(yùn)算;當(dāng)以后綴形式出現(xiàn)時,則先進(jìn)行其他運(yùn)算,再進(jìn)行加1或減1操作。a初始定義為1,b為0,執(zhí)行--a,a的值變?yōu)?,即if判斷為假,執(zhí)行b+=2,輸出b的值為2。21、有以下程序:#include<stdio.h>main(){inti,array[6]={1,5,0,4};for(i=0;i<5;i++)printf("%d",array[i]);printf("\n");}程序運(yùn)行后的輸出結(jié)果是()。A、04040B、15040C、15540D、12120標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:本題主要考查一維數(shù)組的輸出。由于數(shù)組中有6個元素,但初始化數(shù)組的時候只給出4個元素,所以array[5]=0,array[6]=0,前面幾位元素依次輸出,不夠位數(shù)補(bǔ)O,所以選項(xiàng)B正確。22、以下敘述中正確的是()。A、數(shù)組說明符的一對方括號中只能使用整型常量,而不能使用表達(dá)式B、一條語句只能定義一個數(shù)組C、每個數(shù)組包含一組具有同一類型的變量,這些變量在內(nèi)存中占有連續(xù)的存儲單元D、在引用數(shù)組元素時,下標(biāo)表達(dá)式可以使用浮點(diǎn)數(shù)標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:同類元素的集合稱為數(shù)組,數(shù)組元素在內(nèi)存中占據(jù)連續(xù)的存儲空間,C選項(xiàng)正確。方括號中可以為整型變量或者常量表達(dá)式,A選項(xiàng)錯誤。在使用逗號運(yùn)算符的情況下,一條語句可以定義多個數(shù)組,B選項(xiàng)錯誤。數(shù)組元素在數(shù)組中的下標(biāo)為整型常量或者變量構(gòu)成的整型表達(dá)式,不能為浮點(diǎn)數(shù),D選項(xiàng)錯誤。答案選C。23、若有定義語句:intm[][3]={1,2,3,4,5,6,7};,則與該語句等價的是()。A、intm[][3]={{1,2,3},{4,5},{6,7}};B、intm[][3]={{1,2},{3,4},{5,6,7}};C、intm[][3]={{1,2,3},{4,5,6},{7}};D、intm[][3]={{1},{2,3,4},{5,6,7}};標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:考查二維數(shù)組的初始化。初始化二維數(shù)組的時候,若給數(shù)組的全部元素均賦初值,此時第一維的元素個數(shù)可以不指定,部分賦值時,最后一行元素不寫完整,此時數(shù)組第一維元素個數(shù)仍然可以不指定。題中為按行給數(shù)組m賦值,最后一行只有部分賦初值,答案選C。24、以下敘述中正確的是()。A、char,c1,c2,*c3,c4[40];是合法的變量定義語句B、數(shù)組下標(biāo)的下限由數(shù)組中第一個非零元素的位置決定C、數(shù)組下標(biāo)的下限由數(shù)組中第一個被賦值元素的位置決定D、數(shù)組下標(biāo)的下限是1標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:A選項(xiàng)正確,charc1,c2,*c3,c4[40]表示定義了兩個字符變量c1、c2,一個字符指針c3,一個字符數(shù)組c4。數(shù)組的下限永遠(yuǎn)為0,選項(xiàng)B、C、D錯,答案選A。25、有以下程序:#include<stdio.h>main(){inta=3;do{printf("%d,",a-=2);}while(!(--a));printf("\n");}程序運(yùn)行后的輸出結(jié)果是()。A、1,-3,B、1,-2,C、3,0,D、1,0,標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:本題重點(diǎn)考查do…while語句,該循環(huán)語句的特點(diǎn)是,先執(zhí)行循環(huán)中的語句,然后再判斷表達(dá)式是否為真,如果為真則繼續(xù)循環(huán);如果為假,則終止循環(huán)。因此,do…while循環(huán)至少要執(zhí)行一次循環(huán)語句。變量a賦初值為3,每循環(huán)一次需執(zhí)行語句a-=2一次,同時循環(huán)條件使變量a自減1,所以第一次循環(huán)后變量a變?yōu)?,第2次循環(huán)后變量a變?yōu)?2。故B選項(xiàng)正確。26、若有定義:chars[30]={0};運(yùn)行時輸入:Thisisastring.<回車>則以下不能正確讀入整個字符串Thisisastring.到字符數(shù)組s中的語句組是()。A、scanf("%s",s);B、gets(s);C、for(i=0;(c=getchar())!=’\n’;i++)s[i]=c;D、i=0;while((c=getchar())!=’\n’)s[i++]=c;標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:考查基本的字符串輸入控制語句。27、有以下程序:#include<stdio.h>main(){intx;for(x=3;x<6;x++)printf((x%2)?("*%d"):("#%d"),x);printf("\n");}程序的輸出結(jié)果是()。A、*3#4*5B、#3*4#5C、*3*4#5D、*3#4#5標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:條件運(yùn)算符組成條件表達(dá)式的一般形式為:表達(dá)式1?表達(dá)式2:表達(dá)式3。其求值規(guī)則為:表達(dá)式1值為真,則以表達(dá)式2的值作為條件表達(dá)式的值,否則以表達(dá)式3的值作為整個條件表達(dá)式的值。本題中語句printf((x%2)?("*%d"):("#%d",x);含義為變量x對2求余,如果結(jié)果為真,則按照“*%d”出,否則按照“#%d”出。故A選項(xiàng)正確。28、有以下程序:#include<stdio.h>voidfun(inta,intb){intt;t=a;a=b;b=t;}main(){intc[10]={1,2,3,4,5,6,7,8,9,0},i;for(i=0;i<10;i+=2)fun(c[i],c[i+1]);for(i=0;i<10;i++)printf("%d",c[i]);printf("\n");}程序的運(yùn)行結(jié)果是()。A、1234567890B、2143658709C、0987654321D、0123456789標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:函數(shù)fun()屬于值傳參,形參的變化不會影響實(shí)參,所以函數(shù)調(diào)用結(jié)束后,數(shù)組c沒有任何變化,輸出結(jié)果為選項(xiàng)A。29、有以下程序:#include<stdio.h>intfun(intn){inta;if(n==1)return1;a=n+fun(n-1);return(a);}main(){printf("%d\n",fun(5));}程序的輸出結(jié)果是()。A、10B、14C、15D、9標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:考查遞歸函數(shù)。函數(shù)fun()的功能是計(jì)算1到n之間的數(shù)字之和,所以計(jì)算結(jié)果為15,答案選C。30、以下選項(xiàng)中,沒有編譯錯誤的是()。A、charstr3[]={’d’,’e’,’b’,’u’,’g’,’\0’};B、charstr1[5]="pass",str2[6];str2=str1;C、charname[10];name="china";D、charstr4[];str4="helloworld";標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:B選項(xiàng)中,不能直接將字符數(shù)組名直接賦值給另一個字符數(shù)組名。C選項(xiàng)賦值錯誤,不能將一個字符串常量賦值給一個字符指針。D選項(xiàng)定義str4時需要定義其長度。故A選項(xiàng)正確。31、有以下程序:#include<stdio.h>intadd(inta,intb){return(a+b);}main(){intk,(*f)(),a=5,b=10;f=add;}則以下函數(shù)調(diào)用語句中錯誤的是()。A、k=*f(a,b);B、k=add(a,b);C、k=(*f)(a,b);D、k=f(a,b);標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:int(*f)()為一個函數(shù)指針變量,返回值為整型,f為一個指針變量,指向一個已經(jīng)定義的函數(shù),在調(diào)用該函數(shù)的時候需要把參數(shù)寫在相應(yīng)的小括號內(nèi),即(*指針名)(參數(shù)或參數(shù)列表),所以選項(xiàng)A調(diào)用錯誤,答案選A。32、以下關(guān)于C語言函數(shù)參數(shù)傳遞方式的敘述中正確的是()。A、數(shù)據(jù)只能從實(shí)參單向傳遞給形參B、數(shù)據(jù)可以在實(shí)參和形參之間雙向傳遞C、數(shù)據(jù)只能從形參單向傳遞給實(shí)參D、C語言的函數(shù)參數(shù)既可以從實(shí)參單向傳遞給形參,也可以在實(shí)參和形參之間雙向傳遞,可視情況選擇使用標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:數(shù)據(jù)只能由實(shí)參單向傳遞給形參稱為“值傳遞”,而不能由形參傳回來給實(shí)參,A選項(xiàng)正確;數(shù)組名、指針等作參數(shù),實(shí)參傳遞給形參地是地址值,這樣形參和實(shí)參就指向同一段內(nèi)存單元,在函數(shù)體內(nèi)對形參數(shù)據(jù)的改變也將影響到實(shí)參。實(shí)參和形參之間不可雙向傳遞,BD選項(xiàng)錯誤。數(shù)據(jù)不能從形參傳遞給實(shí)參,C選項(xiàng)錯誤。33、設(shè)已有定義:floatx;則以下對指針變量p進(jìn)行定義且賦初值的語句中正確的是()。A、float*p=&;x;B、int*p=(float)x;C、floatp=&;x;D、float*p=1024:標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:考查指針變量的初始化。只能把對應(yīng)類型的變量的地址賦值給指針,選項(xiàng)B錯誤;定義指針時要加上“*”標(biāo)明該變量為一個指針變量,選項(xiàng)C錯誤;不能把一個整數(shù)直接賦值給指針變量,選項(xiàng)D錯誤;所以答案選A。34、以下敘述中正確的是()。A、在C語言中,預(yù)處理命令行都以#開頭B、預(yù)處理命令行必須位于C源程序的起始位置C、#include<stdio.h>必須放在C程序的開頭D、C語言的預(yù)處理不能實(shí)現(xiàn)宏定義和條件編譯的功能標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:C語言中,凡是以“#”開頭的都被稱為編譯預(yù)處理行,選項(xiàng)A正確;預(yù)處理行可以放在C源程序的任何位置,習(xí)慣放在起始位置,選項(xiàng)B錯誤;語句“#include<stdio.h>”必須放在使用文件stdio.h中相關(guān)方法的語句之前,但是不一定非要放在C程序開頭,選項(xiàng)C錯誤;預(yù)處理包括宏定義、文件包含和條件編譯等,選項(xiàng)D錯誤。答案選A。35、有以下程序:#include<stdio.h>intfun1(inta,intb){returna+b;}intfun2(inta,intb){returna-b;}intfun(int(*t)(int,int),intx,inty){return((*t)(x,y));}main(){intx;X=fun(fun1,9,3);x+=fun(fun2,8,3);printf("%d\n",x);}程序運(yùn)行后的輸出結(jié)果是()。A、24B、23C、17D、22標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:本題主要考查函數(shù)作為形參時的使用,由x=fun(fun1,9,3);可得到x=9+3=12,而后直接傳入函數(shù)fun2,x=x+8-3=12+5=17。故C選項(xiàng)正確。36、有以下程序:#include<stdio.h>voidsp(int*a){intb=2;a=&b;*a=*a*2;printf("%d,",*a);}main(){intk=3,*p=&k;sp(p);pfinff("%d,%d\n",k,*p);}則程序的輸出結(jié)果是()。A、4,3,3B、4,3,4C、6,3,6D、6,6,6標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:首先在主函數(shù)中給整型變量k賦值為3,將變量k的地址賦給指針變量p,調(diào)用sp函數(shù),將實(shí)參p的值傳給形參a,在sp函數(shù)中,指針變量a又獲得變量b的地址,通過運(yùn)算后,輸出a的值為4,返回主函數(shù),輸出k的值和p的值為3和3。故A選項(xiàng)正確。37、有以下程序:#include<stdio.h>voidmy(){charch;ch=getchar();if(ch!=’c’)my();putchar(ch);}main(){my();}執(zhí)行時,輸入abc<回車>,則輸出結(jié)果是()。A、abcB、ababcC、bcaD、cba標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:my()遞歸,直到輸入了c開始返回。遞歸使用的是棧的思想,因此最后輸入進(jìn)去的最先返回并輸出。所以結(jié)果是cba。38、有以下程序:#include<stdio.h>main(){unsignedchara=8,c;c=a>>3:printf("%d\n",c);}程序運(yùn)行后的輸出結(jié)果是()。A、32B、16C、1D、0標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:字符常量與其ASCII碼值一一對應(yīng),在計(jì)算的時候,可以使用該字符的ASCII碼參與運(yùn)算,輸出時會根據(jù)格式控制符輸出對應(yīng)的字符或者ASCII碼。右移運(yùn)算符“>>”的運(yùn)算規(guī)則是把左邊運(yùn)算數(shù)的各二進(jìn)制位全部右移n位,n取決于“>>”右邊的數(shù)值。字符a的ASCII碼值為8,對應(yīng)二進(jìn)制為1000,所以a>>3=1,輸出的字符c的ASCII碼值為1,答案選C。二、程序填空題(本題共1題,每題1.0分,共1分。)39、下列給定程序中,函數(shù)fun的功能是:有N×N矩陣,以主對角線為對稱線,對稱元素相加并將結(jié)果存放在左下三角元素中,右上三角元素置為0。例如,若N=3,有下列矩陣:123456789計(jì)算后結(jié)果為10065010149請?jiān)诔绦虻南庐嬀€處填入正確的內(nèi)容并把下畫線刪除。使程序得出正確的結(jié)果。注意:不得增行或刪行,也不得改程序的結(jié)構(gòu)!試題程序:#include<stdio.h>#defineN4標(biāo)準(zhǔn)答案:(1)[N](2)t[i][j](3)t[j][i]知識點(diǎn)解析:本題考查:有參函數(shù)定義,需要根據(jù)題目要求和給定程序確定函數(shù)參數(shù)。N×N矩陣中如何表示左下角和右上角元素。填空1:主函數(shù)中調(diào)用函數(shù)的參數(shù)為二維數(shù)組,所以此處形參應(yīng)定義為指針數(shù)組。填空2:根據(jù)題意可知,對稱元素相加的和存放在左下三角元素中,那么應(yīng)填入的是t[i][j]。填空3:右上三角元素置0,應(yīng)填入t[j][i]。三、程序修改題(本題共1題,每題1.0分,共1分。)40、在主函數(shù)中用鍵盤輸入若干個數(shù)放入數(shù)組中,用0結(jié)束輸入并放在最后一個元素中。下列給定程序中,函數(shù)fun的功能是:計(jì)算數(shù)組元素中所有值為正數(shù)的平均值(不包括0)。例如,數(shù)組中元素中的值依次為:39,-47,21,2,-8,15,0,則程序的運(yùn)行結(jié)果為19.250000。請改正程序中的錯誤,使它能得出正確的結(jié)果。注意:不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdio.h>doublefun(intx[]){/******found******/intsum=0標(biāo)準(zhǔn)答案:(1)doublesum=0.0;(2)sum/=c;知識點(diǎn)解析:本題考查:變量的數(shù)據(jù)類型,區(qū)別int整型和double雙精度型;除法運(yùn)算符“/”。(1)變量定義錯誤,變量sum存放所有數(shù)據(jù)的和,應(yīng)定義為double型。(2)C語言中的除法運(yùn)算符是“/”。四、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)41、假定輸入的字符串中只包含字母和*號。請編寫函數(shù)fun,其功能是:除了尾部的*號之外,將字符中的其他*號全部刪除。形參p已指向字符串中最后的一個字母。在編寫函數(shù)時,不得使用C語言提供的字符串函數(shù)。例如,字符串中的內(nèi)容為****A*BC*DEF*G*******,刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是ABCDEFG*******。注意:請勿改動主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號中填入你編寫的若干語句。試題程序:#include<stdio.h>void]]fun(char*a,cha標(biāo)準(zhǔn)答案:voidfun(char*a,char*p){char*t=a;for(;t<=p;t++)if(*t!=’*’)*(a++)=*t;for(;*t!=’\0’;t++)*(a++)=*t;*a=’\0’;/*在字符串最后加上字符串結(jié)束標(biāo)識*/}知識點(diǎn)解析:本題考查:刪除字符串中非尾部*號,刪除的主要思想就是把不刪除的字符保留起來。本題用兩個循環(huán)語句來實(shí)現(xiàn)。第1個循環(huán)的作用是將指針p所指字母以前所有非*號的字符保留下來,即刪除指針p以前所有的木號。第2個循環(huán)的作用是將指針p以后的所有*號保留下來。最后在新串的結(jié)尾加上結(jié)束符。國家二級(C語言)機(jī)試模擬試卷第3套一、選擇題(本題共40題,每題1.0分,共40分。)1、若有定義語句:doublex[5]={1.0,2,3,4,5.0),*p=x,則錯誤引用x數(shù)組元素的是()。A、*pB、x[5]C、*(p+1)D、*x標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:引用一維數(shù)組元素有多種方式。直接引用的表達(dá)式為:數(shù)組名[下標(biāo)]。數(shù)組大小為n時,下標(biāo)的取值范圍為0~(n—1),所以本題中x的下標(biāo)為0~4,x[5]溢出,B項(xiàng)錯誤。此外還可以通過指針引用一維數(shù)組元素。指針p指向該數(shù)組,所以*p表示x[0],A項(xiàng)正確;指針p+1指向數(shù)組x的第二個元素的地址,*(p+1)表示引用x的第二個元素,C項(xiàng)正確;x為x數(shù)組元素的首地址,*x表示對x[0]的引用,D項(xiàng)正確。2、設(shè)有兩行定義語句:intscanf;floatcase;則以下敘述正確的是()。A、第2行語句不合法B、兩行定義語句都合法C、第1行語句不合法D、兩行定義語句都不合法標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:本題考查用戶標(biāo)識符,用戶自己定義的標(biāo)識符不能與關(guān)鍵字相同,并且盡量避免和預(yù)定義標(biāo)識符相同。本題中scanf為預(yù)定義標(biāo)識符,可以作為用戶標(biāo)識符;case為關(guān)鍵字,不能作為用戶標(biāo)識符,故而答案選A3、若有定義:charc;intd;,程序運(yùn)行時輸入:c=1d=2<回車>,能把字符1輸入給變量c、把整數(shù)2輸入給變量d的輸入語句是()。A、scanf("c=%cd=%d",&c,&d);B、scanf("c=%cd=%d",&c,&d);C、scanf("c=%dd=%d",&c,&d);D、scanf("c=%dd=%d",&c,&d);標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:在sanf()函數(shù)中格式字符串的形式必須與地址格式保持一致,所以B、D選項(xiàng)不正確。C選項(xiàng)中c=%d是以數(shù)值格式存入c變量。故只有A選項(xiàng)正確。4、有以下程序:#include<stdio.h>intk=5:voidf(int*s){s=&k;}main(){intm=3,*p=&m;f(p);printf("%d%d\n",m,*p);}程序的運(yùn)行結(jié)果是()。A、33B、55C、35D、53標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:考查函數(shù)傳參。C語言中,數(shù)據(jù)只能從實(shí)參單向傳遞給形參,指針作為函數(shù)參數(shù)時,形參仍然作為實(shí)參的副本被賦值,形參指針變量的指向改變不能影響實(shí)參指針變量的指向,結(jié)果不變,答案選A。5、有以下程序:#includemain()voidfun(char*c,intd){chara=’F’,b=’f’;{*c=*c+1;fun(&b,a);d+=1;printf("%c,%c\n",a,b);}printf("%c,%c",*c,d);}程序的輸出結(jié)果為()。A、g,GF,gB、g,F(xiàn)F,gC、GfF,GD、f,gf,g標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:此題考查的是函數(shù)參數(shù)的傳遞。main函數(shù)中首先調(diào)用fun函數(shù),fun函數(shù)的功能是使字符c的ASCII碼值加1并輸出,使d加1并輸出對應(yīng)的字符;fun(&b,a)輸出“g,G”,但是由于fun函數(shù)的第一個參數(shù)進(jìn)行的是地址傳遞,而第二個參數(shù)進(jìn)行的是值傳遞,所以main函數(shù)中的printf函數(shù)輸出“F,g”。6、下列數(shù)據(jù)結(jié)構(gòu)中,能用二分法進(jìn)行查找的是()。A、無序線性表B、線性鏈表C、二叉鏈表D、順序存儲的有序表標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:二分法查找只適用于順序存儲的有序表,表中的元素按值從小到大排列。7、對下列二叉樹進(jìn)行前序遍歷的結(jié)果為()。A、ABCDEFGHB、ABDGEHCFC、GDBEHACFD、GDHEBFCA標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:遍歷就是不重復(fù)地訪問二叉樹的所有結(jié)點(diǎn)。二叉樹遍歷的方法有3種:前序遍歷、中序遍歷和后序遍歷。記住3種遍歷的順序:①前序,訪問根→按前序遍歷左子樹→按前序遍歷右子樹;②中序,按中序遍歷左子樹→訪問根→按中序遍歷右子樹;③后序,按后序遍歷左子樹→按后序遍歷右子樹→訪問根。所以對該二叉樹的中序遍歷結(jié)果為ABDGEHCF。8、對下列二叉樹進(jìn)行前序遍歷的結(jié)果為()。A、ABCDEFGHB、ABDGEHCFC、GDBEHACFD、GDHEBFCA標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:遍歷就是不重復(fù)地訪問二叉樹的所有結(jié)點(diǎn)。二叉樹遍歷的方法有3種:前序遍歷、中序遍歷和后序遍歷。記住3種遍歷的順序:①前序,訪問根一按前序遍歷左子樹一按前序遍歷右子樹;②中序,按中序遍歷左子樹一訪問根一按中序遍歷右子樹;③后序,按后序遍歷左子樹一按后序遍歷右子樹一訪問根。所以對該二叉樹的中序遍歷結(jié)果為ABDGEHCF。9、可在C程序中用作用戶標(biāo)識符的一組標(biāo)識符是()。A、voiddefineWORDB、as_b3_123IfC、For-abccaseD、2cDOSIG標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:C語言規(guī)定,標(biāo)識符是由字母、數(shù)字或下劃線組成,并且它的第一個字符必須是字母或下劃線,關(guān)鍵字不能用作用戶標(biāo)識符。10、有以下程序:#include<stdio.h>main(){charc1,c2;c1=’A’+’8’-’4’;c2=’A’+’8’-’5’;printf("%c,%d\n",c1,c2);}已知字母A的ASCII碼為65,程序運(yùn)行后的輸出結(jié)果是()。A、E,68B、D,69C、E,DD、輸出無定值標(biāo)準(zhǔn)答案:A知識點(diǎn)解析:本題目中字符變量c1是字符’A’的ASCII碼加上4,即69所對應(yīng)的字符’E’。字符變量c2是字符’A’的ASCII碼加上3,即68所對應(yīng)的字符’D’。但是打印輸出時,c1以%c的格式輸出,所以是E,c2以%d的格式輸出,所以是68。11、有以下程序:#include<stdio.h>intadd(inta,intb){return(a+b);}main(){intk,(*f)(),a=5,b=10;f=add;}則以下函數(shù)調(diào)用語句錯誤的是()。A、k=f(a,b);B、k=add(a,b);C、k=(*f)(a,b);D、k=*f(a,b);標(biāo)準(zhǔn)答案:D知識點(diǎn)解析:D選項(xiàng)中*f(a,b)表示調(diào)用后返回一個指向整型數(shù)據(jù)的地址指針,即該函數(shù)的返同值為指針類型,所以不能將其賦值給整形變量k。12、有以下程序:#include<stdio.h>main(){chars[]={"012xy"};inti,n=0;for(i=0;s[i]!=0;i++)if(s[i]>=’a’&&s[i]<=’z’)n++;printf("%d\n",n);}程序運(yùn)行后的輸出結(jié)果是()。A、0B、2C、3D、5標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:本題main函數(shù)的作用就是判斷字符串s中小寫字母的個數(shù),顯然結(jié)果為2。13、以下函數(shù)按每行8個輸出數(shù)組中的數(shù)據(jù):voidfun(int*w,intn){inti;for(i=0;i<n;i++){________printf("%d",w[i]);}printf("\n");}下畫線處應(yīng)填入的語句是()。A、if(i/8==0)printf("\n");B、if(i/8==0)continue;C、if(i%8==0)printf("\n");D、if(i%8==0)continue;標(biāo)準(zhǔn)答案:C知識點(diǎn)解析:每行輸出8個數(shù)組數(shù)據(jù),即輸出8個后就輸出一個換行,所以,應(yīng)該對8取余,當(dāng)結(jié)果為0時輸出換行符,即填入語句“if(i%8==0)printf("\n");”。14、在下列模式中,能夠給出數(shù)據(jù)庫物理存儲結(jié)構(gòu)與物理存取方法的是()。A、外模式B、內(nèi)模式C、概念模式D、邏輯模式標(biāo)準(zhǔn)答案:B知識點(diǎn)解析:數(shù)據(jù)庫系統(tǒng)的

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論