25
主主主主 主主 [email protected] C 语语语语语语 C 语语语语

主讲教师:李艺 [email protected] C 语言程序设计 第一章 C 语言概述. 1-2 主要内容 1.1 C 语言出现的历史背景 1.2 C 语言的特点 1.3 C 语言程序介绍

  • View
    334

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 主讲教师:李艺 leeyi@ustc.edu.cn C 语言程序设计 第一章 C 语言概述. 1-2 主要内容 1.1 C 语言出现的历史背景 1.2 C 语言的特点 1.3 C 语言程序介绍

主讲教师:李艺[email protected]

C语言程序设计第一章 C语言概述

Page 2: 主讲教师:李艺 leeyi@ustc.edu.cn C 语言程序设计 第一章 C 语言概述. 1-2 主要内容 1.1 C 语言出现的历史背景 1.2 C 语言的特点 1.3 C 语言程序介绍

1-2

主要内容主要内容

1.1 C1.1 C语言出现的历史背景语言出现的历史背景

1.2 C1.2 C语言的特点语言的特点

1.3 C1.3 C语言程序介绍语言程序介绍

1.4 C1.4 C语言程序的上机实现语言程序的上机实现

Page 3: 主讲教师:李艺 leeyi@ustc.edu.cn C 语言程序设计 第一章 C 语言概述. 1-2 主要内容 1.1 C 语言出现的历史背景 1.2 C 语言的特点 1.3 C 语言程序介绍

1-3

课程教材潭浩强 《 C 程序设计 ( 第三版 )

清华大学出版社, 2005 年 7 月 参考教材

任选 课程课时

理论课: 40 学时实验课: 20 学时

Page 4: 主讲教师:李艺 leeyi@ustc.edu.cn C 语言程序设计 第一章 C 语言概述. 1-2 主要内容 1.1 C 语言出现的历史背景 1.2 C 语言的特点 1.3 C 语言程序介绍

1-4

1.1 C1.1 C 语言出现的历史背景语言出现的历史背景

C语言出现的历史背景 在 C 语言诞生以前,系统软件主要是用汇编语言编写的。由于汇

编语言程序依赖于计算机硬件,其可读性、可移植性差;但高级语言又难以实现对计算机硬件的直接操作,人们盼望有一种兼有汇编语言和高级语言特性的新语言。

C语言是贝尔实验室于 70 年代初研制出来的,后来又被多次改进,并出现了多种版本。 80 年代初,美国国家标准化协会( ANSI ),根据C语言问世以来各种版本对C语言的发展和扩充,制定了 ANSI C 标准( 1989 年再次做了修订)。

目前,在微机上广泛使用的C语言编译系统有 Microsoft C 、 Turbo C 、 Borland C 等。虽然它们的基本部分都是相同的,但还是有一些差异, 使用时要注意个版本C系统的特点和规定。

Page 5: 主讲教师:李艺 leeyi@ustc.edu.cn C 语言程序设计 第一章 C 语言概述. 1-2 主要内容 1.1 C 语言出现的历史背景 1.2 C 语言的特点 1.3 C 语言程序介绍

1-5

1.2 C语言的特点

C 语言同时具有汇编语言和高级语言的优势。 语言简洁、紧凑,使用方便、灵活。关键字一共只有 36 个 运算符极其丰富,有 34 种运算符。 数据结构丰富,能实现各种各样的数据结构 具有结构化的控制语句:选择、循环语句 语法限制不太严格:多个语句可以在同一行,而一个语句可以在

不同行,不检查数组下标是否越界等。 可以直接访问物理地址,能进行位操作,能实现汇编语言的大部

分功能。 生成的目标代码质量高,程序执行效率高。 可移植性好(较之汇编语言)。

Page 6: 主讲教师:李艺 leeyi@ustc.edu.cn C 语言程序设计 第一章 C 语言概述. 1-2 主要内容 1.1 C 语言出现的历史背景 1.2 C 语言的特点 1.3 C 语言程序介绍

1-6

1.2 C语言的特点

C 语言的特征 能在很多操作系统中应用

UNIX, DOS, Windows, MacOS 等 使用范围广泛

