第1章程序设计和C语言-15秋_第1页
第1章程序设计和C语言-15秋_第2页
第1章程序设计和C语言-15秋_第3页
第1章程序设计和C语言-15秋_第4页
第1章程序设计和C语言-15秋_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

1、计算机程序设计基础(计算机程序设计基础(C语言)语言)主讲:王淑鸿主讲:王淑鸿信息技术教学与实验中心信息技术教学与实验中心1.1 什么是计算机程序什么是计算机程序1.2 什么是计算机语言什么是计算机语言1.3 C语言的发展及其特点语言的发展及其特点1.4 最简单的最简单的C语言程序语言程序1.5 运行运行C程序的步骤与方法程序的步骤与方法1.6 程序设计的任务程序设计的任务1.1 什么是计算机程序什么是计算机程序 1.2 什么是计算机语言什么是计算机语言程序程序:一组计算机能识别和执行的一组计算机能识别和执行的指令指令。计算机语言计算机语言:人和计算机交流信息人和计算机交流信息的、的、计算机和

2、计算机和人都能识别的语言人都能识别的语言。几个概念几个概念: 机器语言、汇编语言、高级语言机器语言、汇编语言、高级语言 源程序、目标程序、可执行程序源程序、目标程序、可执行程序 编译执行、解释执行编译执行、解释执行C语言是高级语言,语言是高级语言,C程序是编译执行的程序是编译执行的1.3 C语言的发展及其特点语言的发展及其特点 是一种高级语言是一种高级语言u并不并不“高级高级”,只是相对低级语言在一个高的级别上进,只是相对低级语言在一个高的级别上进行编程行编程 历史悠久,功能强大历史悠久,功能强大u诞生于诞生于2020世纪世纪7070年代初,成熟于年代初,成熟于8080年代年代u很多重量级软件

3、都是用很多重量级软件都是用C C语言写的,比如语言写的,比如UNIXUNIX操作系统操作系统 很多流行语言、新生语言都借鉴了它的思想、语法很多流行语言、新生语言都借鉴了它的思想、语法u从从C+C+,到,到JavaJava,再到,再到C#C#1983年,美国国家标准协会年,美国国家标准协会(ANSI) 制定了第一个制定了第一个C语言标准草案语言标准草案(83 ANSI C)。1989年,年,ANSI公布了一个完整的公布了一个完整的C语言标准语言标准ANSI X3.159-1989(常称常称ANSI C,或,或C89)。1995年,年,ISO对对C90作了一些修订,命名为作了一些修订,命名为ISO

4、/IEC 9899:1999。2001、2004年先后进行了两次技术修正年先后进行了两次技术修正(TC1和和TC2)。ISO/IEC 9899:1999(及其技术修正及其技术修正)被被称为称为 C99。本书的叙述以本书的叙述以C99标准为依据标准为依据(对对C99新增加的功能新增加的功能作特别的说明作特别的说明)。C语言主要特点语言主要特点:u语言简洁、紧凑,使用方便、灵活。语言简洁、紧凑,使用方便、灵活。l只有只有37个关键字、个关键字、9种控制语句种控制语句、程序书写形式自由程序书写形式自由u运算符丰富。运算符丰富。l有有34种运算符种运算符、表达式类型多样化表达式类型多样化u数据类型丰富

5、。数据类型丰富。l包括包括:整型、浮点型、字符型、数组类型、指针类型、结构整型、浮点型、字符型、数组类型、指针类型、结构体类型、共用体类型体类型、共用体类型u具有结构化的控制语句具有结构化的控制语句l如如ifelse语句、语句、while语句、语句、dowhile语句、语句、switch语句、语句、for语句语句l用函数作为程序的模块单位,便于实现程序的模块化用函数作为程序的模块单位,便于实现程序的模块化u允许直接访问物理地址,能进行位操作,直接对硬件操作允许直接访问物理地址,能进行位操作,直接对硬件操作1.4最简单的最简单的C语言程序语言程序1.4.1 最简单的最简单的C语言程序举例语言程序

