3月全國計算機等級考試二級C語言上機考試題庫及答案已縮印最新版來自機房題庫_第1頁
3月全國計算機等級考試二級C語言上機考試題庫及答案已縮印最新版來自機房題庫_第2頁
3月全國計算機等級考試二級C語言上機考試題庫及答案已縮印最新版來自機房題庫_第3頁
3月全國計算機等級考試二級C語言上機考試題庫及答案已縮印最新版來自機房題庫_第4頁
3月全國計算機等級考試二級C語言上機考試題庫及答案已縮印最新版來自機房題庫_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第1套 一、填空給定函數(shù)的功能是調(diào)用fun函數(shù)建立班級通訊錄。通訊錄記錄每位學生的編號,姓名和電話號碼。班級的人數(shù)和學生的信息從鍵盤讀入,每個人的信息作為一個數(shù)據(jù)塊寫到名為答案yfile5.dat的二進制文件中。答案:1. STYPE 2. FILE 3. fp二、修改先將在字符串s中的字符按正序存放到t串中,然后把s中的字符按逆序連接到t串后面。答案:1. for(i = 0 ; i < sl ; i+) 2. t2*sl = 0; 三、程序?qū)蓚€兩位數(shù)的正整數(shù)a,答案合并成一個整數(shù)放在c中。合并的方式是:將a數(shù)的十位和個位數(shù)依次放在c數(shù)的千位和十位上,答案數(shù)的十位和個位數(shù)依次放在c數(shù)

2、的百位和個位上。*c=(a/10)*1000+(b/10)*100+(a%10)*10+(b%10);第2套 一、填空從鍵盤輸入若干行文本(每行不超過80個字符),寫到文件答案yfile4.txt中,用-1作為字符串輸入結(jié)束的標記。然后將文件的內(nèi)容讀出顯示在屏幕上。文件的讀寫分別有自定義函數(shù)ReadText和WriteText實現(xiàn)。答案 :*fw str str 二、修改從低位開始取出長整形變量s中的奇數(shù)位上的數(shù),依次構(gòu)成一個新數(shù)放在t中,高位仍放在高位,低位仍放在低位。答案: long *t sl = sl*10;三、程序?qū)蓚€兩位數(shù)的正整數(shù)a,答案合并成一個整數(shù)放在c中。合并的方式:將a數(shù)

3、的十位和個位數(shù)依次放在c數(shù)的千位和十位上,答案數(shù)的十位和個位數(shù)依次放在c數(shù)的百位和個位上。 *c=(b/10)*1000+(a%10)*100+(b%10)*10 +(a/10);第3套 一、填空將自然數(shù)110以及它們的平方根寫到名為答案yfile3txt的文本文檔中,然后再順序讀出顯示在屏幕上。答案: (1)fp (2)fclose(fp) (3)fname 二、修改將n個無序整數(shù)從小到大排序。答案: for(i=j+1;i<n;i+) p=i; 三、程序?qū)蓚€兩位數(shù)的正整數(shù)a,答案合并成一個整數(shù)放在c中。合并的方式是:將a數(shù)的十位和個位數(shù)依次放在c數(shù)的千位和十位上,答案數(shù)的十位和個位

4、數(shù)依次放在c數(shù)的百位和個位上 *c=(b%10)*1000+(a%10)*100+(b/10)*10+(a/10);第4套 一、填空調(diào)用函數(shù)fun將指定源文件中的內(nèi)容復(fù)制到指定的目標文件中,復(fù)制成功時函數(shù)返回值為1,失敗時返回值為0,在復(fù)制的過程中,把復(fù)制的內(nèi)容輸出到終端屏幕。主函數(shù)中源文件名放在變量sfname中,目標文件名放在變量tfname中答案: “r” fs ft二、修改將長整形數(shù)中每一位上為偶數(shù)的數(shù)依次取出,構(gòu)成一個新數(shù)放在t中。高位仍在高位仍在低位。 答案: if(d%2=0) s /= 10; 三、程序?qū)蓚€兩位數(shù)的正整數(shù)a,答案合并成一個整數(shù)放在c中。合并的方式是:將a數(shù)的十

5、位和個位數(shù)依次放在c數(shù)的千位和十位上,答案數(shù)的十位和個位數(shù)依次放在c數(shù)的百位和個位上。*c=(a%10)*1000+(b/10)*100+(a/10)*10+(b%10);第5套 一、填空把形參x的值放入一個新結(jié)點并插入到鏈表中,插入后結(jié)點數(shù)據(jù)域的值仍保持遞增有序。答案: x p s 二、修改計算正整數(shù)num的各位上的數(shù)字之積。答案:long k=1; num/=10 ; 三、程序計算n門課程的平均分,計算結(jié)果作為函數(shù)值返回。答案:int i; float ave=0.0; for(i=0; i<n; i+) ave=ave+ai ; ave=ave/n; return ave;第6套

