C语言1

合集下载

C语言(一)

C语言(一)

C语言程序设计主讲教师:马驰Email:teacher_ma@本课程讲述如何使用C语言进行真正的编程。

C 语言是目前软件开发者们最主要的编程语言。

这也是它受到广泛传播并且成为标准的原因。

本课程将侧重学习一个具体问题的算法化的过程。

本课程还将学习在实际编程过程中应该掌握的基本技巧。

以及用C编程的风格和艺术。

要写出一个好的程序,不仅仅是敲一些代码,功能正确。

还应该简单易读。

在学习的示例中,我们强调的是简单、实用的原则。

本课程是如何组织的?第一部分基础第二部分简单程序设计第三部分高级程序设计算法概念、编程原理、编程风格、基本数据类型定义、算术运算符及表达式顺序结构、选择结构、循环结构、数组的定义及应用、程序设计过程函数、变量的存储类别、指针、结构体与共用体、文件·计算机与程序·计算机中的数据·程序设计由程序控制计算机完成人们想做的工作。

由0/1代码组成的二进制数,也可以表示为十六进制数和八进制数。

在20世纪80年代,结构化的程序设计是最主要、最通用的程序设计方法。

程序=数据结构+算法在编写一个程序中,需要对两个方面进行描述:(1)对数据的描述(数据流):指定数据的类型和数据的结构。

(不同的语言对数据的定义不同,我们将学习C语言的数据类型和数据结构)(2)对操作的描述(控制流):要指定操作的步骤,既算法。

(算法具有通用性,脱离于语言之外,是程序设计的灵魂)什么是算法(Algorithm)?就是为了解决一个特定的问题而采取的确定的、有限的、按照一定次序进行的、缺一不可的执行步骤。

在计算机能执行的算法就是计算机算法。

计算机算法可以分成两大类:数值运算算法和非数值运算算法。

注意:为了有效地利用计算机解决实际问题,在设计算法时不仅要保证计算机执行算法的正确性,还要考虑算法的质量,选择适合于具体问题的算法。

例1:猴子吃桃问题。

有一堆桃子不知数目,猴子第一天吃掉一半并多吃了一个,第二天照此方法,吃掉剩下桃子的一半加一个,天天如此,到第十天早上,猴子发现只剩一只桃子了,问这堆桃子原来有多少个?算法写成:(1)a1=1{第10天的桃子数,A1的初始值};i=9{计数器的初值为9};(2)a0=2*(A1+1){计算当天的桃子数};(3)a1=a0;{将当天的桃子数作为下一次计算的初值};(4)i=i-1;(5)若i>=1,继续循环执行(2);(6)输出A0的值。

第1章C语言基本知识.ppt

第1章C语言基本知识.ppt
①while型(当型)循环的流程图 while型循环的执行顺序为:重复判断条件、如果条件为 真则执行A,一但条件为假,则跳出循环。 ②do-while(直到型)型循环的流程图 do_while型循环的执行顺序为:先执行A,再判断条件, 若条件为真则重复执行A,一但条件为假,则跳出循环。
22/38
A被称为循环体,条件被称为循环控制条件 。
while型循环的流程图
do_while型循环的流程图


