You are on page 1of 131

中山醫學大學

111 程式語言能力檢定題庫
解答本
內容(灰色題目不列入考試)
程式範例 1_01 名稱:金額計算 ……………………………………………………………….. 6
程式範例 1_02 名稱:三數總和 ……………………………………………………………….. 7
程式範例 1_03 名稱:換行輸出 ……………………………………………………………….. 8
程式範例 1_04 名稱:數值輸出 ……………………………………………………………….. 9
程式範例 1_05 名稱:印出三角形 ……………………………………………………………. 10
程式範例 1_06 名稱:飲料杯數計算 ………………………………………………………… 11
程式範例 1_07 名稱:簡易計算(1) ……………………………………………………………. 12
程式範例 1_08 名稱:摘桃子(1) ……………………………………………………………….. 13
程式範例 1_09 名稱:摘桃子(2) ……………………………………………………………….. 14
程式範例 1_10 名稱:奇偶判斷 ………………………………………………………………… 15
程式範例 1_11 名稱:辨識阿姆斯壯數 …………………………………………………….. 16
程式範例 1_12 名稱:比大小 …….……………………………………………………………… 17
程式範例 1_13 名稱:更改順序 ………………………………………………………………… 18
程式範例 1_14 名稱:幣值轉換 ………………………………………………………………… 19
程式範例 1_15 名稱:時間換算 ………………………………………………………………… 20
程式範例 1_16 名稱:卡路里消耗計算 …………………………………………………….. 21
程式範例 1_17 名稱:平均動脈壓計算 …………………………………………………….. 22
程式範例 1_18 名稱:貓糧計算(1) ……………………………………………………………. 23
程式範例 1_19 名稱:背誦量計算 ……………………………………………………………. 24
程式範例 1_20 名稱:熬湯計算 ………………………………………………………………… 25
程式範例 1_21 名稱:購物金額計算 ………….…………………………………………….. 26
程式範例 1_22 名稱:建案時間計算(1) ……………………………………………………. 27
程式範例 1_23 名稱:清洗次數計算(1) ……………………………………………………. 28
程式範例 1_24 名稱:體檢時間計算(1) ……………………………………………………. 29
程式範例 1_25 名稱:圓面積計算 ……………………………………………………………. 30
程式範例 1_26 名稱:倍數判斷 ………………………………………………………………… 31
程式範例 1_27 名稱:購物計算(1) ……………………………………………………………. 32
程式範例 1_28 名稱:計算球體體積、表面積 ……………………………………….... 33
程式範例 1_29 名稱:兩點求距離及斜率 …………………………………………………. 34
程式範例 1_30 名稱:里程數轉換 ……………………………………………………………. 35
程式範例 2_01 名稱:平均計算 ………………………………………………………………… 36
程式範例 2_02 名稱:計算上班時間 ………….…………………………………………….. 37
程式範例 2_03 名稱:總和平均計算 ………….…………………………………………….. 38
程式範例 2_04 名稱:幣值轉換 ……………………………………………………………….. 39
程式範例 2_05 名稱:計算梯形面積 ………….…………………………………………….. 40
程式範例 2_06 名稱:簡易計算(2) ……………………………………………………………. 41

2
程式範例 2_07 名稱:判斷閏年、平年 ……………………………………………….……. 42
程式範例 2_08 名稱:將值給予他人、輸出 ……………………………………………… 43
程式範例 2_09 名稱:九九乘法表 ……………………………………………………………. 44
程式範例 2_10 名稱:執行指定方程式 …………………………………………………….. 45
程式範例 2_11 名稱:計算回家時間 ………….…………………………………………….. 46
程式範例 2_12 名稱:利息計算 ………………………………………………………………… 47
程式範例 2_13 名稱:時薪計算 ………………………………………………………………… 48
程式範例 2_14 名稱:圓周、圓周率計算 ………….……………………………………… 49
程式範例 2_15 名稱:溫度轉換 ………………………………………………………………… 50
程式範例 2_16 名稱:貓糧計算(2) ……………………………………………………………. 51
程式範例 2_17 名稱:最小換幣值 ……………………………………………………………. 52
程式範例 2_18 名稱:清洗次數計算(2) ………….………………………………………… 53
程式範例 2_19 名稱:體檢時間計算(2) ………….………………………………………… 54
程式範例 2_20 名稱:建案時間計算(2) ………….………………………………………… 55
程式範例 2_21 名稱:優惠計算 ………………………………………………………………… 56
程式範例 2_22 名稱:購物計算(2) ……………………………………………………………. 57
程式範例 2_23 名稱:購物計算(3) ……………………………………………………………. 58
程式範例 2_24 名稱:爬樓梯 ……………………………………………………………………. 59
程式範例 2_25 名稱:平均動脈壓 ……………………………………………………………. 60
程式範例 2_26 名稱:降雨機率 ………………………………………………………………… 61
程式範例 2_27 名稱:矩形面積計算 ………………………………………………………… 62
程式範例 2_28 名稱:簡易計算(3) ……………………………………………………………. 63
程式範例 2_29 名稱:氣球計算 ………………………………………………………………… 64
程式範例 2_30 名稱:碎紙機計算 ……………………………………………………………. 65
程式範例 2_31 名稱:計算飲料價錢 ………………………………………………………... 66
程式範例 3_01 名稱:調整後計算平均 …………………………………………………….. 67
程式範例 3_02 名稱:薪水計算 ………………………………………………………………… 68
程式範例 3_03 名稱:BMI 計算 ………………………………………………………………… 69
程式範例 3_04 名稱:時間計算 ………………………………………………………………… 70
程式範例 3_05 名稱:計程車費計算 ………………………………………………………… 71
程式範例 3_06 名稱:隨機猜題 ………………………………………………………………… 72
程式範例 3_07 名稱:簡易計算(4) ……………………………………………………………. 73
程式範例 3_08 名稱:簡易計算(5) ……………………………………………………………. 74
程式範例 3_09 名稱:三角形判斷、計算 …………………………………………………. 75
程式範例 3_10 名稱:換錢計畫 ………………………………………………………………… 76
程式範例 3_11 名稱:成績分級 ………………………………………………………………… 77
程式範例 3_12 名稱:計算 n 值 ……………………………………………………………….. 78
程式範例 3_13 名稱:閏平年、季節計算 …………………………………………………. 79

