第1章C语言概述_第1页
第1章C语言概述_第2页
第1章C语言概述_第3页
第1章C语言概述_第4页
第1章C语言概述_第5页
已阅读5页,还剩80页未读 继续免费阅读

下载本文档

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

文档简介

许其义

qsdxqy@163.comC语言程序设计1关于计算机语言C语言程序设计2计算机与人工智能计算机行业的梦想让计算机(Computer)能像人一样地思考,与人自然交流,人工智能(ArtificialIntelligence)图灵测试

3计算机与人工智能1997年,IBM公司研制的深蓝超级计算机在一场“人机大战”中打败了国际象棋大师卡斯帕罗夫被誉为“人工智能的一大胜利”深蓝的主要研制者之一许峰雄博士:胜利靠的只是不知疲倦地高速运算,并不是什么智能4计算机与信息技术计算机技术与通信技术结合,构成了信息技术(InformationTechnology),诞生了一个新词:IT嵌入式系统是IT未来的主要发展方向之一典型的嵌入式系统有:机器人、手机和智能家电等5计算机计算机是用来延伸人的能力的工具,需要人来驾驭我们的职责是让非计算机专业的人更容易驾驭它完成这一目标的主要手段之一就是

“编程(Programming)”6计算机基本工作过程整个过程的执行者是硬件,但硬件是受软件控制的编程,就是编写软件,使硬件按照人的意图工作7计算机基本工作过程输入/输出设备存储器运算器控制器源程序和输入数据输出结果取出数据存入数据操作命令存取命令取出程序指令输入输出命令计算结果CPU“冯·诺依曼机”结构大脑记忆装置眼睛和耳朵程序和数据硬盘CPU内存执行结果8软件的形成软件(Software)的形成程序员(Programmer)编写程序源代码(SourceCode)编译器(Compiler)把源代码转换为可被计算机理解的机器代码(MachineCode)并把机器代码以可执行文件(ExecutableFile)的形式保存在磁盘上9软件运行过程的简单描述软件的运行计算机把机器代码读入到内存(Memory)由CPU运行这些代码读取输入(Input)产生输出(Output)完成程序员预定的功能计算机专业后续课程计算机原理编译原理操作系统10程序设计语言(ProgrammingLanguage)是人与计算机进行交流的语言计算机直接能读懂的语言机器语言(MachineCode),也叫机器代码一种纯粹的二进制语言程序设计语言的故事11程序设计语言的故事计算机为什么用二进制呢?为什么不用我们日常熟悉的十进制呢?二进制在在电器元件中容易实现计算机进行二进制运算比进行十进制运算要简单得多12程序设计语言的故事机器语言编写的1+1程序汇编语言(AssembleLanguage)编写的1+1程序101110000000000100000000000001010000000100000000MOVAX,1ADDAX,113程序设计语言的故事BASIC语言编写的1+1程序C语言编写的1+1程序PRINT1+1#include<stdio.h>main(){

printf("%d\n",1+1);}14程序设计语言一种程序设计语言对应一种编译器程序员按照该语言的语法编写程序源代码,把自己的意图融入到代码中编译器读入源代码,把程序员的意图转换成可执行程序,供他人使用15程序设计语言编辑(Edit)扩展名为.c的文件编译(Compile)扩展名为.obj的文件链接(Link)形成最后的可执行文件扩展名为.exe的文件运行(Run)16流行语言应用编程语言机器语言汇编语言BasicPascalCC++JavaC#专项编程语言LotusNotesPowerBuilderWeb编程语言HTMLXMLPHPASPJSPJavaScriptVBScript其他perlpythonVBA17C程序设计语言简称C语言BCPL

BasicCombinedProgrammingLanguage语言进化成B语言,B语言又进化为C语言是一种高级语言高级语言并不是“高级”,只是相对低级语言,在一个高的级别上进行编程历史悠久,战勋卓著诞生于上世纪70年代初,成熟于80年代“ANSIC”标准的发布是C语言成熟的标志很多重量级软件都是用C写的上天入地,无所不能几乎没有不能用C写出来的软件,没有不支持C的系统18C程序设计语言硬件(Hardware)操作系统(OS)应用程序

(Application)应用

平台基于

平台的

应用

程序低级语言的地盘高级语言的地盘C语言的地盘19C程序设计语言C语言被分类位高级语言,但实际上它是一种介于高级语言和低级语言之间的语言。很多流行语言、新生语言都借鉴了它的思想、语法从C++,到Java,再到C#正确地学好C语言,是学习这些流行语言的基础。20C语言的设计者

DennisM.Ritchie21和Unix的设计者KenThompson

接受美国国家技术勋章22Ritchie和Thompson在开发UNIX23在日益纷繁复杂的程序设计语言王国中,C语言因其简洁、有效、通用的特性而始终占据一席之地。里奇在1978年出版的《C程序设计语言》被程序员们称为“白皮书”,里奇成为许多编程爱好者膜拜的对象。2011年10月9日被誉为“C语言之父”,同时也是操作系统Unix之父的C语言发明人之一——丹尼斯·里奇以70岁之龄辞世。美国著名计算机专家丹尼斯·里奇(DennisRitchie)所引领的时代悄然远去。

