,C语言程序设计,
课程讲义
湖北省荆州职业技术学院信息技术系
2006年 4月
1.怎样用结构化程序设计的方法编写程序 。
一、本课程的目的
引言
2.学会用正确的方法设计程序。
2.掌握基本语法规则、编写程序上机运行
二、本课程的教与学
1,精讲多练、考教分离、机考笔考结合
3.掌握程序设计的思想
第 1章 C语言概述
教学目标
? 介绍 C语言程序的基本结构
? 介绍 C语言的字符集
? 介绍在计算机上输入、编译、调试
和运行 C程序的基本方法和步骤。
1.1 C语言的发展过程
1.2 C语言的版本
1.3 C语言的特点
1.4 简单的 C程序介绍
1.6 输入和输出函数
1.5 C语言程序的结构特点
1.7 Turbo C 2.0集成开发环境的使用
本章主要内容
1.1 C语言的发展过程
C语言是在 70 年代初问世的。一九七八年由
美国电话电报公司 (AT&T)贝尔实验室正式发表了
C语言。同时由 B.W.Kernighan和 D.M.Ritchit合
著了著名的,THE C PROGRAMMING
LANGUAGE”一书。通常简称为, K&R》,也有
人称之为, K&R,标准。但是,在, K&R,中并
没有定义一个完整的标准 C 语言,后来由美国国
家标准协会( American National Standards
Institute)在此基础上制定了一个 C 语言标准,
于一九八三年发表。通常称之为 ANSI C。
1.2 C语言的版本
目前最流行的C语言有以下几种,
·Microsoft C 或称 MS C
·Borland Turbo C 或称 Turbo C
·AT&T C
这些C语言版本不仅实现了 ANSI C标准,而且在此基础上各
自作了一些扩充,使之更加方便、完美。
1.3 C语言的特点
1· C语言简洁、紧凑,使用方便、灵活。一共只有 32个关键字
2· 运算符丰富。共有 34种。 C把括号、赋值、逗号等都作为
运算符处理。从而使 C的运算类型极为丰富,可以实现其他
高级语言难以实现的运算。
3· 数据结构类型丰富。
4· 具有结构化的控制语句。
5· 语法限制不太严格,程序设计自由度大。
6,生成目标代码质量高,程序执行效率高。
7,与汇编语言相比,用 C语言写的程序可移植性好
1.4 C语言的字符集
字符是组成语言的最基本的元素。C语言字符集由字母,数
字,空格,标点和特殊字符组成。在字符常量,字符串常量
和注释中还可以使用汉字或其它可表示的图形符号。
8,C语言允许直接访问物理地址,能进行位( bit)操作,能
实现汇编语言的大部分功能,可以直接对硬件进行操作。因
此有人把它称为中级语言。
1.3 C语言的特点
3.空白符
空格符、制表符、换行符等统称为空白符。空白符只
在字符常量和字符串常量中起作用。在其它地方出现时,只起
间隔作用,编译程序对它们忽略不计。因此在程序中使用空白
符与否,对程序的编译不发生影响,但在程序中适当的地方使
用空白符将增加程序的清晰性和可读性。
1.4 C语言的字符集
1.字母
小写字母 a~ z共 26个
大写字母 A~ Z共 26个
2.数字
0~ 9共 10个
4.标点和特殊字符
在使用标识符时还必须注意以下几点,
(1)标准 C不限制标识符的长度,但它受各种版本的 C 语言编译系统限制,
同时也受到具体机器的限制。例如在某版本 C 中规定标识符前八位有效,
当两个标识符前八位相同时,则被认为是同一个标识符。
(2)在标识符中,大小写是有区别的。例如 BOOK和 book 是两个不同的
标识符。
(3)标识符命名应尽量有相应的意义,以便于阅读理解,作到“见名知
意”。
1.5 C语言词汇
在C语言中使用的词汇分为六类:标识符,关键字,运算符,
分隔符,常量,注释符等。
1.标识符
在程序中使用的变量名、函数名、标号等统称为标识符。
除库函数的函数名由系统定义外,其余都由用户自定义。 C 规
定,标识符只能是字母 (A~ Z,a~ z)、数字 (0~ 9)、下划线 (_)
组成的字符串,并且其第一个字符必须是字母或下划线。
2.关键字
关键字是由C语言规定的具有特定意义的字符串,通常也
称为保留字。用户定义的标识符不应与关键字相同。C语
言的关键字分为以下几类,
(1)类型说明符
用于定义、说明变量、函数或其它数据结构的类型。如
前面例题中用到的 int,double等
(2)语句定义符
用于表示一个语句的功能。如例 1.3中用到的 if else就是
条件语句的语句定义符。
(3)预处理命令字
用于表示一个预处理命令。如前面各例中用到的 include。
3.运算符
C语言中含有相当丰富的运算符。运算符与变量,函数
一起组成表达式,表示各种运算功能。运算符由一个或多
个字符组成。
auto break case char const continue default
do double else enum extern float for
goto if int long register return short
static signed sizof struct switch typedef union
void
unsigned
volatile while
C语言的关键字
1.5 C语言词汇
5.常量
C 语言中使用的常量可分为数字常量、字符常量、字符串
常量、符号常量、转义字符等多种。在后面章节中将专门给
予介绍。
4.分隔符
在C语言中采用的分隔符有逗号和空格两种。逗号主要用
在类型说明和函数参数表中,分隔各个变量。空格多用于语
句各单词之间,作间隔符。在关键字,标识符之间必须要有
一个以上的空格符作间隔,否则将会出现语法错误,
6.注释符
C 语言的注释符是以,/*”开头并以,*/”结尾的串。在,/*”
和,*/”之间的即为注释。程序编译时,不对注释作任何处理。
注释可出现在程序中的任何位置。注释用来向用户提示或解
释程序的意义。在调试程序中对暂不使用的语句也可用注释
符括起来,使翻译跳过不作处理,待调试结束后再去掉注释
符。
1.6 简单的 C程序介绍
【 例 1.1】
main()
{
printf("世界,您好! \n");
}
main是主函数的函数名,表示
这是一个主函数每一个 C源程序
都必须有,且只能有一个主函数
(main函数 )
函数调用语句,printf函数的功能
是把要输出的内容送到显示器去
显示, printf函数是一个由系统
定义的标准函数,可在程序中直
接调用
Main()函数的函数体,每一
个函数都有一个函数体
【 例 1.2】
#include<math.h>
#include<stdio.h>
main()
{
double x,s;
printf("input number:\n");
scanf("%lf",&x);
s=sin(x);
printf("sine of %lf is %lf\n",x,s);
}
include称为文件包含命
令,扩展名为,h的文件称
为头文件
这两行称为预处理命令行。预处理命令还有其它几种,
其意义是把尖括号 <>或引号 ""内指定的文件包含到
本程序来,成为本程序的一部分。
函数体的声明语句,C语
言规定,源程序中所有用
到的变量都必须先声明,
后使用
数据类型说明符,
在这声明了两个双
精度的实型变量 X
和 S
键盘输入语句,表示从键盘上
输入一个数据后,放到 X单元
的存储地址中,也就是 X用于
接收从键盘上输入的数据
赋值语句,其作用是:
调用 sin函数并把函数
值送到变量 s中
函数的执行部分,一个 C函
数是由声明部分和执行部分
所构成
2,/*…………….*/ 为注释部分。
4,{}是程序段的括号
3,;是语句的结束符
6,函数的执行一定从 main ( )开始。
7,程序中用到的变量都要事先定义 。
C的程序结构综述
1,#include <stdio.h>,预处理命令,其作用是提供
标准输入输出函数。
5,C程序 有且仅有 一个主函数 main ( )。
【 例 1.3】
int max(int a,int b); /*函数说明 */
main() /*主函数 */
{
int x,y,z; /*变量说明 */
int max(int a,int b); /*函数说明 */
printf("input two numbers:\n");
scanf("%d%d",&x,&y); /*输入 x,y值 */
z=max(x,y); /*调用 max函数 */
printf("maxmum=%d",z); /*输出 */
}
int max(int a,int b) /*定义 max函数 */
{
if(a>b)return a;else return b; /*把结果返回主调函数 */
}
1.7 输入和输出函数
1.8 Turbo C 2.0集成开发环境的使用
主菜单 在 Turbo C 2.0主屏幕顶上一行,显
示下列内容,File Edit Run Compile
Project Options Debug Break/watch
除 Edit外,其它各项均有子菜单,只要用 Alt
加上某项中第一个字母,就可进入该项的
子菜单中。
中间窗口为 编辑区,
用于源程序的编辑
信息窗 口,用
于显示执行编
译之后,系统
给出相关的错
误提示信息
参考行,
给出各功
能键所对
应的操作
8.1 File菜单
Load,装入一个文件,可用类似 DOS的通配符 (如 *.C)来进行列
表选择。也可装入其它扩展名的文件,只要给出文件名 (或只
给路径 )即可。该项的快捷键为 F3。
Pick,将最近装入编辑窗口的 8个文件列成一个表让用户选
择,选择后将该程序装入编辑区。其快捷健为 Alt-F3。
New,新建文件,缺省文件名为 NONAME.C,存盘时可改名。
Save,将编辑区中的文件存盘,若文件名是 NONAME.C时,将
询问是否更改文件名,其快捷键为 F2。
Write to,更名寸盘命令,若该文件已存在,则询问要不要 覆盖。
Directory,显示目录及目录中的文件,并可由用户选择。
Change dir,显示当前默认目录,用户可以改变默认目录 。
Os shell,暂时退出 Turbo C 2.0到 DOS提示符下,此时可以
运行 DOS 命令,若想回到 Turbo C 2.0中,只要在 DOS状态
下键入 EXIT即可。
Quit,退出命令,返回到 DOS操作系统中,其快捷键为 Alt+X。
8.2 Edit菜单
与编辑有关的功能键如下
F1 获得 Turbo C 2.0编辑命令的帮助信息;
F5 扩大编辑窗口到整个屏幕;
F6 在编辑窗口与信息窗口之间进行切换;
F10 从编辑窗口转到主菜单。
常用编辑命令简介,
PageUp 向前翻页
PageDn 向后翻页
Home 将光标移到所在行的开始
End 将光标移到所在行的结尾
Ctrl+Y 删除光标所在的一行
Ctrl+T 删除光标所在处的一个词
Ctrl+KR 读文件
Ctrl+KW 存文件
8.3 Run菜单
Run:运行由 Project/Project name项
指定的文件名或当前编辑区的文件。
如果对上次编译后的源代码未做过修
改,则直接运行到下一个断点 (没有断
点则运行到结束 )。否则先进行编译、
连接后才运行,其热键为 Ctrl+F9
Program reset:中止当前的
调试,释放分给程序的空间,
其热键为 Ctrl+F2
Go to cursor:,调试程序时使用,选
择该项可使程序运行到光标所在行。
光标所在行必须为一条可执行语句,
否则提示错误。其热键为 F4
Trace into:在执行一条调用其它用
户定义的子函数时,若用 Trace into项,
则执行长条将跟踪到该子函数内部去
执行,其热键为 F7
Step over:执行当
前函数的下一条语
句,即使用户函数调
用,执行长条也不会
跟踪进函数 内部,其
热键为 F8
User screen:显
示程序运行时在屏
幕上显示的结果。
其热键为 Alt+F5
8.4 Compile菜单
Compile to OBJ:将一个
C源文件编译生成,OBJ目
标文件,同时显示生成的
文件名。其热键为 Alt+F9
Make EXE file:此命令生成一个,EXE的
文件,并显示生成的,EXE文件名。
Link EXE file:把当前,OBJ文
件及库文件连接在一起生
成,EXE文件
Build all:重新编译项目里
的所有文件,并进行装配生
成,EXE文件
Get info:获得有
关当前路径、源文
件名、源文件字节
大小、编译中的错
误数目、可用空间
等信息,
8.5 Project菜单
Project name:项目名具有,PRJ
的扩展名,其中包括将要编译、连
接的文件名
Break make on:由用户选择是
否在有 Warining,Errors、
Fatal Errors时或 Link之前退出
Make编译
Auto dependencies:
当开关置为 on,编译时
将检查源文件与对应
的,OBJ文件日期和时
间,否则不进 行检查
Clear project:清除
Project/Project name中的
项目文件名
8.6 Options菜单
1,Compiler,本项选择又有许多子菜单,可以让用户选择硬
件配置、存储模型、调试技术,代码优化、对话信息控制和
宏定义。
2,Linker,本菜单设置有关连接的选择项,它有以下内容
⑴, Map file menu 选择是否产生,MAP文件。
⑵, Initialize segments 是否在连接时初始化没有初始化的
段。
⑶, Devault libraries 是否在连接其它编译程序产生的目标
文件时去寻找其缺省库。
⑷, Graphics library 是否连接 graphics库中的函数。
⑸, Warn duplicate symbols 当有重复符号时产生警告信
息。
⑹, Stack warinig 是否让连接程序产生 No stack的警告信
息。
⑺, Case-sensitive link 是否区分大、小写字。
3,Environment,菜单规定是否对某些文件
自动存盘及制表键和屏幕大小的设置
? Message tracking,
?Current file 跟踪在编辑窗口中的文件错误。
?All files跟踪所有文件错误。
?Off 不跟踪。
Keep message, 编译前是否清除 Message窗口中的信息。
Config auto save,选 on时,在 Run,Shell或退出集成开发环境
之前,如果 Turbo C 2.0的配置被改过,则所做的改动将存入配
置文件中。选 off时不存。
Edit auto save,是否在 Run或 Shell之前,自动存储编辑的源文
件。
Backup file,是否在源文件存盘时产生后备文件 (.BAK文件 )。
Tab size,设置制表键大小,默认为 8。
Zoomed windows,将现行活动窗口放大到整个屏幕,其热键
为 F5。
Screen size设置屏幕文本大小。
4.Directories:规定编译、连接所需文件的路径,
有下列各项,如图所示,
Include directories:包含文
件的路径,多个子目录用 ";"
分开 。
Library directories:
库文件路径,多个子目
录用 ";"分开。
Output directoried:
输出文件
(.OBJ,.EXE,.MAP文
件 )的目录
Turbo C directoried:
Turbo C 所在的目录 Pick file name:定义加载的pick文件名,如不定义则从
currentpick file中取
按 Alt+D可选择 Debug菜
单,该菜单主要用于查错
Evaluate
Expression要计算结果的表达式。
Result显示表达式的计算结果。
New value赋给新值。
Find function在运行
Turbo C debugger时
用于显示规定的函数
Refresh display如果
编辑窗口偶然被用户窗
口重写了可用此恢复编
辑窗口的内容
Call stack:该项不可接触。
而在 Turbo C debuger 时
用于检查堆栈情况
8.7 Debug菜单
本章主要掌握以下这些知识要点。
1,C语言源程序的基本框架与书写要求。这一部分内容要深
刻理解和熟练掌握,特别是三大区域的相对顺序,对于掌
握 C语言程序的基本结构非常有用。
2、了解 C语言的结构特点以及输入输出函数的使用方法
3、熟悉 C语言程序的编译环境以及该环境下的各项菜单功能,
能正确的设置操作环境,并掌握调试程序的一般方法。
4,C语言可以使用的字符。一定要掌握 C语言可以使用哪些
字符,不能使用哪些字符,如何构成标识符 (即标识符号的
构造方法 ),这几乎是每次考试的必考内容;
4、了解什么是程序。
本章小结
课堂同步,做做与练练
【 练 1.1】
试题分析
选择正确的选项,
一个 c语言程序总是从 _______位置开始执行的。
A)程序开头 B)第一个函数
C)主函数 D)第一条语句。
本题考核了主函数的作用:总是从它开始运行。
正确答案是 C。
课堂同步,做做与练练
【 练 1.2】
试题分析
选择正确的选项,
以下叙述中不正确的选项是,
A)无论注释内容的多少,在对程序编译时都被忽略。
B)注释语句只能位于某一语句的后面。
C)注释语句必须用 /*和 */括起来。
D)在注释符“/”和,*”之间不能有空格
本题考核了注释语句的用法。答案是 B。
课堂同步,做做与练练
【 练 5.1】
试题分析
选择正确的选项,
C语言程序的基本单位是 ( )
A.语句 B,程序行
C,函数 D,字符
C语言程序是由函数构成的。一个 C源程序至少包含
一个主函数,故函数是 C程序的基本单位。