23/38
5/38
第一章 C语言概述
C语言程序设计
第一章 C语言概述
34种运算符:
算术运算符:+ - * / % ++ -关系运算符:< <= == > >= != 逻辑运算符:! && || 位运算符 :<< >> ~ | ^ & 赋值运算符:= 及其扩展 条件运算符:?: 逗号运算符:, 指针运算符:* & 求字节数 :sizeof 强制类型转换:(类型) 分量运算符:. -> 下标运算符:[] 其它 :( ) -
<>
10/38
main( )
{ main( )
{int …i ,…j ,…s…um…; ….
sum…=…0; …………
for(i=1…; i<…10…;i…++.).
{
…………..
for(j=1;…j<…10…;j++)
{
……….
…sum…+…=i…*j …;
} …………….
} ……………….
prin…tf(…“%…d\…n”…,su…m.).;

C语言第1章vc

C语言第1章vc

P3
main( ) { int a,b,x; double c,y,z; c=4.0; y=sqrt(c); a=10; b=20; x=mysum(a,b); z=x+y; printf("z=%lf\n",z); }
int mysum( int m, int n ) { int k; k=m+n; return k; } 程序的运行结果是: z=32.000000
文件math.h
main函数
…… c=4.0; y=sqrt(c); a=10; b=20; x=mysum(a,b); z=x+y; … …

② ④ ⑤ ⑥ ⑨ ⑧ ⑦

sqrt函数 …… 其它函数 ……
mysum函数
……
本课程的目标
掌握解决简单问题的步骤 用C语言能够实现如下程度的功能
第1章 C语言基础知识
1.1 C语言概述
1.2 简单C程序与上机步骤 1.3 数据类型 1.4 常量与变量 1.5 运算符和表达式
例题链接
例题链接
例1.1 例1.2 例1.3 例1.4
例1.5 例1.8
例1.6 例1.9
例1.7 例1.10
例1.11
例1.14
例1.12
例1.13
例1.17
例1.15
12.300000 12345.669922 12345.670000

1.4.4 字符型常量与变量 1.字符型常量
P13
常规字符 用单引号括起来的单个字符 转义字符 用\开头的字符序列

字符常量按其ASCII码值参加整数运算
【例1.11】将常规字符按不同格式输出。 #include <stdio.h> main( ) a-97 A-65 { printf("%c-%d,%c-%d\n",’a’,’a’ ,’A’, ’A’); printf("%d,%c\n",’a’+1,’A’+1); 98 B printf("%d\n",’a’-’A’); 32 }

C语言第一章

C语言第一章
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.

第1章C语言C语言概述

第1章C语言C语言概述
C 语 言 概 述
C

言 程
Ritchie和Thompson在开发UNIX



第 一 章
C 语 言 概 述
C
语 言
和Unix的设计者Ken Thompson
程 序
接受美国国家技术勋章


第 一 章
C 语 言 概 述
C 语
C语言发展史

程 序
ALGOL 60语言

计 将CPL语 言煮干, 提炼出它 的精华
ADD AX, 1
C

程序设计语言的故事


序 设
BASIC语言编写的1+1程序

PRINT 1+1
第 C语言编写的1+1程序


C
#include <stdio.h>

main()

{
概 述
printf("%d\n", 1+1);
}
C




设 计

应用编程语言
– 机器语言
– 汇编语言
– Basic
语 前提到的例题.最后我认为你可以自己来写C语言标准函数,比
言 概
如strcpy(); strlen();strcat();最好不要过分依赖库函数.

C
语 言
学习C语言的参考书

C 序
设 1、轻松学习 程序设计
计 ————揭开计算机与程序设计的奥秘
何勤著
中国电力出版社 2008.8
2、C语言大学实用教程(第2版)

C语言第一课

C语言第一课
函数体结束 函数体以闭大括弧 } 结束。
关于#include
在编译器对我们写的源程序进行编译之前,预处理器 会对我们的写的源代码进行必要的处理,称为预处理。。 #include 就是一个预处理指令,它的作用是将头文件 stdio.h 里的内容包含进我们的程序,产生的结果是将
stdio.h 里的内容一字不漏地插入 #include <stdio.h>出现
C语言结构小结
C 程序由一个以上的函数组成,而且必须有 main 函数。函数 由函数头和函数体组成。函数头由返回值、函数名以及参数列表 (可以是void)组成。函数体从 { 开始,以 } 结束。函数体里可以 有一系列的语句,每个语句以分号(;)结束。例如:
预处理指令
函数头 函数体开始
——〉 #include <stdio.h>

#include “stdio.h” int main(void) {
%d 告诉 printf 用num的值替换掉它自 己 ,并且以整数形式显示num的值。因为 num 的值为 1 ,所以这个语句在屏幕上显 /*定义一个变量*/ 示“看看结果:1” ,并且换行。
C语言的注释语句。新的 编译器中可以用//
printf(“欢迎学习C语言! \n”); printf(“看看结果:%d”,num); return 0; }

