C语言程序设计 150 道练习题(适合大学生练习)
这份习题集整理了150道贴合谭浩强《C语言程序设计(第5版)》的C语言练习题,专为初学C语言的大学生打造。题目从基础语法循序渐进,覆盖数据类型、三大结构、数组、函数、指针、结构体、文件操作等全部核心知识点,难度适中。学习不用赶进度,按自己的节奏慢慢练就好。每道题的代码答案我会陆续更新在博客主页,方便大家对照参考。真心希望大家能亲手敲每一行代码,遇到报错别直接依赖AI,在排查错误的过程里,才能真正吃
前言
这套 150 道 C 语言练习题完全对标谭浩强老师《C 语言程序设计(第 5 版)》,覆盖了教材里数据类型、顺序 / 选择 / 循环结构、数组、函数、指针、字符串、结构体、文件操作等所有核心知识点,难度从入门到进阶,特别适合初学 C 语言的大学生练习。
不用着急把所有题目一次性做完,跟着自己的学习进度慢慢练就好。每道题的代码答案我都会陆续更新在博客主页,大家可以对照参考。
最后想强调的是:一定要手动敲代码,遇到报错别着急用 AI 直接找答案,试着自己排查、调试,在解决报错的过程中才能真正理解知识点,打好编程基础。
一、基础入门(第1–2章)15题
-
输出
Hello, C Language!,熟悉C程序基本结构 -
定义 int、char、float、double 变量并赋值输出
-
输入两个整数,计算其和、差、积、商
-
输入圆半径,计算圆的周长和面积
-
求两个整数的余数,掌握
%运算符 -
验证
i++、++i、i--、--i的运算结果 -
计算表达式
(3+4)*5-6/2的值 -
输入长方形长和宽,计算面积和周长
-
交换两个整型变量的值
-
定义符号常量 PI,计算球的体积
-
输入两个整数,输出较大的数
-
计算
10+20*3/4的值 -
输出一个整数的十进制、八进制、十六进制形式
-
输入一个实数,输出其整数部分和小数部分
-
输入矩形长和宽,计算对角线长度
二、顺序结构程序设计(第3章)15题
-
输入一个字符,输出其 ASCII 码
-
输入总秒数,换算成小时、分钟、秒
-
输入三个整数,求平均值
-
摄氏温度转华氏温度(公式:
F=9*C/5+32) -
输入三角形三边,计算周长
-
输入一个三位整数,拆分输出个位、十位、百位
-
输入两个实数,交换后输出
-
计算
a + |b|的值 -
输入小写字母,输出对应大写字母
-
求解一元一次方程
ax+b=0(a≠0) -
输入矩形长和宽,计算对角线长度
-
输入两个数,求平均值与平方和
-
判断一个字符是否为可打印字符
-
输入上底、下底、高,计算梯形面积
-
输入时、分、秒,换算成总秒数
三、选择结构(第4章 if/switch)20题
-
判断一个整数是正数、负数还是零
-
输入两个数,输出较大值
-
输入三个数,输出最大值
-
判断一个年份是否为闰年
-
判断一个整数是否为偶数
-
输入成绩,判断是否及格(60分及格)
-
输入成绩,输出等级:90+A、80–89B、70–79C、60–69D、<60E
-
判断一个字符是否为大写字母
-
输入三边,判断能否构成三角形
-
输入 x,计算分段函数
y=|x| -
输入1–7,输出对应星期几
-
输入月份,输出该月天数(平年)
-
判断一个数是否能同时被3和5整除
-
输入三角形三边,判断等边、等腰、普通三角形
-
判断一个字符是字母、数字还是其他字符
-
比较两个实数大小并输出结果
-
输入 x,计算分段函数:x<0→y=-1;x=0→y=0;x>0→y=1
-
输入月份,判断所属季节
-
判断一个三位数是否为水仙花数
-
判断两个输入的数是否相等
四、循环结构(第5章 for/while/do-while)25题
-
输出1–100所有整数
-
计算1–100的累加和
-
计算1–10的阶乘
-
输出100以内所有偶数
-
输入一个整数,求各位数字之和
-
输出九九乘法表
-
输出斐波那契数列前20项
-
判断一个数是否为素数
-
输出100–200之间所有素数
-
统计1–100中能被3整除的数的个数
-
输入一个整数,逆序输出各位数字
-
计算 1 + 1/2 + 1/3 + … + 1/100
-
用 do-while 实现密码验证,直到输入正确
-
计算1–100所有奇数的和
-
输出100以内能被7整除的数
-
统计一个整数的位数
-
计算 1²+2²+…+10²
-
输出1–100之间的完全平方数
-
判断一个数是否为回文数
-
计算1–10的倒数和
-
输出ASCII码33–126对应的字符
-
统计1–1000中个位是3的数的个数
-
求两个正整数的最大公约数
-
求两个正整数的最小公倍数
-
输出10个随机整数
五、一维数组(第6章上)15题
-
定义一维数组,输入10个整数并输出
-
求一维数组所有元素的和
-
求一维数组的最大值和最小值
-
统计数组中正数、负数、零的个数
-
将数组元素逆序存放
-
在数组中查找指定数值是否存在
-
输入10个成绩,计算平均分
-
对一维数组进行升序冒泡排序
-
输出数组中的所有素数
-
合并两个有序一维数组
-
删除数组中指定下标的元素
-
在数组指定位置插入一个元素
-
统计数组中偶数的个数
-
查找数组中最大值的下标
-
将数组中所有元素乘以2并输出
六、二维数组(第6章下)10题
-
定义3×3二维数组,输入并按矩阵输出
-
求3×3矩阵对角线元素之和
-
求二维数组所有元素的最大值
-
实现3×3矩阵转置
-
计算两个2×2矩阵的和
-
输出杨辉三角前10行
-
统计二维数组中偶数的个数
-
求二维数组每行的最大值
-
求二维数组每列元素的和
-
输出二维数组中的所有素数
七、函数基础(第7章上)10题
-
定义无参函数,输出
Hello, Function! -
定义函数求两个整数的和
-
定义函数判断一个数是否为偶数
-
定义函数求圆的面积
-
定义函数实现两个数交换
-
定义函数求n的阶乘
-
定义函数判断素数
-
调用函数输出1–100所有素数
-
定义函数求一维数组最大值
-
定义函数计算数组平均值
八、函数进阶(递归/嵌套)5题
-
递归求n的阶乘
-
递归求斐波那契数列第n项
-
函数嵌套调用计算
(a+b)*(c+d) -
递归逆序输出一个整数
-
递归判断一个数是否为回文数
九、指针基础(第8章上)10题
-
定义指针,输出变量地址和值
-
用指针访问并修改变量值
-
用指针实现两个数交换
-
用指针遍历一维数组
-
用指针求数组元素和
-
用指针查找数组最大值
-
用指针实现字符串复制
-
用指针统计字符串长度
-
用指针将字符串逆序输出
-
用指针访问数组指定下标元素
十、字符串处理(第8章下)5题
-
统计字符串中字母的个数
-
判断字符串是否为回文字符串
-
将字符串中小写字母转大写
-
实现两个字符串拼接
-
统计字符串中数字字符的个数
十一、结构体与共用体(第9章)5题
-
定义学生结构体(学号、姓名、成绩),实现输入输出
-
结构体数组存3名学生,输出最高分学生
-
定义长方形结构体,计算面积
-
定义书籍结构体(书名、作者、价格),输入输出
-
结构体数组存5名学生,统计不及格人数
十二、预处理与位运算(第10章)3题
-
用宏定义求两个数的最大值
-
用条件编译控制调试信息输出
-
对整数进行按位与、或、异或运算
十三、文件操作(第11章)7题
-
向文本文件写入1–100的整数
-
从文本文件读取数据并输出
-
向文件写入学生结构体信息
-
从文件读取学生信息并输出
-
向文件追加写入字符串
-
统计文本文件中字符个数
-
将数组写入文件,再读取并逆序输出
-
复制一个文本文件内容到另一个文件
-
从文件读取成绩,计算平均分并写入文件
-
输入字符串写入文件,并统计单词个数
-
从文件读取整数,找出最大值并输出
-
批量写入10个学生信息到文件,再读取展示
更多推荐

所有评论(0)