6、举例 (例题例题1.1 例题例题1.2 例题例题1.3)1.4.2 C语言程序的结构语言程序的结构运行运行C程序的步骤与方法程序的步骤与方法1.上机输入和编辑源程序上机输入和编辑源程序 (.c文件)文件)2.对源程序进行编译对源程序进行编译 (.obj文件)文件)3.进行连接处理进行连接处理 (.exe文件)文件)4.运行可执行程序,得到运行结果运行可执行程序,得到运行结果Microsoft visual C+6.0例例1.1 要求在屏幕上输出以下一行信息要求在屏幕上输出以下一行信息。(教材(教材P6) This is a C program.知识点知识点: 1、C程序的结构框架程序的结构框架

7、 2、输出指令、输出指令#include /编译预处理编译预处理int main( ) /定义主函数定义主函数 printf (”This is a C program.n”); return 0; /函数结束的标志函数结束的标志 #include int main( ) printf (”This is a C program.n”); return 0; 函数的名字,表示函数的名字,表示主函数主函数可执行的可执行的C程序必须有程序必须有且只有且只有一个一个 main 函数函数主函数主函数类型类型(整型整型),可以省略,可以省略函数体函数体(由花括号括起来的一组语句由花括号括起来的一组语句)

8、输出函数输出函数输出语句输出语句换行符换行符函数执行结束前函数执行结束前将整数将整数0作为函数值作为函数值返回返回用到函数库中的输入输出函数用到函数库中的输入输出函数时时表示语句结束表示语句结束#include /编译预处理编译预处理int main( ) /定义主函数定义主函数 printf (”This is a C program.n”); return 0; /函数结束的标志函数结束的标志 注释注释C语言允许用两种注释方式语言允许用两种注释方式: (注释对运行不起作用,只是给读程序的人看的注释对运行不起作用,只是给读程序的人看的) / 单行注释单行注释u可单独占一行可单独占一行,可,可

9、出现在一行中其他内容的右侧出现在一行中其他内容的右侧 /*/ 块式注释块式注释u可包含多行可包含多行#include int main( ) int a,b,sum; a = 123; b = 456; sum = a + b; printf(”sum is %dn”,sum); return 0; /变量定义语句,变量定义语句,定义定义三个三个整型变量整型变量a,b,sum/进行算术运算进行算术运算 a+b ,运算结果赋值给运算结果赋值给sum/输出输出/变量赋值语句,变量赋值语句,对变量对变量 a 赋值赋值/变量赋值语句,变量赋值语句,对变量对变量 b 赋值赋值例例1.2 求两个整数之和求

10、两个整数之和。 (教材(教材P8) 例例1.3 求两个整数中的较大者。求两个整数中的较大者。 (教材(教材P8) 与例题与例题1.2不同,本例题采用另外一种结构编程不同,本例题采用另外一种结构编程u用一个函数实现求两个整数中的较大者用一个函数实现求两个整数中的较大者u在主函数中调用此函数并输出结果在主函数中调用此函数并输出结果例例1.3 求两个整数中的较大者。求两个整数中的较大者。 (教材(教材P8) #include /主函数主函数int main( ) /定义定义主函数主函数 int max(int x,int y); /对被调用函数对被调用函数max的声明的声明 int a,b,c; /

11、定义变量定义变量a,b,c scanf(”%d,%d”,&a,&b); /输入变量输入变量a和和b的值的值 c = max(a,b); /调用调用max函数,将得到的值函数,将得到的值 printf(max=%dn,c); /输出输出c的值的值 return 0; /返回函数值为返回函数值为0 /主函数体结束主函数体结束/ max函数,函数功能为求两个整数中的较大者函数,函数功能为求两个整数中的较大者int max(int x,int y) /定义定义max函数,函数值为整型,形式参数函数,函数值为整型,形式参数x和和y为整型为整型 /max函数体开始函数体开始 int z;

12、/定义定义max函数中用到的变量函数中用到的变量z if (x y) z = x; /若若xy成立,将成立,将x的值赋给变量的值赋给变量z else z = y; /否则,将否则,将y的值赋给变量的值赋给变量z return(z); /将将z的值作为的值作为max函数值,返回到函数值,返回到max函数的被调用处函数的被调用处 /max函数体结束函数体结束用例题用例题1.2的结构编写例题的结构编写例题1.3#include int main( ) int a,b,m; scanf(”%d,%d”,&a,&b); if(ab) m=a; else m=b; printf(”max

13、is %dn”, m); return 0; #include /主函数主函数int main( ) /定义定义主函数主函数 int sum(int x,int y); /对被调用函数对被调用函数sum的声明的声明 int a,b,c; /定义变量定义变量a,b,c scanf(”%d,%d”,&a,&b); /输入变量输入变量a和和b的值的值 c = sum(a,b); /调用调用sum函数函数计算计算a、b的和的和 printf(“sum=%dn,c); /输出输出 return 0; /返回函数值为返回函数值为0 /主函数体结束主函数体结束/ sum函数,函数功能为求两个

14、整数函数,函数功能为求两个整数之和之和int sum(int x,int y) /定义定义sum函数,函数值为整型,形式参数函数,函数值为整型,形式参数x和和y为整型为整型 /sum函数体开始函数体开始 return(x+y); /将将x+y的值作为的值作为sum函数值,返回到被调用处函数值,返回到被调用处 /sum函数体结束函数体结束用例题用例题1.3的结构编写例题的结构编写例题1.2 附加程序附加程序-小学生算术测试系统小学生算术测试系统#include#include#includevoid plus(void);void dec(void);void muti(void);void d

15、iv(void);int menu();void ques(int s);void test();void count();int a,b,c,ans; /a,b为两个运算数,为两个运算数,c为用户输入的结果,为用户输入的结果,ans为正确答案为正确答案int right,error;/right为答对的题目数量,为答对的题目数量,error为答错的题目数量为答错的题目数量int i,score;/得分得分 score=right*100/all;void main() int s; while(1) s=menu(); switch(s)case 1: plus(); break;case

16、2: dec(); break;case 3: muti(); break;case 4: div(); break;case 5: return; count(); int menu()int s;printf(n 小学算术运算测试系统小学算术运算测试系统nn);printf( 1 加加n 2 减减n 3 乘乘n 4 除除n 5 退出退出nn); printf( 请输入数字选择测试类型:请输入数字选择测试类型:); scanf(%d,&s);while(!(s=1|s=2|s=3|s=4|s=5) printf( 请输入数字选择测试类型:请输入数字选择测试类型:);scanf(%d,

17、&s);return s;void plus(void) score=0,right=0,error=0;printf(n 测试开始,输入数字回答问题:测试开始,输入数字回答问题:n);for(i=0;i10;i+)ques(1);scanf(%d,&c);if(c=-1) break;test();void dec(void) void muti(void) void div(void) void test() if(c=ans) printf( 正确正确!n); right+; else printf( 错误错误!n);error+;void ques(int s)sran

18、d(time(NULL);a=rand()%10+1;b=rand()%10+1; switch(s) case 1:ans=a+b;printf( %d+%d=,a,b);break;case 2:break;case 3:break;case 4:break;void count()score=(right*100)/10;printf(n 得分:得分:%dn 做错题数:做错题数:%dnn,score,error);/ the end.1.4.2 C语言程序的结构语言程序的结构C语言程序的结构特点:语言程序的结构特点: (教材(教材P10-12) 1. 一个程序由一个或多个源程序文件组成一

19、个程序由一个或多个源程序文件组成2. 函数是函数是C程序的主要组成部分程序的主要组成部分3. 一个函数包含两个部分:一个函数包含两个部分: int max(int x,int y) / 函数首部函数首部 / 函数体函数体4. 程序从程序从main开始执行开始执行5. C程序书写格式是比较自由的程序书写格式是比较自由的u一行可以写几个语句一行可以写几个语句,一个语句可以分写在多行上一个语句可以分写在多行上6. 语句最后必须有分号语句最后必须有分号7. C语言不提供输入输出语句语言不提供输入输出语句,通过调用输入输出函数,通过调用输入输出函数8. 程序应当包含注释程序应当包含注释,增加可读性增加可

20、读性1.5 运行运行C程序的步骤与方法程序的步骤与方法教材教材P13P131.上机输入和编辑源程序上机输入和编辑源程序 (.c文件)文件)2.对源程序进行编译对源程序进行编译 (.obj文件)文件)3.进行连接处理进行连接处理 (.exe文件)文件)4.运行可执行程序,得到运行结果运行可执行程序,得到运行结果教材P370附录A学习辅导P223有Visual C+6.0编辑、编译、连接和运行C程序的方法用用VC+6.0 调试调试例例1.2 求两个整数之和求两个整数之和 #include int main( ) int a,b,sum; a = 123; b = 456; sum = a + b;

21、 printf(”sum is %dn”,sum); return 0; (0)(0)打开打开VC6.0 VC6.0 进入主界面进入主界面(0)(0)新建文件新建文件, ,保存为保存为.c.c的源程序文件的源程序文件2、编译、编译1、代码编写、代码编写3、连接、连接4、运行、运行信息提示信息提示1.6 程序设计的任务程序设计的任务(1)问题分析)问题分析(2)设计算法)设计算法(3)编写程序)编写程序(4)对源程序进行编辑、编译和连接)对源程序进行编辑、编译和连接(5)运行程序,分析结果)运行程序,分析结果(6)编写程序文档)编写程序文档补充:代码风格补充:代码风格1、缩进、缩进 - 以以4个

22、空格为单位。个空格为单位。2、间隔、间隔 - 所有的标识符都必须被空白字符包围。所有的标识符都必须被空白字符包围。3、空行、空行 - 代码段之间以一个空行进行间隔。代码段之间以一个空行进行间隔。4、代码行、代码行 - 一行只写一条语句一行只写一条语句5、命名规则、命名规则 - 变量名力求见名知意。变量名力求见名知意。 采用有意义的单词或缩写。采用有意义的单词或缩写。6、注释、注释 - 为确保程序的易读性,注释语句不得少于全部代码行为确保程序的易读性,注释语句不得少于全部代码行 的的30%。注意:代码风格不是必须的,但是,养成良好的编码风格是一个优注意:代码风格不是必须的,但是,养成良好的编码风

23、格是一个优秀程序员的基本素养。秀程序员的基本素养。#include int main( ) int a,b,sum; a = 123; b = 456; sum = a + b; printf(”sum is %dn”,sum); return 0; #include int main( ) int a, b, sum; a = 123;b = 456; sum = a + b; printf(”sum is %dn”,sum); return 0; 31补充:补充:C C语言的设计者语言的设计者Ken Thompson江湖人称江湖人称 ken32 1969年,美国贝尔实验室的年,美国贝尔实验

24、室的ken和和dmr梦想能遨游宇宙梦想能遨游宇宙 ken设计了一款电子游戏设计了一款电子游戏“Space Travel” 游戏在游戏在PDP-7小型机上开发,因为这台机器免费小型机上开发,因为这台机器免费 免费的机器没有操作系统免费的机器没有操作系统 玩游戏之前,先给玩游戏之前,先给PDP-7做个操作系统,命名为做个操作系统,命名为“UNIX” 汇编编写汇编编写UNIX太慢和可移植性差,又没有称手的高级语言,怎太慢和可移植性差,又没有称手的高级语言,怎么办?么办? 1972-1973年间,年间,dmr设计了一种新的高级语言,命名为设计了一种新的高级语言,命名为“C语言语言” 1983年,因为年

25、,因为UNIX和和C语言的巨大成功,语言的巨大成功, ken和和dmr共同获共同获得当年度的计算机界最高奖得当年度的计算机界最高奖图灵奖图灵奖练习练习1. C语言程序是由(语言程序是由( C )构成的。)构成的。 A) 一些可执行语言B) main函数 C) 函数 D) 包含文件中的第一个函数2C语言程序从语言程序从main()函数开始执行,这个函数写在(函数开始执行,这个函数写在( D )。)。 A) 程序文件的开始 B) 程序文件的最后 C) 它所调用的函数的前面 D) 程序文件的任何位置3. 以下说法中正确的是(以下说法中正确的是( C )。)。 A) C语言程序总是从第一个定义的函数开始执行 B) 在C语言程序中,要调用的函数必须在main( )函数中定义 C) C语言程序总是从main( )函数开始执行 D) C语言程序中的main( )函数必须放在程序的开始部分4. 下列说法中错误的是(下列说法中错误的是( D )。)。 A) 主函数可以分为两个部分:主函数说明部分和主函数体。 B) 主函数可以调用任何非主函数的其它函数。 C) 任何非

温馨提示

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

最新文档

评论

0/150

提交评论