6、一、填空給定程序中已建立一個帶有頭結(jié)點的單向鏈表,在答案ain函數(shù)中將多次調(diào)用fun函數(shù),沒調(diào)用一次fun函數(shù),輸出鏈表尾部結(jié)點中的數(shù)據(jù),并釋放該節(jié)點,是鏈表縮短。答案: next t->data t二、修改將字符串中的字符按逆序輸出,單補改變字符串中的內(nèi)容。答案:void fun (char *a) printf("%c", *a) ; 三、程序比較兩個字符串的長度(不得調(diào)用c語言提供的求字符串長度的函數(shù)),函數(shù)返回較長的字符串。若兩個字符串長度相同,則返回第一個字符串。答案:int i; char *p=s , *q=t; int n=0,m=0; while(*

7、p) n+;p+; while(*q) m+;q+; if(n>=m) p=s; else p=t; return p;第7套 一、填空刪除鏈表中數(shù)據(jù)域值相同的結(jié)點,使之只保留一個答案: q next next二、修改用選擇法對數(shù)組中的n個元素按從小到大的順序進行排序。答案: p = j; p=i; 三、程序求出1到答案之間(含答案)能被7或11整除的所有整數(shù)放在數(shù)組a中,通過n返回這些數(shù)的個數(shù)。答案: int i ,j=0; *n=0 ; for(i=1 ; i<=m; i+) if(i%7=0| i% 11 = 0) aj=i; j+; *n=j;第8套 一、填空在帶有頭結(jié)點的

8、單向鏈表中,查找數(shù)據(jù)域中值為ch的結(jié)點。找到后通過函數(shù)值返回改結(jié)點在鏈表中所處的順序號;不存在,函數(shù)返回0值答案: NULL n head ,ch 二、 修改刪除p所指字符串中的所有空白字符,輸入字符串是用“#”結(jié)束輸入。答案: for(i=0,t=0;pi;i+) ct='0' 三、程序?qū)s所指字符串中所有下標為奇數(shù)位置上的字母轉(zhuǎn)換成大寫答案: int i ; for(i=1;i< strlen(ss) ; i+=2) if(ssi >='a'&&ssi <= 'z') ssi - =32 ; 第9套 一、填

9、空統(tǒng)計出帶有頭結(jié)點的單向鏈表中的個數(shù),存放在形參n所指的存儲單元中。答案: *n next head二、修改求出s所指字符串中最后一次出現(xiàn)的t所指子字符串的地址,通過函數(shù)返回值返回,在主函數(shù)中輸出從此地址開始的字符串;若未找到,則函數(shù)值為NULL答案: a = NULL; if(* r =*p)三、程序?qū)所指字符串中除了下標問為偶數(shù),同時ASCII值也為偶數(shù)的字符外,其余的全部刪除:串中剩余字符所形成的一個新串放在t所指的數(shù)組中答案: int i, j = 0 ; for(i = 0 ; i < strlen(s) ; i += 2) if(si % 2 = 0) tj+ = si ;

10、 tj = 0 ; 第10套 一 填空計算出帶有頭結(jié)點的單向鏈表中各結(jié)點數(shù)據(jù)域中值之和作為函數(shù)的返回值。答案: data next head 二、修改將s所指字符串中出現(xiàn)的與t1所指字符串相同的字串全部替換成t2所指字符串,所形成的新串放在w所指的數(shù)組中,在此處,要求t1和t2所指字符串的長度相同。答案: while(*r) *a=*r ;a+; r+;三、程序?qū)所指字符串下標為偶數(shù)的字符刪除,串中剩余字符形成的新串放在t所指的數(shù)組中答案: int i, j = 0 ; for(i = 1 ; i < strlen(s); i+=2) tj+ = si ; tj = 0 ; 第11套

11、一填空找出指定編號人員的數(shù)據(jù)作為函數(shù)值返回,由主函數(shù)輸出,若指定編號不存在,返回數(shù)據(jù)中的編號為空串答案: STU stdi.num stdi 二、修改從s所指字符串中,找出與t所指字符串相同的字串的個數(shù)作為函數(shù)返回值答案: r+; p+; if(*r=0 )三、程序?qū)所指字符串中ASCII值為偶數(shù)的字符刪除,串中剩余字符形成一個新串放在t所指的數(shù)組中答案: int i, j = 0 ; for(i = 0 ; i < strlen(s); i+) if(si % 2) tj+ = si ; tj = 0 ;第12套一、填空找出指定出生年份的人員,將數(shù)據(jù)放在形參k所指的數(shù)組,由主函數(shù)輸出

