(不好意思小宣傳一下我的繪圖 希望大家喜歡)
\\♥
謝謝大家:))
希望大家支持我會繼續努力
【C語言教學手冊(四版)-練習題解答】第七章 迴圈
----第1題,程式的結構分哪三種
循序性結構、選擇性結構、重複性結構
----第2題 在第 5 章的範例中,有哪些程式碼有用到選擇性的結構?請舉出這些範例的題號,並 說明選擇性的結構是位於題目的哪個地方。
(a) prog5_4,在程式第 6、9、12 行皆有使用。
(b) prog5_6,在程式第 10、13 行皆有使用。
----第3題 試利用 for 迴圈計算 135 + ++ + " n 的總和,其中 n 為奇數,可由使用者自行輸入。
#include <stdio.h>
int main(){
int i, n, sum = 0;
printf("請輸入 n 值 = ");
scanf("%d", &n);
for (i = 1; i <= n; i = i + 2)
sum = sum + i;
printf("總和是 = %d", sum);
}
----第5題 試撰寫一程式,求整數 1~100 中,可以同時被 3 與 8 整除之所有整數的總和。
#include <stdio.h>
int main(){
int i, sum = 0;
for (i = 1; i <= 100; i++)
if ((i % 3 == 0) && (i % 8 == 0)){
printf("能同時被 3 與 8 整除的數字是 %d\n", i);
sum = sum + i;
}
printf("最後總和是 %d", sum);
}
----第6題 試撰寫一程式,由鍵盤輸入一個正整數,然後求其所有的因數,例如輸入 24,則印出 24 的所有因數 1、2、3、4、6、8、12 與 24。
#include <stdio.h>
int main()
{
int i, num;
printf("請輸入一個正整數 : ");
scanf("%d", &num);
printf("所輸入整數 %d 的因數有 = ", num);
for (i = 1; i <= num; i++)
if (num % i == 0)
printf("%3d", i);
printf("\n");
}
----第7題, 試撰寫一程式,利用 for 迴圈印出從 1 到 100 之間,所有可以被 6 整除的數值。
#include <stdio.h>
int main(){
int i, sum = 0;
printf("能被 6 整除的數字是有 ... \n");
for (i = 1; i <= 100; i++)
if (i % 6 == 0)
printf("%3d", i);
printf("\n");
}
----第8題,,利用for迴圈印出1-100之間,所有可以被7整除,又可以被3整除的數值
#include <stdio.h>
int main(){
int i;
printf("能同時被 3 與 7 整除的數字是 ...\n");
for (i = 1; i <= 100; i++)
if ((i % 3 == 0) && (i % 7 == 0))
printf("%3d", i);
printf("\n");
}
----第9題 試撰寫一程式,利用 for 迴圈計算1^2 - 2^2 + 3^2 - 4^2 +...+ 47^2 - 48^2 + 49^2 - 50^2 的值。
#include <stdio.h>
int main(){
int i, sum = 0;
for (i = 1; i <= 50; i++)
if (i % 2 == 0)sum = sum - i*i;
else sum = sum + i*i;
printf("最後的結果是 %d\n", sum);
}
----第10題, 試撰寫一程式,利用 for 迴圈計算 1+1/2+1/3+...+1/n 的總和,其中 n 值可自行輸入。
#include <stdio.h>
int main(){
int i, n;
double sum = 0.0;
printf("請輸入一個 n 值 : ");
scanf("%d", &n);
for (i = 1; i <= n; i++)
sum = sum + (double)1/i;
printf("最後的結果是 %lf\n", sum);
}
----第13題, 試利用 while 迴圈計算 246 + ++ + " n 的總和,其中 n 為正的偶數,可由使用者自 行輸入。若輸入的不是正偶數,則程式會要求使用者再次輸入,直到輸入的數是正偶數 為止。
#include <stdio.h>
int main(){
int i, n, sum = 0;
while(1){
printf("請輸入正偶數的 n 值 : ");
scanf("%d", &n);
if (n > 0 && n % 2 == 0)break;
}
for (i = 0; i <= n; i = i + 2)
sum = sum + i;
printf("正偶數總和是 = %d", sum);
}
----第17題, 試撰寫一程式,利用 while 迴圈印出 1~10 之間所有整數的平方值,最後再印出這些平 方值的總和。
#include <stdio.h>
int main(){
int i=1,sum = 0;
while (i <= 10){
sum = sum + i * i;
i++;
}
printf("1 到 10 的平方和是 = %d", sum);
}
----第19題, 試利用 do while 迴圈找出最小的 n 值,使得 123 + ++ + " n 的總和大於等於 1000。
#include <stdio.h>
int main(){
int n=1 , sum = 0;
printf("找出最小 n 值使得 1+2+3+ ...+ n >= 1000\n");
do{
sum = sum + n;
n++;
}while (sum < 1000);
printf("最小的 n 是 = %d", n-1);
getch();
}
----第21題, 於下面的程式碼片段中,原本預期會印出 3 行星號,但實際上卻只印出了一行。試說 明程式錯誤之處,並修正之:
line 3: for (i=1; i<= 3; i++); 是空迴圈,要刪除分號。
ps
新的貼圖終於出來了
海苔貓繪圖作品\\
希望大家支持~~