刚学 C 语言的朋友,是不是都遇到过这种情况?语法看了一堆,感觉懂了,可一碰到习题就懵;好不容易写出几行代码,运行起来全是错,还不知道错在哪;找了习题做,做完却没答案对照,心里没底。其实啊,入门 C 语言,光看语法没用,得靠习题练手,而且得是从基础语法到简单编程题循序渐进的那种,关键还得有答案能对照着改。今天兔子哥就给大家整理了一套适合新手的 c 语言程序设计习题,从最基础的变量、输入输出,到简单的循环编程题,每道题都附答案,保证新手也能看懂,一起往下看吧!
基础语法习题:先把 “零件” 练熟
学 C 语言就像搭积木,变量、运算符这些是最基本的 “零件”,得先把这些零件练熟了,才能搭出复杂的程序。
变量和数据类型:给数据找个 “盒子”
咱们写程序时,得给数字、文字找地方存,这就是变量。比如存年龄用 int(整数),存体重用 float(小数)。来练两道题:
- 定义一个整数变量 age,赋值为 20,再用 printf 打印出来。
答案:
c运行
#include int main() {int age = 20;printf("年龄是:%d", age);return 0;}- 定义一个小数变量 weight,赋值为 65.5,打印时保留一位小数。
答案:
c运行
#include int main() {float weight = 65.5;printf("体重是:%.1f", weight);return 0;}刚开始可能会忘写 #include
输入输出:让程序和你 “对话”
程序不光要能自己算,还得能接收咱们输入的内容,这就得用 scanf。试试这道题:
让用户输入自己的姓名(字符串)和年龄,然后打印 “XX 今年 XX 岁”。
答案:
c运行
#include int main() {char name[20]; // 存姓名的字符串int age;printf("请输入姓名和年龄:");scanf("%s %d", name, &age); // 注意age前要加&printf("%s今年%d岁", name, age);return 0;}这里要注意,scanf 里的变量,除了字符串(数组),其他都得加 &,刚开始老忘,兔子哥当年也在这栽过好几次。
循环与分支习题:让程序有 “逻辑”
光会存数据、打印还不够,程序得能做判断、重复做事,这就用到 if 和 for 了。
if 语句:让程序 “做选择”
比如判断一个数是正数还是负数,用 if 就行。来道题:
让用户输入一个整数,程序判断它是正数、负数还是零。
答案:
c运行
#include int main() {int num;scanf("%d", &num);if (num > 0) {printf("这是正数");} else if (num < 0) {printf("这是负数");} else {printf("这是零");}return 0;}写 if 的时候,括号里的条件别写错,比如把 “大于” 写成 “<”,程序就会反过来判断,这种小错误得细心点。
for 循环:让程序 “重复干活”
比如打印 1 到 10 的数字,用 for 循环特别方便。试试这道:
用 for 循环打印 1 到 5,每个数后面跟一个逗号(最后一个数除外)。
答案:
c运行
#include int main() {int i;for (i = 1; i <= 5; i++) {printf("%d", i);if (i != 5) { // 不是最后一个数就加逗号printf(",");}}return 0;}循环里套 if,刚开始可能有点绕,但多写两遍就顺了。有人说循环条件里的 i++ 改成 i = i + 1 行不行?其实是一样的,不过 i++ 更简洁,大家平时用得也多。
简单编程题:把语法串起来用
单个语法练熟了,就得试试把它们串起来,做简单的小项目了。
简易计算器:练加减乘除
题目:让用户输入两个数和一个运算符(+、-、*、/),程序计算结果并打印。
答案:
c运行
#include int main() {float a, b;char op;printf("请输入两个数和运算符(比如3+5):");scanf("%f%c%f", &a, &op, &b);if (op == '+') {printf("结果是:%.2f", a + b);} else if (op == '-') {printf("结果是:%.2f", a - b);} else if (op == '*') {printf("结果是:%.2f", a * b);} else if (op == '/') {if (b == 0) { // 除数不能为0printf("除数不能为0");} else {printf("结果是:%.2f", a / b);}} else {printf("运算符错误");}return 0;}这道题用到了变量、输入输出、if 分支,还考虑了除数为 0 的情况,能写出来说明基础语法掌握得差不多了。
猜数字小游戏:练循环和判断
题目:程序随机生成一个 1 到 100 的数,用户猜,程序提示 “大了” 或 “小了”,直到猜对为止。
答案:
c运行
#include #include #include int main() {int num, guess;srand(time(0)); // 让随机数每次都不一样num = rand() % 100 + 1; // 生成1-100的随机数do {printf("请猜一个1-100的数:");scanf("%d", &guess);if (guess > num) {printf("大了,再试试\n");} else if (guess < num) {printf("小了,再试试\n");}} while (guess != num); // 没猜对就一直循环printf("恭喜你,猜对了!");return 0;}这里用到了 do-while 循环,还有生成随机数的函数,刚开始可能看不懂 srand 这些,没关系,先照着写,慢慢就懂了。不过话说回来,这个程序里的随机数生成原理,具体怎么保证每次都不一样,我目前也没完全搞明白,得再研究研究。
做题时怎么用答案才有效?
很多人拿到答案就直接抄,这可不行。正确的做法是:
- 先自己写,哪怕写得乱七八糟,能运行就行;
- 运行出错了,自己找错,比如看看分号漏没漏、变量名拼错没;
- 实在找不出来,再看答案,对比自己的代码,记住哪里错了;
- 过两天再做一遍这道题,确保自己真的会了。
多做题或许能帮助更快掌握 C 语言,但关键是做一道会一道,不然做再多也白搭。兔子哥当年就是每天做 3 道题,坚持了一个月,后来再看语法,感觉豁然开朗,好像那些知识点突然就串起来了。
最后说点我的看法。入门 C 语言,习题不用做太难的,先把基础的练熟,一步一步来。每天花 20 分钟做两道题,比看两小时视频有用多了。遇到不会的别着急,新手都这样,慢慢磨,总会开窍的。希望这些习题和方法能帮到你,有啥卡壳的地方,随时找我聊。
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~