3
程式範例 3_14 名稱:補助計算 ………………………………………………………………… 80
程式範例 3_15 名稱:回文數判斷(非字串) ………………………………………………. 81
程式範例 3_16 名稱:簡易計算(5) ……………………………………………………………. 82
程式範例 3_17 名稱:卡路里計算、判斷 …………………………………………………. 83
程式範例 3_18 名稱:吃飯問題 ………………………………………………………………… 84
程式範例 3_19 名稱:住院狀況判斷 ………………………………………………………… 86
程式範例 3_20 名稱:分數調分、分級 …………………………………………………….. 87
程式範例 3_21 名稱:清洗次數計算(3) ……………………………………………………. 88
程式範例 3_22 名稱:購物計算(4) ……………………………………………………………. 89
程式範例 3_23 名稱:購物計算(5) ……………………………………………………………. 90
程式範例 3_24 名稱:月薪計算 ………………………………………………………………… 91
程式範例 3_25 名稱:秒數計算 ………………………………………………………………… 92
程式範例 3_26 名稱:時間計算器 ……………………………………………………………. 93
程式範例 3_27 名稱:乘法問題 ………………………………………………………………… 94
程式範例 3_28 名稱:購物計算(6) ……………………………………………………………. 95
程式範例 3_29 名稱:電費計算 ………………………………………………………………… 96
程式範例 4_01 名稱:調分後計算平均及判斷 …………………………………………. 97
程式範例 4_02 名稱:時間及合約終止時間計算 ……………………………………… 98
程式範例 4_03 名稱:進口後良率的退換貨 …………………………………………….. 99
程式範例 4_04 名稱:加法計算(1) …………………………….………………………………. 101
程式範例 4_05 名稱:三角形 …………………………………………………………………….. 102
程式範例 4_06 名稱:加法計算(2) …………………………………………………………….. 103
程式範例 4_07 名稱:比賽名單 …………………………………………………………………. 104
程式範例 4_08 名稱:巴斯卡三角形 ….……………………………………………………… 105
程式範例 4_09 名稱:計算最大公因數及最小公倍數 ……………………………….. 106
程式範例 4_10 名稱:住所選擇 …………………………………………………………………. 107
程式範例 4_11 名稱:質因數計算 ……………………………………………………………… 108
程式範例 4_12 名稱:圖形繪製 …………………………………………………………………. 109
程式範例 4_13 名稱:熱量攝取計算與判斷 ………………………………………………. 110
程式範例 4_14 名稱:因數判斷 …………………………………………………………………. 111
程式範例 4_15 名稱:日期判斷 …………………………………………………………………. 112
程式範例 4_16 名稱:畢業門檻判斷(1) ……………………………………………………… 114
程式範例 4_17 名稱:取火柴 …………………………………………………………………….. 116
程式範例 4_18 名稱:購物計算(6) …….………………………………………………………. 117
程式範例 4_19 名稱:擲兩個骰子和之機率 ………………………………………………. 118
程式範例 4_20 名稱:畢業門檻判斷(2) ……………………………………………………… 119
程式範例 4_21 名稱:薪水計算 …………………………………………………………………. 122
程式範例 4_22 名稱:輸入輸出(1) …………………………………………………………….. 123

4
程式範例 4_23 名稱:輸入輸出(2) …………………………………………………………….. 124
程式範例 4_24 名稱:多重位數相乘 …………………………………………………………. 125
程式範例 4_25 名稱:會不會被當 ……………………………………………………………… 126
程式範例 4_26 名稱:自守數 …………………………………………………………………….. 127
程式範例 4_27 名稱:走樓梯 …………………………………………………………………….. 128
程式範例 4_28 名稱:二進制的進位次數 ………………………………………………….. 129
程式範例 4_29 名稱:分數化簡 ….……………………………………………………………… 130
程式範例 4_30 名稱:電視 ………………………………………………………………………… 131

5
程式範例 1_01 名稱:金額計算
題目難度〈1〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
double price, num, sum;
price=23.7;
scanf("%lf", &num);
sum=price*num;
printf("%.1lf \n", sum);

system("pause");
return 0;
}

6
程式範例 1_02 名稱:三數總和
題目難度〈1〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
int n1, n2, n3, ans;
ans = 0;
scanf("%d%d%d", &n1, &n2, &n3);
ans = n1+n2+n3;
printf("%d \n", ans);

system("pause");
return 0;
}

7
程式範例 1_03 名稱:換行輸出
題目難度〈1〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
printf("Hello, ");
printf("how are you ?\n");
printf("I am fine, ");
printf("thank you. ");
printf("And you ?\n");
printf("Over\n");

system("pause");
return 0;
}

8
程式範例 1_04 名稱:數值輸出
題目難度〈1〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
int x=100, y=200, z=300;
printf("x=%d,y=%d,z=%d\n",x,y,z);

system("pause");
return 0;
}

9
程式範例 1_05 名稱:印出三角形
題目難度〈1〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
int i;
printf(" * \n");
printf(" ** \n");
printf(" * * \n");
printf(" * * \n");
printf(" * * \n");
printf(" * * \n");
printf(" * * \n");
printf("*************** \n");

system("pause");
return 0;
}

10
程式範例 1_06 名稱:飲料杯數計算
題目難度〈1〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
int time=10, BT=1, MG=2, BT_number, MG_number;
BT_number= time / BT;
MG_number= time / MG;
printf("%d \n",BT_number);
printf("%d \n",MG_number);

system("pause");
return 0;
}

11
程式範例 1_07 名稱:簡易計算(1)
題目難度〈1〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
double a,b;
printf("輸入兩個數:");
scanf("%lf %lf",&a,&b);
printf("兩數相乘:%lf\n",a*b);

system("pause");
return 0;
}

12
程式範例 1_08 名稱:摘桃子(1)
題目難度〈1〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
int X;
X = (1.5)*9 +1.5;
printf("%d\n", X);

system("pause");
return 0;
}

13
程式範例 1_09 名稱:摘桃子(2)
題目難度〈1〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
int day;
day = (18 / 1.5);
printf("%d\n", day);

system("pause");
return 0;
}

14
程式範例 1_10 名稱:奇偶判斷
題目難度〈1〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
int i;
scanf("%d", &i);
if (i%2==0)
printf("偶數\n");
else
printf("奇數\n");

system("PAUSE");
return 0;
}

15
程式範例 1_11 名稱:辨識阿姆斯壯數
題目難度〈1〉

#include<stdio.h>
#include<stdlib.h>
int main(void)
{
int i,x,y,z;
scanf("%d",&i);
x=i/100;
y=i/10%10;
z=i%10;
if(x*x*x+y*y*y+z*z*z==i)
{
printf("Yes, it's an Armstrong number!\n");
}
else
{
printf("No, it isn't an Armstrong number!\n");
}

system("pause");
return 0;
}

16
程式範例 1_12 名稱:比大小
題目難度〈1〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
double a,b;
scanf("%lf %lf",&a,&b);
if(a<b)
{
printf("%lf %lf\n",a,b);
}
else if(a==b)
{
printf("%lf %lf\n",a,b);
}
else
{
printf("%lf %lf\n",b,a);
}

system("pause");
return 0;
}

17
程式範例 1_13 名稱:更改順序
題目難度〈1〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
char a,b,c,d,e;
scanf("%c %c %c %c %c",&a,&b,&c,&d,&e);
printf("%c %c %c %c %c\n",e,d,c,b,a);

system("pause");
return 0;
}

18
程式範例 1_14 名稱:幣值轉換
題目難度〈1〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
double ntd, usd, ukd;
scanf("%lf",&usd);
ntd=usd*32.35;
printf("%lf\n",ntd);

system("pause");
return 0;
}

19
程式範例 1_15 名稱:時間換算
題目難度〈1〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
double hr, min, sec, ans;
printf("請依序輸入小時/分鐘/秒數(沒有請填 0)\n");
scanf("%lf %lf %lf",&hr,&min,&sec);
ans=(hr*60*60)+(min*60)+sec;
printf("ans=%lf\n",ans);

system("pause");
return 0;
}

20
程式範例 1_16 名稱:卡路里消耗計算
題目難度〈1〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
int run=500, jump=250, ans;
ans=(run*5)+(jump*14);
printf("小明總共消耗了 %d 卡路里\n",ans);

system("PAUSE");
return 0;
}

21
程式範例 1_17 名稱:平均動脈壓計算
題目難度〈1〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
int a,b;
float c;
printf("輸入舒張壓:\n");
scanf("%d",&a);
printf("輸入收縮壓:\n");
scanf("%d",&b);
c=(a+((b-a)/3));
printf("平均動脈壓(MAP):%.2fmmHg\n",c);

system("pause");
return 0;
}

22
程式範例 1_18 名稱:貓糧計算(1)
題目難度〈1〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
int a=30, ans, final_ans;
ans=(9000/30);
final_ans=(ans/3);
printf("9 公斤的乾糧,一隻貓咪可以吃 %d 天\n",final_ans);

