1、1,C语言程序设计 教学做一体化 主编 滕泓虬中国水利水电出版社,2,模块一 初识C语言,通过学习C语言,既可以用来编写应用软件和系统软件,又可以培养计算机编程基本思想、编程基本技能及逻辑思维能力。,3,1.1 简单的C程序,学习目标1、了解C语言程序的结构特点 2、掌握库函数的调用方法,4,案例1-1 在计算机屏幕上输出“Hello,my C world!” 案例程序 main() /*主函数*/ printf(“Hello, my C world!n”) ; /*输出要显示的内容*/ 运行这个程序,在屏幕上显示一行英文: Hello,my C world !,由案例开始,5,1、这是一个最
2、简单的C程序,学习C语言就由此开始吧! 2、C程序是由函数组成的,函数就是相对独立的可以完成特定功能的程序段。本程序就是由一个称为main的函数构成的。其中main是函数的名字,函数名后都要有一对圆括号,用来写函数参数的,本程序的main函数没有参数所以不写,但圆括号不能省略。 3、一个完整的程序必须有一个main函数,称为主函数,程序总是从main函数开始执行的,也就是说,main函数是程序的入口。,案例分析,6,4、main()后面花括号内的部分称为函数体。本程序中的函数体只由一个语句组成。一般情况下函数体由“说明部分”和“执行部分”组成。说明部分的作用是定义数据类型;执行部分给出操作命令
3、。本实例只有执行部分而没有说明部分。 5、C程序的每一条基本语句都以“;”结束。 6、可以用/ * . * / 对C程序的任何部分作注释,用来解释该条语句或该段程序的含义或作用,只是为了帮助程序阅读者更好地理解程序中有关部分内容而写的。,7,7、printf是C的库函数中的一个函数,它的作用是在显示屏上输出指定的内容,此例输出“Hello,my C world!”字符串。printf(“Hello,my C world!n”)括号中的内容就是调用printf库函数时的参数,通俗地讲就是“通知”printf要显示的内容。参数中的“n”是C语言中的格式控制符,作用是:在输出“Hello,my C
4、world!”之后执行一个回车换行操作,如果以后还有输出的话,将从下一行的左端开始输出。,8,随堂练习,编写一个C程序,输出以下信息: * Turboc 2.0 *,9,案例1-2,求从键盘输入的任意两个整数相加的和并将结果显示出来。,10,#include main() int a, b, sum; /*定义三个整型变量*/printf(“Input one number: ”); /*调用printf库函数输出信息在屏幕上*/scanf(“%d”, /*输出sum(和)的值在屏幕上*/ ,案例程序,11,程序运行结果如下:Input one number:5 Input the other
5、 number:10sum=15,12,1、首先应该考虑程序中要用到的数据的个数,显然本例中要用到三个数,即加数、被加数、和,所以先定义三个变量。语句 int a, b, sum; 的作用就是定义三个变量,名字分别为a, b, sum, 类型都是整型。int 表示整型,是C语言的关键字(见知识链接)。当程序运行的时候,系统将根据定义在内存中为这三个变量分配存储单元。输入的数就存放在这三个单元中。可以这样说,变量的作用就是用来保存和标识数据,访问数据就可以通过变量名来访问。,案例分析,13,2、库函数调用scanf(“%d”,表示将a和b两个变量单元中的内容相加,并将结果存放在sum所对应的存储
6、单元中。,14,4、库函数调用printf(“sum=%dn”, sum); 用于输出结果到屏幕上。注意第一个“sum”,包括“=”,都表示字符串常量的一部分,应该按原样输出,即在屏幕上显示 sum= 。“%d”用来限制输出的格式是整型,括号右端的sum是要输出的变量名字,执行该函数时,就是把sum变量的值按照整型格式输出在%d的位置,如图1-2。所以最后输出:sum=15。%d称为格式控制符,也可以称为占位符。,15,5、#include语句是编译预处理语句,其作用是将有双引号或尖括号括起来的文件内容代替这行#include命令,也就是使该文件的内容被整个地调到main函数的前面。“.h”是
7、“头文件”的后缀,输入输出函数一般需要使用#inlcude语句将包含输入输出函数说明信息的头文件“stdio.h”包含到源文件中。,16,编程由键盘输入长方形的长和宽,求长方形的面积。,随堂练习,17,求一个数的绝对值并输出。,案例1-3,18,#include main() float num, n; /*定义两个实数类型的变量*/scanf(“%f ”, /*输出所求的绝对值*/ ,案例程序,19,运行程序:-1.51.5,20,1、float num,n; 表示定义变量num和n为实数类型(浮点型),“float”表示实型,是C语言数据类型关键字。 2、“%f”是格式控制符,控制输入输出
8、的数据是实型。 3、abs是C系统的库函数,在调用数学库函数时,要用到一些系统提供的说明信息,这些信息包含在math.h头文件中,所以在程序的开始要用预处理命令#include包含进来。,案例分析,21,编程调用库函数,计算一个数的正弦值。,随堂练习,22,1、C语言的关键字 关键字是C语言已经定义的、具有特殊功能和含义的单词、单词缩写或者单词组合。表1-1列举了3 2个关键字,它们与标准C句法结合,形成了程序设计语言C。,知识链接,23,24,2、C语言的库函数 C语言提供了丰富的库函数,每个函数实现一定的功能。C语言本身语句很少,许多功能都是通过库函数完成的。例如,前面用到的输入输出的功能
9、和求绝对值的功能都是通过调用库函数实现的。 3、ASCII字符集 在计算机中,所有的信息都用二进制表示。其中应用最为广泛的编码方式就是ASCII码。使用的字符在计算机中就是以ASCII码方式存储的。ASCII码是美国标准信息交换码(American Standard Code for Information Interchange),已被国际标准化组织认定为国际标准,详见附录。,25,26,学习目标 1、掌握C程序的编译运行过程 2、掌握C程序的错误查找方法,1.2 C程序的上机过程,27,案例1-4,一个简单的C程序的运行过程。,28,案例分析,1、把Turboc2.0文件夹放在电脑C盘下面
10、。 2、打开文件夹内的TC可运行文件,进入Turboc2.0,以下简称Turboc。 3、按【Alt+F】快捷键打开【File】(文件)菜单,用键盘上的【】和【】选择【New】菜单项,进入编辑状态,如图所示。在Turboc中,按【Alt】+【对应菜单的首字母】即可打开相应的菜单。另外,也可按【F10】功能键选中相应的菜单。,29,30,4、编辑 在编辑区域输入以下代码: #include”stdio.h” main() printf(“No pains, no gains!”); 还可以事先将源代码写在记事本中,将其保存为.c文件,然后打开Turboc的【File】菜单中的【Load】菜单项或
11、按【F3】键,在Turboc中打开该源文件,这时在Turboc中就出现了在记事本中输入的C代码,接着编译、连接和运行它即可。,31,5、保存 输入程序后对程序进行认真检查,并改正已发现的错误。这时已及时将程序保存起来。选择【File】菜单下的菜单项【Save】或者直接按快捷键【F2】,在弹出的对话框中出现文件的默认路径和默认文件名,这时可以修改路径和文件名,如图1-4所示。这里把把路径改为D盘ZHANGSAN(张三)文件夹下,文件名为CH1_1.C,表示第一章第一个C程序。,32,33,6、编译 编辑好的C代码,计算机是不能识别的。这是因为计算机只能识别称为机器语言的二进制命令,所以要想执行这
12、段代码,就必须将源代码转换成机器语言。也就是要做第二步编译源代码,将源代码作为输入,并生成一个磁盘文件,该文件包含了与源代码语句对应的机器语言指令,该指令即为目标代码,而包含它们的磁盘文件称为目标文件。 在Turboc中,编译源代码,按【Alt+C】快捷键打开【Compile】菜单,选择【Compile】菜单下的【Compile to OBJ】菜单项,或直接按【Alt+F9】快捷键,编译程序后,出现编译信息提示窗口,如图1-5所示。它表示有一个错误,没有警告。,34,35,按任意键信息窗口(Message)被激活,在出现第一个错误信息提示处以白色高亮度显示,同时,编辑窗口中相应的错误语句所在行
13、也以白色高亮度显示,如图1-6所示。按回车键【Enter】可切换到编辑窗口出现错误的语句行,同时对应的错误提示信息以红色亮条在编辑区上部显示。有时候程序可能只有一处错误,但会显示多条错误信息。所以一般修改一处错误后,应该再次进行编译。,36,37,在程序没有错误的情况下,便可将当前源代码编译成目标代码。在当前工作目录下产生一个扩展名为“.obj”的目标程序文件。本例产生的文件名为“CH1_1.obj”。,38,当查找错误时,可以使用【F6】键在编辑窗口和消息窗口之间进行切换。 错误有时会出现在错误语句行前面的某条语句处,在图1-5中,错误原因是第一行main()后不应有分号“;”,而出错信息提
14、示却在第二行上。 这个程序刚好与刚才提到的情况相反,它实际上有两处错误,但只提示有一处错误,在这种情况下,改正一处错误后,再次编译后,还会再提示第二处错误。本例的第二处错误是第三行语句应该加分号作为语句结束。,提示,39,7、连接 有了目标文件后,程序还不能直接运行,还必须将目标文件与系统提供的库函数和包含文件(“#include”命令所包含的文件)等连接成一个可执行文件,即扩展名为“.exe”的文件,这时才形成最后的可运行文件。 选择【Compile】菜单下的【Link EXE file】菜单项,在当前工作目录中生成一个可执行文件。本例生成可执行文件“CH1_1.exe”。,40,可以一次完
15、成编译和连接,选择【Compile】菜单下的【Make EXE file】菜单项,或者按【F9】快捷键,在当前工作目录中生成一个目标文件(*.obj)和一个可执行文件(*.exe)。另外,可以指定生成的目标文件和可执行文件到指定的输出目录。本例就可以重新设定输出目录为“D:ZHANGSAN”。按【Alt+O】快捷键打开【Options】菜单,选择【Options】菜单下的【Directories】菜单项,在弹出对话框中选中【Output directory】选项,然后设定输出目录(Output directory)为“D:ZHANGSAN”如图所示。,提示,41,42,最后在相应目录下,可以查
16、看本实例的源文件、目标文件和可执行文件如图所示。,43,8、运行 在TC集成环境下,按【Alt+R】快捷键打开【Run】菜单,选择【Run】菜单下【Run】菜单项,或者直接按【Ctrl+F9】快捷键,则可执行文件即开始运行。,44,【Ctrl+F9】快捷键的作用不仅是运行程序,而且包含编译、连接和运行,也就是说,如果编辑好源程序后,经检查认为没有问题,通过按【Ctrl+F9】快捷键,则可以一次完成从编译、连接到运行的全过程。,提示,45,9、观察运行结果 选择【Run】菜单下的【User screen】菜单项,即可打开用户屏幕观看结果。也可以使用快捷键【Alt+F5】查看运行结果。本例运行结果
17、如图所示。,46,47,运行过程的常用快捷键是: 1、F9:进行编译和连接。 2、Ctrl+F9:运行。 3、Alt+F5:观看运行结果。,提示,48,按照上机过程运行一个简单的C程序。,随堂练习,49,C语言采用编译方式将源文件转换为二进制的目标代码。从编写到运行一个C程序一般经过以下几个步骤: 1、编辑 内容包括:将源程序逐个字符输入到计算机内存;修改源程序;保存源程序到磁盘文件中。源程序是以ASCII代码的形式输入和存储的,不能被计算机执行。 2、编译 编译就是将编辑好的源程序翻译成二进制的目标代码。在编译时,对源程序进行语法检查,如有错,则在屏幕上显示出错信息。,知识链接,50,3、连
18、接 将目标文件与系统提供的库函数和包含文件(“#include”命令所包含的文件)等连接成一个可执行文件,该文件可由计算机直接执行。 4、执行 可执行文件连接好后,就可以运行它了。需要指出的是,经过成功编译和连接的可执行文件不一定能正确运行,或者运行所得的结果与期望的不符,出现这种情况,则需返回从头开始检查,找出导致错误的原因。,51,从编写到运行一个C程序的全过程如图所示:,52,课后练习,1、一个C程序的执行是从( )。 A)本程序的main函数开始,到main函数结束。 B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束。 C)本程序的main函数开始,到本程序文件的最后一个
19、函数结束。 D)本程序文件的第一个函数开始,到本程序main函数结束。,选择题,53,2、以下叙述不正确的是( )。 A)一个C源程序可由一个或多个函数组成。 B)一个C源程序必须包含一个main函数。 C) 在C程序中,注释说明只能位于一条语句的后面。 D) C程序的基本组成单位是函数。 3、C语言规定:在一个源程序中,main函数的位置( )。 A)必须在程序的开头。 B)必须在系统调用的库函数的后面。 C)可以在程序的任意位置。 D)必须在程序的最后。,54,4、一个C语言程序是由( )。 A)一个主程序和若干子程序组成。 B)函数组成。 C)若干过程组成。 D)若干子程序组成。,55,
20、分析下面程序的运行结果 main() int a,b,df; a=200; b=50; df=a-b; printf(“df=%dn”,df); ,程序分析,56,1、为一个学生管理信息系统设计一个界面,显示下列菜单: Menu =1. Input names and scores2. Search scores of students3. Modify scores of some students4. List all information5. Quit =Please input your choice(1-5): 2、编程求三个数的和。 3、编程求两个数中较大的数。 4、由键盘输入一个长方体的长宽高,求长方体的体积。,动手编程,57,本章小结,1如何学C语言2. 动手最重要,58,作业,