部分例題以及格式來自:中國大學MOOC-翁愷-C語言程序設計習題集(一) - Assassinの - 博客園 (cnblogs.com) ,代碼是自己寫的。
02-0. 整數四則運算(10)
本題要求編寫程序,計算2個正整數的和、差、積、商並輸出。題目保證輸入和輸出全部在整型范圍內。
輸入格式:
輸入在一行中給出2個正整數A和B。
輸出格式:
在4行中按照格式“A 運算符 B = 結果”順序輸出和、差、積、商。
輸入樣例:
2 3
代碼:

#include<stdio.h> int main(){ int a,b; scanf("%d %d", &a, &b); printf("%d + %d = %d\n", a, b, a+b); printf("%d - %d = %d\n", a, b, a-b); printf("%d * %d = %d\n", a, b, a*b); printf("%d / %d = %d\n", a, b, a/b); return 0; }
02-1. 厘米換算英尺英寸(15)
如果已知英制長度的英尺foot和英寸inch的值,那么對應的米是(foot+inch/12)*0.3048。現在,如果用戶輸入的是厘米數,那么對應英制長度的英尺和英寸是多少呢?別忘了1英尺等於12英寸。
輸入格式:
輸入在一行中給出1個正整數,單位是厘米。
輸出格式:
在一行中輸出這個厘米數對應英制長度的英尺和英寸的整數值,中間用空格分開。
輸入樣例:
170
輸出樣例:
5 6
代碼:

#include<stdio.h> int main(){ int centimeter, foot, inch; float meter; scanf("%d", ¢imeter); meter = centimeter/100.0; foot = meter/0.3048; inch = (meter/0.3048 - foot)*12; printf("%d %d\n", foot, inch); return 0; }
02-2. 然后是幾點(15)
有時候人們用四位數字表示一個時間,比如1106表示11點零6分。現在,你的程序要根據起始時間和流逝的時間計算出終止時間。 讀入兩個數字,第一個數字以這樣的四位數字表示當前時間,第二個數字表示分鍾數,計算當前時間經過那么多分鍾后是幾點,結果也表示為四位數字。當小時為個位數時,沒有前導的零,即5點30分表示為530。注意,第二個數字表示的分鍾數可能超過60,也可能是負數。
輸入格式:
輸入在一行中給出2個整數,分別是四位數字表示的起始時間、以及流逝的分鍾數,其間以空格分隔。注意:在起始時間中,當小時為個位數時,沒有前導的零,即5點30分表示為530;流逝的分鍾數可能超過60,也可能是負數。
輸出格式:
輸出四位數字表示的終止時間。題目保證起始時間和終止時間在同一天內。
輸入樣例:
1120 110
輸出樣例:
1310
代碼:

#include<stdio.h> int main(){ int time, hour, minute, passmin; scanf("%d %d", &time, &passmin); hour = time/100; minute = time - hour*100; hour = hour + passmin/60; minute = minute + passmin - passmin/60*60; hour = hour + minute/60; minute = minute - minute/60*60; time = hour*100 + minute; printf("%d\n", time); return 0; }
02-3. 逆序的三位數(10)
程序每次讀入一個正3位數,然后輸出按位逆序的數字。注意:當輸入的數字含有結尾的0時,輸出不應帶有前導的0。比如輸入700,輸出應該是7。
輸入格式:
每個測試是一個3位的正整數。
輸出格式:
輸出按位逆序的數。
輸入樣例:
123
輸出樣例:
321
代碼:

#include<stdio.h> int main(){ int n, t ,s=0; scanf("%d",&n); while(n>0){ t = n % 10; s = s*10 + t; n/=10; } printf("%d\n",s); return 0; }
02-4. BCD解密(10)
BCD數是用一個字節來表達兩位十進制的數,每四個比特表示一位。所以如果一個BCD數的十六進制是0x12,它表達的就是十進制的12。但是小明沒學過BCD,把所有的BCD數都當作二進制數轉換成十進制輸出了。於是BCD的0x12被輸出成了十進制的18了!
現在,你的程序要讀入這個錯誤的十進制數,然后輸出正確的十進制數。提示:你可以把18轉換回0x12,然后再轉換回12。
輸入格式:
輸入在一行中給出一個[0, 153]范圍內的正整數,保證能轉換回有效的BCD數,也就是說這個整數轉換成十六進制時不會出現A-F的數字。
輸出格式:
輸出對應的十進制數。
輸入樣例:
18
輸出樣例:
12
代碼:

#include<stdio.h> int main(){ int n, bcd, decimal; scanf("%d", &n); bcd = n/16%16*10 + n%16; /*題目說明了不會出現A-F 因此表現形式上decimal等於bcd */ decimal = bcd; printf("%d\n", decimal); return 0; }
03-1. 三天打魚兩天曬網(15)
中國有句俗語叫“三天打魚兩天曬網”。假設某人從某天起,開始“三天打魚兩天曬網”,問這個人在以后的第N天中是“打魚”還是“曬網”?
輸入格式:
輸入在一行中給出1個不超過1000的正整數N。
輸出格式:
在一行中輸出此人在第N天中是“Fishing”(即“打魚”)還是“Drying”(即“曬網”),並且輸出“in day N”。
輸入樣例1:
103
輸出樣例1:
Fishing in day 103
輸入樣例2:
34
輸出樣例2:
Drying in day 34
代碼:

#include<stdio.h> int main(){ int n; scanf("%d",&n); if(n%5==0||n%5==4){ printf("Drying in day %d\n",n); } else{ printf("Fishing in day %d\n",n); } return 0; }
03-4. 成績轉換(15)
本題要求編寫程序將一個百分制成績轉換為五分制成績。轉換規則:
大於等於90分為A;小於90且大於等於80為B;小於80且大於等於70為C;小於70且大於等於60為D;小於60為E。
輸入格式:
輸入在一行中給出1個整數的百分制成績。
輸出格式:
在一行中輸出對應的五分制成績。
輸入樣例:
90
輸出樣例:
A
代碼:

#include<stdio.h> int main(){ int score; scanf("%d", &score); switch(score/10){ case 10: printf("A"); break; case 9: printf("A"); break; case 8: printf("B"); break; case 7: printf("C"); break; case 6: printf("D"); break; default: printf("E"); break; } return 0; }