2013年計(jì)算機(jī)二級無紙化上機(jī)題庫答案.docx_第1頁
2013年計(jì)算機(jī)二級無紙化上機(jī)題庫答案.docx_第2頁
2013年計(jì)算機(jī)二級無紙化上機(jī)題庫答案.docx_第3頁
2013年計(jì)算機(jī)二級無紙化上機(jī)題庫答案.docx_第4頁
2013年計(jì)算機(jī)二級無紙化上機(jī)題庫答案.docx_第5頁
已閱讀5頁,還剩102頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第1套程序填空題【參考答案】(1)3.0或(double)3(2)(3) (t+1)【考點(diǎn)分析】本題考查:基本算術(shù)運(yùn)算時(shí)的類型轉(zhuǎn)換,其轉(zhuǎn)換規(guī)則為:如果雙目運(yùn)算符兩邊運(yùn)算數(shù)的類型一致,則所得結(jié)果的類型與運(yùn)算數(shù)的類型一致;如果雙目運(yùn)算符兩邊運(yùn)算的類型不一致,系統(tǒng)將自動(dòng)進(jìn)行類型轉(zhuǎn)換,使運(yùn)算符兩邊的類型達(dá)到一致后,再進(jìn)行運(yùn)算規(guī)律見下表。運(yùn)算數(shù)1運(yùn)算數(shù)2轉(zhuǎn)換結(jié)果類型短整型大整型短整型長整型整型大整型整型長整型字符型整型字符型整型有符號(hào)整型無符號(hào)整型有符號(hào)整型無符號(hào)整型整型浮點(diǎn)型整型浮點(diǎn)型while循環(huán)語句,一般考查如何根據(jù)題意確定循環(huán)條件,以及如何通過循環(huán)變量變化實(shí)現(xiàn)循環(huán)操作。【解題思路】填空1:變量x定義為double類型,而運(yùn)算符/后面是整型數(shù),所以給x賦值時(shí),需要注意數(shù)據(jù)類型,此處不能將3.0寫成3。填空2:while循環(huán)語句的循環(huán)條件,根據(jù)題意確定循環(huán)變量應(yīng)大于1e3,因此此處應(yīng)填。填空3:表達(dá)式的通項(xiàng)是(2*i+1)/(2*i)2 ,由于程序中已定義t=2*i,所以此處應(yīng)該填寫(t+1)?!窘忸}寶典】本題填空1還可以運(yùn)用強(qiáng)制類型轉(zhuǎn)換來實(shí)現(xiàn)。強(qiáng)制類型轉(zhuǎn)換是通過類型轉(zhuǎn)換運(yùn)算來實(shí)現(xiàn)的。其一般形式為:(類型說明符) (表達(dá)式)。其功能是:把表達(dá)式的運(yùn)算結(jié)果強(qiáng)制轉(zhuǎn)換成類型說明符所表示的類型。例如: (float) a把a(bǔ)轉(zhuǎn)換為實(shí)型 (int)(xy)把xy的結(jié)果轉(zhuǎn)換為整型程序改錯(cuò)題【參考答案】(1)double fun(int n)(2)s=s+(double)a/b;【考點(diǎn)分析】本題考查:函數(shù)定義,函數(shù)定義的一般形式為:類型標(biāo)識(shí)符 函數(shù)名(形式參數(shù)表列),其中類型標(biāo)識(shí)符指明了本函數(shù)的類型,函數(shù)的類型實(shí)際上是函數(shù)返回值的類型?!窘忸}思路】(1)由語句return(s)和變量s定義為double數(shù)據(jù)類型可知,該函數(shù)定義時(shí)其類型標(biāo)識(shí)符為double類型。(2)注意數(shù)據(jù)類型double的書寫格式?!窘忸}寶典】確定函數(shù)類型標(biāo)識(shí)符在填空和改錯(cuò)題中經(jīng)??嫉?,如果函數(shù)沒有返回值,則函數(shù)定義為void型;如果函數(shù)有返回值,則函數(shù)類型應(yīng)與返回值類型一致;如果不定義函數(shù)類型標(biāo)識(shí)符,則系統(tǒng)默認(rèn)為int型。程序設(shè)計(jì)題【參考答案】int fun (int aM)int i,j,max=a00; for(i=0;i2;i+) for(j=0;jM;j+) if(maxaij) max=aij; return max;【考點(diǎn)分析】本題考查:求數(shù)組的最大值,需要運(yùn)用循環(huán)語句,因?yàn)閿?shù)組是二維數(shù)值,所以應(yīng)使用二層加for循環(huán)嵌套。使用for循環(huán)語句時(shí)需要注意循環(huán)變量的取值范圍?!窘忸}思路】此類求最大值或最小值的問題,我們可以采用逐個(gè)比較的方式,要求對數(shù)組中所有元素遍歷一遍,并且從中找出數(shù)組最大值或最小值。首先定義變量max存放數(shù)組中的第一個(gè)元素的值,然后利用for循環(huán)逐個(gè)找出數(shù)組中的元素,并與max比較,如果元素值大于max,則將該值賦于max,循環(huán)結(jié)后max的值即為數(shù)組最大值,最后將該值返回。【解題寶典】該類題目考查較多,要掌握逐行比較的方法。對于m*n二維數(shù)組,如采用逐行查找方法,代碼實(shí)現(xiàn)為:for(i0;im;i)for(j0;j=eps)/*當(dāng)某項(xiàng)大于精度要求時(shí),繼續(xù)求下一項(xiàng)*/ s1=s1*n/(2*n+1);/*求多項(xiàng)式的每一項(xiàng)*/ s=s+s1;/*求和*/ n+; return 2*s;【考點(diǎn)分析】本題考查:迭代法求給定多項(xiàng)式的值,迭代算法:讓計(jì)算機(jī)對一組指令(或一定步驟)進(jìn)行重復(fù)執(zhí)行,在每次執(zhí)行這組指令(或這些步驟)時(shí),都從變量的原值推出它的一個(gè)新值。需要注意變量的數(shù)據(jù)類型以及賦初值操作?!窘忸}思路】首先應(yīng)該定義double類型變量,并且賦初值,用來存放多項(xiàng)式的某一項(xiàng)和最后的總和。從第2項(xiàng)開始以后的每一項(xiàng)都是其前面一項(xiàng)乘以n/(2*n+1),程序中用s1來表示每一項(xiàng),s表示求和后的結(jié)果。需注意s1和s的初值都為1.0,因?yàn)檠h(huán)變量從第二項(xiàng)開始累加。第3套程序填空題【參考答案】(1) si(2) 9(3)*t=n【考點(diǎn)分析】本題考查:for循環(huán)語句;if語句條件表達(dá)式;指針變量?!窘忸}思路】填空1:通過for循環(huán)語句,來判斷是否到字符串結(jié)尾,變量i用來存放字符串?dāng)?shù)組下標(biāo),則應(yīng)填入si。填空2:題目要求判斷數(shù)字字符,所以此處應(yīng)填入9。填空3:將數(shù)字字符個(gè)數(shù)存入變量t中,這里需注意變量t是指針變量?!窘忸}寶典】if語句的條件表達(dá)式一般會(huì)考查三方面的內(nèi)容: (1) 條件判斷,即與、與、與!的區(qū)別,需要仔細(xì)分析題干的意思,確定 條件表達(dá)式的內(nèi)容。 (2) 邏輯判斷,即&(邏輯與)與|(邏輯或)的區(qū)別,需要根據(jù)題干確定if條件中若干個(gè)條件表 達(dá)式的并存關(guān)系。 (3) (賦值號(hào))與(等于號(hào))的區(qū)別,注意在if條件中不會(huì)出現(xiàn)(賦值號(hào))。程序改錯(cuò)題【參考答案】(1)t = *x ; *x = y ;(2)return(t) ;或return t;【考點(diǎn)分析】本題考查:指針型變量的使用;通過return語句完成函數(shù)值的返回。【解題思路】首先,定義變量t作為中間變量,然后進(jìn)行數(shù)據(jù)交換,注意參數(shù)x是指針變量,交換時(shí)應(yīng)使用*x,最后確定返回值,根據(jù)代碼bfun(8a,b)可以知道返回值將賦給變量b,而b中應(yīng)存放交換前*x中的值,所以函數(shù)應(yīng)返回變量t。程序設(shè)計(jì)題【參考答案】void fun (int *a, int *n) int i,j=0; for(i=1;in)得余數(shù) r,再用余數(shù)r去除原來的除數(shù),得到新的余數(shù),重復(fù)此過程直到余數(shù)為 0時(shí)停止,此時(shí)的除數(shù)就是m 和 n的最大公約數(shù)。程序首先判斷參數(shù)a和b的大小,如果ab則進(jìn)行交換,這里是一個(gè)數(shù)學(xué)邏輯錯(cuò)誤,應(yīng)先將a的值賦給中間變量t,再將b的值賦給a,最后將t的值賦給b。當(dāng)余數(shù)r為0時(shí),除數(shù)b即為所求的最大公約數(shù),所以函數(shù)應(yīng)返回b。程序設(shè)計(jì)題【參考答案】void fun( char *a ) int i,j=0; for(i=0;ai!=0;i+) if(ai!=*) aj+=ai;/*若不是要?jiǎng)h除的字符*則留下*/ aj=0;【考點(diǎn)分析】要?jiǎng)h除字符串中所有*號(hào)需要用循環(huán)語句遍歷字符串,用判斷語句判斷字符是否為*號(hào),由此可以決定該程序應(yīng)使用循環(huán)判斷結(jié)構(gòu)?!窘忸}思路】用循環(huán)操作從字符串的開始往后逐個(gè)進(jìn)行比較,若不是要?jiǎng)h除的字符(用if(ai!*)來控制)則保留。變量i和j用來表示原字符串的下標(biāo)和刪除*號(hào)后新字符串的下標(biāo)。注意下標(biāo)變量j要從0開始,最后還要加上字符串結(jié)束標(biāo)識(shí)0。第5套程序填空題【參考答案】(1)0(2) 10*x (3)n/10【考點(diǎn)分析】本題考查:已知某數(shù),如何求該數(shù)各個(gè)位數(shù)值,已知各個(gè)位數(shù)值,如何表示該數(shù);除法運(yùn)算?!窘忸}思路】填空1:定義變量t用來存放某數(shù)的各個(gè)位數(shù)值,此處判斷t是否為偶數(shù),即對2求余結(jié)果是否為0。填空2:將t作為x的個(gè)位數(shù),原來x的各個(gè)位上升1位,即x10*x+1。填空3:每循環(huán)一次,通過除法運(yùn)算,去掉數(shù)值最后一位?!窘忸}寶典】如果知道某數(shù)n的各個(gè)位的數(shù)值,可以得到該數(shù)值n,如n的個(gè)位為a、十位為b、百位為c,那么nc*100b*10a。如果知道數(shù)值n,可以采用求余和除法操作來表示其各個(gè)位,如n%10(取個(gè)位)、n/10(取十位),讀者可以自己考慮一下,如果是三位數(shù),如何提取各個(gè)位?四位數(shù)呢?程序改錯(cuò)題【參考答案】(1)*t=0;(2)if(d%2!=0)或if(d%2=1)【考點(diǎn)分析】本題考查:指針型變量作為函數(shù)參數(shù);if語句條件表達(dá)式,結(jié)合奇偶數(shù)的表示方法來確定該表達(dá)式內(nèi)容?!窘忸}思路】 (1) 由函數(shù)定義可知,變量t是指針變量,所以對t進(jìn)行賦初值0是不對的。因?yàn)閠指向的是存 放新數(shù)的變量,所以此處應(yīng)給新數(shù)賦初值0,即*t0。 (2) 變量d表示數(shù)s各個(gè)位上的數(shù),此處的if條件應(yīng)為判斷d是否為奇數(shù)。程序設(shè)計(jì)題【參考答案】void fun(char p1, char p2) int i,j; for(i=0;p1i!=0;i+) ; for(j=0;p2j!=0;j+) p1i+=p2j; p1i=0;【考點(diǎn)分析】本題考查:不使用字符串函數(shù)實(shí)現(xiàn)字符串連接操作。通過for循環(huán)語句來完成,不要忘了最后需要加上字符串結(jié)束標(biāo)識(shí)0?!窘忸}思路】本題用兩個(gè)循環(huán)完成操作,第1個(gè)循環(huán)的作用是求出第1個(gè)字符串的長度,即將i指到第1個(gè)字符串的末尾。第2個(gè)循環(huán)的作用是將第2個(gè)字符串的字符連到第1個(gè)字符串的末尾。最后在第1個(gè)字符串的結(jié)尾加上字符串結(jié)束標(biāo)識(shí)0。第6套程序填空題【參考答案】(1) ai(2) aj(3) aj【考點(diǎn)分析】本題考查:數(shù)組的引用;if語句條件表達(dá)式,如果表達(dá)式的值為真,則執(zhí)行下面的語句,如果該值為假,則不執(zhí)行下面的語句?!窘忸}思路】填空1:for循環(huán)語句循環(huán)體中將數(shù)組元素ai賦值給變量max和變量min。填空2:通過一次for循環(huán),找到數(shù)組中的最大值,if語句的條件表達(dá)式是maxaj?!窘忸}寶典】求最大值或者最小值的題目,一般都是假設(shè)一個(gè)元素最大或最小,然后通過if條件語句將該元素和其他元素進(jìn)行比較操作來完成。程序改錯(cuò)題【參考答案】(1)去掉分號(hào)(2)case 1:case 2:return 1;【考點(diǎn)分析】本題考查:switch語句,其一般形式為:switch(表達(dá)式)case常量表達(dá)式1: 語句1;case常量表達(dá)式2: 語句2;case常量表達(dá)式n: 語句n;default: 語句n1;其中switch(表達(dá)式)后不應(yīng)該帶有;,同時(shí)case語句常量后應(yīng)該是:?!窘忸}思路】C語言中,switch語句之后不能有分號(hào),并且case語句常量后應(yīng)用的是冒號(hào)。程序設(shè)計(jì)題【參考答案】void fun(STREC *a) int i; a-ave=0.0; for(i=0;iave=a-ave+a-si; a-ave/=N;/*求各門成績的總和*/ /*求平均分*/【考點(diǎn)分析】本題考查:結(jié)構(gòu)體類型成員運(yùn)算,指向結(jié)構(gòu)體類型的指針變量作函數(shù)參數(shù)?!窘忸}思路】本題考查自定義形參的相關(guān)知識(shí)點(diǎn),程序流程是這樣的:在fun()函數(shù)中求出平均分后,返回到主函數(shù)時(shí)平均分也要帶回,所以只能定義一個(gè)指針類型的形參STREC*a ,此時(shí),引用成員的方式可以使用指向運(yùn)算符,即aave和asi,當(dāng)然也可用(*a)ave和(*a)si。第7套程序填空題【參考答案】(1)char (2) chnext; while(p!=NULL) ave=ave+p-s; p=p-next; return ave/N;【考點(diǎn)分析】本題考查:鏈表的操作,對鏈表的主要操作有以下幾種:建立鏈表、結(jié)構(gòu)的查找與輸出、插入一個(gè)結(jié)點(diǎn)、刪除一個(gè)結(jié)點(diǎn)?!窘忸}思路】題目要求求鏈表中數(shù)據(jù)域的平均值,應(yīng)首先使用循環(huán)語句遍歷鏈表,求各結(jié)點(diǎn)數(shù)據(jù)域中數(shù)值的和,再對和求平均分。遍歷鏈表時(shí)應(yīng)定義一個(gè)指向結(jié)點(diǎn)的指針p,因?yàn)轭^結(jié)點(diǎn)中沒有數(shù)值,所以程序中讓p直接指向頭結(jié)點(diǎn)的下一個(gè)結(jié)點(diǎn),使用語句STREC *phnext。第8套程序填空題【參考答案】(1) M(2) (3) k【考點(diǎn)分析】本題考查:for循環(huán)語句的循環(huán)條件;if語句條件表達(dá)式;return語句完成函數(shù)值的返回?!窘忸}思路】填空1:題目指出ss所指字符串?dāng)?shù)組中共有M個(gè)字符串,所以for循環(huán)語句循環(huán)條件是iM。填空2:要求求長度最短的字符串,*n中存放的是已知字符串中長度最短的字符串的長度,這里將當(dāng)前字符串長度與*n比較,若小于*n,則將該長度值賦給*n,因此if語句的條件表達(dá)式為len=a)&( tti = z)(2)tti-=32;【考點(diǎn)分析】本題考查:if語句條件表達(dá)式;小寫字母轉(zhuǎn)大寫字母的方法。【解題思路】(1)分析本題可知,要判斷字符是否為小寫字母,即判斷其是否在az之間,所以這里需要進(jìn)行連續(xù)的比較,用&。(2)從ASCII碼表中可以看出,小寫字母的ASCII碼值比對應(yīng)大寫字母的ASCII值大32。將字符串中的小寫字母改為大寫字母的方法是:從字符串第一個(gè)字符開始,根據(jù)ASCII碼值判斷該字母是不是小寫字母,若是,則ASCII碼值減32即可。程序設(shè)計(jì)題【參考答案】void fun( int m, int *k, int xx ) int i,j,n=0;for(i=4;im;i+)/*找出大于1小于整數(shù)m的非素?cái)?shù)*/for(j=2;ji;j+) if(i%j=0) break; if(ji) xxn+=i;*k=n;/*返回非素?cái)?shù)的個(gè)數(shù)*/【考點(diǎn)分析】本題考查:如何判斷非素?cái)?shù);循環(huán)判斷結(jié)構(gòu);數(shù)組的引用?!窘忸}思路】題目要求將1m之間的非素?cái)?shù)存入數(shù)組中,應(yīng)使用循環(huán)判斷結(jié)構(gòu)。循環(huán)語句用來遍歷1m之間的每個(gè)數(shù),判斷語句用來判斷該數(shù)是否素?cái)?shù),若不是素?cái)?shù),則將其存入數(shù)組中。這道題目是考查一個(gè)數(shù)是否為素?cái)?shù)的簡單延伸,只要掌握了判斷素?cái)?shù)的方法,問題便能順利解決?!窘忸}寶典】判定一個(gè)數(shù)是否為素?cái)?shù),即該數(shù)除了能被1和它本身外,不能被任何數(shù)整除。代碼實(shí)現(xiàn)為:for(j=2;ji;j+) if(i%j=0)此語句需要熟記,很多判斷素?cái)?shù)的題目也可通過此法解決。/*如余數(shù)為0,證明i不是素?cái)?shù)*/第9套程序填空題【參考答案】(1)j+或j+=1或+j或j=j+1(2)si=t1i(3) j【考點(diǎn)分析】本題考查:指針型變量;數(shù)組變量賦值;for循環(huán)語句?!窘忸}思路】填空1:根據(jù)函數(shù)fun中的內(nèi)容可知,數(shù)組t1存儲(chǔ)了s中的非數(shù)字字符,數(shù)組t2存儲(chǔ)了s中的數(shù)字字符,為了存儲(chǔ)下一個(gè)數(shù)字字符,下標(biāo)j要進(jìn)行加1操作。填空2:將s串中的數(shù)字與非數(shù)字字符分開后,要先將非數(shù)字字符放入字符串s中,因此填入sit1i。填空3:最后將數(shù)字字符加到s串之后,并且i要小于數(shù)字的個(gè)數(shù)j。程序改錯(cuò)題【參考答案】(1)for (j = i + 1; j 6; j+)(2)*(pstr + i) = *(pstr + j) ;【考點(diǎn)分析】本題考查:冒泡排序算法;for循環(huán)語句格式;指針數(shù)組?!窘忸}思路】(1)此處考查for語句的格式,各表達(dá)式之間應(yīng)用;割開。(2)此處考查用指針表示數(shù)組元素的方法,*(pstrI)表示pstr所指向數(shù)組的第I個(gè)元素,同理*(pstrj)表示pstr所指向數(shù)組的第j個(gè)元素。【解題寶典】冒泡排序算法,其基本思想是,將待排序的元素看作是豎著排列的氣泡,較小的元素比較輕,從而要往上浮。在冒泡排序算法中我們要對這個(gè)氣泡序列處理若干遍。所謂一遍處理,就是自底向上檢查一遍這個(gè)序列,并時(shí)刻注意兩個(gè)相鄰的元素的順序是否正確。如果發(fā)現(xiàn)兩個(gè)相鄰元素的順序不對,即輕的元素在下面,就交換它們的位置。顯然,處理一遍之后,最輕的元素就浮到了最高位置;處理二遍之后,次輕的元素就浮到了次高位置。依次類推,完成排序。用代碼實(shí)現(xiàn)數(shù)組sN的升序排列為:for(i0; iN; i)for(ji1; jsj)tsi; sisjsjt;程序設(shè)計(jì)題【參考答案】int fun(char *ss, char c)int i=0; for(;*ss!=0;ss+) if(*ss=c) i+;/*求出ss所指字符串中指定字符的個(gè)數(shù)*/ return i;【考點(diǎn)分析】本題考查:for循環(huán)語句遍歷字符串,并通過if條件語句,判斷字符串是否結(jié)束?!窘忸}思路】從字符串中查找指定字符,需要使用循環(huán)判斷結(jié)構(gòu),循環(huán)語句用來遍歷字符串,循環(huán)條件為字符串沒有結(jié)束,即當(dāng)前字符不是0,判斷語句用來判斷當(dāng)前字符是否為指定字符。最后返回指定字符的個(gè)數(shù)。第10套程序填空題【參考答案】(1)x(2)p(3)s【考點(diǎn)分析】本題考查: 鏈表的基本操作。了解鏈表的基本思想和相關(guān)算法,理解有關(guān)鏈表插入及刪除時(shí)指針移動(dòng)的先后順序問題,注意指針的保存和歸位。【解題思路】填空1:將形參x賦值給結(jié)點(diǎn)的數(shù)據(jù)域。填空2和填空3:將新的結(jié)點(diǎn)和原有鏈表中結(jié)點(diǎn)進(jìn)行比較。程序改錯(cuò)題【參考答案】(1)long k=1;(2)num /=10;【考點(diǎn)分析】本題考查:數(shù)據(jù)類型;保存乘積的變量初始化;除法運(yùn)算符?!窘忸}思路】(1)k用來存放各位數(shù)字的積,初始值應(yīng)為1。(2)這里是一個(gè)符號(hào)錯(cuò)誤,除號(hào)用/來表示?!窘忸}寶典】明確C語言中的算術(shù)運(yùn)算符:加法運(yùn)算符:為雙目運(yùn)算符,即應(yīng)有兩個(gè)量參與加法運(yùn)算。減法運(yùn)算符:為雙目運(yùn)算符。但也可作負(fù)值運(yùn)算符,此時(shí)為單目運(yùn)算,如x,5等具有左結(jié)合性。乘法運(yùn)算符*:雙目運(yùn)算,具有左結(jié)合性。除法運(yùn)算符/:雙目運(yùn)算,具有左結(jié)合性。參與運(yùn)算量均為整型時(shí),結(jié)果也為整型,舍去小數(shù)。如果運(yùn)算量中有一個(gè)是實(shí)型,則結(jié)果為雙精度實(shí)型。求余運(yùn)算符(模運(yùn)算符)%:雙目運(yùn)算,具有左結(jié)合性。要求參與運(yùn)算的量均為整型。 求余運(yùn)算的結(jié)果等于兩數(shù)相除后的余數(shù)。程序設(shè)計(jì)題【參考答案】float fun ( float *a , int i; float av=0.0; for(i=0; in;i+) av=av+ai; return(av/n);intn)/*求分?jǐn)?shù)的總和*/*返回平均值*/【考點(diǎn)分析】本題考查:如何通過指針來實(shí)現(xiàn)計(jì)算平均分?!窘忸}思路】本題較簡單,只需用一個(gè)循環(huán)語句就可完成數(shù)組元素的求和,再將和除以課程數(shù)即可。需要注意的是本題對指針的操作,當(dāng)指針變量指向一個(gè)數(shù)組時(shí),用該指針變量引用數(shù)組元素,引用方式與數(shù)組的引用方式相同。如本題中a指向了score,所以通過a引用score中的元素時(shí)可以用下標(biāo)法,也可以用指針運(yùn)算法,ai和*(ai)具有相同的作用。下標(biāo)運(yùn)算實(shí)際上是從當(dāng)前地址開始往后取出地址中的第幾個(gè)元素,當(dāng)前地址下標(biāo)為0。例如,若有int cc10,*pcc5;,即p指向了cc的第5個(gè)元素,則p0的作用與cc5相同;p3的作用是取出從當(dāng)前地址(即p所指地址)開始往后的第3個(gè)元素,它與cc8相同;p2的作用是取出從當(dāng)前地址開始往前的第2個(gè)元素,它與cc3相同,但不提倡使用負(fù)的下標(biāo)?!窘忸}寶典】計(jì)算平均分方法。掌握以下語句:for(i=0;in;i+) /*求分?jǐn)?shù)的總和*/avav+ai;return (av/n);/*返回平均值*/第11套程序填空題【參考答案】(1)1(2) i(3) ap+i或*(a+p+i)【考點(diǎn)分析】條件運(yùn)算符組成條件表達(dá)式的一般形式:表達(dá)式1? 表達(dá)式2: 表達(dá)式3。其求值規(guī)則為:如果表達(dá)式1的值為真,則以表達(dá)式2 的值作為條件表達(dá)式的值,否則以表達(dá)式3的值作為整個(gè)條件表達(dá)式的值?!窘忸}思路】填空1:該處是判斷數(shù)組元素的個(gè)數(shù)是奇數(shù)還是偶數(shù),為奇數(shù)時(shí)要使當(dāng)前位置加1,以使p指向數(shù)組中間位置。填空2和填空3:這里是一個(gè)比較常見的數(shù)組位置調(diào)換程序,應(yīng)填入i和api。【解題寶典】變量交換算法:如變量a、b互換,需借助第三個(gè)變量temp完成,即tempa;ab;btemp。程序改錯(cuò)題【參考答案】(1)float k;(2)if(*a *c)【考點(diǎn)分析】本題考查:變量定義,根據(jù)給定程序語句確定變量類型;if語句條件表達(dá)式。【解題思路】(1) 觀察程序中的k,在賦值語句中,k是以變量的形式進(jìn)行賦值而非指針,所以將k定義為指針是錯(cuò)誤的。(2)此處if語句是為了將小于*c的值放入*c中,所以改為if(*a *c)。程序設(shè)計(jì)題【參考答案】intfun( STREC*a, STREC *b ) int i,j=0,max=a0.s; /*找出最大值*/for(i=0;iN;i+) if(maxai.s) max=ai.s;for(i=0;iN;i+) if(max=ai.s) bj+=ai;/*找出成績與max相等的學(xué)生的記錄,存入結(jié)構(gòu)體b中*/ return j;/*返回最高成績的學(xué)生人數(shù)*/【考點(diǎn)分析】本題考查:結(jié)構(gòu)體數(shù)組操作。用循環(huán)判斷結(jié)構(gòu)查找數(shù)組中的最大值?!窘忸}思路】該程序使用兩個(gè)循環(huán)判斷語句,第1個(gè)循環(huán)判斷語句的作用是找出最大值。第2個(gè)循環(huán)判斷語句的作用是找出與max相等的成績(即最高成績)的學(xué)生記錄,并存入b中?!窘忸}寶典】對于如何找出數(shù)組中最大值(多個(gè)相等)的方法,我們已經(jīng)不陌生。如果是對結(jié)構(gòu)體數(shù)組進(jìn)行類似操作呢?掌握以下語句:for(i0;iN;i) if(maxais) maxais;第12套程序填空題【參考答案】(1) N(2) k(3) ssi【考點(diǎn)分析】本題考查:for循環(huán)語句;if語句條件表達(dá)式;字符串拷貝函數(shù)strcpy 的使用?!窘忸}思路】填空1:for循環(huán)語句作用是遍歷字符串?dāng)?shù)組中的每一個(gè)字符串,所以循環(huán)變量i的循環(huán)條件是iN。填空2:題目要求刪除串長度小于k的字符串,所以if條件語句的條件表達(dá)式是lenk。填空3:通過字符串拷貝函數(shù)將串長不大于k的字符串另存,并記錄個(gè)數(shù)?!窘忸}寶典】字符串拷貝函數(shù)strcpy ,其格式為:strcpy (字符數(shù)組名1,字符數(shù)組名2)功能:把字符數(shù)組2中的字符串拷貝到字符數(shù)組1中。字符串結(jié)束標(biāo)識(shí)0也一同拷貝。字符數(shù)名2,也可以是一個(gè)字符串常量。這時(shí)相當(dāng)于把一個(gè)字符串賦予一個(gè)字符數(shù)組。程序改錯(cuò)題【參考答案】(1) int k=0;(2)while (*p|*q)【考點(diǎn)分析】本題考查:變量初始化,需根據(jù)題意確定變量含義,然后對其進(jìn)行初始化操作;while循環(huán)語句?!窘忸}思路】(1) 變量k存放數(shù)組c的下標(biāo),因此應(yīng)初始化為0。(2) while循環(huán)語句的循環(huán)條件是判斷兩個(gè)字符串是否到達(dá)結(jié)尾。程序設(shè)計(jì)題【參考答案】void fun( char *a ) int i=0; char *p=a; while(*p&*p=*) ai=*p; i+; p+; while(*p) if(*p!=*) ai=*p;i+; p+; ai=0;【考點(diǎn)分析】本題考查:指針型變量定義;while循環(huán)語句;if語句條件表達(dá)式;字符串結(jié)束標(biāo)識(shí)0。【解題思路】函數(shù)fun的功能:除了字符串前導(dǎo)的*號(hào)之外,將串中其他*號(hào)全部刪除。解答本題,(1) 定義一個(gè)臨時(shí)指針p,初始指向原串首地址;(2) 利用循環(huán)語句把字符串前導(dǎo)*號(hào)拷貝到原串;(3) 繼續(xù)移動(dòng)指針,把串中和串尾的非*號(hào)字符拷貝到原串;(4)為修改后的字符串賦結(jié)束字符0?!窘忸}寶典】要?jiǎng)h除字符串中的指定字符,我們通常采用保留非指定字符的方法。可以將非指定字符保留在原串,即將需要保留的字符從原串的起始位置重新賦值;也可以保留到新串,即新建一個(gè)字符串,存放要保留的字符。第13套程序填空題【參考答案】(1) 1(2) sk或*(s+k)【考點(diǎn)分析】(3) c本題考查:指針型變量;ifelse語句;賦值語句。【解題思路】填空1:函數(shù)fun中變量n統(tǒng)計(jì)字符的長度,假如長度為偶數(shù),則kn1;假如長度為奇數(shù),則kn2,使得下標(biāo)為奇數(shù)的最后一個(gè)元素有效 (不是0)。填空2:了解變量k的作用后,則將最右邊的奇數(shù)位置的數(shù)賦值給變量c。填空3:將最后一個(gè)下標(biāo)為奇數(shù)的元素移到第一個(gè)奇數(shù)位置。程序改錯(cuò)題【參考答案】(1)long s=0, t=0;(2)t=t/10;【考點(diǎn)分析】本題考查:變量賦初值操作;求余運(yùn)算和除法運(yùn)算的區(qū)別?!窘忸}思路】(1) t用來存放每次循環(huán)后的多位數(shù),第一次循環(huán)時(shí),t應(yīng)當(dāng)是個(gè)位數(shù),所以t的初始值應(yīng)為0。(2)根據(jù)題意,這里不需要求余數(shù),而是要去掉個(gè)位數(shù),重新組合一個(gè)數(shù),因此應(yīng)用除法運(yùn)算?!窘忸}寶典】去掉數(shù)值n的個(gè)位的方法是采用除法運(yùn)算,如果需要取出個(gè)位數(shù)才使用求余運(yùn)算,不要混淆。程序設(shè)計(jì)題【參考答案】void fun(char *tt, int pp)int i; for(i=0;i=a&*ttdata(3) t【考點(diǎn)分析】本題考查:鏈表數(shù)據(jù)結(jié)構(gòu),結(jié)點(diǎn)的表示方法,掌握鏈表數(shù)據(jù)結(jié)構(gòu)的基本思想;釋放內(nèi)存空間函數(shù)free()?!窘忸}思路】填空1:因?yàn)槭擎湵聿僮鳎砸箃逐一往后移動(dòng),語句為ttnext。填空2:輸出鏈表結(jié)點(diǎn)的數(shù)據(jù)域,即tdata。填空3:使用free函數(shù)將t所指向的內(nèi)存空間釋放。釋放內(nèi)存空間函數(shù)free調(diào)用形式: free(void*p);。功能:釋放p所指向的一塊內(nèi)存空間,p是一個(gè)任意類型的指針變量,它指向被釋放區(qū)域的首地址。被釋放區(qū)應(yīng)是由malloc或calloc函數(shù)所分配的區(qū)域。程序改錯(cuò)題【參考答案】(1)void fun(char *a)(2)printf(%c ,*a) ;【考點(diǎn)分析】本題考查:函數(shù)定義,本題為有參函數(shù)定義。printf()函數(shù),其一般形式為printf(格式控制字符串,輸出表列) ;。%d表示按十進(jìn)制整型輸出;%ld表示按十進(jìn)制長整型輸出;%c表示按字符型輸出等。非格式字符串在輸出時(shí)原樣輸出,起提示作用?!窘忸}思路】(1)定義函數(shù)時(shí)形參的類型要與調(diào)用函數(shù)中實(shí)參的類型一致,主函數(shù)中fun傳遞的是字符串s的首地址,所以此處形參

溫馨提示

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

評論

0/150

提交評論