550 likes | 724 Views
第 2 章 用 C 语言表达程序. 内容回顾. 算法: 方法和步骤 框图: 算法的表示方法。流程图、 PAD 程序: 算法的具体实现 操作: 编辑→编译→链接→运行 查错:语法错误、语义错误. 内容回顾. 重点: 主函数: main 键盘输入函数 scanf 屏幕输出函数 printf 基本数据类型: int , float , double. 内容回顾. 题目: ① 几个数的最大数(最小数) ② 两个数的和(差) ③圆的面积. 内容回顾. 求两个整数的最大数
E N D
内容回顾 算法:方法和步骤 框图:算法的表示方法。流程图、PAD 程序:算法的具体实现 操作:编辑→编译→链接→运行 查错:语法错误、语义错误
内容回顾 重点: 主函数:main 键盘输入函数scanf 屏幕输出函数printf 基本数据类型:int,float,double
内容回顾 题目: ① 几个数的最大数(最小数) ② 两个数的和(差) ③圆的面积
内容回顾 求两个整数的最大数 定义变量:int a, b, max; 分配内存空间 a b max
内容回顾 输入: scanf(“%d,%d”,&a, &b); a 5 b 9 max 键盘
内容回顾 处理: max = a; 5 a 5 b 9 max
内容回顾 处理: max = a; if ( max < b ) max = b; 9 a 5 b 9 max
内容回顾 输出: printf(“%d”, max); 9 a 5 b 9 max 屏幕
内容回顾 函数结束, 释放变量空间 由操作系统(Windows)管理内存。
C程序的结构 ◆ 由函数组成 ◆ 有且只有一个主函数(main)
例2-1 输入两个整数,输出其和. ◆输入: ? ◆处理: ? ◆输出: ?
例2-1 输入两个整数,输出其和. ◆输入: ? ◆处理: ? ◆输出: ? scanf(“%d,%d”, &a, &b); c = a + b; 不需要用if printf(“%d”, c);
例2-1 输入两个整数,输出其和. ①关于头文件 ②标识符 ③标识符命名 ④关于注释 ⑤版权说明 #include <stdio.h> // 标准输入输出函数的声明void main( ) // 主函数, 程序的入口{ int a, b, c; /* 定义变量 */ scanf(“%d,%d”, &a, &b); // 输入c = a + b; // 处理printf(“%d”, c); // 输出}
例2-2 输入两个整数,输出平方和. #include <stdio.h> // 标准输入输出函数的声明void main( ) // 主函数, 程序的入口{ int a, b, square; /* 定义变量 */ scanf(“%d,%d”, &a, &b); // 输入c = a*a + b*b; // 处理printf(“%d”, square); // 输出}
输入一个整数,输出其绝对值. 课堂练习 ◆输入◆处理◆输出
例2-3计算圆的周长与面积. ◆输入◆处理◆输出 ①函数 ②函数的构造 ③函数的调用 ④实数类型
小结 ①C程序由函数组成,主函数是入口; ②两个基本数据类型:整型、实型; ③程序的基本思路:输入-处理-输出; ④标识符、命名法。
上机作业 • 习题2.1~2.3;
上机存在的问题 • “= ”和“==”是同一个意思吗? • 同一行的语句用逗号隔开: max=a,max=b; • 编辑新的程序时,忘记关闭工作空间。
内容回顾 • 一个程序有几个主函数?主函数的作用? • 标识符的命名规则;匈牙利命名法 • 整型、单精浮点、双精浮点标识符是如何表示的?
例2-3计算圆的周长与面积. • 输入 • 处理 • 输出 用函数scanf实现键盘输入圆的半径r。 用求圆的周长和面积的公式c=2πr ,s=πr2,计算周长c、面积s。 把上面的计算结果c和s用函数printf 向屏幕输出。
例2-3计算圆的周长与面积. #include<stdio.h> void main( ) { float r, c, s ; scanf(“%f”,&r); c=2*3.1415926*r; s=3.1415926*r*r; printf(“周长为:%f, 面积为:%f\n", c, s); }
例2-3计算圆的周长与面积. • 输入 • 处理 • 输出 ①函数 ②函数的构造 ③函数的调用 ④实数类型
参数 函数 函数值 关于函数: • 输入:参数 • 参数处理:函数体 • 输出:返回值关于库函数:附录D。
例2-3:计算圆的周长与面积。 • #include<stdio.h> • float c( float r ) • { • return 2*3.1415926*r; • } • float s( float r ) • { • return 3.1415926*r*r; • } • void main( ) • { • float r; • scanf( "%f", &r ); • printf ( “ c: %f, s:%f\n ", c(r),s(r) ); • }
0、-2、123 整型常量 实型常量 0.2、4.8、1.3e20 按数据类型 字符常量 'A' 、'g'、'+'、'?' 字符串常量 直接常量(字面常量) “Abc” 按字面形式 符号常量 常量 • 常量:在程序的运行过程中,其值不能被改变 • 常量的分类: (用标识符表示的常量)
例2-4 球的表面积与体积 • 构造函数 • 常量标识符 • 编译预处理
变量与内存 • 变量:在程序的运行过程中,其值可以 被改变的。 • 定义了变量就分配了空间。 • 空间的大小与数据类型有关。
小结 • 构造函数、调用函数; • 常量; • 预处理; • 变量与内存; • 记住:交换两个变量的程序段作业:输入三个整数,从大到小输出。
内容回顾 (1)构造函数、调用函数; (2)常量; (3)预处理; (4)变量与内存。
内容回顾 有关预处理,请看如下实例 #include<stdio.h> #define PI 3.1416 #define S(x) PI*x*x void main() { double r; //输入 scanf(“%lf”,&r); //输出 printf(“%lf”,S(r)); }
内容回顾 有关预处理,再请看如下实例,看看结果与上面的实例有何不同? #include<stdio.h> #define PI 3.1416 #define S(x) PI*x*x void main() { double a,b; //输入 scanf(“%lf,%lf”,&a,&b); //输出 printf(“%lf”,S(a+b)); }
内容回顾 有关变量与内存,请看例2-6:交换两个变量的值。 #include<stdio.h> void main() { int a,b,t; //输入 a=2;b=3; //交换 t=a;a=b;b=t; //输出 printf(“%d,%d”,a,b); }
2 3 2 3 3 2 3 3 2 2 2 a a t b t b t a b a b t t (b)执行“t=a;”后 (c)执行“a=b;”后 (d)执行“b=t;”后 (a)执行“a=2; b=3;”后 此时变量t单元里的值 是内存原来的“残留物”, 值不确定,不必关心
从例2-6不难看出,变量与内存的关系: 变量有空间 变量的值能被覆盖 变量的值能被复制
表达式 • 例2-7 :华氏温度转换成摄氏温度。 • 输入:华氏温度F (实数) • 处理: • 输出:摄氏温度C (实数)
表达式 • 算术运算符 加(+)、减(-)、乘(*)、除( / )、整数取余(%) 注意: ①除( / ):当两个操作数都是整数时,结果 也为整数(丢掉小数部分)。 ②整数取余(%):取模运算,要求整数操作 数。
课堂练习 首先请大家将下列的应用题的解析式写出;然后将写出的解析式用C语言的表达式表示出来 • 1.利民水果店运来500千克桃,卖出了13筐,平均每筐25千克,还剩多少千克桃? • 2.一个县有1440人参加电视大学学习。每8人准备一台电视机。已经准备好95台,还缺多少台? • 3.一个粮食加工厂碾了一批大米。已经装满96袋,每袋75千克,还剩2700千克没有装袋。把这批大米平均分两批运出,一共运出多少千克?
课堂练习 • 4.洗发水每瓶15元,商场开展促销活动,买2瓶送1瓶。一次买2瓶,每瓶便宜多少元? • 5.甲乙两种面包车,甲车可乘12人,每辆租金120元。乙车18人,每辆租金160元。旅行团58人,怎样租最省钱?
表达式 • 关系运算符<, <=, ==, >, >=, != • 逻辑运算符 与(&&)、或(| |)、非(!) • 条件运算符 条件 ?表达式1 :表达式2
小结 • 预处理方式 • 变量与内存的关系,注意变量定义之后才能使用 • 表达式:算术表达式、逻辑表达式 • 运算符:算术运算符、逻辑运算符、位操作运算符、条件运算符(三目)
上机作业 • 习题2.4 • 习题2.8
内容回顾 • 变量与内存 • 运算符: 算术、关系、逻辑条件运算(三目运算)
表达式 • 位运算符 按位:与(&)、或(|)、异或(^)、取反(~) • 类型自然转换 向占用空间大的转换; 占用空间相同,则向实数转换。
使用库函数 • 例2-9 求解一元二次方程。输入:方程的系数a,b,c处理:用求根公式求解x1,x2输出:输出解x1,x2
给变量赋值 赋值表达式: 变量 = 表达式赋值表达式的值是左边变量的值语句:表达式后面加分号变量的自增、自减 x=x+1; 写成变量x自增:++x; 或 x++; x=x-1; 写成变量x自减: --x; 或 x--;
给变量赋值 • 变量的自增自减 ①单独使用自增的语句,++x与x++效果相同,自减同理; ②特别提示:忌讳使用难懂的表达方式,如“y=x+++z”,有歧义! • 复合赋值运算 在“=”之前加上其他运算符,如+=、-=、*=等。
基本输入和输出 • 格式输入函数: scanf(“格式字符串”,地址表) • 格式输出函数: printf(“格式字符串”,表达式表) • 格式字符:以%号引导
基本输入输出 • 字符输入函数: getchar( );在stdio.h中,需回车 getch( );在conio.h中,不需回车 • 字符输出函数: putchar(表达式); • 转义字符:以‘\’引导