12、,有函數(shù)值返回滿足指定條件的人數(shù)答案: stdi.year stdi n二、修改讀入一個整數(shù)k(2k1000),打印她的所有因子答案: 分號去掉or Isprime (int n) if (!( n%i )三、設(shè)計找出成績最高的學生記錄,通過形參指針傳回主函數(shù)答案: int i, max = a0.s, j = 0; for(i = 1 ; i < N ; i+) if(max < ai.s) j = i ; max = ai.s ; *s = aj ; 第13套 一、填空給定程序。將該學生的各科成績都乘以一個系數(shù)a答案: STU scorei &std二、修改求k!(k&

13、lt;13),所求階乘的值作為函數(shù)值返回,答案: if ( k>0) else if(k= =0)三、程序使數(shù)組左下三角元素的值乘以n答案: int i, j; for(i = 0 ; i < N ; i+) for(j = 0 ; j <= i; j+) aij *= n ;第14套 一、.填空將形參所指結(jié)構(gòu)體數(shù)組中的三個元素按num成員進行升序排列答案: *std PERSON std二、修改將m個字符串連接起來組成一個新串,放入pt所指存儲區(qū)中答案: int k,q,i; pti=strki; 三、程序使數(shù)組左下三角元素中的值全部值0答案: int i, j; for(

14、i = 0 ; i < N ; i+) for(j = 0 ; j <= i; j+) aij =0;第15套 一、.填空將形參std所指結(jié)構(gòu)體數(shù)組中年齡最大者的數(shù)據(jù)作為函數(shù)值返回,并在主函數(shù)中輸出答案: *std stdi.age 二、修改實現(xiàn)兩個整數(shù)的交換答案:void fun( int *a,int*b) t t= *b; *b= *a ; *a = t;三、程序請編寫一個函數(shù)、tt指向一個M行N列的二維數(shù)組,求二維數(shù)組每列中最小元素,并以此放入pp所指一維數(shù)組中。二維數(shù)組中的數(shù)已在主函數(shù)中賦予答案: int i,j, min, k ; for(i = 0 ;

15、 i <N;i+) min = tt0i ; k = 0 ; for(j = 1 ; j <M ; j+) if(min > ttji) min=ttji ; k = j ; ppi = ttki ; 第16套 一、.填空程序通過定義。輸出這位學生的信息答案: tt tt.scorei std 二、修改求出數(shù)組中最大數(shù)和次大數(shù),并把最大數(shù)和a【0】中的數(shù)對調(diào),次最大數(shù)和a【1】中的書對調(diào)答案: m=i; if(ak>am )m=k; 三、程序請編寫一個程序。w是一個大與10的無符號整數(shù),若w是n為的整數(shù),函數(shù)求出w的低n-1位的數(shù)作為函數(shù)值返回答案: unsigned

16、t,s=0, s1=1,p=0; t=w; while(t>10) if(t/10) p=t%10; s=s+p*s1; s1=s1*10; t=t/10; return s;第17套 一、.填空對形參ss所指字符串數(shù)組中的M個字符串按長度由短到長進行排序。ss所指字符串數(shù)組中共有M個字符串,且串長N答案: i+1 k=j t 二、修改判斷ch中字符是否與str所指串中的某個字符相同;若相同,什么也不做,若不同,則將其插在串的最后答案: void fun(char *str,char ch) if(*str != ch) str1=0;三、設(shè)計請編寫一個函數(shù)把s所指字符串中的內(nèi)容逆值答案

17、: char bN ; int i = 0, j ; memset(b,0,N); for(j = strlen(s) - 1 ; j >= 0 ; j-) bi+ = sj ; strcpy(s,b);第18套 一、填空求出形參ss所指的字符串數(shù)組中最長字符串的長度,其余字符串左邊用字符*補齊,使其與最長的字符串等長,字符串數(shù)組中共有M個字符串答案: k len ssij 二、修改計算整數(shù)n的階乘答案: result*=n-; return result;三、程序從s所指的字符串中刪除給定字符。同一個字母的大小寫按不同字符處理答案: char*p=s; int i = 0; while

18、(*p) if(*p!= c) si+ = *p ; p+; si = 0 ; 第19套 一、.填空求出形參ss所指字符串數(shù)組中最長字符串的長度,將其余字符串右邊用字符*補齊,使其與最長的字符串等長。Ss所指的字符串數(shù)組中共有M個字符串答案: ssi n+j 1 二、修改將p所指字符串中每個單詞的最后一個字母改成大寫答案:if(*p= ) *(p-1)=toupper(*(p-1);三、程序請編寫函數(shù)fun對長多為7個字符的字符串,除首,尾字符外,將其余5個字符按ASCII降序排列答案: char t ; int i, j ; for(i = 1 ; i < num-2;i+) for(

19、j=i+1;j<num-1;j+) if(si<sj) t=si; si=sj; sj=t ;第20套 一、.填空求ss所指字符串數(shù)組中長度最長的字符串所在的行下標,作為函數(shù)值返回,并把其串長放在形參n所指變量中。Ss所指字符串數(shù)組中共有M個字符串答案: N len *n=len 二、修改根據(jù)形參答案,計算如下公式的值答案: t +=1.0/i; return t; 三、程序編寫一個函數(shù)。該函數(shù)可以統(tǒng)計一個長度為2的字符串在另個字符串中出現(xiàn)的次數(shù)答案: int cnt = 0; char *p = str, *q ; while(*p)q=strstr(p,substr); if(

20、q=NULL)break; p=q+strlen(substr); cnt+; return cnt ; 第21套 一、.填空求ss所指字符串數(shù)組中長度最短的字符串所在的行下標,作為函數(shù)值返回,并把其串長放在形參n所指變量中答案: M < k 二、修改將tt所指字符串中的小寫字母都改為對應(yīng)的大寫字母,其他字符不變答案:if(a<=tti)&&(tti<=z) tti -= 32;三、程序?qū)⒋笥?小于整數(shù)m的非素數(shù)存入xx所指數(shù)組中非素數(shù)的個數(shù)通過k傳回答案:int i,j; int t=0; for (i=2;i<m;i+) j =2; while (j

21、<i) if (i%j=0)xxt=i; t+;break; j+; *k=t;第22套 一、.填空將s所指字符串中的所有數(shù)字字符轉(zhuǎn)移到所有非數(shù)字字符之后,并保持數(shù)字字符和非數(shù)字字符串原有的前后次序答案: j+ si=t1i j 二、修改用冒泡法對6個字符串由小到大的順序進行排序答案: for(j=i+1 ;j<6 ;j+) *(pstr + i)= *(pstr + j); 三 程序求出ss所指字符串中指定字符的個數(shù),并返回此值答案: int cnt = 0 ; char *p= ss ; while(*p) if(*p = c) cnt+ ; p+ ; return cnt;第

22、23套 一、.填空在形參所指字符串中的每個數(shù)字字符之后插入一個*號答案: && 0 sj 二、修改根據(jù)整形形參m,計算如下公式的值答案:for(i=2;i <=m;i+) y+=1.0/(i*i); 三 程序?qū)崿F(xiàn)B=A+A,即把矩陣A加上A的轉(zhuǎn)置,存放到B中答案: int c33 ; int i, j ; for(i = 0 ; i < 3 ; i+) for(j = 0 ; j < 3 ; j+) cij = aji ; bij = aij + cij ; 第24套 一、.填空統(tǒng)計形參s所指字符串中數(shù)字字符出現(xiàn)的次數(shù),并存放在形參t所指的變量中,最后在主函數(shù)

