教材、参考书与课时安排
教材
C程序设计 王苗 等编著 清华大学出版社
参考书
C语言程序设计教程 谭浩强 清华大学出版社
(配套,C语言程序设计题解与上机指导)
C高级实用程序设计 王士元 清华大学出版社
课时安排授课,60学时
C综合编程训练,2周课程要求
课前请做好预习
保持课堂安静,头脑清醒,思维活跃
认真、独立、按时完成并提交作业
重视上机实践,有效利用宝贵的上机时间第一章 基础知识
1.1 计算机内的数据表示(后面在讲,融到第 2章)
1.2 程序与算法(融到第 4章)
1.3 C语言简介
1.4 C程序的运行步骤简介
1.3 C 语言简介
C语言发展历史
C语言特点
C程序格式和结构特点
C程序上机步骤
§ 1.3.1 C语言发展历史
程序设计语言的发展机器语言汇编语言高级语言面向过程面向对象
CPU指令系统,由 0,1序列构成的指令码组成如,10000000 加
10010000 减用助记符号描述的指令系统如 ADD A,B
面向机器的语言程序设计是数据被加工的过程客观世界可以分类,对象是类的实例对象是数据和方法的封装对象间通过发送和接受消息发生联系程序设计关键是定义类,并由类派生对象冯,诺依曼结构,
计算机运算器控制器存储器主机:
I/O设备:键盘、显示器等中央处理器 CPU
>>
C语言程序设计 第一章 C语言概述
52 54 56 58 60 62 64 66 68 70 72 74 76 78 80 82 84 86 88 90 92 94 96
Ada
ALGOL60 ALGOL68
Pascal
Modula-2
CPLBCPL B C
C++
Java
LISP
PROLOG
COBOL
FORTRAN77FORTRAN
PL/1
Simula 67
Smalltalk 80
BASIC ANSI-BASIC QBASIC VB
FORTRAN90
< >
C语言发展过程
产生背景
产生过程
时间,1972~1973
地点,美国贝尔实验室
目的,UNIX操作系统
设计人,Ken.Thompson和 Dennis.M.Ritchie
C标准
标准 C,K&R合著,The C Programming Language》
ANSI C,1983年
87 ANSI C,1987年
1990年国际标准的 ANSI C
< >
C语言程序设计 第一章 C语言概述
§ 1.3.2 C语言特点
语言简洁、紧凑、灵活
运算符和数据类型丰富
程序设计结构化、模块化
生成目标代码质量高
可移植性好
< >
> > >
>>
中级语言
C语言程序设计 第一章 C语言概述
>
32个关键字,(由系统定义,不能重作其它定义 )
auto break case char const
continue default do double else
enum extern float for goto
if int long register return
short signed sizeof static struct
switch typedef unsigned union void
volatile while
<
C语言程序设计 第一章 C语言概述
9种控制语句,
if( )~else~
for( )~
while( )~
do~while( )
continue
break
switch
goto
return
<
C语言程序设计 第一章 C语言概述例 C语言与 Pascal语言比较
C语言 Pascal语言 含义
{ } BEGIN….END 复合语句
if(e) s; IF(e) THEN s 条件语句
int i ; VAR i:INTEGER 定义 i为整型变量
int a[10]; VAR a:ARRAY[1..10] OF INTEGER 定义整型数组 a
int f(); FUNCTION f():INTEGER 定义 f为返值整型的函数
int *p; VAR p:?INTEGER 定义 p为指向整型变量的指针
i+= 2; i=i+2 赋值 i+2?i
i++,++i; i=i+1 i自增值结论,C比 Pascal简练,源程序短 。
<
C语言程序设计 第一章 C语言概述
34种运算符:
算术运算符,+ - * / % ++ --
关系运算符,< <= == > >= !=
逻辑运算符:! && ||
位运算符,<< >> ~ | ^ &
赋值运算符,= 及其扩展条件运算符,?:
逗号运算符:,
指针运算符,* &
求字节数,sizeof
强制类型转换,(类型)
分量运算符,,->
下标运算符,[]
其它,( ) -
<
C语言程序设计 第一章 C语言概述
C
数据类型基本类型构造类型指针类型空类型 void
定义类型 typedef
数值类型字符类型 char
枚举类型 enum
整 型浮点型单精度型 float
双精度型 double
短整型 short
长整型 long
整型 int
数组结构体 struct
共用体 union
<
C语言程序设计 第一章 C语言概述
<
§ 1.3 C程序格式和结构特点例 1.1 第一个程序 Hello,World!
/* example1.1 The first C Program*/
#include <stdio.h>
main()
{
printf(“Hello,World!”);
}
C语言程序设计 第一章 C语言概述
>
注释编译预处理函数语句输出:
Hello,World!
例 1.2
/* example1.1 calculate the sum of a and b*/
#include <stdio.h>
/* This is the main program */
main()
{ int a,b,sum;
a=10;
b=24;
sum=add(a,b);
printf(”sum=%d\n",sum);
}
/* This function calculates the sum of x and y */
int add(int x,int y)
{ int z;
z=x+y;
return(z);
}
运行结果:
sum=34
函数语句预处理命令注释
C语言程序设计 第一章 C语言概述
>
格式特点
习惯用 小写 字母,大小写敏感
不使用行号,无程序行 概念
可使用空行和空格
常用 锯齿形 书写格式
< >
C语言程序设计 第一章 C语言概述
main( )
{ ……………….
………………
…………..
…………..
………
……….
……………
…………….
……………….
………………..
}
main( )
{
int i,j,sum;
sum=0;
for(i=1; i<10;i++)
{
for(j=1;j<10;j++)
{
sum+=i*j ;
}
}
printf(“%d\n”,sum);
}
优秀程序员的素质之一,
使用 TAB缩进
{}对齐
有足够的注释
有合适的空行
结构特点
函数与主函数
程序由一个或多个函数组成
必须有且只能有一个主函数 main()
程序执行从 main开始,在 main中结束,其它函数通过嵌套调用得以执行。
程序语句
C程序由语句组成
用,;”作为语句终止符
注释
/* */为注释,不能嵌套
不产生编译代码
< >
例,/*This is the main /* of example1.1*/ */
非法
编译预处理命令
C语言程序设计 第一章 C语言概述编辑链接编译执行
§ 1.4 C程序的上机步骤
C程序开发步骤
< >
开 始编 辑编 译连 接执 行有错?
结果正确?
结 束有源程序
f i l e,c
目标程序
f i l e,obj
库函数和其它目标程序可执行目标程序无正确不正确
file.exe
C语言程序设计 第一章 C语言概述程序代码的录入,
生成源程序 *.c
语法分析查错,翻译生成目标程序 *.obj
与其它目标程序或库链接装配,生成可执行程序 *.exe
′ 3ì Dò ±ê 3ì Dò?é?′ D 3ì Dò
ú èY 3ì Dò éè óú óú ó
é?′ D 2é ò? 2é òé ò?
t oó ×,c,o b j,e x e
Turbo C集成开发环境
配置要求
UNIX,PC-DOS,MS-DOS,UCDOS操作系统
硬盘容量约 2M,448K RAM运行空间
安装 Turbo C
创建子目录
Install
若不是可安装盘,将文件拷贝到对应的目录下
TC
*.* INCLUDE LIB
*.* SYS *.*
< >
C语言程序设计 第一章 C语言概述
进入 Turbo C
D:\TC>TC.exe?
主控菜单
文件操作 FILE,New Load Save Write to
编辑操作 EDIT:插入 /修改 块 查找 /替换
编译链接 COMPILE LINK MAKE
执行 RUN
退出 Turbo C
Alt +x
Alt+F,Q
帮助 Help
F1
Ctrl+F1
< >
C语言程序设计 第一章 C语言概述基本操作:
F10-----调用主菜单
F2------存盘
F3------打开
Alt+F9------Compile
Ctrl+F9------Run
Alt+F5------User Screen
常用热键文本编辑:
-------移动光标
PgUp,PgDn------上下翻页
Ctrl+PgUp,Ctrl+PgDn------文件首尾
Home End
Ddelete Insert
Bkspace
块操作,
Ctrl+KB-------块开始标记 Ctrl+KK--------块结束标记
Ctrl+KC-------块拷贝 Ctrl+KV--------块移动
Ctrl+KY-------块删除 Ctrl+KH--------块隐藏程序调试:
F8-----Step over F7-------Trace into
F4-----Goto Cursor Ctrl+F7--------Add Watch
Ctrl+F8------Toggle Breakpoint Ctrl+F2--------Program Reset
窗口操作:
F5-----窗口缩放
F6-----窗口切换
C语言程序设计 第一章 C语言概述预备知识,DOS(Disk Operating System)基础
DOS基本概念
对计算机系统软硬件资源进行控制与管理
是用户和计算机间的接口
MS-DOS和 PC-DOS
DOS的组成
引导程序
I/O设备管理程序,IO.SYS 或 IBMBIO.COM
文件管理和功能调用程序,MSDOS.SYS或 IBMDOS.COM
命令处理程序,COMMAND.COM
C语言程序设计 第一章 C语言概述
DOS文件
文件概念:存储在磁盘上的一组相关信息
文件名,〈 文件标识符 〉 [.〈 扩展名 〉 ]
文件名中的通配符
用途:指定文件组,避免重复操作
与 *?最长 8个字符?可用字符:
英文字母
数字 0~9
其它字符,$ @ _ ! # % & { } ( )等
不可用字符:,,/ \ [ ],| < > + = ;,空格
DOS设备名,CON LPT1 PRN AUX COM
NUL A,~Z:
例 磁盘上有如下文件:
ABCD.XYZ CBCD.XYZ
ABCT.XYZ ABTTS.XYZ
ABID.XYZ TEXTS.TXT
ABYD.TXT ABCD.BAS
1,?B?D.XYZ 2,AB*.XYZ
ABCD.XYZ ABCD.XYZ
ABID.XYZ ABCT.XYZ
CBCD.XYZ ABID.XYZ
ABTTS.XYZ
3,*.TXT
ABYD.TXT
TEXTS.TXT
4,*.* 所有文件
可省略
1~3个字符
表示文件类型
DOS中常用扩展名及其表示文件类型
.COM 系统程序文件
.EXE 可执行文件
.BAT 批处理文件
.BAK 备份文件
.TXT 文本文件
.SYS 系统文件
.OBJ 目标文件
.LIB 库文件
.DAT 数据文件
.C C源程序文件
C语言程序设计 第一章 C语言概述
DOS目录
用途,对文件进行有效组织管理
树型目录结构 \
USER DOS TC
WANG ZHAO ZHANG INCLUDE LIB
DOC EXE CODE SYS
根目录子目录当前目录,用户目前正在其中工作的目录路径 绝对路径,以根目录为起点的路径相对路径,从当前目录开始的路径例 绝对路径 \USER\ZHAO\DOC\ch1.doc例 若当前目录为 TC
相对路径 INCLUDE\stdio.h
C语言程序设计 第一章 C语言概述常用的内部命令:
DIR 显示磁盘文件目录
COPY 拷贝文件
TYPE 显示文本文件
RENAME 更改文件名
DEL 删除磁盘文件
DATE 显示和设置日期
TIME 显示和设置时间
CLS 清除显示屏幕常用的外部命令:
FORMAT 磁盘格式化
DISKCOPY 软盘间拷贝
XCOPY 拷贝目录和文件
PRINT 打印文件
FDISK 硬盘分区
DOS命令
内部命令:在 COMMAND.COM中,驻留内存
外部命令:以文件形式驻留在磁盘 (.com,exe,bat)
DOS命令格式,命令名 [参数 ][选择项 ]
例 A:\> FORMAT A,/S/V
格式化 A驱软盘,将 DOS系统文件存入,
并为其加上卷标
常用 DOS命令
系统服务命令:
DATE 显示和设置日期
TIME 显示和设置时间
CLS 清屏幕
目录操作命令:
DIR 显示目录清单 例 C:\>DIR A:\*.C /P
MD 建立子目录 例 C:\>MD \WINZIP
CD 改变当前目录 例 C:\>CD \TC
RD 删除子目录 例 C:\>RD \USER\WANG
TREE 显示目录结构 例 C:\>TREE C,/F
文件操作命令:
TYPE 显示文件内容 例 C:\>TYPE A:\HELLO.C
REN 更改文件名 例 C:\>REN C:\*.TXT *.TMP
DEL 删除文件 例 C:\>DEL A:\*.*
COPY 复制文件 例 C:\>COPY C,TC\*.C,
XCOPY 复制子目录及文件 例 C:\>XCOPY \USER A,/S
磁盘操作命令:
FORMAT 磁盘格式化 例 A:\>FORM T A,/S
DISKCOPY 复制软盘 例 A:\>DISKCOPY A,B:
C语言程序设计 第一章 C语言概述