C语言程序设计
教师, 张颖
e-mail,b_yh@hotmail.com
?讲义下载,
ftp://172.22.18.25 / teacher/张颖 /课件 /C程序课件
第 1章 C语言概述
本章主要介绍 C语言程序的结构和书写规则,
以及 Turbo C V2.0的基本操作。
1.1 C语言出现的历史背景
1.2 C语言的特点
1.3 简单的 C程序的介绍
1.4 C程序的上机步骤
1.1 C语言出现的历史背景
1.C语言的诞生与发展
( 1)在 C语言诞生以前,系统软件主要是用汇编语言
编写的。由于汇编语言程序依赖于计算机硬件,其可读
性和可移植性都很差;但一般的高级语言又难以实现对
计算机硬件的直接操作(这正是汇编语言的优势),于
是人们盼望有一种兼有汇编语言和高级语言特性的新语
言。
( 2)C语言是贝尔实验室于 70年代初研制出来的,
后来又被多次改进,并出现了多种版本。 80年代初,美
国国家标准化协会( ANSI),根据C语言问世以来各种
版本对C语言的发展和扩充,制定了 ANSI C标准( 1989
年再次做了修订)。
( 本书选定的上机环境是 TC V2.0( DOS操作系
统 ) 。
1.2 C语言的特点
C语言同时具有汇编语言和高级语言的优势 。
( 1) 语言简洁, 紧凑, 使用方便, 灵活 。
( 2) 运算符极其丰富 。
( 3) 生成的目标代码质量高, 程序执行效率高 。
( 4) 可移植性好 ( 较之汇编语言 ) 。
( 5) 可以直接操纵硬件 。
(6) 在 C语言中, 除实现 顺序, 选择 和 循环
三种基本结构等的 9条控制语句外, 输入输出操
作均由标准库函数来实现 。
所以 学习 C语言, 不仅要学习这 9条控制语
句和各种运算符, 而且要学习并掌握常用标准
库函数的使用 。
例 1:
main()
{;
}
1.3 简单的 C程序介绍
1.main代表主函数,每个 c程
序有且只有一个主函数,
2.函数体是由 { }括起来的,
3.C语言规定分号为语句的
结束符,每条语句都用分号
结束,
4.对于单独一个分号来说也
是一条语句,只不过语句部
分为空,即空语句,所以例 1
是包括空语句的 C程序,
1,printf是 C语言中的输出函数,功能,将双引号内的字符串原样
输出,我们注意这条语句结束后有一个分号,
2,\n在 C语言中表示换行符,是一个控制字符,表示在输出这条语
句后回车换行,
3,/* */间的内容作为注释部分,只起到说明的作用,不影响程序
的运行,它只是给人看的,可以提高程序的可读性,对编译和
运行不起作用,因此注释可以加在程序中的任何位置,
4,运行结果, It’s a book!
(在用户屏上输出该语句,并且因为有 \n这个换行符,光标会移
到下一行开头处,)
例 2,main()
{ printf (“It’s a book! \n” ) ; /*输出语句 */
}
1,int表示整型,这一行是声明部分,
定义变量 a,b,sum为整型变量,
这条语句相当于 int a; int b;
int sum;
2,两个赋值语句 (把 123赋值给 a,把
456赋值给 b)这样 a就等于
123,b就等于 456.
例 3,main()
{ int a,b,sum;
a=123; b=456;
sum=a+b;
printf(“sum is %d \n”,sum);
} 3,赋值计算 (把 a和 b的和赋值给 sum)这样 sum就等于 a,b
之和了,(sum=123+456=579).
4,%d是输入输出“格式字符串”,用来指定数据的类型,%d表示
以十进制整数类型输出,在执行输出时,此位置上代以一个十进制
整数数值,(其他的格式字符串,%c,%s,%f…).
5,第一个 sum原样输出,第二个 sum表示要输出的变量,它的值就
是 a+b的值 (579),而且这个值就会替代 %d的位置,
6.执行结果, sum is 579
例 4 求两数中的大者。
main( ) /* 主函数 */
{ int a,b,c; /* 定义变量 */
scanf(″%d,%d″,&a,&b);
c=max(a,b); /* 调用函数 */
printf(″max=%d\n″,c);
}
int max(int x,int y)
{ int z; /* 定义局部变量 */
if (x>y) z=x;
else z=y;
return(z);
}
1.本程序包括两个函数,主
函数 main和被调用函数
max,max函数的作用是将 x
和 y中较大者赋值给变量 z.
2,C程序执行是从 main函
数中的第一条语句逐条执
行的,
3.,scanf”是输入函数,和
printf是一对,它们是 C系统
提供的标准输入输出函数,
这两个 %d和前面含义相同,
‘ &’表示取地址,scanf函
数的作用是将键盘输入的
值存放到变量 a,b所对应的
存储单元中,也就是输入给
变量 a,b.
4,return是将 z的值返回
给主函数 main.返回值
通过函数名 max带回到
函数的调用处,经过执
行 max函数得到一个返
回值 (即 max函数中变量
z的值 )把这个值赋给 c,
然后输出 c的值,
5,程序运行情况如下,
8,5 (通过键盘输
入 8和 5给 a和 b)
max=8 (输出 c的值
即 a和 b的最大值 )
例 4 求两数中的大者。
main( ) /* 主函数 */
{ int a,b,c; /* 定义变量 */
scanf(″%d,%d″,&a,&b);
c=max(a,b); /* 调用函数 */
printf(″max=%d\n″,c);
}
int max(int x,int y)
{ int z; /* 定义局部变量 */
if (x>y) z=x;
else z=y;
return(z);
}
例 6,/*给定半径,求圆的面积 */
#define PI 3.14159
#include <math.h>
main( ) /*主函数 */
{
float r,s;
r =1.0; /*变量 r赋初值 */
s=PI * pow(r,2); /*计算圆面积 s*/
printf (“R=%f, S=%f \n”,r,s);
}
1.编译预处理,程序执行前自
动进行的特殊处理,特点,以 #
开头,结束处无分号,
2,#define ---
宏定义命令,P39
P187
PI --- 符号常量
(宏名最好用大写
区别一般变量 )
3.14159 --- 宏体
宏定义作用,用简
单符号代表宏体部
分内容 (编译时自
动替换 )
5,pow(x,y)求 x的 y次方,是 math.h中的标准数学
函数,
6,%f表示以小数形式输出,是, 格式字符串,
7,运行结果, R=1.0,S=3.141590
3,#include命令用
来实现“文件包含”
的操作
.“math.h”或
<math.h>是“头
文件”标准前导文
件,
4,float表示实型,
定义变量 r,s为实型
变量,
例 6,/*给定半径,求圆的面积 */
#define PI 3.14159
#include <math.h>
main( ) /*主函数 */
{
float r,s;
r =1.0; /*变量 r赋初值 */
s=PI * pow(r,2); /*计算圆面积 s*/
printf (“R=%f, S=%f \n”,r,s);
}
? 总结,
一,一个 c程序的组成,
编译预处理部分 (可选 )
main(){
说明部分 /*变量定义等 */
执行部分 /*输入输出计算等 */
}
其他函数 (可选,位置任意 )
二,C语言程序的基本特点
? C语言是一种函数式语言,其程序基本组成 (单位 )是函数
? 每个 C程序必须有一个、也只能有一个主函数 main
? 不管主函数在程序中的位置如何,程序执行总是从主函数开
始
? 所有变量必须先定义(规定数据类型)后使用
? 每个语句必须用分号, ;” 结束(注意是, 每个语句, 而不
,每行语句, )
? 编译预处理命令不是语句(行末不能用分号结束)
? C语言本身没有输入 /输出语句,其输入 /输出功能须通过调
用标准函数来实现
? 使用系统提供的标准库函数或其他文件提供的现成函数时,
必须使用, 文件包含, (除了 printf和 scanf语句)
? 主函数可以调用其他各种函数,但其他函数不能调用主函数,
1.4 C语言程序上机步骤 P7
C语言是一种通过编译程序处理的高级程序设计语言。
所以其上机的处理流程可用以下示意图表示:
在微机上,通常用来编写、编译、连接、调试和执行 C
语言程序的是 Borland公司开发的集成化软件 Turbo C。
源程序 (.c)———目标程序(,obj) ———可执行程序 (.exe)
编译 连接
一,具体上机步骤如下:
? 启动机器,稍候后出现:
login (入网注册命令 )
Enter your login name:user01 (输入用户名 )
password,***** (输入用户密码 )
…… ( 显示网络有关信息 )
C> tc (调用 Turbo C软件 )
此时便出现 Turbo C初始屏幕 (第 8页图 1.2所示) 。
用户名,计教 021班 5号 jj02105 ( 初始密码,jj021)
计应 022班 11号 jy02211 ( 初始密码,jy022)
密码修改:
setpass——输入原密码 ——输入新密码 ——再输入新密码
退出,先退出 tc,再输入 logout退出网络,
二,TC的菜单 (通过 F10键和 Esc键切换 ):
File Edit Run Compile Project Options Debug Break/Watch
文
件
操
作
编
辑
编
译运行 项目
文
件
选
项
调
试
中
断\
观
察
1.File,Load(打开已有的 C程序文件 ) New(新建 C程序文
件 )
Save(保存,文件名以,c为扩展名,如 abc.c) Quit(退出 TC)
2.编辑源文件,在 Edit(编辑 )状态下输入,
3.编译源文件,选择并执行 Compile / Make EXE File项
(快捷键,F9),则 TC将自动完成对当前正在编辑的源程
序文件的编译、连接,并生成可执行文件。
4.运行与查看结果
( 1) 运行当前正在编辑的源程序文件
选择并执行 Run / Run项 ( 快捷键,Ctrl+F9), 程
序运行结束后, 仍返回到编辑窗口 。
( 2) 查看运行结果
选择并执行 Run / User Screen 项 ( 快 捷键,
Alt+F5) 。 查看完毕后, 按任一键返回编辑窗口 。
5.编辑下一个新的源程序
选择并执行 File / New项即可 。
如果屏幕提示如下确认信息:
NONAME.C not saved,Save?( Y/N)
如果不需要保存当前正在编辑的源程序, 则键入, N”
如果需要保存当前正在编辑的源程序, 则键入, Y”
进入下一步操作 。
系统提示换名:
<F:><path>\NONAME.C
直接输入你给源程序文件起的名字再按回车即可。
6.退出 TC返回 DOS:
File/Quit(快捷键,Alt+X键 )
Turbo C编程常用操作 (按 F1键可获得帮助)
? Turbo C基本操作
Alt+F 建立新文件
Load/Pick 调入现有文件
Save 存盘( F2)
Write to 换名存盘
Ctrl+F9 运行程序(自动完成编译 /连接)
Alt+F5 观看运行结果
? 程序调试常用操作
F5 显示 /关闭观察、出错提示等窗口
F6 编辑窗口( Edit) 和信息窗口( Message) 窗口切换
Alt+B 设置断点 /变量观察 (Break/Watch )
常用,增加观察的变量名 (Add watch )
F8 单步执行
Ctrl+F2 程序重置(重新开始)
? 程序编辑常用操作
Ctrl+KB 设置块头 Ctrl+KK 设置块尾
Ctrl+KC 块复制 Ctrl+KV 块移动
Ctrl+Y 删除一行
BACK
教师, 张颖
e-mail,b_yh@hotmail.com
?讲义下载,
ftp://172.22.18.25 / teacher/张颖 /课件 /C程序课件
第 1章 C语言概述
本章主要介绍 C语言程序的结构和书写规则,
以及 Turbo C V2.0的基本操作。
1.1 C语言出现的历史背景
1.2 C语言的特点
1.3 简单的 C程序的介绍
1.4 C程序的上机步骤
1.1 C语言出现的历史背景
1.C语言的诞生与发展
( 1)在 C语言诞生以前,系统软件主要是用汇编语言
编写的。由于汇编语言程序依赖于计算机硬件,其可读
性和可移植性都很差;但一般的高级语言又难以实现对
计算机硬件的直接操作(这正是汇编语言的优势),于
是人们盼望有一种兼有汇编语言和高级语言特性的新语
言。
( 2)C语言是贝尔实验室于 70年代初研制出来的,
后来又被多次改进,并出现了多种版本。 80年代初,美
国国家标准化协会( ANSI),根据C语言问世以来各种
版本对C语言的发展和扩充,制定了 ANSI C标准( 1989
年再次做了修订)。
( 本书选定的上机环境是 TC V2.0( DOS操作系
统 ) 。
1.2 C语言的特点
C语言同时具有汇编语言和高级语言的优势 。
( 1) 语言简洁, 紧凑, 使用方便, 灵活 。
( 2) 运算符极其丰富 。
( 3) 生成的目标代码质量高, 程序执行效率高 。
( 4) 可移植性好 ( 较之汇编语言 ) 。
( 5) 可以直接操纵硬件 。
(6) 在 C语言中, 除实现 顺序, 选择 和 循环
三种基本结构等的 9条控制语句外, 输入输出操
作均由标准库函数来实现 。
所以 学习 C语言, 不仅要学习这 9条控制语
句和各种运算符, 而且要学习并掌握常用标准
库函数的使用 。
例 1:
main()
{;
}
1.3 简单的 C程序介绍
1.main代表主函数,每个 c程
序有且只有一个主函数,
2.函数体是由 { }括起来的,
3.C语言规定分号为语句的
结束符,每条语句都用分号
结束,
4.对于单独一个分号来说也
是一条语句,只不过语句部
分为空,即空语句,所以例 1
是包括空语句的 C程序,
1,printf是 C语言中的输出函数,功能,将双引号内的字符串原样
输出,我们注意这条语句结束后有一个分号,
2,\n在 C语言中表示换行符,是一个控制字符,表示在输出这条语
句后回车换行,
3,/* */间的内容作为注释部分,只起到说明的作用,不影响程序
的运行,它只是给人看的,可以提高程序的可读性,对编译和
运行不起作用,因此注释可以加在程序中的任何位置,
4,运行结果, It’s a book!
(在用户屏上输出该语句,并且因为有 \n这个换行符,光标会移
到下一行开头处,)
例 2,main()
{ printf (“It’s a book! \n” ) ; /*输出语句 */
}
1,int表示整型,这一行是声明部分,
定义变量 a,b,sum为整型变量,
这条语句相当于 int a; int b;
int sum;
2,两个赋值语句 (把 123赋值给 a,把
456赋值给 b)这样 a就等于
123,b就等于 456.
例 3,main()
{ int a,b,sum;
a=123; b=456;
sum=a+b;
printf(“sum is %d \n”,sum);
} 3,赋值计算 (把 a和 b的和赋值给 sum)这样 sum就等于 a,b
之和了,(sum=123+456=579).
4,%d是输入输出“格式字符串”,用来指定数据的类型,%d表示
以十进制整数类型输出,在执行输出时,此位置上代以一个十进制
整数数值,(其他的格式字符串,%c,%s,%f…).
5,第一个 sum原样输出,第二个 sum表示要输出的变量,它的值就
是 a+b的值 (579),而且这个值就会替代 %d的位置,
6.执行结果, sum is 579
例 4 求两数中的大者。
main( ) /* 主函数 */
{ int a,b,c; /* 定义变量 */
scanf(″%d,%d″,&a,&b);
c=max(a,b); /* 调用函数 */
printf(″max=%d\n″,c);
}
int max(int x,int y)
{ int z; /* 定义局部变量 */
if (x>y) z=x;
else z=y;
return(z);
}
1.本程序包括两个函数,主
函数 main和被调用函数
max,max函数的作用是将 x
和 y中较大者赋值给变量 z.
2,C程序执行是从 main函
数中的第一条语句逐条执
行的,
3.,scanf”是输入函数,和
printf是一对,它们是 C系统
提供的标准输入输出函数,
这两个 %d和前面含义相同,
‘ &’表示取地址,scanf函
数的作用是将键盘输入的
值存放到变量 a,b所对应的
存储单元中,也就是输入给
变量 a,b.
4,return是将 z的值返回
给主函数 main.返回值
通过函数名 max带回到
函数的调用处,经过执
行 max函数得到一个返
回值 (即 max函数中变量
z的值 )把这个值赋给 c,
然后输出 c的值,
5,程序运行情况如下,
8,5 (通过键盘输
入 8和 5给 a和 b)
max=8 (输出 c的值
即 a和 b的最大值 )
例 4 求两数中的大者。
main( ) /* 主函数 */
{ int a,b,c; /* 定义变量 */
scanf(″%d,%d″,&a,&b);
c=max(a,b); /* 调用函数 */
printf(″max=%d\n″,c);
}
int max(int x,int y)
{ int z; /* 定义局部变量 */
if (x>y) z=x;
else z=y;
return(z);
}
例 6,/*给定半径,求圆的面积 */
#define PI 3.14159
#include <math.h>
main( ) /*主函数 */
{
float r,s;
r =1.0; /*变量 r赋初值 */
s=PI * pow(r,2); /*计算圆面积 s*/
printf (“R=%f, S=%f \n”,r,s);
}
1.编译预处理,程序执行前自
动进行的特殊处理,特点,以 #
开头,结束处无分号,
2,#define ---
宏定义命令,P39
P187
PI --- 符号常量
(宏名最好用大写
区别一般变量 )
3.14159 --- 宏体
宏定义作用,用简
单符号代表宏体部
分内容 (编译时自
动替换 )
5,pow(x,y)求 x的 y次方,是 math.h中的标准数学
函数,
6,%f表示以小数形式输出,是, 格式字符串,
7,运行结果, R=1.0,S=3.141590
3,#include命令用
来实现“文件包含”
的操作
.“math.h”或
<math.h>是“头
文件”标准前导文
件,
4,float表示实型,
定义变量 r,s为实型
变量,
例 6,/*给定半径,求圆的面积 */
#define PI 3.14159
#include <math.h>
main( ) /*主函数 */
{
float r,s;
r =1.0; /*变量 r赋初值 */
s=PI * pow(r,2); /*计算圆面积 s*/
printf (“R=%f, S=%f \n”,r,s);
}
? 总结,
一,一个 c程序的组成,
编译预处理部分 (可选 )
main(){
说明部分 /*变量定义等 */
执行部分 /*输入输出计算等 */
}
其他函数 (可选,位置任意 )
二,C语言程序的基本特点
? C语言是一种函数式语言,其程序基本组成 (单位 )是函数
? 每个 C程序必须有一个、也只能有一个主函数 main
? 不管主函数在程序中的位置如何,程序执行总是从主函数开
始
? 所有变量必须先定义(规定数据类型)后使用
? 每个语句必须用分号, ;” 结束(注意是, 每个语句, 而不
,每行语句, )
? 编译预处理命令不是语句(行末不能用分号结束)
? C语言本身没有输入 /输出语句,其输入 /输出功能须通过调
用标准函数来实现
? 使用系统提供的标准库函数或其他文件提供的现成函数时,
必须使用, 文件包含, (除了 printf和 scanf语句)
? 主函数可以调用其他各种函数,但其他函数不能调用主函数,
1.4 C语言程序上机步骤 P7
C语言是一种通过编译程序处理的高级程序设计语言。
所以其上机的处理流程可用以下示意图表示:
在微机上,通常用来编写、编译、连接、调试和执行 C
语言程序的是 Borland公司开发的集成化软件 Turbo C。
源程序 (.c)———目标程序(,obj) ———可执行程序 (.exe)
编译 连接
一,具体上机步骤如下:
? 启动机器,稍候后出现:
login (入网注册命令 )
Enter your login name:user01 (输入用户名 )
password,***** (输入用户密码 )
…… ( 显示网络有关信息 )
C> tc (调用 Turbo C软件 )
此时便出现 Turbo C初始屏幕 (第 8页图 1.2所示) 。
用户名,计教 021班 5号 jj02105 ( 初始密码,jj021)
计应 022班 11号 jy02211 ( 初始密码,jy022)
密码修改:
setpass——输入原密码 ——输入新密码 ——再输入新密码
退出,先退出 tc,再输入 logout退出网络,
二,TC的菜单 (通过 F10键和 Esc键切换 ):
File Edit Run Compile Project Options Debug Break/Watch
文
件
操
作
编
辑
编
译运行 项目
文
件
选
项
调
试
中
断\
观
察
1.File,Load(打开已有的 C程序文件 ) New(新建 C程序文
件 )
Save(保存,文件名以,c为扩展名,如 abc.c) Quit(退出 TC)
2.编辑源文件,在 Edit(编辑 )状态下输入,
3.编译源文件,选择并执行 Compile / Make EXE File项
(快捷键,F9),则 TC将自动完成对当前正在编辑的源程
序文件的编译、连接,并生成可执行文件。
4.运行与查看结果
( 1) 运行当前正在编辑的源程序文件
选择并执行 Run / Run项 ( 快捷键,Ctrl+F9), 程
序运行结束后, 仍返回到编辑窗口 。
( 2) 查看运行结果
选择并执行 Run / User Screen 项 ( 快 捷键,
Alt+F5) 。 查看完毕后, 按任一键返回编辑窗口 。
5.编辑下一个新的源程序
选择并执行 File / New项即可 。
如果屏幕提示如下确认信息:
NONAME.C not saved,Save?( Y/N)
如果不需要保存当前正在编辑的源程序, 则键入, N”
如果需要保存当前正在编辑的源程序, 则键入, Y”
进入下一步操作 。
系统提示换名:
<F:><path>\NONAME.C
直接输入你给源程序文件起的名字再按回车即可。
6.退出 TC返回 DOS:
File/Quit(快捷键,Alt+X键 )
Turbo C编程常用操作 (按 F1键可获得帮助)
? Turbo C基本操作
Alt+F 建立新文件
Load/Pick 调入现有文件
Save 存盘( F2)
Write to 换名存盘
Ctrl+F9 运行程序(自动完成编译 /连接)
Alt+F5 观看运行结果
? 程序调试常用操作
F5 显示 /关闭观察、出错提示等窗口
F6 编辑窗口( Edit) 和信息窗口( Message) 窗口切换
Alt+B 设置断点 /变量观察 (Break/Watch )
常用,增加观察的变量名 (Add watch )
F8 单步执行
Ctrl+F2 程序重置(重新开始)
? 程序编辑常用操作
Ctrl+KB 设置块头 Ctrl+KK 设置块尾
Ctrl+KC 块复制 Ctrl+KV 块移动
Ctrl+Y 删除一行
BACK