C語言典型例題_第1頁
C語言典型例題_第2頁
C語言典型例題_第3頁
C語言典型例題_第4頁
C語言典型例題_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、2.尋找特殊偶數(shù)成績10開啟時間2014年11月4日 星期二 08:00折扣0.8折扣時間2014年11月19日 星期三 08:00允許遲交否關(guān)閉時間2014年11月26日 星期三 08:00背景有一種特殊偶數(shù),它每一位上的數(shù)字都兩兩不相同。我們現(xiàn)在需要找出四位數(shù)中某一區(qū)間內(nèi)的這類偶數(shù)。輸入所要尋找的四位偶數(shù)的范圍。每組輸入有兩個數(shù)字:第一個數(shù)字是最小范圍;第二個數(shù)字是最大范圍。如果輸入遇到0,輸入結(jié)束。輸出列出此范圍內(nèi)的所有特殊偶數(shù),并且列出此范圍內(nèi)特殊偶數(shù)的個數(shù)。測試輸入期待的輸出時間限制內(nèi)存限制額外進(jìn)程測試用例 1以文本方式顯示 1. 300030202. 604060903. 00以文

2、本方式顯示 1. 30123014301630182. counter=43. 60426048605260546058607260746078608260844. counter=101秒64M0測試用例 2以文本方式顯示 1. 91012. 87-13. 00以文本方式顯示 1. Error2. Error1秒64M0Code:#includeint main() int maxnum, minnum, n, g, s, b, q, count = 0; while(1) scanf(%d%d,&minnum,&maxnum); if(minnum = 0 & maxnum = 0) re

3、turn 0; if(minnum 999 & minnum 999 & maxnum = minnum) for(n = minnum; n = maxnum; n+) if(n % 2 = 0) q = n / 1000; b = n % 1000 / 100; s = n % 100 / 10; g = n % 10; if(q != b & q != s & q != g & b != s & b != g & s != g) count+;printf(%d ,n); printf(n); printf(counter=%dn,count); count = 0; else prin

4、tf(Errorn); return 0;3.求最小 m 值成績10開啟時間2014年11月4日 星期二 08:05折扣0.8折扣時間2014年11月19日 星期三 08:05允許遲交否關(guān)閉時間2014年11月26日 星期三 08:05求滿足下列不等式的最小 m。 1 + 2 + 3 + 4 + . + m n例如:n=100,當(dāng) m =14 時,滿足:1+2+3+4+.+13=91100。輸入:n輸出:m測試輸入期待的輸出時間限制內(nèi)存限制額外進(jìn)程測試用例 1以文本方式顯示 1. 100以文本方式顯示 1. 141秒64M0Code:#includeint main() int max, i

5、= 0, sum = 0; scanf(%d,&max); while(sum max) i+; sum += i; printf(%dn,i);郵票組合成績10開啟時間2014年11月12日 星期三 06:20折扣0.8折扣時間2014年11月26日 星期三 06:20允許遲交否關(guān)閉時間2014年12月3日 星期三 06:20背景: 我們寄信都要貼郵票,在郵局有一些小面值的郵票,通過這些小面值郵票中的一張或幾張的組合,可以滿足不同郵件的不同的郵資。 現(xiàn)在,郵局有4種不同面值的郵票。在每個信封上最多能貼5張郵票,面值可相同,可不同。輸入: 四種郵票的面值。輸出: 用這四種面值組成的郵資最大的從

6、1開始的一個連續(xù)的區(qū)間。說明: 如結(jié)果為10,則表明使用4張郵票可組合出1、2、3、4、5、6、7、8、9、10這些郵資。名詞解釋: 郵資:就是你寄東西需要花多少錢。 郵票面額:是由國家發(fā)行的具有固定價(jià)格的花紙片,被稱為郵票。如果你寄東西,郵局稱了重量,告訴你要240分。這樣你就要貼郵票了。如果現(xiàn)在郵局的郵票有面值為80分、50分、20分和10分的四種,你就可以采用不同的組合得到240的郵資,例如:采用3張80分的可以湊出240分;或者24張10分的湊起來240分也可以。顯然不同郵票的組合都可以得到同樣一種郵資。測試輸入期待的輸出時間限制內(nèi)存限制額外進(jìn)程測試用例 1以文本方式顯示 1. 141