system("PAUSE");
return 0;
}

23
程式範例 1_19 名稱:背誦量計算
題目難度〈1〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
int a=3, ans;
ans=a*5;
printf("小明 5 分鐘可以背 %d 個英文單字\n",ans);

system("PAUSE");
return 0;
}

24
程式範例 1_20 名稱:熬湯計算
題目難度〈1〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
int a=15, ans;
ans = 15/3;
printf("王先生能熬 %d 鍋大補湯\n",ans);

system("PAUSE");
return 0;
}

25
程式範例 1_21 名稱:購物金額計算
題目難度〈1〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
printf("%d 元\n",20*3+20*5);

system("pause");
return 0;
}

26
程式範例 1_22 名稱:建案時間計算(1)
題目難度〈1〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
printf("%d 個月\n",1*10);

system("pause");
return 0;
}

27
程式範例 1_23 名稱:清洗次數計算(1)
題目難度〈1〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
printf("%d 次\n",120/40);

system("pause");
return 0;
}

28
程式範例 1_24 名稱:體檢時間計算(1)
題目難度〈1〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
printf("%d 分鐘\n",2*25);

system("pause");
return 0;
}

29
程式範例 1_25 名稱:圓面積計算
題目難度〈1〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
int r=0;
printf("請輸入半徑:");
scanf("%d",&r);
printf("圓面積為%.2f\n",r*r*3.14159);

system("pause");
return 0;
}

30
程式範例 1_26 名稱:倍數判斷
題目難度〈1〉

#include<stdio.h>
int main()
{
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
printf("%d",c*(c/b));
}

31
程式範例 1_27 名稱:購物計算(1)
題目難度〈1〉

#include<stdio.h>
int main()
{
int a,b;
scanf("%d%d",&a,&b);
printf("%d",a*b);
}

32
程式範例 1_28 名稱:計算球體體積、表面積
題目難度〈1〉

#include<stdio.h>
int main()
{
double a;
scanf("%lf",&a);
printf("%.2lf %.2lf",a*a*a*3.14159*4/3,a*a*3.14159*4);
}

33
程式範例 1_29 名稱:兩點求距離及斜率
題目難度〈1〉

#include<stdio.h>
#include<math.h>
int main()
{
float x1,y1,x2,y2;
float dis,slope;
scanf("%f%f%f%f",&x1,&y1,&x2,&y2);
dis=sqrt(abs(x2-x1)*abs(x2-x1)+abs(y2-y1)*abs(y2-y1));
slope=(y2-y1)/(x2-x1);
printf("%.2f %.2f",dis,slope);
}

34
程式範例 1_30 名稱:里程數轉換
題目難度〈1〉

#include<stdio.h>
int main()
{
float a;
scanf("%f",&a);
printf("%.1f",a*0.62);
}

35
程式範例 2_01 名稱:平均計算
題目難度〈2〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
double a,b,c;
scanf("%lf%lf%lf",&a,&b,&c);
printf("%.2lf \n",(a+b+c)/3);

system("pause");
return 0;
}

36
程式範例 2_02 名稱:計算上班時間
題目難度〈2〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
int a;
a = (17-9)*60*60;
printf("%d 秒\n",a);

system("pause");
return 0;
}

37
程式範例 2_03 名稱:總和平均計算
題目難度〈2〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
double a,b,c,d,e;
a=90;
b=95;
c=85;
d=64;
e=84;
printf("%lf\n",(a+b+c+d+e));
printf("%lf\n",(a+b+c+d+e)/5);

system("pause");
return 0;
}

38
程式範例 2_04 名稱:幣值轉換
題目難度〈2〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
double a,USA,EN;
scanf("%lf",&a);
USA = a/32.35;
EN = a/48.09;
printf("%lf\n%lf\n",USA,EN);

system("pause ");
return 0;
}

39
程式範例 2_05 名稱:計算梯形面積
題目難度〈2〉

#include <stdio.h>
#include <stdlib.h>
int main()
{
float a,b,c;
scanf("%f%f%f",&a,&b,&c);
printf("%f\n",(a+b)*c/2);

system("pause");
return 0;
}

40
程式範例 2_06 名稱:簡易計算(2)
題目難度〈2〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
int i, p=1;

for(i = 1; i <= 10; i++)


{
p = p * i;
}
printf("10!=%d\n",p);

system("pause");
return 0;
}

41
程式範例 2_07 名稱:判斷閏年、平年
題目難度〈2〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
int year;
scanf("%d",&year);
if((year%100==0) && (year%400==0) || (year%100!=0) && (year%4==0))
printf("It's a leap year.\n");
else
printf("Not a leap year.\n");

system("pause");
return 0;
}

42
程式範例 2_08 名稱:將值給予他人、輸出
題目難度〈2〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
int a=1,b=2,c=3;
printf("A0=%d, B0=%d, C0=%d\n",a,b,c);
c=b;
b=a;
printf("A1=%d, B1=%d, C1=%d\n",a,b,c);
b=b+1;
a=a*2;
printf("A2=%d, B2=%d, C2=%d\n",a,b,c);

system("pause");
return 0;
}

43
程式範例 2_09 名稱:九九乘法表
題目難度〈2〉

#include <stdio.h>
#include <stdlib.h>
int main()
{
int i, j;
for(i=1; i<=9; i++)
{
for(j=1; j<=9; j++)
printf("%d*%d=%2d ", j, i, i*j);
printf("\n");
}

system("pause");
return 0;
}

44
程式範例 2_10 名稱:執行指定方程式
題目難度〈2〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
float num1,num2,num3,result;
scanf("%f %f %f",&num1,&num2,&num3);
result=(num2*num2-4*num1*num3)/(2*num1);
printf("%.2f\n",result);

system("pause");
return 0;
}

45
程式範例 2_11 名稱:計算回家時間
題目難度〈2〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
float time=10, BT=1, MG=2, BT_number, MG_number, pearl=0.2, way=3,
PBT,PMG, answer;
PBT=pearl+BT;
PMG=pearl+MG;
answer=5*PBT+2*BT+2*PMG+2*way;
printf("%.2lf \n",answer);

system("pause");
return 0;
}

46
程式範例 2_12 名稱:利息計算
題目難度〈2〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
double m,t;
int y;
scanf("%lf",&m);
scanf("%d",&y);
switch(y)
{
case 1:t=m+(m*(0.0063*12));break;
case 2:t=m+(m*(0.0066*12*2));break;
case 3:t=m+(m*(0.0069*12*3));break;
case 5:t=m+(m*(0.0075*12*5));break;
case 8:t=m+(m*(0.0084*12*8));break;
defaut:printf("error\n");
}
printf("%lf\n",t);
}

47
程式範例 2_13 名稱:時薪計算
題目難度〈2〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
int salary=35000, cs_time=11, paper_time=4, basic_salary=133,
answer,final_answer;
answer=salary+2*4*(cs_time+paper_time)*133;
final_answer = answer-(answer * 0.03);
printf("%d\n",final_answer);

system("pause");
return 0;
}

48
程式範例 2_14 名稱:圓周、圓周率計算
題目難度〈2〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
double r;
scanf("%lf",&r);
float a=2*3.14159*r;
float b=r*r*3.14159;
printf("%.5f ",a);
printf("%.5f\n",b);

system("pause");
return 0;
}

49
程式範例 2_15 名稱:溫度轉換
題目難度〈2〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
double C, F;
scanf("%lf", &C);
F = ((9.0/5.0)*C)+32.0;
printf("%lf = %lf\n", C, F);

system("pause");
return 0;
}

