谭浩强版c语言课后习题题全解析:附考试高频考点

admin 综合编程开发技术 3


学 C 语言的同学,估计没人不知道谭浩强老师的教材吧?这本书的课后习题可是出了名的经典,但也真能让人头大。是不是经常对着某道题琢磨半天,答案看懂了可换个问法又懵了?更怕的是,不知道哪些题藏着期末考试的坑。别愁,兔子哥今天就把这本教材里的重点习题拆解开来讲,还会标清楚哪些是考试常考的,一起往下看吧!
函数章节:课后习题 + 考点解析
谭浩强版教材里,函数这一章的习题特别注重调用和参数传递。比如那道 “写一个求素数的函数,在主函数中调用并输出 100 以内的素数”。
很多同学会这么写函数:
int isprime (int n)
{
int i;
for (i=2;iif (n% i==0) return 0;
return 1;
}

乍一看没问题,但其实效率能优化。考试时老师常考这个点,比如问 “为什么循环条件可以写成 i<=sqrt (n)”,因为一个数如果有因子,肯定有一个小于等于它的平方根。这点记牢了,选择题能多拿分。
主函数调用的时候,新手容易犯的错是忘了判断函数返回值。正确的调用应该是:
for (i=2;i<=100;i++)
if (isprime (i)==1) printf ("% d",i);
这里的考点是函数返回值的判断循环嵌套的逻辑,期末考试大概率会出类似的编程题。


数组章节:这些习题藏着高频考点
数组里最经典的莫过于 “冒泡排序” 那道题了。谭浩强教材里的例题是对 10 个整数排序,很多同学会把内循环的条件写错。
错误写法:
for (i=0;i<10;i++)
for (j=0;j<10-i;j++)
正确的应该是 j<9-i,因为每轮排序后,最后面的数已经排好序了,不用再比较。这个细节考试经常考选择题,问 “内循环条件为什么是 j<9-i”,记不住就容易错。
还有一道 “二维数组求平均值” 的题,考点是二维数组的下标访问。比如 int a [3][4],行下标 0 到 2,列下标 0 到 3,很多人会写成 a [3][4],这就越界了,程序容易崩溃。


指针章节:难点习题解析
指针是很多人的噩梦,谭浩强教材里有一道 “用指针实现字符串复制” 的题,错误率特别高。
常见错误代码:
void copy (char *from,char *to)
{
while (*from!='\0')
{
*to=*from;
from++;
to++;
}
}
看起来对,但少了最后加 '\0' 的步骤。正确的应该在循环结束后加 * to='\0';,不然字符串就没有结束标志,输出的时候会乱码。这个点是期末考试的重中之重,编程题里出现的概率特别大。
章节习题类型考试出现频率易错点
函数素数判断循环条件优化
数组冒泡排序极高内循环边界值
指针字符串复制忘记添加结束符 '\0'

可能有人会问,课后习题是不是都要做?兔子哥觉得不用,像那些纯语法练习的题,做几道熟悉就行。但上面说的这些带算法逻辑的,还有结合考点的,一定要亲手敲一遍代码。
还有同学说,做过的题过几天就忘咋办?很简单,把错题标出来,每周回头看一次,特别是错误原因要写清楚。比如冒泡排序的内循环条件,写在错题本上,考前翻一翻,印象就深了。
谭浩强版的教材习题其实很有梯度,从基础到进阶慢慢过渡。跟着这些题学,把每个章节的考点吃透,期末考试肯定没问题。兔子哥当年就是这么过来的,那些看起来难的题,多做两遍就发现套路了。你要是哪道题卡壳了,随时来找兔子哥聊聊,咱们一起把它攻克掉。

标签: 字符串 谭浩强

发布评论 0条评论)

  • Refresh code

还木有评论哦,快来抢沙发吧~