7、221以文本方式顯示 1. Themaxis71.1秒64M0測試用例 2以文本方式顯示 1. 13712以文本方式顯示 1. Themaxis46.1秒64M0Code:#includeint main()int i5,t3126,n,n1,n2,n3,n4,temp = 0;i0 = 0;for(n = 1; n 5; n+)scanf(%d,&in);for(n = 0; n 3126; n+)tn = 0;for(n = 0; n 5; n+)for(n1 = 0; n1 5; n1+)for(n2 = 0; n2 5; n2+)for(n3 = 0; n3 5; n3+)for(n4

8、 = 0; n4 5; n4+)ttemp = in + in1 + in2 + in3 + in4;temp+;for(n = 0; n 3124; n+)for(n1 = n; n1 tn1)temp = tn;tn = tn1;tn1 = temp;temp = 0;for(n = 0; n 3125; n+)if(tn tn + 1 )temp+;if(temp != tn + 1)break;printf(The max is %d.n,temp - 1);return 0;程序講解示例:整數(shù)排排序成績0開啟時間2014年10月19日 星期日 03:15折扣0.8折扣時間2014年1

9、2月31日 星期三 03:15允許遲交否關(guān)閉時間2014年12月31日 星期三 03:15有一組整數(shù),要將它們從小到大排序,去掉其中重復(fù)的數(shù)值。輸入:第1行,輸入整數(shù)N,表明接下來將有N(=100)個整數(shù)讀入。第2N行,輸入N個這個數(shù)。輸出:排序后的整數(shù)(去掉重復(fù)的數(shù)值)例如:輸入:3(回車)7 5 7(回車)輸出:5 7(回車)測試輸入期待的輸出時間限制內(nèi)存限制額外進(jìn)程測試用例 1以文本方式顯示 1. 32. 755以文本方式顯示 1. 571秒64M0測試用例 2以文本方式顯示 1. 52. 10022以文本方式顯示 1. 0121秒64M0Code:#includeint main()i

10、nt n, m, l, i100, temp;scanf(%d,&n);for(m = 0; m n; m+)scanf(%d,&im);for(m = 0; m n - 1; m+)for(l = m + 1; l il)temp = im;im = il;il = temp;printf(%d,i0);temp = i0;for(m = 1; m n; m+)if(temp im)printf( %d,im);temp = im;printf(n);臨時題1.單詞排序成績10開啟時間2014年11月27日 星期四 02:55折扣0.8折扣時間2014年12月10日 星期三 02:55允許遲

11、交否關(guān)閉時間2014年12月17日 星期三 02:55輸入 5 個單詞,將它們按從大到小的順序排列后輸出。輸入: 5個單詞輸出: 排序后的順序測試輸入期待的輸出時間限制內(nèi)存限制額外進(jìn)程測試用例 1以文本方式顯示 1. BASIC2. C+3. Pascal4. C5. Fortran以文本方式顯示 1. Pascal2. Fortran3. C+4. C5. BASIC1秒64M0測試用例 2以文本方式顯示 1. BASIC2. C+3. C4. Fortran5. Pascal以文本方式顯示 1. Pascal2. Fortran3. C+4. C5. BASIC1秒64M0Code:#in

12、clude#include int main()char s5100, t100;int i, n;for(i = 0; i 5; i+)scanf(%s,si);for(i = 0; i 4; i+)for(n = i + 1; n 5; n+)if(strcmp(si,sn) 0)strcpy(t,si);strcpy(si,sn);strcpy(sn,t);for(i = 0; i 5; i+)printf(%sn,si);return 0;2.尋找矩陣的鞍點(diǎn)成績10開啟時間2014年11月27日 星期四 03:00折扣0.8折扣時間2014年12月10日 星期三 03:00允許遲交否關(guān)

