C語言練習題(山東科技大學吐血整理)_第1頁
C語言練習題(山東科技大學吐血整理)_第2頁
C語言練習題(山東科技大學吐血整理)_第3頁
C語言練習題(山東科技大學吐血整理)_第4頁
C語言練習題(山東科技大學吐血整理)_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、數(shù)學11-1C語言平時訓練題1、算術基本運算Description計算兩整數(shù)X和y(0vx,yvl000)的和、差、積、商、余數(shù)、x的平方和y的三次方。Input輸入只有一行。Output輸出為多行,按順序每行輸出x,y的和、差、積、商、余數(shù)、x的平方和y的三次方。SampleInputx=11,y=3SampleOutputx+y:14x-y:8x*y:33x/yquotient:3,remainder:2x人2:121y人3:27Answer#includevstdio.hintmain()intx,y,a,b,c,d,e,f,g;0vxv1000,0vyv1000;scanf(x=%d,

2、y=%d,&x,&y);a=x+y;b=x-y;c=x*y;d=x/y;e=x%y;f=x*x;g=y*y*y;printf(x+y:%dn,a);printf(x-y:%dn,b);printf(x*y:%dn,c);printf(x/yquotient:%d,remainder:%dn,d,e);printf(x人2:%dn,f);printf(y人3:%dn,g);return0;2、求圓的面積和周長Description從鍵盤輸入圓的半徑,求圓的面積和周長,圓周率取3.14。Input輸入一個浮點型數(shù)據(jù),有效數(shù)字不會超過十進制的6位。Output輸出為兩行。第一行為圓的面積,第二行為圓

3、的周長,格式見sample。SampleInput3SampleOutputArea:28.260000Perimeter:18.840000Answer#includevstdio.h#definePI3.14intmain()floatr,s,c;scanf(%f,&r);s=PI*r*r;c=2*PI*r;printf(Area:%fn,s);printf(Perimeter:%fn,c);return0;3、平均值Description求3個數(shù)的平均值。Input輸入只有一行,為3個較小的整數(shù)。Output輸出為這3個整數(shù)的平均值,保留3位小數(shù)。SampleInput123Sample

4、Output2.000Answer#includeintmain()inta,b,c;floatd;scanf(%d%d%d,&a,&b,&c);d=(a+b+c)/3.0;printf(%.3fn,d);return0;4、貨幣兌換Description給出人民幣對美元、歐元、日元的當日匯率,求給定金額的人民幣能兌換成外幣的金額,求給定金額的外幣能兌換成人民幣的金額。要計算的外幣有三種:美元、歐元、日元。Input輸入有三行。第一行依次為美元、歐元、日元外幣匯率,用空格分開。匯率用100外幣為單位,精確到小數(shù)點后4位,如668.5200表示“100美元=668.5200人民幣”。匯率浮動范圍

5、為(0,10000)。第二行為外幣金額x,第三行為人民幣金額y。x,y均為整數(shù),且0vx,yv10000。Output輸出為兩行。第一行為金額為x的美元、歐元、日元兌換成人民幣的金額,用空格分開。第二行為金額為y的人民幣兌換成美元、歐元、日元的金額,用空格分開。所有金額精確到小數(shù)點后兩位。SampleInput668.5200908.06857.985215001500SampleOutput10027.8013621.03119.78224.38165.1918784.75Answer#includevstdio.hintmain()doublex,y,a,b,c,d,e,f,g,h,i;s

6、canf(”lf%lf%lf,&a,&b,&c);scanf(%lf,&x);scanf(”lf,&y);d=x/100*a;e=x/100*b;f=x/100*c;g=y/a*100;h=y/b*100;i=y/c*100;printf(”.21f%.2lf%.2lfn,d,e,f);printf(”.21f%.2lf%.2lfn,g,h,i);return0;5、求字符的值Description從鍵盤輸入3個字符(不含雙字節(jié)字符),分別輸出每個字符的十進制值(ASCII碼)、八進制值和十六進制值。Input輸入為3個字符。Output輸出為3行。每一行為每個字符(對應輸入順序)的十進制、八

7、進制和十六進制值,用空格分隔開。每個輸出的值占3個字符,不足3個字符前面補0。SampleInput0ASampleOutput048060030032040020065101041Answer#includevstdio.hintmain()chara,b,c;scanf(%c%c%c,&a,&b,&c);printf(%.3d%.3o%.3xn,a,a,a);printf(%.3d%.3o%.3xn,b,b,b);printf(%.3d%.3o%.3xn,c,c,c);return0;6、奇數(shù)還是偶數(shù)?Description輸入一個整數(shù),判讀它是奇數(shù)還是偶數(shù)。Input輸入只有一行,為一個

