C语言

您所在的位置:网站首页 时分秒经典例题 C语言

C语言

2024-07-05 02:26| 来源: 网络整理| 查看: 265

目录:

===============================基础例题100道===============================

1.输出 "Hello, World!"

2.输出整数

3.输出单个字符

4.输出浮点数

5. 输出双精度(double)数

6.两个整数相加

7. 两个浮点数相乘

8.字符转 ASCII 码

(1)一次读取长字符,并一个一个显示 ASCII 码

 (2)ASCII 转 字符 

9. 两数相除

10.数值比较

(1)比较两个数

(2)比较三个数

(3)比较两数从键盘输入:

11.计算字节大小

(1)计算 int, float, double 和 char 字节大小 

(2)计算 long long, long double 字节大小

12.交换两个数的值

(1)使用临时变量

(2)不使用临时变量

(3)参考方法:

13.判断奇数/偶数

参考方法:

14.循环区间范围内的奇数/偶数

(1)循环输出指定区间范围的偶数

(2)循环输出指定区间范围的奇数

(3)使用按位与运算符判断奇偶数:

(4)改写为设定区间和除数,返回可以整除的数

15.判断元音/辅音

(1)从键盘中输入的不是字母

(2)参考方法:

(3)多个字符输入错误的问题:

16. 判断三个数中的最大数

(1)参考方法:

(2)用三元表达式判断:

(3)参考方法:

17.一元二次方程

输入的三个系数 a、b、c 的判断解的情况:

18.判断闰年

(1)方法二

(2)方法三

19. 判断正数/负数

方法二

20.判断字母

方法二:三元运算符

21.计算自然数的和

(1)使用 for

(2) 使用 while

(3)使用递归

(4)首尾相加

22.输出九九乘法口诀表

方法二:递归实现方式

23.斐波那契数列

(1)方法一:输出指定数量的斐波那契数列

(2)方法二:输出指定数字前的斐波那契数列

24.求两数的最大公约数

(1)方法一:使用 for 和 if

(2)方法二:使用 while 和 if

(3)方法三:适用正数和负数

(4)方法四:使用递归

(5)方法五:用辗转相除法

(6)求两个数的最大公约数:

25.求两数最小公倍数

(1)方法一:使用 while 和 if

(2)方法二:通过最大公约数计算

(3)实例编写:

26.阶乘

(1)方法一:

(2)方法二:使用递归

27. 循环输出26个字母

(1)循环输出 26 个字母

(2)输出大写或小写字母

(3)参考:

(4)参考方法:

28.判断数字为几位数

参考方法:

29.计算一个数的 n 次方

(1)方法一: 使用 while

(2)方法二:使用 pow() 函数

(3)方法三:递归

(4)参考方法:

30.判断回文数

参考方法:

31.判断素数

(1)

(2)判断两个数之间的素数

(3)使用函数判断两数间的素数

(4)用sqrt降低时间复杂度

32.判断Armstrong数(阿姆斯壮数)

 (1)

(2)两数之间的 Armstrong 数

(3) 使用函数判断Armstrong 数

(4)参考方法:

(5)两数之间的 Armstrong 数:

33.求一个整数的所有因数

寻找两数的所有公因数:

34.创建各类三角形图案

(1)创建三角形图案

(2)使用数字

(3) 使用字母

(4)倒三角形

(5) 倒三角形数字

(6)金字塔

(7)数字金字塔

(8)倒金字塔

(9)杨辉三角

(10)弗洛伊德三角形

(11)数字金字塔1:

(12)数字金字塔2:

35.表格形式输出数据

(1)将 1~100 的数据以 10x10 矩阵格式输出

(2)等差数列输出 10x10 矩阵格式

(3)乘法运算格式

(4)将 1~100 的数据以 10x10 格式顺序输出

36.实现简单的计算器

(1)实现加减乘除计算

(2)豪华版计算器

37.计算一个数是否可为两个素数之和

38.二进制与十进制相互转换

(1)二进制转换为十进制

(2)十进制转换为二进制

(3)参考方法:

39.八进制与十进制相互转换

(1) 十进制转换为八进制

(2)八进制转换为十进制

(3)任意进制转换

40. 八进制与二进制相互转换

(1)二进制转换为八进制

