武夷学院《C语言程序设计》课件-第1章C语言概述_第1页
武夷学院《C语言程序设计》课件-第1章C语言概述_第2页
武夷学院《C语言程序设计》课件-第1章C语言概述_第3页
武夷学院《C语言程序设计》课件-第1章C语言概述_第4页
武夷学院《C语言程序设计》课件-第1章C语言概述_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

C语言程序设计武夷学院第一章C语言概述计算机与程序设计语言C语言的发展简史第一个C程序——显示HelloWorld!剖析一个简单的程序人与计算机1997年5月,蝉联12年国际象棋世界冠军的卡斯帕罗夫与IBM公司研制的巨型计算机深蓝进行了一场6局的人机大战。看看卡斯帕罗夫的表情,你就知道比赛结果了。卡斯帕罗夫以2.5分比3.5分的总成绩败给了深蓝。

人与计算机2011年2月,IBM举办有史以来第一次人机智力问答对决。IBM的超级电脑Watson,对决哥伦比亚广播公司的益智问答节目“危险边缘”的两名总冠军,奖金达100万美元。这3个“人”抢答主持人提出的各种稀奇古怪的问题,历史、时事、科学、艺术、体育、地理、流行文化、文学与语言、文字游戏等,结果Watson以大比分遥遥领先。不是人脑不聪明,而是电脑太疯狂。人与计算机什么是程序?程序是如何产生的?我能成为程序员(猿)吗?……本节课将给你一一解答。然而电脑的胜利在本质上是人脑的胜利,是无数人类专家集体智慧的结晶。(IBM研制小组将100年来所有国际特级大师开局和残局的下法存入“深蓝”、美国特级大师本杰明将他对象棋的理解编成程序教给“深蓝”。)计算机具有强大的存储能力;计算机能够按照既定的程序进行高速计算。1.1计算机与程序设计语言美籍匈牙利科学家冯·诺依曼——“计算机之父”。二十世纪三十年代,人们被十进制这个人类习惯的计数方法所困扰。那时以研制模拟计算机的呼声更为响亮和有力。冯·诺依曼主张抛弃十进制,采用二进制作为数字计算机的数制基础。尤为重要的是,他提出了“存储程序”的思想,就是预先编制程序,将程序存储到计算机内部,计算机自动执行。计算机发展史上的里程碑,标志着计算机时代的真正开始。

1.1.1程序与指令什么是程序程序一词来自生活,通常指完成某些事务的一种既定方式和过程在日常生活中,可以将程序看成对一系列动作的执行过程的描述银行带上存折去银行

3.将存折和取款单递给银行职员

2.填写取款单并到相应窗口排队4.银行职员办理取款事宜

日常生活中的程序5.拿到钱并离开银行

什么是指令?做口述笔记……键入信函的内容……发送传真……口述2.信函_____________________________________________________3.传真指令被逐条执行程序员老板秘书程序:为了让计算机执行某些操作或解决某个问题而编写的一系列有序指令的集合要执行的一组指令程序计算机中的程序程序与指令输入3个数A,B和C,求A+B+C的结果InputA;输入第1个数据到存储单元A中InputB;输入第2个数据到存储单元B中InputC;输入第3个数据到存储单元C中AddABD;将A、B相加并将结果存在D中AddCDD;将C、D相加并将结果存在D中OutputD;输出D的内容52+33+543=?如何让计算机求解任意三个整数的和?用计算机计算三个整数的和,这么麻烦?这已经是加了intput、add等助记符的汇编语言,在此之前还有更麻烦的——最早时候的计算机专家是用01串(机器语言)编程1.1.2程序设计语言的发展00100011111011010110000101110110机器语言程序MOVAX,

300HADDBX,AXMOV[2100H],BX

HLT汇编语言源程序intmain(){inta=300,b=18,c;c=a+b;printf(“a+b=%d\n”,c);}高级语言源程序(C)源程序需要翻译程序设计语言的发展太多的程序设计语言*.NET*Pascal*ActionScript*APL、A+和J*Ada*汇编语言

*AWK*BasicoQBasic*JavaoVisualBasic*VBScript*JavaScript*Brainfuck*C、C++oObjective-C*Clipper*COBOL*dBase*DART*Delphi*Forth*Fortran*FoxPro*F#*Fava*IDL*C#1.2C语言的发展与特点起源——C语言的传奇历史标准化基于C的语言