23、中輸出。答案: si 9 *t=n 二、修改通過某種方式實現(xiàn)倆個變量值的交換,規(guī)定不予許增加語句和表達式答案: t = *x ; *x = y ; return(t) ;三、程序求出1到1000之間能被7或11整除,但不能同時被7和11整除的所有整數(shù)并將他們放在a所指的數(shù)組中,通過n返回這些數(shù)的個數(shù)答案: int i ; *n = 0 ; for(i = 7 ; i < 1000 ; i+) if(i % 7) = 0 | (i % 11) = 0) && (i % 77) != 0) a(*n)+ = i ;第25套 一、.填空把形參s所指字符串中下標為奇數(shù)的字符右移到

24、下一個奇數(shù)的位置,最后邊被移除字符串的字符繞回放到第一個奇數(shù)位置,下標為偶數(shù)的字符不動答案: 1 sk c二、填空求s=aaaa-.aaa-aa-a答案: long s=0, t=0; t=t/10;三、程序請編寫一個函數(shù)。統(tǒng)計在tt所指字符串中a到z26個小寫字母各自出現(xiàn)的次數(shù),并依次放在pp所指數(shù)組中答案: char *p = tt ; int i ; for(i = 0 ; i < 26 ; i+) ppi = 0 ; while(*p ) if(*p >= 'a' && *p <= 'z') pp*p - 'a&

25、#39; += 1 ;p+ ; 第26套. 一、填空對形參s所指字符串中下標為奇數(shù)的字符按ascii碼大小遞增排序,并將排序后下標為基數(shù)的字符取出,存入形參p所指字符數(shù)組中,形成一個新串答案: t=I i 0 二、填空用下面公式求的近似值,直到最后一項的絕對值小于指定的數(shù)為止答案: while (fabs(t)>=num) t=s/n;三、程序 刪除一個字符串中指定下標的字符,其中,a指向原字符,刪除指定字符后的字符串存在b所指的數(shù)組中,n中存放指定下標答案: int p,m=0; for(p=0;p<LEN;p+) if(p!=n) bm=ap; m+; bm=0;第27套 一

26、填空在形參所指字符串中尋找一個字符串與參數(shù)c相同的字符,并在其后插入一個與之相同的字符,若找不到相同的字符則函數(shù)不做任何處理答案: 0 0 c二 修改計算數(shù)組元素中值為正數(shù)的平均值答案: double sum=0.0; sum/=c;三 設(shè)計根據(jù)以下公式s,計算結(jié)果作為函數(shù)返回值,n通過形參傳入答案: int k; float str =1.0, sum=1.0; for(k=2;k<=n; k+) sum =sum+k; str =str+1/sum; return str;第28套 一 填空有N*N的矩陣,根據(jù)給定的m的值,將每行元素中的值均右移m個位置,左邊置為0答案: i+ m