#include “stdio.h” int main(void) { /*定义一个变量*/ int num; num = 1;
a + b = 600 a * b = 80000
a – b = 200
a/b=2
赋值语句 这个语句将 1 赋值给变量 num 。执行这个语句后,num 的 值等于 1 。

C语言第一章绪论详解

C语言第一章绪论详解
23
程序书写风格
同一层次大 括号对齐
分层缩进并对齐
24
int a, b, c; printf(“Please input a and b:\n”); scanf(“%d%d”, &a, &b);
c = a; a = b; b = c;
printf(“a = %d b = %d”, a, b) return 0; }
/*输入变量a和b的值*/ /*交换a和b*/ /*输出a和b的值*/
#include<stdio.h>
int add(int x, int y)
/*定义add()函数,求两个数之和*/
{
int z;
z = x + y;
return z;
}
int main(void)
/*定义主函数*/
{
int a,b,c;
printf(“Please input a and b:\n”);
第一章 绪 论
1
程序与程序设计语言
程序(Program)是为实现特定目标或解决特 定问题而用计算机语言编写的命令序列的集合, 是为实现预期目的而进行操作的一系列语句和指 令。用于编写计算机可执行程序的语言称为程序 设计语言,程序设计语言可分为:
机器语言 汇编语言 高级语言
完成两数相加的操作: 机器语言:10110011 …… 汇编语言:add ax, bx 高级语言:C=A+B
⑤ …… }

}
13
C语言程序的组成及书写规则
C程序是由一个或多个函数组成的,其中必须要有一个 且只能有一个main( )函数。无论这个函数的位置在哪里 ,程序总是从它开始执行。main( )函数可以调用其它函 数,但是其它函数不能调用main( )函数。

C语言-1基础

C语言-1基础

C语言程序设计 ◆C语言程序结构
1. C程序是由函数构成的。一个C源程序至少包含一个主函数
(main或主程序)和若干个其它函数(子函数或子程序) 2. 3. 一个函数由两部分程序组成:说明部分和函数体 一个C程序总是从main函数开始执行,不论main函数放在 程序中的什么位置。程序的流程是通过主函数main调用其 它子函数,或子函数间的相互调用 4. C程序书写格式自由,一行内可以写多条语句,但每一语 句必须用分号(“;”)结束
(2)C语言是贝尔实验室于70年代初研制出来的,后来又被多次
改进,并出现了多种版本。80年代初,美国国家标准化协会(ANSI), 根据C语言问世以来各种版本对C语言的发展和扩充,制定了ANSI C标 准(1989年再次做了修订)。 本课以ANSI C 标准来介绍。
C语言程序设计
一 、 C 语 言 发 展 过 程
d<0
no x1=(-b+sqrt(d))/2/a x2=(-b-sqrt(d))/2/a 输出实根
x1=(-b+sqrt(-d)i)/2/a x2=(-b-sqrt(-d)i)/2/a 输出虚根
结束
C语言程序设计
开始 流程图二 输入a,b,c yes a=0 no
x=-c/b yes 输出 x
d=b*b-4*a*c
优点:比机器语言较易理解,执行速度快。
缺点:难度大,非专业人士难以掌握。
C语言程序设计
第三代:面向过程的高级语言= =〉或称算法语言。如:
Fortran,Basic,Pascal,C 等等。 优点:灵活,易于理解,容易查错。
缺点:对大型程序而言维护性较差,对“拟定”好的
程序难以扩充,修改(所谓牵一而动百)。 第四代:非过程化的高级语言==〉是一种面向对象的设计
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

00000101
11110100
计算12-5的机器语言代码
6
1.1.1 程序设计语言
机器语言

用机器语言编写程序的优点:

质量高 占存储空间小 执行速度快 能由计算机直接执行 依赖于具体计算机 难记忆 易出错 阅读理解困难 编程者需了解特定计算机的硬件及指令系统