13、閉時間2014年12月17日 星期三 03:00二維數(shù)組中的鞍點(diǎn),即該位置上的元素是所在行上的最大值,是所在列上的最小值。二維數(shù)組也可能沒有鞍點(diǎn)。輸入一個二維數(shù)組的行數(shù)n,列數(shù)m,二維數(shù)組的諸元素值;輸出數(shù)組的鞍點(diǎn),以及鞍點(diǎn)所在的行列號。輸入:第一行為矩陣的行數(shù)和列數(shù),從第二行開始,為矩陣本身(假設(shè)輸入的矩陣只有0和1個鞍點(diǎn)) 3 4 1 3 5 3 2 3 4 1 3 2 6 7輸出: Point: a12 = 4 (下標(biāo)從0開始)測試輸入期待的輸出時間限制內(nèi)存限制額外進(jìn)程測試用例 1以文本方式顯示 1. 342. 13533. 23414. 3267以文本方式顯示 1. Point:a12

14、=41秒64M0測試用例 2以文本方式顯示 1. 342. 12343. 84364. 9451以文本方式顯示 1. NoPoint1秒64M0Code:#include#include int main()int i100100, m, n, x, y, temp, log = 0;scanf(%d%d,&m,&n);for(y = 0; y m; y+)for(x = 0; x n; x+)scanf(%d,&iyx);/將每行的最大值放入每行的最后; for(y = 0; y m; y+)temp = 0;for(x = 0; x temp)temp = iyx;iyn = temp;/

15、將每列的最小值放入每列的最后for(x = 0; x n; x+)temp = 0x7fffffff;for(y = 0; y m; y+)if(iyx temp)temp = iyx;imx = temp;for(y = 0; y m; y+)for(x = 0; x n; x+)if(iyx = imx) & (iyx = iyn)printf(Point:a%d%d=%dn,y,x,iyx);log = 1;if(log = 0)printf(No Pointn);return 0;3.身份證的奧秘成績10開啟時間2014年11月27日 星期四 03:05折扣0.8折扣時間2014年12

16、月10日 星期三 03:05允許遲交否關(guān)閉時間2014年12月17日 星期三 03:05背景18位身份證標(biāo)準(zhǔn)在國家質(zhì)量技術(shù)監(jiān)督局于1999年7月1日實(shí)施的GB11643-1999公民身份號碼中做了明確的規(guī)定。 GB11643-1999公民身份號碼為GB11643-1989社會保障號碼的修訂版,其中指出將原標(biāo)準(zhǔn)名稱社會保障號碼更名為公民身份號碼,另外GB11643-1999公民身份號碼從實(shí)施之日起代替GB11643-1989。GB11643-1999公民身份號碼主要內(nèi)容如下:一、范圍該標(biāo)準(zhǔn)規(guī)定了公民身份號碼的編碼對象、號碼的結(jié)構(gòu)和表現(xiàn)形式,使每個編碼對象獲得一個唯一的、不變的法定號碼。二、編碼對

17、象公民身份號碼的編碼對象是具有中華人民共和國國籍的公民。三、號碼的結(jié)構(gòu)和表示形式1、號碼的結(jié)構(gòu)公民身份號碼是特征組合碼,由十七位數(shù)字本體碼和一位校驗(yàn)碼組成。排列順序從左至右依次為:六位數(shù)字地址碼,八位數(shù)字出生日期碼,三位數(shù)字順序碼和一位數(shù)字校驗(yàn)碼。2、地址碼表示編碼對象常住戶口所在縣(市、旗、區(qū))的行政區(qū)劃代碼,按GB/T2260的規(guī)定執(zhí)行。3、出生日期碼表示編碼對象出生的年、月、日,按GB/T7408的規(guī)定執(zhí)行,年、月、日代碼之間不用分隔符。4、順序碼表示在同一地址碼所標(biāo)識的區(qū)域范圍內(nèi),對同年、同月、同日出生的人編定的順序號,順序碼的奇數(shù)分配給男性,偶數(shù)分配給女性。5、校驗(yàn)碼(1)十七位數(shù)字

18、本體碼加權(quán)求和公式S = Sum(Ai * Wi), i = 0, . , 16 ,先對前17位數(shù)字的權(quán)求和Ai: 表示第i位置上的身份證號碼數(shù)字值Wi: 表示第i位置上的加權(quán)因子Wi: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2(2)計(jì)算模Y = mod(S, 11) Y = S % 11(3)通過模得到對應(yīng)的校驗(yàn)碼Y: 0 1 2 3 4 5 6 7 8 9 10校驗(yàn)碼: 1 0 X 9 8 7 6 5 4 3 2四、舉例如下:北京市朝陽區(qū):東省汕頭市: 44052418800101001415位的身份證號升級辦法:15位