(2)八进制转换为二进制

(3)分别定义函数实现八进制转二进制

41.字符串翻转

(1)字符串翻转

(2)参考方法1:

(3)参考方法2:

(4)参考文档:

42.计算数组元素平均值

(1)实例 1

(2)实例 2用户自定义输入:

(3)用 scanf 的特性来控制循环:

43.输出数组

(1)使用 for 循环输出数组:

(2)使用 for 循环逆向输出数组:

44.计算数组元素之和

45.查找数组中最大的元素值

(1)查找数组中最大的元素值

(2)用户自定义输出:

(3)三元运算符应用求最大:

46. 查找数组中最小的元素

47. 数组拆分与合并

(1)将一个数组拆分为一个为奇数数组,一个为偶数数组:

(2)将奇数数组与偶数数组合并为一个数组:

48.数组拷贝

(1)将一个数组复制给另外一个数组:

(2)值传递与地址传递的区别:

(3)参考方法:

49.计算标准偏差

50.两个矩阵相加

(1)使用多维数组将两个矩阵相加

(2)矩阵相乘实例

51.矩阵转换

52.使用指针访问数组元素

53.使用引用循环替换数值

54.判断最大值

判断最大值

55.删除字符串中的特殊字符

(1)删除字符串中的除字母外的字符

(2)参考方法:

56.连接字符串

(1)使用 strcat() 连接两个字符串

(2)参考方法:

(3)指针方法:

57. 计算字符串长度

(1)使用 strlen()

(2)不使用 strlen()

58.查找字符在字符串中出现的次数

59.字符串中各种字符计算

60.字符串复制

(1)使用 strcpy()

(2) 不使用 strcpy()

61.字符串排序

62.使用结构体(struct)

(1)使用结构体(struct)存储学生信息

(2)两种不同对齐方式下计算 sizeof(struct)

63.复数相加

64.计算两个时间段的差值

65.将字符串写入文件

举例:非常简单的字符串写入文件

66.从文件中读取一行

(1)从文件中读取一行

(2)从文件中读取多行,学会使用 fgets 函数1

(3)从文件中读取多行,学会使用 fgets 函数2

67.输出当前文件执行代码

68.约瑟夫生者死者小游戏

69. 五人分鱼

===============================进阶例题100道===============================

1.有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

2.企业发放的奖金根据利润提成

(1)优化如下:

(2)使用循环优化代码的适用性:

(3)利用 switch 的击穿现象

3.一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

4.输入某年某月某日,判断这一天是这一年的第几天?

5.输入三个整数x,y,z,请把这三个数由小到大输出

6.用*号输出字母C的图案

7.输出特殊图案,请在c环境中运行,看一看,Very Beautiful!

8.输出9*9口诀

9.要求输出国际象棋棋盘

10.打印楼梯,同时在楼梯上方打印两个笑脸

11.古典问题(兔子生崽)

12.判断101到200之间的素数

13.打印出所有的"水仙花数"

14.将一个正整数分解质因数

15.利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示

16.最大公约数和最小公倍数

17.输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数

18.:求s=a+aa+aaa+aaaa+aa...a的值

19.一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数

20.小球自由下落

21.猴子吃桃问题

22.两个乒乓球队进行比赛,各出三人

23.打印出如下图案(菱形)

24.:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和

25.求1+2!+3!+...+20!的和

26.利用递归方法求5!

27.利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来

28.有5个人坐在一起,问第五个人多少岁?

29.给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字

30.回文数

31.请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母

32.删除一个字符串中的指定字母,如:字符串 "aca",删除其中的 a 字母

33.判断一个数字是否为质数

34.练习函数调用

35.字符串反转,如将字符串 "www.runoob.com" 反转为 "moc.boonur.www"

36.求100之内的素数

37.对10个数进行排序

38.求一个3*3矩阵对角线元素之和

39.有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中

40.将一个数组逆序输出

41.学习static定义静态变量的用法

42.学习使用auto定义变量的用法

43.学习使用static的另一用法

44.学习使用external的用法

45.学习使用register定义变量的方法

46.宏#define命令练习

47.宏#define命令练习2

48.宏#define命令练习3

49.#if #ifdef和#ifndef的综合应用

50.#include 的应用练习

