C语言是一种经典的编程语言,被广泛应用于软件开发、系统编程、嵌入式开发等领域。在本文中,将介绍一些实用的小程序,通过这些程序的实现,读者可以更好地理解C语言的基础知识并提升自己的编程能力。
一、十进制转二进制
本程序可以将输入的十进制数转换为二进制数,并输出结果。
程序代码如下:
```
#include
void print_binary(unsigned int num);
int main() {
unsigned int n;
printf("Please input a decimal number:\n");
scanf("%u", &n);
printf("The binary number of %u is:\n", n);
print_binary(n);
return 0;
}
void print_binary(unsigned int num) {
if (num > 1) {
print_binary(num / 2);
}
putchar(num % 2 + '0');
}
```
程序的工作原理:先输入一个十进制数n,然后调用print_binary函数将n转换为二进制数并输出结果。print_binary函数的实现采用递归方式,先将n除以2并传递给函数自己,直到n小于或等于1,然后输出n%2的值,即2进制中的一位。
二、猜数字游戏
本程序是一款简单的猜数字游戏,通过猜测随机数来判断游戏胜负。
程序代码如下:
```
#include
#include
#include
int main() {
int n, guess;
srand((unsigned)time(NULL)); // 初始化随机数种子
n = rand() % 100 + 1; // 生成1-100之间的随机数
printf("Guess a number between 1 and 100:\n");
do {
scanf("%d", &guess);
if (guess > n) {
printf("Too high! Guess again:\n");
} else if (guess < n) {
printf("Too low! Guess again:\n");
}
} while (guess != n);
printf("Bingo! The number is %d.\n", n);
return 0;
}
```
程序的工作原理:先通过srand和time函数生成一个种子,然后生成1-100之间的随机数n。接着程序要求用户输入猜测的数字guess,如果guess比n大则要求再次输入,如果guess比n小则同样要求再次输入,直到guess等于n为止。
三、简单计算器
本程序是一款简单的计算器,通过命令行输入数字和运算符来计算结果。
程序代码如下:
```
#include
int main() {
char op;
float num1, num2;
printf("Enter the operation: (+, -, *, /)\n");
scanf("%c", &op);
printf("Enter two operands:\n");
scanf("%f %f", &num1, &num2);
switch(op) {
case '+':
printf("%.2f + %.2f = %.2f", num1, num2, num1 + num2);
break;
case '-':
printf("%.2f - %.2f = %.2f", num1, num2, num1 - num2);
break;
case '*':
printf("%.2f * %.2f = %.2f", num1, num2, num1 * num2);
break;
case '/':
printf("%.2f / %.2f = %.2f", num1, num2, num1 / num2);
break;
default:
printf("Invalid operation");
}
return 0;
}
```
程序的工作原理:先要求用户输入运算符op和两个操作数num1, num2。根据op的值,程序利用switch语句进行不同的计算,并输出结果。
以上三个小程序都是非常实用的例子,不仅可以加深对C语言基础语法的理解,也可以为日后开发更加复杂的程序打下基础。