前言

        这套 150 道 C 语言练习题完全对标谭浩强老师《C 语言程序设计(第 5 版)》,覆盖了教材里数据类型、顺序 / 选择 / 循环结构、数组、函数、指针、字符串、结构体、文件操作等所有核心知识点,难度从入门到进阶,特别适合初学 C 语言的大学生练习。

        不用着急把所有题目一次性做完,跟着自己的学习进度慢慢练就好。每道题的代码答案我都会陆续更新在博客主页,大家可以对照参考。

        最后想强调的是:一定要手动敲代码,遇到报错别着急用 AI 直接找答案,试着自己排查、调试,在解决报错的过程中才能真正理解知识点,打好编程基础。


一、基础入门(第1–2章)15题

  1. 输出 Hello, C Language!,熟悉C程序基本结构

  2. 定义 int、char、float、double 变量并赋值输出

  3. 输入两个整数,计算其和、差、积、商

  4. 输入圆半径,计算圆的周长和面积

  5. 求两个整数的余数,掌握 % 运算符

  6. 验证 i++++ii----i 的运算结果

  7. 计算表达式 (3+4)*5-6/2 的值

  8. 输入长方形长和宽,计算面积和周长

  9. 交换两个整型变量的值

  10. 定义符号常量 PI,计算球的体积

  11. 输入两个整数,输出较大的数

  12. 计算 10+20*3/4 的值

  13. 输出一个整数的十进制、八进制、十六进制形式

  14. 输入一个实数,输出其整数部分和小数部分

  15. 输入矩形长和宽,计算对角线长度