27、m二 修改計算并輸出high以內(nèi)最大的10個素數(shù)之和。High的值由主函數(shù)傳給fun函數(shù)答案: while(2<=high) && (n<10) yes=0; break;三 設(shè)計利用一下所示的簡單迭代方法求方程: 答案: float x0, x1=0.0; dox0=x1; x1=cos(x0);while(fabs(x0-x1)>0.000001); return x1;第29.套 一 填空將N*N的矩陣中元素值按列右移1個位置,右邊被移出矩陣的元素繞回左邊答案: N N-1 0二 修改計算并輸出下列的前N項之和Sn,Sn+1大于q為止,q的值通過形參傳入

28、答案: s=s+(n+1.)/n; return t;三 設(shè)計求Fibon.數(shù)列中大于t的最小的一個數(shù),結(jié)果由函數(shù)返回,答案: int f0 = 0, f1 = 1, f ; do f = f0 + f1 ; f0 = f1 ; f1 = f ; while(f < t) ; return f ; 第30套 一.填空有N*N矩陣,將矩陣的外圍元素順時針逆轉(zhuǎn),操作順序是:首先將第一行元素的值存入臨時數(shù)組r,然后使第一列成為第一行,最后一行成為第一列,最后一列成為最后一行。臨時數(shù)組中的元素成為最后一列答案: 0 j- - j二 修改 計算s=f(-n)+f(-n+1)+f(0)+f(1)+f

29、(2)+f(n)的值,答案: double f(double x) return s ;三 設(shè)計編寫函數(shù)fun,他的功能是計算s=ln(1)+ln(2.).ln(m)開根號答案: double s = 0.0 ; int i ; for(i = 1 ; i <= m ; i+) s += log(1.0 * i) ; s = sqrt(s) ; return s ; 第31套 一.填空有N*N矩陣,以主對角線為對稱線,對稱元素相加并將結(jié)構(gòu)存放在左下三角元素中,右上三角元素之位0答案: N tij tji二 修改計算函數(shù)F(x,y,z)=(x+y)/(x-y)+(z+y)/(z-y)的值。

30、其中x和y的值不等,z和y的值不等答案: (m)/(n) return (value);三 設(shè)計將字符串中的前導(dǎo)*號全部刪除,中間和尾部的*號不刪除答案: int j=0; char *p = a ; while(*p = '*') p+ ; while(*p) aj+ = *p;p+; aj=0 ; 第32套 一.填空將N*N矩陣主對角線元素中的值域反向?qū)蔷€對應(yīng)位置上的元素中的值交換答案: t N i=0;i<n s 二 修改利用折半查找法查找整數(shù)答案在整數(shù)數(shù)組的位置。若找到,返回其下標;反之,返回-1答案: int fun(int a,int m) else if

31、(m>amid)三 設(shè)計除了尾部的*號外,將字符串中的*號全部刪除,形參p以指向字符串中最后的一個字符,答案: char *q=a; int j=0; while(*q && q<p) if(*q != '*') aj+ = *q;q+ ; while(*p) aj+=*p+; aj=0;第33套 一.填空計算N*N矩陣的主對角線元素和反向?qū)蔷€元素之和,并作為函數(shù)值返回,答案: sum=0 tii 1 二 修改用二分法求方程的一個根,并要求絕對誤差不超過0.001答案: double r; while(fabs(n-m)>0.001)三 設(shè)計

32、除了尾部的*號外,將字符串中的*號全答案: int j=0; char *q=a; while(*q &&q<h) aj+= *q+ ; while(*h&&*p &&h < p) if(*h != '*') aj+ = *h ; h+; while(*p) aj+ = *p+ ; aj = 0; 第34套 一.填空把形參a所指數(shù)組中的奇數(shù)按原順序依次存放到a【0】,a【1】.中,偶數(shù)從數(shù)組中刪除,奇數(shù)個數(shù)通過函數(shù)值返回答案: 1 j+ j二 修改求出連個非零正整數(shù)的最大公約數(shù),并作為函數(shù)值返回答案: t=a;a=b;

33、b=t; return (b);三 設(shè)計除了尾部的*號外,將字符串中的*號全部刪除,形參答案以指向字符串中最后的一個字母,答案: int j =0 ; char *p=a; while(*p) if(*p!='*') aj+=*p;p+; aj=0; 第35套 一 填空把形參所指數(shù)組中的偶數(shù)按原順序依次存放到a【0】、a【1】,中,奇數(shù)從數(shù)組中刪去,偶數(shù)個數(shù)通過函數(shù)值返回答案: ai%2 aj j二 修改按一下遞歸公式求函數(shù)值答案: int fun(int n ) if(n=1) 三 設(shè)計使字符串尾部的*號不得多于n個;若多于n個,則刪除多于的*號,若少于n個,則什么也不做,字

