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