让我们通过学习C语言,打开与计算机交流之门,走进丹尼斯里奇的“C客帝国”,实现我们的奇思妙想。要加油奥!24C语言程序设计(第2版)高等院校计算机应用技术规划教材谭浩强著上机实践平台:VisualC++6.025第1章C语言概述1.1计算机与程序、程序设计语言1.2C语言的出现和发展过程1.3简单的C语言程序1.4运行C程序的步骤与方法26计算机硬件软件运算器控制器存储器I/O设备系统软件应用软件操作系统数据库系统网络系统程序设计语言语言处理程序机器语言汇编语言高级语言面向对象的程序设计语言1.1计算机与程序、程序设计语言271.1计算机与程序、程序设计语言计算机不是天生自动工作的计算机由人们事先编好的程序控制人和计算机通过程序设计语言沟通28计算机产生初期使用机器语言一个型号机器语言的指令的集合——机器语言机器语言是由0和1组成的指令机器语言是紧密依赖于计算机的硬件的机器语言难学、难记、难写、难修改、难维护在不同计算机之间互不通用1.1计算机与程序、程序设计语言2920世纪50年代出现了高级语言比较接近于人的自然语言(英文)和数学语言高级语言直观易学,易理解,易修改,易维护,易推广,通用性强用高级语言编写的程序,必须先翻译成机器语言程序,此翻译工作由编译系统实现1.1计算机与程序、程序设计语言301.2C语言的出现和发展过程C语言是国际上广泛流行的计算机高级语言最初的C语言只是为编写UNIX操作系统提供一种工作语言而设计的311.2C语言的出现和发展过程随着UNIX的日益广泛使用,C语言也迅速得到推广C语言和UNIX在发展过程中相辅相成1978年以后,C语言先后移植到大、中、小、微型计算机上,成为世界上应用最广泛的程序设计高级语言321.2C语言的出现和发展过程1983年,美国国家标准化协会(ANSI)根据C语言问世以来各种版本对C语言的发展和扩充,制定了新的标准草案,即83ANSICANSIC比原来的标准C有了很大的发展331.2C语言的出现和发展过程1989年,ANSI又公布了一个新的C语言标准—ANSIX3.159-1989(简称C89)目前各软件厂商提供的C语言编译系统大多数是以C89为基础进行开发的本书的叙述基本上以C89为基础的341.2C语言的出现和发展过程C语言功能强大、使用灵活,既可用于编写应用软件,又能用于编写系统软件学习和使用C语言的人越来越多,成了学习和使用人数最多的一种计算机语言熟练掌握C语言成为计算机开发人员的一项基本功35C语言的特点(1)语言简洁、紧凑,使用方便、灵活。(2)运算符丰富。34种运算符。(3)数据类型丰富,具有现代语言的各种数据结构。(4)具有结构化的控制语句,是完全模块化和结构化的语言。(5)语法限制不太严格,程序设计自由度大。(6)允许直接访问物理地址,能进行位操作,能实现汇编语言的大部分功能,可直接对硬件进行操作。兼有高级和低级语言的特点。(7)目标代码质量高,程序执行效率高。只比汇编程序生成的目标代码效率低10%-20%。(8)程序可移植性好(与汇编语言比)。基本上不做修改就能用于各种型号的计算机和各种操作系统。

36例1.1要求在屏幕上输出以下一行信息。

ThisisaCprogram.1.3简单的C语言程序37#include<stdio.h>voidmain(){

printf(”ThisisaCprogram.\n”);}函数的名字,表示主函数C程序必须有一个main函数1.3简单的C语言程序38#include<stdio.h>voidmain(){

printf(”ThisisaCprogram.\n”);}

主函数类型1.3简单的C语言程序39#include<stdio.h>voidmain(){

printf(”ThisisaCprogram.\n”);}

函数体1.3简单的C语言程序40#include<stdio.h>voidmain(){

printf(”ThisisaCprogram.\n”);}

输出函数输出语句1.3简单的C语言程序41#include<stdio.h>voidmain(){

printf(”ThisisaCprogram.\n”);}

1.3简单的C语言程序ThisisaCprogram.42#include<stdio.h>voidmain(){

printf(”ThisisaCprogram.\n”);}

1.3简单的C语言程序ThisisaCprogram.换行符43#include<stdio.h>voidmain(){

printf(”ThisisaCprogram.\n”);}

1.3简单的C语言程序ThisisaCprogram.表示语句结束用到函数库中的输入输出函数时44例1.2求两个整数之和。#include<stdio.h>voidmain(){

int

a,b,sum;a=123;b=456;sum=a+b;

printf(”sumis%d\n”,sum);}定义整型变量a,b,sum对变量a,b赋值将a与b的和赋给sum45例1.2求两个整数之和。#include<stdio.h>voidmain(){

int