51.学习使用按位与 &

52.学习使用按位或 |

53.学习使用按位异或 ^

54.取一个整数 a 从右端开始的 4~7 位

55.学习使用按位取反~

56.画图,学用circle画圆形

57.画图,学用line画直线(在TC中实现)

58.学用rectangle画方形(在TC中实现)

59.画图,综合例子(在TC中实现)

60.画图,综合例子2(在TC中实现)

61.杨辉三角形

62.学习putpixel画点,(在TC中实现)

63.画椭圆ellipse(在TC中实现)

64.利用ellipse and rectangle 画图(在TC中实现)

65.一个最优美的图案(在TC中实现)

66.输入3个数a,b,c,按大小顺序输出

67.输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组

68.有 n个整数,使其前面各数顺序向后移 m 个位置,最后m个数变成最前面的 m 个数

69.有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位

70.写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度

71.编写input()和output()函数输入,输出5个学生的数据记录

72.创建一个链表

73.反向输出一个链表

74.连接两个链表

75.输入一个整数,并将其反转后输出

76.编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n(利用指针函数)

77.填空练习(指向指针的指针)

78.找到年龄最大的人,并输出。请找出程序中有什么问题

79.字符串排序

80.海滩上原来最少有多少个桃子?

81.809*??=800*??+9*?? 其中??代表的两位数, 809*??为四位数,8*??的结果为两位数,9*??的结果为3位数。求??代表的两位数,及809*??后的结果

82.八进制转换为十进制

83.求0—7所能组成的奇数个数

84.一个偶数总能表示为两个素数之和

85.判断一个素数能被几个9整除

86.两个字符串连接程序

87.回答结果(结构体变量传递)

88.读取7个数(1—50)的整数值,每读取一个值,程序打印出该值个数的 *

89.电话号码加密

90.专升本一题,读结果

91.时间函数举例1

92.时间函数举例2

93.时间函数举例3

94.猜谜游戏

95.简单的结构体应用实例

96.计算字符串中子串出现的次数 

97.从键盘输入一些字符,逐个把它们送到磁盘上去,直到输入一个#为止

98.从键盘输入一个字符串,将小写字母全部转换成大写字母,然后输出到一个磁盘文件"test"中保存。 输入的字符串以!结束

99.有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列),输出到一个新文件C中

100.计算平均成绩

101.矩阵交换行

描述:

102.猴子吃桃问题

===============================基础例题100道===============================

1.输出 "Hello, World!" #include int main() { // printf() 中字符串需要引号 printf("Hello, World!"); return 0; }

输出结果:

Hello, World! 2.输出整数 #include int main() { int number; // printf() 输出字符串 printf("输入一个整数: "); // scanf() 格式化输入 scanf("%d", &number); // printf() 显示格式化输入 printf("你输入的整数是: %d", number); return 0; }

使用 printf() 与 %d 格式化输出整数

输出结果:

输入一个整数: 45 你输入的整数是: 45 3.输出单个字符 #include int main() { char c; // 声明 char 变量 c = 'A'; // 定义 char 变量 printf("c 的值为 %c", c); return 0; }

使用 printf() 与 %c 格式化输出一个字符

输出结果:

c 的值为 A 4.输出浮点数 #include int main() { float f; // 声明浮点数变量 f = 12.001234; // 定义浮点数变量 printf("f 的值为 %f", f); return 0; }

使用 printf() 与 %f 输出浮点数

输出结果:

f 的值为 12.001234 5. 输出双精度(double)数 #include int main() { double d; // 声明双精度变量 d = 12.001234; // 定义双精度变量 printf("d 的值为 %le", d); return 0; }

使用 printf() 与 %e 输出双精度数

输出结果:

d 的值为 1.200123e+01 6.两个整数相加 #include int main() { int firstNumber, secondNumber, sumOfTwoNumbers; printf("输入两个数(以空格分割): "); // 通过 scanf() 函数接收用户输入的两个整数 scanf("%d %d", &firstNumber, &secondNumber); // 两个数字相加 sumOfTwoNumbers = firstNumber + secondNumber; // 输出结果 printf("%d + %d = %d", firstNumber, secondNumber, sumOfTwoNumbers); return 0; }