二、顺序结构程序设计(第3章)15题

  1. 输入一个字符,输出其 ASCII 码

  2. 输入总秒数,换算成小时、分钟、秒

  3. 输入三个整数,求平均值

  4. 摄氏温度转华氏温度(公式:F=9*C/5+32

  5. 输入三角形三边,计算周长

  6. 输入一个三位整数,拆分输出个位、十位、百位

  7. 输入两个实数,交换后输出

  8. 计算 a + |b| 的值

  9. 输入小写字母,输出对应大写字母

  10. 求解一元一次方程 ax+b=0(a≠0)

  11. 输入矩形长和宽,计算对角线长度

  12. 输入两个数,求平均值与平方和

  13. 判断一个字符是否为可打印字符

  14. 输入上底、下底、高,计算梯形面积

  15. 输入时、分、秒,换算成总秒数

三、选择结构(第4章 if/switch)20题

  1. 判断一个整数是正数、负数还是零

  2. 输入两个数,输出较大值

  3. 输入三个数,输出最大值

  4. 判断一个年份是否为闰年

  5. 判断一个整数是否为偶数

  6. 输入成绩,判断是否及格(60分及格)

  7. 输入成绩,输出等级:90+A、80–89B、70–79C、60–69D、<60E

  8. 判断一个字符是否为大写字母

  9. 输入三边,判断能否构成三角形

  10. 输入 x,计算分段函数 y=|x|

  11. 输入1–7,输出对应星期几

  12. 输入月份,输出该月天数(平年)

  13. 判断一个数是否能同时被3和5整除

  14. 输入三角形三边,判断等边、等腰、普通三角形

  15. 判断一个字符是字母、数字还是其他字符

  16. 比较两个实数大小并输出结果

  17. 输入 x,计算分段函数:x<0→y=-1;x=0→y=0;x>0→y=1

  18. 输入月份,判断所属季节

  19. 判断一个三位数是否为水仙花数

  20. 判断两个输入的数是否相等

四、循环结构(第5章 for/while/do-while)25题

  1. 输出1–100所有整数

  2. 计算1–100的累加和

  3. 计算1–10的阶乘

  4. 输出100以内所有偶数

  5. 输入一个整数,求各位数字之和

  6. 输出九九乘法表

  7. 输出斐波那契数列前20项

  8. 判断一个数是否为素数

  9. 输出100–200之间所有素数

  10. 统计1–100中能被3整除的数的个数

  11. 输入一个整数,逆序输出各位数字

  12. 计算 1 + 1/2 + 1/3 + … + 1/100

  13. 用 do-while 实现密码验证,直到输入正确

  14. 计算1–100所有奇数的和

  15. 输出100以内能被7整除的数

  16. 统计一个整数的位数

  17. 计算 1²+2²+…+10²

  18. 输出1–100之间的完全平方数

  19. 判断一个数是否为回文数

  20. 计算1–10的倒数和

  21. 输出ASCII码33–126对应的字符

  22. 统计1–1000中个位是3的数的个数

  23. 求两个正整数的最大公约数

  24. 求两个正整数的最小公倍数

  25. 输出10个随机整数

五、一维数组(第6章上)15题

  1. 定义一维数组,输入10个整数并输出

  2. 求一维数组所有元素的和

  3. 求一维数组的最大值和最小值

  4. 统计数组中正数、负数、零的个数

  5. 将数组元素逆序存放

  6. 在数组中查找指定数值是否存在

  7. 输入10个成绩,计算平均分

  8. 对一维数组进行升序冒泡排序

  9. 输出数组中的所有素数

  10. 合并两个有序一维数组

  11. 删除数组中指定下标的元素

  12. 在数组指定位置插入一个元素

  13. 统计数组中偶数的个数

  14. 查找数组中最大值的下标

  15. 将数组中所有元素乘以2并输出

六、二维数组(第6章下)10题

  1. 定义3×3二维数组,输入并按矩阵输出

  2. 求3×3矩阵对角线元素之和

  3. 求二维数组所有元素的最大值

  4. 实现3×3矩阵转置

  5. 计算两个2×2矩阵的和

  6. 输出杨辉三角前10行

  7. 统计二维数组中偶数的个数

  8. 求二维数组每行的最大值

  9. 求二维数组每列元素的和

  10. 输出二维数组中的所有素数

七、函数基础(第7章上)10题

  1. 定义无参函数,输出 Hello, Function!

  2. 定义函数求两个整数的和

  3. 定义函数判断一个数是否为偶数

  4. 定义函数求圆的面积

  5. 定义函数实现两个数交换

  6. 定义函数求n的阶乘

  7. 定义函数判断素数

  8. 调用函数输出1–100所有素数

  9. 定义函数求一维数组最大值

  10. 定义函数计算数组平均值

八、函数进阶(递归/嵌套)5题

  1. 递归求n的阶乘

  2. 递归求斐波那契数列第n项

  3. 函数嵌套调用计算 (a+b)*(c+d)

  4. 递归逆序输出一个整数

  5. 递归判断一个数是否为回文数

九、指针基础(第8章上)10题

  1. 定义指针,输出变量地址和值

  2. 用指针访问并修改变量值

  3. 用指针实现两个数交换

  4. 用指针遍历一维数组

  5. 用指针求数组元素和

  6. 用指针查找数组最大值

  7. 用指针实现字符串复制

  8. 用指针统计字符串长度

  9. 用指针将字符串逆序输出

  10. 用指针访问数组指定下标元素

十、字符串处理(第8章下)5题

  1. 统计字符串中字母的个数

  2. 判断字符串是否为回文字符串

  3. 将字符串中小写字母转大写

  4. 实现两个字符串拼接

  5. 统计字符串中数字字符的个数

十一、结构体与共用体(第9章)5题

  1. 定义学生结构体(学号、姓名、成绩),实现输入输出

  2. 结构体数组存3名学生,输出最高分学生

  3. 定义长方形结构体,计算面积

  4. 定义书籍结构体(书名、作者、价格),输入输出

  5. 结构体数组存5名学生,统计不及格人数

十二、预处理与位运算(第10章)3题

  1. 用宏定义求两个数的最大值

  2. 用条件编译控制调试信息输出

  3. 对整数进行按位与、或、异或运算

十三、文件操作(第11章)7题

  1. 向文本文件写入1–100的整数

  2. 从文本文件读取数据并输出

  3. 向文件写入学生结构体信息

  4. 从文件读取学生信息并输出

  5. 向文件追加写入字符串

  6. 统计文本文件中字符个数

  7. 将数组写入文件,再读取并逆序输出

  8. 复制一个文本文件内容到另一个文件

  9. 从文件读取成绩,计算平均分并写入文件

  10. 输入字符串写入文件,并统计单词个数

  11. 从文件读取整数,找出最大值并输出

  12. 批量写入10个学生信息到文件,再读取展示

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