a,b,sum;a=123;b=456;sum=a+b;

printf(”sumis%d\n”,sum);}用sum的值替代希望输出的字符sumis57946/*……*/:注释部分注释可以用汉字或英文字符表示注释只是给人看的,对编译和运行不起作用注释可以出现在一行中的最右侧,也可以单独成为一行47例1.3求两个整数中的较大者。48#include<stdio.h>voidmain(){

int

max(int

x,inty);

int

a,b,c;

scanf(”%d,%d”,&a,&b);c=max(a,b);

printf("max=%d\n",c);}int

max(int

x,inty){

intz;if(x>y)z=x;elsez=y;

return(z);}主函数被调函数49#include<stdio.h>voidmain(){

int

max(int

x,inty);

int

a,b,c;

scanf(”%d,%d”,&a,&b);c=max(a,b);

printf("max=%d\n",c);}int

max(int

x,inty){

intz;if(x>y)z=x;elsez=y;

return(z);}将x和y中较大者值返回给主函数50#include<stdio.h>voidmain(){

int

max(int

x,inty);

int

a,b,c;

scanf(”%d,%d”,&a,&b);c=max(a,b);

printf("max=%d\n",c);}int

max(int

x,inty){

intz;if(x>y)z=x;elsez=y;

return(z);}51#include<stdio.h>voidmain(){

int

max(int

x,inty);

int

a,b,c;

scanf(”%d,%d”,&a,&b);c=max(a,b);

printf("max=%d\n",c);}int

max(int

x,inty){

intz;if(x>y)z=x;elsez=y;

return(z);}因max函数的定义在main函数之后,需声明52#include<stdio.h>voidmain(){

int

max(int

x,inty);

int

a,b,c;

scanf(”%d,%d”,&a,&b);c=max(a,b);

printf("max=%d\n",c);}int

max(int

x,inty){

intz;if(x>y)z=x;elsez=y;

return(z);}输入函数53#include<stdio.h>voidmain(){

int

max(int

x,inty);

int

a,b,c;

scanf(”%d,%d”,&a,&b);c=max(a,b);

printf("max=%d\n",c);}int

max(int

x,inty){

intz;if(x>y)z=x;elsez=y;

return(z);}输入语句8,5↙54#include<stdio.h>voidmain(){

int

max(int

x,inty);

int

a,b,c;

scanf(”%d,%d”,&a,&b);c=max(a,b);

printf("max=%d\n",c);}int

max(int

x,inty){

intz;if(x>y)z=x;elsez=y;

return(z);}输入的数据放到a,b中输入格式a的地址8,5↙55#include<stdio.h>voidmain(){

int

max(int

x,inty);

int

a,b,c;

scanf(”%d,%d”,&a,&b);c=max(a,b);

printf("max=%d\n",c);}int

max(int

x,inty){

intz;if(x>y)z=x;elsez=y;

return(z);}8,5↙调用max函数56#include<stdio.h>voidmain(){

int

max(int

x,inty);

int

a,b,c;

scanf(”%d,%d”,&a,&b);c=max(a,b);

printf("max=%d\n",c);}int

max(int

x,inty){

intz;if(x>y)z=x;elsez=y;

return(z);}8,5↙858857#include<stdio.h>voidmain(){

int

max(int

x,inty);

int

a,b,c;

scanf(”%d,%d”,&a,&b);c=max(a,b);

printf("max=%d\n",c);}int

max(int

x,inty){

intz;if(x>y)z=x;elsez=y;

return(z);}8,5↙8588max=858#include<stdio.h>voidmain(){

int

max(int

x,inty);

int

a,b,c;

scanf(”%d,%d”,&a,&b);c=max(a,b);

printf("max=%d\n",c);}int

max(int

x,inty){

intz;if(x>y)z=x;elsez=y;

return(z);}8,5↙max=8实际参数形式参数59结论:C程序是由函数构成的C源程序必须包含一个main函数可以包含若干个其他函数函数是C程序的基本单位被调函数可以是库函数,也可以是用户编制设计的函数程序全部工作都由各个函数分别完成C语言容易实现程序的模块化60一个函数由两个部分组成函数首部

intmax(intx,

inty)函数的第1行函数类型函数名参数类型参数名函数名后面必须跟一对圆括号函数可以没有参数,

如:voidmain()结论:C程序是由函数构成的61函数体声明部分定义在本函数中所用到的变量对本函数所调用函数进行声明执行部分由若干个语句组成可以没有声明部分一个函数由两个部分组成结论:C程序是由函数构成的62voiddump(){}可以是空函数函数体一个函数由两个部分组成结论:C程序是由函数构成的63一个函数由两个部分组成结论:C程序是由函数构成的程序总是从main函数开始执行C程序书写格式自由每个语句和数据声明的最后必须有分号C语言本身没有输入输出语句可以对程序中的任何一行或数行做注释641.4运行C程序的步骤与方法1.4.1运行C程序的步骤1.4.2上机运行C程序的方法651.4.1运行C

温馨提示

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

评论

0/150

提交评论