使用 scanf() 来接收输入, printf() 与 %d 格式化输出整数

输出结果:

输入两个数(以空格分割): 1 2 1 + 2 = 3 7. 两个浮点数相乘 #include int main() { double firstNumber, secondNumber, product; printf("输入两个浮点数: "); // 用户输入两个浮点数 scanf("%lf %lf", &firstNumber, &secondNumber); // 两个浮点数相乘 product = firstNumber * secondNumber; // 输出结果, %.2lf 保留两个小数点 printf("结果 = %.2lf", product); return 0; }

输入两个浮点数,计算乘积

输出结果:

输入两个浮点数: 1.2 2.345 结果 = 2.81 8.字符转 ASCII 码

https://blog.csdn.net/liu17234050/article/details/104219239

#include int main() { char c; printf("输入一个字符: "); // 读取用户输入 scanf("%c", &c); // %d 显示整数 // %c 显示对应字符 printf("%c 的 ASCII 为 %d", c, c); return 0; }

输出结果:

输入一个字符: a a 的 ASCII 为 97 (1)一次读取长字符,并一个一个显示 ASCII 码 #include #define MAX_STRING_LENGTH 65535 // 最大字符串长度 int main(){ char s[MAX_STRING_LENGTH]; printf("请输入长度小于 %d 的任意字符:",MAX_STRING_LENGTH); scanf("%s",s); // 读取字符串。 for(int i = 0; s[i]; i++){ printf("%c的ASCII:%d\t",s[i],s[i]); } }  (2)ASCII 转 字符  #include #define MAX_ASCII 127 int main() { char num,enter; int temp=1; for(;temp>0;) { printf("----------------------------\n"); printf("|** 开始 **|\n"); printf("|**ASCII 转 字符 按:1 **|\n"); printf("|**字符 转 ASCII 按:2 **|\n"); printf("|** 结束 按:0 **|\n"); printf("----------------------------\n"); scanf("%d",&temp); if(temp==1) { printf("请输入数值小于 %d 的任意字符:",MAX_ASCII); scanf("%d",&num); printf("ASCII为 %d ,对应的字符为 %c \n",num,num); } if(temp==2) { printf("输入一个字符: \n"); scanf("%c", &enter); //回车键也算字符,所以这里使用其他变量替之. scanf("%c", &num); printf(" %c 的 ASCII 为 %d \n", num, num); } } return 0; } 9. 两数相除

两数相除,如果有余数,输出余数

#include int main(){ int dividend, divisor, quotient, remainder; printf("输入被除数: "); scanf("%d", ÷nd); printf("输入除数: "); scanf("%d", &divisor); // 计算商 quotient = dividend / divisor; // 计算余数 remainder = dividend % divisor; printf("商 = %d\n", quotient); printf("余数 = %d", remainder); return 0; }

输出结果:

输入被除数: 5 输入除数: 2 商 = 2 余数 = 1 10.数值比较 (1)比较两个数

以下实例中定义了两个整数变量,并使用 if 来比较两个数值,可以先看下逻辑图:

#include int main() { int a, b; a = 11; b = 99; // 也可以通过以下代码实现让用户在终端输入两个数 // printf("输入第一个值:"); // scanf("%d", &a); // printf("输入第二个值:"); // scanf("%d", &b); if(a > b) printf("a 大于 b"); else printf("a 小于等于 b"); return 0; }

输出结果:

a 小于等于 b (2)比较三个数

以下实例中定义了两个整数变量,并使用 if 来比较三个数值,可以先看下逻辑图:

#include int main() { int a, b, c; a = 11; b = 22; c = 33; if ( a > b && a > c ) printf("%d 最大", a); else if ( b > a && b > c ) printf("%d 最大", b); else if ( c > a && c > b ) printf("%d 最大", c); else printf("有两个或三个数值相等"); return 0; }

输出结果:

33 最大 (3)比较两数从键盘输入: #include int main() { int a,b; printf("请输入俩个整数以空格隔开: \n"); scanf("%d %d",&a,&b); // 从键盘输入两个数 if(a>b){ printf("%d>%d\n",a,b); } else { printf("%d_ "); for(loop = 0; loop < 10; loop++) printf(" %d", array[loop]); printf("\n 偶数 -> "); for(loop = 0; loop < e; loop++) printf(" %d", even[loop]); printf("\n 奇数 -> "); for(loop = 0; loop < d; loop++) printf(" %d", odd[loop]); return 0; }