用机器语言编写程序的缺点:
11
1.1.1 程序设计语言
高级语言
编译:Compiling
将高级语言源程序翻译成为功能等价的低级(机器)语 言目标程序的过程。
编译程序:Compiler
完成编译工作的专门程序。

对不同的程序设计语言需要配备不同的编译程序。 对使用不同机器语言的机器需要配备不同的编译程序。
库文件 数据
源程序
31
1.2.4 C语言程序例



C语言程序中注释的一般表示形式是: /* ……注释内容…… */ 注释内容可以占用若干书写行,只要以“/*”开头、用 “*/”结束。C89或C99都规定C语言的注释不能嵌套。如 : /* void func (void) { printf(“This is a function\n”); /* nested comment ,这种嵌套的注释是错误的!*/ } */ 这样的注释是错误的。 C99中还允许使用以连续两个斜杠字符(//)开头的注释 形式。即“// ……注释内容……”。但是这种注释被限制 32 在一行内。
15

从作用与执行的效果角度看

1.1.3 程序设计

设计、编制、测试程序的方法和过程 程序设计的内容与内涵

设计 程序编制 程序调试 程序测试 程序验证 程序设计风格 ┅┅
16
1.1.3 程序设计

结构化程序设计方法 一种传统的程序设计方法

本质是功能设计 设计基本原则 :自顶向下,逐步细化,由抽象到具体 的功能分解过程
26
1.2.3 C语言源程序的结构与执行
1. C语言源程序的结构

外部数据定义性声明,顾名思义即在函数外部 定义数据对象。

函数及外部数据引用性声明即声明要引用本程序中 已经定义的函数或外部数据对象。 在函数外定义的数据对象可被程序中的诸函数公用 ,因此这类数据对象也称为“全局”数据对象。 “定义性声明”建立函数与外部数据,需要对定义 的外部数据分配存储空间; “引用性声明”则指出要引用程序中其他地方定义 的函数或外部数据,并不为欲引用的外部数据分配 存储空间。
20
1.1.3 程序设计


程序设计风格指的是编码风格(coding style) 即程序设计者表达程序的习惯方式 良好的程序设计风格基本指导原则:



⑴ 规范化的源程序书写格式 ⑵ 注释程序 ⑶ 选用顾名思义的标识符 ⑷ 用简明的方法表达算法 ⑸ 提供友善的输入输出界面
21
1.2 C语言概述



C语言是在BCPL和B语言的基础上发展起来的 与著名的UNIX操作系统的产生相辅相成的 最初C语言以B.W. Kernighan和D. M. Ritchie所著的 《The C Programming Language》为标准,谓之 K&R C 美国国家标准化协会(American National Standard Institute,ANSI)于1983年开始为C语言制定统一标 准,该标准颁布于1987年,称之为87 ANSI C。 1989年,ISO为C语言制定了国际标准C89。最新的C 语言国际标准是1999年颁布的C99。本书按C99标准 叙述。
C语言程序设计
1
黄达明 terman_huang@ 上机地点 基础实验楼乙区 201、202、203、204机房
学习这门课程的目标
科研和工程中的 计算思维能力

高层次的追求
与软件人员良好 交流的能力
工具的开发者

低层次的追求

课程过关
第1章 C程序设计概述
1.1.1 程序设计语言

编译期错误 连接期错误 运行期错误
编译程序与连接程序
19
1.1.3 程序设计


测试(testing)的目的除了发现程序存在错 误外,还证实程序是否达到规定的功能,具 有检验质量及性能评价等含义。 验证(verification)程序正确性的理想方法 是理论证明。目前验证程序的方法主要还是 依靠有局限性的测试技术。
28

整个程序的执行结束


1.2.4 C语言程序例
例1.1 一个简单的C程序。 该程序只由一个函数组成。该例的程序代码存储在 myprog1.c源程序文件中,文件内容如下: #include <stdio.h> int main(void) { int number;

printf(“books=”); scanf(“%d”, &number); printf(“I have %d books.\n” , number); }
2a

