标题:C语言学习的常见问题
只看楼主
永顿_007
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2007-5-15
 问题点数:0 回复次数:18 
C语言学习的常见问题

初学者遇到最多的困惑是:上课也能听懂,书上的例题也能看明白,可是到自己动手做编程时,却不知道如何下手。发生这种现象的原因有三个:

1,所谓的看懂听明白,只是很肤浅的语法知识,而我们编写的程序或软件是要根据要解决问题的实际需要控制程序的流程,如果你没有深刻地理解C语言的语句的执行过程(或流程),你怎么会编写程序解决这些实际问题呢?
2,用C语言编程解决实际问题,所需要的不仅仅是C语言的编程知识,还需要相关的专业知识。例如,如果你不知道长方形的面积公式,即使C语言学得再好你也编不出求长方形的面积的程序来。
3C语言程序设计是一门实践性很强的课程,“纸上谈兵”式的光学不练是学不好C语言的。例如,大家都看过精彩自行车杂技表演,假如,你从来没有骑过自行车,光听教练讲解相关的知识、规则、技巧,不要说上台表演、就是上路你恐怕都不行。

搜索更多相关主题的帖子: C语言 实际问题 流程 软件 
2007-05-22 18:45
永顿_007
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2007-5-15
得分:0 

第一步、验证性练习


在这一步要求按照教材上的程序实例进行原样输入,运行一下程序是否正确。在这一步基本掌握C语言编程软件的使用方法(包括新建、打开、保存、关闭C程序,熟练地输入、编辑C程序;初步记忆新学章节的知识点、养成良好的C语言编程风格)。 单击此处查看【C语言的编程风格】


使用《Turbo C/C++ for Windows 集成实验与学习环境》软件可以很方便地看着软件集成的《C语言入门教程》输入练习其中的程序例题。具体使用方法参见软件帮助部分。

初学者最容易犯的错误是:
1、没有区分开教材上的数字1和字母l,字母o和数字0的区别,造成变量未定义的错误。另一个易错点是将英文状态下的逗号,分号;括号()双引号""输入出入成中文状态下的逗号,分号;括号(),双引号“”造成非法字符错误。
2、C语言初学者易犯语法错误:使用未定义的变量、标示符(变量、常量、数组、函数等)不区分大小写、漏掉“;”、“{”与“}”、“(”与“)”不匹配、控制语句(选择、分支、循环)的格式不正确、调用库函数却没有包含相应的头文件、调用未声明的自定义函数、调用函数时实参与形参不匹配、数组的边界超界等。
3、修改C语言语法错误时要注意以下两点:
(1)、由于C语言语法比较自由、灵活,因此错误信息定位不是特别精确。例如,当提示第10行发生错误时,如果在第10行没有发现错误,从第10行开始往前查找错误并修改之。

(2)、一条语句错误可能会产生若干条错误信息只要修改了这条错误,其他错误会随之消失。特别提示:一般情况下,第一条错误信息最能反映错误的位置和类型,所以调试程序时务必根据第一条错误信息进行修改,修改后,立即运行程序,如果还有很多错误,要一个一个地修改,即,每修改一处错误要运行一次程序。


踏实的做事,少说多干,好好做编程高手!
2007-05-22 18:45
永顿_007
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2007-5-15
得分:0 

第二步、照葫芦画瓢
在第一步输入的C程序的基础上进行试验性的修改,运行一下程序看一看程序结果发生了什么变化,分析结果变化的原因,加深新学知识点的理解。事实上这和第一步时同步进行的,实现“输入”加深知识的记忆,“修改”加深对知识的理解。记忆和理解是相辅相成的,相互促进。

例如:将最简单的Hello World!程序
#include "stdio.h"
int main()
{
printf("Hello World!\n");
return 0;
}
中的

printf("Hello World!\n");

中的Hello World!改成你的姓名,运行一下程序,看有什么变化?

再如求1+2+3...+100的和的程序

#include <stdio.h>
main()
{
int i,sum=0;
for(i=1;i<=100;i++)
{
sum=sum+i;
}
printf("sum=%d\n",sum);
}

 

第1次将for(i=1;i<=100;i++)中的100改成50,运行一下程序,看有什么变化?
第2次将for(i=1;i<=100;i++)中的i++改成i=i+2,运行一下程序,看有什么变化? 
找出程序结果变化的原因,就加深了对C语句的理解。
 


踏实的做事,少说多干,好好做编程高手!
2007-05-22 18:46
永顿_007
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2007-5-15
得分:0 

第三步、自己试做类似问题。
在这一步要求不看教材,即使程序不能运行,看能否将其改正,使其能正确运行。目的是对前两步的记忆、理解进一步强化。


对比前两步,设计一些相同的问题,试着自己编程,然后调试,再逐渐扩大,增加程序行,添加一些辅助功能。