34、符串中間和前面的*號不刪除答案:int i=0,j=0; char *p,*t; p=t=a;While(*t) t+; t-; while(*t=*)j+;t-;t+; if(j>n) while(*p&&p<t+n) ai=*p;i+;p+;ai=0;第36套 一.填空把形參a所指數(shù)組中的最小值放在元素a【0】中,按著把形參a所指數(shù)組中的最大值放在a【1】元素中;在把a所指數(shù)組中的次小元素放在a【2】所指的數(shù)組中,把a所指的數(shù)組元素中的次大放在a【3】;其余以此類推答案: ai aj aj 二 修改用遞歸算法計算非波拉且數(shù)列中第n項的值,答案:switch(g)

35、 case 1:return 1;case 2:return 1; 三 設(shè)計求學生的平均分放在記錄的ave成員中答案: int i ; for(i =0 ; i < N ; i+) a->ave = a->ave+a->si ; a->ave /= N ;第37套 一.填空把形參a所指數(shù)組中的最大值放在a【1】中,按著求出a所指數(shù)組中的最小值放在a【1】數(shù)組中;把a所指數(shù)組元素的次大值放在a【2】中,把a數(shù)組元素中的次小值放在a【3】中;其余以此類推。答案: *a 2 i+1 二 修改按順序給s所指數(shù)組中的元素賦予從2開始的偶數(shù),在按順序?qū)γ课鍌€元素求個一平均值,

36、并將這些值依次存放在w所指的數(shù)組中,若s所指數(shù)組元素的個數(shù)不是5的倍數(shù),多于部分忽略不計答案: sum=0.0; if(i+1)%5=0)三 設(shè)計把低于平均分的學生數(shù)據(jù)放在答案所指的數(shù)組中,低于平均分的學生人數(shù)通過形參n傳回,平均分通過函數(shù)值返回答案: int i ; double ave = 0.0 ; *n = 0 ; for(i = 0; i < N ; i+) ave = ave + ai.s ; ave/=N;for(i=0;i<N;i+)if(ai.s<ave)b*n=ai;(*n)+; return ave ; 第38套 一 .填空將形參a所指的數(shù)組中的前半部分

37、元素中的值和后半部分元素中的值兌換,形參n中存放數(shù)組中數(shù)據(jù)的個數(shù),若n為奇數(shù),則中間的元素不動答案: 1 i ap+i二 修改把主函數(shù)中輸入的3個數(shù),最大的放在a中,最小的放在c中,中間的放在b中答案: float k; if(*a<*c)三 設(shè)計把分數(shù)最高的學生的數(shù)據(jù)放在h所指數(shù)組中,答案: int i, max = a0.s, n=0; for(i = 1; i < N; i+) if(max < ai.s) max = ai.s ; for(i = 0; i < N; i+) if(max=ai.s) bn+ = ai ; return n; 第39套 一.填空逆

38、置數(shù)組元素中的值。答案: n/2 i an-1-i 二 修改將一個由八進制數(shù)字字符組成的字符串轉(zhuǎn)換為與其面值相等的十進制整數(shù),規(guī)定輸入的字符串最多只能包含5為八進制數(shù)字字符答案: n=*p-0: n=n*8+*p-0;三 設(shè)計函數(shù)返回指定學生的學生數(shù)據(jù),指定的學號在主函數(shù)中輸入,若沒找到指定學號,在結(jié)構(gòu)體變量中給學號置空串,給成績置-1,作為函數(shù)值返回答案: STREC c ; int i ; c.num0 = '0' ; c.s = -1 ; for(i = 0 ; i < N ; i+) if(strcmp(ai.num,b)=0) strcpy(c.num, ai.

39、num);c.s=ai.s; break ; return c ; 第40套 一.填空函數(shù)fun的功能。進行數(shù)字字符轉(zhuǎn)換,若形參ch中是數(shù)字字符0-9,則0轉(zhuǎn)換為9,1轉(zhuǎn)換為8,2轉(zhuǎn)換為79轉(zhuǎn)換為0;其他字符則保持不變;轉(zhuǎn)換后的結(jié)果作為函數(shù)值返回答案: char ch<='9' 0二 修改將p所指字符串中的所有字符復(fù)制到b中,每復(fù)制三個字符有插入一個空格答案: bk=*p; bk+= ;三 設(shè)計求出平均分,由函數(shù)值返回答案: STREC *p=h->next; double av=0.0;int n = 0 ;while(p!=NULL) av=av+p->s