50
程式範例 2_16 名稱:貓糧計算(2)
題目難度〈2〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
int a=30,b=40, ans, final_ans;
ans=(30*3-4)*b;
final_ans=ans+120;
printf("貓咪一個月吃了 %d 公克的食物\n",final_ans);

system("PAUSE");
return 0;
}

51
程式範例 2_17 名稱:最小換幣值
題目難度〈2〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
int amount, coin10, coin5, coin1;
scanf("%d",&amount);
coin10=amount/10;
coin5=(amount%10)/5;
coin1=((amount%10)%5)/1;
printf("可兌換 10 元硬幣 %d 個\n",coin10);
printf("可兌換 5 元硬幣 %d 個\n",coin5);
printf("可兌換 1 元硬幣 %d 個\n",coin1);

system("pause");
return 0;
}

52
程式範例 2_18 名稱:清洗次數計算(2)
題目難度〈2〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
int onetime=40, per=8, customer=30, answer;
answer=(per*customer)/onetime;
printf("中山醫美容院需要洗 %d 次毛巾\n",answer);

system("pause");
return 0;
}

53
程式範例 2_19 名稱:體檢時間計算(2)
題目難度〈2〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
int all=7550, per=50, freshman=15, answer;
answer=(7550/50)*15;
printf("需費時 %d 分鐘以完成所有新生的體檢\n",answer);

system("pause");
return 0;
}

54
程式範例 2_20 名稱:建案時間計算(2)
題目難度〈2〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
int basic_weigth=50, basic_heigth=5, basic_time=8, add_weigth=10,
add_heigth=15, answer;
answer=basic_time+(110-basic_weigth)/10*10/30+(13-basic_heigth)*15/30;
printf("這個建案須耗時 %d 個月完成\n",answer);

system("pause");
return 0;
}

55
程式範例 2_21 名稱:優惠計算
題目難度〈2〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
int price=40*3+60*1+50*1;
printf("%.2f 元\n",price*0.75);

system("pause");
return 0;
}

56
程式範例 2_22 名稱:購物計算(2)
題目難度〈2〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
int price=3980*1+850*2;
printf("%.f 元\n",price*0.8);

system("pause");
return 0;
}

57
程式範例 2_23 名稱:購物計算(3)
題目難度〈2〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
int price=2890*1+650*2;
printf("%.f 元\n",price*0.9);

system("pause");
return 0;
}

58
程式範例 2_24 名稱:爬樓梯
題目難度〈2〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
int layer,chung=0,shan=20,yi=45;
printf("請輸入欲抵達樓層:");
scanf("%d",&layer);
chung+=23*(layer-1);
shan+=15*(layer-1);
yi+=7*(layer-1);
printf("%d 秒 %d 秒 %d 秒\n",chung,shan,yi);

system("pause");
return 0;
}

59
程式範例 2_25 名稱:平均動脈壓
題目難度〈2〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
float MAP,DBP,SBP;
printf("請輸入舒張壓(DBP):");
scanf("%f",&DBP);
SBP=1.5*DBP;
MAP=DBP+1.0/3*(SBP-DBP);
printf("平均動脈壓(MAP):%.2fmmHg\n",MAP);

system("pause");
return 0;
}

60
程式範例 2_26 名稱:降雨機率
題目難度〈2〉

#include<stdio.h>
int main()
{
float a;
scanf("%f",&a);
printf("%.1f%%",(a-1)*3.7+13.4);
}

61
程式範例 2_27 名稱:矩形面積計算
題目難度〈2〉

#include<stdio.h>
int main()
{
int a,b;
scanf("%d%d",&a,&b);
printf("%d",a*b);
}

62
程式範例 2_28 名稱:簡易計算(3)
題目難度〈2〉

#include<stdio.h>
int main()
{
int a,b;
scanf("%d%d",&a,&b);
printf("%d %d",a/b,a%b);
}

63
程式範例 2_29 名稱:氣球計算
題目難度〈2〉

#include<stdio.h>
int main(){
int a,tmp=0;
scanf("%d",&a);
if((a*1000%15)>0){
tmp=1;
}
printf("%d",a*1000/15+tmp);
}

64
程式範例 2_30 名稱:碎紙機計算
題目難度〈2〉

#include<stdio.h>
int main()
{
int a;
scanf("%d",&a);
printf("%d",a*300/25);
}

65
程式範例 2_31 名稱:計算飲料價錢
題目難度〈2〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
int BT=20, MG=25, pearl=5, PBT, PMG, BT_num, MG_num, PBT_num,
PMG_num, answer;
PBT=BT+pearl;
PMG=MG+pearl;
printf("紅茶: ");
scanf("%d",&BT_num);
printf("奶綠: ");
scanf("%d",&MG_num);
printf("珍珠紅茶: ");
scanf("%d",&PBT_num);
printf("珍珠奶綠: ");
scanf("%d",&PMG_num);
BT_num=BT_num-BT_num/3;
MG_num=MG_num-MG_num/3;
PBT_num=PBT_num-PBT_num/3;
PMG_num=PMG_num-PMG_num/3;
answer=BT_num*BT+MG_num*MG+PBT_num*PBT+PMG_num*PMG;
printf("總金額: $%d\n",answer);

system("pause");
return 0;
}

66
程式範例 3_01 名稱:調整後計算平均
題目難度〈3〉

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int a,b,c;
float total;
scanf("%d%d%d",&a,&b,&c);
total=10*(sqrt(a)+sqrt(b)+sqrt(c))/3;
printf("%.2f \n", total);

system("pause");
return 0;
}

67
程式範例 3_02 名稱:薪水計算
題目難度〈3〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
int day_wage;
int income_e=20000;//income_e: income_expected
int days;

day_wage=(17-9)*200;//orgingal version

days=income_e/day_wage;
if (days*day_wage!=income_e)
days=days+1;

printf("%d \n", days);

system("pause");
return 0;
}

68
程式範例 3_03 名稱:BMI 計算
題目難度〈3〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
double BMI,h,w;
scanf("%lf%lf",&w,&h);
BMI = w / ( (h/100) * (h/100) );
if(BMI < 18.5)
printf("%lf 體重過輕\n",BMI);
else if(BMI>=18.5 && BMI<24)
printf("%lf 正常範圍\n",BMI);
else if(BMI>=24 && BMI<27)
printf("%lf 體重過重\n",BMI);
else if(BMI>=27 && BMI<30)
printf("%lf 輕度肥胖\n",BMI);
else if(BMI>=30 && BMI<35)
printf("%lf 中度肥胖",BMI);
else if(BMI>=35)
printf("%lf 重度範圍",BMI);

system("pause");
return 0;
}

69
程式範例 3_04 名稱:時間計算
題目難度〈3〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
int hr,min,sec;
hr = 0;
min = 0;
scanf("%d",&sec);
hr = sec/3600;
min = (sec-(hr*3600))/60;
sec = sec -hr*3600-min*60;
printf("%d %d %d\n",hr,min,sec);

system("pause");
return 0;
}

70
程式範例 3_05 名稱:計程車費計算
題目難度〈3〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
int min,fee;
scanf("%d",&min);
if(min<0 ||min>720)
{
printf("Your input is out of range!");
}
else
{
if(min<30)
fee=0;
else if(min%30>0)
fee = (min/30+1)*15;
else
fee = (min/30)*15;
if(fee>240)
fee=240;
printf("%d\n",fee);
}

system("pause");
return 0;
}

