《C语言程序设计第四谭浩强程序设计和C语言.pptx》由会员分享,可在线阅读,更多相关《C语言程序设计第四谭浩强程序设计和C语言.pptx(44页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、学习与参考资料教材实验指导与习题册等级考试资料教学课件互联网资源第1页/共44页学习方法与要求v多看(例题)、多练(编程)、多交流(学习讨论)v课前预习,认真听课、积极回答问题,按质按量完成习题册上的课后习题;v实验课前完成实验指导册中要求的源程序编写任务,实验课上输入并调试程序,改正并完善实验报告,回答实验思考题;v以寝室为单位成立学习小组,轮流组长,教师批改组长的实验报告和习题,组长批改组员的实验报告和习题。第2页/共44页学习效果评价与考核v总评=平时成绩(10%)+实验与习题(30%)+期终考试(60%)v平时成绩:基础分60分,表现好累计加分至100分,表现不好累计减分至0分;v加分
2、项目:主动回答问题1次加 3分,正确回答问题1次加 2分(即:主动且正确回答加5分);v减分项目:旷课或实验课玩游戏(上网)1次减10分,累计3次者平时成绩记0分,迟到或早退1次扣5分。第3页/共44页第4页/共44页本章教学内容前导知识C语言概述C程序上机步骤第5页/共44页1.做口述笔记2.键入信函的内容3.发送传真1.口述2.信函1._2._3._4._3.传真指令被逐条执行程序员老板秘书程序:为了让计算机执行某些操作或解决某个问题而编写的一系列有序指令的集合要执行的一组指令1、前导知识计算机中的程序是什么?程序第6页/共44页问题:计算长方形的面积1.接收用户输入的长方形长度和宽度两个
3、值;2.判断长度和宽度的值是否大于零;3.如果大于零,将长度和宽度两个值相乘得到面积,否则显示输入错误;4.显示面积。算法算法:解决某问题的具体方法和步骤算法第7页/共44页算法的描述方法v自然语言v伪代码v流程图 传统流程图 结构化流程图(N-S图)开始/结束处理输入/输出判断/分支连接符流程线传统流程图第8页/共44页计算长方形面积的传统流程图举计算长方形面积的传统流程图举例例开始接收 num1 和 num2Result=num1num2显示 Result结束num1和num2 0?显示“输入错误”否是第9页/共44页N-S结构化流程图 完全去掉带箭头的流程线,全部算法写在一个矩形框内。主
4、要的流程图符号(3种基本结构):顺序结构真假真假选择结构AB等价于AB条件P真假等价于第10页/共44页N-S结构化流程图 完全去掉带箭头的流程线,全部算法写在一个矩形框内。主要的流程图符号(3种基本结构):直到为“真”直到为“真”循环结构(until型)当为“真”循环结构(while型)A条件P真假等价于第11页/共44页例题:求例题:求3个数中最大那个数个数中最大那个数N-S流程图举例流程图举例输入a、b、c的值max=amax=bmaxb?真假maxc?max=c真假输出max的值第12页/共44页Begin显示ss=0;k=1k=100例题:计算 S=1+2+3+100 的流程图End
5、真假s=s+k;k=k+1等价于s=0 ;k=1k=100 s=s+k;k=k+1输出s的值第13页/共44页实质:用于编制程序,指挥计算机正常工作的指令系统。问题:如何指挥计算机求解1+1.机器语言:计算机能直接执行的二进制指令系统计算机语言不同的计算机有不同的机器语言不同的计算机有不同的机器语言101110000000000100000000000001010000000100000000机器语言编写的1+1程序第14页/共44页汇编语言:与机器语言对应的符号化的指令系统不同的计算机有不同的汇编语言不同的计算机有不同的汇编语言需要汇编需要汇编(翻译翻译)成机器语言才能执行成机器语言才能执行
6、MOV AX,1ADD AX,1汇编语言编写的1+1程序101110000000000100000000000001010000000100000000汇编执行第15页/共44页高级语言:与机器无关类自然语言的指令系统可适用于不同的计算机系统可适用于不同的计算机系统需要编译需要编译(翻译翻译)成机器语言才能执行成机器语言才能执行BASIC语言编写的1+1程序C语言编写的1+1程序PRINT 1+1#include main()printf(%dn,1+1);第16页/共44页实质:存储程序原理(冯诺依曼原理)计算机的工作原理程序+数据外存输入设备数据程序+数据内存输出设备数据指令CPU2000
7、0200018004080041内存地址.内存单元0001101011111000.指令0100100011001011.数据返回第17页/共44页编程语言低级高级C 语言是贝尔实验室的 Dennis Ritchie 在1973 年设计的。C 最初用于开发系统级程序。主要版本:ANSI C(1983)、ANSI C(1989)、ISO C(1999)2、C语言概述C C语言的历史语言的历史在微机上,有许多性能良好的C语言系统可用。包括Turbo C、Borland C/C+;Microsoft Visual C/C+等。第18页/共44页C C语言的特语言的特点点l语言简洁、紧凑,使用方便、灵
8、活。37(32:C89)个关键字,9种控制语句l运算符丰富。34种运算符(将括号、赋值、强制类型转换等作为运算符)。l数据结构丰富,具有现代化语言的各种数据结构。标准类型、构造类型、指针类型。l具有结构化的控制语句。用函数实现程序的模块化。l语法限制不太严格,程序设计自由度大。例如:整型数据与字符型数据可以通用。lC语言可以直接访问物理地址。能实现汇编语言的大部分功能,可以直接对硬件进行操作。l目标代码质量高,程序执行效率高。l程序可移植性好。第19页/共44页int main(void)n例题:在屏幕上显示:Programming is fun.printf(“Programming is
9、fun.n”);语句执行该语句就是调用printf函数#include 编译预处理命令return 0;/*返回一个数字0*/*文件名:ex1.c*/返回一个数字0/*向操作系统 返回一个数字0*/主函数输出函数注释C 程序的基本结构换行符第20页/共44页n例题:在屏幕上显示:Programming is fun.The first C Program!#include void main()printf(“Programming is fun.n”);printf(“The first C Program!n”);第21页/共44页#include void main(void)int a
10、,b,sum;/*变量定义*/a=3;/*变量使用*/b=2;sum=a+b;printf(“The sum is%dn”,sum);/*输出结果*/The sum is 5n例题:计算并显示两个数的和 =赋值运算符%d 输入输出函数中的“格式字符串”,表示 以十进制整数的形式输出。(%d的位置被sum的值取代)第22页/共44页#include int main(void)int a,b,sum;/*变量定义*/a=3;b=2;/*变量使用*/sum=a+b;printf(“The sum is%dn”,sum);/*输出结果*/return 0;3+2=5n例题:计算两个数的和,以算式的形
11、式显示The sum is 5 printf(“%d+%d=%dn”,a,b,sum);第23页/共44页#include int main()int max(int x,int y);int a,b,c;scanf(”%d,%d”,&a,&b);c=max(a,b);printf(max=%dn,c);return 0;int max(int x,int y)int z;if(x y)z=x;else z=y;return(z);主函数max函数n例题:求两个整数中的较大者。第24页/共44页#include int main()int max(int x,int y);int a,b,c;
12、scanf(”%d,%d”,&a,&b);c=max(a,b);printf(max=%dn,c);return 0;int max(int x,int y)int z;if(x y)z=x;else z=y;return(z);将x和y中较大者值返回给主函数第25页/共44页#include int main()int max(int x,int y);int a,b,c;scanf(”%d,%d”,&a,&b);c=max(a,b);printf(max=%dn,c);return 0;int max(int x,int y)int z;if(x y)z=x;else z=y;return
13、(z);第26页/共44页#include int main()int max(int x,int y);int a,b,c;scanf(”%d,%d”,&a,&b);c=max(a,b);printf(max=%dn,c);return 0;int max(int x,int y)int z;if(x y)z=x;else z=y;return(z);因max函数的定义在main函数之后,需声明第27页/共44页#include int main()int max(int x,int y);int a,b,c;scanf(”%d,%d”,&a,&b);c=max(a,b);printf(ma
14、x=%dn,c);return 0;int max(int x,int y)int z;if(x y)z=x;else z=y;return(z);输入函数第28页/共44页#include int main()int max(int x,int y);int a,b,c;scanf(”%d,%d”,&a,&b);c=max(a,b);printf(max=%dn,c);return 0;int max(int x,int y)int z;if(x y)z=x;else z=y;return(z);输入语句第29页/共44页#include int main()int max(int x,in
15、t y);int a,b,c;scanf(”%d,%d”,&a,&b);c=max(a,b);printf(max=%dn,c);return 0;int max(int x,int y)int z;if(x y)z=x;else z=y;return(z);输入的数据放到a,b中输入格式a的地址第30页/共44页#include int main()int max(int x,int y);int a,b,c;scanf(”%d,%d”,&a,&b);c=max(a,b);printf(max=%dn,c);return 0;int max(int x,int y)int z;if(x y)
16、z=x;else z=y;return(z);调用max函数第31页/共44页#include int main()int max(int x,int y);int a,b,c;scanf(”%d,%d”,&a,&b);c=max(a,b);printf(max=%dn,c);return 0;int max(int x,int y)int z;if(x y)z=x;else z=y;return(z);8588第32页/共44页#include int main()int max(int x,int y);int a,b,c;scanf(”%d,%d”,&a,&b);c=max(a,b);p
17、rintf(max=%dn,c);return 0;int max(int x,int y)int z;if(x y)z=x;else z=y;return(z);8588第33页/共44页#include int main()int max(int x,int y);int a,b,c;scanf(”%d,%d”,&a,&b);c=max(a,b);printf(max=%dn,c);return 0;int max(int x,int y)int z;if(x y)z=x;else z=y;return(z);实际参数形式参数第34页/共44页n例题:编写语言程序,计算一个数的正弦值。#i
18、nclude#include int main(void)float x;/*定义 x 为实型变量*/x=sin(0.19199);/*调用 sin 函数 */printf(“%fn”,x);/*调用 printf 函数,输出x的值*/return 0;使用库函数,通过文件包含命令把头文件包含在程序前面。第35页/共44页C语言程序的结构语言程序的结构C语言程序的结构特点:1.一个程序由一个或多个源程序文件组成2.一个源程序文件中可以包括三个部分预处理指令全局声明函数定义3.函数是C程序的主要组成部分一个C程序是由一个或多个函数组成(这些函数可以位于不同源程序文件中);一个C程序当且仅当可包含
19、一个main函数;每个函数都用来实现一个特定功能,一个函数内可以调用另一个函数;被调用的函数可以是库函数,也可以是自己编制的函数。第36页/共44页C语言程序的结构语言程序的结构C语言程序的结构特点:4.一个函数包括两个部分:函数首部 int max (int x,int y)函数的第1行函数类型函数名参数类型参数名若函数无参,在括弧中写void或空括弧int main(void)或 int main()第37页/共44页C语言程序的结构语言程序的结构C语言程序的结构特点:4.一个函数包括两个部分:函数体声明部分:定义在本函数中所用到的变量;对本函数所调用函数进行声明;执行部分:由若干个语句组
20、成,语句以;结束。一行内可以写几个语句;一个语句可以分写在多行上;函数体可以为空,但不能省略。可以没有声明部分第38页/共44页C语言程序的结构语言程序的结构C语言程序的结构特点:5.程序总是从main函数开始执行,由main函数结束6.C程序对计算机的操作由C语句完成;7.C语言本身不提供输入输出语句,通过调用输入、输出函数完成数据的输入、输出;8.程序应当包含注释,增加可读性,注释不能嵌套。例:/*This is the main /*of example1.1*/*/非法第39页/共44页格式特点:l习惯用小写字母,大小写敏感l不使用行号,无程序行概念l可使用空行和空格l常用锯齿形书写格
21、式main().main()int i,j,sum;sum=0;for(i=1;i10;i+)for(j=1;j10;j+)sum+=i*j;printf(“%dn”,sum);优秀程序员的素质之一:使用TAB缩进 对齐有足够的注释有合适的空行C语言程序的结构返回第40页/共44页3、C程序的上机步骤C 源程序目标文件可执行程序C语言函数库编译连接源程序:是用户创建的文件,以“.c”为文件扩展名保存 目标文件:是编译器的输出结果。这类文件的常见扩展名为“.o”或“.obj”头文件:含有函数的声明和预处理语句,用于帮助访问外部定义的函数。头文件的扩展名为“.h”。可执行文件:是连接器的输出结果。可执行文件的扩展名为“.exe”。第41页/共44页C C程序的开发过程程序的开发过程分析问题编制程序编译连接调试运行完成编译中发现错误,转回修改源程序连接中发现错误,转回修改源程序调试运行中发现问题,表明分析本身有错误,重新分析问题返回第42页/共44页课后作业课后作业1、教材P15第6、7题;2、教材P36第5题的2、3、7、8小题。第43页/共44页感谢您的欣赏!第44页/共44页
限制150内