40、 ; p=p->next; n+; av /= n ; return av;第41套 一.填空函數(shù)fun的功能。進行字母轉(zhuǎn)換,其他字符則保持不變,答案: && 'A' ch二 修改給一維數(shù)組a輸入任意4個整數(shù),并按下列的規(guī)律輸入答案:void fun(int *a) aj=aj-1;三 設(shè)計計算并輸出給定整數(shù)n的所有因子之和,規(guī)定n的值不大于1000答案: int s = 0, i ; for(i = 2 ; i < n ; i+) if(n % i = 0) s +=i ; return s ;第42.套 一 填空計算f(x)=1+x-x2/2(-

41、1)n-1xn/n!前n項答案: 1 -1 t 二 修改從3個紅球,5個白球,6個黑球中任意取出8個作為一組,進行輸出。每組,可以沒有黑球,但必須有紅球和白球,答案: for(i=1; i<=3; i+) if(k>=0 && k<=6)三 設(shè)計計算Sn=1+1/1!+1/2!.+1/n!答案:double s=1;long t=1;int i; for(i=1;i<=n;i+) t=t*i; s+=1./t; return s; 第43套 一.填空計算f(x)=1+x-x2/2!.(-1)xn/n! 至到|xn/n!|<10-6答案: x n f

42、abs(t)二 修改求整數(shù)x的y次方的低3為的值,答案: <= % 三 設(shè)計計算并輸出x0.97時下列多項式的值答案: int n=1; double sn=1, double xn=1;xn1=0; while(fabs(xn-xn1)>=0.000001)xn=xn*x*(0.5-n+1)/n; n+=1; sn+=xn; return(sn); 第44套 一.填空計算f(x)=1+x+x2/2!.xn/n!的前n項,答案: 1 1 i二 修改找出100至n之間三位數(shù)字相等的所有整數(shù),把這些整數(shù)放在s所指數(shù)組中,個數(shù)作為函數(shù)值返回答案: k=i; c=k%10;三 設(shè)計計算并輸

43、出給定10個數(shù)的方差答案: int i; double avg=0.0, sum=0.0,abs=0.0, fc; for (i=0;i<10;i+) sum+=xi;avg=sum/10;for (i=0;i<10;i+) abs+=(xi-avg)*(xi-avg); fc=sqrt(abs/10) ; return fc;第45套 一.填空計算f(x)=1+x+x2/2!+.xn/n!至到|xn/n!|<10-6答案: x n t 二 修改、計算n的5次方的值,通過形參指針傳回主函數(shù);計算該值的個位,十位,百位上數(shù)字之和作為函數(shù)值返回答案: d=1; s=0; d=d/

44、10;三 設(shè)計計算并輸出給定數(shù)組中每相鄰兩個元素之平均值的平方根之和答案:int i; double avg=0.0,sum=0.0; for(i=0;i<8;i+)avg=(xi+xi+1)/2; sum+=sqrt(avg); return sum;第46套 一 .填空統(tǒng)計所有小于等于n的素數(shù)的個數(shù),素數(shù)的個數(shù)作為函數(shù)值返回答案: j=3 i j二 修改計算前n項的累加和;沒累加一次把被4除后余2的當前累加值放入數(shù)組中,答案: sum=0;j=0; if(sum%4=2)三 設(shè)計計算Sn=1-2/2+1/3-1/4.+1/2n-1-1-1/2n答案: int i; double su

45、m=0.0; if (n>1 && n<=100) for(i=1; i<=n; i+) sum+=1.0/(2*i-1)-1.0/(2*i); return sum; 第47套 一.填空統(tǒng)計長整形數(shù)n的各個位上出現(xiàn)數(shù)字1、2、3的次數(shù),并通過外部變量c1、c2、c3返回主函數(shù)答案: n%10 break break二 修改統(tǒng)計一個無符號整數(shù)中各個數(shù)字值為零的個數(shù),通過形參傳回主函數(shù),把整數(shù)中最大的數(shù)字值作為函數(shù)值返回答案:if( t=0) *zero=count;三 設(shè)計計算S=1+1/1*2+1/1*2*3答案: double s=0, t=1; int

46、i ; for(i=1; i<=n; i+) t *= i; s+= 1./t; return s;第48套 一 .填空首先從素數(shù)2開始。用篩選法可得到2-n之間的所有素數(shù),方法是:首先從素數(shù)2開始,將所有2 的倍數(shù)的數(shù)答案: ai ai 0二 修改為一個偶數(shù)尋找兩個素數(shù)。這兩個素數(shù)之和等于該偶數(shù),并將各兩個素數(shù)通過形參指針傳回主函數(shù)答案: y=1; d=a-i;三 設(shè)計計算并輸出n以內(nèi)的能被5或9整除的所有自然數(shù)的倒數(shù)之和答案: int i; double sum=0.0; for(i=1; i<=n; i+) if(i%5 = 0 | i%9 = 0) sum+=1.0/i;