71
程式範例 3_06 名稱:隨機猜題
題目難度〈3〉

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
int a, b, c;
srand(time(NULL));
a=(rand()%100)+1;
b=0;
c=0;
while(a!=b)
{
c=c+1;
printf("Guess number\n");
printf("%d. 1-100 =>", c);
scanf("%d", &b);
if(b>a) printf("Too Big!\n");
if(b<a) printf("Too Small!\n");
}
printf("Bingo! You Spend %d times.\n", c);

system("pause");
return 0;
}

72
程式範例 3_07 名稱:簡易計算(4)
題目難度〈3〉

#include<stdio.h>
int main()
{
int x, multi = 1, i;
printf("1!+2!+...+N!=\n");
printf("請輸入一個數字 N:");
scanf("%d",&x);
int nSum = 0;
for (i = 1; i <= x; i++)
{
multi=multi*i;
nSum += multi;
if (i > 1)
printf("+");
printf("%d!", i);
}
printf("=%d", nSum);
}

73
程式範例 3_08 名稱:簡易計算(5)
題目難度〈3〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
int n,i,j;
long s1=0,s2=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
s2=0;
for(j=1;j<=i;j++)
{
s2 += j;
}
s1 += s2;
}
printf("The result is:%ld\n",s1);

system("pause");
return 0 ;
}

74
程式範例 3_09 名稱:三角形判斷、計算
題目難度〈3〉

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main()
{
float a,b,c;
float s,area;
scanf("%f%f%f",&a,&b,&c);
if (a+b>c && b+c>a && a+c>b)
{
s = (a+b+c)/2;
area = sqrt(s*(s-a)*(s-b)*(s-c));
printf("%f ",area);
if (a==b && a==c)
printf("等邊三角形\n");
else if (a==b || a==c || b==c)
printf("等腰三角形\n");
else if(a*a + b*b == c*c || a*a + c*c == b*b || b*b + c*c == a*a)
printf("直角三角形\n");
else
printf("普通三角形\n");
}
else
{
printf("不能構成三角形\n");
}

system("pause");
return 0;
}

75
程式範例 3_10 名稱:換錢計畫
題目難度〈3〉

#include<stdio.h>
#include<math.h>
int main()
{
int n,i;
long s,t,k=1;
s=1;
t=100000;
for (i=2;i<=30;i++)
{
k=2*k;
s=s+k;
t=t+100000;
}
s=s/100;
printf("陌生人給百萬富翁:%ld 元\n 百萬富翁給陌生人:%ld 元\n",t,s);
}

76
程式範例 3_11 名稱:成績分級
題目難度〈3〉

#include<stdio.h>
#include<stdlib.h>
int main(void)
{
int n1;
printf("Enter score: ");
scanf("%d",&n1);
if (n1 >= 90)
printf("Grade: A\n");
else if (n1 >= 80)
printf("Grade: B\n");
else if (n1 >= 70)
printf("Grade: C\n");
else if(n1>= 60)
printf("Grade: D\n");
else
printf("Grade: E\n");

system("pause");
return 0;
}

77
程式範例 3_12 名稱:計算 n 值
題目難度〈3〉

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main()
{
int n,s;
s=n=0;
while (s<=1000)
{
++n;
s+=n*n;
}
printf("n=%d\n",n-1);

system("pause");
return 0;
}

78
程式範例 3_13 名稱:閏平年、季節計算
題目難度〈3〉

#include<stdio.h>
int main()
{
int y,m,leap,season,days;
scanf("%d",&y);
scanf("%d",&m);
if ((y%4==0 && y%100!=0) || (y%400==0))
leap=1;
else
leap=0;
if (m>=3 && m<=5)
season=1;
else if (m>=6 && m<=8)
season=2;
else if (m>=9 && m<=11)
season=3;
else if (m==12 && m<=2)
season=4;
else
season=5;
switch (m)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days=31;break;
case 4:
case 6:
case 9:

79
case 11:
days=30;break;
case 2:
if (leap==1)
days=29;
else
days=28;
}
printf("%d 年%s 閏年\n",y,(leap==1 ? "是" : "不是"));
printf("該季節是:");
switch(season)
{
case 1:printf("春季\n");
break;
case 2:printf("夏季\n");
break;
case 3:printf("秋季\n");
break;
case 4:printf("冬季\n");
break;
case 5:printf("沒有此季節\n");
break;
}
printf("當月天數:%d\n",days);
}

80
程式範例 3_14 名稱:補助計算
題目難度〈3〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
int salary, RE, MP;
salary = 19000;
RE = 5000000;
MP = 75000;
if (salary <= 13084 && RE <= 3520000 && MP <= 75000)
{
printf("學雜費全額減免\n");
}
if (salary <= 19626 && RE <= 5280000 && MP <= 112500)
{
printf("學雜費減免百分之 60\n");
}

system("pause");
return 0;
}

81
程式範例 3_15 名稱:回文數判斷(非字串)
題目難度〈3〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
long ge, shi, qian, wan, x;
scanf("%ld",&x);
wan = x/10000;
qian = x%10000/1000;
shi = x%100/10;
ge = x%10;
if(ge == wan && shi == qian)
printf("是\n");
else
printf("否\n");

system("pause");
return 0;
}

82
程式範例 3_16 名稱:簡易計算(5)
題目難度〈3〉

#include<stdio.h>
#include<stdlib.h>
int main(void)
{
int a,b,answer;
printf("輸入 a,b:");
scanf("%d,%d",&a,&b);
while (1)
{
printf("a+b=");
scanf("%d",&answer);
if (answer == a+b)
break;
}
printf("你答對了!\n");

system("pause");
return 0;
}

83
程式範例 3_17 名稱:卡路里計算、判斷
題目難度〈3〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
int run, ans;
printf("請輸入小明跑步的圈數(0 到 12):\n");
scanf("%d",&run);
ans=(6000-run*500)/10;
if(run>=0 && run<=12)
printf("小明需跳%d 下跳繩才能達成目標\n",ans);
else
printf("輸入數字錯誤\n");

system("PAUSE");
return 0;
}

84
程式範例 3_18 名稱:吃飯問題
題目難度〈3〉

#include <stdio.h>
#include <stdlib.h>
int main()
{
int x, y, z, number=0;
printf("No. Men Women Children\n");
for( x=1; x<=10; x++ )
{
y = 20 - 2 * x;
z = 30 - x - y;
if(3*x+2*y+z == 50&&y&&z)
printf("%2d:%4d%6d%9d\n", ++number, x, y, z);
}
system("PAUSE");
return 0;
}

85
程式範例 3_19 名稱:住院狀況判斷
題目難度〈3〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
int i=0;
int total=0;
while(total<1000)
{
i++;
total=total+i;
}
printf("第 %d 天時已經額滿\n",i);

system("pause");
return 0;
}

86
程式範例 3_20 名稱:分數調分、分級
題目難度〈3〉

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main()
{
int grade;
printf("請輸入原始分數:");
scanf("%d",&grade);
float new_grade=pow(grade,0.5)*10;
char level;
if(new_grade>=90&&new_grade<=100)
level='A';
else if(new_grade>=80&&new_grade<=89)
level='B';
else if(new_grade>=70&&new_grade<=79)
level='C';
else if(new_grade>=60&&new_grade<=69)
level='D';
else
level='E';
printf("新分數:%.3f 等級:%c\n",new_grade,level);

system("pause");
return 0;
}

87
程式範例 3_21 名稱:清洗次數計算(3)
題目難度〈3〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
int customer;
printf("請輸入客人數目(0~8):");
scanf("%d",&customer);
if(customer>=0&&customer<=8)
{
int towel=customer*4;
int times=towel/8;
if(towel%8!=0)
{
times++;
}
printf("洗衣機要洗%d 次毛巾\n",times);
}
else
{
printf("輸入錯誤\n");
}

