已閱讀5頁,還剩146頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
2013年9月份全國計算機(jī)等級考試二級C語言試題題庫(無紙化考試專用)(說明無紙化考試選擇題40分,程序題60分。學(xué)會這些題,保證二級高空飄過)第一套給定程序的功能是求二分之一圓面積,函數(shù)通過形參得到圓的半徑,函數(shù)返回二分之一的圓面積注圓面積公式為SR2,在程序中定義的變量名要與公式的變量相同。例如,輸入圓的半徑值19527,輸出為S598949991。注意部分源程序給出如下。請勿改動MAIN函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在橫線上填入所編寫的若干表達(dá)式或語句。試題程序INCLUDEDOUBLEFUNDOUBLERRETURN314159【1】/20VOIDMAINDOUBLEXPRINTF“ENTERX“SCANF“LF“,【2】PRINTF“SLFN“,FUN【3】【參考答案】1RR2SCANF函數(shù)的形式,其一般形式為“SCANF“格式控制字符串“,地址表列“,注意地址是由地址運(yùn)算符“PRINTF函數(shù)的形式,其一般形式為“PRINTF“格式控制字符串“,輸出表列“函數(shù)實(shí)參調(diào)用,函數(shù)作為另一個函數(shù)調(diào)用的實(shí)際參數(shù)出現(xiàn)。【解題思路】填空1計算圓的面積,公式為SRR。填空2SCANF函數(shù)一般形式為SCANF格式控制,地址表列,因此填入ELSEIFXINCLUDEINCLUDEINCLUDEFLOATFUNINTNVOIDMAINFILEWFINTNFLOATSSYSTEM“CLS“PRINTF“NPLEASEENTERN“SCANF“D“,SFUNNPRINTF“THERESULTISFN“,S/WFFOPEN“OUTDAT“,“W“FPRINTFWF,“F“,FUN11FCLOSEWF/【參考答案】FLOATFUNINTNINTI,S10/定義整型變量S1,表示分母/FLOATS00/定義單精度變量S,表示每一項/FORI1IINCLUDEINCLUDEVOIDMAININTN,MLONGSUM【1】SYSTEM“CLS“PRINTF“NINPUTN,MN“SCANF“D,D“,WHILENINCLUDEINCLUDEDOUBLEFUNINTMDOUBLET10INTIFORI2IINCLUDEINCLUDEVOIDFUNCHARTT,INTPPVOIDMAINFILEWFCHARAA1000INTBB26,KSYSTEM“CLS“PRINTF“NPLEASEENTERACHARSTRING“SCANF“S“,AAFUNAA,BBFORK0KAIFSTR【1】CHSTR0CH【2】0VOIDMAINCHARS81,CSYSTEM“CLS“PRINTF“NPLEASEENTERASTRING“GETSSPRINTF“NPLEASEENTERTHECHARACTERTOSEARCH“CGETCHARFUN【3】PRINTF“NTHERESULTISSN“,S【參考答案】12STR1或STR13S,C【考點(diǎn)分析】本題考查IF語句,一般掌握條件表達(dá)式的判定。函數(shù)的調(diào)用,其一般形式為“函數(shù)名實(shí)際參數(shù)表“。【解題思路】填空1根據(jù)題意“若相同什么也不做“,則應(yīng)填入。填空2若不同則插在串的最后,那么0就在字符串的倒數(shù)第二了。填空3函數(shù)傳遞的參數(shù)為輸入的兩個字符串,則填入S,C。下列給定程序中,函數(shù)FUN的功能是分別統(tǒng)計字符串中大寫字母和小寫字母的個數(shù)。例如,給字符串S輸入AAAABBB123CCCCCCD,則應(yīng)輸出結(jié)果UPPER5,LOWER9。請改正程序中的錯誤,使它能計算出正確的結(jié)果。注意不要改動MAIN函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序INCLUDEINCLUDE/FOUND/VOIDFUNCHARS,INTA,INTBWHILES/FOUND/IFSACHARAM,CHSYSTEM“CLS“PRINTF“NPLEASEENTERASTRING“GETSAPRINTF“NPLEASEENTERACHAR“CHGETCHARPRINTF“NTHENUMBEROFTHECHARISDN“,FUNA,CH/WFFOPEN“OUTDAT“,“W“FPRINTFWF,“D“,FUN“123412132“,1FCLOSEWF/【參考答案】INTFUNCHARSS,CHARCINTI0FORSS0SSIFSSCI/求出SS所指字符串中指定字符的個數(shù)/RETURNI【考點(diǎn)分析】本題考查字符串結(jié)束標(biāo)識0FOR循環(huán)語句,如何遍歷字符串;通過IF條件語句,判斷是否相同?!窘忸}思路】從字符串SS中找出子字符串的方法是從第1個字符開始,對字符串進(jìn)行遍歷若SS串的當(dāng)前字符等于T串的第1個字符,兩字符串的指針自動加1,繼續(xù)比較下一個字符若比較至字符串的結(jié)尾,則跳出循環(huán)若SS串的字符和C串的字符不對應(yīng)相同,則繼續(xù)對SS串的下一個字符進(jìn)行處理。本程序是采用逐一比較的方式找出出現(xiàn)的次數(shù)。循環(huán)的作用是在串中從左到右逐一走動,IF的作用是進(jìn)行判斷是否相同,若與C相同,則表示又出現(xiàn)一次。第四套請補(bǔ)充函數(shù)FUN,該函數(shù)的功能是把ASCII碼為偶數(shù)的字符從字符串STR中刪除,結(jié)果仍然保存在字符串STR中,字符串STR從鍵盤輸入,其長度作為參數(shù)傳入函數(shù)FUN。例如,輸入“ABCDEF“,輸出“ACE“。注意部分源程序給出如下。請勿改動MAIN函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)FUN的橫線上填入所編寫的若干表達(dá)式或語句。試題程序INCLUDEINCLUDEDEFINEN80【1】INTI,J【2】FORI0IINCLUDELONGFUNLONGNUM/FOUND/LONGKDOKNUM10/FOUND/NUM10WHILENUMRETURNKMAININTNPRINTF“PLEASEENTERANUMBER“SCANF“LD“,PRINTF“NLDN“,FUNN【參考答案】1錯誤LONGK正確LONGK12錯誤NUM10;正確NUM/10【考點(diǎn)分析】變量初始化,保存乘積的變量初始化為1?!窘忸}思路】1K用來存放各位數(shù)字的積,初值應(yīng)為1。2這里是一個符號錯誤,除號使用“/“來表示的。請編寫一個函數(shù)FUN,它的功能是求出1到M含M之內(nèi)能被7或11整除的所有整數(shù)放在數(shù)組A中,通過N返回這些數(shù)的個數(shù)。例如,若傳給M的值為50,則程序輸出711142122283335424449注意部分源程序給出如下。請勿改動MAIN函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)FUN的花括號中填入所編寫的若干語句。試題程序INCLUDEINCLUDEINCLUDEDEFINEM100VOIDFUNINTM,INTA,INTNVOIDMAINFILEWFINTAAM,N,KSYSTEM“CLS“FUN50,AA,FORK0KINCLUDEINCLUDEINTFUNINTNINTFLAG0IFN40IF【1】FLAG1IF【2】FLAG1RETURN【3】VOIDMAININTYEARSYSTEM“CLS“PRINTF“INPUTTHEYEAR“SCANF“D“,IFFUNYEARPRINTF“DISALEAPYEARN“,YEARELSEPRINTF“DISNOTALEAPYEARN“,YEAR【參考答案】1N1000或N1002N40003FLAG【考點(diǎn)分析】本題考查判斷閏年的算法,年份能被4整除但不能被100整除,或者年份能被400整除。RETURN語句,負(fù)責(zé)將函數(shù)值返回給主調(diào)函數(shù)。一般情況下,FLAG在C語言中作為一種標(biāo)志來使用,本書中有多個題目都使用了FLAG標(biāo)志?!窘忸}思路】填空1判斷閏年的方法是,年份能被4整除但不能被100整除,或者年份能被400整除。N不能被100整除,即對100取余非零。填空2能被400整除的年份也是閏年,N能被400整除,即對400取余為零。填空3FLAG標(biāo)記年份N是否為閏年,當(dāng)FLAG為1時,是閏年,當(dāng)FLAG為0時,不是閏年。下列給定程序中函數(shù)FUN的功能是計算N。例如,給N輸入5,則輸出120000000。請改正程序中的錯誤,使程序能輸出正確的結(jié)果。注意不要改動MAIN函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序INCLUDEINCLUDEDOUBLEFUNINTNDOUBLERESULT10/FOUND/IFN0RETURN10WHILEN1LONGCFILEOUTPRINTF“INPUTA,B“SCANF“DD“,FUNA,B,PRINTF“THERESULTISLDN“,C/OUTFOPEN“OUTDAT“,“W“FUNA11,B22,FPRINTFOUT,“LDN“,CFCLOSEOUT/【參考答案】VOIDFUNINTA,INTB,LONGCCA101000B10100A/1010B/10【考點(diǎn)分析】本題考查如何取出數(shù)值N的各個位,主要是考查和/的交換使用。兩個整型數(shù)相除,/用來求得數(shù)的整數(shù)部分,用來求余數(shù)?!窘忸}思路】本題中主要的問題是怎么取出A和B的個位數(shù)和十位數(shù),取出后怎么表示成C中相應(yīng)的位數(shù)。由于A和B都是只有兩位的整數(shù),所以分別對它們除10可得到它們的十位數(shù),分別用10對它們求余可得到它們的個位數(shù)。得到后對應(yīng)乘以1000、100、10、1就可得到C的千位數(shù)、百位數(shù)、十位數(shù)和個位數(shù)。注意使用C時要進(jìn)行指針運(yùn)算。第六套請補(bǔ)充函數(shù)FUN,函數(shù)FUN的功能是求N的階乘。注意部分源程序給出如下。請勿改動MAIN函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)FUN的橫線上填入所編寫的若干表達(dá)式或語句。試題程序INCLUDELONGFUNINTNIF【1】RETURNNFUN【2】RETURN【3】VOIDMAINPRINTF“10LDN“,FUN10【參考答案】1N1或11和N1這兩種情況的處理方法不同,需要分開考慮。填空2階乘的算法是,當(dāng)N1時,NNN1,即FUNNNFUNN1。填空3N1是遞歸的終止條件,返回值為1。下列給定的程序中,函數(shù)FUN的功能是計算并輸出K以內(nèi)最大的10個能被13或17整除的自然數(shù)之和。K的值由主函數(shù)傳入,若K的值為500,則函數(shù)的值為4622。請改正程序中的錯誤,使它能得出正確的結(jié)果。注意不要改動MAIN函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序INCLUDEINCLUDEINCLUDEINTFUNINTKINTM0,MC0,JWHILEK2SYSTEM“CLS“PRINTF“FN“,FUN20/WFFOPEN“OUTDAT“,“W“FPRINTFWF,“F“,FUN20FCLOSEWF/【參考答案】DOUBLEFUNINTMINTIDOUBLES00FORI1IINCLUDEINCLUDEVOIDFUNINTK,INTBBINTIINTJ0FOR【1】I0IPRINTF“D“,BBIVOIDMAININTK1INTBB100SYSTEM“CLS“PRINTF“NPLEASEINPUTX“SCANF“D“,FUNK,BB【參考答案】1I12KI0INTI/FOUND/FORI2IINCLUDEINCLUDEINCLUDEDOUBLEFUNINTNVOIDMAINFILEWFSYSTEM“CLS“PRINTF“SFN“,FUN1000/WFFOPEN“OUTDAT“,“W“FPRINTFWF,“F“,FUN1000FCLOSEWF/【參考答案】DOUBLEFUNINTNDOUBLES00INTIFORI0I中對S求平方根。第八套請補(bǔ)充函數(shù)FUN,它的功能是計算并輸出N包括N以內(nèi)所有能被3或7整除的自然數(shù)的倒數(shù)之和。例如,在主函數(shù)中從鍵盤給N輸入30后,輸出為S1226323。注意部分源程序給出如下。請勿改動MAIN函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)FUN的橫線上填入所編寫的若干表達(dá)式或語句。試題程序INCLUDEDOUBLEFUNINTNINTIDOUBLESUM00FORI1【1】IIFI30【2】I70SUM【3】/IRETURNSUMVOIDMAININTNDOUBLESPRINTF“NINPUTN“SCANF“D“,SFUNNPRINTF“NNSFN“,S【參考答案】1IINCLUDEDOUBLEFUNINTX/FOUND/INTSUM00INTC0,I0WHILEXI0IFXI0SUMXICI/FOUND/SUMSUMCRETURNSUMVOIDMAININTX1000INTI0SYSTEM“CLS“PRINTF“NPLEASEENTERSOMEDATAENDWITH0“DOSCANF“D“,WHILEXI0PRINTF“FN“,FUNX【參考答案】1錯誤INTSUM00正確DOUBLESUM002錯誤SUMC正確SUM/C【考點(diǎn)分析】本題考查變量的數(shù)據(jù)類型,區(qū)別INT整型和DOUBLE雙精度型除法運(yùn)算符“/“?!窘忸}思路】1定義變量錯誤。2C語言中的除法運(yùn)算符是“/“。請編寫函數(shù)FUN,其功能是將所有大于1小于整數(shù)M的非素數(shù)存入XX所指數(shù)組中,非素數(shù)的個數(shù)通過K傳回。例如,輸入17,則應(yīng)輸出46891012141516。注意部分源程序給出如下。請勿改動MAIN函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)FUN的花括號中填入所編寫的若干語句。試題程序INCLUDEINCLUDEINCLUDEVOIDFUNINTM,INTK,INTXXVOIDMAINFILEWFINTM,N,ZZ100SYSTEM“CLS“PRINTF“NPLEASEENTERANINTEGERNUMBERBETWEEN10AND100“SCANF“D“,FUNN,PRINTF“NNTHEREAREDNONPRIMENUMBERSLESSTHAND“,M,NFORN0NDEFINEN3DEFINEM5VOIDMAININTI,JSTATICFLOATSCORENM835,82,86,65,67,80,915,84,99,95,905,95,86,95,97FLOATBBNSYSTEM“CLS“FORI0IINCLUDEINCLUDEINTFUNINTMINTK2WHILEKN。PM/NMN,例如,M12,N8時,運(yùn)行結(jié)果為495000000。注意部分源程序給出如下。請勿改動MAIN函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)FUN的花括號中填入所編寫的若干語句。試題程序INCLUDEINCLUDEINCLUDEFLOATFUNINTM,INTNVOIDMAINFILEWFSYSTEM“CLS“PRINTF“PFN“,FUN12,8/WFFOPEN“OUTDAT“,“W“FPRINTFWF,“F“,FUN12,8FCLOSEWF/【參考答案】FLOATFUNINTM,INTNINTIDOUBLEP10FORI1IINCLUDEINCLUDEDEFINEN81VOIDFUNCHARSINTI,NSTRLENS1CHARTFORI0I/FOUND/INTFUNNINTC/FOUND/IFN1C10ELSECFUNN12RETURNCVOIDMAININTNPRINTF“ENTERN“SCANF“D“,PRINTF“THERESULTDNN“,FUNN【參考答案】1錯誤INTFUNN正確INTFUNINTN2錯誤IFN1正確IFN1【考點(diǎn)分析】有參函數(shù)定義,其一般形式為類型標(biāo)識符函數(shù)名形式參數(shù)列表聲明部分語句在形參列表中給出的參數(shù)稱為形式參數(shù),它們可以是各種類型的變量,各參數(shù)之間用逗號間隔。在進(jìn)行函數(shù)調(diào)用時,主調(diào)函數(shù)將賦予這些形式參數(shù)實(shí)際的值。形參既然是變量,必須在形參表中給出形參列的類型說明?!窘忸}思路】1主函數(shù)中已經(jīng)定義了變量N的類型,在子函數(shù)中也要定義。2IF后面應(yīng)該緊跟一個條件判斷表達(dá)式,而N1是賦值表達(dá)式,表達(dá)式的值永遠(yuǎn)為真,也就是說這個條件永遠(yuǎn)成立,沒有遞歸執(zhí)行。請編一個函數(shù)FLOATFUNDOUBLEH,函數(shù)的功能是對變量H中的值保留兩位小數(shù),并對第三位進(jìn)行四舍五入規(guī)定H中的值為正數(shù)。例如,若H值為832433,則函數(shù)返回832若H值為832533,則函數(shù)返回833。注意部分源程序給出如下。請勿改動MAIN函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)FUN的花括號中填入所編寫的若干語句。試題程序INCLUDEINCLUDEINCLUDEFLOATFUNFLOATHVOIDMAINFILEWFFLOATASYSTEM“CLS“PRINTF“ENTERA“SCANF“F“,PRINTF“THEORIGINALDATAIS“PRINTF“FNN“,APRINTF“THERESULTFN“,FUNA/WFFOPEN“OUTDAT“,“W“FPRINTFWF,“F“,FUN832533FCLOSEWF/【參考答案】FLOATFUNFLOATHLONGTTH10005/10/單精度數(shù)H乘以1000后再加5,相當(dāng)于對H中的第三位小數(shù)進(jìn)行四舍五入,除以10后將其賦給一個長整型數(shù)時,把第三位小數(shù)后的數(shù)全部截去/RETURNFLOATT/100/除以100,保留2位小數(shù)/【考點(diǎn)分析】本題考查四舍五入方法的考查數(shù)據(jù)類型強(qiáng)制轉(zhuǎn)換。【解題思路】注意本題要求H的值真正發(fā)生了四舍五入,而不是為了輸出,即不能用PRINTF“72F“,H直接得到結(jié)果。由于單精度數(shù)H乘以1000后再加5,此時相當(dāng)于對H中的第三位小數(shù)進(jìn)行四舍五入,在將其賦給一個長整型數(shù)時,把第三位小數(shù)后的數(shù)全部截去。在RETURN中要將其中一個數(shù)轉(zhuǎn)成浮點(diǎn)型數(shù)。第十一套請補(bǔ)充MAIN函數(shù),該函數(shù)的功能是輸出一個N矩陣,要求非周邊元素賦值0,周邊元素賦值1。注意部分源程序給出如下。請勿改動MAIN函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在MAIN函數(shù)的橫線上填入所編寫的若干表達(dá)式或語句。試題程序INCLUDEINCLUDEDEFINEN10VOIDMAININTBBNNINTI,J,NSYSTEM“CLS“PRINTF“NINPUTNN“SCANF“D“,FORI0ILONGFUNINTG/FOUND/SWITCHGCASE0RETURN0/FOUND/CASE1CASE2RETURN1RETURNFUNG1FUNG2VOIDMAINLONGFIBINTNPRINTF“INPUTN“SCANF“D“,PRINTF“NDN“,NFIBFUNNPRINTF“FIBDNN“,FIB【參考答案】1錯誤SWITCHG正確去掉分號2錯誤CASE1CASE2RETURN1正確CASE1CASE2RETURN1【考點(diǎn)分析】SWITCH語句,其一般形式為SWITCH表達(dá)式CASE常量表達(dá)式1語句1CASE常量表達(dá)式2語句2CASE常量表達(dá)式N語句NDEFAULT語句N1“其中,SWITCH表達(dá)式后不帶有“,同時CASE語句常量后應(yīng)該是“?!窘忸}思路】C語言中,SWITCH語句之后不能有分號,并且CASE語句常量后該用是冒號。請編寫函數(shù)FUN,函數(shù)的功能是求出二維數(shù)組周邊元素之和,作為函數(shù)值返回。二維數(shù)組中的值在主函數(shù)中賦予。例如,若二維數(shù)組中的值為13579299946999813570則函數(shù)值為61。注意部分源程序給出如下。請勿改動MAIN函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)FUN的花括號中填入所編寫的若干語句。試題程序INCLUDEINCLUDEINCLUDEDEFINEM4DEFINEN5INTFUNINTAMNVOIDMAINFILEWFINTAAMN1,3,5,7,9,2,9,9,9,4,6,9,9,9,8,1,3,5,7,0INTI,J,YSYSTEM“CLS“PRINTF“THEORIGINALDATAISN“FORI0IINCLUDEDEFINEN80VOIDMAININTI0CHARSTRNCHARCHSYSTEM“CLS“PRINTF“NINPUTASTRINGN“GETSSTRPRINTF“NINPUTACHARATORN“SCANF“C“,WHILESTRI0IFSTRICH【1】【2】STRI【3】PRINTF“NDISPLAYSTRINGN“PUTSSTR【參考答案】1BREAK2I或I或I1或II130【考點(diǎn)分析】本題考查BREAK語句,通常用在循環(huán)語句和開關(guān)語句中。當(dāng)BREAK用于開關(guān)語句SWITCH中時,可使程序跳出SWITCH而執(zhí)行以后的語句。當(dāng)BREAK語句用于FOR、WHILE、DOWHILE循環(huán)語句時,可使程序終止循環(huán)而執(zhí)行循環(huán)后面的語句,通常BREAK語句總是與IF語句一起使用,即滿足條件時便跳出循環(huán)字符串結(jié)束標(biāo)識0,上機(jī)考試時經(jīng)??疾椤O铝薪o定程序中,函數(shù)FUN的功能是求出數(shù)組中最大數(shù)和次最大數(shù),并把最大數(shù)和A0中的數(shù)對調(diào)、次最大數(shù)和A1中的數(shù)對調(diào)。請改正程序中的錯誤,使它能得出正確的結(jié)果。注意不要改動MAIN函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序INCLUDEINCLUDEDEFINEN20/FOUND/VOIDFUNINTA,INTNINTI,M,T,KFORI0IAMMKTAIAIAMAMTMAININTBN11,5,12,0,3,6,9,7,10,8,N10,ISYSTEM“CLS“FORI0IINCLUDEINCLUDEFLOATFUNMAINFILEOUTFLOATFFUNPRINTF“ROOTFN“,F/OUTFOPEN“OUTDAT“,“W“FPRINTFOUT,“F“,FFCLOSEOUT/【參考答案】FLOATFUNFLOATX100,X0DOX0X1X1COSX0WHILEFABSX0X11E6RETURNX1【考點(diǎn)分析】DOWHILE循環(huán)語句,其形式為DO語句WHILE表達(dá)式這個循環(huán)與WHILE循環(huán)的不同在于它先執(zhí)行循環(huán)中的語句,然后再判斷表達(dá)式是否為真。如果為真則繼續(xù)循環(huán),如果為假,則終止循環(huán)。因此,DOWHILE循環(huán)至少要執(zhí)行一次循環(huán)語句。第十三套請補(bǔ)充MAIN函數(shù),該函數(shù)的功能是從鍵盤輸入3個整數(shù),然后找出最大的數(shù)并輸出。例如,輸入12,45,43,最大值為45。注意部分源程序給出如下。請勿改動MAIN函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在MAIN函數(shù)的橫線上填入所編寫的若干表達(dá)式或語句。試題程序INCLUDEINCLUDEINCLUDEVOIDMAININTA,B,C,MAXSYSTEM“CLS“PRINTF“NINPUTTHREENUMBERSN“SCANF“D,D,D“,PRINTF“THETHREENUMBERSARED,D,DN“,A,B,CIFAB【1】ELSE【2】IFMAXB,則A為A和B中的最大值,將A賦給MAX。填空2如果AINCLUDE/FOUND/VOIDFUNINTM,INTKINTAA20,IFORI0MI/FOUND/AAIM/KM/KFORII/FOUND/PRINTF“D“,AAIMAININTB,NPRINTF“NPLEASEENTERANUMBERANDABASEN“SCANF“DD“,FUNN,BPRINTF“N“【參考答案】1錯誤VOIDFUNINTM,INTK正確VOIDFUNINTM,INTK2錯誤AAIM/K正確AAIMK3錯誤PRINTF“D“,AAI正確PRINTF“D“,AAI1【考點(diǎn)分析】本題考查函數(shù)定義的一般形式,定義函數(shù)時不應(yīng)該帶有“求余運(yùn)算,注意求余運(yùn)算與整除運(yùn)算的區(qū)別?!窘忸}思路】1簡單的語法錯誤。2將十進(jìn)制正整數(shù)轉(zhuǎn)換成任意進(jìn)制的數(shù)和十進(jìn)制正整數(shù)轉(zhuǎn)換成二進(jìn)制的數(shù)的方法是一樣的。從整數(shù)N譯出它的各位K進(jìn)制數(shù)值,需采用除K取余的方法,即求N除K的余數(shù),得到它的K進(jìn)制的個位數(shù),接著將N除以K。在N不等于0的狀況下循環(huán),按順序求出N的K進(jìn)制的各個位上的數(shù)。3在進(jìn)行FORI0MI循環(huán)結(jié)束時,I已經(jīng)多加了一個1,所以這里要減去1。假定輸入的字符串中只包含字母和號。請編寫函數(shù)FUN,它的功能是將字符串中的前導(dǎo)號全部刪除,中間和后面的號不刪除。例如,若字符串中的內(nèi)容為ABCDEFG,刪除后,字符串中的內(nèi)容則應(yīng)當(dāng)是ABCDEFG。注意部分源程序給出如下。請勿改動MAIN函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)FUN的花括號中填入所編寫的若干語句。試題程序INCLUDEINCLUDEVOIDFUNCHARAVOIDMAINFILEWFCHARS81,T81“ABCDEFG“PRINTF“ENTERASTRINGN“GETSSFUNSPRINTF“THESTRINGAFTERDELETEDN“PUTSS/WFFOPEN“OUTDAT“,“W“FUNTFPRINTFWF,“S“,TFCLOSEWF/【參考答案】VOIDFUNCHARACHARPAWHILEPP/指針P指向字符串第一個字母/FORP0P,AAP/從第一個字母開始,其后的字符都放入指針A所指的字符串中/A0/在字符串最后加上結(jié)束標(biāo)記符/【考點(diǎn)分析】本題考查將字符串的前導(dǎo)號刪除,即可以通過WHILE循環(huán)語句、FOR循環(huán)語句進(jìn)行循環(huán)操作,將前導(dǎo)號后面字符重新儲存。字符串結(jié)束標(biāo)識0。【解題思路】根據(jù)題意需刪除給定字符串中的前導(dǎo)號,那么需要使用指針型變量來完成該操作,當(dāng)指針指向第一個非號,即可把后面的所有字符都存到一個新串中。我們在此提供另一種解答方法。INCLUDEVOIDFUNCHARACHARPAWHILEPPSTRCPYA,P第十四套函數(shù)FUN的功能是從三個形參A、B、C中找出中間的數(shù),作為函數(shù)值返回。例如,當(dāng)A3,B5,C4時,中間的數(shù)為4。注意部分源程序給出如下。請勿改動MAIN函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)FUN的橫線上填入所編寫的若干表達(dá)式或語句。試題程序INCLUDEINTFUNINTA,INTB,INTCINTTTABBCBACC【1】AC【2】BCC【3】RETURNTMAININTA13,A25,A34,RRFUNA1,A2,A3PRINTF“NTHEMIDDLENUMBERISDN“,R【參考答案】1A2A3B【考點(diǎn)分析】本題考查條件表達(dá)式,其一般形式為“表達(dá)式1表達(dá)式2表達(dá)式3“。其求值規(guī)則為如果表達(dá)式1的值為真,則以表達(dá)式2的值作為條件表達(dá)式的值,否則以表達(dá)式3的值作為整個條件表達(dá)式的值?!窘忸}思路】該題目給定語句沒有使用IF語句,而是直接使用條件表達(dá)式,如“MAXABAB“,執(zhí)行該語句的語義是如AB為真,則把A賦予MAX,否則把B賦予MAX。下列給定程序中,函數(shù)FUN的功能是計算函數(shù)FX,Y,ZXY/XYZY/ZY的值。其中X和Y不相等,Z和Y不等。例如,當(dāng)X的值為9,Y的值為11,Z的值為15時,函數(shù)值為350。請改正程序中的錯誤,使它能得出正確的結(jié)果。注意不要改動MAIN函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序INCLUDEINCLUDEINCLUDE/FOUND/DEFINEFUM,NM/NFLOATFUNFLOATA,FLOATB,FLOATCFLOATVALUEVALUEFUAB,ABFUCB,CB/FOUND/RETURNVALUEVOIDMAINFLOATX,Y,Z,SUMPRINTF“INPUTXYZ“SCANF“FFF“,PRINTF“XF,YF,ZFN“,X,Y,ZIFXY|YZPRINTF“DATAERRORN“EXIT0SUMFUNX,Y,ZPRINTF“THERESULTIS52FN“,SUM【參考答案】1錯誤DEFINEFUM,NM/N正確DEFINEFUM,NM/N2錯誤RETURNVALUE正確RETURNVALUE【考點(diǎn)分析】本題考查C語言宏定義函數(shù)返回值。【解題思路】如果從數(shù)學(xué)思路來說,這是一道簡單的數(shù)學(xué)題,當(dāng)然,用C語言的辦法實(shí)現(xiàn)的話,也用不了兩三句的程序。但是,這道題的考查點(diǎn)在C語言的宏定義上這樣的問題比較隱蔽,它的格式為“DEFINE標(biāo)識符字符串“,中間要用空格分開。在該題中,標(biāo)識符為FUM,N,而字符串則是M/N,由題干信息易知,應(yīng)該是“DEFINEFUM,NM/N“。請編寫函數(shù)FUN,該函數(shù)的功能是判斷字符串是否為回文,若是則函數(shù)返回1,主函數(shù)中輸出“YES“,否則返回0,主函數(shù)中輸出“NO“。回文是指順讀和倒讀都一樣的字符串。例如,字符串LEVEL是回文,而字符串123312就不是回文。注意部分源程序給出如下。請勿改動MAIN函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)FUN的花括號中填入所編寫的若干語句。試題程序INCLUDEDEFINEN80INTFUNCHARSTRMAINCHARSNFILEOUTCHARTEST“1234321“,“123421“,“123321“,“ABCDCBA“INTIPRINTF“ENTERASTRING“GETSSPRINTF“NN“PUTSSIFFUNSPRINTF“YESN“ELSEPRINTF“NON“/OUTFOPEN“OUTDAT“,“W“FORI0IINTC1,C2,C3VOIDFUNLONGNC1C2C30WHILENSWITCH【1】CASE1C1【2】CASE2C2【3】CASE3C3N/10MAINLONGN123114350LFUNNPRINTF“NTHERESULTN“PRINTF“NLDC1DC2DC3DN“,N,C1,C2,C3【參考答案】1N102BREAK3BREAK【考點(diǎn)分析】本題考查SWITCH語句,注意該語句的一般形式。如何提取數(shù)值N某一位上的數(shù)。BREAK語句的使用?!窘忸}思路】填空1要統(tǒng)計長整數(shù)N的各位上出現(xiàn)數(shù)字1、2、3的次數(shù),就需要判斷各位上的數(shù)是多少。那么,通過N除以10求余,可得到個位上的數(shù),所以填入N10。填空2和填空3SWITCH語句是多分支選擇語句,在每個分支中要加入BREAK,不然會依次執(zhí)行后面的分支。CONTINUE是結(jié)束當(dāng)前分支的運(yùn)行,而BREAK結(jié)束整個SWITCH語句的運(yùn)行。下列給定程序中函數(shù)FUN的功能是先將在字符串S中的字符按逆序存放到T串中,然后把S中的字符按正序連接到T串的后面。例如,當(dāng)S中的字符串為ABCDE時,則T中的字符串應(yīng)為EDCBAABCDE。請改正程序中的錯誤,使它能得出正確的結(jié)果。注意不要改動MAIN函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序INCLUDEINCLUDEINCLUDEINCLUDEVOIDFUNCHARS,CHARTINTI,S1S1STRLENSFORI0IINCLUDEINCLUDEDEFINEN81VOIDFUNCHARSMAINCHARANFILEOUTPRINTF“ENTERASTRING“GETSAPRINTF“THEORIGINALSTRINGIS“PUTSAFUNAPRINTF“N“PRINTF“THESTRINGAFTERMODIFIED“PUTSASTRCPYA,“HELLOWORLD“FUNA/OUTFOPEN“OUTDAT“,“W“FPRINTFOUT,“S“,AFCLOSEOUT/【參考答案】VOIDFUNCHARSCHARCHINTI,M,NI0MNSTRLENS1WHILEIINCLUDEVOIDMAININTI,GSYSTEM“CLS“FORI1IINTFUNINTX,INTY,INTZINTJ,T,N,M/FOUND/J1TMN1/FOUND/WHILET0TJXMJYNJZRETURNJVOIDMAININTX1,X2,X3,JPRINTF“INPUTX1X2X3“SCANF“DDD“,PRINTF“X1D,X2D,X3DN“,X1,X2,X3JFUNX1,X2,X3PRINTF“THEMINIMALCOMMONMULTIPLEISDN“,J【參考答案】1錯誤J1正確J02錯誤WHILET0WHILE循環(huán)條件及“邏輯或“運(yùn)算?!窘忸}思路】1J通過循環(huán)加1求出三個數(shù)的最小公倍數(shù),當(dāng)三個數(shù)都為1時,則最小公倍數(shù)為1。然而,如果J初始為1時,那么計算最小公倍數(shù)時就從2開始了,所以改為J0。2不需要同時都不為0,只要有一個不為0,就有最小公倍數(shù)。請編寫一個函數(shù)FUN,它的功能是將一個數(shù)字字符串轉(zhuǎn)換為一個整數(shù)不得調(diào)用C語言提供的將字符串轉(zhuǎn)為整數(shù)的函數(shù)。例如,若輸入字符串“1234“,則函數(shù)把它轉(zhuǎn)換為整數(shù)值1234。注意部分源程序給出如下。請勿改動MAIN函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)FUN的花括號中填入所編寫的若干語句。試題程序INCLUDEINCLUDELONGFUNCHARPVOIDMAINFILEWFCHARS6LONGNPRINTF“ENTERASTRINGN“GETSSNFUNSPRINTF“LDN“,N/WFFOPEN“OUTDAT“,“W“FPRINTFWF,“LD“,FUN“1234“FCLOSEWF/【參考答案】LONGFUNCHARPLONGN0INTFLAG1IFP/負(fù)數(shù)時置FLAG為1/PFLAG1ELSEIFP/正數(shù)時置FLAG為1/PWHILEP0NN10P0/將字符串轉(zhuǎn)成相應(yīng)的整數(shù)/PRETURNNFLAG【考點(diǎn)分析】本題考查字符串轉(zhuǎn)整數(shù)算法?!窘忸}思路】IF的作用是判斷它是正數(shù)還是負(fù)數(shù)。WHILE循環(huán)的作用是將字符串轉(zhuǎn)成相應(yīng)的整數(shù)。注意P是一個字符如9、4,并不是一個數(shù),要將其轉(zhuǎn)成相應(yīng)的數(shù)字必須令其減去0不是0,即P0就得到P這個字符的相應(yīng)數(shù)字,如000、808等。在程序的前面加INCLUDE,函數(shù)ATOL的作用是將字符串P轉(zhuǎn)成長整型數(shù),它是一個庫函數(shù)。第十七套請補(bǔ)充MAIN函數(shù),該函數(shù)的功能是打印出滿足個位的數(shù)字、十位上的數(shù)字和百位上的數(shù)字都相等的所有三位數(shù)。本題的結(jié)果為111222333444555666777888999。注意部分源程序給出如下。請勿改動MAIN函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在MAIN函數(shù)的橫線上填入所編寫的若干表達(dá)式或語句。試題程序INCLUDEINCLUDEVOIDMAININTG,S,BSYSTEM“CLS“FORG1GINCLUDEINCLUDEDEFINEN20INTFUNFLOATS,INTN,FLOATAVERFLOATAVE,T00INTCOUNT0,K,IFORK0KINCLUDEINCLUDEVOIDFUNCHARSSVOIDMAINCHARTT51FILEOUTPRINTF“PLEASEENTERANCHARACTERSTRINGWITHIN50CHARACTERSN“GETSTTPRINTF“NNAFTERCHANGING,THESTRINGNS“,TTFUNTTPRINTF“NBECOMESNS“,TT/OUTFOPEN“OUTDAT“,“W“STRCPYTT,“AFTERCHANGINGTHESTRING“FUNTTFPRINTFOUT,“S“,TTFCLOSEOUT/【參考答案】VOIDFUNCHARSSINTI,N0CHARPSSWHILEPNPFORI0IAFLOATAVER0SYSTEM“CLS“FORJ2JINCLUDEINCLUDEVOIDFUNCHARS,INTNCHARA80,PINTI/FOUND/SPFORI0IINCLUDEINCLUDEINCLUDEINTFUNCHARSTR,CHARSUBSTRVOIDMAINFILEWFCHARSTR81,SUBSTR3INTNSYSTEM“CLS“PRINTF“輸入主字符串“GETSSTRPRINTF“輸入子字符串“GETSSUBSTRPUTSSTRPUTSSUBSTRNFUNSTR,SUBSTRPRINTF“NDN“,N/WFFOPEN“OUTDAT“,“W“NFUN“ASDASASDFGASDASZX67ASDMKLO“,“AS“FPRINTFWF,“D“,NFCLOSEWF/【參考答案】INTFUNCHARSTR,CHARSUBSTRINTI,J0FORI0STRI10I/如果一個長度為2的子字符串在主字符串中出現(xiàn)一次,則J1,如此循環(huán)/IFSTRISUBSTR0RETURNJ/返回子字符串在主字符串中出現(xiàn)的次數(shù)/【考點(diǎn)分析】本題考查遍歷字符串實(shí)現(xiàn)字符串比較運(yùn)算。【解題思路】該題中SUBSTR只有兩個字符,所以可以用IF語句直接進(jìn)行判斷。注意IF中STR數(shù)組的下標(biāo)為I和I1,即比較當(dāng)前字符及其后面的一個字符是否分別與SUBSTR中的字符對應(yīng)相同,若都相同則表示出現(xiàn)了一次。第十九套請補(bǔ)充函數(shù)FUN,該函數(shù)的功能是求一維數(shù)組XN的平均值,并對所得結(jié)果進(jìn)行四舍五入保留兩位小數(shù)。例如,當(dāng)X10156,199,167,152,183,121,155,110,100,160,結(jié)果為AVG15030000。注意部分源程序給出如下。請勿改動MAIN函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)FUN的橫線上填入所編寫的若干表達(dá)式或語句。試題程序INCLUDEINCLUDEINCLUDEDOUBLEFUNDOUBLEX10INTILONGTDOUBLEAVG00DOUBLESUM00FORI0IINCLUDEINCLUDEFUNCHARPINTI,TCHARC80FORI0,T0PIIIFISSPACEPICTPI/FOUND/CT“0“STRCPYP,CVOIDMAINCHARC,S80INTI0PRINTF“INPUTASTRING“CGETCHARWHILECSICICGETCHARSI0FUNSPUTSS【參考答案】1錯誤CT“0“正確CT0【考點(diǎn)分析】字符串結(jié)束標(biāo)識0,0屬于一個字符,其ASCII碼為0。【解題思路】該程序的IF條件中應(yīng)用了ISSPACE函數(shù),該函數(shù)的功能是檢查CH是否空格、跳格符制表符或換行符。字符串常量占的內(nèi)存字節(jié)數(shù)等于字符串中字節(jié)數(shù)加1。增加的一個字節(jié)中存放字符0ASCII碼為0,這是字符串結(jié)束的標(biāo)志。編寫一個函數(shù),從傳入的NUM個字符中找出最長的一個字符串,并通過形參指針MAX傳回該串地址用作為結(jié)束輸入的標(biāo)志。注意部分源程序給出如下。請勿改動MAIN函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)FUN的花括號中填入所編寫的若干語句。試題程序INCLUDEINCLUDEINCLUDEINCLUDECHARFUNCHARA81,INTNUM,CHARMAXVOIDMAINFILEWFCHARSS1081,PSNULLCHARS381“ABCD“,“DEG“,“DIEGNS“,PNULLINTI0,NSYSTEM“CLS“PRINTF“輸入若干個字符串“GETSSSIPUTSSSIWHILESTRCMPSSI,“0/用4個星號作為結(jié)束輸入的標(biāo)志/IGETSSSIPUTSSSINIPSFUNSS,N,PSPRINTF“NMAXSN“,PS/WFFOPEN“OUTDAT“,“W“PFUNS,3,PFPRINTFWF,“S“,PFCLOSEWF/【參考答案】CHARFUNCHARA81,INTNUM,CHARMAXINTI0MAXA0/找出最長的一個字符串/FORI0IINCLUDEINCLUDEDEFINEN80CHARSTRNVOIDFUNLONGINTNINTI0WHILE【1】STRI【2】N/10I【3】VOIDMAINLONGINTN13572468SYSTEM“CLS“PRINTF“THEORIGIALDATAN“PRINTF“NLD“,NFUNNPRINTF“NS“,STR【參考答案】1N02N1003STRI0【考點(diǎn)分析】本題考查WHILE循環(huán)語句,一般需按照題意確定循環(huán)條件如何取出數(shù)值的各個位字符串結(jié)束標(biāo)識0?!窘忸}思路】填空1WHILE循環(huán)的執(zhí)行條件是N0,當(dāng)N0時,說明已經(jīng)將整數(shù)的各位數(shù)字都轉(zhuǎn)換為數(shù)字字符,并存入字符串中。填空2N對10求余,得到整數(shù)N的個位數(shù)字,再加上字符0的ASCII碼,得到對應(yīng)的數(shù)字字符,并存入字符串STR中。填空3將整數(shù)轉(zhuǎn)換為字符串并倒序存入字符數(shù)組STR中后,還要在STR最后加上字符串結(jié)束標(biāo)記符0。下列給定程序中,函數(shù)FUN的功能是先從鍵盤上輸入一個3行、3列的矩陣的各個元素的值,然后輸出主對角線元素之和。請改正函數(shù)FUN中的錯誤,使它能得出正確的結(jié)果。注意不要改動MAIN函數(shù),不得增行或刪行,也不得更改程序的結(jié)構(gòu)。試題程序INCLUDEVOIDFUNINTA33,SUMINTI,J/FOUND/SUM1FORI0IINCLUDEINCLUDEVOIDFUNCHARP1,CHARP2VOIDMAINFILEWFCHARS180,S240CHARP180“FIRSTSTRING“,P240“SECONDSTRING“SYSTEM“CLS“PRINTF“ENTERS1ANDS2N“SCANF“SS“,S1,S2PRINTF“S1SN“,S1PRINTF“S2SN“,S2PRINTF“INVOKEFUNS1,S2N“FUNS1,S2PRINTF“AFTERINVOKINGN“PRINTF“SN“,S1/WFFOPEN“OUTDAT“,“W“FUNP1,P2FPRINTFWF,“S“,P1FCLOSEWF/【參考答案】VOIDFUNCHARP1,CHARP2INTI,JFORI0P1I0I/救出的I為P1字符串的總長度,包括結(jié)束標(biāo)記位/FORJ0P2J0JP1IP2J/將P2字符串連在P1字符串后面/P1I0/在字符串最后加上結(jié)束標(biāo)記符/【考點(diǎn)分析】本題考查不使用字符串函數(shù)實(shí)現(xiàn)字符串連接操作,通過FOR循環(huán)語句來完成,不要忘了最后需要加上字符串結(jié)束標(biāo)識0。【解題思路】本題用兩個循環(huán),第1個循環(huán)的作用是將I連到第1個字符串的末尾。第2個循環(huán)的作用是將第2個字符串的字符連到第1個字符串的末尾。第二十一套請補(bǔ)充函數(shù)FUN,該函數(shù)的功能是將字符串TT中的大寫字母都改為對應(yīng)的小寫字母,其他字符不變。例如,若輸入“AREYOUCOMEFROMSICHUAN“,則輸出“AREYOUCOMEFROMSICHUAN“。注意部分源程序給出如下。請勿改動MAIN函數(shù)和其他函數(shù)中的任何內(nèi)容,僅在函數(shù)FUN的橫線上填入所編寫的若干表達(dá)式或語句。試題程序INCLUDEINCLUDEINCLUDECHARFUNCHARTTINTIFORI0TTIIIFTTIARETURN【3】VOIDMAINCHARTT81PRINTF“NPLEASEENTERASTRING“GETSTTPRINTF“NTHERESULTSTRINGISNS“,FUNTT【參考答案】1TTIINCLUDEINCLUDEINCLUDECHARFUNCHARS,CHARTCHARP,R,A/FOUND/ANULLWHILESPSRTWHILER/FOUND/IF
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 代課老師考核制度
- 晶科績效考核制度
- 建立三評考核制度
- 部門綜合考核制度
- 合理教師考核制度
- 客服考核制度范本
- 飯店經(jīng)理考核制度
- 建立健全考核制度
- 工廠宿管考核制度
- 保安考核制度范本
- 八年級地理《中國氣候的主要特征》單元核心課教學(xué)設(shè)計
- (2025版)中國焦慮障礙防治指南
- DB4403T399-2023居家適老化改造與管理規(guī)范
- 解分式方程50題八年級數(shù)學(xué)上冊
- GB/T 27866-2023鋼制管道和設(shè)備防止焊縫硫化物應(yīng)力開裂的硬度控制技術(shù)規(guī)范
- 部編版小學(xué)語文四年級下冊第一單元教材解讀課件
- 骨科常見病、多發(fā)病清單、疑難病種清單、核心手術(shù)操作技術(shù)清單
- 保單整理分享課件
- 2022屆廣東省高考生物二輪總復(fù)習(xí)基因工程和細(xì)胞工程
- 光學(xué)干涉測量技術(shù)
- 課程設(shè)計鋼結(jié)構(gòu)平臺設(shè)計
評論
0/150
提交評論