250 likes | 412 Views
参考书目. 1 、 《 The C Programming Language》 C 程序设计 Brian W.Kernighan 与 Dennis. M. itchie 2 、 《pointer on c》 C 和指针 Kenneth A.Reek 著,徐波 译. 本章主要内容. 1 C 语言的发展历史 2 C 语言的特点、应用 3 简单的 C 语言程序 4 C 语言程序的结构 5 C 语言程序的执行 6 程序风格. 5.1 C 语言的发展过程. 产生时间: 1972-1973
E N D
参考书目 1、《The C Programming Language》 C程序设计 Brian W.Kernighan与Dennis. M. itchie 2、《pointer on c》 C和指针 Kenneth A.Reek 著,徐波 译
本章主要内容 1C语言的发展历史 2C语言的特点、应用 3 简单的C语言程序 4C语言程序的结构 5C语言程序的执行 6 程序风格
5.1 C语言的发展过程 • 产生时间:1972-1973 • 产生地点:美国贝尔实验室(BELL) • 创始人:D.M.Ritchie与Ken.Thompson • 目的:改写UNIX系统 • 标准化:1990年,国际标准化组织(ISO)接受了ANSI提出的标准, 称之为C 89或ANSI C。
5.2 C语言的特点 1.程序设计结构化 2.运算符丰富 共有34种运算符,可以实现其他高级语言难以实现的一些运算 3.数据结构类型丰富 除自身规定的数据类型外,允许用户定义自定义数据结构。 4.书写灵活 程序书写所受的限制并不严格(注:并不提倡这样做)。
5.2 C语言的特点 5.适应性广 程序执行效率高,可移植性好。 6.关键字简洁 共有32个关键字。分为以下4大类。 (1)数据类型关键字12个; (2)控制语句关键字12个; (3)存储类型关键字4个; (4)其他关键字4个。 7.区分大小写
优点 缺点 输入输出相对很多语言都较为复杂。数据的封装性上有很大缺陷 C语言的语法限制不太严格,对变量的类型约束不严格,对数组下标越界不作检查等,影响程序的安全性 C的指针操作给它带来了很多不安全的因素 类型检查机制相对较弱、缺少支持代码重用的语言结构。 • 简洁紧凑、灵活方便 • 运算符丰富 • 数据类型丰富 • C是结构式语言 • 语法限制不太严格,程序设计自由度大 • 允许直接访问物理地址,对硬件进行操作 • 生成目标代码质量高,程序执行效率高 • 适用范围大,可移植性好
C在电子科学中的运用 • 单片机 • 可编程逻辑器件 • 嵌入式。。。
5.3 简单的C语言程序 【例1-1】 编写程序,在屏幕上输出“Hello,World!”的字符串。 程序如下: /* example1_1.c 在屏幕上输出字符串*/ #include <stdio.h> main() { printf("Hello,World!\n"); }
5.3 简单的C语言程序 【例1-1】程序说明: 1.include是文件包含命令,扩展名为.h的文件称为头文件 ,表示在程序中要用到这个文件中的函数。 2.main是主函数的函数名,表示这是一个主函数。 注意:1个C语言源程序只允许有1个main函数。
5.3 简单的C语言程序 【例1-1】程序说明(续): 3.printf是函数调用语句。 printf函数是系统定义的标准函数,其功能是把要输出的内容送到显示器上显示。在stdio.h库函数中。 4.main()函数中的内容必须放在一对花括号“{}”中。
5.3 简单的C语言程序 【例1-2】 请从键盘输入一个角度的弧度值x,计算该角度的余弦值,将计算结果输出到屏幕。 程序如下: /* example1_2.c 计算角度的余弦*/ #include<stdio.h> #include<math.h> main() { double x,s; printf("Please input value of x: "); scanf("%lf",&x); s=cos(x); printf("cos(%lf)=%lf\n",x,s); }
5.3 简单的C语言程序 【例1-2】程序说明: 1.程序包含了两个头文件:stdio.h、math.h。 2.在main函数中定义了两个双精度实数型变量x、s。 3.printf("Please input value of x:");用于显示提示信息。 4.scanf(“ %lf ”,&x) ;用于从键盘获得一个实数x。x代表角度的弧度值。 5.s=cos(x) ;计算x的余弦,并把计算结果赋给变量s。 6.printf (“cos(%lf)=%lf\n”,x,s) ;将x和s的值输出到屏幕。双引号中得两个格式字符“%lf”,分别对应着x和s两个输出变量。
5.3 简单的C语言程序 【例1-3】 设计一个加法器,能实现两数的相加。通过调用该加法器,计算两数的和。 程序如下: #include<stdio.h> int add(int x, int y); main() { int a, b, c; printf ("please input value of a and b:\n"); scanf("%d %d", &a, &b); c=add(a,b); printf ("max=%d\n",c); } int add(int x, int y) { return(x+y); }
5.3 简单的C语言程序 【例1-3】程序说明: 1.主函数体分为两部分:说明部分和执行部分。 2.语句c=add(a,b);是通过调用加法器add()来完成a+b的计算,并将计算结果赋给变量c。 3.屏幕上显示字符串:“please input value of a and b:”是提示用户从键盘输入a和b的值,用户从键盘上键入两个数,屏幕上会显示出这两个数的和。 • 思考:分析前面3个程序的特点。
5.4 C语言程序的结构 通常,C语言程序可由下面几个部分组合而成: 1.文件包含部分; 2.预处理部分; 3.变量说明部分; 4.函数原型声明部分; 5.主函数部分; 6.自定义函数部分。
5.4 C语言程序的结构 关于程序结构的几点说明: 1.不是每一个C语言程序都包含有上面的6个部分,最简单的C语言程序可以只有文件包含和主函数部分。 2.每一个C语言程序都必须有且仅有一个主函数,主函数的组成形式如下所示: main() { 变量说明部分 程序语句部分 }
5.4 C语言程序的结构 3.每一个C语言程序可以有0个或多个自定义的函数。 注:自定义函数的形式同主函数形式一样: <自定义的函数名>(<参数列表>) { 变量说明部分 程序语句部分 } 4.每一个C语言程序的语句由分号结束。
5.5 C语言程序的执行 1. C语言程序要通过编译、链接后生成可加载模块(执行文件),才能在计算机上运行。 2. 完整的程序生成过程如下:
5.5 C语言程序的执行 程序开发的具体步骤如下: 1. 编辑源程序。将C源程序用一个后缀为.C的文件保存。如:myfile.c 2. 编译。检查源程序中的语法错误,生成目标代码文件。如:myfile.obj 3. 链接。将多个目标程序链接到一个程序中,生成可执行文件,如:myfile.exe 4.第四步:运行可执行文件,检验程序的正确性。 大多用集成开发工具进行编辑、编译和调试程序。
5.5 C语言程序的执行 3. 几种常用的C语言集成开发工具:
5.6 程序风格 • #include <stdio.h> • main(t,_,a) • char *a; • {return!0<t?t<3?main(-79,-13,a+main(-87,1-_, • main(-86, 0, a+1 )+a)):1,t<_?main(t+1, _, a ):3,main ( -94, -27+t, a • )&&t == 2 ?_<13 ?main ( 2, _+1, "%s %d %d\n" ):9:16:t<0?t<-72?main(_, • t,"@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l,+,/n{n+\ • ,/+#n+,/#;#q#n+,/+k#;*+,/'r :'d*'3,}{w+K w'K:'+}e#';dq#'l q#'+d'K#!/\ • +k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;# ){n\ • l]!/n{n#'; r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#\ • n'wk nw' iwk{KK{nl]!/w{%'l##w#' i; :{nl]'/*{q#'ld;r'}{nlwb!/*de}'c \ • ;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;\ • #'rdq#w! nr'/ ') }+}{rl#'{n' ')# }'+}##(!!/") • :t<-50?_==*a ?putchar(a[31]):main(-65,_,a+1):main((*a == '/')+t,_,a\ • +1 ):0<t?main ( 2, 2 , "%s"):*a=='/'||main(0,main(-61,*a, "!ek;dc \ • i@bK'(q)-[w]*%n+r3#l,{}:\nuwloca-O;m .vpbks,fxntdCeghiry"),a+1); }
作者:CambridgeConsultants Ltd.和Ian Phillipps • 国际C混乱代码大赛 • 版权:1988,Landon Curt Noll & Larry Bassel • 功能:输出The Twelve Days of Christmas的歌词
程序风格(规范,清晰,注释) • 1、缩排(tab) • 2、空格与() • 3、空行 • 4、命名、大小写 • 5、{ } • 6、注释/* */
5.7 本 章 小 结 本章主要内容 1. 简要介绍了C语言的特点和发展过程; 2.C语言程序的基本组成部分; 3.C语言程序的开发步骤; 4. 常见的C语言程序开发工具。