版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷40(共9套)(共342題)國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷第1套一、選擇題(本題共39題,每題1.0分,共39分。)1、需求分析階段的任務(wù)是()。A、軟件開(kāi)發(fā)方法B、軟件開(kāi)發(fā)工具C、軟件開(kāi)發(fā)費(fèi)用D、軟件系統(tǒng)功能標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:需求分析是軟件定義時(shí)期的最后一個(gè)階段,它的基本任務(wù)就是詳細(xì)調(diào)查現(xiàn)實(shí)世界要處理的對(duì)象,充分了解原系統(tǒng)的工作概況,明確用戶的各種需求,然后在這些基礎(chǔ)上確定新系統(tǒng)的功能。2、在數(shù)據(jù)庫(kù)設(shè)計(jì)中,將E-R圖轉(zhuǎn)換成關(guān)系數(shù)據(jù)模型的過(guò)程屬于()。A、需求分析階段B、概念設(shè)計(jì)階段C、邏輯設(shè)計(jì)階段D、物理設(shè)計(jì)階段標(biāo)準(zhǔn)答案:C知識(shí)點(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ù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)所要完成的任務(wù)。它包括從E-R圖向關(guān)系模式轉(zhuǎn)換和邏輯模式規(guī)范化及調(diào)整、實(shí)現(xiàn)。3、數(shù)據(jù)管理技術(shù)發(fā)展的三個(gè)階段中,()沒(méi)有專門(mén)的軟件對(duì)數(shù)據(jù)進(jìn)行管理。I.人工管理階段II.文件系統(tǒng)階段III.?dāng)?shù)據(jù)庫(kù)階段A、僅IB、僅IIIC、I和IID、II和III標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:數(shù)據(jù)管理技術(shù)發(fā)展的三個(gè)階段中,只有人工管理階段,沒(méi)有操作系統(tǒng),沒(méi)有管理數(shù)據(jù)的軟件,數(shù)據(jù)處理方式是批處理。在文件系統(tǒng)階段,操作系統(tǒng)中已經(jīng)有了專門(mén)數(shù)據(jù)管理軟件,一般稱為文件系統(tǒng)。在數(shù)據(jù)庫(kù)系統(tǒng)階段,出現(xiàn)了統(tǒng)一管理數(shù)據(jù)的專門(mén)軟件系統(tǒng).即數(shù)據(jù)庫(kù)管理系統(tǒng)。4、以下敘述中錯(cuò)誤的是()。A、C程序經(jīng)過(guò)編譯、鏈接步驟之后才能形成一個(gè)真正可執(zhí)行的二進(jìn)制機(jī)器指令文件B、C語(yǔ)言中的每條可執(zhí)行語(yǔ)句和非執(zhí)行語(yǔ)句最終都將被轉(zhuǎn)換成二進(jìn)制的機(jī)器指令C、用C語(yǔ)言編寫(xiě)的程序稱為源程序,它以ASCII代碼形式存放在一個(gè)文本文件中D、C語(yǔ)言源程序經(jīng)編譯后生成后綴為.obj的目標(biāo)程序標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:C語(yǔ)言程序編譯時(shí)將每條可執(zhí)行語(yǔ)句轉(zhuǎn)換為二進(jìn)制的機(jī)器指令,但非執(zhí)行語(yǔ)句(如注釋語(yǔ)句)不被編譯。所以選項(xiàng)B錯(cuò)誤。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知識(shí)點(diǎn)解析:本題考查字符串比較函數(shù)strcmp(),調(diào)用形式:strcmp(str+1,str+2),其中str+1、str+2分別是字符串存儲(chǔ)區(qū)的首地址,函數(shù)功能:比較字符串str1和str2,當(dāng)str1<str2時(shí),返回值為負(fù)數(shù);當(dāng)str1=str2時(shí),返回0;當(dāng)str1>str2,返回值為正數(shù)。注意:不能使用關(guān)系運(yùn)算符比較兩個(gè)字符串的大?。?、以下敘述中正確的是()。A、C程序中注釋部分可以出現(xiàn)在程序中任意合適的地方B、C程序的書(shū)寫(xiě)格式是固定的,每行只能寫(xiě)一條語(yǔ)句C、構(gòu)成C程序的基本單位是函數(shù),所有函數(shù)名都可以由用戶命名D、在對(duì)C語(yǔ)言程序進(jìn)行編譯時(shí),可以發(fā)現(xiàn)注釋行中的拼寫(xiě)錯(cuò)誤標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查的是C語(yǔ)言程序設(shè)計(jì)的初步知識(shí)。選項(xiàng)A),程序中/*……*/表示注釋部分,注釋只是給人看的,對(duì)程序的編譯和運(yùn)行不起作用,可以在程序中的任何位置;選項(xiàng)B),C語(yǔ)言的書(shū)寫(xiě)格式自由,一行可以寫(xiě)多條語(yǔ)句,一條語(yǔ)句也可以寫(xiě)在不同行上;選項(xiàng)C),一個(gè)C程序中必須有且只能有一個(gè)由“main”命名的主函數(shù),其他函數(shù)由用戶自行命名;選項(xiàng)D),程序的注釋僅僅是提供閱讀之用,并不參與程序的編譯,所以編譯也就不會(huì)發(fā)現(xiàn)注釋行中的錯(cuò)誤。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知識(shí)點(diǎn)解析:malloc函數(shù)動(dòng)態(tài)分配一個(gè)整型的內(nèi)存空間,然后把函數(shù)返回的地址用(int*)強(qiáng)制類型轉(zhuǎn)換為整型指針,再把它賦給a,b,c,即讓指針變量a,b,c都指向剛申請(qǐng)的內(nèi)存空間。所以只有最后一個(gè)賦值語(yǔ)句*c=3的值保留在了該空間內(nèi),因?yàn)閍、b、c三個(gè)指針堂量均指向該空間,所以打印該空間內(nèi)的數(shù)值為3。8、對(duì)關(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知識(shí)點(diǎn)解析:關(guān)系的并運(yùn)算是指由結(jié)構(gòu)相同的兩個(gè)關(guān)系合并,形成一個(gè)新的關(guān)系,新關(guān)系中包含兩個(gè)關(guān)系中的所有元組。9、字符數(shù)組a和b中存儲(chǔ)了兩個(gè)字符串,判斷字符串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知識(shí)點(diǎn)解析:考查字符串比較函數(shù)strcmp的功能。10、下列說(shuō)法正確的是()。A、auto和register將聲明的對(duì)象說(shuō)明為自動(dòng)存儲(chǔ)類對(duì)象,這些對(duì)象可用在函數(shù)中或函數(shù)外B、將變量其定義為static類型,則其初值默認(rèn)為隨機(jī)值C、typedef說(shuō)明符并不會(huì)為對(duì)象預(yù)留存留空間D、如果一個(gè)對(duì)象被聲明為register,則對(duì)它應(yīng)用一元運(yùn)算符&,意在取得其存儲(chǔ)的地址標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:①這種聲明也具有定義的作用,并將預(yù)留存儲(chǔ)空間。register說(shuō)明的聲明等價(jià)于auto說(shuō)明的聲明,所不同的是,register暗示了聲明的對(duì)象將被頻繁地訪問(wèn),將盡可能存儲(chǔ)在寄存器中。如果一個(gè)對(duì)象被聲明為register,則將不能對(duì)它應(yīng)用一元運(yùn)算符&,聲明為register但實(shí)際按照auto類型處理的對(duì)象的地址進(jìn)行計(jì)算是非法的。②static將聲明的對(duì)象說(shuō)明為靜態(tài)存儲(chǔ)類。這種對(duì)象可以用在函數(shù)內(nèi)部或者函數(shù)外部。在函數(shù)內(nèi)部,該說(shuō)明符將引起存儲(chǔ)空間的分配,具有定義的作用。在函數(shù)外部,該說(shuō)明符將引起聲明對(duì)象為具有內(nèi)部鏈接。另外,若將其定義為static類型,則其初值默認(rèn)為0。⑨函數(shù)內(nèi)部的extem聲明表明,被聲明的對(duì)象的存儲(chǔ)空間定義在其他地方。在函數(shù)外部,說(shuō)明聲明的對(duì)象具有外部鏈接。④typedef說(shuō)明符并不會(huì)為對(duì)象預(yù)留存留空間。11、以下選項(xiàng)中能表示合法常量的是()。A、1,200B、1.5E2.0C、‘\’D、“\007”標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:A選項(xiàng)中整型常量應(yīng)表示為1200,不能包含“,”。B選項(xiàng)中E后面的指數(shù)必須為整數(shù)。C選項(xiàng)中轉(zhuǎn)義字符以“\”開(kāi)始,若要表示字符“\”,應(yīng)寫(xiě)為“\\”。12、對(duì)于if(表達(dá)式)語(yǔ)句,以下敘述中正確的是()。A、“表達(dá)式”的值可以是任意合法的數(shù)值B、變量不能出現(xiàn)在“表達(dá)式”中C、常量不能出現(xiàn)在“表達(dá)式”中D、如果“表達(dá)式”的值不是邏輯值,程序會(huì)出編譯錯(cuò)誤標(biāo)準(zhǔn)答案:A知識(shí)點(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知識(shí)點(diǎn)解析:fun函數(shù)中的變量x為靜態(tài)的局部變量,占用固定的內(nèi)存單元,下一次調(diào)用時(shí)仍可以保留上次調(diào)用時(shí)的值。也就是說(shuō),如果多次調(diào)用fun函數(shù),x的定義只在第一次調(diào)用時(shí)有效,從第二次調(diào)用開(kāi)始,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、以下敘述中錯(cuò)誤的是()。A、C語(yǔ)言中的每條可執(zhí)行語(yǔ)句和非執(zhí)行語(yǔ)句最終都將被轉(zhuǎn)換成二進(jìn)制的機(jī)器指令B、C程序經(jīng)過(guò)編譯、鏈接步驟之后才能形成一個(gè)真正可執(zhí)行的二進(jìn)制機(jī)器指令文件C、用C語(yǔ)言編寫(xiě)的程序稱為源程序,它以ASCII代碼形式存放在一個(gè)文本文件中D、C語(yǔ)言源程序經(jīng)編譯后生成后綴為.obj的目標(biāo)程序標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語(yǔ)言程序編譯時(shí)將每條可執(zhí)行語(yǔ)句轉(zhuǎn)換為二進(jìn)制的機(jī)器指令,但非執(zhí)行語(yǔ)句(如注釋語(yǔ)句)不被編譯。所以選項(xiàng)A)錯(cuò)誤。15、交換兩個(gè)變量的值,不允許用臨時(shí)變量,應(yīng)該使用下列()位運(yùn)算符。A、&B、^c)||C、~標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:按邏輯位運(yùn)算的特定作用主要有3點(diǎn):①用按位與運(yùn)算將特定位清0或保留特定位;②用按位或運(yùn)算將特定的位置設(shè)置為1;③用按位異或運(yùn)算將某個(gè)變量的特定位翻轉(zhuǎn)或交換兩個(gè)變量的值。16、設(shè)有某函數(shù)的說(shuō)明為int*func(inta[10],intn);則下列敘述中,正確的是()。A、說(shuō)明中的a[10]寫(xiě)成a[]或*a效果完全一樣B、形參a對(duì)應(yīng)的實(shí)參只能是數(shù)組名C、func的函數(shù)體中不能對(duì)a進(jìn)行移動(dòng)指針(如a++)的操作D、只有指向10個(gè)整數(shù)內(nèi)存單元的指針,才能作為實(shí)參傳給a標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:考查數(shù)組名作為函數(shù)參數(shù)。數(shù)組名作為函數(shù)參數(shù)時(shí),只傳遞數(shù)組的首地址而不檢查形參數(shù)組的長(zhǎng)度,所以形參表中可以不給出形參數(shù)組的長(zhǎng)度,形參數(shù)組和實(shí)參數(shù)組長(zhǎng)度也可以不同,選項(xiàng)D)錯(cuò);a[10]、a[]、*a做形參都是接受實(shí)參數(shù)組首地址,效果一樣,A)正確。傳遞給形參的實(shí)參可以是數(shù)組名,還可以是指向該數(shù)組的指針變量,選項(xiàng)B)錯(cuò)。數(shù)組名可以看做一個(gè)指針常量,對(duì)其進(jìn)行自加自減運(yùn)算相當(dāng)于指針變量的自加自減,選項(xiàng)C)錯(cuò)。答案選A)。17、與數(shù)學(xué)表達(dá)式x≥y≥z對(duì)應(yīng)的C語(yǔ)言表達(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知識(shí)點(diǎn)解析:本題考查關(guān)系表達(dá)式和邏輯表達(dá)式。y大于等于x同時(shí)y小于等于z,因此x<=y和y<=z是邏輯與的關(guān)系。因此D選項(xiàng)正確。18、以下選項(xiàng)中關(guān)于C語(yǔ)言常量的敘述錯(cuò)誤的是()。A、經(jīng)常被使用的變量可以定義成常量B、常量分為整型常量、實(shí)型常量、字符常量和字符串常量C、常量可分為數(shù)值型常量和非數(shù)值型常量D、所謂常量,是指在程序運(yùn)行過(guò)程中,其值不能被改變的量標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語(yǔ)言中,常量是指在程序運(yùn)行過(guò)程中其值不能被改變的量,變量是指運(yùn)行過(guò)程中其值可以改變的量,二者不能混淆,所以A選項(xiàng)錯(cuò)誤。19、若已定義的函數(shù)有返回值,則以下關(guān)于該函數(shù)調(diào)用的敘述中錯(cuò)誤的是()。A、函數(shù)調(diào)用可以作為獨(dú)立的語(yǔ)句存在B、函數(shù)調(diào)用可以作為一個(gè)函數(shù)的實(shí)參C、函數(shù)調(diào)用可以出現(xiàn)在表達(dá)式中D、函數(shù)調(diào)用可以作為一個(gè)函數(shù)的形參標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查函數(shù)調(diào)用的有關(guān)知識(shí)點(diǎn)。函數(shù)調(diào)用①可以出現(xiàn)在表達(dá)式中;②可以作為獨(dú)立的語(yǔ)句存在;③可以作為一個(gè)函數(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知識(shí)點(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){……}則下面對(duì)函數(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知識(shí)點(diǎn)解析:函數(shù)的參數(shù)可以是指針類型。它的作用是將一個(gè)變量的地址傳送到另一個(gè)函數(shù)中。函數(shù)名代表函數(shù)的入口地址,指向函數(shù)的指針應(yīng)該定義為void(*pf)()。如果定義為void*pf(),則表示函數(shù)pf返回值為一個(gè)基類型為void的指針。因此D選項(xiàng)正確。22、設(shè)有條件表達(dá)式:(EXP)?i++;j--,則以下表達(dá)式中(EXP)完全等價(jià)的是()。A、(EXP==0)B、(EXP!=0)C、(EXP==1)D、(EXP!=1)標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:條件表達(dá)式的形式為:“表達(dá)式17表達(dá)式2:表達(dá)式3”。其含義為:當(dāng)“表達(dá)式1”的值為非零時(shí),求出“表達(dá)式2”的值,此時(shí)“表達(dá)式2”的值就是整個(gè)條件表達(dá)式的值:當(dāng)“表達(dá)式1”的值為零時(shí),求出“表達(dá)式3”的值,此時(shí)“表達(dá)式3”的值就是整個(gè)條件表達(dá)式的值。對(duì)于本題來(lái)說(shuō),當(dāng)表達(dá)式EXP為非0值時(shí)條件成立,即執(zhí)行語(yǔ)句i++:當(dāng)EXP等于0時(shí),執(zhí)行語(yǔ)句j--;這等同于條件表達(dá)式“(EXP!=0)?i++;j++;”。23、以下程序中函數(shù)f的功能是:當(dāng)flag為1時(shí),進(jìn)行由小到大排序;當(dāng)flag為0時(shí),進(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知識(shí)點(diǎn)解析:本題重點(diǎn)考察函數(shù)的參數(shù)傳遞,函數(shù)的參數(shù)傳遞分為傳值和傳地址兩種情況。本題就是結(jié)合數(shù)組考查參數(shù)傳遞的情形。函數(shù)f完成的功能是對(duì)數(shù)據(jù)進(jìn)行排序,語(yǔ)句f(&a[2],5,0)的作用是對(duì)從a[2]開(kāi)始的5個(gè)元素進(jìn)行從大到小排序。注意:這里傳遞的是地址&a[2],所以排序操作可看作是直接對(duì)數(shù)組a操作,執(zhí)行后的結(jié)果為5,4,7,6,3,2,1,8,9,10。語(yǔ)句f(a,5,1)對(duì)數(shù)組a的前5個(gè)元素從小到大排序,排序后數(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知識(shí)點(diǎn)解析:本題重點(diǎn)考察二維數(shù)組名作為實(shí)參進(jìn)行參數(shù)傳遞,在主函數(shù)中調(diào)用了fun函數(shù),實(shí)參為二維數(shù)組名a和兩個(gè)整數(shù)4、0,這樣對(duì)應(yīng)定義:fun函數(shù)首部有三種形式,這里采用了第一種形式——行指針,這樣在fun函數(shù)對(duì)s[i][j]進(jìn)行操作實(shí)際上就是對(duì)主函數(shù)中的a[i][j]進(jìn)行操作,再分析fun函數(shù)的作用便可知,是求二維數(shù)組第0列中最大的那個(gè)元素。因此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知識(shí)點(diǎn)解析:本題重點(diǎn)考查的知識(shí)點(diǎn)是:sqrt()函數(shù)。sqrt()函數(shù)的作用是計(jì)算平方根,要求輸出的參數(shù)x必須大于等于0。題目公式的要求是無(wú)論x大于等于0還是小于0,y的值都為x絕對(duì)值的開(kāi)方。選項(xiàng)C中調(diào)用了sqrt(x)函數(shù),而沒(méi)有判斷x的正負(fù),則y=sqrt(x)會(huì)出錯(cuò)。26、下列C語(yǔ)言語(yǔ)句會(huì)出現(xiàn)錯(cuò)誤的是()。A、chara=’123’B、chara=’\n’;C、chara=’a’;D、char=’’\x2d’’;標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:選項(xiàng)A將一個(gè)字符串賦給了一個(gè)字符變量是不正確的;選項(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知識(shí)點(diǎn)解析:本題考查靜態(tài)局部變量,本題中先執(zhí)行fun(4,1)得到返回值為8,此時(shí)靜態(tài)局部變量m為8,i為3,那么再次執(zhí)行fun(4,1)得到的值為17,所以選項(xiàng)A正確。28、計(jì)算機(jī)算法中有窮性的意思是()。A、算法程序的運(yùn)行時(shí)間是有限的B、算法程序所處理的數(shù)據(jù)量是有限的C、算法程序的長(zhǎng)度是有限的D、算法只能被有限的用戶使用標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:算法原則上能夠精確地運(yùn)行,而且人們用筆和紙做有限次運(yùn)算后即可完成。有窮性是指算法程序的運(yùn)行時(shí)間是有限的。29、在軟件開(kāi)發(fā)中,需求分析階段可以使用的工具是()。A、N-S圖B、DFD圖C、PAD圖D、程序流程圖標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:在需求分析階段可以使用的工具有數(shù)據(jù)流圖DFD圖,數(shù)據(jù)字典DD,判定樹(shù)與判定表,所以選擇B。30、以下數(shù)組定義中錯(cuò)誤的是()。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知識(shí)點(diǎn)解析:D選項(xiàng)中x[2][3]定義的是一個(gè)兩行三列的二維數(shù)組,而在給數(shù)組元素賦值時(shí)卻賦成了三行,所以錯(cuò)誤。31、若函數(shù)調(diào)用時(shí)的實(shí)參為變量,以下關(guān)于函數(shù)形參和實(shí)參的敘述中正確的是()。A、函數(shù)的實(shí)參和其對(duì)應(yīng)的形參共占同一存儲(chǔ)單元B、形參只是形式上的存在,不占用具體存儲(chǔ)單元C、同名的實(shí)參和形參占同一存儲(chǔ)單元D、函數(shù)的形參和實(shí)參分別占用不同的存儲(chǔ)單元標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:在C語(yǔ)言中,函數(shù)的實(shí)參單元與形參單元在內(nèi)存中分配不同的存儲(chǔ)單元。在調(diào)用函數(shù)時(shí),給形參分配臨時(shí)存儲(chǔ)單元,并將實(shí)參對(duì)應(yīng)的值傳遞給形參,在被調(diào)用函數(shù)中對(duì)形參存儲(chǔ)單元中的值進(jìn)行運(yùn)算,最后通過(guò)retum語(yǔ)句把函數(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知識(shí)點(diǎn)解析:求余運(yùn)算符的左右兩個(gè)數(shù)字都必須是整數(shù),所以選項(xiàng)A和D錯(cuò)誤,另外,進(jìn)行整型強(qiáng)制轉(zhuǎn)化時(shí)正確的表達(dá)式是(int)x,而不是int(x);選項(xiàng)C中不能將x+k的值賦給y*3,所以選項(xiàng)C錯(cuò)誤。選項(xiàng)B中涉及逗號(hào)運(yùn)算符,它的級(jí)別最低,因此,選項(xiàng)B表達(dá)式的執(zhí)行過(guò)程是先將y+m+5的值賦給n,y值自加一次。33、以下敘述中錯(cuò)誤的是A、用typedef可以說(shuō)明一種新的類型名B、typedef的作用是用一個(gè)新的標(biāo)識(shí)符來(lái)代表已存在的類型名C、可以用typedef說(shuō)明的新類型名來(lái)定義變量D、typedef說(shuō)明的新類型名必須使用大寫(xiě)字母,否則會(huì)出編譯錯(cuò)誤標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:本題考查typedef的使用方法,typedef對(duì)已存在的類型使用一個(gè)新的名字,新類型可以使用小寫(xiě),所以D選項(xiàng)錯(cuò)誤。34、計(jì)算機(jī)軟件設(shè)計(jì)過(guò)程中,不屬于需求規(guī)格說(shuō)明的是()。A、運(yùn)行環(huán)境B、算法詳細(xì)設(shè)計(jì)C、軟件的性能D、軟件的主要功能標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:軟件需求規(guī)格說(shuō)明應(yīng)重點(diǎn)描述軟件的目標(biāo),軟件的功能需求、性能需求和運(yùn)行環(huán)境等。功能需求是軟件需求規(guī)格說(shuō)明。給出軟件要執(zhí)行什么功能的詳盡描述。性能需求是指定量地描述軟件系統(tǒng)應(yīng)滿足的具體性能需求,即各種軟件功能的速度、響應(yīng)時(shí)間、恢復(fù)時(shí)間。外部接口指軟件如何與人、系統(tǒng)的硬件及其他硬件和其他軟件進(jìn)行交互。屬性是指與軟件有關(guān)的質(zhì)量屬性,如正確性、可用性、可靠性、安全性、可維護(hù)性等。約束條件包括影響軟件實(shí)現(xiàn)的各種設(shè)計(jì)約束,如使用的標(biāo)準(zhǔn)、編程語(yǔ)言、數(shù)據(jù)庫(kù)完整性方針、資源限制、運(yùn)行環(huán)境等方面的要求。35、以下程序的功能是:通過(guò)調(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知識(shí)點(diǎn)解析:程序的執(zhí)行過(guò)程為:從鍵盤(pán)讀入兩個(gè)float類型數(shù)據(jù),分別賦給x,y,調(diào)用函數(shù)calc將x與y的值與add變量地址傳入函數(shù),地址賦給指針sum,函數(shù)體中將兩數(shù)之和放入指針指向的地址,指針正確的引用形式為(*sum),這表示變量,可以被賦值。所以橫線處填寫(xiě)*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知識(shí)點(diǎn)解析:由于name是一個(gè)長(zhǎng)度為9的一維數(shù)組,故在內(nèi)存中占用9個(gè)字節(jié)長(zhǎng)度,而其中字符串"c##line"只有7個(gè)字符,strlen()函數(shù)返回的是該字符串的長(zhǎng)度,不包含結(jié)束符,str是一個(gè)指針變量,占用4個(gè)字節(jié)長(zhǎng)度,但是由于name首地址賦給了str指針變量,在調(diào)用strlen()函數(shù)時(shí),返回的是指針對(duì)應(yīng)地址單元的字符串的長(zhǎng)度7,因此答案為A選項(xiàng)。37、數(shù)據(jù)庫(kù)系統(tǒng)的數(shù)據(jù)獨(dú)立性是指A、不會(huì)因?yàn)橄到y(tǒng)數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)與數(shù)據(jù)邏輯結(jié)構(gòu)的變化而影響應(yīng)用程序B、不會(huì)因?yàn)閿?shù)據(jù)的變化而影響應(yīng)用程序C、不會(huì)因?yàn)榇鎯?chǔ)策略的變化而影響存儲(chǔ)結(jié)構(gòu)D、不會(huì)因?yàn)槟承┐鎯?chǔ)結(jié)構(gòu)的變化而影響其他的存儲(chǔ)結(jié)構(gòu)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)系統(tǒng)的數(shù)據(jù)獨(dú)立性,是指數(shù)據(jù)庫(kù)中數(shù)據(jù)獨(dú)立于應(yīng)用程序且不依賴于應(yīng)用程序,即數(shù)據(jù)的邏輯結(jié)構(gòu)、存儲(chǔ)結(jié)構(gòu)與存取方式的改變不會(huì)影響應(yīng)用程序。故選A選項(xiàng)。38、軟件生命周期是指A、軟件的定義和開(kāi)發(fā)階段B、軟件的需求分析、設(shè)計(jì)與實(shí)現(xiàn)階段C、軟件的開(kāi)發(fā)階段D、軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用維護(hù)到停止使用退役的過(guò)程標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:通常把軟件產(chǎn)品從提出、實(shí)現(xiàn)、使用、維護(hù)到停止使用、退役的過(guò)程稱為軟件生命周期。選項(xiàng)A、B、C選項(xiàng)均為生命周期的一部分。故選D選項(xiàng)39、下列選項(xiàng)中,不屬于數(shù)據(jù)管理員(DBA)職責(zé)的是()。A、數(shù)據(jù)庫(kù)維護(hù)B、數(shù)據(jù)庫(kù)設(shè)計(jì)C、改善系統(tǒng)性能,提高系統(tǒng)效率D、數(shù)據(jù)類型轉(zhuǎn)換標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)管理員(DataBaseAdminiswator,DBA)是指對(duì)數(shù)據(jù)庫(kù)的規(guī)劃、設(shè)計(jì)、維護(hù)、監(jiān)視等的人員,其主要工作如下:數(shù)據(jù)庫(kù)設(shè)計(jì)。DBA的主要任務(wù)之一是數(shù)據(jù)庫(kù)設(shè)計(jì),具體地說(shuō)是進(jìn)行數(shù)據(jù)模式的設(shè)計(jì);數(shù)據(jù)庫(kù)維護(hù)。DBA必須對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)安全性、完整性、并發(fā)控制及系統(tǒng)恢復(fù)、數(shù)據(jù)定期轉(zhuǎn)儲(chǔ)等進(jìn)行實(shí)施與維護(hù);改善系統(tǒng)性能,提高系統(tǒng)效率。DBA必須隨時(shí)監(jiān)視數(shù)據(jù)庫(kù)的運(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)的個(gè)數(shù),并存放在形參n所指的存儲(chǔ)單元中。請(qǐng)?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知識(shí)點(diǎn)解析:填空1:n所指的存儲(chǔ)單元存放結(jié)點(diǎn)的個(gè)數(shù),對(duì)其賦初值為0。填空2:while循環(huán)用于遍歷鏈表,循環(huán)一次,指針指向鏈表的下一個(gè)結(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。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不要改動(dòng)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--;}知識(shí)點(diǎn)解析:(1)這里是一個(gè)簡(jiǎn)單的格式錯(cuò)誤,if條件判斷語(yǔ)句應(yīng)該加括號(hào)。(2)根據(jù)階乘的概念,從n開(kāi)始,n!=n*(n-1)!,直到1,所以應(yīng)該為result*=n--;。四、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)42、請(qǐng)編寫(xiě)函數(shù)fun,函數(shù)的功能是:將M行N列的二維數(shù)組中的數(shù)據(jù),按行的順序依次放到一維數(shù)組中,一維數(shù)組中數(shù)據(jù)的個(gè)數(shù)存放在形參n所指的存儲(chǔ)單元中。例如,二維數(shù)組中的數(shù)據(jù)為:333333334444444455555555則一維數(shù)組中的內(nèi)容應(yīng)是:333333334444444455555555。注意:部分源程序在文件PROG1.C中。請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。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{/*請(qǐng)?jiān)诖撕瘮?shù)內(nèi)打開(kāi)文件,輸入測(cè)試數(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;}知識(shí)點(diǎn)解析:該程序功能是將M行、N列的二維數(shù)組中的數(shù)據(jù),按行的順序依次放到一維數(shù)組中。本題中首先要清楚數(shù)組元素在通常情況下是按行存放的,而如果要實(shí)現(xiàn)按行存放,其對(duì)應(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]。國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷第2套一、選擇題(本題共38題,每題1.0分,共38分。)1、下列敘述中正確的是()。A、程序執(zhí)行的效率與數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)密切相關(guān)B、程序執(zhí)行的效率只取決于程序的控制結(jié)構(gòu)C、程序執(zhí)行的效率只取決于所處理的數(shù)據(jù)量D、以上說(shuō)法均錯(cuò)誤標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:程序執(zhí)行的效率與數(shù)據(jù)的存儲(chǔ)結(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é)生成績(jī)管理系統(tǒng)B、C語(yǔ)言編譯程序C、UNIX操作系統(tǒng)D、數(shù)據(jù)庫(kù)管理系統(tǒng)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:軟件按功能可以分為:應(yīng)用軟件、系統(tǒng)軟件、支撐軟件。操作系統(tǒng)、編譯程序、匯編程序、網(wǎng)絡(luò)軟件、數(shù)據(jù)庫(kù)管理系統(tǒng)都屬于系統(tǒng)軟件。所以B、C、D選項(xiàng)都是系統(tǒng)軟件,只有A選項(xiàng)是應(yīng)用軟件。3、通常軟件測(cè)試實(shí)施的步驟是()。A、集成測(cè)試、單元測(cè)試、確認(rèn)測(cè)試B、單元測(cè)試、集成測(cè)試、確認(rèn)測(cè)試C、確認(rèn)測(cè)試、集成測(cè)試、單元測(cè)試D、單元測(cè)試、確認(rèn)測(cè)試、集成測(cè)試標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:軟件測(cè)試過(guò)程一般按4個(gè)步驟進(jìn)行,即單元測(cè)試、集成測(cè)試、驗(yàn)收測(cè)試(確認(rèn)測(cè)試)和系統(tǒng)測(cè)試。故答案應(yīng)該選B。4、下列敘述中錯(cuò)誤的是()。A、系統(tǒng)總體結(jié)構(gòu)圖支持軟件系統(tǒng)的詳細(xì)設(shè)計(jì)B、軟件設(shè)計(jì)是將軟件需求轉(zhuǎn)換為軟件表示的過(guò)程C、數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)庫(kù)設(shè)計(jì)是軟件設(shè)計(jì)的任務(wù)之一D、PAD圖是軟件詳細(xì)設(shè)計(jì)的表示工具標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:詳細(xì)設(shè)計(jì)的任務(wù)是為軟件結(jié)構(gòu)圖而非總體結(jié)構(gòu)圖中的每一個(gè)模塊確定實(shí)現(xiàn)算法和局部數(shù)據(jù)結(jié)構(gòu)、用某種選定的表達(dá)工具表示算法和數(shù)據(jù)結(jié)構(gòu)的細(xì)節(jié),因此A選項(xiàng)描述錯(cuò)誤。5、對(duì)長(zhǎng)度為n的線性表作快速排序,在最壞情況下,比較次數(shù)為()。A、nB、n-1C、n(n-1)D、n(n-1)/2標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:快速排序最壞情況就是每次選的基準(zhǔn)數(shù)都和其他數(shù)做過(guò)比較,共需比較(n-1)+(n-2)+…+1=n(n-1)/2,故D選項(xiàng)正確。6、某二叉樹(shù)共有7個(gè)結(jié)點(diǎn),其中葉子結(jié)點(diǎn)只有1個(gè),則該二叉樹(shù)的深度為(假設(shè)根結(jié)點(diǎn)在第1層)()。A、3B、4C、6D、7標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:根據(jù)二叉樹(shù)的基本性質(zhì):在任意一棵二叉樹(shù)中,度為0的葉子結(jié)點(diǎn)總比度為2的結(jié)點(diǎn)多一個(gè),因此本題中度為2的結(jié)點(diǎn)為1-1=0個(gè),據(jù)此可以知道本題中的二叉樹(shù)的每一個(gè)結(jié)點(diǎn)都有一個(gè)分支,所以共有7個(gè)結(jié)點(diǎn)、共7層,即深度為7,選擇D。7、下列關(guān)于棧的敘述中,正確的是()。A、棧頂元素最先能被刪除B、棧頂元素最后才能被刪除C、棧底元素永遠(yuǎn)不能被刪除D、棧底元素最先能被刪除標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:棧是“先進(jìn)后出”的數(shù)據(jù)結(jié)構(gòu),因此棧頂元素最后入棧卻最先被刪除,棧底元素最先入棧卻最后被刪除,答案為A。8、在數(shù)據(jù)庫(kù)中,數(shù)據(jù)模型包括數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和()。A、數(shù)據(jù)約束B(niǎo)、數(shù)據(jù)類型C、關(guān)系運(yùn)算D、查詢標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:數(shù)據(jù)模型是數(shù)據(jù)特征的抽象,從抽象層次上描述了系統(tǒng)的靜態(tài)特征、動(dòng)態(tài)行為和約束條件,為數(shù)據(jù)庫(kù)系統(tǒng)的信息表示和操作提供一個(gè)抽象的框架,即描述了數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作及數(shù)據(jù)約束。故正確答案為A。9、一名教師可講授多門(mén)課程,一門(mén)課程可由多名教師講授。則實(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知識(shí)點(diǎn)解析:因?yàn)橐幻處熆芍v授多門(mén)課程,而一門(mén)課程又能由多名教師講授,所以教師和課程之間是多對(duì)多的關(guān)系,可以表示為m:n,選擇D。10、支持子程序調(diào)用的數(shù)據(jù)結(jié)構(gòu)是()。A、棧B、樹(shù)C、隊(duì)列D、二叉樹(shù)標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:棧支持子程序調(diào)用。棧是一種只能在一端進(jìn)行插入或刪除的線性表。在主程序調(diào)用子函數(shù)時(shí)要首先保存主程序當(dāng)前的狀態(tài),然后轉(zhuǎn)去執(zhí)行子程序,最終把子程序的執(zhí)行結(jié)果返回到主程序中調(diào)用子程序的位置,繼續(xù)向下執(zhí)行,這種調(diào)用符合棧的特點(diǎn),所以A選項(xiàng)正確。11、以下正確的說(shuō)法是()。A、用戶若需要調(diào)用標(biāo)準(zhǔn)庫(kù)函數(shù),調(diào)用前必須重新定義B、用戶可以重新定義標(biāo)準(zhǔn)庫(kù)函數(shù),但若重新定義,該函數(shù)將失去原有意義C、用戶系統(tǒng)根本不允許用戶重新定義庫(kù)函數(shù)D、用戶若需要調(diào)用庫(kù)函數(shù),調(diào)用前不必使用預(yù)編譯命令將該函數(shù)所在文件包括到用戶源文件中,系統(tǒng)會(huì)自動(dòng)尋找該文件標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:無(wú)論是標(biāo)準(zhǔn)庫(kù)函數(shù),還是別的函數(shù),都屬于函數(shù)的范疇,都允許用戶重新定義和使用,使用的時(shí)候include命令必須以“#”號(hào)開(kāi)頭,文件名用一對(duì)雙引號(hào)或一對(duì)尖括號(hào)括起來(lái),系統(tǒng)提供的頭文件是以.h作為文件后綴。12、設(shè)有定義:inta;floatb;執(zhí)行scanf("%2d%f",&a,&b);語(yǔ)句時(shí),若從鍵盤(pán)輸入876543.0,則a和b的值分別是()。A、87和6.0B、876和543.0C、87和543.0D、76和543.0標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:scanf()函數(shù)的一般形式為:scan(格式控制,地址表列)。其中,“格式控制”是用雙引號(hào)括起來(lái)的字符串,也稱為“轉(zhuǎn)換控制字符串”,它包括兩種信息:①格式說(shuō)明,由“%”和格式字符組成;②普通字符,即需要原樣輸入的字符?!暗刂繁砹小笔切枰邮蛰斎霐?shù)據(jù)的一系列變量的地址。本題中的“格式控制”是“%2d%f”,“%2d”的意思是要輸入一個(gè)整數(shù),但該整數(shù)最寬只占2個(gè)字符,而“%2d”是要輸入一個(gè)浮點(diǎn)數(shù)。題目要求輸入的是876空格543.0,所以scanf()函數(shù)將87賦給a,將6賦給b。13、若變量均已正確定義并賦值,以下各項(xiàng)中屬于合法的C語(yǔ)言賦值語(yǔ)句是()。A、x=n%2.5;B、x=y==5;C、x+n=i;D、x=5=4+1;標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:%取余操作數(shù)只能是整數(shù),x+n和數(shù)值5不能作為賦值的左值,所以A、C、D選項(xiàng)錯(cuò)誤。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知識(shí)點(diǎn)解析:等號(hào)“=”運(yùn)算符是從右到左,且與“+、-、*”運(yùn)算符比,優(yōu)先級(jí)較低。首先計(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;以下不能將一行(不超過(guò)80個(gè)字符)帶有空格的字符串正確讀入的語(yǔ)句或語(yǔ)句組是()。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知識(shí)點(diǎn)解析:函數(shù)scanf()輸入字符串時(shí)默認(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)行后,若從鍵盤(pán)輸入(從第1列開(kāi)始):123<回車(chē)>45678<回車(chē)>則輸出結(jié)果是()。A、1256B、1245C、1278D、1267標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:對(duì)于字符型數(shù)據(jù)的輸入而言,從鍵盤(pán)上輸入的字符,不管是否可以輸出,都會(huì)被讀入字符型變量中。因此,c1=1,c2=2,c3=3,c4=<回車(chē)>,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í)行時(shí)輸入:123<回車(chē)>,則輸出結(jié)果是()。A、233456B、234C、223444D、234344標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:這是一個(gè)循環(huán)結(jié)構(gòu)嵌套選擇結(jié)構(gòu),按照外層循環(huán),內(nèi)層選擇一步一步處理即可。本題重點(diǎn)注意,switch語(yǔ)句中并沒(méi)有出現(xiàn)break語(yǔ)句,所以內(nèi)層循環(huán)是不會(huì)跳出的。18、對(duì)于if(表達(dá)式)語(yǔ)句,以下敘述中正確的是()。A、“表達(dá)式”的值可以是任意合法的數(shù)值B、變量不能出現(xiàn)在“表達(dá)式”中C、常量不能出現(xiàn)在“表達(dá)式”中D、如果“表達(dá)式”的值不是邏輯值,程序會(huì)出編譯錯(cuò)誤標(biāo)準(zhǔn)答案:A知識(shí)點(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知識(shí)點(diǎn)解析:本題考查位運(yùn)算中按位或運(yùn)算符,或運(yùn)算只要兩個(gè)比較的位中有一個(gè)為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知識(shí)點(diǎn)解析:“++”和“--”運(yùn)算,當(dāng)以前綴形式出現(xiàn)時(shí),則先進(jìn)行加1或減1操作,再進(jìn)行其他運(yùn)算;當(dāng)以后綴形式出現(xiàn)時(shí),則先進(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知識(shí)點(diǎn)解析:本題主要考查一維數(shù)組的輸出。由于數(shù)組中有6個(gè)元素,但初始化數(shù)組的時(shí)候只給出4個(gè)元素,所以array[5]=0,array[6]=0,前面幾位元素依次輸出,不夠位數(shù)補(bǔ)O,所以選項(xiàng)B正確。22、以下敘述中正確的是()。A、數(shù)組說(shuō)明符的一對(duì)方括號(hào)中只能使用整型常量,而不能使用表達(dá)式B、一條語(yǔ)句只能定義一個(gè)數(shù)組C、每個(gè)數(shù)組包含一組具有同一類型的變量,這些變量在內(nèi)存中占有連續(xù)的存儲(chǔ)單元D、在引用數(shù)組元素時(shí),下標(biāo)表達(dá)式可以使用浮點(diǎn)數(shù)標(biāo)準(zhǔn)答案:C知識(shí)點(diǎn)解析:同類元素的集合稱為數(shù)組,數(shù)組元素在內(nèi)存中占據(jù)連續(xù)的存儲(chǔ)空間,C選項(xiàng)正確。方括號(hào)中可以為整型變量或者常量表達(dá)式,A選項(xiàng)錯(cuò)誤。在使用逗號(hào)運(yùn)算符的情況下,一條語(yǔ)句可以定義多個(gè)數(shù)組,B選項(xiàng)錯(cuò)誤。數(shù)組元素在數(shù)組中的下標(biāo)為整型常量或者變量構(gòu)成的整型表達(dá)式,不能為浮點(diǎn)數(shù),D選項(xiàng)錯(cuò)誤。答案選C。23、若有定義語(yǔ)句:intm[][3]={1,2,3,4,5,6,7};,則與該語(yǔ)句等價(jià)的是()。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知識(shí)點(diǎn)解析:考查二維數(shù)組的初始化。初始化二維數(shù)組的時(shí)候,若給數(shù)組的全部元素均賦初值,此時(shí)第一維的元素個(gè)數(shù)可以不指定,部分賦值時(shí),最后一行元素不寫(xiě)完整,此時(shí)數(shù)組第一維元素個(gè)數(shù)仍然可以不指定。題中為按行給數(shù)組m賦值,最后一行只有部分賦初值,答案選C。24、以下敘述中正確的是()。A、char,c1,c2,*c3,c4[40];是合法的變量定義語(yǔ)句B、數(shù)組下標(biāo)的下限由數(shù)組中第一個(gè)非零元素的位置決定C、數(shù)組下標(biāo)的下限由數(shù)組中第一個(gè)被賦值元素的位置決定D、數(shù)組下標(biāo)的下限是1標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:A選項(xiàng)正確,charc1,c2,*c3,c4[40]表示定義了兩個(gè)字符變量c1、c2,一個(gè)字符指針c3,一個(gè)字符數(shù)組c4。數(shù)組的下限永遠(yuǎn)為0,選項(xiàng)B、C、D錯(cuò),答案選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知識(shí)點(diǎn)解析:本題重點(diǎn)考查do…while語(yǔ)句,該循環(huán)語(yǔ)句的特點(diǎn)是,先執(zhí)行循環(huán)中的語(yǔ)句,然后再判斷表達(dá)式是否為真,如果為真則繼續(xù)循環(huán);如果為假,則終止循環(huán)。因此,do…while循環(huán)至少要執(zhí)行一次循環(huán)語(yǔ)句。變量a賦初值為3,每循環(huán)一次需執(zhí)行語(yǔ)句a-=2一次,同時(shí)循環(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)行時(shí)輸入:Thisisastring.<回車(chē)>則以下不能正確讀入整個(gè)字符串Thisisastring.到字符數(shù)組s中的語(yǔ)句組是()。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知識(shí)點(diǎn)解析:考查基本的字符串輸入控制語(yǔ)句。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知識(shí)點(diǎn)解析:條件運(yùn)算符組成條件表達(dá)式的一般形式為:表達(dá)式1?表達(dá)式2:表達(dá)式3。其求值規(guī)則為:表達(dá)式1值為真,則以表達(dá)式2的值作為條件表達(dá)式的值,否則以表達(dá)式3的值作為整個(gè)條件表達(dá)式的值。本題中語(yǔ)句printf((x%2)?("*%d"):("#%d",x);含義為變量x對(duì)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知識(shí)點(diǎn)解析:函數(shù)fun()屬于值傳參,形參的變化不會(huì)影響實(shí)參,所以函數(shù)調(diào)用結(jié)束后,數(shù)組c沒(méi)有任何變化,輸出結(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知識(shí)點(diǎn)解析:考查遞歸函數(shù)。函數(shù)fun()的功能是計(jì)算1到n之間的數(shù)字之和,所以計(jì)算結(jié)果為15,答案選C。30、以下選項(xiàng)中,沒(méi)有編譯錯(cuò)誤的是()。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知識(shí)點(diǎn)解析:B選項(xiàng)中,不能直接將字符數(shù)組名直接賦值給另一個(gè)字符數(shù)組名。C選項(xiàng)賦值錯(cuò)誤,不能將一個(gè)字符串常量賦值給一個(gè)字符指針。D選項(xiàng)定義str4時(shí)需要定義其長(zhǎng)度。故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)用語(yǔ)句中錯(cuò)誤的是()。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知識(shí)點(diǎn)解析:int(*f)()為一個(gè)函數(shù)指針變量,返回值為整型,f為一個(gè)指針變量,指向一個(gè)已經(jīng)定義的函數(shù),在調(diào)用該函數(shù)的時(shí)候需要把參數(shù)寫(xiě)在相應(yīng)的小括號(hào)內(nèi),即(*指針名)(參數(shù)或參數(shù)列表),所以選項(xiàng)A調(diào)用錯(cuò)誤,答案選A。32、以下關(guān)于C語(yǔ)言函數(shù)參數(shù)傳遞方式的敘述中正確的是()。A、數(shù)據(jù)只能從實(shí)參單向傳遞給形參B、數(shù)據(jù)可以在實(shí)參和形參之間雙向傳遞C、數(shù)據(jù)只能從形參單向傳遞給實(shí)參D、C語(yǔ)言的函數(shù)參數(shù)既可以從實(shí)參單向傳遞給形參,也可以在實(shí)參和形參之間雙向傳遞,可視情況選擇使用標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:數(shù)據(jù)只能由實(shí)參單向傳遞給形參稱為“值傳遞”,而不能由形參傳回來(lái)給實(shí)參,A選項(xiàng)正確;數(shù)組名、指針等作參數(shù),實(shí)參傳遞給形參地是地址值,這樣形參和實(shí)參就指向同一段內(nèi)存單元,在函數(shù)體內(nèi)對(duì)形參數(shù)據(jù)的改變也將影響到實(shí)參。實(shí)參和形參之間不可雙向傳遞,BD選項(xiàng)錯(cuò)誤。數(shù)據(jù)不能從形參傳遞給實(shí)參,C選項(xiàng)錯(cuò)誤。33、設(shè)已有定義:floatx;則以下對(duì)指針變量p進(jìn)行定義且賦初值的語(yǔ)句中正確的是()。A、float*p=&;x;B、int*p=(float)x;C、floatp=&;x;D、float*p=1024:標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:考查指針變量的初始化。只能把對(duì)應(yīng)類型的變量的地址賦值給指針,選項(xiàng)B錯(cuò)誤;定義指針時(shí)要加上“*”標(biāo)明該變量為一個(gè)指針變量,選項(xiàng)C錯(cuò)誤;不能把一個(gè)整數(shù)直接賦值給指針變量,選項(xiàng)D錯(cuò)誤;所以答案選A。34、以下敘述中正確的是()。A、在C語(yǔ)言中,預(yù)處理命令行都以#開(kāi)頭B、預(yù)處理命令行必須位于C源程序的起始位置C、#include<stdio.h>必須放在C程序的開(kāi)頭D、C語(yǔ)言的預(yù)處理不能實(shí)現(xiàn)宏定義和條件編譯的功能標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:C語(yǔ)言中,凡是以“#”開(kāi)頭的都被稱為編譯預(yù)處理行,選項(xiàng)A正確;預(yù)處理行可以放在C源程序的任何位置,習(xí)慣放在起始位置,選項(xiàng)B錯(cuò)誤;語(yǔ)句“#include<stdio.h>”必須放在使用文件stdio.h中相關(guān)方法的語(yǔ)句之前,但是不一定非要放在C程序開(kāi)頭,選項(xiàng)C錯(cuò)誤;預(yù)處理包括宏定義、文件包含和條件編譯等,選項(xiàng)D錯(cuò)誤。答案選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知識(shí)點(diǎn)解析:本題主要考查函數(shù)作為形參時(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知識(shí)點(diǎn)解析:首先在主函數(shù)中給整型變量k賦值為3,將變量k的地址賦給指針變量p,調(diào)用sp函數(shù),將實(shí)參p的值傳給形參a,在sp函數(shù)中,指針變量a又獲得變量b的地址,通過(guò)運(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í)行時(shí),輸入abc<回車(chē)>,則輸出結(jié)果是()。A、abcB、ababcC、bcaD、cba標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:my()遞歸,直到輸入了c開(kāi)始返回。遞歸使用的是棧的思想,因此最后輸入進(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知識(shí)點(diǎn)解析:字符常量與其ASCII碼值一一對(duì)應(yīng),在計(jì)算的時(shí)候,可以使用該字符的ASCII碼參與運(yùn)算,輸出時(shí)會(huì)根據(jù)格式控制符輸出對(duì)應(yīng)的字符或者ASCII碼。右移運(yùn)算符“>>”的運(yùn)算規(guī)則是把左邊運(yùn)算數(shù)的各二進(jìn)制位全部右移n位,n取決于“>>”右邊的數(shù)值。字符a的ASCII碼值為8,對(duì)應(yīng)二進(jìn)制為1000,所以a>>3=1,輸出的字符c的ASCII碼值為1,答案選C。二、程序填空題(本題共1題,每題1.0分,共1分。)39、下列給定程序中,函數(shù)fun的功能是:有N×N矩陣,以主對(duì)角線為對(duì)稱線,對(duì)稱元素相加并將結(jié)果存放在左下三角元素中,右上三角元素置為0。例如,若N=3,有下列矩陣:123456789計(jì)算后結(jié)果為10065010149請(qǐng)?jiān)诔绦虻南庐?huà)線處填入正確的內(nèi)容并把下畫(huà)線刪除。使程序得出正確的結(jié)果。注意:不得增行或刪行,也不得改程序的結(jié)構(gòu)!試題程序:#include<stdio.h>#defineN4標(biāo)準(zhǔn)答案:(1)[N](2)t[i][j](3)t[j][i]知識(shí)點(diǎn)解析:本題考查:有參函數(shù)定義,需要根據(jù)題目要求和給定程序確定函數(shù)參數(shù)。N×N矩陣中如何表示左下角和右上角元素。填空1:主函數(shù)中調(diào)用函數(shù)的參數(shù)為二維數(shù)組,所以此處形參應(yīng)定義為指針數(shù)組。填空2:根據(jù)題意可知,對(duì)稱元素相加的和存放在左下三角元素中,那么應(yīng)填入的是t[i][j]。填空3:右上三角元素置0,應(yīng)填入t[j][i]。三、程序修改題(本題共1題,每題1.0分,共1分。)40、在主函數(shù)中用鍵盤(pán)輸入若干個(gè)數(shù)放入數(shù)組中,用0結(jié)束輸入并放在最后一個(gè)元素中。下列給定程序中,函數(shù)fun的功能是:計(jì)算數(shù)組元素中所有值為正數(shù)的平均值(不包括0)。例如,數(shù)組中元素中的值依次為:39,-47,21,2,-8,15,0,則程序的運(yùn)行結(jié)果為19.250000。請(qǐng)改正程序中的錯(cuò)誤,使它能得出正確的結(jié)果。注意:不得增行或刪行,也不得更改程序的結(jié)構(gòu)!試題程序:#include<stdio.h>doublefun(intx[]){/******found******/intsum=0標(biāo)準(zhǔn)答案:(1)doublesum=0.0;(2)sum/=c;知識(shí)點(diǎn)解析:本題考查:變量的數(shù)據(jù)類型,區(qū)別int整型和double雙精度型;除法運(yùn)算符“/”。(1)變量定義錯(cuò)誤,變量sum存放所有數(shù)據(jù)的和,應(yīng)定義為double型。(2)C語(yǔ)言中的除法運(yùn)算符是“/”。四、程序設(shè)計(jì)題(本題共1題,每題1.0分,共1分。)41、假定輸入的字符串中只包含字母和*號(hào)。請(qǐng)編寫(xiě)函數(shù)fun,其功能是:除了尾部的*號(hào)之外,將字符中的其他*號(hào)全部刪除。形參p已指向字符串中最后的一個(gè)字母。在編寫(xiě)函數(shù)時(shí),不得使用C語(yǔ)言提供的字符串函數(shù)。例如,字符串中的內(nèi)容為****A*BC*DEF*G*******,刪除后,字符串中的內(nèi)容應(yīng)當(dāng)是ABCDEFG*******。注意:請(qǐng)勿改動(dòng)主函數(shù)main和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)fun的花括號(hào)中填入你編寫(xiě)的若干語(yǔ)句。試題程序:#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)識(shí)*/}知識(shí)點(diǎn)解析:本題考查:刪除字符串中非尾部*號(hào),刪除的主要思想就是把不刪除的字符保留起來(lái)。本題用兩個(gè)循環(huán)語(yǔ)句來(lái)實(shí)現(xiàn)。第1個(gè)循環(huán)的作用是將指針p所指字母以前所有非*號(hào)的字符保留下來(lái),即刪除指針p以前所有的木號(hào)。第2個(gè)循環(huán)的作用是將指針p以后的所有*號(hào)保留下來(lái)。最后在新串的結(jié)尾加上結(jié)束符。國(guó)家二級(jí)(C語(yǔ)言)機(jī)試模擬試卷第3套一、選擇題(本題共40題,每題1.0分,共40分。)1、若有定義語(yǔ)句:doublex[5]={1.0,2,3,4,5.0),*p=x,則錯(cuò)誤引用x數(shù)組元素的是()。A、*pB、x[5]C、*(p+1)D、*x標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:引用一維數(shù)組元素有多種方式。直接引用的表達(dá)式為:數(shù)組名[下標(biāo)]。數(shù)組大小為n時(shí),下標(biāo)的取值范圍為0~(n—1),所以本題中x的下標(biāo)為0~4,x[5]溢出,B項(xiàng)錯(cuò)誤。此外還可以通過(guò)指針引用一維數(shù)組元素。指針p指向該數(shù)組,所以*p表示x[0],A項(xiàng)正確;指針p+1指向數(shù)組x的第二個(gè)元素的地址,*(p+1)表示引用x的第二個(gè)元素,C項(xiàng)正確;x為x數(shù)組元素的首地址,*x表示對(duì)x[0]的引用,D項(xiàng)正確。2、設(shè)有兩行定義語(yǔ)句:intscanf;floatcase;則以下敘述正確的是()。A、第2行語(yǔ)句不合法B、兩行定義語(yǔ)句都合法C、第1行語(yǔ)句不合法D、兩行定義語(yǔ)句都不合法標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題考查用戶標(biāo)識(shí)符,用戶自己定義的標(biāo)識(shí)符不能與關(guān)鍵字相同,并且盡量避免和預(yù)定義標(biāo)識(shí)符相同。本題中scanf為預(yù)定義標(biāo)識(shí)符,可以作為用戶標(biāo)識(shí)符;case為關(guān)鍵字,不能作為用戶標(biāo)識(shí)符,故而答案選A3、若有定義:charc;intd;,程序運(yùn)行時(shí)輸入:c=1d=2<回車(chē)>,能把字符1輸入給變量c、把整數(shù)2輸入給變量d的輸入語(yǔ)句是()。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知識(shí)點(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知識(shí)點(diǎn)解析:考查函數(shù)傳參。C語(yǔ)言中,數(shù)據(jù)只能從實(shí)參單向傳遞給形參,指針作為函數(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知識(shí)點(diǎn)解析:此題考查的是函數(shù)參數(shù)的傳遞。main函數(shù)中首先調(diào)用fun函數(shù),fun函數(shù)的功能是使字符c的ASCII碼值加1并輸出,使d加1并輸出對(duì)應(yīng)的字符;fun(&b,a)輸出“g,G”,但是由于fun函數(shù)的第一個(gè)參數(shù)進(jìn)行的是地址傳遞,而第二個(gè)參數(shù)進(jìn)行的是值傳遞,所以main函數(shù)中的printf函數(shù)輸出“F,g”。6、下列數(shù)據(jù)結(jié)構(gòu)中,能用二分法進(jìn)行查找的是()。A、無(wú)序線性表B、線性鏈表C、二叉鏈表D、順序存儲(chǔ)的有序表標(biāo)準(zhǔn)答案:D知識(shí)點(diǎn)解析:二分法查找只適用于順序存儲(chǔ)的有序表,表中的元素按值從小到大排列。7、對(duì)下列二叉樹(shù)進(jìn)行前序遍歷的結(jié)果為()。A、ABCDEFGHB、ABDGEHCFC、GDBEHACFD、GDHEBFCA標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:遍歷就是不重復(fù)地訪問(wèn)二叉樹(shù)的所有結(jié)點(diǎn)。二叉樹(shù)遍歷的方法有3種:前序遍歷、中序遍歷和后序遍歷。記住3種遍歷的順序:①前序,訪問(wèn)根→按前序遍歷左子樹(shù)→按前序遍歷右子樹(shù);②中序,按中序遍歷左子樹(shù)→訪問(wèn)根→按中序遍歷右子樹(shù);③后序,按后序遍歷左子樹(shù)→按后序遍歷右子樹(shù)→訪問(wèn)根。所以對(duì)該二叉樹(shù)的中序遍歷結(jié)果為ABDGEHCF。8、對(duì)下列二叉樹(shù)進(jìn)行前序遍歷的結(jié)果為()。A、ABCDEFGHB、ABDGEHCFC、GDBEHACFD、GDHEBFCA標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:遍歷就是不重復(fù)地訪問(wèn)二叉樹(shù)的所有結(jié)點(diǎn)。二叉樹(shù)遍歷的方法有3種:前序遍歷、中序遍歷和后序遍歷。記住3種遍歷的順序:①前序,訪問(wèn)根一按前序遍歷左子樹(shù)一按前序遍歷右子樹(shù);②中序,按中序遍歷左子樹(shù)一訪問(wèn)根一按中序遍歷右子樹(shù);③后序,按后序遍歷左子樹(shù)一按后序遍歷右子樹(shù)一訪問(wèn)根。所以對(duì)該二叉樹(shù)的中序遍歷結(jié)果為ABDGEHCF。9、可在C程序中用作用戶標(biāo)識(shí)符的一組標(biāo)識(shí)符是()。A、voiddefineWORDB、as_b3_123IfC、For-abccaseD、2cDOSIG標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:C語(yǔ)言規(guī)定,標(biāo)識(shí)符是由字母、數(shù)字或下劃線組成,并且它的第一個(gè)字符必須是字母或下劃線,關(guān)鍵字不能用作用戶標(biāo)識(shí)符。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、輸出無(wú)定值標(biāo)準(zhǔn)答案:A知識(shí)點(diǎn)解析:本題目中字符變量c1是字符’A’的ASCII碼加上4,即69所對(duì)應(yīng)的字符’E’。字符變量c2是字符’A’的ASCII碼加上3,即68所對(duì)應(yīng)的字符’D’。但是打印輸出時(shí),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)用語(yǔ)句錯(cuò)誤的是()。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知識(shí)點(diǎn)解析:D選項(xiàng)中*f(a,b)表示調(diào)用后返回一個(gè)指向整型數(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知識(shí)點(diǎn)解析:本題main函數(shù)的作用就是判斷字符串s中小寫(xiě)字母的個(gè)數(shù),顯然結(jié)果為2。13、以下函數(shù)按每行8個(gè)輸出數(shù)組中的數(shù)據(jù):voidfun(int*w,intn){inti;for(i=0;i<n;i++){________printf("%d",w[i]);}printf("\n");}下畫(huà)線處應(yīng)填入的語(yǔ)句是()。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知識(shí)點(diǎn)解析:每行輸出8個(gè)數(shù)組數(shù)據(jù),即輸出8個(gè)后就輸出一個(gè)換行,所以,應(yīng)該對(duì)8取余,當(dāng)結(jié)果為0時(shí)輸出換行符,即填入語(yǔ)句“if(i%8==0)printf("\n");”。14、在下列模式中,能夠給出數(shù)據(jù)庫(kù)物理存儲(chǔ)結(jié)構(gòu)與物理存取方法的是()。A、外模式B、內(nèi)模式C、概念模式D、邏輯模式標(biāo)準(zhǔn)答案:B知識(shí)點(diǎn)解析:數(shù)據(jù)庫(kù)系統(tǒng)的
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026云南紅河州建水滇南云水環(huán)境治理有限公司招聘1人備考題庫(kù)完整答案詳解
- 2026內(nèi)蒙古包頭土右旗就業(yè)服務(wù)中心招聘就業(yè)困難大學(xué)生公益性崗位人員30人備考題庫(kù)含答案詳解
- 2026四川師范大學(xué)考核招聘事業(yè)單位人員126人備考題庫(kù)及完整答案詳解1套
- 企業(yè)信譽(yù)履行承諾書(shū)3篇
- 托盤(pán)梁施工方案(3篇)
- 排水防護(hù)施工方案(3篇)
- 施工方放假方案(3篇)
- 施工方案自評(píng)價(jià)(3篇)
- 更換重軌施工方案(3篇)
- 水城河施工方案(3篇)
- 深度解析(2026)《HGT 5145-2017甲醇制混合芳烴》
- 道路交通反違章培訓(xùn)課件
- 2025年度麻醉科主任述職報(bào)告
- Scratch講座課件教學(xué)課件
- 2025年度安全生產(chǎn)工作述職報(bào)告
- 2025年全國(guó)碩士研究生考試《管理類聯(lián)考綜合能力》試題及答案
- 護(hù)理質(zhì)量管理質(zhì)控方案2026
- 《低碳醫(yī)院評(píng)價(jià)指南》(T-SHWSHQ 14-2025)
- 馬的文化介紹
- 二年級(jí)數(shù)學(xué)計(jì)算題專項(xiàng)練習(xí)1000題匯編集錦
- AI技術(shù)在人力資源管理中的實(shí)際應(yīng)用案例分享
評(píng)論
0/150
提交評(píng)論