8、100以內的正整數(shù)。Output輸出為一行。若輸入為偶數(shù)則輸出“even”,奇數(shù)輸出“odd”。SampleInput30SampleOutputevenAnswer#includevstdio.hintmain()inta;scanf(%d,&a);if(a=0&av=100)if(a%2=0)printf(evenn);elseprintf(oddn);elseprintf(error);return0;7、絕對值Description求整型數(shù)據(jù)和浮點型數(shù)據(jù)的絕對值。Input輸入兩個數(shù),第一個是整數(shù),第二個是浮點數(shù)。Output輸出為兩行,第一行為整數(shù)的絕對值,第二行為浮點數(shù)的絕對值,注

9、意浮點數(shù)的絕對值不輸出無意義的0。SampleInput-1SampleOutput1Answer#includevstdio.h#includevmath.h#includevstdlib.hintmain()inta,c;doubleb,d;scanf(%dn%lf,&a,&b);c=abs(a);d=fabs(b);printf(”dn%g,c,d);return0;8、簡單的打折計算Description商店規(guī)定:消費滿n元,可以打八八折。設某件商品標價m元,輸入購買的件數(shù)x,計算出需要支付的金額(單位:元),精確到分。Input輸入只有一行,三個整數(shù)m、n和x,且0vxvmvnv10

10、00。Output輸出金額,精確到分。SampleInput953004SampleOutput334.40Answer#includevstdio.hintmain()intm,x,n,a;floatb;scanf(%d%d%d,&m,&n,&x);0 x&xm;xvm&mvn;mvn&nn)b=0.88*a;elseb=a;printf(”.2fn,b);return0;9、判斷閏年Description輸入一個正整數(shù)的年份,判斷是否為閏年。Input輸入只有一行,為一個10000以內的正整數(shù)。Output輸出為一行。若輸入為閏年偶數(shù)則輸出“Yes”,否則輸出“No”。SampleInpu

11、t2010SampleOutputNo答案#includevstdio.hintmain()inta;scanf(%d,&a);if(a0&a10000)if(a%4=0&a%100!=0)printf(Yesn);elseif(a%400=0)printf(Yesn);elseprintf(Non);elseprintf(error);return0;10、水仙花數(shù)Description如果一個三位十進制數(shù)等于其各位數(shù)字的立方和,則稱這個數(shù)為水仙花數(shù)。如:13+53+33=153。Input一個整數(shù)x,100v=xv=999。Outputx是水仙花數(shù),則輸出“YES”,否則為“NO”。Sam

12、pleInput153SampleOutputYESAnswer#includeintmain()inta,b,c,d,e;scanf(%d,&a);b=a/100;c=(a-b*100)/10;d=(a-b*100-c*10);e=b*b*b+c*c*c+d*d*d;if(a=e)printf(YESn);elseprintf(NOn);return0;11、三個數(shù)比較大小Description從鍵盤上輸入0100之間的三個數(shù),按從小到大的順序輸出。Input輸入只有一行,為三個整數(shù)。Output按從小到大輸出這三個數(shù)。SampleInput151020SampleOutput101520A

13、nswer#includevstdio.hintmain()inta,b,c;scanf(%d%d%d,&a,&b,&c);if(a=b)if(b=c)printf(%d%d%dn,c,b,a);elseif(ac)printf(%d%d%dn,b,c,a);elseprintf(%d%d%dn,b,a,c);elseif(a=c)printf(%d%d%dn,c,a,b);elseif(b=c)printf(%d%d%dn,a,c,b);elseprintf(%d%d%dn,a,b,c);return0;12、輸出整數(shù)的最低兩位Description把一個整數(shù)的最低兩位打印出來,不輸出整數(shù)的

14、符號。Input輸入為一個整數(shù)n,不會超出int類型的數(shù)據(jù)范圍。Output輸出n的最低兩位數(shù)字。但是,輸入的數(shù)字本身不足兩位時,不應當補0。如,輸入為“1”,則輸出為“1”。SampleInput-102SampleOutput02Answer#includevstdio.hintmain()inta,b,c;scanf(%d,&a);if(a=100)b=a-a/100*100;printf(%.2dn,b);elseif(a=0)printf(%dn,a);elseif(a=-99)printf(%dn,-a);elsec=-a;b=c-c/100*100;printf(%.2dn,b)

