藍橋杯試題C語言答案_第1頁
藍橋杯試題C語言答案_第2頁
藍橋杯試題C語言答案_第3頁
藍橋杯試題C語言答案_第4頁
藍橋杯試題C語言答案_第5頁
已閱讀5頁,還剩2頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1、五名學(xué)生有可能參加計算機競賽,根據(jù)下列條件判斷哪些 人參加了競賽: ()參加時,也參加; ()和只有一個人參加; ()和或者都參加,或者都不參加; ()和中至少有一個人參加; ()如果參加,那么和也都參加。00110 c、d#include<stdio.h>int main()int a,b,c,d,e; /*0表示不參加, 1表示參加.*/for(a=0;a<2;a+)for(b=0;b<2;b+)for(c=0;c<2;c+)for(d=0;d<2;d+)for(e=0;e<2;e+)if(a&&!b) continue;if(

2、b&&c|!b&&!c) continue;if(c&&!d|!c&&d) continue;if(!d&&!e) continue;if(e&&(!a|!d)continue;printf("%d%d%d%d%d",a,b,c,d,e);return 0; 2、某偵察隊接到一項緊急任務(wù),要求在A、B、C、D、E、F六個隊員中盡可能多地挑若干人,但有以下限制條件: 1)A和B兩人中至少去一人; 2)A和D不能一起去; 3)A、E和F三人中要派兩人去; 4)B和C都去或都不去;5)

3、C和D兩人中去一個; 6)若D不去,則E也不去。 試編寫一個程序,輸出問應(yīng)當(dāng)讓哪幾個人去?#include<stdio.h>int main()int a,b,c,d,e,f;for(a=1;a>=0;a-) for(b=1;b>=0;b-)/*1:去 0:不去*/ for(c=1;c>=0;c-) for(d=1;d>=0;d-)for(e=1;e>=0;e-)for(f=1;f>=0;f-)if(a+b>=1&&a+d!=2&&a+e+f=2&&b=c&&c+d=1&

4、;&(d+e=0|d=1)printf("a=%d,b=%d,c=%d,d=%d,e=%d,f=%d",a,b,c,d,e,f);return 0;3、警察局抓住了A、B、C、D四名盜竊嫌疑犯,其中只有一人是小偷。在審問時,A說:“我不是小偷”;B說:“C是小偷”;C說:“小偷肯定是D”;D說:“C在冤枉好人”?,F(xiàn)在已經(jīng)知道這四人中有三人說的是真話,一人說的是假話。請問到底誰是小偷?提示:設(shè)4個變量a,b,c,d,為0時表示不是小偷,為1時表示是小偷,用四重循環(huán)窮舉a,b,c,d可能的取值的組合,對每一種組合判斷其是否符合題目中給出的約束。最后結(jié)論:C是小偷。#in

5、clude<stdio.h> int main()int a,b,c,d; for(a=1;a>=0;a-) for(b=1;b>=0;b-)/*1:是小偷 0:不是小偷*/ for(c=1;c>=0;c-) for(d=1;d>=0;d-) if(a=0)+(c=1)+(d=1)+(d=0)=3&&a+b+c+d=1)/*4人的說法中有3個真的,且只有一個小偷*/ printf("%d %d %d %d",a,d,c,d); return 0;4、 有限五位數(shù)個位數(shù)為6且能被3整除的五位數(shù)有多少個?#include<

6、;stdio.h>int main()long int i;int sum=0;for(i=1000;i<=9999;i+)if(i*10+6)%3=0)sum+;printf("%d",sum);return 0; 5、標題:錯誤票據(jù) 某涉密單位下發(fā)了某種票據(jù),并要在年終全部收回。 每張票據(jù)有唯一的ID號。全年所有票據(jù)的ID號是連續(xù)的,但ID的開始數(shù)碼是隨機選定的。 因為工作人員疏忽,在錄入ID號的時候發(fā)生了一處錯誤,造成了某個ID斷號,另外一個ID重號。 你的任務(wù)是通過編程,找出斷號的ID和重號的ID。 假設(shè)斷號不可能發(fā)生在最大和最小號。 要求程序首先輸入一

7、個整數(shù)N(N<100)表示后面數(shù)據(jù)行數(shù)。 接著讀入N行數(shù)據(jù)。 每行數(shù)據(jù)長度不等,是用空格分開的若干個(不大于100個)正整數(shù)(不大于100000) 每個整數(shù)代表一個ID號。 要求程序輸出1行,含兩個整數(shù)m n,用空格分隔。 其中,m表示斷號ID,n表示重號ID 例如: 用戶輸入: 2 5 68 11 9 10 12 9 則程序輸出: 7 9 再例如: 用戶輸入: 6 164178 108 109 180 155 141 159 104 182 179 118 137 184 115 124 125 129 168 196 172189 127 107 112 192 103 131 13

8、3 169 158 128102 110 148 139 157 140 195 197 185152 135 106 123 173 122 136 174 191 145 116 151 143 175 120 161 134 162 190 149138 142 146 199 126 165 156 153 193 144 166 170 121 171 132 101194 187 188 113 130 176 154 177 120 117 150 114 183 186 181 100 163 160167 147 198 111 119 則程序輸出: 105 120 資源約定

