
C语言程序设计学习指南 C语言程序设计课程是一门学习计算机高级语言程序设计的课程。本课程通过介绍C语 言中的数据类型、运算、语句结构及其程序设计的基本方法,使学生掌握一门高级程序设计 语言,了解程序设计的基本概念与方法,进而学会利用C语言学会解决一般应用问题,并为 《数据结构》、《操作系统》等后续课程奠定程序设计基础。 一、我们编写的程序或软件是要根据要解决问题的实际需要控制程序的流程,如果你没 有深刻地理解C语言的语句的执行过程(或流程),你怎么会编写程序解决这些实际问题呢? 二、用C语言编程解决实际问题,所需要的不仅仅是C语言的编程知识,还需要相关的 专业知识。例如,如果你不知道长方形的面积公式,即使C语言学得再好你也编不出求长方 形的面积的程序来。 三、C语言程序设计是一门实践性很强的课程,“纸上谈兵”式的光学不练是学不好C 语言的。例如,大家都看过精彩自行车杂技表演,假如,你从来没有骑过自行车,光听教练 讲解相关的知识、规则、技巧,不要说上台表演、就是上路你恐怕都不行。 那么如何学习呢? 说明:在使用本方法之前要先阅读C语言的相关内容,要初步掌握相关知识的要点,然后按 下述方法学习,可以达到理解、巩固、提高C语言知识和提高程序调式能力的目的。 在程序开发的过程中,上机调试程序是一个不可缺少的重要环节。“三分编程七分调试”,说 明程序调试的工作量要比编程大得多,这里以如何上机调试C程序来说明C语言的学习方法。 第一步、验证性练习 在这一步要求按照教材上的程序实例进行原样输入,运行一下程序是否正确。在这一步基本 掌握C语言编程软件的使用方法(包括新建、打开、保存、关闭C程序,熟练地输入、编辑 C程序;初步记忆新学章节的知识点、养成良好的C语言编程风格)。 使用本软件可以很方便地看着教程的例题输入程序,具体方法参见帮助部分 初学者最容易犯的错误是: 1、没有区分开教材上的数字1和字母1,字母0和数字0的区别,造成变量未定义的错误。 另一个易错点是将英文状态下的逗号,分号:括号0双引号""输入出入成中文状态下的逗号, 分号;括号(),双引号“”造成非法字符错误。 2、C语言初学者易犯语法错误:使用未定义的变量、标示符(变量、常量、数组、函数等) 不区分大小写、漏掉“:”、“{”与“}”、“(”与“)”不匹、控制语句(选择、分支、循环) 的格式不正确、调用库函数却没有包含相应的头文件、调用未C声明的自定义函数、调用函 数时实参与形参不匹配、数组的边界超界等。 3、修改C语言语法错误时要注意以下两点: (1)、由于C语言语法比较自由、灵活,因此错误信息定位不是特别精确。例如,当提示第 10行发生错误时,如果在第10行没有发现错误,从第10行开始往前查找错误并修改之。 (2)、一条语句错误可能会产生若干条错误信息只要修改了这条错误,其他错误会随之消失。 特别提示:一般情况下,第一条错误信息最能反映错误的位置和类型,所以调试程序时务必 根据第一条错误信息进行修改,修改后,立即运行程序,如果还有很多错误,要一个一个地 修改,即,每修改一处错误要运行一次程序。 C语言的错误信息的形式:(下面例子是的Turbo C/C+错误信息,如图I)
C 语言程序设计学习指南 C 语言程序设计课程是一门学习计算机高级语言程序设计的课程。本课程通过介绍 C 语 言中的数据类型、运算、语句结构及其程序设计的基本方法,使学生掌握一门高级程序设计 语言,了解程序设计的基本概念与方法,进而学会利用 C 语言学会解决一般应用问题,并为 《数据结构》、《操作系统》等后续课程奠定程序设计基础。 一、我们编写的程序或软件是要根据要解决问题的实际需要控制程序的流程,如果你没 有深刻地理解 C 语言的语句的执行过程(或流程),你怎么会编写程序解决这些实际问题呢? 二、用 C 语言编程解决实际问题,所需要的不仅仅是 C 语言的编程知识,还需要相关的 专业知识。例如,如果你不知道长方形的面积公式,即使 C 语言学得再好你也编不出求长方 形的面积的程序来。 三、C 语言程序设计是一门实践性很强的课程,“纸上谈兵”式的光学不练是学不好 C 语言的。例如,大家都看过精彩自行车杂技表演,假如,你从来没有骑过自行车,光听教练 讲解相关的知识、规则、技巧,不要说上台表演、就是上路你恐怕都不行。 那么如何学习呢? 说明:在使用本方法之前要先阅读 C 语言的相关内容,要初步掌握相关知识的要点,然后按 下述方法学习,可以达到理解、巩固、提高 C 语言知识和提高程序调式能力的目的。 在程序开发的过程中,上机调试程序是一个不可缺少的重要环节。“三分编程七分调试”,说 明程序调试的工作量要比编程大得多。这里以如何上机调试C程序来说明C语言的学习方法。 第一步、验证性练习 在这一步要求按照教材上的程序实例进行原样输入,运行一下程序是否正确。在这一步基本 掌握 C 语言编程软件的使用方法(包括新建、打开、保存、关闭 C 程序,熟练地输入、编辑 C 程序;初步记忆新学章节的知识点、养成良好的 C 语言编程风格)。 使用本软件可以很方便地看着教程的例题输入程序,具体方法参见帮助部分 初学者最容易犯的错误是: 1、没有区分开教材上的数字 1 和字母 l,字母 o 和数字 0 的区别,造成变量未定义的错误。 另一个易错点是将英文状态下的逗号,分号;括号()双引号""输入出入成中文状态下的逗号, 分号;括号(),双引号“”造成非法字符错误。 2、C 语言初学者易犯语法错误:使用未定义的变量、标示符(变量、常量、数组、函数等) 不区分大小写、漏掉“;”、“{”与“}”、“(”与“)”不匹、控制语句(选择、分支、循环) 的格式不正确、调用库函数却没有包含相应的头文件、调用未 C 声明的自定义函数、调用函 数时实参与形参不匹配、数组的边界超界等。 3、修改 C 语言语法错误时要注意以下两点: (1)、由于 C 语言语法比较自由、灵活,因此错误信息定位不是特别精确。例如,当提示第 10 行发生错误时,如果在第 10 行没有发现错误,从第 10 行开始往前查找错误并修改之。 (2)、一条语句错误可能会产生若干条错误信息只要修改了这条错误,其他错误会随之消失。 特别提示:一般情况下,第一条错误信息最能反映错误的位置和类型,所以调试程序时务必 根据第一条错误信息进行修改,修改后,立即运行程序,如果还有很多错误,要一个一个地 修改,即,每修改一处错误要运行一次程序。 C 语言的错误信息的形式:(下面例子是的 Turbo C/C++错误信息,如图 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';' 第二步、照葫芦画瓢 在第一步输入的C程序的基础上进行试验性的修改,运行一下程序看一看程序结果发生了什 么变化,分析结果变化的原因,加深新学知识点的理解。事实上这和第一步时同步进行的, 实现“输入”加深知识的记忆,“修改”加深对知识的理解。记忆和理解是相辅相成的,相 互促进。 例如:将最简单的Hello World!程序 #include "stdio.h" int mainO { printf("Hello World!\n"): return 0; } 中的 printf("Hello World!\n"): 中的Hello World!改成你的姓名,运行一下程序,看有什么变化? 再如求1+2+3..+100的和的程序 #include main() { int i,sum=0; for(i=1:i<=100:i++) sum=sum+i; printf("sum=%d\n",sum);
错误 文件名 行号 冒号 错误内容 ↓ ↓ ↓ ↓ ↓ 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 ';' 第二步、照葫芦画瓢 在第一步输入的 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 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语句的理解。 第三步、不看教材看是否能将前两步的程序进行正确地输入并运行。 在这一步要求不看教材,即使程序不能运行,看能否将其改正,使其能正确运行。目的是对 前两步的记忆、理解进一步强化。 第四步、增强程序的调试能力 在教材中每章都有C语言初学者易犯的错误,按照易出错的类型,将教材中的正确的程序改 成错误的程序,运行一下程序,看出现的错误信息提示,并记下错误信息,再将程序改成正 确的,运行一下程序。这样反复修改,就能够学习C语言程序发生错误的原因和修改错误的 能力。 注意:每次只改错一个地方,目的是显示发生该错误的真正原因,避免一次改动多个地方, 搞清发生错误的真正原因,切记!!! 注意:上机调试程序时要带一个记录本,记下英文错误提示信息和解决该错误问题的方法, 积累程序调试经验,避免在编程犯同样的错误,切记!!!。 例如,将Hello World程序中语句 printf("Hello World!\n"); 中的:改成中文的分号: 运行一下程序,看有什么结果? 调试程序是一种实践性很强的事,光纸上谈兵是是没用的,就像游泳运动员只听教练讲解 示范,而不亲自下水练习,是永远学不会游泳的。 即使在优秀的程序员编写程序也会犯错误的,可能事最低级的语法错误,但他能快速发现 错误并改正错误,而我们C语言初学者面对错误提示,不知道发生了什么错误,如何改正, 这就事差别。 第五步、研究典型的C语言程序,提高程序设计能力 C语言初学者遇到最多的困惑是:上课也能听懂,书上的例题也能看明白,可是到自己动手 做编程时,却不知道如何下手。发生这种现象的原因是:所谓的看懂听明白,只是很肤浅的 语法知识,而没有深刻地理解C语言的语句的执行过程(或流程)。 计算机是按照人的指令(编写的程序)去执行的,如果不知道这些C语句在计算机中是如何
} 第 1 次将 for(i=1;i<=100;i++)中的 100 改成 50,运行一下程序,看有什么变化? 第 2 次将 for(i=1;i<=100;i++)中的 i++改成 i=i+2,运行一下程序,看有什么变化? 找出程序结果变化的原因,就加深了对 C 语句的理解。 第三步、不看教材看是否能将前两步的程序进行正确地输入并运行。 在这一步要求不看教材,即使程序不能运行,看能否将其改正,使其能正确运行。目的是对 前两步的记忆、理解进一步强化。 第四步、增强程序的调试能力 在教材中每章都有 C 语言初学者易犯的错误,按照易出错的类型,将教材中的正确的程序改 成错误的程序,运行一下程序,看出现的错误信息提示,并记下错误信息,再将程序改成正 确的,运行一下程序。这样反复修改,就能够学习 C 语言程序发生错误的原因和修改错误的 能力。 注意:每次只改错一个地方,目的是显示发生该错误的真正原因,避免一次改动多个地方, 搞清发生错误的真正原因,切记!!!! 注意:上机调试程序时要带一个记录本,记下英文错误提示信息和解决该错误问题的方法, 积累程序调试经验,避免在编程犯同样的错误,切记!!!!。 例如,将 Hello World 程序中语句 printf("Hello World!\n"); 中的;改成中文的分号; 运行一下程序,看有什么结果? 调试程序是一种实践性很强的事,光纸上谈兵是是没用的,就像游泳运动员只听教练讲解 示范,而不亲自下水练习,是永远学不会游泳的。 即使在优秀的程序员编写程序也会犯错误的,可能事最低级的语法错误,但他能快速发现 错误并改正错误,而我们 C 语言初学者面对错误提示,不知道发生了什么错误,如何改正, 这就事差别。 第五步、研究典型的 C 语言程序,提高程序设计能力 C 语言初学者遇到最多的困惑是:上课也能听懂,书上的例题也能看明白,可是到自己动手 做编程时,却不知道如何下手。发生这种现象的原因是:所谓的看懂听明白,只是很肤浅的 语法知识,而没有深刻地理解 C 语言的语句的执行过程(或流程)。 计算机是按照人的指令(编写的程序)去执行的,如果不知道这些 C 语句在计算机中是如何

执行的,你怎么回灵活运用这些知识去解决实际问题呢? 解决问题的方法是要先理解C语言各种语句的流程(即计算机是如何执行这些语句的过程), 然后研读现成C语言经典程序,看懂别人事如何解决问题的,以提高自己的程序设计能力。 在软件中有50多个典型的源程序,研究它的实现方法,提高自己的程序设计能力。 第六步、研究课程设计源成序,提高C语言的综合应用能力
执行的,你怎么回灵活运用这些知识去解决实际问题呢? 解决问题的方法是要先理解 C 语言各种语句的流程(即计算机是如何执行这些语句的过程), 然后研读现成 C 语言经典程序,看懂别人事如何解决问题的,以提高自己的程序设计能力。 在软件中有 50 多个典型的源程序,研究它的实现方法,提高自己的程序设计能力。 第六步、研究课程设计源成序,提高 C 语言的综合应用能力