好的,以下是一份C语言实例学习笔记的markdown文档:
C 语言实例学习笔记
实例一:Hello, World!
cCopy Code#include <stdio.h>
int main() {
printf("Hello, World!\n");
return 0;
}
这是C语言中最基本的程序,它可以输出一段文本。
#include <stdio.h>
:这是一个预处理指令,告诉编译器要使用标准输入输出库。int main() {...}
:main
函数是程序的入口,程序从这里开始执行,int
代表函数返回值为整型,return 0
代表程序正常退出。
实例二:计算两个整数的和
cCopy Code#include <stdio.h>
int main() {
int a, b, sum;
printf("请输入两个整数:\n");
scanf("%d %d", &a, &b);
sum = a + b;
printf("%d + %d = %d\n", a, b, sum);
return 0;
}
这个程序可以让用户输入两个整数,并计算它们的和。
int a, b, sum;
:定义了三个整型变量。printf("请输入两个整数:\n");
:输出提示信息,要求用户输入两个整数。scanf("%d %d", &a, &b);
:从键盘读取两个整数,并分别存储到变量a和b中。sum = a + b;
:计算两个数的和,并将结果存储到变量sum中。printf("%d + %d = %d\n", a, b, sum);
:输出计算结果。
实例三:判断一个数是否为质数
cCopy Code#include <stdio.h>
int main() {
int n, i, flag = 1;
printf("请输入一个正整数:\n");
scanf("%d", &n);
for (i = 2; i <= n / 2; ++i) {
if (n % i == 0) {
flag = 0;
break;
}
}
if (flag == 1)
printf("%d是质数。\n", n);
else
printf("%d不是质数。\n", n);
return 0;
}
这个程序可以判断一个数是否为质数。
int n, i, flag = 1;
:定义了三个整型变量,其中flag的初始值为1,用于存储是否为质数的标记。scanf("%d", &n);
:从键盘读取一个正整数。for (i = 2; i <= n / 2; ++i)
:从2开始遍历到n/2,判断n是否能被整除。if (n % i == 0) {...}
:如果n能被i整除,则说明n不是质数,将flag改为0,跳出循环。if (flag == 1) printf("%d是质数。\n", n);
:如果flag为1,说明n是质数,输出提示信息;否则输出另一条提示信息。
实例四:求两个数的最大公约数和最小公倍数
cCopy Code#include <stdio.h>
int main() {
int a, b, i, gcd, lcm;
printf("请输入两个正整数:\n");
scanf("%d %d", &a, &b);
for (i = 1; i <= a && i <= b; ++i) {
if (a % i == 0 && b % i == 0)
gcd = i;
}
lcm = a * b / gcd;
printf("%d和%d的最大公约数是%d,最小公倍数是%d。\n", a, b, gcd, lcm);
return 0;
}
这个程序可以求两个数的最大公约数和最小公倍数。
scanf("%d %d", &a, &b);
:从键盘读取两个正整数。for (i = 1; i <= a && i <= b; ++i)
:从1开始遍历到a和b中较小的那个数,判断能否被a和b整除。if (a % i == 0 && b % i == 0) gcd = i;
:如果i能同时被a和b整除,则更新最大公约数。lcm = a * b / gcd;
:计算最小公倍数。printf("%d和%d的最大公约数是%d,最小公倍数是%d。\n", a, b, gcd, lcm);
:输出计算结果。
实例五:冒泡排序
cCopy Code#include <stdio.h>
int main() {
int a[100], n, i, j, temp;
printf("请输入要排序的元素个数(不超过100):\n");
scanf("%d", &n);
printf("请输入%d个整数:\n", n);
for (i = 0; i < n; ++i)
scanf("%d", &a[i]);
for (i = 0; i < n - 1; ++i) {
for (j = 0; j < n - i - 1; ++j) {
if (a[j] > a[j + 1]) {
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
printf("排序后的结果为:\n");
for (i = 0; i < n; ++i)
printf("%d ", a[i]);
printf("\n");
return 0;
}
这个程序可以对输入的一组数进行冒泡排序。
int a[100], n, i, j, temp;
:定义了一个数组和几个整型变量。scanf("%d", &n);
:从键盘读取一个整数,代表要排序的元素个数。for (i = 0; i < n; ++i) scanf("%d", &a[i]);
:从键盘依次读取n个整数,并存储到数组a中。for (i = 0; i < n - 1; ++i) {...}
:进行n-1轮冒泡排序。if (a[j] > a[j + 1]) {...}
:如果相邻两个元素大小颠倒,则交换它们的位置。for (i = 0; i < n; ++i) printf("%d ", a[i]);
:输出排序后的结果。
实例六:递归求解斐波那契数列
cCopy Code#include <stdio.h>
int fib(int n) {
if (n <= 1)
return n;
else
return fib(n - 1) + fib(n - 2);
}
int main() {
int n, i;
printf("请输入要求的斐波那契数列的项数:\n");
scanf("%d", &n);
printf("斐波那契数列的前%d项是:\n", n);
for (i = 0; i < n; ++i)
printf("%d ", fib(i));
printf("\n");
return 0;
}
这个程序可以使用递归方法求解斐波那契数列的前n项。
int fib(int n) {...}
:定义了一个递归函数,用于计算第n项的值。if (n <= 1) return n;
:如果n等于0或1,则直接返回n。else return fib(n - 1) + fib(n - 2);
:否则通过递归调用来计算第n项的值。for (i = 0; i < n; ++i) printf("%d ", fib(i));
:依次输出前n项的值。
以上便是几个C语言实例,希望对你的学习有所帮助。