输出结果:

原始数组 -> 0 1 2 3 4 5 6 7 8 9 偶数 -> 0 2 4 6 8 奇数 -> 1 3 5 7 9 (2)将奇数数组与偶数数组合并为一个数组: #include int main() { int array[10]; int even[5] = {0, 2, 4, 6, 8}; int odd[5] = {1, 3, 5, 7, 9}; int loop, index, e_len, o_len; e_len = o_len = 5; index = 0; for(loop = 0; loop < e_len; loop++) { array[index] = even[loop]; index++; } for(loop = 0; loop < o_len; loop++) { array[index] = odd[loop]; index++; } printf("\n偶数 -> "); for(loop = 0; loop < e_len; loop++) printf(" %d", even[loop]); printf("\n奇数 -> "); for(loop = 0; loop < o_len; loop++) printf(" %d", odd[loop]); printf("\n合并后 -> "); for(loop = 0; loop < 10; loop++) printf(" %d", array[loop]); return 0; }

输出结果:

偶数 -> 0 2 4 6 8 奇数 -> 1 3 5 7 9 合并后 -> 0 2 4 6 8 1 3 5 7 9 48.数组拷贝 (1)将一个数组复制给另外一个数组: #include int main() { int original[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0}; int copied[10]; int loop; for(loop = 0; loop < 10; loop++) { copied[loop] = original[loop]; } printf("元素数组 -> 拷贝后的数组 \n"); for(loop = 0; loop < 10; loop++) { printf(" %2d %2d\n", original[loop], copied[loop]); } return 0; }

输出结果:

元素数组 -> 拷贝后的数组 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 0 0 (2)值传递与地址传递的区别: #include "stdio.h" int ArrayCopy(char* ori, char* cop, char Length) { char loop; for(loop = 0; loop < Length; loop++) { *cop++ = *ori++; } return 0; } int main() { char original[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0}; char *copiedOne=original; char copiedTwo[10]; char loop; char Length; Length = sizeof(original); printf("元素数组 -> 拷贝后的数组 \n"); for(loop = 0; loop < sizeof(original); loop++) { printf(" %2d %2d\n", original[loop], copiedOne[loop]); } ArrayCopy(original,copiedTwo, Length); copiedTwo[9] = 20; printf("值传递:\n"); printf("值传递更改数据后,只有拷贝的数组中的元素被更改: \n"); printf("元素数组 -> 拷贝后的数组 \n"); for(loop = 0; loop < sizeof(original); loop++) { printf(" %2d %2d\n", original[loop], copiedTwo[loop]); } copiedOne[9] = 50; printf("地址传递:\n"); printf("地址传递更改数据后,原数组元素与拷贝的数组中的元素同时被更改: \n"); printf("元素数组 -> 拷贝后的数组 \n"); for(loop = 0; loop < sizeof(original); loop++) { printf(" %2d %2d\n", original[loop], copiedOne[loop]); } return 0; } (3)参考方法: #include #include int main() { int array[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; int *arrayPointer = (int*)calloc(sizeof(array) / sizeof(array[0]), sizeof(int)), i;//令指针指向一块新内存区,该内存区大小刚好可以容纳旧数组所有元素 for ( i = 0; i < sizeof(array)/sizeof(array[0]); i++) *arrayPointer++ = array[i]; *arrayPointer = '\0';//为新数组手动添上结束标记 arrayPointer -= sizeof(array) / sizeof(array[0]);//指针归首位 printf("元素数组 -> 拷贝后的数组 \n"); for (i = 0; i < sizeof(array) / sizeof(array[0]); i++) printf("%5d%13d\n",array[i],arrayPointer[i]); return 0; } 49.计算标准偏差 #include #include float calculateSD(float data[]); int main() { int i; float data[10]; printf("输入10个元素: "); for(i=0; i < 10; ++i) scanf("%f", &data[i]); printf("\n标准偏差 = %.6f", calculateSD(data)); return 0; } float calculateSD(float data[]) { float sum = 0.0, mean, standardDeviation = 0.0; int i; for(i=0; i


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3