19、的身份證號:dddddd yymmdd xx p18位的身份證號:dddddd yyyymmdd xx p yo 其中dddddd為地址碼(省地縣三級)o yyyymmdd yymmdd 為出生年月日o xx順號類編碼o p性別15 位的 yy 年升為 18 位后,變成 19yy年,但對于百歲以上老人, 則為 18yy 年,此時,他們的最后三位順序碼為996, 997, 998 或 999 來標(biāo)記。輸入輸入n組身份證號碼,第一行為個數(shù),以后每行為身份證號碼。輸出如果輸入的身份證號碼為15位,則將其升級為18位后顯示輸出;否則判斷其是否為合法身份證號,并逐行輸出。測試輸入期待的輸出時間限制內(nèi)存限

20、制額外進(jìn)程測試用例 1以文本方式顯示 1. 42. 3506221979041303313. 11010519491231002X4. 1101054912310025. 110105491231996以文本方式顯示 1. Invalid2. Valid3. 11010519491231002X4. 1101051849123199651秒64M0Code:#include#include int main()int n, i, m, j, sumt, y;char s10019, temp19, t;scanf(%d,&n);for(i = 0; i n; i+)scanf(%s,si);f

21、or(i = 0; i n; i+)m = 0;while(sim != 0)m+;if( m != 15 & m != 18)printf(Invalidn);if( m = 15)for(j = 0; j 5)temp6 = 1; temp7 = 8;elsetemp6 = 1; temp7 = 9;for(j = 6; j 16; j+)tempj + 2 = sij;strcpy(si,temp);sumt = (si0 - 0) * 7 + (si1- 0) * 9 + (si2 - 0) * 10 + (si3 - 0) * 5 + (si4 - 0) * 8 + (si5 - 0

22、) * 4 + (si6-0) * 2 + (si7-0) * 1 + (si8-0) * 6 + (si9-0) * 3 + (si10-0) * 7 + (si11-0) * 9 + (si12-0) * 10 + (si13-0) * 5 + (si14-0)* 8 + (si15-0) * 4 + (si16-0) * 2;/sumt = atoi(si0) * 7 + atoi(si1) * 9 + atoi(si2) * 10 + atoi(si3) * 5 +atoi(si4) * 8 + atoi(si5) * 4 + atoi(si6) * 2 + atoi(si7) * 1

23、 + atoi(si8) * 6 + atoi(si9) * 3 + atoi(si10) * 7 + atoi(si11) * 9 + atoi(si12) * 10 + atoi(si13) * 5 + atoi(si14)* 8 + atoi(si15) * 4 + atoi(si16) * 2;y = sumt % 11;switch (y)case 0: si17 = 1; break;case 1: si17 = 0; break;case 2: si17 = X; break;case 3: si17 = 9; break;case 4: si17 = 8; break;case

24、 5: si17 = 7; break;case 6: si17 = 6; break;case 7: si17 = 5; break;case 8: si17 = 4; break;case 9: si17 = 3; break;case 10: si17 = 2; break;si18 = 0;printf(%sn,si);if(m = 18)sumt = (si0 - 0) * 7 + (si1- 0) * 9 + (si2 - 0) * 10 + (si3 - 0) * 5 + (si4 - 0) * 8 + (si5 - 0) * 4 + (si6-0) * 2 + (si7-0)

25、* 1 + (si8-0) * 6 + (si9-0) * 3 + (si10-0) * 7 + (si11-0) * 9 + (si12-0) * 10 + (si13-0) * 5 + (si14-0)* 8 + (si15-0) * 4 + (si16-0) * 2;y = sumt % 11;switch (y)case 0: t = 1; break;case 1: t = 0; break;case 2: t = X; break;case 3: t = 9; break;case 4: t = 8; break;case 5: t = 7; break;case 6: t = 6

