版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、針對(duì)做過去的一些通過率低的題做了一個(gè)World,大家可以看看,不會(huì)的話可以問問我或者前面的同學(xué),這些弄懂的話,考試把握也很大了Problem E: 一年中的第幾天Time Limit: 1 Sec Memory Limit: 2 MBSubmit: 1873 Solved: 645SubmitStatusWeb BoardDescription給出某個(gè)日期,判斷這是當(dāng)年的第幾天,每年的1月1日是第1天,非閏年年份的12月31日是第365天。Input輸入的第一個(gè)數(shù)為n,后接n個(gè)日期。日期用3個(gè)正整數(shù)按順序表示年月日,中間用“-”連接。Output若輸入的日期為錯(cuò)誤,則輸出“error date
2、!”;否則輸出這個(gè)日期是本年的第幾天。每個(gè)日期對(duì)應(yīng)一行輸出。Sample Input92010-01-012010-06-222010-12-312011-02-292011-07-182011-12-022012-02-292012-09-312012-12-31Sample Output1173365error date!19933660error date!366HINT抽象出判斷閏年和判斷日期合法性的兩個(gè)函數(shù),能夠大大降低程序設(shè)計(jì)過程中的思維復(fù)雜程度。Append Code這題除了一次一次的加,可以用更簡便的方法哦#include<stdio.h>int main() in
3、t year,month,day; int i,sum; int M15=0,31,0,31,30,31,30,31,31,30,31,30,31; scanf("%d-%d-%d",&year,&month,&day); if(year%4=0&&year%100!=0)|(year%400=0) M2=29; else M2=28; for(i=1,sum=0;i<month;i+) sum=sum+Mi; printf("%d",sum+day);Problem K: 學(xué)生成績統(tǒng)計(jì)表Time Limit
4、: 1 Sec Memory Limit: 16 MBSubmit: 629 Solved: 268SubmitStatusWeb BoardDescription在學(xué)校里經(jīng)常見到的成績表,表的每行是一個(gè)學(xué)生的成績,每列是各個(gè)科目的成績。如下表所示。你的任務(wù)是:輸入這樣的成績表,統(tǒng)計(jì)出每個(gè)學(xué)生的總成績和各個(gè)科目的平均成績。如下表所示。Input第一行為兩個(gè)整數(shù)m,n,0<m<=50、0<n<=10,表示有m個(gè)學(xué)生和n個(gè)成績。后面有m+1行n+1列的一個(gè)表,表的第1行和第1列都是不含空白符的字符串,表的各列用若干空格分隔,表的各行用一個(gè)回車分隔。第1行的2n+1列是各個(gè)科
5、目的名字。第2m+1行1列為學(xué)生姓名。第2行2列開始到第m+1行、n+1列為各學(xué)生的各科目成績(浮點(diǎn)數(shù))。Output輸出為一張表,表的大小為m+2行、n+2列,其中前m+1行n+1列的數(shù)據(jù)與輸入相同。表的最右側(cè)一列為學(xué)生各科目成績的總和,該列第1行的標(biāo)題是“sum”。表的最下面一行為各科目的所有學(xué)生平均成績,該行的第1列標(biāo)題是“average”。表的第1列輸出為8個(gè)字符左對(duì)齊,后面每列為5個(gè)字符右對(duì)齊,兩列之間有2個(gè)空格。表的所有數(shù)據(jù)項(xiàng)(除第1行和第1列外)都輸出為保留1位小數(shù)。表的每行用一個(gè)回車分隔,表的最右邊一列的數(shù)據(jù)項(xiàng)后沒有空格。請注意:表的最右下角那項(xiàng)沒有定義,不輸出!最后1行的輸出
6、至最右一個(gè)科目的平均分結(jié)束,該行最后有回車。Sample Input10 6name SCI TECH COM CS106 SE309 CS101Tom 88 77 66 55 44 33Jerry 50 100 60 100 50 100Zhang3 90 95.5 60 75 82 18Li4 38 45 62 29 74 85Wang5 88 75 63 36 99 33.3Zhao6 99 99 99.5 97.5 42 100Liu7 80 80 80.5 81.5 82.5 83Wang8 7 6 5 4 3 2Song9 10 20 30 40 50 60Ma10 74 79.5
7、 73 71 70 77Sample Outputname SCI TECH COM CS106 SE309 CS101 sumTom 88.0 77.0 66.0 55.0 44.0 33.0 363.0Jerry 50.0 100.0 60.0 100.0 50.0 100.0 460.0Zhang3 90.0 95.5 60.0 75.0 82.0 18.0 420.5Li4 38.0 45.0 62.0 29.0 74.0 85.0 333.0Wang5 88.0 75.0 63.0 36.0 99.0 33.3 394.3Zhao6 99.0 99.0 99.5 97.5 42.0
8、100.0 537.0Liu7 80.0 80.0 80.5 81.5 82.5 83.0 487.5Wang8 7.0 6.0 5.0 4.0 3.0 2.0 27.0Song9 10.0 20.0 30.0 40.0 50.0 60.0 210.0Ma10 74.0 79.5 73.0 71.0 70.0 77.0 444.5average 62.4 67.7 59.9 58.9 59.6 59.1HINTAppend Code這題的會(huì)了的話,輸出格式之類的問題應(yīng)該沒有問題了。這里的話,給一種最簡便的方法吧,這題還可以使用結(jié)構(gòu)體做,更加直觀#include<stdio.h>#i
9、nclude<string.h>#include<stdlib.h>intmain() intm,n; chara6060; charb6060; doublec6060; doublesum60; doubleaverage60,avsum60; inti,j,k,l; scanf("%d%d",&m,&n); for(i=0;i<=n;i+) scanf("%s",ai); for(i=1;i<=m;i+) scanf("%s",bi); for(j=1,sumi=0;j<
10、=n;j+) scanf("%lf",&cij); sumi=cij+sumi; for(j=1;j<=n;j+) for(i=1,avsumi=0;i<=m;i+) avsumj=avsumj+cij; averagej=1.0*avsumj/m; printf("%-8s ",a0); for(i=1;i<=n;i+) printf("%5s ",ai); printf("%5s","sum"); printf("n"); for(i=1;i&l
11、t;=m;i+) printf("%-8s ",bi); for(j=1;j<=n;j+) printf("%5.1f ",cij); printf("%5.1f",sumi); printf("n"); printf("%-8s ","average"); for(i=1;i<n;i+) printf("%5.1f ",averagei); printf("%5.1f",averagen); Problem F: 編寫函數(shù)
12、:素?cái)?shù)的判定 (Append Code)Time Limit: 3 Sec Memory Limit: 16 MBSubmit: 1728 Solved: 570SubmitStatusWeb BoardDescription一個(gè)正整數(shù)n是素?cái)?shù):除了1和n不能被其他數(shù)整除。1不是素?cái)?shù)。-編寫一個(gè)函數(shù)用于判定一個(gè)正整數(shù)是不是素?cái)?shù)。用C語言實(shí)現(xiàn):append.c中函數(shù)原型為int is_primer(int num);功能:若num為素?cái)?shù)返回1,否則返回0。用C+實(shí)現(xiàn):append.cc中函數(shù)原型為bool isPrimer(int num);功能:若num為素?cái)?shù)返回true,否則返回false。
13、函數(shù)的調(diào)用格式見“Append Code”。Input每行輸入一個(gè)正整數(shù)n。n不會(huì)超出int類型數(shù)據(jù)范圍。輸入最多不超過20個(gè)正整數(shù)。Output若n為素?cái)?shù),輸出“YES”,否則輸出“NO”。Sample Input1234567892147483647Sample OutputNOYESYESNOYESNOYESNONOYESHINT如果你是按照從小到大的順序選擇除數(shù)去判定一個(gè)數(shù),那么你超時(shí)的原因多半是用了太多不必要的除數(shù)。程序需要優(yōu)化,減少循環(huán)的次數(shù)。Append Codeappend.c, append.cc,經(jīng)典的素?cái)?shù)判定注意判定的方法!#include<stdio.h>#
14、include<math.h>intis_primer(intnum);intis_primer(intnum) inti; if(num=1)return0; elseif(num=2) return1; elseif(num%2=0)return0; else for(i=2;i<=sqrt(num);i+) if(num%i=0) return0;break; if(i>sqrt(num) return1; intmain() intnum; while(scanf("%d", &num) != EOF) if(is_primer(nu
15、m) puts("YES"); else puts("NO"); return0;Problem D: 只有一個(gè)二元運(yùn)算符的表達(dá)式運(yùn)算Time Limit: 1 Sec Memory Limit: 2 MBSubmit: 4119 Solved: 1563SubmitStatusWeb BoardDescription編程序讀入并計(jì)算只有一個(gè)二元運(yùn)算符的表達(dá)式的值。用到的二元運(yùn)算符有:“+”、“-”、“*”、“/”、“%”,與C語言的語法一致。Input每行輸入一個(gè)表達(dá)式,格式為:二個(gè)整型的操作數(shù)a和b,中間用一個(gè)符號(hào)分開,這個(gè)符號(hào)就是運(yùn)算符。測試樣例不
16、存在除數(shù)為0的情況。輸入以a和b為0,且用一個(gè)空格分開結(jié)束。Output每行對(duì)應(yīng)輸入的運(yùn)算符為“+”、“-”、“*”、“/”、“%”,則計(jì)算a+b、a-b、a*b、a/b、a%b的值;否則輸出“invalid op”。Sample Input33+58*92.21-617/39%30 0Sample Output3872invalid op-550HINT教材上有非常相似的例題可以參考。Append Code這個(gè)沒什么說的,看看吧,練習(xí)判斷的#include<stdio.h>intmain() inta,b; charc; for(;scanf("%d%c%d"
17、,&a,&c,&b);) if(a=0&&c=' '&&b=0)break; else if(c='+')printf("%dn",a+b); elseif(c='-')printf("%dn",a-b); elseif(c='*')printf("%dn",a*b); elseif(c='/')printf("%dn",a/b); elseif(c='%')pri
18、ntf("%dn",a%b); elseprintf("invalid opn"); Problem D: 攝氏華氏溫度轉(zhuǎn)換表Time Limit: 1 Sec Memory Limit: 2 MBSubmit: 5380 Solved: 1412SubmitStatusWeb BoardDescription已知華氏溫度F,轉(zhuǎn)換為攝氏溫度C的公式為C=(F-32)*5/9。輸出給定范圍(從low到high)和步長(step)的攝氏華氏溫度轉(zhuǎn)換表Input第1行若為“C->F”表示輸出:攝氏華氏溫度轉(zhuǎn)換表,若為“F->C”表示輸出:華氏攝氏溫
19、度轉(zhuǎn)換表。第2、3行為兩個(gè)整數(shù):high和low,其值在-100到200之間。第4行為step,step精確到小數(shù)點(diǎn)后1位。Output輸出第一行為C和F,分別表示攝氏和華氏,與小數(shù)點(diǎn)對(duì)齊。若輸出攝氏華氏溫度轉(zhuǎn)換表,則C在前、F在后;反之,則輸出華氏攝氏溫度轉(zhuǎn)換表。從輸出的第2行開始為從溫度low到溫度high(包括low和high)的轉(zhuǎn)換表,溫度輸出精確到小數(shù)點(diǎn)后1位,表格被“->”分為兩個(gè)寬度相同的部分,其它的測試樣例也不會(huì)給出超出寬度的數(shù)據(jù),格式詳見sample。Sample InputC->F-10402.5Sample Output C -> F-10.0 ->
20、; 14.0 -7.5 -> 18.5 -5.0 -> 23.0 -2.5 -> 27.5 0.0 -> 32.0 2.5 -> 36.5 5.0 -> 41.0 7.5 -> 45.5 10.0 -> 50.0 12.5 -> 54.5 15.0 -> 59.0 17.5 -> 63.5 20.0 -> 68.0 22.5 -> 72.5 25.0 -> 77.0 27.5 -> 81.5 30.0 -> 86.0 32.5 -> 90.5 35.0 -> 95.0 37.5 ->
21、; 99.5 40.0 -> 104.0HINT輸出格式可以通過sample分析出來,因?yàn)閮蓹诘目倢挾仁枪潭ǖ摹R粋€(gè)隱藏的陷阱是step是浮點(diǎn)數(shù),某些浮點(diǎn)數(shù)是無法精確存儲(chǔ)的,因此經(jīng)過一定量的計(jì)算后這個(gè)誤差會(huì)影響到浮點(diǎn)數(shù)的相等性判斷,需要加上精度控制。Append Code這個(gè)精度控制的,需要好好看看!作業(yè)做出來的人不多!#include<stdio.h>intmain() doublelow,high,step,i,C,F; chara,b; scanf("%c%*c%*c%c",&a,&b); if(a='C'&&
22、amp;b='F') scanf("%lf%lf%lf",&low,&high,&step); printf(" C -> Fn"); for(C=low;C<=high+0.01;C=C+step) F=(double)9/5*C+32; printf("%5.1f ->%6.1fn",C,F); if(a='F'&&b='C') scanf("%lf%lf%lf",&low,&high,&a
23、mp;step); printf(" F -> Cn"); for(F=low;F<=high+0.01;F=F+step) C=(F-32)*(double)5/9); printf("%5.1f ->%6.1fn",F,C); return0; Problem E: 1!+2!+k!=?Time Limit: 1 Sec Memory Limit: 2 MBSubmit: 4114 Solved: 1376SubmitStatusWeb BoardDescription求1!+2!+k!=?,并判斷是否溢出。Input輸入為一個(gè)正整
24、數(shù)k。Output若1!+2!+k!的值溢出unsigned(無符號(hào)整型)的范圍輸出“overflow”,否則輸出1!+2!+k!的結(jié)果。Sample Input5Sample Output153HINT如果一個(gè)值溢出某個(gè)變量的數(shù)據(jù)類型存儲(chǔ)范圍,但仍然存入該變量,那么存入該變量中的值實(shí)際上是什么?Append Code這個(gè)題當(dāng)年坑了多少人。#include<stdio.h>intmain() intk,i,j,m,sum=0; scanf("%d",&k); if(k>=13)printf("overflow"); else f
25、or(i=1;i<=k;i+) for(j=1,m=1;j<=i;j+) m=m*j; sum=sum+m; if(sum>0) printf("%d",sum); Problem F: 十進(jìn)制整數(shù)轉(zhuǎn)二進(jìn)制Time Limit: 1 Sec Memory Limit: 2 MBSubmit: 3274 Solved: 1617SubmitStatusWeb BoardDescription給出一個(gè)十進(jìn)制的非負(fù)整數(shù)x,x<=216,把它轉(zhuǎn)換成二進(jìn)制數(shù)輸出。Input輸入為多行,每行一個(gè)整數(shù)x,至讀入EOF結(jié)束。Output每行輸出x對(duì)應(yīng)的二進(jìn)制數(shù)值。S
26、ample Input0133365535Sample Output01111000011111111111111111HINT本題有多種解法:可以用循環(huán)迭代對(duì)2的除法和取余操作,不過處理的順序與輸出順序相反,需要利用數(shù)組存儲(chǔ);用取對(duì)數(shù)或從大到小減去2的整數(shù)次冪的方法計(jì)算與輸出順序是相同的;也可以用printf()把十進(jìn)制的數(shù)值處理成十六進(jìn)制,然后1位十六進(jìn)制轉(zhuǎn)4位二進(jìn)制;也可以用位運(yùn)算處理。Append Code求2進(jìn)制的方法至少要會(huì)一個(gè),這個(gè)是逆序輸出法#include<stdio.h>intmain() inta100; intb,i,j; while(scanf("
27、;%d",&b)!=EOF) if(b=1)printf("1n"); else for(i=0;i+) ai=b%2; b=b/2; if(b>=2)continue; if(b=1)printf("1"); for(j=i;j>=0;j-) printf("%d",aj); printf("n"); break; Problem C: 數(shù)組去重Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 1366 Solved: 764SubmitSt
28、atusWeb BoardDescription現(xiàn)有一個(gè)非減序排序的一維數(shù)組,其中有若干元素是重復(fù)的。編程將重復(fù)元素刪除掉若干個(gè),僅保留1個(gè),使數(shù)組中沒有重復(fù)元素。Input輸入有多行。第一行M>0,表示之后有M行輸入。之后的M行輸入是若干個(gè)一維數(shù)組。每行的第一個(gè)數(shù)據(jù)0<N<=1000,表示該數(shù)組有N個(gè)整數(shù)。其后是按照非減序排好的N個(gè)整數(shù),每個(gè)元素均在int類型的表示范圍之內(nèi)。每行的所有數(shù)據(jù)兩兩之間用一個(gè)空格隔開。Output輸出有M行,每行輸出與上述M組輸入一一對(duì)應(yīng),是其輸入數(shù)組去重后的結(jié)果。輸出的數(shù)據(jù)需按照遞增序排列,且每兩個(gè)數(shù)組元素之間用一個(gè)空格隔開。Sample In
29、put210 0 0 0 0 0 1 3 3 4 410 1 2 3 4 5 6 7 8 9 10Sample Output0 1 3 41 2 3 4 5 6 7 8 9 10HINTAppend Code這個(gè)也看看吧!我寫的比較麻煩,有好的想法也可以傳到群里#include<stdio.h>intmain() intN,n,i,j,k,t; inta2000=-1; scanf("%d",&N); for(i=1;i<=N;i+) a0=-1; scanf("%d",&n); for(j=1;j<=n;j+)
30、scanf("%d",&k); ak=k; if(a0=0) printf("0"); for(j=1;j<=1005;j+) if(aj!=0) printf(" %d",aj); if(a0!=0) for(j=1;j<=1005;j+) if(aj!=0) printf("%d",aj);break; for(t=j+1;t<=1005;t+) if(at!=0) printf(" %d",at); printf("n"); for(j=0;j
31、<=1005;j+) aj=0; Problem F: Matrix Problem (III) : Array PracticeTime Limit: 1 Sec Memory Limit: 4 MBSubmit: 2158 Solved: 581SubmitStatusWeb BoardDescription求兩個(gè)矩陣A、B的乘積C=AB。根據(jù)矩陣乘法的定義,只有A的列數(shù)和B的行數(shù)相同才能相乘??梢源_保所有運(yùn)算結(jié)果都在int類型的范圍之內(nèi)。Input輸入數(shù)據(jù)為多個(gè)矩陣(最少2個(gè)),每個(gè)矩陣以兩個(gè)正整數(shù)m和n開始,滿足0<m,n<=100,接下來為一個(gè)m行n列的矩陣A。當(dāng)輸入的m和n均為0時(shí),表示輸入數(shù)據(jù)結(jié)束。Output對(duì)輸入的矩陣兩兩相乘:第1個(gè)和第2個(gè)相乘、第1個(gè)和第2個(gè)相乘的結(jié)果和第3個(gè)相乘按順序輸出矩陣相乘的結(jié)果:每行兩個(gè)元素之間用一個(gè)空格分開,每行最后一個(gè)元素之后為一個(gè)換行,在下一行開始輸出矩陣的下一行。若前k個(gè)矩陣相乘的結(jié)果和第k+1個(gè)矩陣無法相乘(即不滿足矩陣乘法定義),則輸出“Not satisfied the definition of matrix multiplication!”。然后用第k+1個(gè)矩陣去和第k+2個(gè)矩陣相乘。最后一個(gè)矩陣只做乘數(shù)。每兩組輸出之間用一個(gè)空行分隔開。Sample Input2 31 1
溫馨提示
- 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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 高中生社會(huì)實(shí)踐與志愿服務(wù)計(jì)劃
- 山西省晉中市太谷區(qū)2023-2024學(xué)年九年級(jí)上學(xué)期期末化學(xué)試卷
- 九年級(jí)班主任工作總結(jié)報(bào)告
- 浙江省寧波市奉化區(qū)2023-2024學(xué)年六年級(jí)上學(xué)期英語期末試卷
- 互聯(lián)網(wǎng)行業(yè)業(yè)務(wù)代表工作報(bào)告
- 2023年貴州省黔東南自治州公開招聘警務(wù)輔助人員輔警筆試自考題1卷含答案
- 2021年山東省淄博市公開招聘警務(wù)輔助人員輔警筆試自考題1卷含答案
- 2024年內(nèi)蒙古自治區(qū)包頭市公開招聘警務(wù)輔助人員輔警筆試自考題1卷含答案
- 2022年河南省許昌市公開招聘警務(wù)輔助人員輔警筆試自考題1卷含答案
- 2024年河南省洛陽市公開招聘警務(wù)輔助人員輔警筆試自考題1卷含答案
- 2024年度玩具代工生產(chǎn)及銷售合同模板(2024版)3篇
- 2024年小學(xué)五年級(jí)科學(xué)教學(xué)工作總結(jié)(2篇)
- 2023年首都機(jī)場集團(tuán)有限公司招聘考試真題
- 【7歷期末】安徽省蚌埠市2023-2024學(xué)年部編版七年級(jí)歷史上學(xué)期期末統(tǒng)考試卷(含解析)
- 廣東省深圳市重點(diǎn)中學(xué)2021-2022學(xué)年高二上學(xué)期期末生物試題
- 2025年上半年浙江金華市永康市選調(diào)市紀(jì)檢監(jiān)察信息中心工作人員2人重點(diǎn)基礎(chǔ)提升(共500題)附帶答案詳解
- 美國制造業(yè)經(jīng)濟(jì)2024年度報(bào)告-2024-12-宏觀大勢
- 2024-2025學(xué)年冀教版(三起)英語六年級(jí)上冊期末測試卷(含答案無聽力原文無音頻)
- 小區(qū)充電樁安全協(xié)議書范本(2篇)
- 2024年安徽省公務(wù)員錄用考試《行測》真題及答案解析
- 車間班長年度述職報(bào)告
評(píng)論
0/150
提交評(píng)論