system("pause");
return 0;
}

88
程式範例 3_22 名稱:購物計算(4)
題目難度〈3〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
int month;
printf("請輸入生日月份:");
scanf("%d",&month);
if(month==8)
{
printf("您是本月的壽星\n");
printf("所需支付的金額為%.f 元\n",4500*0.9);
}
else
{
printf("您不是本月的壽星\n");
printf("所需支付的金額為%d 元\n",4500);
}

system("pause");
return 0;
}

89
程式範例 3_23 名稱:購物計算(5)
題目難度〈3〉
#include<stdio.h>
#include<stdlib.h>
int main()
{
int isStudent,goods;
float price;
printf("是否為學生?1:是 2:不是\n 購買物品為?1:枕頭 2:床包\n");
scanf("%d%d",&isStudent,&goods);
if(isStudent==1){
if(goods==1)
price=350*0.9;
else if(goods==2)
price=750*0.9;
else
printf("輸入錯誤,物品只有 1:枕頭 2:床包\n");
}
else if(isStudent==2){
if(goods==1)
price=350;
else if(goods==2)
price=750;
else
printf("輸入錯誤,物品只有 1:枕頭 2:床包\n");
}
else{
printf("輸入錯誤,身分只有 1:是 2:不是\n");
if(goods!=1 || goods!=2)
printf("輸入錯誤,物品只有 1:枕頭 2:床包\n");
}
printf("今日須支付%.2f 元\n",price);
system("pause");
return 0;
}

90
程式範例 3_24 名稱:月薪計算
題目難度〈3〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
int num,salary=15000;
printf("賣出產品的數量:");
scanf("%d",&num);
if(num<=20)
{
salary+=num*380;
}
else if(num>20&&num<=40)
{
salary+=num*420;
}
else if(num>40)
{
int bonus=num/10*1500;
salary+=num*420+bonus;
}
printf("薪資為%d 元\n",salary);

system("pause");
return 0;
}

91
程式範例 3_25 名稱:秒數計算
題目難度〈3〉

#include<stdio.h>
int main()
{
int a;
scanf("%d",&a);
printf("%dh %dm %ds",a/3600,(a%3600)/60,(a%60));
}

92
程式範例 3_26 名稱:時間計算器
題目難度〈3〉

#include<stdio.h>
int main(){
int a,b,tmp,temp;
scanf("%d%d",&a,&b);
if(a>=12 && b>0){
printf("Over\n");
}
else {
if(b==0){
tmp=0;
temp=0;
}else{
tmp=1;
temp=60-b;
}
printf("%dh %dm\n",12-a-tmp,temp);
}
}

93
程式範例 3_27 名稱:乘法問題
題目難度〈3〉

#include<stdio.h>
int main()
{
int a,num=1;
scanf("%d",&a);
if(a==0)num=0;
while(a>1)
{
num*=(a%10);
if(a/10==1) break;
a/=10;
}
printf("%d",num);
}

94
程式範例 3_28 名稱:購物計算(6)
題目難度〈3〉

#include<stdio.h>
int main()
{
int X,N;
float price;
scanf("%d %d",&X,&N);
price=X;
for(int i=2;i<=N+1;i++)
{
price=price-10;
if(i%7==3 || i%7==6)
price*=0.6;
}
printf("%.2f",price);
}

95
程式範例 3_29 名稱:電費計算
題目難度〈3〉

#include<stdio.h>
int main()
{
int a;
double base, fee;
scanf("%d",&a);
if (a>300)
{
base=100*3.2+100*3.0+100*2.8;
fee=(a-300)*3.4+base;
printf("%.1f\n",fee);
}
else if (a>200)
{
base=100*3.0+100*2.8;
fee=(a-200)*3.2+base;
printf("%.1f\n",fee);
}
else if (a>100)
{
base=100*2.8;
fee=(a-100)*3.0+base;
printf("%.1f\n",fee);
}
else
{
fee=a*2.8;
printf("%.1f\n",fee);
}
//The following single statement can replace the if-else if-else statement. Think!
//printf("%.1f",a>300?(a-300)*3.4+900:a>200?(a-200)*3.2+580:a>100?(a-
100)*3.0+280:a*2.8);
}

96
程式範例 4_01 名稱:調分後計算平均及判斷
題目難度〈4〉

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main()
{
int a,b,c;
float total;
scanf("%d%d%d",&a,&b,&c);
total=10*(sqrt(a)+sqrt(b)+sqrt(c))/3;
if(total>=60)
{
printf("%.2f 及格\n", total);
}
else
{
printf("%.2f 不及格\n", total);
}

system("pause");
return 0;
}

97
程式範例 4_02 名稱:時間及合約終止時間計算
題目難度〈4〉

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main()
{
double n;
double P=10000;
double S, rate=0.12, pows;
for(n=1.0; n<=5.0; n++)
{
pows=pow((1.0+rate), n);
if(S<=P*1.5)
S=P*pows;
else
return S;
printf("第 %.lf 年 利率 : %.2lf 本利和 : %.2lf \n", n, pows, S);
}
printf("\n==> 儲蓄 %.lf 年之本利和 = %.2lf \n", n-1, S);

system("pause");
return 0;
}

98
程式範例 4_03 名稱:進口後良率的退換貨
題目難度〈4〉

#include<stdio.h>
#include<stdlib.h>
int main(void)
{
float import_num, bad_item, return_num, return_limit;
scanf("%f", &import_num);
scanf("%f", &bad_item);
if(import_num <= 0)
printf("請輸入大於 0 的數值 \n");
if(import_num < bad_item)
printf("瑕疵品不可能比進口量大,請輸入合理數值 !!!\n");
if(import_num > 0 && import_num <= 5000)
{
return_limit = bad_item / import_num;
if(return_limit <= 0.02)
{
return_num = 0;
}
if(return_limit > 0.02 && return_limit <= 0.05)
{
return_num = bad_item;
}
if(return_limit > 0.05)
{
return_num = import_num;
}
}
if(import_num > 5000)
{
return_limit = bad_item / import_num;
if(return_limit <= 0.03)
{
return_num = 0;

99
}
if(return_limit > 0.03 && return_limit <= 0.06)
{
return_num = bad_item;
}
if(return_limit > 0.06)
{
return_num = import_num;
}
}
printf("退貨數為 %.0f 個 \n", return_num);

system("pause");
return 0;
}

100
程式範例 4_04 名稱:加法計算(1)
題目難度〈4〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
int s=0, i,N;
printf("N= ");
scanf("%d",&N);

if ((N%2)==1)
for(i=1; i<=N; i=i+2)
s+=i;
else
for(i=2; i<=N; i=i+2)
s+=i;

printf("%d\n", s);

system("pause");
return 0;
}

101
程式範例 4_05 名稱:三角形
題目難度〈4〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
int i,j,flag=1;
for(i=1;i<=6;i++)
{
for(j=1;j<=i;j++)
{
printf(" %2d",flag);
flag++;
}
printf("\n");
}

system("pause");
return 0;
}

102
程式範例 4_06 名稱:加法計算(2)
題目難度〈4〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
int i,N;
double s=0.0;
printf("N= ");
scanf("%d",&N);
if ((N%2)==1){
i=1;
while(i<=N){
s+=1.0/i;
i=i+2;
}

}
else{
i=2;
while(i<=N){
s+=1.0/i;
i=i+2;
}
}

printf("%f\n", s);

system("pause");
return 0;
}

103
程式範例 4_07 名稱:比賽名單
題目難度〈4〉

