第一章 C语言概论
第一章 C语言概述
UNIX系统最初是用汇编语言编写的,用汇编语言编写的程序往往难以调试和扩展。
Thompson意识到需要用一种更加高级的编程语言来完成 UNIX 系统未来的开发,于是他设计了一种小型语言——B语言。
B语言是在BCPL语言(20世纪60年代中期产生的一种系统编程语言)的基础上开发的,而BCPL语言又可以追溯到最早的语言之一 ——Algol 60。
不久,Ritchie也加入到UNIX项目中,并且开始着手用B语言编写程序。
1970年,贝尔实验室为UNIX项目争取到一台PDP-11计算机。
当B语言经过改进并能够在PDP-11计算机上运行后,Thompson用B语言重新编写了部分UNIX代码。
到了1971年,B语言已经明显不适合PDP-11计算机了,于是Ritchie着手开发B语言的升级版。
最初,他将新开发的语言命名为NB语言(意为“New B”),但是后来新语言越来越偏离B语言,于是他将其改名为C语言。
到了1973年,C语言已经足够稳定,可以用来重新编写UNIX系统了。
改用C语言编写程序有一个非常重要的好处:可移植性。
只要为其他计算机编写C语言编译器, UNIX 系统就能运行在那些机器上。
2.编写一个简单的C程序按照惯例,我们用C语言编写一个打印 Hello world.的程序。
//H ello W orld.c#in c lude <stdio.h>int m a in(void){printf("H ello world.\n");return0;}这个程序虽然简短,但是它包含了C语言程序的基本结构。
接下来,我们对这个程序做一个简单的说明。
#in c lude<stdio.h>是一条预处理指令,它表示在程序中"包含" stdio.h 头文件,这个头文件中有C语言标准输入/输出库的信息。
m a in函数是程序的入口,m a in函数中的第一行代码是用来打印信息的。
第1章 C语言概述
八进制转换成二进制:用3位二进制数代替每一
例: (1101001)2=(001,101,001)2=(151)8 (246)8=(010,100,110)2=(10100110)2
第1章
C语言概述
二进制、十六进制的互相转换方法
二进制转换成十六进制:从右向左,每4位一组
(不足34位左补0),转换成十六进制;
第1章
C语言概述
其它进制转换为10进制:
为了将一个二进制数转换成相应的十进制数, 首先确定二进制数的0号位置,即最右边二进制数 字的位置,然后从0号位置开始向左的每个数字以 递增1的方式依次进行位置编号。例如,二进制数 1011的位置编号标记如下: 1 0 1 1 3 2
1
0 (位置编号)
二进制数转化成十进制
第1章
C语言概述
什么是程序
程序(Program)是为实现特定目标或解决特定
问题而用计算机语言编写的命令序列的集合。 为实现预期目的而进行操作的一系列语句和指 令。(程序就是为使电子计算机执行一个或多个 操作,或执行某一任务,按序设计的计算机指 令的集合。) 只要让计算机执行这个程序,计算机就会自动 地、有条不紊地进行工作 计算机的一切操作都是由程序控制的,离开程 序,计算机将一事无成
C语言概述
10进制整数转换为其它进制:
连续除以基,直至商为0,从低到高记录余数
第1章
C语言概述
10进制小数转换为其它进制:
连续乘以基,直至小数位0,从高到低记录余数
(0.375)10=(0.011)2
第1章
C语言概述
2进制与其它进制转换:
2—>8:整数从右向左3位一组,小数部分从左向
右4位一组,最后不足3位补0,然后将其用1位8 进制数代替。0010000101001012=102458 001 000 010 100 101
第1章 C语言概述
什么是计算机语言
计算机语言:人和计算机交流和沟通的工 具、计算机和人都能识别的语言。
计算机语言发展阶段:
– 机器语言(由0和1组成的指令) – 符号语言(用英文字母和数字表示指令) – 高级语言(接近于人的自然语言和数学语言)
• 面向过程的语言 (非结构化的语言、结构化语言)
• 面向对象的语言
习题讲解
例: 关于标识符,下列说法不正确的是() A.库函数名称为预定义标识符,不建议用作用户 自定义标识符 B.关键字不能作为用户自定义标识符 C.用户自定义标识符中不区分英文字母大小写 D.标识符中可以出现下划线,且可以出现在标识 符的任何位置。
习答案:C题讲解
习题讲解
例: 以下可以作为C语言自定义标识符的一组是: A.void return if B.printf include fabs C.Max _abc Main D.2abc pay$ sum-10
字符常量:如’?’ – 转义字符:如’\n’
字符串常量:如”boy” 符号常量:#define PI 3.1416
练习
以下四个选项中哪个是合法的实型常量 A.+1e+1 5e-9.4 B.-.60 12e-4 -8e C.123e 2e-4 +2e-1 D.-e3 0.8e-4 5.e-7
答案:操作系统是最基本的系统软件,是对硬 件机器的首次扩充,因此不是应用软件,B
习题讲解
机器语言是计算机唯一能够直接识别并接受的语言。 高级语言编写的程序必须先经过翻译或者编译才能 够生成机器语言,才可以在计算机上直接执行。
二、下面叙述中错误的是: A.程序设计是指设计、编制和调试程序的过程 B.程序设计语言的基本功能就是描述数据和对数据
C语言第一章
第一章 C语言概述
第1章 C语言概述
C语言发展历史 简单的C程序介绍 C语言数据类型概述
C语言程序设计
第一章 C语言概述
1.1 C语言的出现和发展历史
• 程序设计语言的发展
机 器 语 言
汇 编 语 言
高 级 语 言
面向过程
面向对象
用助记符号描述的指令系统,可进行地址、位操作 可读性,移植性好,编写应用程序 CPU指令系统,由0、1序列构成的指令码组成 C语言兼有高级和低级语言的功能 面向机器的语言适合写系统软件和应用软件 如 ADD A,一般较难实现汇编语言的某些功能 B 加 如:10000000 编写系统软件,直接对硬件操作,可读性,移植性差 如:地址和位的操作 10010000 减 又称中级语言 < >
数据类型决定: 1. 数据占内存字节数 2. 数据取值范围 3. 可以进行的操作
C语言程序设计
第一章 程序的灵魂——算法
数值数据的表示
C语言中数值数据有两种:整型和浮点小数 1.整数表示形式 十进制:123,-567 八进制:011,072 十六进制:0x12 2.整数的存储空间为两个字节,即16个二进制位。 取值范围为-32768—32767 如果超过这范围,使用占4个字节的长整型,在整 数后面加上一个字母L,此时取值范围可以扩大到 -2147483648—2147483647
C语言程序设计
第一章 C语言概述
1.2 简单的C程序介绍
例1.1 第一个程序This is a c program . 注释 /* example1.1 The first C Program*/ #include <stdio.h> 编译预处理 void main() 主函数 { printf(“This is a c program.\n”); 语句 } 输出: This is a c program.
C语言第1章_C语言概述
1.8
几种集成编译环境
1.8 几种集成编译环境
全国计算机等级考试-二级C语言程序设计(08版)
1.8.1 Visual C++ 6.0运行环境
例子:
单击运行 运行结果 弹出运行 结果窗口
输入源程序
1.8.1 Visual C++ 6.0运行环境
利用Visual
C++ 6.0集成环境开发C程序的过
IBM
PC微机DOS、Windows平台上常见 的C语言版本有:
Borland公司:
Turbo
C,Turbo C++,Borland C++ C++ Builder(Windows版本)
Microsoft公司:
Microsoft Quick
C
C Visual C++(Windows版本)
BCPL( Basic Combined Programming Language)
– Martin Richards
英国剑桥大学(1967年)
B – Ken Thompson
美国贝尔实验室(1970)
BCPL和B语言不支 持数据类型
C语言 支持数 据类型 C – Dennis Ritchie
(1973)
1.2 C语言是中级语言
C语言作为中级语言:
允许对位、字节和地址(通过指针)进行操作; 能够较方便地读写寄存器,即可以较方便地操作 硬件; 能够较方便地嵌入汇编、调用中断。
因此,
C语言更适合编写系统程序。
1.2 C语言是中级语言
C语言的应用领域
一章C语言概述
第一章 C语言概述
第一章 C语言概述
printf函数(格式输出函数)
格式:printf(格式字符串,输出项列表) 说明: 1)格式字符串必须用双引号括起来。
普通字符:原样输出 格式说明符%d:输出相应输出项的值 2)输出项的个数与格式说明符的个数一致。 3)‘\n’表示回车换行
第一章 C语言概述
第一章 C语言概述
2. C是结构化语言 1)C语言具有结构化的控制语句 2)C语言是以函数为模块来编写源程序的, 所以C程序
是模块化的。 3)程序的各个模块间除了必要的信息交流外, 彼此互不
影响, 相互隔离。
3. C的“缺点” 语法限制不严格,程序设计自由度大 。
第一章 C语言概述
1.2 简单的C程序介绍
第一章 C语言概述
1.3 上机步骤
1. 清屏、编辑:F10、File New 2. 保存:F2 3. 编译:Alt+F9 4. 连接:F9 5. 执行:Ctrl+F9 6. 查看结果:Alt+F5 F10:选中菜单 F3:查找 Alt+X:退出
if (x>y) z=y;
else z=x; return(z);
/* 返回z值*/
}
第一章 C语言概述
经编译后运行如下: 14, 4 ↙ min=4 再次运行: 6, 29↙ min=6 本程序包括两个函数: 主函数main和子函数min。
第一章 C语言概述
scanf函数(格式输入函数)
格式:scanf(格式字符串,输入项列表) 说明: 1)格式字符串必须用双引号括起来。
普通字符:原样输入 格式说明符%d:输入相应输入项的值 2)输入项的个数与格式说明符的个数一致。 3)每个变量名前要加一取地址符&。
c语言基础教程 第一章 c语言概述
C语言第一章 c语言概述C语言基础教程1.1.c语言的由来与发展1.1.1. c语言的由来c语言诞生干19?2年,由美国电话电报公司(AT&T)贝尔实验室的D. M. Ritchie设计,并首先在一台使用UNIX操作系统的DEC PDP-11计算机上实现。
C语言是在一种称为B语言的基础上,克服了B语言依赖于机器又无数据类型等局限性开发的语言。
在1970年,美国贝尔实验室的IC. Thompson以BCPL语言为基础,设计出一种既简单又接近于硬件的B语言,并用它写成了第一个UNIX操作系统,在PDP-7计算机上实现的。
B语言是取了BCPL语言的第一个字母。
而BCPL语言(Basic Combined ProgrammingLanguage)是3.967年英国剑桥大学的M. Richard,基于一种CPL语言(combined Program-wing Language)提出的一种改进的语言。
而CPL语言又是于1963年英国剑桥大学根据AL-GOL 8。
推出的一种接近硬件的语言。
由此可见,G语言的根源可以追溯到ALGOL 60,它的演变过程如下所示:ALGOL6o(1960年)与CPL(1963年)一BCPL(1967年)iB<3970年)-->C(1972年1. 1. 2 C语言的发展C语言是在人们设想寻找一种既具有一般高级语言的特征,又具有低级语言特点的语言的情况下应运而生的,它具有人们的这种期望,集中了高级语言和低级语言的优点。
最初的C语言就是为了描述和实现UNIX操作系统而产生的一种工具语言。
1973年,贝尔实验室的KThampson和D. M. Ri}chie两人合作使用C语言修改了UNIX操作系统,即uNZx 第5版本。
原来的UNIX操作系统是用汇编语言写的,改写后UNIX操作系统中90%以上使用了C语言。
从此,C语言的命运与UNIX操作系统便有着密切的联系,随着UNIX操作系统的发展和推广,C语言也在被广泛的使用和发展。
编程语言基础-C语言-第1章-C语言概述ppt课件
c = sum( a, b );
/* 计算2个整数之和 */
printf("sum = %d \n", c); /* 输出结果
*/
getch();
}
认识到了贫困户贫困的根本原因,才 能开始 对症下 药,然 后药到 病除。 近年来 国家对 扶贫工 作高度 重视, 已经展 开了“ 精准扶 贫”项 目
C程序特点
认识到了贫困户贫困的根本原因,才 能开始 对症下 药,然 后药到 病除。 近年来 国家对 扶贫工 作高度 重视, 已经展 开了“ 精准扶 贫”项 目
第1章 C 语 言 概 述
❖ 1.1 C语言的产生和发展 ❖ 1.2 C语言的特点 ❖ 1.3 简单的C程序介绍 ❖ 1.4 C 程序上机步骤 ❖ 本章小结
❖ C语言程序以一个至多个函数组成,至少有 一个main( ) 函数。
❖ 使用高级编程语言编写的源程序必须经过编 译后才能运行。
❖ 熟练掌握源程序的编辑、保存、编译、连接 及运行的操作方法,了解程序调试的基本概 念。
1.4 C 程序上机步骤
开始
有 不正确
编辑
编译
有错? 无
连接
执行
结果 正确? 正确
结束 图 1-1
目标
认识到了贫困户贫困的根本原因,才 能开始 对症下 药,然 后药到 病除。 近年来 国家对 扶贫工 作高度 重视, 已经展 开了“ 精准扶 贫”项 目
WinTc介绍
认识到了贫困户贫困的根本原因,才 能开始 对症下 药,然 后药到 病除。 近年来 国家对 扶贫工 作高度 重视, 已经展 开了“ 精准扶 贫”项 目
程序如下:
#include <stdio.h>
main( )
C语言程序设计 第1章 C语言概述
C语言程序设计(基于CDIO思想)
26
3.字符型数据
(1)字符型常量
用单引号括起来的字符,如:如'a'、'+'、'2'、’'。
以‘\’开头的特殊字符(转义字符),‘\n’、‘\t’,有的转 为字符自身(‘\\’),用转义字符可输出任何用ASCII码表示的 字符,如‘\141’代表 ‘a’
(2)字符型变量
C语言程序设计(基于CDIO思想)
17
常量与变量
#define PRICE 30
变量先定 义后使用
main() {
int num,total; float v ,r,h; num=10;
符号常量
名字常用大写
常量
变量
total=num*PRICE; printf("total=%d",tatal);
李四,计算机191,计算机,打篮球
C语言程序设计(基于CDIO思想)
8
1.5 标识符、变量与常量
例2 计算圆面积
#include “stdio.h”
main()
{
float a, r;
/*定义变量 */
r=5.0;
/* 给变量赋值*/
a=3.1415926*r*r; /*根据题意处理数据*/
printf(“圆面积:%f\n”,a); /*输出结果*/
注意:C语言是大小写敏感的语言,所有关键字,函 数名都为小写。若将main,printf 写成大写,程序编 译时将出错。
C语言程序设计(基于CDIO思想)
7
C程序基本知识
实战演练 编程自我介绍 #include "stdio.h" main() {
第1章_C语言概述
输入理想的程序, 输入理想的程序,输出快乐的人生
3
程序设计语言
自然语言
如何交流 ?
计算机语言
输入理想的程序, 输入理想的程序,输出快乐的人生
4
程序设计语言
计算机能读懂的语言—— 机器语言(Machine Language) )
由一系列二进制0和1组成 机器语言编写的1+1程序 程序 机器语言编写的
编译器读入源代码
把程序员的意图转换成可执行程序, 把程序员的意图转换成可执行程序,供他人使用
运行可执行程序
编译器
C源程序 可执行程序
输入理想的程序, 输入理想的程序,输出快乐的人生
9
C语言简介 语言简介
CPL →BCPL →B →C ,其中: 其中:
CPL:1963,英国剑桥 : , BCPL: 1967,英国剑桥 : , B:1970,美国贝尔实验室 : , C:1972,美国贝尔实验室(D. Ritchie) : ,美国贝尔实验室( )
输入理想的程序, 输入理想的程序,输出快乐的人生
19
总结
程序是为让计算机完成某项任务而编写的逐条执行的指令 序列 C语言的特点包括:结构化的程序设计语言、语句简洁、 语言的特点包括:结构化的程序设计语言、语句简洁、 语言的特点包括 功能强大、 功能强大、移植性好 C程序的基本结构包括:预处理语句、main函数,函数体 程序的基本结构包括:预处理语句、 函数, 程序的基本结构包括 函数 使用{ 括起来 括起来, 使用 }括起来,函数体中每条语句必须用分号结束 C程序编写完成后,首先需要通过编译转换成目标文件, 程序编写完成后,首先需要通过编译转换成目标文件, 程序编写完成后 然后通过连接创建可执行程序, 然后通过连接创建可执行程序,最后才可以执行该程序 可以使用Visual C++ 6.0编辑和运行 程序 编辑和运行C程序 可以使用 编辑和运行
C语言第一章概论
void solve(double a,double b,double c) { double d,x1,x2; d=b*b-4*a*c; /*求△*/ if (d<0) /*△小于0的情况*/ printf("无解\n"); else if (d==0) /*△等于0的情况*/ { x1=(-b)/(2*a); printf("一个解:x=%g\n",x1); } else /*△大于0的情况*/ { x1=(-b+sqrt(d))/(2*a); x2=(-b-sqrt(d))/(2*a); printf("两个解:x1=%g,x2=%g\n",x1,x2); } }
(6)现在要在空的Proj1_1工程中添加源程序。再次选择 “Files”|“New”菜单命令,在出现的对话框中选择“Files”选项卡,选中 “C++ Source File”项,在右边的File对话框中输入“exam1_1”,如下图所 示。
(7)单击“OK”命令按钮,在出现的编辑窗口中可以输入exam1_1.cpp 文件的程序代码。 (8)如果exam1_1.cpp文件已建好,要添加到Proj1_1工程中,可以在 VC++界面中选择“Project”|“Add to Project”|“Files”选择命令,如左图所示, 在出现的对话框中选择exam1_1.cpp文件,这样就将该文件添加到Proj1_1工 程中了,如右图所示,此时也可以在编辑窗口中修改源程序代码。
程序的组成
本质上讲,任何程序都是用于实现 数据运算的。而程序必须采用某种计 算机语言编写,本书采用C语言编写 程序。
对数据的描述。在程序中要指定数
据的类型和数据的组织形式。 对操作的描述。即操作步骤,也就 是算法。
C语言 第一章 C语言概述
|<
1.3 C语言的特点(1)
1.语言简洁,使用方便、灵活; C语言总共只有32个定义字,9种控制语句,程序书写形 式自由,压缩了一切不必要的成分,非常简洁紧凑。 2. 运算符丰富。 C的运算符包含的范围很广泛,共有34种运算符.C把括 号、赋值、强制类型转换等都作为运算符处理,从而使 C的运算类型极丰富,表达式类型多样化。 3. 数据结构丰富,具有现代化语言的各种数据结构。C 的数据类型有整型、实型、字符型、数组类型、指针类 型、结构体类型、共用体类型等。能用来实现各种复杂 的数据结构的运算。
>
第一章 C语言概述
本章要点
了解C语言的历史背景 了解C语言的特点; 初步认识C语言程序的基本框架结构; 掌握编制一个可运行的C语言程序的全过程。
>
C语言概述
§1. 1 程序与程序设计语言 §1.2 C语言出现的历史背景 §1.3 C语言的特点 §1.4 c语言程序概貌 §1.5 c语言程序的编制环境 §1.5 学习C语言的方法及要求
>
2. C语言程序结构示例
程序示例一 程序示例二
程序示例三
3. C语言程序的文件类型
在编制调试C语言程序过程中,会产生许多文件,其文件类型一般有: .c(.cpp) ---- 为编辑完保存后的C语言源程序文件; .h ---- 为C语言提供的头文件,也可以自己编辑产生; .obj ---- C语言源程序经编译后产生的目标代码文件; .exe ---- C语言目标代码文件经连接后产生的可执行文件; .dat (.txt)---- C语言中常用的数据文件; .bak ---- C语言源程序中备份文件;
C语言程序设计第1章-C语言概述课件
1.2.2 Visual C++ 6.0开发环境介绍(续)
图1-8 新建源文件
图1-8 新建源文件
1.2.2 Visual C++ 6.0开发环境介绍(续)
5) 点击“确定”按钮以后,在窗口左边的工作区会看到两个选项卡: ClassView和 FileView。一般默认为ClassView,点击FileView,可以才从ClassView 切换到FileView选项卡。逐步点击工作区p1工程下面的“+”号,可以 在Source Files目录下看到刚才新建的1-1.c源文件,这个时候可以在 右边的程序编辑窗口中输入源代码,如下图1-9所示。
1.1.1 C语言的发展
C语言是国际上流行的计算机高级程序设计语言之一。与其他高 级语言相比,C语言的硬件控制能力和运算表达能力强,可移植性 好,效率高(目标程序简洁,运行速度快)。因此应用面非常广, 许多大型软件都是用C语言编写的。
艾伦.佩利(Alan J.Perlis)在巴黎举行的全世界一流软件专家参加 的讨论会上,发表了“算法语言Algol 60”报告,确定了程序设计语言 Algol 60;1962年,艾伦.佩利又对Algol 60进行了修正;1963年,英 国剑桥大学在ALGOL语言的基础上进行了改进,推出CPL语言; 1967 年剑桥大学的马丁·理查德对CPL简化,产生了BCPL语言; 1970年美国 贝尔实验室的肯·汤姆逊对BCPL语言进行了修改,取其
1.2.2 Visual C++ 6.0开发环境介绍(续)
图1-9 新建源文件
图1-9 新建源文件
1.2.2 Visual C++ 6.0开发环境介绍(续)
注意:工作空间可以包含多个工程,工程又可以包含多个程序 文件,工程与工程之间相互不影响,工作空间类似于文件夹,工程 类似于文件夹中的文件。
第1章C语言概述
第 一 章
C
语 言 概 述
C
计算机语言
语 言 程 序 设 计
#include <stdio.h> void main(void) { int n,i,r; scanf(“%d”,&n); i=2; do 第 { r=n%i; 一 if(r==0) 章 { printf(“%d不是素数!\n“,n);exit(1);} i=i+1; C 语 } 言 while(i<n); 概 printf(“%dn是素数!\n“,n); 述 }
第 一 章
C
语 言 概 述
7
C
语 言 程 序 设 计
1.1.2 计算机算法(续)
第 一 章
C
语 言 概 述
算法的基本特性 有穷性:算法中包含有限个步骤,且每一步骤在 合理的时间内能完成 确定性:算法中的每一条指令有确切的含义 可行性:算法中指定的操作是计算机可以实现的 有零个或多个输入: 有一个或多个输出:
C
语 言 概 述
⒊算法的描述 自然语言 流程图 伪代码 计算机语言
10
C
自然语言
语 言 程 序 设 计
例:对一个大于或等于3的正整数,判断它是否为素 数。
算法: ①输入n的值; ②i=2; ③n被i除,得余数r; ④如果r=0,表示n能被i整除,则打印n“不是素数”,算法 结束;否则执行⑤; ⑤i+1→i; ⑥如果i≤n-1,返回③;否则打印n“是素数”;然后算法结 束。
8
C
语 言 程 序 设 计
1.1.2 计算机算法(续) 算法的评价
有效性:
计算机执行后能否得到确定的结果 误差(可接受)
效率问题:
第一篇C语言概论
C语言教程第一章: C语言概论C语言的进展进程“THE C PROGRAMMING LANGUAGE”一书。
通常简称为《K&R》,也有人称之为《K&R》标准。
可是,在《K&R》中并无概念一个完整的标准C语言,后来由美国国家标准学会在此基础上制定了一个C 语言标准,于一九八三年发表。
通常称之为ANSI C。
今世最优秀的程序设计语言初期的C语言主若是用于UNIX系统。
由于C语言的壮大功能和各方面的优势慢慢为人们熟悉,到了八十年代,C开始进入其它操作系统,并专门快在各类大、中、小和微型运算机上取得了普遍的利用。
成为今世最优秀的程序设计语言之一。
C语言的特点C语言是一种结构化语言。
它层次清楚,便于按模块化方式组织程序,易于调试和保护。
C语言的表现能力和处置能力极强。
它不仅具有丰硕的运算符和数据类型,便于实现各类复杂的数据结构。
它还能够直接访问内存的物理地址,进行位(bit)一级的操作。
由于C语言实现了对硬件的编程操作,因此C语言集高级语言和低级语言的功能于一体。
既可用于系统软件的开发,也适合于应用软件的开发。
另外,C语言还具有效率高,可移植性强等特点。
因此普遍地移植到了各类各型运算机上,从而形成了多种版本的C语言。
C语言版本目前最流行的C语言有以下几种:·Microsoft C 或称MS C·Borland Turbo C 或称Turbo C·AT&T C这些C语言版本不仅实现了ANSI C标准,而且在此基础上各自作了一些扩充,使之加倍方便、完美。
面向对象的程序设计语言在C的基础上,一九八三年又由贝尔实验室的Bjarne Strou-strup推出了C++。
C++进一步扩充和完善了C语言,成为一种面向对象的程序设计语言。
C++目前流行的最新版本是Borland C++4.5,Symantec C++6.1,和Microsoft VisualC++ 2.0。
第一章 C语言概论
HeFei University of Technology Xuan & li
Chapter 1
Introduction
死过程
算法确定性示例
图书馆l
医院h
ab if( d min)b l else if(to h)b h,h l else if(to s)b s,s l end
商店a
Introduction
思考题:
⒈用程序流程图描述算法 1 x>0 y= 0 x=0 -1 x<0
⒉用框图描述,欧几里德求最大公约数算法。 ⒊从生活或学习中找出可以用算法描述的一件事,并通过符号 化的伪语言以及框图加以抽象的描述。
HeFei University of Technology Xuan & li
HeFei University of Technology Xuan & li
Chapter 1
Introduction
算法举例
⒈求数列n=1+2+…+m的值n,当n>10000时结束。 步骤: S1: 初始化 0n, 0t S2: t+1 t n+t n S3: n>10000? 满足到S4,否则到S2。 S4: OUTPUT n ⒉欧几里德求m,n(m>n)的最大公约数算法 S1: m Mod n k S2: k不为0: nm, kn (原除数变成新的被除数,余数变成新的除数)。 重复S1 否则:到S3。 S3: 输出 n的值为最大公约数。 HeFei University of Technology Xuan & li
计算机的语言在发展的过程中经历了三个阶段: 如:表示2+3 高级语言 面向问题的类自然语言,翻译后运行。 Source
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言教程第一章: C语言概论C语言的发展过程C语言是在70年代初问世的。
一九七八年由美国电话电报公司(AT&T)贝尔实验室正式发表了C语言。
同时由B.W.Kernighan和D.M.Ritchit合著了著名的“THE C PROGRAMMING LANGUAGE”一书。
通常简称为《K&R》,也有人称之为《K&R》标准。
但是,在《K&R》中并没有定义一个完整的标准C语言,后来由美国国家标准学会在此基础上制定了一个C 语言标准,于一九八三年发表。
通常称之为ANSI C。
当代最优秀的程序设计语言早期的C语言主要是用于UNIX系统。
由于C语言的强大功能和各方面的优点逐渐为人们认识,到了八十年代,C开始进入其它操作系统,并很快在各类大、中、小和微型计算机上得到了广泛的使用。
成为当代最优秀的程序设计语言之一。
C语言的特点C语言是一种结构化语言。
它层次清晰,便于按模块化方式组织程序,易于调试和维护。
C语言的表现能力和处理能力极强。
它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。
它还可以直接访问内存的物理地址,进行位(bit)一级的操作。
由于C语言实现了对硬件的编程操作,因此C语言集高级语言和低级语言的功能于一体。
既可用于系统软件的开发,也适合于应用软件的开发。
此外,C语言还具有效率高,可移植性强等特点。
因此广泛地移植到了各类各型计算机上,从而形成了多种版本的C语言。
C语言版本目前最流行的C语言有以下几种:·Microsoft C 或称MS C·Borland Turbo C 或称Turbo C·AT&T C这些C语言版本不仅实现了ANSI C标准,而且在此基础上各自作了一些扩充,使之更加方便、完美。
面向对象的程序设计语言在C的基础上,一九八三年又由贝尔实验室的Bjarne Strou-strup推出了C++。
C++进一步扩充和完善了C语言,成为一种面向对象的程序设计语言。
C++目前流行的最新版本是Borland C++4.5,Symantec C++6.1,和Microsoft VisualC++ 2.0。
C++提出了一些更为深入的概念,它所支持的这些面向对象的概念容易将问题空间直接地映射到程序空间,为程序员提供了一种与传统结构程序设计不同的思维方式和编程方法。
因而也增加了整个语言的复杂性,掌握起来有一定难度。
C和C++但是,C是C++的基础,C++语言和C语言在很多方面是兼容的。
因此,掌握了C语言,再进一步学习C++就能以一种熟悉的语法来学习面向对象的语言,从而达到事半功倍的目的。
C源程序的结构特点为了说明C语言源程序结构的特点,先看以下几个程序。
这几个程序由简到难,表现了C语言源程序在组成结构上的特点。
虽然有关内容还未介绍,但可从这些例子中了解到组成一个C源程序的基本部分和书写格式。
main(){printf("c语言世界,您好!\n");}main是主函数的函数名,表示这是一个主函数。
每一个C源程序都必须有,且只能有一个主函数(main函数)。
函数调用语句,printf函数的功能是把要输出的内容送到显示器去显示。
printf函数是一个由系统定义的标准函数,可在程序中直接调用。
#include "stdio.h"#include "math.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的文件也称为头文件或首部文件定义两个实数变量,以被后面程序使用显示提示信息从键盘获得一个实数x求x的正弦,并把它赋给变量s显示程序运算结果main函数结束程序的功能是从键盘输入一个数x,求x的正弦值,然后输出结果。
在main()之前的两行称为预处理命令(详见后面)。
预处理命令还有其它几种,这里的include 称为文件包含命令,其意义是把尖括号""或引号<>内指定的文件包含到本程序来,成为本程序的一部分。
被包含的文件通常是由系统提供的,其扩展名为.h。
因此也称为头文件或首部文件。
C语言的头文件中包括了各个标准库函数的函数原型。
因此,凡是在程序中调用一个库函数时,都必须包含该函数原型所在的头文件。
在本例中,使用了三个库函数:输入函数scanf,正弦函数sin,输出函数printf。
sin函数是数学函数,其头文件为math.h文件,因此在程序的主函数前用include命令包含了math.h。
scanf和printf是标准输入输出函数,其头文件为stdio.h,在主函数前也用include命令包含了stdio.h文件。
需要说明的是,C语言规定对scanf和printf这两个函数可以省去对其头文件的包含命令。
所以在本例中也可以删去第二行的包含命令#include。
同样,在例1.1中使用了printf 函数,也省略了包含命令。
在例题中的主函数体中又分为两部分,一部分为说明部分,另一部分执行部分。
说明是指变量的类型说明。
例题中未使用任何变量,因此无说明部分。
C语言规定,源程序中所有用到的变量都必须先说明,后使用,否则将会出错。
这一点是编译型高级程序设计语言的一个特点,与解释型的BASIC语言是不同的。
说明部分是C源程序结构中很重要的组成部分。
本例中使用了两个变量x,s,用来表示输入的自变量和sin函数值。
由于sin函数要求这两个量必须是双精度浮点型,故用类型说明符double来说明这两个变量。
说明部分后的四行为执行部分或称为执行语句部分,用以完成程序的功能。
执行部分的第一行是输出语句,调用printf函数在显示器上输出提示字符串,请操作人员输入自变量x的值。
第二行为输入语句,调用scanf函数,接受键盘上输入的数并存入变量x中。
第三行是调用sin函数并把函数值送到变量s中。
第四行是用printf 函数输出变量s的值,即x的正弦值。
程序结束。
#include "stdio.h"#include "math.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的文件也称为头文件或首部文件定义两个实数变量,以被后面程序使用显示提示信息从键盘获得一个实数x求x的正弦,并把它赋给变量s显示程序运算结果main函数结束程序的功能是从键盘输入一个数x,求x的正弦值,然后输出结果。
在main()之前的两行称为预处理命令(详见后面)。
预处理命令还有其它几种,这里的include 称为文件包含命令,其意义是把尖括号""或引号<>内指定的文件包含到本程序来,成为本程序的一部分。
被包含的文件通常是由系统提供的,其扩展名为.h。
因此也称为头文件或首部文件。
C语言的头文件中包括了各个标准库函数的函数原型。
因此,凡是在程序中调用一个库函数时,都必须包含该函数原型所在的头文件。
在本例中,使用了三个库函数:输入函数scanf,正弦函数sin,输出函数printf。
sin函数是数学函数,其头文件为math.h文件,因此在程序的主函数前用include命令包含了math.h。
scanf和printf是标准输入输出函数,其头文件为stdio.h,在主函数前也用include命令包含了stdio.h文件。
需要说明的是,C语言规定对scanf和printf这两个函数可以省去对其头文件的包含命令。
所以在本例中也可以删去第二行的包含命令#include。
同样,在例1.1中使用了printf 函数,也省略了包含命令。
在例题中的主函数体中又分为两部分,一部分为说明部分,另一部分执行部分。
说明是指变量的类型说明。
例题中未使用任何变量,因此无说明部分。
C语言规定,源程序中所有用到的变量都必须先说明,后使用,否则将会出错。
这一点是编译型高级程序设计语言的一个特点,与解释型的BASIC语言是不同的。
说明部分是C源程序结构中很重要的组成部分。
本例中使用了两个变量x,s,用来表示输入的自变量和sin函数值。
由于sin函数要求这两个量必须是双精度浮点型,故用类型说明符double来说明这两个变量。
说明部分后的四行为执行部分或称为执行语句部分,用以完成程序的功能。
执行部分的第一行是输出语句,调用printf函数在显示器上输出提示字符串,请操作人员输入自变量x的值。
第二行为输入语句,调用scanf函数,接受键盘上输入的数并存入变量x中。
第三行是调用sin函数并把函数值送到变量s中。
第四行是用printf 函数输出变量s的值,即x的正弦值。
程序结束。
printf("input number:\n");scanf("%lf",'C10F10&x);s=sin(x);printf("sine of %lf is %lf\n",'C10F10x,s);运行本程序时,首先在显示器屏幕上给出提示串input number,这是由执行部分的第一行完成的。
用户在提示下从键盘上键入某一数,如5,按下回车键,接着在屏幕上给出计算结果。
输入和输出函数在前两个例子中用到了输入和输出函数scanf和printf,在第三章中我们要详细介绍。
这里我们先简单介绍一下它们的格式,以便下面使用。
scanf和printf这两个函数分别称为格式输入函数和格式输出函数。
其意义是按指定的格式输入输出值。
因此,这两个函数在括号中的参数表都由以下两部分组成:“格式控制串”,参数表格式控制串是一个字符串,必须用双引号括起来,它表示了输入输出量的数据类型。
各种类型的格式表示法可参阅第三章。
在printf函数中还可以在格式控制串内出现非格式控制字符,这时在显示屏幕上将原文照印。
参数表中给出了输入或输出的量。
当有多个量时,用逗号间隔。
例如:printf("sine of %lf is %lf\n",x,s);其中%lf为格式字符,表示按双精度浮点数处理。
它在格式串中两次现,对应了x 和s两个变量。