C语言课件(精华版)
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
② 赋初值
③ 计算 ④ 输出
语句
a=123; b=456;
//执行部分, 赋值语句
sum=a+b;
//执行部分, 赋值语句
printf(“sum=%d\n”, sum); //执行部分,输出
}
程序运行结果:
sum=579
【例1.4】求两个数中的较大值
程序由两个函数组成: − main 函数和max 函数。
a=123; b=456; sum=a+b;
函数体
printf(“sum=%d\n”, sum);
}
1.4.3 C语言的字符集、关键字和标识符
字符集: C语言允许使用字符的集合 字符集的组成:
− 26个小写字母 abcdefghi ...... z − 26个大写字母 ABCDEFG ......Z − 10个数字 0~9 − 其他符号 + - * / = , . _ : ; ? \ ” ’ ~ | & ^
期末成绩: 期末理论机考60%
第一章 C语言的发展、特点与程序结构 第二章 基本数据类型、运算符和表达式 第三章 基本语句与顺序结构 第四章 选择结构 第五章 循环结构 第六章 数组 第七章 函数 第八章 指针 第十章 结构体 第十二章 文件
C语言程序设计
推荐参考书: 谭浩强主编《C程序设计》(第二版) 北京:清华大学出版社
1.4.2 C语言程序基本结构
C程序书写灵活,一行可以写几个语句, 一个语句可以写在 多个程序行上。
C语言本身#没in有c输lu入de输<s出td语io句.h,>输入输出的操作是由库函数 scanf( ) 和pvroinidtf(m) 等ai函n(数) 完成的。
C程序严格{区i分nt大a小, b写, s。u一m般; 变量、语句等用小写字母书 写;符号常量a等=1用2大3;写b字=母4书56写; 。 sum=a+b;
几个基本概念: 类、对象、属性、事件、方法
三类机制: 封装、继承、多态
1.3 算法及其表示
算法的特性 − 有穷性 一个算法的操作步骤应当是有限的; − 确定性 算法中的每一个步骤应当有确定的意义,不能 有二义性; − 有效性 算法中的每一个步骤应当正确、可行, 并且能 有效地执行; − 有零个或多个输入 执行算法时需要从外界获取的信息; − 有一个或多个输出 执行算法后应当得到正确的结果。
c=max(a, b);
//调用求最大值的函数 return(z);
printf(“max=%d\n”, c );
}
} input two numbers:
123,456 ↙
max=456
运行程序 − 屏幕显示提示信息; − 键盘输入a、b的值; − 屏幕显示c的值。
1.4.2 C语言程序基本结构
! %# ( ) [ ] { } < > 空格(SPACE) 制表符(Tab)
C语言的关键字
关键字: C语言中预定的具有特定含义的词, 也称 保留字。共有32个。
分四类:
− 类型说明: int , long,float,…。 − 语句定义: if…else, while, for …。 − 存储类: auto,static,…。 − 长度运算符: sizeof
计算机基础教学系列课程
C语言程序设计
C 语言程序设计
课程性质: 大学生公共基础课程 (必修课) 学时: 讲课 34课时; 实验 64 (课内32/课外32) 学分: 2学分
总评成绩 = 平时成绩 40%+ 期末成绩 60% 平时成绩: 成绩1(作业、考勤10%) + 成绩2(单元测验15%)
+ 成绩3(实验报告15%)
标识符、保留字之间必须至少加一个空格以示分隔。 printf(“sum=%d\n”,sum); }
函数
C语言的函数有两种: 标准库函数和用户定义的 函数。 −用户自定义函数,可有可无,数目不限。 如例1.4中的 int max(int x , int y) −C语言提供的库函数, 如输出函数printf( )和输 入函数 scanf( )。
注意:
标识符严格区分大小写 例如: ABC ,abc
遵循这种结构的程序只有一个入口和一个出口。
缺点:存在数据与程序模块的分离和程序的可重用性差等问题。
面向对象的程序设计
Program Design in C Language
面向对象的程序设计将一些新的理念和结构化程序设计中 好的思想相融合,提供了一种全新的程序设计方法。
基本思想
将一个需要解决的问题分解为一系列实 体(对象),然后围绕这些对象建立数 据和函数;函数的功能决定了该对象的 行为。规定一个对象的函数可以访问另 一对象的函数,但一个对象的数据不能 应用于另一对象的函数中。
语句(Statement)
#include<stdio.h>
− 必须以 ;注结释尾
void main( ) /*定义主函数*/
− 格式输出函− 数/* p文ri本ntf*(/)。或// − 调用标准函− 数不,被显执示行引号中的内容。
{ pppprrrirniiinnntfttt(fff“(((“ ““WWtWoeeleCcllcoc!\oomnmm”ee\e)n”t;too)\C;n!C\n!\”n”) ;); − 以提高程序的可读性
一个C程序由一个或多个函数组成, 其中必须有一个主函 数main( )。程序执行时总是从主函数开始,main( )可以 置于程序的任何位置。
程序中需有预处理命令(如 #include <stdio.h> ),预处 理命令通常放在程序的最前面。
分号是C语句结束的标志, 每个语句和数据定义后必须有 一个分号。预处理命令、函数头和花括号“}”之后不能 加分号。
函数定义
➢ 函数定义: 函数头+函数体 • 函数头: 说明函数的类型、名字、参数及参数的类型。 int max( int x, int y ) • 函数体: 由“{ }”括起,包括变量声明和执行部分。
#include<stdio.h>
void main( )
函数头
{ int a, b, sum ;
标识符
标识符: 用来标识变量、符号常量、数组、函数的名字。 组成:
−只能由英文字母、数字和下划线组成。 −第一个字符不能是数字,只能是字母或下划线。 −VC6.0中有效长度为1~255个字符。
例如: x,m1,average,k123,_1,… √ 5AN, WA-11, a lot , $11, π, β, α, … ×
面向过程的程序设计
所谓面向过程的程序设计, 是指利用面向过程的语言工具 (如Pascal、Fortran和C语言等)进行程序开发的各项活动。
基本思想:
把一个需要求解的复杂问题分为 若干个模块来处理,每个模块处 理一个子问题;设计时遵循自顶 向下、逐步细化、模块化设计和 结构化编码的原则。
优点:编程简单、结构性强、可读性好;
起止框 连接点
处理框 流程线
判断框
输入或输出框
【例1.1】对任意给定 的三个整数 x,y,z, 求 出其最大值。
开始
读入x,y,z
流程图:
T maxx
x>y?
F maxy
T maxz
z>max? F
输出max 结束
4. 用N-S流程图表示算法
例: 对任意给定的 三个整数 x,y,z, 求 出其最大值。
#include<stdio.h> void main( )
int max(x,y) int x, y;
{ int a, b, c ;
//定义变量类型
{int z ;
printf(“input two numbers:\n”);//提示 if (x>y) z=x ;
scanf(“%d,%d”, &a, &b); //输入变量 else z=y ;
C语言的特点
C语言是结构化程序设计语言 功能强大,具有丰富的数据类型及运算符。 简洁紧凑,使用方便灵活。 C语言具有自我扩充能力 C语言具有汇编语言的功能 可移植性好
1.2 程序设计的基本方法
程序的概念 程序是计算机解决问题所需的一系列指令的集合。
程著序名=计数算据机结科构学+家算Ni法kik+la程us序W设ir计th方提法出+了语言工具 数“据算结法构+是数数据据结的构类=型程和序数”据的的公组式织形式。 程 序算就法是是在为数解据决的一某个些问特题定而的采表用示的方方式法和和结有构限的的基步础骤上。, 对 抽程象序算设法计的方具法体描述。 确定语言和编程环境
2. 用伪代码表示算法
英语和程序设计语言混合使用称为伪代码。 Begin {算法开始} input x, y, z if x>y then max=x else max=y if z>max then max=z print max end {算法结束}
3. 用流程图表示算法
用一些图框和方向线表示算法的图形表示法。 特点: 直观形象,易于理解,便于检查和交流。 常用流程图符号及含义如下:
顺序结构
矩形框 — 用于表示顺序结构。执行时按语句的 先后顺序执行。先执行语句A, 再执行语句B。
A B
顺序结构的流程图
A B
顺序结构的N-S图
选择结构(分支结构)
根据条件的真或假选择执行不同的操作内容。当 条件成立执行语句A,否则执行语句B。
T
F
条件
A
B
选择结构的流程图
条件
T
F
A
B
选择结构的N-S图
算法举例
【例1.1】输入三个数,然后输出其中最大的数。 (1) 输入变量 x,y,z的值 (2) 比较x和y, 如果x>y, 则x送max; 否则y送max。 (3) 比较max与z, 如果 z > max, 则将z送max。 (4) 输出max, max 即为最大数。
算法
对同一个问题, 算法是不唯一的, 例如:
循环结构
(1) 当型 (while 型循环 ) 当条件成立, 执行循环体, 否则跳出循环体。
条件
F
T
语句块
条件 语句块
L形框——用于表示循环结构
(2) 直到型循环 (do-while型循环 )
首先执行循环体, 若条件不成立继续执行循环体, 直到条件成立为止。
语句块
条件 F T
语句块 条件
【例1.2】在屏幕上显示一行文字“Welcome to C!”。
}
程程函序序程数运运序(行行运F结结u行n果果结c:t:i果on: )
− C程序包含W一Wel个ceol或cmo多me个te函o 数C!, 其中必须有一个 main( ) − 圆括号指W示et一olc个o函m数e to C! − { } 包含函数C体! , } 表示 main 函数结束
预编译命令函数体
【例1.3】求两个整数的和
void main−( )包主括函变数量说明部分
{
− 语句函执数行体部开分始
声明部分
#include<stdio.h> //文执件行包部含分预处理命令
//将标准}输入输出头文件函包数含体到结源束程序中
void main( )
① 定义变量 { int a, b, sum ;
//声明部分, 定义变量类型
第一章 C语言的发展、特点与程序开发基本知识
1.1 C语言的发展与特点 1.2 程序设计的基本方法 1.3 算法的概念及其表示 1.4 C语言的基本结构 1.5 应用程序的开发步骤和运行过程
目 录 下一章 习题
C语言的发展
C语言是一门优秀的程序设计语言 − C语言是在1973年由美国贝尔实验室开发的。 − 1983年, ANSI为C语言制定了新的标准, 称为 ANSIC, 并于1989年最终完成。 − 目前使用较多的版本有ANSI C, Borland C, Turbo C, Microsoft C/C++ , Visual C++等。
求和 1+2+3+……+100
100
(1) =(…(((1+2)+3)+4)+ …+100 ) i 1
(2)
100
=(1+100)×50
i 1
一个好的算法应该是: 正确、易读、效率高。
算法的表示方法
常用的算法描述方法有: 自然语言描述、伪代码、流程图、N-S图、PAD图 等。 1. 自然语言 就是用人们日常使用的语言来描述或表示算法的 方法。
读入x, y, z
T
x>y
F
maxx maxy
z>max
T
F
m言是结构化程序设计语言, 有三种基本结构。 顺序结构 选择结构 循环结构 程实序践设证计明的,目任标何在复正杂确的的算前法提都下可, 以其用重这要三性种排基列本次 序结依构次来为描: 述可。读、可维护、可移植和高效。