C語言練習題:迴圈的魅力(C language exercise: Loop’s charisma)

Ping-Lun Liao
6 min readOct 7, 2020

--

練習一:奇數數列
使用迴圈輸出 1 到 100 之間的奇數。

Exercise 1: Odd Sequence

Print the odd numbers between 1 to 100.

練習一參考解法:
Exercise 1 solution:

#include <stdio.h>
#include <stdlib.h>
int main()
{
int i;
// FOR loop 1
for(i = 1; i <= 100; i += 2)
printf("%d, ", i);
printf("\n\n"); // FOR loop 2
for(i = 1; i <= 100; i++)
if(i % 2)
printf("%d, ", i);
printf("\n\n"); // WHILE loop
i = 1;
while( i <= 100)
{
if(i % 2)
printf("%d, ", i);
i++;
}
printf("\n\n"); // DO-WHILE loop
i = 1;
do
{
if(i % 2)
printf("%d, ", i);
i++;
} while(i <= 100);
return 0;
}

練習二:範圍
輸出 300 到 500 之間可以被 3 與 11 整除的整數。

Exercise 2: Range
Print the numbers between 300 to 500 which are divisible by 3 and 11.

練習二參考解法:
Exercise 2 solution:

#include <stdio.h>
#include <stdlib.h>
int main()
{
int i;
// FOR loop
for(i = 300; i <= 500; i++)
if(i % 3 == 0 && i % 11 == 0)
printf("%d, ", i);
printf("\n\n"); // WHILE loop
i = 300;
while( i <= 500)
{
if(i % 3 == 0 && i % 11 == 0)
printf("%d, ", i);
i++;
}
printf("\n\n"); // DO-WHILE loop
i = 300;
do
{
if(i % 3 == 0 && i % 11 == 0)
printf("%d, ", i);
i++;
} while(i <= 500);
return 0;
}

練習三:星星三角形
設計一程式,輸出底下的星星三角形。

Exercise 3: Star Triangle
Design a C program that print the star triangle.

練習三參考解法:
Exercise 3 solution:

#include <stdio.h>
#include <stdlib.h>
int main()
{
int i, j;
for(i = 0; i <= 4; i++)
{
for(j = 0; j <= i; j++)
{
printf("*");
}
printf("\n");
}
return 0;
}

練習四:乘法表
輸入一個整數,程式輸出此整數從 1 乘到 10 的結果,例如輸入整數 7 時,輸出結果會是

7 * 1 = 7

7 * 2 = 14

7 * 3 = 21

.

.

.

7 * 10 = 17

Exercise 4: Multiplication table

Read an integer from user and print it’s multiplication table up to 10. For example, if user give 7, the output will be look like the following:

7 * 1 = 7

7 * 2 = 14

7 * 3 = 21

.

.

.

7 * 10 = 17

練習四參考解法:
Exercise 4 solution:

#include <stdio.h>
#include <stdlib.h>
int main()
{
int num;
printf("Enter an integer:");
scanf("%d", &num);
for(int i = 1; i <= 10; i++)
printf("%d * %d = %d\n", num, i, (num*i));
return 0;
}

練習五:等差數列加總
設計一程式可算出底下等差數列的總和。

1 + 4 + 7 + 10 + 13 + … + 97 + 100

Exercise 5: Sum of an Arithmetic Series

Write a C program to print the summation of the following series:

1 + 4 + 7 + 10 + 13 + … + 97 + 100

練習五參考解法:
Exercise 5 solution:

#include <stdio.h>
#include <stdlib.h>
int main()
{
int n, sum = 0;
for(n = 1; n <= 100; n += 3)
sum = sum + n;
printf("Sum is %d\n", sum);
return 0;
}

練習六:等比數列加總

設計一程式可算出底下等比數列的總和。

1 + 2 + 4 + 8 + 16 + … + 524288 + 1048576

Exercise 6: Sum of a Geometric Series