26、; break;case 7: t = 5; break;case 8: t = 4; break;case 9: t = 3; break;case 10: t = 2; break;if(t = si17)printf(Validn);elseprintf(Invalidn);return 0;4.安全的密碼(選做)成績0開啟時間2014年11月27日 星期四 03:10折扣0.8折扣時間2014年12月10日 星期三 03:10允許遲交否關(guān)閉時間2014年12月17日 星期三 03:10隨著電子設(shè)備的廣泛運(yùn)用,密碼也漸漸融入每個人的生活。保護(hù)好密碼,不僅關(guān)系到個人隱私,更關(guān)系到個人的財(cái)產(chǎn)

27、和安全。一個安全的密碼,最好由大小寫字母、數(shù)字或符號組成。包含越多種類的字符,其安全性就越高。同時密碼還需要有一定的長度,通常至少要由六個以上的字符組成。并不是每個人都喜歡這樣復(fù)雜的密碼,很多人在設(shè)置密碼的時候,喜歡使用自己的名字或者生日,但這是很大的安全隱患。任務(wù)林曉煒正在設(shè)計(jì)一個網(wǎng)絡(luò)交易系統(tǒng),為了保證用戶的密碼安全,他需要一個程序,判斷用戶自己設(shè)置的密碼是否安全,如果不安全,則給出提示。現(xiàn)在他向你求助,請你幫忙設(shè)計(jì)一個程序來解決這個問題。應(yīng)當(dāng)按照以下的規(guī)則來判斷密碼是否安全:1. 如果密碼長度小于 6 位,則不安全2. 如果組成密碼的字符只有一類,則不安全3. 如果組成密碼的字符有兩類,則

28、為中度安全4. 如果組成密碼的字符有三類或以上,則為安全通常,可以認(rèn)為數(shù)字、大寫字母、小寫字母和其它符號為四類不同的字符。輸入輸入的第一行是一個整數(shù) N,表明后面有多少組密碼。隨后的 N 行輸入包括 N 個密碼,每個密碼的長度均小于 20 個字符。輸出針對每一個密碼判斷并輸出它是否安全。對于不安全的密碼輸出 Not Safe,對于中度安全的密碼輸出 Medium Safe,對于安全的密碼輸出 Safe輸入樣例41234abcdefABC1231#c3Gh輸出樣例Not SafeNot SafeMediumSafe Safe測試輸入期待的輸出時間限制內(nèi)存限制額外進(jìn)程測試用例 1以文本方式顯示 1

29、. 102. abcDEF3. ABC4. qw5. 6. ABCDEFGHIJKLMNOPQRST7. 123456789012345678908. 1aB9. 1B10. aX11. qwe123%&ABC以文本方式顯示 1. MediumSafe2. NotSafe3. NotSafe4. NotSafe5. NotSafe6. NotSafe7. Safe8. NotSafe9. Safe10. Safe1秒64M0Code:#include#include int main()int n, i, j, m, log1, log2, log3, log4;char s10021, t1

30、0;scanf(%d,&n);gets(t);for(i = 0; i n; i+)gets(si);for(i = 0; i n; i+)j = 0;while(sij != 0)j+;if(j = 0 & sij = a & sij = A & sij = 0 & sij = a & sij = A & sij = 3) printf(Safen);return 0;期中考試測試題2.回文數(shù)成績10開啟時間2014年11月20日 星期四 02:50折扣0.8折扣時間2014年12月4日 星期四 02:50允許遲交否關(guān)閉時間2014年12月11日 星期四 02:50輸出所有不超過(取n256

31、)的、其平方具有對稱性質(zhì)的正整數(shù)(也稱為回文數(shù))。如: 1*1=1;2*2=4;3*3=9;11*11=121測試輸入期待的輸出時間限制內(nèi)存限制額外進(jìn)程測試用例 1以文本方式顯示 1. 3以文本方式顯示 1. 12. 21秒64M0測試用例 2以文本方式顯示 1. 25以文本方式顯示 1. 12. 23. 34. 115. 226. 1秒64M0Code:#include int main() int n, m, square, i, temp, log; char s6; scanf(%d,&n); for(m = 1; m n; m+) i = 0; square = m * m; log = 1; while

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論