#include<stdio.h>
int main()
{
int a,b,c;
for (a=1;a<=3;a++)
for (b=1;b<=3;b++)
for (c=1;c<=3;c++)
if (a!=b && b!=c && c!=a && a!=1 && c!=1 && c!=3)
{
switch(a)
{
case 1:printf("A <-> X\n");break;
case 2:printf("A <-> Y\n");break;
case 3:printf("A <-> Z\n");break;
}
switch(b)
{
case 1:printf("B <-> X\n");break;
case 2:printf("B <-> Y\n");break;
case 3:printf("B <-> Z\n");break;
}
switch(c)
{
case 1:printf("C <-> X\n");break;
case 2:printf("C <-> Y\n");break;
case 3:printf("C <-> Z\n");break;
}
}
}

104
程式範例 4_08 名稱:巴斯卡三角形
題目難度〈4〉

#include<stdio.h>
int main()
{
int L,bc,n,k,c;
// L: the number of levels
// n: for iteration of levels (rows)
// bc: for blank character
// c: coefficient displaying on the screen
// k: for iteration of columns (elements)

printf("The number of levels: ");


scanf("%d",&L);
for (n=0;n<=L;n++)//row
{
c=1;
for (bc=1;bc<=3*L-3*n;bc++)//column for blanks
{
printf(" ");
}
printf("%d",c);
for (k=1;k<=n;k++)//column for coefficients
{
c=c*(n-k+1)/k;// Cnk=Cn(k-1)*(n-k+1)/k; iteration
printf("%6d",c);
}
printf("\n");
}
}

105
程式範例 4_09 名稱:計算最大公因數及最小公倍數
題目難度〈4〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
int num1,num2, Temp;
int Num1, Num2;
int CDivisor, CMutiple;
scanf("%d", &num1);
scanf("%d", &num2);
Num1=num1;
Num2=num2;
while (Num2 != 0)
{
Temp=Num1 % Num2;
Num1 = Num2;
Num2 = Temp;
}
CDivisor=Num1;
printf("%d \n", CDivisor);
CMutiple=num1*num2/CDivisor;
printf("%d \n", CMutiple);

system("pause");
return 0;
}

106
程式範例 4_10 名稱:住所選擇
題目難度〈4〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
int T_salary=40000, C_salary=39000, N_salary=42000, basic_salary=133,
T_time=5, T_home=1500, N_home=800, answer;
int T_net, C_net, N_net, max;
T_net=T_salary+basic_salary*5*2*2-T_home*2;
C_net=C_salary;
N_net=N_salary-N_home*2;
printf("桃園: $%d\n",T_net);
printf("台中: $%d\n",C_net);
printf("台南: $%d\n",N_net);
if(T_net>C_net)
{
if(T_net>N_net)
printf("桃園\n");
else
printf("台南\n");
}
else
{
if(C_net>N_net)
printf("台中\n");
else
printf("台南\n");
}

system("pause");
return 0;
}

107
程式範例 4_11 名稱:質因數計算
題目難度〈4〉

#include<stdio.h>
#include<stdlib.h>
int main(void)
{
int i,n,j=0;
printf("請輸入一個大於 1 的正整數:");
scanf("%d",&n);
for(i=1;i<=n;++i)
{
if(n%i==0)
{
++j;
}
}
if(j==2)
{
printf("質數!\n");
}
else
{
for(i=1;i<=n;++i)
{
if(n%i==0)
{
printf("%d ",i);
}
}
printf("\n");
}
system("pause");
return 0;
}

108
程式範例 4_12 名稱:圖形繪製
題目難度〈4〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
int i,j,n;
char symbol;

printf("請輸入 n 和符號:");
scanf("%d %c",&n,&symbol);
for(i=1;i<=n;i++)
{
for(j=1;j<=n-i;j++)
{
printf(" ");
}
for(j=1;j<=2*i-1;j++)
{
printf("%c",symbol);
}
printf("\n");
}

system("pause");
return 0;
}

109
程式範例 4_13 名稱:熱量攝取計算與判斷
題目難度〈4〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
int day_kcal,base_kcal,i,normal;
int total=0;
normal=90*30*20;
printf("請輸出第一天攝取的熱量:");
scanf("%d",&base_kcal);
for(i=0;i<20;i++)
{
day_kcal=base_kcal-(50*i);
total=total+day_kcal;
}

printf("20 天總熱量 %d 大卡\n",total);


if(total>normal)
printf("比正常人攝取熱量(%d 大卡)還多\n",normal);
else if(total<normal)
printf("比正常人攝取熱量(%d 大卡)還少\n",normal);
else
printf("跟正常人攝取熱量(%d 大卡)相同\n",normal);

system("pause");
return 0;
}

110
程式範例 4_14 名稱:因數判斷
題目難度〈4〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
int i,j=0,n;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
if(n%i==0)
{
j++;
}
}
printf("%d\n",j);

system("pause");
return 0;
}

111
程式範例 4_15 名稱:日期判斷
題目難度〈4〉

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main()
{
int day,month,year,sum,leap;
scanf("%d",&year);
scanf("%d",&month);
scanf("%d",&day);
switch(month)
{
case 1:sum=0;
break;
case 2:sum=31;
break;
case 3:sum=59;
break;
case 4:sum=90;
break;
case 5:sum=120;
break;
case 6:sum=151;
break;
case 7:sum=181;
break;
case 8:sum=212;
break;
case 9:sum=243;
break;
case 10:sum=273;
break;
case 11:sum=304;
break;

112
case 12:sum=334;
break;
default:
printf("data error\n");
break;
}
sum=sum+day;
if (year%400==0 ||((year%4==0) && (year%100!=0)))
{
leap=1;
}
else
{
leap=0;
}
if(leap==1&&month>2)
{
sum++;
}
printf("It is the %dth day.\n",sum);

system("pause");
return 0;
}

113
程式範例 4_16 名稱:畢業門檻判斷(1)
題目難度〈4〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
int a,b,c;
printf("輸入已修必修學分:");
scanf("%d",&a);
printf("輸入已修選修學分:");
scanf("%d",&b);
printf("輸入已修通識學分:");
scanf("%d",&c);
if(a==69)
{
if(b>=31)
{
if(c>=28)
{
printf("達到畢業門檻\n");
}
else
{
printf("通識學分未達\n");
}
}
else
{
if(c>=28)
{
printf("選修學分未達\n");
}
else
{
printf("選修學分未達\n");

114
printf("通識學分未達\n");
}
}
}
else
{
if(a!=69)
{
printf("必修學分有錯誤!\n");
}
}

system("pause");
return 0;
}

115
程式範例 4_17 名稱:取火柴
題目難度〈4〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
int computer, player, spare = 21;
printf(" -------- 你不能戰勝我,不信試試 --------\n\n");
printf("Game begin:\n\n");
while(1)
{
printf(" ---------- 目前還有火柴 %d 根 ----------\n", spare);
printf("Player:");
scanf("%d", &player);
if(player<1 || player>4 || player>spare){
printf("你違規了,你取的火柴數有問題!\n\n");
continue;
}
spare = spare - player;
if( spare==0 ){
printf("\nComputer win! Game Over!\n");
break;
}
computer = 5 - player;
spare = spare - computer;
printf("Computer:%d \n", computer);
if( spare==0 ){
printf("\nPlayer win! Game Over!\n");
break;
}
}

system("pause");
return 0;
}

116
程式範例 4_18 名稱:購物計算(6)
題目難度〈4〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
int month=8, birth, prize=3580;
double answer;
printf("請輸入生日的月份 : ");
scanf("%d",&birth);
while(birth>12||birth<1)
{
printf("您輸入了錯誤的數值,請重新輸入\n");
scanf("%d",&birth);
}
if(birth==month)
{
printf("您是本月的壽星\n");
answer=prize*0.9;
}
else
{
printf("您不是本月的壽星\n");
answer=prize;
}
printf("所需支付的金額為 %.2f\n",answer);