踏实的做事,少说多干,好好做编程高手!
2007-05-22 18:46
永顿_007
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2007-5-15
得分:0 

第四步、增强程序的调试能力
在《Turbo C/C++ for Windows 集成实验与学习环境》集成的教材中每章都有C语言初学者易犯的错误,按照易出错的类型,将教材中的正确的程序改成错误的程序,运行一下程序,看出现的错误信息提示,并记下错误信息,再将程序改成正确的,运行一下程序。这样反复修改,就能够学习C语言程序发生错误的原因和修改错误的能力。
注意:每次只改错一个地方,目的是显示发生该错误的真正原因,避免一次改动多个地方,搞清发生错误的真正原因,切记!!!!
注意:上机调试程序时要带一个记录本,记下英文错误提示信息和解决该错误问题的方法,积累程序调试经验,避免在编程犯同样的错误,切记!!!!。
例如,将Hello World程序中语句
printf("Hello World!\n");中的;改成中文的分号;

运行一下程序,看有什么结果?

C语言的错误信息的形式:(下面例子是的Turobo C2.0错误信息,如图1)

错误 文件名 行号 冒号 错误内容

↓ ↓ ↓ ↓ ↓

Error E:\WinTc\WinTc\frist.c 5 : Function call missing) in function main


C语言的错误信息的形式:(下面例子是Visual C++6.0 错误信息,如图2)

文件名 行号 冒号 错误代码 冒号 错误内容

↓ ↓ ↓ ↓ ↓ ↓

e:\wintc\wintc\frist.c ( 5 ) : error C2143 : syntax error : missing ')' before ';'


软件集成了高校教学用的最多的两个编译器Visual C++6.0和Turbo c 2.0,支持C、标准C、C++、标准C++、WINDOWS C程序的编辑、编译、和调试。软件根据用户输入程序的类型智能选择编译器,不用使用者干涉。

调试程序是一种实践性很强的事,光纸上谈兵是是没用的,就像游泳运动员只听教练讲解示范,而不亲自下水练习,是永远学不会游泳的。
即使在优秀的程序员编写程序也会犯错误的,可能事最低级的语法错误,但他能快速发现错误并改正错误,而我们C语言初学者面对错误提示,不知道发生了什么错误,如何改正,这就是差别。



踏实的做事,少说多干,好好做编程高手!
2007-05-22 18:47
永顿_007
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2007-5-15
得分:0 
第五步、研究典型的C语言程序,提高程序设计能力
 
经过上述过程的学习,我们已经学会了C语言各种语句的流程(即计算机是如何执行这些语句的过程),然后就可以研读别人编写C语言经典程序,看懂别人是如何解决问题的,学习解决问题的方法和程序设计技巧,提高自己的程序设计能力。

在软件中有50多个典型的源程序,研究它的实现方法,提高自己的程序设计能力。

踏实的做事,少说多干,好好做编程高手!
2007-05-22 18:47
永顿_007
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2007-5-15
得分:0 

第六步、研究课程设计源成序,提高C语言程序设计能力和调试较大程序的能力。

C语言课程设计的目的:是让学生综合利用所学的C语言知识,解决一些接近实际问题题目,提高程序设计和调试较大程序的能力,为进一步进行软件开发打下坚实的基础。
软件中有4个注释详细的课程设计源程序
摘自《Turbo C/C++ for windows 集成实验与学习环境》的《C语言入门教程》

C语言好学吗?
C语言好学吗?初学者常常问这个问题。答案很简单,对C语言感兴趣,有强烈的学习欲望,就容易学。如果不感兴趣,再简单的知识也学不会。
试想一下,现在有几个学校教学生打游戏呢?答案是否定的,可是很多学生都会打游戏,而且还经常交流打游戏的心得体会。
如果你对C语言感兴趣,为什么不把学习打游戏的经验用到学习C语言呢?如果这样的话,C语言还难学吗?
最后送C语言初学者一句话来共勉:首先要相信自己是有能力学好C语言的,然后不惜一切代价把这种能力表现出来,你就成功了。做任何事,何尝不是这样呢?



踏实的做事,少说多干,好好做编程高手!
2007-05-22 18:47
永顿_007
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2007-5-15
得分:0 
这是我老师教导我们的我觉得对初学者有很有帮助,所以就发上来,大家一起努力!

踏实的做事,少说多干,好好做编程高手!
2007-05-22 18:49
Amy0416
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2007-5-16
得分:0 
   说的好,大家一起努力

如果说编不出程是痛苦的起点,那么在终点以前我愿意再试一遍,加油!
2007-05-22 23:13
mthghyong
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-9-12
得分:0 
顶下
谢谢了
2008-09-12 13:38



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-141592-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.080935 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved