C语言程序设计1 - zhuyi20140215_第1页
C语言程序设计1 - zhuyi20140215_第2页
C语言程序设计1 - zhuyi20140215_第3页
C语言程序设计1 - zhuyi20140215_第4页
C语言程序设计1 - zhuyi20140215_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1章C语言概述1.1计算机语言与结构化程序设计1.2C语言的发展历史和特点1.3C语言程序的基本结构和执行过程1.4C语言的字符集和标识符2/1/20231《C语言程序设计》-第一章1.1计算机语言与结构化程序设计1.1.1计算机语言1.1.2结构化程序设计2/1/20232《C语言程序设计》-第一章第一代:机器语言(低级语言):面向机器、可移植性差、效率高、不方便编程第二代:汇编语言第三代:高级语言:面向程序员、可移植性好、执行效率低、便于编程第四代:面向对象式语言1.1.1计算机语言2/1/20233《C语言程序设计》-第一章1.1.2结构化程序设计1.三种基本结构 结构化程序由三种基本控制结构组成:

顺序结构、选择结构和循环结构。 三种基本结构的流程图:PAB真假选择结构AB顺序结构A真P假循环结构三种基本控制结构流程图2/1/20234《C语言程序设计》-第一章

2.结构化程序设计的原则

自顶向下,逐步求精,模块化设计,结构化编码;

有限制地使用goto

转移语句;以控制结构为单位;采用结构化程序设计语言书写程序;合理采用顺序、选择和循环三种基本结构来设计程序;

2/1/20235《C语言程序设计》-第一章例:求3个数中的最大数。1)给出程序的总体设计算法。s1:给定或输入3个数a、b、c。s2:在a、b、c中找出大数赋给max。s3:输出max。2)对s2需进一步细化,即求出最大数的设计算法。s21:从a、b中取出大数赋给max。s22:再用max与c进行比较,取两者大的值赋给max。2/1/20236《C语言程序设计》-第一章#include<stdio.h>/*文件包含*/voidmain()/*定义主函数*/{inta,b,c,max;a=3;b=7;c=5;/*s1*/if(a>b)/*s21*/max=a;elsemax=b;if(max<c)/*s22*/max=c;printf("%d\n",max);/*s3*/}2/1/20237《C语言程序设计》-第一章1.2.1C语言发展历史ALGOL语言:1960,面向问题高级语言,不宜写系统程序CPL语言:1963,英剑桥,能够作较低层次的操作,但规模较大,难以实现BCPL语言:(Basiccombinedprogramminglanguage)1967,英剑桥MartinRichards改进CPLB语言:1970,美贝尔实验室Thompson简化BCPL,用B写UNIX操作系统C语言:1972,贝尔实验室,Ritchie和Kernighan设计,保持B和BCPL的精炼与接近硬件,克服其简单和数据无类型的缺点。描述和实现UNIX的工具语言1977,《可移植C语言编译程序》,C与UNIX相辅相成1978,Kernighan和Richie,《TheCProgrammingLanguage》,标准C语言1983,美国国家标准化协会(ANSI),ANSIC1990,国际标准化组织(ISO)通过

1.2C语言的发展历史和特点

2/1/20238《C语言程序设计》-第一章5254565860626466687072747678808284868890929496AdaALGOL60ALGOL68PascalModula-2CPLBCPLBCC++JavaLISPPROLOGCOBOLFORTRAN77FORTRANPL/1Simula67Smalltalk80BASICANSI-BASICQBASICVBFORTRAN90<>2/1/20239《C语言程序设计》-第一章1.2.2C语言特点

(1)数据类型丰富(2)结构化语言(3)具有丰富的运算符号(4)高效率的目标代码(5)有预处理能力(6)可移植性好(7)语法不严格,自由度大2/1/202310《C语言程序设计》-第一章9种控制语句:if()~else~for()~while()~do~while()continuebreakswitchgotoreturn<2/1/202311《C语言程序设计》-第一章34种运算符:算术运算符:+-*/%++--关系运算符:<<===>>=!=逻辑运算符:!&&||位运算符:<<>>~|^&赋值运算符:=及其扩展条件运算符:?:逗号运算符:,指针运算符:*&求字节数:sizeof强制类型转换:(类型)分量运算符:.->下标运算符:[]其它:()-<2/1/202312《C语言程序设计》-第一章C数据类型基本类型构造类型指针类型空类型void定义类型typedef数值类型字符类型char枚举类型enum整型浮点型单精度型float双精度型double短整型short长整型long整型int数组结构体struct共用体union<<2/1/202313《C语言程序设计》-第一章1.3C语言程序的基本结构和执行过程1.3.1C语言程序的简单实例

main()/*主函数*/{inta,b,sum;/*定义a、b和sum三个变量*/a=3;b=4;/*为a,b赋值*/sum=add(a,b);/*调用函数add,将得到的值赋给变量sum*/printf("sum=a+b=%d\n",sum);/*屏幕输出sum变量的值*/}intadd(intx,inty)/*定义add函数和形式参数x,y*/{intz;/*定义z变量*/z=x+y;/*变量x与y相加的和送给z*/return(z);/*返回z的值送给add*/}运行结果:sum=a+b=72/1/202314《C语言程序设计》-第一章结构特点1.函数型语言,函数是C程序的基本单位。

函数与主函数程序由一个或多个函数组成必须有且只能有一个主函数main()程序执行从main开始,在main中结束,其它函数通过嵌套调用得以执行。2/1/202315《C语言程序设计》-第一章结构特点2.函数由说明部分和函数体两部分组成函数的组成:

说明部分:函数类型函数名(参数类型参数名,……)例:intadd(intx,inty)或intadd(x,y)intx,y;

函数体:{变量定义;执行语句;}2/1/202316《C语言程序设计》-第一章3.程序语句C程序由语句组成用“;”作为语句终止符4.注释/**/为注释,不产生编译代码可出现在程序的任何位置可以单独占一行,也可占据多行不能嵌套<>例:/*Thisisthemain/*ofexample1.1*/*/非法2/1/202317《C语言程序设计》-第一章5.格式特点习惯用小写字母,大小写敏感不使用行号,无程序行概念可使用空行和空格常用锯齿形书写格式<>main(){

……………….………………

…………..…………..

……………….

………………………….

……………….………………..}main(){

inti,j,sum;sum=0;for(i=1;i<10;i++){for(j=1;j<10;j++){sum+=i*j;}}printf(“%d\n”,sum);}优秀程序员的素质之一:使用TAB缩进{}对齐有足够的注释有合适的空行2/1/202318《C语言程序设计》-第一章6.源程序中可以有编译预处理命令

预处理命令通常放在源文件或源程序的最前面把<>或“”内指定的文件包含到本程序中头文件包括了各个标准库函数的函数原型凡在程序中调用一个库函数,则就必须包含该函数原型所在的头文件7.执行从main开始,在main中结束2/1/202319《C语言程序设计》-第一章【例1.2】最小的C程序例。这是一个最小的C程序,什么也不做,但这是符合C语言函数规定的程序,有main()组成的函数的首部和两个大括号中无任何内容的函数体,在计算机上运行时没有错误,因为函数体是空的,这个C程序什么也不做。main(

){}2/1/202320《C语言程序设计》-第一章/*example1.1ThefirstCProgram*/#include<stdio.h>main(){printf(“Hello,World!”);}>注释编译预处理函数语句输出:Hello,World!【例1.3】函数C程序例。2/1/202321《C语言程序设计》-第一章#include<stdio.h>

/*文件包含*/intmin(intx,inty)

/*函数说明*/main()/*主函数*/{inta,b,c;/*说明三个变量a,b和c*/printf("Inputtwointegers:");/*输出一行提示信息*/scanf("%d,%d",&a,&b);/*键盘输入两个数值送给a和b变量*/c=min(a,b);/*调用min函数,运行结果送给c变量*/printf("min=%d",c);/*输出c变量的值*/}intmin(intx,inty)/*定义min函数,x,y为形参*/{intz;if(x<y)z=x;/*条件语句:如果x小于y成立z=x,否则z=y*/elsez=y;return(z);/*将z的值返回,通过min带回调用处*/}【例1.4】编写C语言程序求键盘输入的两个数中较小的数,并且将其输出到屏幕上。2/1/202322《C语言程序设计》-第一章C语言程序执行过程编辑链接编译运行程序代码的录入,生成源程序*.c语法分析查错,翻译生成目标程序*.obj与其它目标程序或库链接装配,生成可执行程序*.exe2/1/202323《C语言程序设计》-第一章1.4C语言的字符集和标识符1.4.1基本符号集1.4.2标识符1.4.3预定义标识符2/1/202324《C语言程序设计》-第一章

1.4C语言的字符集和标识符1.4.1字符集(ASCII字符集)阿拉伯数字10个:0、1、2、…、9大小写英文字母各26个:A,B,C,…,Z,a,b,c,…,z下划线:_特殊符号:主要是运算符和操作符

空白字符

:空格符、制表符、换行符

2/1/202325《C语言程序设计》-第一章1.4.2标识符字符序列,用作常量、变量、函数、文件指针、类型的名字。用户标识符

保留字/关键字

1.4.3预定义标识符2/1/202326《C语言程序设计》-第一章

用户标识符:标识符定义:用来标识变量、常量、函数等的字符序列组成:只能由字母、数字、下划线组成,且第一个字母必须是字母或下划线大小写敏感不能使用关键字长度:8个字符命名原则:见名知意不宜混淆如l与1,o与0例:判断下列标识符号合法性sumSumM.D.JohndayDate3daysstudent_name#33lotus_1_2_3chara>b_above$123<>M.D.John3days#33char$123a>b2/1/202327《C语言程序设计》-第一章保留字/关键字

是编译系统固有的,用做语句名、类型名的标识符。不允许作为用户标识符使用。

1.4.3预定义标识符

允许用户作其他其途,但将失去系统规定的原意。例define、include2/1/202328《C语言程序设计》-第一章小结1.C语言程序的组成特点C语言程序的组成特点如下:(1)一个C源程序由函数构成,其中至少包括一个主函数(main()函数)。(2)C程序总是由main()函数开始执行。(3)分号“;”是C语句的一部分。(4)一行内可写多条语句,且语句中的空格和回车符均可忽略不计。(5)程序的注释部分在/*……*/之间,/和*之间不允许留有空格。注释允许出现在程序中的任何位置上。2/1/202329《C语言程序设计》-第一章2.标识符

C语言的标识符可分为保留字、预定义标识符和用户标识符三类。用户根据需要对C程序中用到的变量、符号常量、自定义函数或文件指针进行命名,形成标识符。C语言中,标识符的命名规则如下:(1)用户标识符由英文字母、数字、下划线组成;且第一个字符不能是数字,必须是字母或下划线。(2)标识符大小写字母不通用,保留字全部用小写字母。(3)标识符中所允许包含的字符个数因不同的C编译系统而有所不同,通常可以识别前面8个字符。2/1/202330《C语言程序设计》-第一章(4)大多数高级语言都规定用户标识符必须以字母开始,而C中仅规定了不得用数字开始,因此以下划线开始的数字也是正确的变量名。(5)C语言提供了大量的库函数和头文件,这些库函数名和头文件中定义的一些标识符都统称为预定义标识符。C语言允许用户定义的标识符和这些预定义标识

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论