S3:输出根
S3-1:如果disc=0,计算并输出两个相同的根x1=x2=u S3-2:如果disc>0,计算并输出两个实根x1=u+v ,x2 = u- v S3-3:如果disc<0,计算并输出一对共扼复根x1=u+vi , x2=u-vi 18
1.1.3 程序设计
调试、测试、验证程序3个术语 联系:目的都是为了产生没有错误的程序 区别:含义不同 调试(debugging)通常是指由程序设计者自 己查找和改正程序中错误的过程,也称纠错 或排错,目的是确定错误的性质、原因和位 置且改正错误。 按开发程序的过程程序中的错误分为

30
1.2.4 C语言程序例
n=min(n1, n2, n3); /* 调用自定义函数min,求3个正整数的最小 值 */ for(i=1;i<=n;i++) sum=sum+i; printf(“Minimum=%u\n1+2+....+%u=%u\n”, n,n, sum); } int min(int a, int b, int c) /* 求3个整数的最小值的函数定义 */ { if(a<=b&&a<= c) return a; else if(b<=a&&b<=c) return b; else return c; }
8
1.1.1 程序设计语言
高级语言

接近于自然语言和数学语言,在一定程度上与具 体计算机无关的符号化语言。 用高级语言编写的程序形式(以C语言为例):
int main(void)
{
printf(“%d\n”,12-5);
}
计算12-5的高级语言代码
9
1.1.1 程序设计语言
高级语言

用高级语言编写程序的优点:
“程序”是完成事情的先后次序

计算机中的程序概念

按特定的算法,用某种计算机语言描述的完成指定 任务的处理过程
14
1.1.2 程序

从内容上看

包含算法描述和数据描述两个方面,是数据与算法 的结合 程序=算法+数据结构

从存储的角度看

写在纸上或存储在外部存储介质上的一个静态实体
是一个具有抽象性和动态性的逻辑实体,只有被 装入主存启动执行后才起作用

区别的“定义性声明”与“引用性声明” :

27
1.2.3 C语言源程序的结构与执行
2. C语言源程序的执行


C语言程序总是从main函数的第一条语句开始 执行 C语言程序中所有其他函数都可以相互调用

一个函数也允许自己调用自己 可以调用由C编译系统定义的库函数及用户自己定 义的库函数。 在正常情况下,main函数执行完毕 执行过程中发生各种错误,提前结束程序运行

7
1.1.1 程序设计语言
汇ห้องสมุดไป่ตู้语言


汇编语言是一种符号化的机器语言,用助记符 号代替指令操作码、操作数。 用汇编语言编写的程序形式:
MOV AL,12D
SUB AL,5D
HLT
计算12-5的汇编语言代码

汇编语言与机器语言有相同的特点,但要翻译 成等价的指令序列后才能由计算机执行。

24
1.2.3 C语言源程序的结构与执行
1. C语言源程序的结构
例: int max(int a, int b, int c) { int m; m=a>b?a:b; return (m>c?m:c); }

25
1.2.3 C语言源程序的结构与执行
1. C语言源程序的结构



一个C语言程序必须有且仅有一个名为main的函数 一个C语言源程序通常存放在一个源程序文件中(单 文件程序),也可以分别存放在多个源程序文件中( 多文件程序) 程序中所有函数(包括main函数)在源程序文件中 安排的位置和顺序是任意的 一个函数必须完整地包含在一个文件中,不允许跨文 件存放 不同的C编译系统对源程序文件的扩展名要求不同, 例如TC2.0的源程序文件必须以“.C”作为后缀。 一个C源程序文件是C源程序的一个程序模块,C编 译程序总是以源程序文件为单位编译。
22
1.2.3 C语言源程序的结构与执行
1. C语言源程序的结构 一个C语言源程序由一系列的外部声明组成。 外部声明



函数定义性声明 外部数据定义性声明 函数引用性声明 外部数据引用性声明
相关文档
最新文档