《第1章程序设计及C语言概况课件》由会员分享,可在线阅读,更多相关《第1章程序设计及C语言概况课件(33页珍藏版)》请在金锄头文库上搜索。
1、授课:计算机教研室授课:计算机教研室 2号教学楼号教学楼4楼楼总体安排总体安排学习目标学习目标学习方法学习方法基本要求基本要求1.积极调整思维方式。积极调整思维方式。2.理解概念多做练习。理解概念多做练习。1.上课积极听讲,记录重点、难点。上课积极听讲,记录重点、难点。2.按时、独立完成作业。按时、独立完成作业。3.上机实习充分准备,实习后认真总结。上机实习充分准备,实习后认真总结。1.理解计算机解题的思想和过程。理解计算机解题的思想和过程。2. 学会使用学会使用C语言进行简单程序设计语言进行简单程序设计3. 逐步形成良好的程序设计风格。逐步形成良好的程序设计风格。总学时为总学时为60其中:上
2、课其中:上课/上机上机=30/303/55考核:考核:期末:笔试期末:笔试+上机上机平时:作业平时:作业+ 出勤出勤3/55目目 录录第第1 1章章 程序设计及程序设计及C C语言概况语言概况第第2 2章章 C C语言基础语言基础第第3 3章章 顺序结构顺序结构第第4 4章章 选择结构选择结构第第5 5章章 循环结构循环结构第第6 6章章 函数函数第第7 7章章 编译预处理编译预处理第第8 8章章 数组数组第第9 9章章 指针指针第第1010章章 结构体与共用体结构体与共用体第第1111章章 位运算位运算第第1212章章 文件文件上机安排上机安排上机安排上机安排1.1 程序设计的基本概念程序设
3、计的基本概念 1.2 算法算法1.3 结构化程序设计方法结构化程序设计方法1.4 c语言的初步知识语言的初步知识本章小结及作业本章小结及作业第第1章章 程序设计及程序设计及C语言概况语言概况 #include stdio.hmain() float r,s; r=3; s=3.14159*r*r; printf(s=%f,s);1. 程序和程序设计语言程序和程序设计语言 1.1 程序设计的基本概念程序设计的基本概念人们把这种计算机能够识别并可以执行的指令序列称为人们把这种计算机能够识别并可以执行的指令序列称为程序程序。 程序设计语言程序设计语言是计算机能够理解和识别的语言。是计算机能够理解和识
4、别的语言。求求圆圆的的面面积积0000111111111111110001111111101111101010000000011111111111010110001110源程序源程序目标程序目标程序编译编译解解释释r=?S=3.14159*r*r2.程序设计程序设计 分析、理解问题分析、理解问题解决方案(大致的思路),建立数学模型解决方案(大致的思路),建立数学模型求解步骤和流程(求解步骤和流程(算法)算法)(文字、符号等的描述)(文字、符号等的描述)使用程序设计语言编写源程序使用程序设计语言编写源程序 运行调试程序运行调试程序 整理输出结果,写出相关文档整理输出结果,写出相关文档 分析分析问
5、题问题确定处确定处理方案理方案确定操确定操作步骤作步骤编写编写程序程序上机运上机运行程序行程序整理整理结果结果图图1.1 程序设计的一般过程程序设计的一般过程backback1.1 程序设计的基本概念程序设计的基本概念 1. 算法及算法的特性算法及算法的特性 算法是对具体问题求解步骤的一种描述。算法是对具体问题求解步骤的一种描述。 2. 特性特性 有穷性。有穷性。 确定性。不会产生二义性。确定性。不会产生二义性。 可行性。可行性。算法中描述的操作在计算机上都是可实现的。算法中描述的操作在计算机上都是可实现的。 输入。一个算法应有零个或多个输入。输入。一个算法应有零个或多个输入。 输出。一个算法
6、应有输出。一个算法应有1个或多个输入个或多个输入1.2 算法算法3. 算法的描述工具算法的描述工具 (1)用自然语言表示算法)用自然语言表示算法 【例例11】求两个整数求两个整数m与与n的和的和 步骤步骤1 1:输入整数:输入整数n n和和m m;步骤步骤2 2:求和:求和sum=sum=m+nm+n;步骤步骤3 3:输出两数之和:输出两数之和sumsum。 N-S流程图流程图 传统流程图传统流程图 (3)用伪代码表示算法)用伪代码表示算法 (4)用程序设计语言表示算法)用程序设计语言表示算法 (2)用流程图表示算法)用流程图表示算法 1.2 算法算法backback程序的三种基本控制结构程序
7、的三种基本控制结构 : 顺序结构顺序结构步骤步骤1:输入整数:输入整数n和和m;步骤步骤2:求和:求和sum=m+n;步骤步骤3:输出两数之和:输出两数之和sum。 图图 1.3顺序结构顺序结构 A B (a) (b) A B 【例例11】求两个整数求两个整数m与与n的和的和 输入输入n和和m求和求和sum=m+n 输出输出sum【例例11】算法算法 1.3 结构化程序设计方法结构化程序设计方法 步骤步骤1:输入整数:输入整数a和和b;步骤步骤2:判断,如果:判断,如果ab ,则,则min=a,否则,否则 min=b ; 步骤步骤3:输出两数中较小的数:输出两数中较小的数min。图图 1.4选
8、择结构选择结构 假假 真真 P A B (a) (b) 真真 假假 A B 【例例1.2】求求a、b两个整数中较小的数。两个整数中较小的数。 图图1.5 【例例1.2】算法算法 输入输入a,b a b? Y N min=a min =b 输出输出min 选择结构选择结构 循环结构循环结构 图图1.6当型循环结构当型循环结构 真真 假假 P A (a) (b)A 当当p为真为真 图图1.7直到型循环结构直到型循环结构 真真 假假 A P (b)(a)直到直到P为假为假 A 步骤步骤1 1:定义变量:定义变量sumsum用来存放和值,并赋初值用来存放和值,并赋初值0 0; 定义变量定义变量k k,
9、用来存放每一项的值,并赋初值,用来存放每一项的值,并赋初值1 1;步骤步骤2 2:判断:判断k k的值是否小于或等于的值是否小于或等于100100,如果是,则继续,如果是,则继续 执执行步骤行步骤3 3,否则转到步骤,否则转到步骤5 5,退出循环;,退出循环; 步骤步骤3 3:将:将sumsum与与k k的和赋给的和赋给sumsum; 步骤步骤4 4:将:将k k的值增的值增1 1;返回步骤;返回步骤2 2重复执行。重复执行。步骤步骤5 5:输出和值:输出和值sumsum。【例例1.3】 计算计算1+2+3+4+100 图图1.8 【例例1.31.3】算法算法sum=0,k=1k =100?
10、sum=sum+kk=k+1输出输出sum图图1.6当型循环结构当型循环结构真真假假PA(a)(b)A当当p为真为真三种基本控制结构共有的特点:三种基本控制结构共有的特点:1.1.有一个入口,有一个出口;有一个入口,有一个出口;2.2.结构中每一部分都有被执行到的机会,也就结构中每一部分都有被执行到的机会,也就是说,每一部分都有一条从入口到出口的路是说,每一部分都有一条从入口到出口的路径通过它径通过它( (至少通过一次至少通过一次) );3.3.没有死循环没有死循环( (无终止的循环无终止的循环) )。 顺序结构顺序结构AB选择结构选择结构真真假假AB当型循环结构当型循环结构A当当p为真为真直
11、到型循环结构直到型循环结构直到直到P为假为假Abackback (2).流行流行C语言编译系统语言编译系统 Microsoft C 或称或称 MS C Borland C Turbo C Quick C Visual c+1.4 C语言的初步知识语言的初步知识(1). 基于基于B语言,源于语言,源于ALGOL60。 ALGOL60 CPL BCPL B语言语言 C语言语言(1960) (1963) (1967) (1970) (1972)ANSI标准标准1. C语言的起源与发展语言的起源与发展 (1)语言简洁、紧凑,使用方便、灵活。)语言简洁、紧凑,使用方便、灵活。(2)支持结构化程序设计)支
12、持结构化程序设计 。(3)运算符丰富。)运算符丰富。 (4)数据类型丰富。)数据类型丰富。 (5)较强的编译预处理功能。)较强的编译预处理功能。 (6)C语言的可移植性好。语言的可移植性好。 (7)C语言本身既有一般高级语言的优点,又有低级语言本身既有一般高级语言的优点,又有低级(汇编)语言的特点(汇编)语言的特点 。(8)语法限制不太严格,程序设计自由度大。)语法限制不太严格,程序设计自由度大。 2. C语言的特点语言的特点 3. C程序的构成和书写格式程序的构成和书写格式(1 1) C C程序的构成程序的构成 【例例1.4】求两个整数求两个整数m与与n的和。的和。#include “std
13、io.h”main( ) /* 主函数主函数 */int m,n,sum;/* 定定义变量量m,n, sum*/ m=5; n=3; /* 给变量量m,n赋值 */ sum=m+n; /* 求求m+n的的值,并,并赋给变量量sum */ printf(“sum is %d n”,sum ); /* 输出出sum的的值 */程序的运行结果为:程序的运行结果为: sum is 8 sum is 8 【例例15】求两个整数中的较小者求两个整数中的较小者 #include “stdio.h”main( ) /* /* 主函数主函数 * */ / int x,y,m; /* /* 定义变量定义变量 *
14、*/ / int fun(int a,int b); /*/*函数的声明函数的声明 * */ / printf(“input x,y:”); /* /* 提示输入数据提示输入数据 * */ / scanf(%d,%d, &x,&y); /* /* 输入变量输入变量x x和和y y的值的值 * */ / min=fun(x,y); /* /* 调用调用funfun函数,将函数值赋给函数,将函数值赋给min */min */ printf(min=%dn,min); /* /* 输出输出minmin的值的值 * */ / int fun(int a,int b) /* /* 定义定义funfun函
15、数,值为整型,函数,值为整型,a a,b b为该函数的形式参数为该函数的形式参数* */ / int c; /* /* 函数中用到的变量函数中用到的变量c c也要定义也要定义 * */ / if(ab) c=a; else c=b; return(c); /* /* 将将c c的值返回至调用处的值返回至调用处 * */ /(1) C(1) C程序的基本单位是程序的基本单位是=函数函数 一个一个C C程序包括:程序包括: 一个主函数一个主函数main()main()和和 若干个其它函数若干个其它函数 其它函数可以是其它函数可以是库函数库函数或或用户函数用户函数(2) (2) 任何函数(包括主函数
16、任何函数(包括主函数main()main())都是由)都是由函数说明函数说明和和函数函数体体两部分组成。其一般结构如下:两部分组成。其一般结构如下: 函数类型函数类型 函数名函数名(参数表参数表) ) /* /* /* /* 函数说明部分函数说明部分函数说明部分函数说明部分* * * */ / / / 说明部分;说明部分; 执行部分执行部分; /* /* /* /* 函数体部分函数体部分函数体部分函数体部分* * * */ / / / 总总 结:结:如,如,例例1.5中的函数中的函数fun(),其函数说明各部分如下所示。,其函数说明各部分如下所示。 函数类型函数类型 函数名函数名 函数参数表函
17、数参数表 int fun (int a,int b) 函数说明部分函数说明部分 函数类型函数类型函数类型函数类型 函数名函数名函数名函数名( ( 函数参数表函数参数表函数参数表函数参数表 ) ) 由函数类型(可缺省)、函数名和函数参数表(可缺省)由函数类型(可缺省)、函数名和函数参数表(可缺省)三部分组成,其中函数参数表的格式为:三部分组成,其中函数参数表的格式为: 数据类型数据类型 形参形参1, 1, 数据类型数据类型 形参形参2 2, 函数体函数体 在函数说明部分的下面大括号(必须配对使用)内的部分。在函数说明部分的下面大括号(必须配对使用)内的部分。 函数体一般由说明语句和可执行语句两部
18、分构成:函数体一般由说明语句和可执行语句两部分构成: 说说说说明明明明部部部部分分分分: : : : 说说明明语语句句部部分分由由变变量量定定义义、自自定定义义类类型型定定义、自定义函数说明、外部变量说明等组成。义、自定义函数说明、外部变量说明等组成。 执行部分执行部分执行部分执行部分: : : : 一般由若干条可执行语句构成。一般由若干条可执行语句构成。int fun(int a,int b) /* 定定义fun函数,函数,值为整型,整型,a,b为该函数的形式参数函数的形式参数*/ int c; /* 函数中用到的函数中用到的变量量c也要定也要定义 */ if(a=85) printf(A)
19、; printf(ngood!); else if(score=60) printf(B); printf(nwork hard); else printf(C); 程序程序: :英文小写字母英文小写字母(大写字母习惯作为常(大写字母习惯作为常量或其它用途)量或其它用途) 程序中一般程序中一般每一条语每一条语句占用一行句占用一行。 不同层次的语句,从不同层次的语句,从不同的起始位置开始不同的起始位置开始。 (4 4)C C程序的阶梯式书写格式程序的阶梯式书写格式o编辑编辑源程序(文件名源程序(文件名.c) p 装配连接装配连接(文件名(文件名.exe)关键字关键字数据类型数据类型格式等等格式等
20、等obj文件文件库函数库函数二进制文件二进制文件4. C语言程序的开发过程语言程序的开发过程 p 编译编译源程序源程序(文件名文件名.obj):目标程序目标程序 p 执行执行可执行目标程序可执行目标程序,获得运行结果,获得运行结果 使用文本编辑程序使用文本编辑程序 使用使用C语言编译系统提供的编辑器语言编译系统提供的编辑器 backback附加:附加:Visual C+ 6.0Visual C+ 6.0集成环境集成环境1. 启动Visual C+ 6.0环境2. 编辑源程序文件3. 编译和连接4. 执行 利用Visual C+ 6.0集成环境开发C程序的过程如下:附加:附加:Visual C+
21、 6.0Visual C+ 6.0集成环境集成环境1.1.启动启动Visual C+ 6.0Visual C+ 6.0环境环境 方法:单击 “开始”-“程序”-“Microsoft Visual studio 6.0”-“Microsoft Visual C+ 6.0”命令,启动Visual C+,VC6主窗口如下:菜单栏菜单栏项目工作区项目工作区标题栏标题栏输出区输出区工具栏工具栏状态栏状态栏文件编辑区文件编辑区附加:附加:Visual C+ 6.0Visual C+ 6.0集成环境集成环境2. 2. 编辑源程序文件编辑源程序文件单击“文件”-“新建”,弹出“新建”对话框。 选择“工程”选项
22、卡。单击“Win32 Console Application”选项,在“工程名称”文本框中输入文件名,如工程1;“位置”文本框输入或选择存放位置D:TEST;“平台”文本框中选中复选框Win32;单击“确定”按钮,弹出“Win32 Console Application-步骤1共1步”对话框。在弹出的对话框中,显示了4种项目类型,如图所示,如选择An Empty Project选项,生成一个空白项目,然后单击“完成”按钮。最后出现“新建工程信息”对话框,显示要创建的新项目的基本信息,单击“确定“按钮。1)1)创建项目创建项目附加:附加:Visual C+ 6.0Visual C+ 6.0集成环
23、境集成环境2. 2. 编辑源程序文件编辑源程序文件单击“文件”-“新建”,弹出“新建”对话框。 选择“文件”选项卡。单击“C+ Source File”选项,在“文件”文本框中输入文件名(切记必须输入扩展名切记必须输入扩展名.c,.c,否则创建的是否则创建的是.cpp.cpp文件文件),如11_1.c和“目录”文本框输入或选择存放位置D:TEST,单击“确定”按钮。系统自动返回VC6主窗口。显示文件编辑区窗口,在文件编辑区窗口输入源程序文件。必须输入扩展名必须输入扩展名.c1)1)创建和编辑创建和编辑C C语言源程序文件语言源程序文件附加:附加:Visual C+ 6.0Visual C+ 6
24、.0集成环境集成环境3. 编译和连接 方法一:选择主窗口菜单栏中“编译”菜单项;系统弹出下拉菜单,选择“构建”菜单命令。编编译译编编译译或或组组建建编编译译 方法二:单击主窗口编译工具栏上的 “Build”按钮进行编译和连接。单击“编译” (1)系统对程序文件进行编译和连接,生成以文件名命名的可执行目标代码文件.exe。编译编译构建或组建构建或组建组建组建(2)编译连接过程中,系统如发现程序有语法错误,则在输出区窗口中显示错误信息,给出错误的性质、出现位置和错误的原因等。如果双击某条错误,编辑区窗口右侧出现一个箭头,指示再现错误的程序行。用户据此对源程序进行相应的修改,并重新编译和连接,直到通
25、过为止。 单击“Build”附加:附加:Visual C+ 6.0Visual C+ 6.0集成环境集成环境4. 执行方法一:单击“编译”菜单中“执行”命令。编编译译执执行行或组建或组建执行执行方法二:单击主窗口编译工具栏上的 “Build Execute”按钮来执行编译连接后的程序。运行成功,屏幕上输出执行结果,并提示信息:“Press any key to continue”。此时按任意键系统都将返回VC6主窗口。 在执行程序过程中出现运行错误。用户要修改源程序文件并且重新编译、连接和执行。单击“编译”单击“Build Execute”附加:打开、保存和关闭工作区间说明说明:每个C程序都是
26、一个工程。所以新建一个C程序,要新建工程;完成一个程序,要保存、关闭一个工程。方法方法:文件/打开工作空间 文件/保存工作空间 文件/关闭工作空间本章小结o程序、程序设计语言程序、程序设计语言 o程序设计(算法、结构)程序设计(算法、结构)n程序设计是指利用计算机解决问题的全过程。程序设计是指利用计算机解决问题的全过程。n基本目标是实现算法和对初始数据进行处理,从而基本目标是实现算法和对初始数据进行处理,从而完成对问题的求解。完成对问题的求解。n算法是对具体问题求解步骤的一种描述。算法是对具体问题求解步骤的一种描述。 oC语言程序的构成语言程序的构成 o开发过程开发过程 作业:习题1o1.1o1.2(5)o1.3backback