应用软件的开发OS 的开发机械控制

Address演算, Bit演算 语言规范相对简单

Page 7: 主讲教师:李艺 leeyi@ustc.edu.cn C 语言程序设计 第一章 C 语言概述. 1-2 主要内容 1.1 C 语言出现的历史背景 1.2 C 语言的特点 1.3 C 语言程序介绍

1-7

1.3 简单的 C程序介绍

例 :输出 This is C program ,输完后换行void main( )

{

printf ("This is C program\n");

}

该程序只有一个名为main 的主函数,函数体(花括号内的内容)只有一个语句: printf输出语句

C 程序的特点 C 程序由函数组成,每个程序都必须有一个名为main

的主函数,且主函数只能有一个

Page 8: 主讲教师:李艺 leeyi@ustc.edu.cn C 语言程序设计 第一章 C 语言概述. 1-2 主要内容 1.1 C 语言出现的历史背景 1.2 C 语言的特点 1.3 C 语言程序介绍

1-8

1.3 简单的 C程序介绍

例:求两数之和void main()

{ int a,b,sum;  /* 定义变量 */

a=123; b=456;  /* 以下三行为程序的执行部分 */

sum=a+b;

printf("sum is %d\n",sum);

}

C 程序特点函数由函数首部和函数体构成,函数体由变量声明部

分和执行部分组成,执行部分必须在声明部分后面。

Page 9: 主讲教师:李艺 leeyi@ustc.edu.cn C 语言程序设计 第一章 C 语言概述. 1-2 主要内容 1.1 C 语言出现的历史背景 1.2 C 语言的特点 1.3 C 语言程序介绍

1-9

1.3 简单的 C程序介绍

函数定义的一般格式为:函数类型 函数名(形参类型 1 形参 1 ,形参类型 2 形

参 2 ){ 声明部分  执行部分 }

程序的执行是从主函数开始到主函数结束,其它函数的执行是通过函数调用实现的

书写格式自由。一行内可以写几个语句,一个语句也可以分几行书写。

Page 10: 主讲教师:李艺 leeyi@ustc.edu.cn C 语言程序设计 第一章 C 语言概述. 1-2 主要内容 1.1 C 语言出现的历史背景 1.2 C 语言的特点 1.3 C 语言程序介绍

1-10

1.3 简单的 C程序介绍

每个 C 语句以分号“;”结束,分号是语句的组成部分

C中的输入与输出是通过函数实现 7 ,程序中包含在 /*与 */ 之间的内容为注释,其作用

是供理解程序用。 C++中可用 //

Page 11: 主讲教师:李艺 leeyi@ustc.edu.cn C 语言程序设计 第一章 C 语言概述. 1-2 主要内容 1.1 C 语言出现的历史背景 1.2 C 语言的特点 1.3 C 语言程序介绍

1-11

1.3 简单的 C程序介绍

编译工作过程

源文件*.c 、 *.cpp

C 编译程序VC++ 6.0

目标文件*.obj

没有错误

目标文件*.obj

目标文件*.obj

有错误反馈错误信息

修正

Linker连结

可执行文件*.exe

Page 12: 主讲教师:李艺 leeyi@ustc.edu.cn C 语言程序设计 第一章 C 语言概述. 1-2 主要内容 1.1 C 语言出现的历史背景 1.2 C 语言的特点 1.3 C 语言程序介绍

1-12

1.4 C1.4 C 语言程序的上机实现语言程序的上机实现

上机实现 C 语言程序的基本步骤 编辑( Edit ) 编译( Compile )连接( Link ) 运行( Run )

C 语言的支持系统 Turbo C 2.0 、 Turbo C 2.0 Visual C++ 6.0也支持 C 语言程序 其他

Page 13: 主讲教师:李艺 leeyi@ustc.edu.cn C 语言程序设计 第一章 C 语言概述. 1-2 主要内容 1.1 C 语言出现的历史背景 1.2 C 语言的特点 1.3 C 语言程序介绍

1-13

启动 TC2.0

1.4 C1.4 C 语言程序的上机实现语言程序的上机实现