C语言是20世纪70年代初期在贝尔实验室开发出来的一种广为使用的编程语言。1.2.1关于C语言的传奇KenThompsonUnix时代的开创者DennisM.RitchieC语言之父C与UNIX的诞生20世纪,人类有四分之三的时间在为贝尔实验室的发明欢呼。1964年,贝尔实验室参与研发multics(第一个分时操作系统)。KenThompson写了一个“startravel”游戏可执行于Multics之上。1969年,当贝尔实验室(BellLabs)从Multics研究联盟中退出时,KenThompson带着从Multics激发的灵感,在一台废弃的PDP-7小型机上开发了一个挤干了泡沫的Multics操作系统,并重写了他的“SpaceTravel”游戏。Ken开发的这个操作系统被同事戏称为“UNiplexedInformationandComputingSystem(UNICS)”,后来改称“UNIX”。DennisM.Ritchie主动加入,与Thompson一起对其进行了改造,并于1971年共同发明了C语言,并重新改写了UNIX。旧版的Unix与C语言完美结合在一起产生了新的可移植的Unix系统。开启了轰轰烈烈的C与Unix的传奇时代。1983年,因为UNIX和C语言的巨大成功,ken和dmr共同获得当年度的计算机界最高奖——图灵奖Ken和dmr被尊为黑客的鼻祖黑客故事:贝尔实验室的高手们发现Ken总是很容易就取得了他们的帐户权限,为此郁闷的十几年,无法破解。14年后,Ken才道出其中的原委。他们未对UNIX和C语言申请任何版权或专利UNIX和C语言是黑客世界里两大神器黑客精神做事情以兴趣为出发点,并不在乎未来会怎样极富创造力和钻研精神,喜欢迎接挑战乐于分享,不计回报1.2.2C语言的发展起源——Unix的副产品标准化

C语言不断发展扩充,出现很多“方言”,美国国家标准化协会开始制定了新的C语言标准。

C89标准;C99标准.基于C的语言

C语言对现代编程语言有着极大地影响力,许多现代编程语言都借鉴了大量C语言的特性,如:C++、JAVA、C#、Perl等。2013年8月,TIOBE的编程语言排行情况1.2.3C语言的特点编程语言低级高级C缺点无限制的自由:如程序员不自我约束,代码将是灾难:不安全、不稳定、不易于维护

优点高效:高效性是C语言与生俱来的,因为发明C语言就是为了编写以往由汇编语言编写的程序。信任程序员:C语言对程序员限制较少,给程序员最大的发挥空间优缺点经常是同源的。C语言更是如此,其优缺点主要来自于与C语言与硬件的紧密结合及其赋予程序员的自由空间。C语言中那些容易导致人犯错误的特性,往往也正是编程老手们为之吸引的特性。1.3显示HelloWorld

例1.1编写程序,输出如下文字:”HelloWorld“C程序的创建有以下四个基本过程:编辑编译链接执行#include<stdio.h>intmain(void){printf("HelloWorld\n");return0;}以#开始的语句称为预处理器指令以.h为后缀的文件被称为头文件,可以是C程序中现成的标准库文件,也可以是自定义的库文件。stdio.h文件中包含了有关输入输出语句的函数

main()函数是C程序处理的起点。

这个return语句结束main()函数的执行并返回一个值,返回值为0表示程序正常结束在函数定义的后面有一个左大括号,即{它表示函数的开始,后面是函数的主体在函数定义的结尾处有一个右大括号,即}在屏幕上产生一行输出“Helloworld”,并换行(\n)

函数主体中的每个语句都以分号结束。C程序中的一个语句可以跨越多行,并且用分号通知编译器该语句已结束。1.3.1

编辑在编辑器里输入以下源代码1.3.2编译C语言源程序哎呀,我理解不了由编译器生成目标代码可以,我理解了编译器可以将源代码转换成机器语言,生成目标文件,扩展名为“.o”或“.obj”

1.3.3链接可执行程序C语言函数库链接器目标文件1目标文件2……目标文件n一个C语言程序可能用到程序库中的函数,也可能包含多个源代码文件,所以在编译之后,需要链接器将它们组合起来,生成可执行文件,扩展名为“.exe”。

1.3.4执行在这个阶段,计算机精确地执行指令。通过链接得到可执行文件之后,程序的运行首先需要初始化系统相关资源,然后才运行main函数。运行结果可能是正确的,也能是错误的,甚至使计算机崩溃。1.3.5处理错误分析问题编制程序编译链接调试运行完成会发现语法错误,转回修改源程序链接中发现错误,转回修改源程序调试运行中发现问题,可能是内存错误或逻辑错误编程是一件复杂的工作,因为是人做的事情,所以难免经常出错。你需要逐步处理错误,直到获得期望的结果为止。

模仿练习1.在屏幕上显示“ThisismyfirstCprogram!”2.在屏幕上显示****************3.在屏幕上显示*********