Write a C program to print the summation of the following series:

1 + 2 + 4 + 8 + 16 + … + 524288 + 1048576

練習六參考解法:
Exercise 6 solution:

#include <stdio.h>
#include <stdlib.h>
int main()
{
long n, sum = 0;
for(n = 1; n <= 1048576; n *= 2)
sum = sum + n;
printf("Sum is %ld\n", sum); return 0;
}

練習七:星星三角形二
設計一程式,輸出底下的圖形。

Exercise 7: Star Triangle 2
Design a C program that print the following star triangle.

練習七參考解法:
Exercise 7 solution:

#include <stdio.h>
#include <stdlib.h>
int main()
{
int i, j;
for(i = 0; i <= 4; i++)
{
for(j = 4; j >= i; j--)
{
printf("*");
}
printf("\n");
}
return 0;
}

練習八:英文字母
使用迴圈來輸出英文的大小寫字母。

Exercise 8: Alphabets
Write a C program that uses loop to display English alphabet.

練習八參考解法:
Exercise 8 solution:

#include <stdio.h>
#include <stdlib.h>
int main()
{
char letter;
printf("Small letters: ");
for(letter = 'a'; letter <= 'z'; letter++)
printf("%c ", letter);
printf("\n\n");
printf("Large letters: ");
for(letter = 'A'; letter <= 'Z'; letter++)
printf("%c ", letter);
return 0;
}

練習九:迴圈與條件判斷
設計一個程式可不斷讓使用者輸入一個整數,直到輸入 0 才結束程式。並判斷此整數是奇數或是偶數。

Exercise 9: Loop and conditions
Design a C program to determine whether an integer is odd or even repeatedly until 0 is entered.

練習九參考解法:
Exercise 9 solution:

#include <stdio.h>
#include <stdlib.h>
int main()
{
int number;
do
{
printf("Please input an integer:");
scanf("%d", &number);
if( number % 2 )
printf("%d is odd.\n", number);
else
printf("%d is even.\n", number);
}while(number != 0);
return 0;
}

練習十:費氏數列
設計可以輸入一個整數 N ,輸出到整數 N 的費氏數列。例如當 N = 22 時,程式輸出:0, 1, 1, 2, 3, 5, 8, 13, 21,

Exercise 10: Fibonacci sequence
Write a C program that gets an integer from user and display Fibonacci numbers up to N. If N is 22, the program should print: 0, 1, 1, 2, 3, 5, 8, 13, 21,

練習十參考解法:
Exercise 10 solution:

#include <stdio.h>
#include <stdlib.h>
int main()
{
int n;
printf("Please enter an integer:");
scanf("%d", &n);
int first = 0, second = 1, tmp; while(first <= n)
{
printf("%d, ", first);
tmp = first + second;
first = second;
second = tmp;
}
return 0;
}

練習十一:數字圖案
設計一程式輸出下圖上的數字圖案。

Exercise 11: Number Pattern
Design a C program to display the number pattern in the below picture.

練習十一參考解法:
Exercise 11 solution:

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

練習十二:質數
設計可以輸入一個整數 N ,輸出到整數 N 的質數數列。例如當 N = 50 時,程式輸出:2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47,

Exercise 12: Prime
Write a C program that gets an integer from user and display prime numbers up to N. If N is 50, the program should print: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47,

練習十二參考解法:
Exercise 12 solution:

#include <stdio.h>
#include <stdlib.h>
int main()
{
int n, isPrime;
printf("Enter an integer:");
scanf("%d", &n);
for(int p = 2; p <= n; p++)
{
isPrime = 1;
for(int i = 2; i * i <= p; i++)
{
if(p % i == 0)
{
isPrime = 0;
break;
}
}
if(isPrime == 1)
printf("%d, ", p);
}
return 0;
}

Originally published at https://yunlinsong.blogspot.com.

--

--

No responses yet