Page 14: 主讲教师:李艺 leeyi@ustc.edu.cn C 语言程序设计 第一章 C 语言概述. 1-2 主要内容 1.1 C 语言出现的历史背景 1.2 C 语言的特点 1.3 C 语言程序介绍

1-14

录入源程序使用“ Edit”命令,使 TC集成环境进入编辑状态,录入源程序

1.4 C1.4 C 语言程序的上机实现语言程序的上机实现

Page 15: 主讲教师:李艺 leeyi@ustc.edu.cn C 语言程序设计 第一章 C 语言概述. 1-2 主要内容 1.1 C 语言出现的历史背景 1.2 C 语言的特点 1.3 C 语言程序介绍

1-15

编译、连接源程序使用“ Compile”命令,对源程序进行编译、连接,生成可执行文件

1.4 C1.4 C 语言程序的上机实现语言程序的上机实现

Page 16: 主讲教师:李艺 leeyi@ustc.edu.cn C 语言程序设计 第一章 C 语言概述. 1-2 主要内容 1.1 C 语言出现的历史背景 1.2 C 语言的特点 1.3 C 语言程序介绍

1-16

运行程序编译连接完成后,使用“ Run”命令运行程序。

也可以完成编辑后直接使用“ Run”命令运行程序,此时 TC2.0 系统会自动调用编译、连接功能,首先进行编译连接,然后再运行程序。窗口切换

按 Alt+F5 组合键实现程序窗口和运行结果窗口的切换,这是查看程序运行结果时常用的一种方法。

1.4 C1.4 C 语言程序的上机实现语言程序的上机实现

Page 17: 主讲教师:李艺 leeyi@ustc.edu.cn C 语言程序设计 第一章 C 语言概述. 1-2 主要内容 1.1 C 语言出现的历史背景 1.2 C 语言的特点 1.3 C 语言程序介绍

1-17

1.启动 VC++ 6.0

1.4 C1.4 C 语言程序的上机实现语言程序的上机实现

Page 18: 主讲教师:李艺 leeyi@ustc.edu.cn C 语言程序设计 第一章 C 语言概述. 1-2 主要内容 1.1 C 语言出现的历史背景 1.2 C 语言的特点 1.3 C 语言程序介绍

1-18

2.创建一个新工程(1) 选择“ File”→“New”命令,弹出“ New” 对话框 .

(2) 设置 Projects (工程)类型和名称。在“ New” 对话框中,切换到“ Projects” 选项卡,选择 Projects类型为Win32 Console Application ,在右边的“ Projec

t name”文本框中输入工程文件名称。(3) 设置工程文件的存储位置。单击“ Location”文本框后

面的省略号按钮,从弹出的对话框中,选择要放置新建工程文件的文件夹。

(4) 单击“ OK”按钮,弹出如图 1-10所示的对话框,单击“ Finish”按钮,在弹出的新窗口中单击“ OK”按钮。

1.4 C1.4 C 语言程序的上机实现语言程序的上机实现

Page 19: 主讲教师:李艺 leeyi@ustc.edu.cn C 语言程序设计 第一章 C 语言概述. 1-2 主要内容 1.1 C 语言出现的历史背景 1.2 C 语言的特点 1.3 C 语言程序介绍

1-19

3.建立源程序文件(1) 选择“ File”→“New”命令,弹出“ New” 对话框,切换到“ Files”

选项卡,选择 C++ Source File 选项,并选择“ Add to project”复选框,激活其下面的选项,然后在“ File”文本框内输入源文件名。

(2)单击“OK”按钮,弹出编辑窗口,此时即可编写程序。

1.4 C1.4 C 语言程序的上机实现语言程序的上机实现

Page 20: 主讲教师:李艺 leeyi@ustc.edu.cn C 语言程序设计 第一章 C 语言概述. 1-2 主要内容 1.1 C 语言出现的历史背景 1.2 C 语言的特点 1.3 C 语言程序介绍

1-20

4.编译连接和运行源程序( 1 )编译。选择“ Build”→“Compile hello.cpp”命令,系

