好的,以下是一份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语言实例,希望对你的学习有所帮助。