15、;return0;13、判斷奇偶數(shù)(填空)Description編寫一個程序,判斷讀取的正整數(shù)的奇偶性,部分程序已經給出,請?zhí)钌峡瞻渍Z句,并提交填充后的完整程序。程序(含答案):#includeintmain()intnum;scanf(%d,&num);if(num%2=0)printf(%disanevennumber.,num);/num是-個偶數(shù)elseprintf(%disanoddnumber.,num);/num是一個奇數(shù)return0;14、求分段函數(shù)的值(填空)Description設有分段函數(shù)如下:wsin(2對x0y=-Jx+x1a:0個x的值,求對應的y值并輸出。部分程

16、序已經給出,請?zhí)畛淦渲械目瞻渍Z句,并提交填充后的完整程序。程序(含答案):#includevstdio.h#includevmath.hintmain()doublex,y;inti,N;scanf(%d,&N);for(i=0;ivN;i+)scanf(%lf,&x);if(x0)y=-x;elseif(x1)y=sin(2*x);elseif(xintmain()intk,m,n,a,i=l;scanf(%d%d%d,&k,&m,&n);if(mvn)a=m;elsea=n;printf(”d,a);for(i=a+l;iv=k;i+)if(i%m=0&i%n!=0)ll(i%n=0&i%

17、m!=0)printf(”%d,i);return0;16、A+BProblemTDescription計算a+b,0v=a,bvl000。Input輸入有多對整數(shù)a和b組成,每對a和b占一行,a,b用空格分開。Output每行輸出一個a+b的值,順序與輸入對應。SampleInput21020SampleOutput3。Answer#includevstdio.hintmain()inta,b;while(scanf(%d%d,&a,&b)!=EOF)printf(”dn,a+b);return0;17、A+BProblem(II):Input/OutputPraticeDescriptio

18、n計算a+b,0v=a,bv1000。Input輸入的第一行是一個整數(shù)N,后面有N對整數(shù)a和b,每對a和b占一行,a,b用空格分開。Output每行輸出一個a+b的和,順序與輸入對應。SampleInput21020SampleOutput3oAnswer#includevstdio.hintmain()inta1000,b1000,N,i;scanf(”d,&N);for(i=1;iv=N;i+)scanf(%d%d,&ai,&bi);for(i=1;i=N;i+)printf(%dn,ai+bi);return0;18、成績的等級Description把百分制的考試成績轉換成五級制的成績:

19、90100:Excellent8089:Good7079:Average6069:Pass059:Failing不在0100之間的輸入是非法數(shù)據(jù),輸出“Error”Input輸入多行,每行一個整數(shù)。Output輸入所對應的成績等級。SampleInput8192356872100SampleOutputErrorGoodExcellentFailingPassAverageExcellentAnswer#includeintmain()intscore;while(scanf(%d,&score)!=EOF)if(scorev0llscore100)printf(Errorn);elseswi

20、tch(score/10)case0:case1:case2:case3:case4:case5:printf(Failingn);break;case6:printf(Passn);break;case7:printf(Averagen);break;case8:printf(Goodn);break;case9:case10:printf(Excellentn);break;return0;19、n個數(shù)的最大值和最小值Description找出n個數(shù)中最大的數(shù)和最小的數(shù),并將它們的值輸出出來。Input輸入為n+1個整數(shù),都在int類型范圍內。這些數(shù)可能用若干空格或者換行符分隔開。輸入的第

21、1個數(shù)為n,表示后續(xù)有n個數(shù)輸入。從輸入的第2個數(shù)開始,求出直到第n+1個數(shù)中最大的數(shù)和最小的數(shù)。Output輸出為兩行,格式見sampleoSampleInput301-1SampleOutputThemaximumnumberis1.Theminimumnumberis-1.Answer#includeintmain()intn,i,max,min;scanf(%d,&n);intan;for(i=0;in;i+)scanf(%d,&ai);max=a0;min=a0;for(i=0;in;i+)if(maxai)min=ai;printf(Themaximumnumberis%d.n,m

22、ax);printf(Theminimumnumberis%d.,min);return0;20、字符加密DescriptionTom和Jack是密碼學愛好者,他們在聊天時經常使用一些暗語。他們使用的一種最簡單的暗語是:將要說的每句話里面的英文字母變成這個字母之后的某個字母。現(xiàn)在要求你寫一個程序,將一個字母變成它之后的某個字母。Input輸入有2個:一個大寫字母c和一個正整數(shù)d(0vdv26)。其中c是要進行變換的字母,d表示要將c變成其后面第d個字母。Output輸出字母c之后的第d個字母。大小寫與c一致。如果c之后的某個字母已經超出Z,則再從字母A開始計數(shù)。如:c=A,d=3,則輸出應為:

23、Do若:c=Y,d=3,則輸出應為:BoSampleInputA3SampleOutputDAnswer#includevstdio.hvoidmain()intd,x;charc;scanf(%c,&c);scanf(%d,&d);x=c+d;c=c+d;xv=90?printf(”c,c):printf(”c,x-26);21、求100以內的素數(shù)Description素數(shù)是只能被1和自身整除的正整數(shù),根據(jù)數(shù)學定義1不是素數(shù)。素數(shù)也叫質數(shù)。Input輸入為兩個整數(shù)m和n,滿足0v=mv=nv=100。Output從大到小輸出mn之間的所有素數(shù),一個素數(shù)一行。如果mn之間沒有素數(shù),則不輸出任何

24、數(shù)。輸出的所有數(shù)在兩行“=之間。SampleInput212SampleOutput11Answer#includevstdio.h#includevmath.hintmain()intm,n,i,j,k,t;scanf(”d%d,&m,&n);/212printf(=n);for(i=n;i=m;i-)t=0;for(j=2;j1)printf(%dn,i);printf(=);return0;22、SumProblem(II):Input/OutputPraticeDescription計算若干整數(shù)的和,這些整數(shù)都是小于1000的非負整數(shù)。Input輸入的第一行是一個整數(shù)M,后面有M個測試

25、樣例。每個測試樣例以一個整數(shù)N開始,后面接著是N個整數(shù)。Output每組測試樣例對應一行輸出,為所給的N個整數(shù)之和,順序與輸入對應。SampleInput212351015203050SampleOutput625Answer#includevstdio.hintmain()intm,n,a,i,j,s;scanf(%d,&m);for(i=l;iv=m;i+)scanf(%d,&n);s=0;for(j=l;jv=n;j+)scanf(%d,&a);s=s+a;printf(%dn,s);return0;23、十進制整數(shù)轉二進制Description給出一個十進制的非負整數(shù)X,xv=216把

26、它轉換成二進制數(shù)輸出。Input輸入為多行,每行一個整數(shù)X,至讀入EOF結束。Output每行輸出x對應的二進制數(shù)值。SampleInput0365535SampleOutput01111000011111111111111111Answer#includevstdio.hintmain()inta100,i,b;while(scanf(%d,&b)!=EOF)for(i=0;i+)ai=b%2;b=b/2;if(b=0)break;for(;i=0;)printf(”d,ai);i-;printf(n);return0;24、簡單的整數(shù)排序Description對給出的若干整數(shù)按從小到大排序

27、。Input輸入的第一個數(shù)為n(nv=1000),后接n個整數(shù)。Output按從小到大的順序輸出這些整數(shù),每兩個整數(shù)之間用一個空格分隔開,最后一個整數(shù)后面沒有空格。SampleInput103915285673SampleOutput233556789Answer#includevstdio.hintmain()intc,i,n,j;inta1000;scanf(%d,&n);for(i=0;in;i+)scanf(%d,&ai);for(i=l;iv=n-l;i+)for(j=0;jaj+1)c=aj;aj=aj+1;aj+1=c;printf(”d,aO);for(i=1;iintmain