统开始对当前的源程序进行编译,在编译过程中,将所发现的错误显示在编辑窗口下方的“ Build”窗口中。根据错误提示,修改程序后再重新编译,如果还有错误,再继续修改、编译,直到没有错误为止。

( 2 )连接。编译无误后进行连接,选择“ Build”→“Build pr

oject_1.exe”命令。同样,对出现的错误要进行更改,直到编译连接无错为止。

( 3 )运行程序。选择“ Build”→“!Execute project_1.exe”

命令,即运行当前的程序。

1.4 C1.4 C 语言程序的上机实现语言程序的上机实现

Page 21: 主讲教师:李艺 leeyi@ustc.edu.cn C 语言程序设计 第一章 C 语言概述. 1-2 主要内容 1.1 C 语言出现的历史背景 1.2 C 语言的特点 1.3 C 语言程序介绍

1-21

问题:编写程序,计算 1+2+3+4+……+n ( n≥1 )

1.问题分析。2.设计算法。

用 s表示累加结果,用 i表示当前要累加的数值步骤① 为 i 和 s赋初值,使 i=1,s=0 ;步骤② 输入 n 的值;步骤③ 判断 n 的值,若 n≥1则执行步骤④;否则,转步骤⑨;步骤④ 判断 i 的值,若 i≤n 则执行步骤⑤;否则,转步骤⑧;步骤⑤ s加上 i ;步骤⑥ i加上 1 ;步骤⑦ 转步骤④;步骤⑧ 显示 s 的值;步骤⑨ 结束。

1.4 C1.4 C 语言程序的上机实现语言程序的上机实现

Page 22: 主讲教师:李艺 leeyi@ustc.edu.cn C 语言程序设计 第一章 C 语言概述. 1-2 主要内容 1.1 C 语言出现的历史背景 1.2 C 语言的特点 1.3 C 语言程序介绍

1-22

3.用流程图表达算法。

1.4 C1.4 C 语言程序的上机实现语言程序的上机实现

开始开始

1→i, 0→s1→i, 0→s

n≥1n≥1

输入输入 nn 的值的值

i≤ni≤n

s+i→s, i+1→is+i→s, i+1→i

显示显示 ss 的值的值

结束结束

no

noyes

yes

Page 23: 主讲教师:李艺 leeyi@ustc.edu.cn C 语言程序设计 第一章 C 语言概述. 1-2 主要内容 1.1 C 语言出现的历史背景 1.2 C 语言的特点 1.3 C 语言程序介绍

1-23

1.4 C1.4 C 语言程序的上机实现语言程序的上机实现

4.程序设计void main()

{ int i,s,n; i=1;

s=0;

printf("Input n: ");

scanf("%d",&n);

if (n>=1)

{ while(i<=n)

{ s=s+i;

i=i+1;

}

printf("sum=%d\n",s);

}

}

Page 24: 主讲教师:李艺 leeyi@ustc.edu.cn C 语言程序设计 第一章 C 语言概述. 1-2 主要内容 1.1 C 语言出现的历史背景 1.2 C 语言的特点 1.3 C 语言程序介绍

1-24

1.4 C1.4 C 语言程序的上机实现语言程序的上机实现

5.编辑调试运行程序

Page 25: 主讲教师:李艺 leeyi@ustc.edu.cn C 语言程序设计 第一章 C 语言概述. 1-2 主要内容 1.1 C 语言出现的历史背景 1.2 C 语言的特点 1.3 C 语言程序介绍

1-25

小结

算法它包括问题计算和问题处理过程两个方面。一个问题可以有不同的算法,一个算法在经过有限步骤之后能够结束。

算法的描述方法有多种,用计算机语言描述的算法是计算机程序。 程序语法错误在编译阶段能够被系统发现并指出来,而逻辑错误系

统无法检查。 C 语言是一种结构化的高级语言, C 语言程序是由若干个函数构成

的,有且仅有一个称main()函数的为主函数。任何函数都具有如下的一般结构:

函数类型 函数名 ()

{ 函数体 } C 语言程序中,标识符的大小写形式具有不等价性。 C 语言程序的上机实现分为编辑、编译、连接和运行四个过程,其中

的编辑可以通过任何文本编辑软件实现。