期末考 C 语言的日子越来越近了,是不是看着教材后面的习题头都大了?时间就那么点,想刷透题又怕抓不住重点,好不容易做几道还总在同一个地方栽跟头。你是不是也这样?别急,兔子哥从往年期末试题里挑了 50 道必刷题,每道都带详细步骤,还标了最容易错的地方,一起往下看吧!
基础题型:变量与输入输出(5 道)
什么是基础题型?就是考变量定义、printf 和 scanf 用法的题,看着简单,但错的人真不少。比如这道题:“输入两个整数 a 和 b,输出它们的和与积”。
答题步骤得这样:
- 定义变量:int a, b, sum, product; 别忘了定义存放结果的变量,不然算完没地方存。
- 输入数据:scanf ("% d% d", &a, &b); 这里的 & 千万不能漏,有个叫小周的同学上次期末就因为漏了 &,这道题直接零分。
- 计算:sum = a + b; product = a * b; 这步简单,但别把 + 和 * 弄混了。
- 输出:printf ("和:% d,积:% d", sum, product); 注意格式符和变量对应,别把 sum 写成 product。
要是不按步骤来,比如直接在 printf 里写 a+b,虽然结果对,但老师可能扣步骤分。期末改卷严着呢,步骤全才能拿满分。
循环与函数:期末重点(15 道)
循环和函数占分特别多,差不多 30 分呢。就说 “用 for 循环求 1 到 100 的偶数和” 这道题,怎么做才对?
步骤得清晰:
- 定义变量:int i, sum = 0; sum 一定要初始化为 0,不然一开始可能是个乱码数。
- 写循环:for (i=2; i<=100; i+=2) 从 2 开始,每次加 2,比写 if (i%2==0) 省时间。
- 累加:sum += i; 别写成 sum = i,不然就只存最后一个数了。
- 输出 sum。
易错点在哪?有个同学把 i+=2 写成了 i+2,结果循环停不下来,程序直接崩了。这就是没搞懂 i+=2 和 i+2 的区别,前者会改变 i 的值,后者不会。
函数题里 “写一个求最大公约数的函数” 也常考。用辗转相除法,步骤是:
- 函数定义:int gcd (int a, int b)
- 循环求余:while (b!=0){int r=a% b; a=b; b=r;}
- 返回 a。
要是把循环条件写成 b==0,那就错了,根本进不了循环。上次期末就有同学犯这错,函数返回 0,一分没得。
数组与指针:拉开差距的关键(20 道)
数组题里,“冒泡排序” 几乎年年考。比如 “将数组按从小到大排序”,步骤得记牢:
- 定义数组:int arr [5] = {3,1,4,2,5};
- 外层循环控制轮数:for (i=0; i<4; i++) 5 个元素排 4 轮就行。
- 内层循环比较交换:for (j=0; j<4-i; j++) 每轮少比一次。
- 交换:if (arr [j]>arr [j+1]){int t=arr [j]; arr [j]=arr [j+1]; arr [j+1]=t;}
易错点在哪?内层循环条件写成 j<5-i,这样 j+1 可能到 arr [5],越界了。有个学姐说她考前练了 10 遍冒泡排序,就因为这步总错,后来用红笔标在题旁边才记住。
指针题 “用指针访问数组元素并输出”,步骤是:
- 定义数组和指针:int arr [3]={10,20,30}, *p=arr;
- 循环输出:for (i=0; i<3; i++) printf ("% d", *(p+i));
别写成 * p++,虽然结果对,但期末考可能要求用指针偏移,不是移动指针。要是没按要求,老师可能少给分。
综合应用题:最后冲刺(10 道)
最后这些题综合了好几个知识点,比如 “用结构体存 3 个学生信息,输出最高分的学生”。
步骤得一步步来:
- 定义结构体:struct Student {char name [20]; int score;};
- 定义数组:struct Student s [3];
- 输入数据:for (i=0; i<3; i++) scanf ("% s % d", s [i].name, &s [i].score);
- 找最高分:int max=s [0].score, index=0; 然后循环比较。
- 输出 s [index] 的信息。
有个男生分享说,他总把 s [i].score 写成 s.score [i],结构体和数组的关系搞反了,改了三次才对。这种细节错,考前得多练。
该怎么用好这 50 道题呢?兔子哥觉得,每天刷 10 道,5 天就能过完。每道题先自己做,做错了别急着看答案,先想想哪步错了,记在错题本上。比如数组越界的错,写清楚 “j 的范围应该是 j<4-i,不是 j<5-i”,下次就不容易忘。
其实期末考 C 语言,考的就是细心和熟练。这些题都是往年常考的,把它们吃透,比刷一堆偏题怪题管用。你要是哪道题总卡壳,按步骤拆开来做,一步一步来,肯定能搞定。加油,期末一定能过!
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~