28、()intn,x,i;inta50,b50;a0=1;a1=1;i=2;while(iv50)ai=ai-1+ai-2;i+;scanf(%d,&x);for(i=1;i#includevstring.hintmain()chara20,b20;inti,j=1;scanf(%s,a);while(scanf(%s,b)!=EOF)if(j0),后面有M組輸入數(shù)據(jù)。每組數(shù)據(jù)以兩個正整數(shù)m和n開始,滿足0vm,nv=100,接下來為一個m行n列的矩陣A。Output輸出為多組,每組輸出A的轉置矩陣AT。矩陣的輸出為:每行兩個元素之間用一個空格分開,每行最后一個元素之后為一個換行,在下一行開始輸出

29、矩陣的下一行。每兩組輸出之間用一個空行分隔開。SampleInput1312356789SampleOutputTOC o 1-5 h z475869Answer#includevstdio.hintmain()inta100100=0,M,m,n,i,j,k,b100100=0;scanf(”d,&M);for(k=0;kvM;k+)scanf(%d%d,&m,&n);for(i=0;ivm;i+)for(j=0;jn;j+)scanf(%d,&aij);for(j=0;jn;j+)for(i=0;ivm;i+)bji=aij;if(i(m-1)printf(”d,bji);elseprin

30、tf(%dn,bji);if(kintstrToInt(charstr)inti,j,a=0,s=0;if(str0=0)return-1;elsefor(i=0;stri!=0;i+)if(str0v48llstr057)return0;gotoloop;elseif(stri=48&striintstrToInt(charstr)inti,j,a=0,s=0;if(str0=0)return0;elseif(str0v48llstr057)&str0!=-&str0!=+)return0;elseif(str0=+)for(i=1;stri!=0;i+)if(stri=48&stri=48

31、&stri=48&striv=57)a=stri-0;s=s*10+a;elsebreak;returns;intmain()charstr11;gets(str);printf(”d,strToInt(str);while(gets(str)!=NULL)printf(n%d,strToInt(str);return0;30、stringcompare(l)Description需要編寫一個可以比較字符串大小的函數(shù),其原型為:intstrcmp(charstr1,charstr2);其中:參數(shù)str1和str2是兩個用于比較的字符串。返回值表示它們的大小關系。比較規(guī)則是:按照相同位置的字符的

32、ASCII碼進行比較,如果兩個字符串所有位置的字符都相同,則返回0;如果第i(i=0)個位置的字符是第一對不同的字符,則返回str1i與str2i的ASCII碼的差。示例:strcmp(abc,abc)=O;strcmp(abc,Abc)=32注意:主函數(shù)已經給出,你只需要提交strcmp()函數(shù)的代碼。不能使用標準庫函數(shù)進行比較。提交的代碼要包含必要的頭文件包含命令。Input輸入為n(n0)對字符串(可能含空白符),每一對字符串中的第一個字符串即為str1,第二個是str2。Output輸出是n行整數(shù),每一行整數(shù)與上述每一對輸入一一對應,即表示相應的每對字符串的比較結果。SampleInp

33、utabcABCabcabCabcabcSampleOutput6532Answer#includevstdio.hintstrcmp(charstr1,charstr2)inti=O,j=O,s;while(strli!=0llstr2i!=0)if(str1i=str2i)i+;elses=str1i-str2i;j+;i+;break;if(j=0)return0;elsereturns;intmain()charstr1101,str2101;gets(str1);gets(str2);printf(%d,strcmp(str1,str2);while(gets(str1)!=NULL

34、)gets(str2);printf(n%d,strcmp(str1,str2);return0;31、insertanumberintoanorderedsequence(l)Description現(xiàn)有一個正整數(shù)數(shù)組Array,以0表示數(shù)組的結束。其中任意2個元素都不同,而且已經按照遞增序排列。另有一個整數(shù)Key0。要將Key插入到數(shù)組Array中,并保證插入之后的數(shù)組依然保持遞增序。在插入過程中,會有以下情況出現(xiàn):數(shù)組Array已經達到其容量上界Vol,此時應返回結果-1。數(shù)組Array中已經有與Key相等的元素存在,此時應返回結果-2。如果Array既沒有滿,也沒有與Key相等的元素,則

35、應返回Key在數(shù)組Array中插入的位置,即Key插入Array后所在的下標。要求編寫一個函數(shù)intinsert(intarray,intkey,intvol實現(xiàn)上述插入操作,其中:array:需插入元素所在的數(shù)組;key:待插入的元素;vol:array數(shù)組的最大容量,即數(shù)組中最多可以容納的數(shù)值個數(shù)。樣例中已經包含上述三種可能的情形。上述情況按照上述順序依次判斷,即先判斷Array是否已滿,再判斷Array是否已經有Key。注意:主函數(shù)已經給出,只需提交insert函數(shù)的代碼以及必要的預處理命令。Input輸入分為多行。第一行是M,表示后面有M組測試數(shù)據(jù)。每組測試數(shù)據(jù)有2行輸入。第一行是Ar

36、ray中的元素,不超過1000個,以數(shù)字“0”表示該行數(shù)據(jù)的結束。第二行是要插入Array中的數(shù)值Key。Output輸出為M行,每一行代表上述每一組輸入的插入結果。其中:如果數(shù)組已滿,則輸出:“Thearrayiffull!”如果數(shù)組中已經有Key,則輸出:“Thekeyisalreadyinthisarray!如果Key可以插入Array,則輸出:“Thekeyisinsertedinpositionx.其中x是Key插入數(shù)組后的下標。SampleInput3230212456789100323456789101112131415161718192021222324252627282930

37、313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153

38、154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253

39、254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353

40、354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453

41、4544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346

溫馨提示

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

評論

0/150

提交評論