《c语言第一讲程序设计之基础》由会员分享,可在线阅读,更多相关《c语言第一讲程序设计之基础(55页珍藏版)》请在金锄头文库上搜索。
1、河北工程大学 主讲:蒿社平 QQ:714654805,C语言程序设计,C语言授课计划 第1次理论:基础知识 第2次理论:数据类型,表达式 第3次理论:顺序结构 第4次理论:选择结构(if,switch) 第5次理论:循环结构(for,while) 第6次理论:函数 第7次理论:数组 第8次理论:举例 第9次理论:指针 第10次理论:举例 第11次理论:结构体,链表 第12次理论:文件 第13次理论:举例,流行语言,应用编程语言 机器语言 汇编语言 Visual Basic C C+ Java C# Delphi 专项编程语言 Power Builder Lotus Notes,Web编程语言
2、HTML XML PHP(超级文本预处理语言 ) ASP JSP JavaScript VBScript VC# 其他 protel Python .,C语言的创世纪,一切从一个叫“Space Travel(太空旅行)”的电子游戏开始 为了让他的游戏能更好地运行,Ken Thompson(肯汤普逊,1943年2月4日-,为美国计算机科学学者,与C语言之父丹尼斯利奇同为1983年图灵奖得主)用汇编语言编写了一个操作系统UNIX 汇编太不好用了,Thompson需要高级语言,试验了一些高级语言,包括Fortran,都不理想 他在BCPL( Basic Combind Programming Lan
3、guage)基础上,自己设计了一个B语言 UNIX开始发展,B也不够用了 Dennis Ritchie(丹尼斯利奇)加入,把B改造成C 开始用C重写UNIX,C语言的创世纪,Ritchie和Thompson在开发UNIX,接受美国国家技术勋章,C语言的创始人 Dennis M. Ritchie(丹尼斯利奇),C程序设计语言,是一种高级语言 高级语言并不是“高级”,只是相对低级语言,在一个高的级别上进行编程 历史悠久,战勋卓著 诞生于上世纪70年代初,成熟于80年代(C89),修订于90年代(C99) 很多重量级软件都是用C写的,上天入地,无所不能 几乎没有不能用C写出来的软件,没有不支持C的系
4、统 很多流行语言、新生语言都借鉴了 它的思想、语法 从C+,到Java,再到C#,还有php等,C程序设计语言,一、C语言的特点:,语言简洁、紧凑、使用方便、灵活(32个关键字、9种控制语句) 运算符丰富(34种运算符 将括号、赋值、强制类型转换等作为运算符) 数据结构丰富(标准类型、构造类型、指针类型) 具有结构化的控制语句。用函数实现程序的模块化。,5.语法限制不太严格、程序设计自由度大。 6.C语言可以直接访问物理地址。能实现汇编语言的大部分功能,可以直接对硬件进行操作。 7. 目标代码质量高,程序执行效率高。 8. 程序可移植性好。,一、C语言的特点:,二、C程序的组成结构及特性:,程
5、序:为完成某一任务所用指令的集合。 下面给出几段简单的C程序,从中分析一下程序的结构及特征:,程序一: main( ) printf(“ This is a c program. n “); ,指令:明确告诉计算机做什么。,程序二:求两数之和 # include main( ) int a,b,sum; /*定义变量*/ sum=0; a=123; b=456; sum=a+b; printf(“ sum is %dn “ ,sum); ,#include “stdio.h” /*包含预处理语句*/ int Max(int x,int y) /* 定义子函数max, 函数值为整型,x,y为形式
6、参数 */ int z; /* 对子函数中用到的变量z定义 */ if (xy) z=x; else z=y; return(z); /* 将z的值返回,通过max带回调用处 */ main( ) /*主函数*/ int a,b,c; scanf( “ %d,%d “ ,&a,&b); /*输入变量a、b 的值*/ c=Max(a,b); /*调用 Max函数,将得到的值赋给变量c*/ printf(“max=%d”,c); /*输出c的值*/ ,程序三:从键盘输入两个整数,并将它们中的最大值显示出来,通过以上例子可以看出: 1. C程序由一个或多个函数组成,其中必须有且仅有一个主函数main
7、( )。 2. 一个可执行的C程序总是从main函数开始,而不论其在整个程序中的位置如何,并在main( )中结束,其它函数通过嵌套调用得以执行。 3. 每条语句和数据定义的最后必须有一个分号(;)。 说明:在以下三种情况下不允许有分号: a. 所定义的函数的名称后面不使用分号; b. 在右花括号“”后面不使用分号; c. 预处理语句后面不使用分号。,通过以上例子可以看出: 4. C对输入输出实行函数化(库函数scanf、printf )。 5. C程序书写格式自由,一行内可以写几个语句,一个语句也可以分写在多行上。 常用锯齿形书写格式,main( ) . . . . ,main( ) int
8、 i , j , sum; sum=0; for(i=1; i10;i+) for(j=1;j10;j+) sum+=i*j ; printf(“%dn”,sum); ,优秀程序员的素质之一: 使用TAB缩进 要配对并注意缩进对齐 有足够的注释 有合适的空行,7. 在C语言中,大小写字母是有区别的(C语言习惯用小写字母) 。,通过以上例子可以看出: 6. 用/*/对C程序中的任何部分作注释,注释可以写在程序的任何位置上,“/*”与“*/”也可不在同一行上。不能嵌套,例: /*This is the main /* of example1.1*/ */,通过以上例子可以看出: 8. 源程序中可以
9、有预处理命令,通常放在源文件/程序的最前面。 9. 标识符、关键字之间必须至少加一个空格以示间隔。 10.一个C源程序可以由一个或多个源文件组成。 11.一个函数由两部分组成: 函数的说明部分:函数名后必须有一对圆括号 函 数 体:变量定义 执行部分,一个完整的C程序由一个或多个源文件构成。 源文件分两类:头文件和源程序。 头文件 源文件 编译预处理命令 源程序 注释/*/ 说明部分 main函数 函数 语句部分 函数说明部分 其他函数 变量定义 函数体 语句部分,C语言程序的基本结构:,头文件:由系统提供的一些函数,用户可直接调用,扩展名为.h(如:stdio.h、math.h等)。 源程序
10、:扩展名为.c的程序代码 包括:编译预处理命令、注释/*/、函数等。 编译预处理命令:以符号开头的行,在一行中只能写一条编译预处理命令。 #include (调用系统提供的头文件) #include #include #include 见附录四,计算机程序的特性: (1)目的性:程序都是为了实现某个目标或完成某个功能。 (2)确定性:程序中的每一条指令都是确定的,而不是含糊不清的。 (3)有穷性:一个程序不论规模多大,都应当包含有限的操作步骤,并能在一定的时间内完成。 (4)有序性:程序的执行步骤是有序的,不可随意更改程序的执行顺序。,例:编程计算f=n!,并输出f。 #include mai
11、n( ) int n, i; long f=1; printf(“n=“); scanf(“%d“, ,软件:计算机程序算法(方法规则)文档资料 程序设计:用数学的算法和推理去解决问题或描述问题 语言:一种交流工具,三、C语言编制的全过程,需求分析明确任务 确定算法用自然语或流程图写出算法流程 确定输入输出 编写源程序代码(扩展名为.C的文件) 程序调试错误修改 编译(Compile)源程序(扩展名为.obj的目标文件) 连接(Link)库函数 生成可执行文件(扩展名为.exe的文件), 运行程序,例:统计一个班学生的考试成绩,并选出优秀学生及各档人数。 计算机程序设计就是用计算机语言编写一些
12、代码(指令)来驱动计算机完成特定的功能,用计算机理解的语言(指令)告诉计算机如何工作。 (1)问题描述(定义) 输入:输入需要的初始数据。 处理:对输入信息做什么加工。如计算、统计等。 输出:希望得到什么结果等。,程序设计过程:,(2)算法描述(设计) 算法:是对特定问题求解步骤的一种描述。 算法也是对问题的进一步细化,但它不是计算机可以直接执行的,而是编制程序代码前对处理思想的一种描述。 (3)编制程序 (4)调试运行 (5)整理文档,程序设计过程:,这类似于学习英语中的单词与句法,并正确的运用语法规则写成文章。,学好程序设计语言有两步:,第一步:掌握语言的语法规则,包括标识符、关键字、句法
13、规则等。并能正确的运用这些语法规则编制计算机能识别的程序。,第二步:掌握解决问题的方法和步骤,用程序语言编程,就是用计算机看得懂的语言向计算机描述解决某个问题的方法和步骤,计算机就是按照程序的描述,一步一步执行相应操作的。所编写的程序,不但要求语法准确无误,更要求提供的步骤也准确无误,计算机才能按照要求执行出正确的结果。,例如:任意输入两个整数,输出两个整数的和。 设计思路: 说明变量类型 输入数据 计算 输出结果,C语言程序为: #include main() int a,b,c; scanf(“%d%d”, ,拿到一个需要解决的问题,在编程之前,我们首先要确定的就是解决该问题的算法,只有先
14、得出了正确的算法,才能进一步把该算法用程序语言的形式编写出来。,正确的语法+正确的算法=正确的程序,算法:对某一特定问题的求解步骤的一种描述。 解决某个问题的方法或步骤。,算法特点:,1、一个算法必须保证执行有限步之后结束; 2、算法的每一个步骤必须具有确切的定义; 3、应对算法给出初始量; 4、算法应具有一个或多个输出; 5、算法的每一步都必须是计算机能进行的有效操作。,1、自然语言: 使用人们日常进行交流的语言。 如:从a,b中找出一个大的数给max。 自然语言的算法描述:,第三步:输出max的值。,第二步:比较,如果a比b大,则把a的值 给max,否则把b的值给max;,第一步:从键盘输
15、入两个数a和b;,算法描述,2、专用工具: 借助于有关图形工具或代码符号来描述。常用的工具有:流程图、N-S图等。,算法描述,scanf(“%d,%d”,用流程图来描述从a和b中找大数的问题。,scanf(“%d,%d”,用N-S图来描述从a和b中找大数的问题。,N-S为Nassi和Shneiderman 两位科学家的名子,四、C语言的字符集:,字符是组成语言的最基本的元素。 C语言的字符集由字母、数字、空格、标点及特殊符号组成。 在字符常量、字符串常量和注解中还可以使用汉字或其它可表示的图形符号。,(1)字母 AZ (26个) az (26个),(2) 数字 09 (10个) (3) 空白符 空格符、制表符、换行符均称为“空白符”。 空白符只在字符常量和字符串常量中起作用。 在其它地方出现时,只起间隔作用。,四、C语言的字符集:,(4)标点和特殊字符 下划线(1个):_ 括号(6个):( )、 、 算术运算符(7个):+ 、 - 、*、/ 、%、+ 、- 关系运算符(6个):、=、 、 ,四、C语言的字符集:,五、C语言词汇,C语言中使用的词汇分为: 标识符、关键字、运算符、常量、注释符等,(1)标识符 (用户定义的),在程序中使用的变