system("pause");
return 0;
}

117
程式範例 4_19 名稱:擲兩個骰子和之機率
題目難度〈4〉

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(void)
{
int randNum1, randNum2;
int i;
double countSix=0, countSeven=0, countEight=0;
srand(time(NULL));
for (i=0; i<10000; i++)
{
randNum1 = rand()%6+1;
randNum2 = rand()%6+1;
if (randNum1+randNum2 == 6)
countSix++;
if (randNum1+randNum2 == 7)
countSeven++;
if (randNum1+randNum2 == 8)
countEight++;
}
printf("擲 10000 次兩個骰子和 6 的機率為 %.3f\n", countSix/10000);
printf("擲 10000 次兩個骰子和 7 的機率為 %.3f\n", countSeven/10000);
printf("擲 10000 次兩個骰子和 8 的機率為 %.3f\n", countEight/10000);

system("pause");
return 0;
}

118
程式範例 4_20 名稱:畢業門檻判斷(2)
題目難度〈4〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
int a,b,c,d,e,f;
printf("輸入已修必修學分:");
scanf("%d",&a);
printf("輸入已修選修學分:");
scanf("%d",&b);
printf("輸入已修通識學分:");
scanf("%d",&c);
if(a==69)
{
if(b>=31)
{
if(c>=28)
{
printf("已達畢業門檻\n");
}
else//c<28
{
f=28-c;
printf("不夠通識學分:%d\n",f);
}
}
else//b<31
{
if(c>=28)
{
e=31-b;
printf("不夠選修學分:%d\n",e);
}
else//c<28

119
{
e=31-b;
printf("不夠選修學分:%d\n",e);
f=28-c;
printf("不夠通識學分:%d\n",f);
}
}
}
else//a!=69
{
if(a>69)
{
printf("必修學分有問題\n");
}
else//a<69
{
if(b>=31)
{
if(c>=28)
{
d=69-a;
printf("不夠必修學分:%d\n",d);
}
else//c<28
{
d=69-a;
printf("不夠必修學分:%d\n",d);
f=28-c;
printf("不夠通識學分:%d\n",f);
}
}
else//b<31
{
if(c>=28)
{
d=69-a;
printf("不夠必修學分:%d\n",d);
e=31-b;

120
printf("不夠選修學分:%d\n",e);
}
else//c<28
{
d=69-a;
printf("不夠必修學分:%d\n",d);
e=31-b;
printf("不夠選修學分:%d\n",e);
f=28-c;
printf("不夠通識學分:%d\n",f);
}
}
}
}

system("pause");
return 0;
}

121
程式範例 4_21 名稱:薪水計算
題目難度〈4〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
int hour;
double salary;
printf("請輸入工讀時數(整數):");
scanf("%d",&hour);
if(hour<=100)
{
salary=hour*98;
}
else if(hour>=101&&hour<=200)
{
salary=100*98;
hour-=100;
salary+=hour*98*1.2;
}
else//hour>=201
{
salary=100*98;
hour-=100;
salary+=100*98*1.2;
hour-=100;
salary+=hour*98*1.5;
}
printf("工讀金為%.0f 元\n",salary);

system("pause");
return 0;
}

122
程式範例 4_22 名稱:輸入輸出(1)
題目難度〈4〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
int input,max;
printf("輸入值(0~4):");
scanf("%d",&input);
max=input*2+1;
for(int layers=0;layers<=input;layers++)
{
for(int white=1;white<=layers;white++)
{
printf(" ");
}
for(int nums=max;nums>=layers*2+1;nums--)
{
printf("%d",nums);
}
printf("\n");
}

system("pause");
return 0;
}

123
程式範例 4_23 名稱:輸入輸出(2)
題目難度〈4〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
int input;
printf("請輸入整數(1~10):");
scanf("%d",&input);
for(int layer=0;layer<=input-1;layer++)
{
for(int white=1;white<=layer;white++)
{
printf(" ");
}
for(int nums=input;nums>=layer+1;nums--)
{
printf("%d",nums);
}
printf("\n");
}

system("pause");
return 0;
}

124
程式範例 4_24 名稱:多重位數相乘
題目難度〈4〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
int T,counter=1;
printf("輸入測試資料組數:");
scanf("%d",&T);
while(counter<=T)
{
int num=0,prod=1;
printf("輸入正整數:");
scanf("%d",&num);
while(num>0)
{
prod*=num%10;
num/=10;
}
printf("結果:%d\n",prod);
counter++;
}

system("pause");
return 0;
}

125
程式範例 4_25 名稱:會不會被當
題目難度〈4〉

#include<stdio.h>
#include<stdlib.h>
int main()
{
int n,sum=0;
printf("考了 n 科筆試:n=");
scanf("%d",&n);
for(int count=1;count<=n;count++)
{
int score=0;
printf("第%d 科筆試成績:",count);
scanf("%d",&score);
sum+=score;
}
int average=sum/n;
printf("平均為%d 分 ",average);
if(average>=60)
{
printf("yes\n");
}
else
{
printf("no\n");
}

system("pause");
return 0;
}

126
程式範例 4_26 名稱:自守數
題目難度〈4〉

#include<stdio.h>
int main()
{
int a,b,valve=0;
scanf("%d%d",&a,&b);
for(int i=a;i<=b;++i)
{
int temp=10;
while(i%temp==(i*i)%temp)
{
temp*=10;
if(temp/10>i)
{
printf("Yes");
valve=1;
break;
}
}
if(valve==1)break;
}
if(valve==0) printf("No");
}

127
程式範例 4_27 名稱:走樓梯
題目難度〈4〉

#include<stdio.h>
int main()
{
int a,tmp=2,temp=3,n=0;
scanf("%d",&a);
for(int i=1;i<=a;++i)
{
if(i==1) n=1;
if(i==2) n=2;
if(i==3) n=3;
if(i>3){
if(i%2==0)
{
n=tmp+temp;
tmp=n;
}
else
{
n=tmp+temp;
temp=n;
}
}
}
printf("%d",n);
}

128
程式範例 4_28 名稱:二進制的進位次數
題目難度〈4〉

#include<stdio.h>
int main(){
int a;
while(scanf("%d",&a)!=EOF){
int sum=0;
if(a==0)break;
while(1){
if(a%2==1)sum++;
else break;
a=a/2;
if(a==1){
sum++;
break;
}
}
printf("¶i¦ì%d¦¸\n",sum);
}
}

129
程式範例 4_29 名稱:分數化簡
題目難度〈4〉

#include<stdio.h>
int main()
{
int a,b;
scanf("%d%d",&a,&b);
if(b==0)
{
printf("The denominator cannot be 0");
}
else
{
//輾轉相減法,先求得 GCD (Greatest Common Divisor)=a,再約分
int ac=a,bc=b;
while(a!=b)
a>b?a-=b:b-=a;

printf("%d %d",ac/a,bc/a);
}
}

130
程式範例 4_30 名稱:電視
題目難度〈4〉

挑戰版本:
#include<stdio.h>
int main()
{
int a,b;
scanf("%d%d",&a,&b);
printf("%d",(100+b-a)%100); //利用總台數只有 100 的特色取餘數分流
}

一般版本:
#include<stdio.h>
int main()
{
int a,b;
scanf("%d%d",&a,&b);
if(a>b) printf("%d",100+b-a);
else printf("%d",b-a);
}

131

You might also like