47、return sum;第49套 一.填空甲乙丙丁四人同時開始放鞭炮,甲每個t1秒放一次答案: i t+ count二 修改根據(jù)輸入的三個邊長,判斷能否構(gòu)成三角形,構(gòu)成的是等邊三角形,還是等腰三角形。若能構(gòu)成等邊三角形,函數(shù)返回3,若能構(gòu)成等腰三角形函數(shù)返回2,若能構(gòu)成一般三角形函數(shù)返回1,若不能構(gòu)成三角形函數(shù)返回0答案: int fun(int a,int b,int c) else return 1;三 設(shè)計計算3到n之間所有素數(shù)的平方根之和答案: int i,j=0; double s=0; for (i=3; i<=n; i+) for (j=2; j<i; j+)if (i

48、%j = 0) break; if (j = i) s=s+sqrt(i); return s; 第50套 一.填空從三個形參中找出中間的那個數(shù),作為函數(shù)值返回答案: a a b 二 修改首先將大寫字母轉(zhuǎn)換為對應(yīng)的小寫字母,若小寫字母為a-u字將其轉(zhuǎn)換為其后的第5個字母,若小寫字母為v-z,使其值減21.轉(zhuǎn)換后的小寫字母作為函數(shù)值返回答案: c=c+32; c=c+5;三 設(shè)計計算S=1+(1+|2|)+(1+|2|+|3|)(!+|2|.|n|)答案: int i; double fac=1.0; double sum=1.0;for(i=2;i<=n;i+) fac+=sqrt(i)

49、; sum+=fac; return sum;第51套 一.填空找出1000至x之間個位上數(shù)字之和為15的所有整數(shù),然后輸出:符合條件的整數(shù)個數(shù)作為函數(shù)值返回答案: 0 x t+二 修改先將s所指字符串中的字符按逆序存放到t所指字符串中,然后把s所指字符正序連接到t所指串的后面答案: int i,s1; ti = ssl-i-1;三 設(shè)計將ab中的兩個兩位正整數(shù)合并形成一個新的正整數(shù)放在c中,合并方式是:將a中的十位和個位數(shù)依次放在變量c的百位和個位上,b中的十位數(shù)和各位數(shù)一次放在變量c的千位和十位上 *c=(b/10)*1000+(a/10)*100+(b%10)*10+(a%10);第52

50、套 一.填空找出100-999之間所有整數(shù)中各位上數(shù)字之和為x的整數(shù),然后輸出,符合條答案: 999 t/10 x二 修改從低位開始取出長整形變量s中的偶數(shù)為上的數(shù),依次構(gòu)成一個新數(shù)放在t中, 答案: void fun(long s,long *t) while(s>0)三 設(shè)計按分數(shù)的高低排列學生記錄,高分在前答案: STREC tmp; int i,j; for(i = 0; i < N; i+)for(j = i+1; j < N; j+) if(ai.s <aj.s) tmp = ai; ai = aj; aj = tmp; 第53套 一.填空將形參n中,各位上

51、位偶數(shù)的數(shù)取出,并按原來從高到低的順序組成一個新的數(shù),并作為函數(shù)值返回答案: 1 s i*10二 修改輸出M行M列的整數(shù)方陣,然后求兩條對角線上元素之和,返回此和數(shù)答案:int fun(int n,int xxM)Printf(“%4d”,xxij);三 設(shè)計將ab中的兩個兩位正整數(shù)合并形成一個新的正整數(shù)放在c中,合并方式是:將a中的十位和個位數(shù)依次放在變量c的百位和個位上,b中的十位數(shù)和各位數(shù)一次放在變量c的千位和十位上 *c=(a/10)*1000+(b%10)*100+(a%10)*10+(b/10);第54套 一.填空將形參n中,個位上位偶數(shù)的書取出,并按原來從高到低相反的順序組成一個

52、新的數(shù),并作為函數(shù)值返回答案: 0 x*10 n/10 二 修改將長整形數(shù)種每一位上為奇數(shù)的依次取出,構(gòu)成一個新數(shù)放在t中,高位仍在高位,低位仍在低位答案: *t=0; if(d%2!=0)三 設(shè)計實現(xiàn)兩個字符串的連接把答案2所指的字符串連接到答案1所指的字符串后答案: char *p=p1; while(*p)p+; while(*p2) *p+=*p2+; *p=0; 第55套 一.填空將形參n所指變量中,各位上位偶數(shù)的數(shù)去除,剩余的書按原來從高到底的順序組成一個新的數(shù),并通過形參指針n傳回所指變量答案: 10 0 x 二 修改計算n!答案: if (n = 0) result *=n-;-三 設(shè)計將一個數(shù)字字符串轉(zhuǎn)換為一個整數(shù)答案:long s=0,t; int i=0,j,n=strlen(p),k,s1; if(p0=-) i+; for(j=I;j<=n-1;j+) t=pj-0; s1=10; for(k=j;k<n-1;k+) t*=s1;s+=t; if(p0=-) return s; else return s;第56套 一.填空計算S=1*3/22(2*n-1)*(2*n+1)/(2*n)2答案: 0 n (t*t)二 修改統(tǒng)計substr所指子字符串在str所指字符串中出現(xiàn)的次數(shù)答案: for(i=0;stri;

溫馨提示

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

評論

0/150

提交評論