#include<stdio.h>intmain(void){

inta,b,sum;a=3;b=5;sum=a+b;printf(“%d\n",sum);return0;}定义a,b为a,b赋值计算a与b的和赋给sum计算并输出sum执行程序的输出结果为:8

1.4剖析一个简单的程序例1.2计算两个数的和1.4.1注释#include<stdio.h>intmain(void){……}//此程序用来……单行注释C程序可以包含注释,以便向读者作一般说明编译器并不处理这些注释/*此程序由×××编写用来打印输出……*/多行注释/**************************作者:创建日期:描述:……***************************/#include<头文件>intmain(){……}注释在程序中添加注释是一个好的编程习惯,可以增强程序的可读性。1.4.2预处理

#include<stdio.h>intmain(void){

inta,b,sum;a=3;b=5;sum=a+b;printf(“%d\n",sum);return0;}#表示这是个预处理器指令,就是编译器在编译过程开始之前的预处理阶段处理这些指令该指令将stdio.h文件的内容包含进来以.h为后缀的文件被称为头文件,可以是C程序中现成的标准库文件,也可以是自定义的库文件。stdio.h文件中包含了编译器理解printf()以及其他输入输出函数所需要的信息。C语言的一个突出优点就是它具有标准库,包含了数百个用于输入输出、字符串处理等实用操作的函数#include<stdio.h>intmain(void){

inta,b,sum;a=3;b=5;sum=a+b;printf(“%d\n",sum);return0;}1.4.3main()函数

C语言由一个或多个函数组成,每个程序都必须有一个main()函数——因为每个程序总是从这个函数开始执行main()函数可以返回一个值,返回值为0表示程序正常结束在函数定义的后面有一个左大括号,即{它表示函数的开始,后面是函数的主体在函数定义的结尾处有一个右大括号,即}1.4.4语句

#include<stdio.h>intmain(void){

inta,b,sum;a=3;b=5;sum=a+b;printf("%d\n",sum);return0;}函数体内定义a,b为a,b赋值计算a与b的和赋给sum输出sum的值函数返回0函数主体中的每个语句都以分号结束。C程序中的一个语句可以跨越多行,并且用分号通知编译器该语句已结束。1.4.5关键字

#include<stdio.h>intmain(void){

inta,b,sum;scanf("%d%d",&a,&b);sum=a+b;printf("%d\n",sum);return0;}只需要32个单词,便可杀入计算机专业!C语言中的关键字是具有特殊意义的字,如int用于定义整数类型,return用于函数的返回。程序中不能将关键字用于其它目的。C语言有32个关键字

1.4.6输入输出

#include<stdio.h>intmain(void){

inta,b,sum;a=3;b=5;sum=a+b;printf("%d\n",sum);return0;}在屏幕上输出:8尝试1:希望在屏幕上输出:和为8尝试2:希望在屏幕上输出:3与5的和为8printf("和为%d\n",sum);printf("%d与%d的和为%d\n",a,b,sum);1.4.6输入输出

#include<stdio.h>intmain(void){

inta,b,sum;a=3;b=5;sum=a+b;printf("%d\n",sum);return0;}如何计算任意两个整数的和?从键盘读入数给a和bscanf(“%d”,&a);scanf(“%d”,&b);scanf("%d%d",&a,&b);

printf("%d与%d的和为%d\n",a,b,sum);试试吧!1.4.7标识符

由字母、下划线和数字组成的字符序列,且不能以数字开头。分类如下:1.关键字必须用小写字母,具有特殊意义。如int、float、return、if等。2.预定义标识符编译预备处理命令,如include、define等;系统标准库函数,如scanf、printf、putchar、getchar、strcpy、strcmp、sqrt等。3.用户自定义标识符用于对用户使用的变量、数组、函数等操作对象进行命名。用户自定义标示符不能与关键字重名;最好不要与预定义标示符重名,否则会改变其原有含义。正确区分标识符正确区分哪些是合法标识符,哪些是不合法标识符。其中哪些是合法的用户自定义标识符。Abcdefine2xdoublestudentm+ya#b-4_1Whileintletx%ynamedoπw

tmCtrlswicthinclude#include<stdio.h>intmain(void){

inta,b;a=5;b=a*a;printf("b=%d\n",b);

}

main

为函数名程序从这里开始运行函数体开始函数体结束函数体内定义a,b为a赋值计算并输出平方值b执行程序的输出结果为:

b=25

【例1.3】计算并输出一个数的平方【例1.4】输入两个数,输出其中的大数#includ

温馨提示

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

评论

0/150

提交评论