9、: 峰值內(nèi)存消耗 < 64M CPU消耗 < 1000ms 請嚴格按要求輸出,不要畫蛇添足地打印類似:“請您輸入.” 的多余內(nèi)容。 所有代碼放在同一個源文件中,調(diào)試通過后,拷貝提交該源碼。 注意: main函數(shù)需要返回0 注意: 只使用ANSI C/ANSI C+ 標準,不要調(diào)用依賴于編譯環(huán)境或操作系統(tǒng)的特殊函數(shù)。 注意: 所有依賴的函數(shù)必須明確地在源文件中#include <xxx>, 不能通過工程設(shè)置而省略常用頭文件。 提交時,注意選擇所期望的編譯器類型。 #include <stdio.h>int a100001; int main() int n,t

10、; scanf("%d", &n); int min = 100001; int max = 0; int i; for(i = 0; i <= n; ) t = getchar(); if(t >= '0' && t <= '9') /*注意是字符! */ ungetc(t, stdin);/*ungetc是一個函數(shù)功能,把一個字符退回到輸入流中用法:int ungetc(char c, FILE *stream);輸入?yún)?shù) c要寫入的字符,stream 文件流指針 輸出參數(shù)字符c 操作成功,EOF

11、 操作失敗 */ scanf("%d", &t); at+; /*在讀入時保存下id號的最大值與最小值,這樣可以為后面判斷那個id遺漏(即aid=0)哪個id重復(fù)(即aid=2)提供一個范圍控制。*/ if(t < min) min = t; if(t > max) max = t; else if(t = 'n') i+; for(i = min; i < max + 1; i+) if(ai = 0) printf("%d ", i); if(ai = 2) printf("%dn", i

12、); return 0; 6、標題: 馬虎的算式 小明是個急性子,上小學(xué)的時候經(jīng)常把老師寫在黑板上的題目抄錯了。 有一次,老師出的題目是:36 x 495 = ? 他卻給抄成了:396 x 45 = ? 但結(jié)果卻很戲劇性,他的答案竟然是對的! 因為 36 * 495 = 396 * 45 = 1782 類似這樣的巧合情況可能還有很多,比如:27 * 594 = 297 * 54 假設(shè) a b c d e 代表19不同的5個數(shù)字(注意是各不相同的數(shù)字,且不含0) 能滿足形如: ab * cde = adb * ce 這樣的算式一共有多少種呢?請你利用計算機的優(yōu)勢尋找所有的可能,并回答不同算式的種

13、類數(shù)。滿足乘法交換律的算式計為不同的種類,所以答案肯定是個偶數(shù)。答案直接通過瀏覽器提交。注意:只提交一個表示最終統(tǒng)計種類數(shù)的數(shù)字,不要提交解答過程或其它多余的內(nèi)容。#include<stdio.h>int main()int n,m,i=0;for(int a=1;a<10;a+)for(int b=1;b<10;b+)for(int c=1;c<10;c+)for(int d=1;d<10;d+)for(int e=1;e<10;e+)n=(a*10+b)*(c*100+d*10+e);m=(a*100+d*10+b)*(c*10+e);if(n=m

14、&&a!=b&&a!=c&&a!=d&&a!=e&&b!=c&&b!=d&&b!=e&&c!=d&&c!=e&&d!=e)i+; printf("%d",i);return 0;7、標題:切面條 一根高筋拉面,中間切一刀,可以得到2根面條。 如果先對折1次,中間切一刀,可以得到3根面條。 如果連續(xù)對折2次,中間切一刀,可以得到5根面條。 那么,連續(xù)對折10次,中間切一刀,會得到多少面條呢?答案是個整數(shù),請通過瀏覽器提

15、交答案。不要填寫任何多余的內(nèi)容。/*切面條*/ #include<stdio.h>main()int i,num=2;printf("n次 條數(shù)n"); for(i=1;i<=10;i+)num=num*2-1;printf("%2d%8dn",i,num);getch();return 0; 8、標題:奇怪的分式 上小學(xué)的時候,小明經(jīng)常自己發(fā)明新算法。一次,老師出的題目是: 1/4 乘以 8/5 小明居然把分子拼接在一起,分母拼接在一起,答案是:18/45 (參見圖1.png) 老師剛想批評他,轉(zhuǎn)念一想,這個答案湊巧也對啊,真是見鬼!

16、 對于分子、分母都是 19 中的一位數(shù)的情況,還有哪些算式可以這樣計算呢? 請寫出所有不同算式的個數(shù)(包括題中舉例的)。 顯然,交換分子分母后,例如:4/1 乘以 5/8 是滿足要求的,這算做不同的算式。 但對于分子分母相同的情況,2/2 乘以 3/3 這樣的類型太多了,不在計數(shù)之列!注意:答案是個整數(shù)(考慮對稱性,肯定是偶數(shù))。請通過瀏覽器提交。不要書寫多余的內(nèi)容。#include <stdio.h>int main()int sum = 0;for(int a = 1; a <= 9; a+)for(int b = 1; b <= 9; b+)for(int c = 1; c <= 9; c+)for(int d = 1; d <= 9; d+)if(a = b && c = d)continue;int na = a * 10 + c

溫馨提示

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

最新文檔

評論

0/150

提交評論