已阅读5页,还剩59页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章 用C语言编写程序,2.1 在屏幕上显示 Hello World! 2.2 求华氏温度 100F 对应的摄氏温度 2.3 计算分段函数 2.4 输出华氏摄氏温度转换表 2.5 生成乘方表与阶乘表,例2-1 在屏幕上显示一个短句: Hello World!,/* 显示“Hello World!” */ # include int main(void) printf(“Hello World! n”); return 0; ,注释文本,编译预处理命令,主函数,输出文字,换行符,输出函数,1. 任何程序都有主函数 2. 程序由若干语句组成 3. 语句由;结束,例子,例2-2 在屏幕上显示一个短句: Programming is fun! And Programming in C is even more fun!,# include int main(void) printf(“Programming is fun! n“); printf(“And Programming in C is even more fun! n“); return 0; ,例子,#include int main(void) int celsius, fahr; fahr = 100; celsius = 5 * (fahr - 32) / 9; printf(“fahr = %d, celsius = %dn“, fahr, celsius); return 0; ,例2-3 求华氏温度 100F 对应的摄氏温度。 摄氏温度 C=(5/9)(F-32),fahr =100, celsius = 37,例子,A. 字面常量(直接常量): 要区分不同的类型 整型常量 1,-2,3 实型常量 1.5, -3.2 字符常量 a, b 注意:字面常量不需定义,可直接使用。,1、常量:程序运行过程中其值不能改变的量。,B. 符号常量:用一个标识符代表一个常量。 符号常量的使用:宏定义 书写习惯:符号常量名采用大写字符。,宏定义,#include,int main(void),float r,area;,r=5;,area=PI * r * r;,printf(“The area is %f .”,area);,return 0;,#define PI 3.1415926,2、变量:程序运行中其值改变的量。,可以用标识符对变量命名。 在c语言中变量必须“先定义,后使用”。 书写习惯:变量名常用小写字符。 形式: a、sum、st_count、boy1、_string,(3).区分变量的三个属性:变量名、变量值、存储单元,读取:变量名实际代表一个确定的存储单元。程序编译完成后,变量就与数据存储单元一一对应。对变量读取操作,就是到对应的存储单元中读取数据,而且取之不尽! 改写:就是给变量赋与新值, 原值被覆盖,注意: (1).变量的定义方法与符号常量不同: 符号常量:#define 标识符 常量 变量定义:数据类型 标识符;,(4).变量数据的读取与改写,(2).变量在内存中占据一定的存储单元;,关键字、标识符,1. 关键字:C语言中的一些保留字,在程序中表示固定的意义,不能被重新定义用作它用。C的关键字有32个。,2. 标识符:由程序员定义的一些名字,通常是一些字符序列。 命名规则: (1)有效字符:只能由字母、数字和下划线组成,且 以字母或下划线开头。 (2)有效长度:随系统而异,但至少前个字符有效。 如果超长,则超长部分被舍弃。 (3)C语言中的关键字不能用作标识符。 (4)选择标识符时,应做到“见名知意”。 注意:C语言是区分大小写的语言。,运 算:对数据进行计算处理的过程 例: y=x*x、 y=cos(x) 运算符:表示不同运算的符号(它代表各种运算的含义) 例: + 、 - 、 *、 、b,几个基本概念,算术运算,名 称 运算符 运算规则 加 + 加法 减 - 减法 乘 * 乘法 除 / 除法 注意:两个整数相除的结果取整数 模 % 整除取余,两侧均为整数,而且 分子分母 ,结果=余数。 分子分母 ,结果=分子。,基本的算术运算符,赋值运算,格式:变量=表达式 ; 运算规则:先计算等号右边的表达式, 然后将其值赋给等号左边的变量。,注意:C语言赋值运算符与数学中的等号其含义有着本质的不同。,例: x = 10 ; y = x*x+x ; x=x+1;,赋值运算符 =,赋值运算,由赋值运算符连接一个变量和一个表达式构成。 格式: 表达式;,例1: int x,y; x=5; y=10; y/=5; x=10*(y=5); 例2:char c1; c1=a;,赋值表达式,赋值表达式,格式:printf (格式控制,输出表列);,说明: 输出格式控制部分用于规定相应输出项的格式,由一系列格式转换说明符(简称格式符)和普通字符组成。 输出表列是指定要输出的数据,可以是变量,常量或表达式。,注意: a.多个变量、常量或表达式时,用逗号“,”分隔。 b.输出变量、常量或表达式的个数要与格式符个数相同,举例:,例2-4 分段计算水费,要解决的问题: 输入 计算分段函数 输出,并保留2位小数,例子,#include int main(void) double x, y; printf(“Enter x (x=0):n“); /* 输入提示 */ scanf(“%lf“, ,Enter x (x=0): 15 f(15.000000)=20.00,Enter x (x=0): 21.3 f(21.300000)=42.75,关系运算符,名 称 运算符 小于 大于等于 = 等于 = = 不等于 ! =,优先次序 前四种高于后两种; 低于算术运算符, 高于赋值运算符;,格式,功能,if (e) S1; else S2;,e 的结果为真(非0), 则执行 S1。 e 的结果为假 (0) , 则执行 S2。,Please input a,b: 100,99 max=100,例: 输入两个整数, 将较大的数输出。,int main(void ) int a,b; printf(“nPlease input a,b:”); scanf(“%d,%d”, ,一般格式:scanf (“格式控制”,地址表列);,scanf ( “%d%f ”, ,格式符,变量地址,地址运算符( & ),格式: 地址表达式:&a,5,8000H,内存,关于scanf( )函数的注意事项,“格式控制”后面必须是变量地址;,2. 输入数据时,必须与前面“格式控制”字符串完全对应;,3. 用“%c”格式输入字符时,空格和“转义字符”都是有效字符;,#include int main(void) int celsius, fahr; printf(“Enter fahr: n“); scanf(“%d“, ,Enter fahr: 100 fahr =100, celsius = 37,例子,例2-3 求华氏温度 100F 对应的摄氏温度。 摄氏温度 C=(5/9)(F-32),#include命令 用户调用库函数时,将相应的头文件包含到源程序中。 例如 调用scanf, printf,需要 #include 调用sqrt,需要 #include ,库函数 C语言处理系统提供事先编好的函数,供用户在编程时调用。scanf(), printf(), exp() 在相应的系统文件(头文件)中定义一些必需的信息。,平方根函数 sqrt(x) 绝对值函数 fabs(x) fabs(-3.56) 的值为3.56 幂函数 pow(x, n) :xn pow(1.1, 2) 的值为1.21(即1.12) 指数函数 exp(x):ex exp(2.3) 的值为e2.3 以e为底的对数函数 log(x):ln x log(123.45) 的值为4.815836 以10为底的对数函数 log10(x):log10x log10(123.45) 的值为2.091491。,例2-5 计算存款的本息,输入存款金额 money、存期 year 和年利率 rate,根据公式计算存款到期时的本息合计sum(税前),输出时保留2位小数。 sum = money ( 1 + rate)year,sum = money * pow(1 + rate), year),例子,# include # include int main(void) int money, year; double rate, sum; printf(“Enter money:“); scanf(“%d“, ,Enter money: 1000 Enter year: 3 Enter rate: 0.025 sum = 1076.89,例2-6 输入2个整数lower和 upper,输出一张华氏摄氏温度转换表,华氏温度的取值范围是lower, upper,每次增加1F。,例子,fahr celsius 30 -1.1 31 -0.6 32 0.0 33 0.6 34 1.1 35 1.7,#include int main(void) int fahr, lower, upper; double celsius; printf(“Enter lower:“); scanf(“%d“, ,fahr = fahr+1,Enter lower: 30 Enter upper: 35 fahr celsius 30 -1.1 31 -0.6 32 0.0 33 0.6 34 1.1 35 1.7,例2-8中for语句的流程,for (fahr = lower; fahr = upper; fahr +) celsius = (5.0 / 9.0) * (fahr - 32); printf(“%d %6.1fn“, fahr, celsius); ,fahr = fahr+2 输出?,Enter lower: 30 Enter upper: 35 fahr celsius 30 -1.1 31 -0.6 32 0.0 33 0.6 34 1.1 35 1.7,格式,for(表达式1;表达式2;表达式3 ) 循环体语句; ,举例,例1: 用for循环语句计算 1 + 3 + 5 +.+ ( 2n-1) 。 其中 n=1,2,.100。,#include int main(void) int n,sum; for(sum=0,n=1;n=100;n+) sum+=2*n-1; printf(“sum=%dn“,sum); return 0; ,例2: 编一个程序求满足下列条件的四位数: 该数是一个完全平方数;第一、三位数字之和为10,第二、四位数字之积为12。,解题思路: 根据题意,设 j 是要找的四位数,则j=i*i,而 i只能在3299之间变化 (因为3121000, 3221024,9929801, 1002=10000)。 设 a 为 j 的千位数,a=j/1000。 设 b 为 j 的百位数,b=j/100-a*10。 设 c 为 j 的十位数,c=j/10-a*100-b*10。 设 d 为 j 的个位数,d=j-a*1000-b*100-c*10。 最终: j=a*1000+b*100+c*10+d。,#include int main(void ) int i,j,a,b,c,d; for(i=32;i=99;i+) j=i*i; a=j/1000; b=j/100-a*10; c=j/10-a*100-b*10; d=j-a*1000-b*100-c*10; if(a+c=10 ,例3: 用for循环语句计算 1! + 2! + 3! +.+ 20! 。,设:n 为数列项变量和循环控制变量。 s 为累加和变量,t 为阶乘变量。,设i为循环变量,则: 指定循环起点的表达式1:i = 1 给出循环条件的表达式2:i = 100 设置循环步长的表达式3:i+ 循环体语句:sum = sum + i; for(i=1; i=100; i+) sum =sum+i;,求 1+2+100 抽取具有共性的算式:sum = sum + i sum初值为0,该算式重复100次,i从1变到100,/* 计算1 + 2 + 3 + + 100 */ #include int main(void) int i, sum; sum = 0; /* 置累加和sum的初值为0 */ for ( i = 1; i = 100; i+ ) /* 循环重复100次 */ sum = sum + i; /* 反复累加 */ printf( “sum = %dn”, sum); /* 输出累加和 */ return 0; ,for(i=1; i=100; i+) sum=0; sum=sum+i; ,sum=5050,#include int main(void) int i, sum; sum = 0; for ( i = 1; i = 100; i+ ) sum = sum + i; printf( “sum = %dn”, sum); return 0; ,求 1+1/2+1/3+ 1/100,for(i=1; i=100; i+) sum=sum+1.0/i;,int i; double sum;,printf( “sum = %fn”, sum);,一般包含四个部分: 初始化:指定循环起点 给循环变量赋初值,如i = 1; 进入循环之前,设置相关变量的初值,如sum = 0。 条件控制: 只要i 100,循环结束。,例2-7 求 1+2+3+n,for(i=1; i=n; i+) sum=sum+i;,printf(“Enter n:“); scanf(“%d“, ,Enter n: 100 Sum = 5050,例子,#include int main(void) int i, sum; sum = 0; for ( i = 1; i = 100; i+ ) sum = sum + i; printf( “sum = %dn”, sum); return 0; ,#include int main(void) int i, sum; printf(“Enter n: “); scanf(“%d“, ,求1+1/2+1/3+ 1/n,#include int main(void) int i; double sum; printf(“Enter n: “); scanf(“%d“, ,例子,求前n项和,即循环n次,每次累加1项。 for (i = 1; i = n ; i+) sum = sum + item (第i项) item = 1.0 / (2 * i - 1),求 1+1/3+1/5+ 的前n项和,例子,#include int main(void) int i, n; double item, sum; printf(“Enter n: “); scanf (“%d“, ,例子,求前n项和,即循环n次,每次累加1项。 for (i = 1; i = n ; i+) sum = sum + item (第i项) item = flag * 1.0 / denominator denominator = denominator + 2 flag = -flag,例2-8 求 1-1/3+1/5- 的前n项和,item = flag*1.0/(2 * i - 1),例子,#include int main(void) int denominator, flag, i, n; double item, sum; printf(“Enter n: “); scanf (“%d“, ,n! = 1*2*n for (i = 1; i = n ; i+) product = product * item (第i项) item=i,例2-9 求n!,product = ?,例子,#include int main(void) int i, n; double product; printf(“input n: n“); scanf (“%d“, ,例子,输入实数x和正整数n, 计算xn = x * x * * x for (i = 1; i = n ; i+) power = power * item (第i项) item=?,求 xn,例子,#include int main(void) int i, n; double x, power ; printf(“Enter x, n: n“); scanf (“%lf%d“, ,例子,例2-10(1) 输入一个正整数n,生成一张2的乘方表,输出20到2n的值,可以调用幂函数计算2的乘方。,for (i = 0; i = n ; i+) power = pow(2, i); /*调用幂函数pow(2,i)计算2的i次方*/ 输出power的值; ,例子,#include #include int main(void) int i, n; double power; printf(“Enter n:“); scanf(“%d“, ,Enter n: 4 pow(2,0)= 1 pow(2,1)= 2 pow(2,2)= 4 pow(2,3)= 8 pow(2,4)= 16,例子,例2-10(2)生成阶乘表,输入一个正整数n,生成一张阶乘表,输出0!到n!的值。要求定义和调用函数fact(n)计算n!,函数类型是double。,for (i = 0; i = n ; i+) power = pow(2, i); /*调用幂函数pow(2,i)计算2的i次方*/ 输出power的值; ,for (i = 0; i = n ; i+) product = fact(i); /* 调用自定义函数fact(i)计算i! */ 输出product的值; ,例子,#include double fact(int n); /* 自定义函数的声明 */ int main(void) int i, n; double result; printf(“Enter n:“); scanf(“%d“, ,Enter n: 3 0!=1 1!=1 2!=2 3!=6,double fact(int n) /* 函数首部 */ int i; double product; product = 1; for (i = 1; i = n; i+) product = pr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026四川南充市仪陇县人力资源和社会保障局考调事业单位工作人员8人备考题库附答案详解(模拟题)
- 2026黑龙江佳木斯富锦市市政设施管护中心招聘一线工程技术人员3人备考题库含答案详解
- 2026浙江省杭州机场“青苗计划”暑期实习招募备考题库及一套答案详解
- 2026湖北黄石市华新医院招聘2人备考题库及答案详解(有一套)
- 2026广东阳江阳春市高校毕业生就业见习招募10人备考题库(第七期)含答案详解(典型题)
- 2026四川乐山市夹江县人民医院自主招聘护理人员4人备考题库含答案详解(培优a卷)
- 2026山东德州京德眼科医院招聘备考题库含答案详解(突破训练)
- 2026陕西西安高新一中等3所学校招聘备考题库含答案详解(综合卷)
- 2026年芜湖水梦南湖文化旅游发展有限公司外包工作人员招聘1名备考题库附答案详解(a卷)
- 2026浙江丽水市残联康复医院招募备考题库含答案详解
- 家庭基金内部管理制度
- 高血压糖尿病培训教学课件
- 2025年青海新泉财金投资管理有限公司招聘备考题库及1套参考答案详解
- 2025内蒙古呼和浩特市北兴产业投资发展有限责任公司猎聘高级管理人员2人笔试考试参考试题及答案解析
- JJF(机械) 1067-2021 霍尔电流传感器校准规范
- 2025~2026学年云南省昆明市官渡区人教版(小升初)数学检测试卷【附解析】
- 鱼:知之烹之食之-联合国粮食及农业组织
- 地方志编纂工作方案及实施流程
- 贝壳房屋委托协议书
- 湖北省圆创高中名校联盟2026届高三第一次联合测评 语文试卷(含答案)
- 检察机关刑事申诉课件
评论
0/150
提交评论