顺序程序设计基础课件_第1页
顺序程序设计基础课件_第2页
顺序程序设计基础课件_第3页
顺序程序设计基础课件_第4页
顺序程序设计基础课件_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

11第3-4讲顺序程序设计基础主讲教师:段淑凤email:1135958027@phone:87936689资料地址和作业提交1、资料地址:8821

用户名:stud1密码:stud12、作业提交

2:2121用户名:个人学号

密码:个人学号

33引例/*结构说明

*/#include<stdio.h>voidmain(){

b=a-32;

}chara,b;printf("%c",b);声明语句表达式语句输出语句scanf("%c",&a);输入语句44主要内容控制台数据输入输出4常量和变量

1基本数据类型2基本运算符与表达式3重点数据类型意义、运算符优先级难点各数据类型间的混合运算本讲小结551常量和变量(1)常量(Constants)对于常量,在程序运行期间,其数据值不会发生改变。思考题:什么样的情况需要定义变量?变量(Variable)对于变量,在程序运行期间,其数据值可以根据需要随时改变661常量和变量(2)1.1常量(Constants)对于常量,在程序运行期间,其内存单元中存放的数据值不能改变。常量直接常量符号常量整型常量实型常量字符常量字符串常量12、0、-34.6、-1.23‘a’、‘b’

DefinePI3.14159DefineN100思考题:什么样的情况需要定义符号常量?“hello”71.2常量的具体形式整型数据实型数据字符型数据十进制:

以非0数字开头,如:123,-9,0八进制:

以0数字开头,如:0123,067十六进制:

以0x开头,如:0x123,0xff十进制:

必须带小数点,如:123.0,-9.0指数形式:

如:1.23E3,0.9e-2,5e2普通字符:

如:’

a’,’

2’,’

H’,’#’转义字符:

如:’

\n’,’

\167’,’

\xlf’,’\\’字符串数据零或多个字符:如””,”a”,”abc”1常量和变量(3)整型数据实型数据字符型数据整型数据实型数据字符串数据字符型数据整型数据实型数据881变量和常量(5)1.3变量的定义—变量的定义变量定义的一般格式:[存储类别]类型符变量名表;寄存器变量(register)自动变量(auto)全局变量静态变量(static)数据类型标识符变量名1,变量名2,…,变量名n变量的定义举例类型符变量名表;992基本数据类型(1)2.1C语言的数据类型C数据类型整数类型浮点类型基本类型派生类型空类型void枚举类型enum指针类型*数组[]结构体struct共用体union函数类型2基本数据类型(2)整数类型浮点类型基本整型int短整型shortint长整型longint双长整型longlongint字符型char布尔型bool单精度float双精度double复数浮点型float_complex,double_complex,long_complex2基本数据类型(3)整数类型浮点类型基本整型int短整型short[int]长整型long[int]单精度float双精度double字符类型unsigned[signed](默认)unsignedsignedchar2.1C语言的数据类型正负号取值范围12122基本数据类型(5)2.2基本数据类型的存储长度类型关键字字节数位数数的表示范围整型int216-32768—32767short216-32768—32767long432-2147483648—2147483647实型float4323.4e-38—3.4e38double8641.7e-308—1.7e308字符型char18-128--127sizeof使用示例可通过sizeof运算符得到某种数据类型的数据字节数13132基本数据类型(3)2.3基本数据类型数据的存储形式整型变量的存储int型:0111111111111111327671000000000000000-32768unsignedint型:1111111111111111最大655350000000000000000最小0最高位为符号位最大最小14142基本数据类型(4)2.3基本数据类型数据的存储形式(续)实型变量的存储实型变量以浮点数指数形式存放字符型变量的存储

字符型变量存放字符ASCII码值-0.314159*102xx…xx1100阶符阶码数符尾数+2-.314159152基本数据类型(6)2.4常量的数据类型返回主菜单字符串数据字符型数据整型数据实型数据默认double类型只有char类型静态字符数组一般按int型处理,超出范围,则按long等能容纳的数据类型处理16161常量和变量(4)1.3变量的定义—命名规则①由英文字母、数字和下划线构成②开头字符必须是字母或下划线(不能为数字)③不能用某些已知单词(如:关键字或预定义标识符)标识符的词法规则17171变量和常量(3)补充知识:程序的符号构成---编译器的词法分析基础构成类型

词法规定常量不同数据类型有不同的要求运算符固定结构符如{};固定标识符有固定的要求18181变量和常量(3)1.3变量的定义—标识符关键字具有特定含义的标识符。关键字不能另作它用。预定义标识符被用作库函数名和预编译命令的标识符自定义标识符用于标识变量、常量、数组、用户自定义函数等的标识符19191常量和变量(4)1.3变量的定义—命名规则①由英文字母、数字和下划线构成②开头字符必须是字母或下划线(不能为数字)③不能用某些已知单词(如:关键字或预定义标识符)在标识符命名时,一般建议使用能反映实际意义的标识符标识符的长度,不同的C编译系统有不同的规定:TurboC2.0

最长可允许32个字符;VC++6.0

标识符最长可允许247个字符。标识符的词法规则20201变量和常量(4)1.3变量的定义—标识符(续)#include<stdio.h>intadd(intx,inty);main(){inta,b,sum;a=10;b=24;sum=add(a,b);printf("sum=%d\n",sum);}intadd(intx,inty){intz;z=x+y;return(z);}分析程序中哪些是关键字、预定义标识符、自定义标识符?关键字预定义标识符21211变量和常量(6)1.3变量的定义—变量的初始化变量的初始化,就是在定义变量的同时赋予其与类型相一致的初值,并且与问题解决意义相一致的初值。intn;floatnum;floatsum;inti;floatavg;或者intn,i;floatnum,sum,avg;intn=0;floatnum=0;floatsum=0;inti=0;floatavg=0;或者intn=0,i=0;floatnum=0,sum=0,avg=0;返回主菜单22变量声明的作用申请空间设置需要空间的大小方便提取空间限制其上操作声明的作用数据类型的作用标识符的作用数据类型的另一个作用2323主要内容控制台数据输入输出4常量和变量

1基本数据类型2基本运算符与表达式3重点数据类型意义、运算符优先级难点各数据类型间的混合运算本讲小结24243基本运算符与表达式(1)运算是对数据的加工处理对于最基本的运算形式,常可以用一些简洁的符号记述,这些符号称为运算符或操作符表达式(Expression)是将运算量用运算符连接起来组成的式子,其中的运算量可以是常量、变量或函数。运算符与表达式举例25253基本运算符与表达式(2)3.1基本的算术运算+、-、*/(除)%(求余)+(取正)-(取反)注意两个整数相除结果为整数课堂练习:①比较5*4/2与5/2*4的结果②如设m、n均为整型变量(n≠0),则m-m/n*n的结果是什么?双目运算符,结合性为从左至右单目运算符,结合性为从右至左26263基本运算符与表达式(4)3.2自增、自减运算符(续)课堂练习:①设i的值为2,表达式i++-1的值是多少?表达式执行以后,i的值是多少?#include<stdio.h>voidmain(){inti,j;i=2;j=i++-1;printf("%d,%d\n",i,j);}j=i-1;i=i+1;运行结果:3,1272赋值运算与赋值语句(1)2.1赋值运算赋值运算的一般形式变量=

表达式赋值运算符赋值运算的含义就是先计算表达式的值,然后将该值传送到变量所对应的存储单元中,替换原有存储内容。变量与确定的内存单元相联系,既具有值属性,也具有地址属性。常量及表达式等,只有值属性而无地址属性取地址属性取值属性282赋值运算与赋值语句(2)2.1赋值运算—复合赋值运算+=、-=、*=、/=、%=<<=、>>=、&=、|=、^=算术运算符位运算符课堂练习:写出与下面表达式等价的表达式x+=5.0x*=u+va+=a-=b+2x=x+5.0x=x*(u+v)a=a+(a=a-(b+2))总结:xθ=e其等价的表达式为:x=xθ(e)292赋值运算与赋值语句(3)各种赋值运算都属于同一优先级,比除右自增(i++)以外的其他算术运算符都低。2.1赋值运算—赋值运算的优先级课堂练习:分析下面表达式的结果:a=b=c=5a=5+(c=6)a=(b=4)+(c=6)a=(b=10)/(c=2)a=5,b=5,c=5a=11,c=6a=10,b=4,c=6a=5,b=10,c=2302赋值运算与赋值语句(4)2.2赋值语句赋值语句的一般形式变量=

表达式;赋值语句与赋值表达式不一样,赋值语句可以作为程序中一个独立的程序行,而赋值表达式是作为一个运算量,可以出现在表达式中。31313基本运算符与表达式(4)3.4逗号运算表达式1,表达式2,…,表达式n从左到右逐一计算各表达式,并以表达式n的值为逗号运算表达式的结果课堂练习:假设a=3,求表达式的值a=3*5,a*4(a=3*5,a*4),a+5说明:逗号运算符的优先级低于赋值运算符32323基本运算符与表达式(5)

3.4不同类型数据间的混合运算隐式类型转换(自动类型转换)对单目运算符而言,因只有一个运算量,故表达式的类型就是运算量的类型对双目运算符而言:①两个同类型运算量运算,则结果也是该类型。②两个不同类型的运算量参加运算,则C编译系统自动对它们进行转换,若为赋值运算,则左值类型不变,将右值结果进行强制类型转换,否则将精度低的类型转换为精度高的类型注意多个运算符的类型转换顺序课堂练习:假设k为整型,x为单精度型,y为双精度型,z为长整型,下面表达式的结果为哪种类型10+’a’+k*x-y/z3基本运算符与表达式(5)3.4不同类型数据间的混合运算隐式类型转换(自动类型转换)转换规则浮点型数据转换为整型:对浮点数取整整型数据转换为浮点数:数值不变,精度可能发生变化,存储变化double转float:float范围内,正常转换,否则出错float转double:正常转换字符数据转换为整型:利用ASCII值取代将字节多的整型转为字节少的整型:取低字节34343基本运算符与表达式(6)3.4混合运算时数据类型的转换(续)变量的强制类型转换(类型说明符)(表达式)

(float)a把a转换为实型

(int)(x+y)把x+y的结果转换为整型35353基本运算符与表达式(6)3.4混合运算时数据类型的转换(续)常量的强制类型转换常量+类型说明字母

1.23f把1.23转换为单精度型

12345u把12345存为无符号整型36363.5常用数学库函数请根据附录D给出的各种基本函数,写出下面代数式对应的C语言表达式:3基本运算符与表达式(6)3737主要内容控制台数据输入输出4常量和变量

1基本数据类型2基本运算符与表达式3人机交互的仅有两个接口语法含义

:按照指定输出格式,向终端输出若干个任意类型的数据。多个printf语句将接着上一个输出位置继续输出4.1数据输出—printf函数一般格式:4控制台数据输入输出printf(格式控制,输出列表)如:printf("%d,%c\n",i,c)4.1数据输出—printf函数一般格式:4控制台数据输入输出printf(格式控制,输出列表)如:printf("%d,%c\n",i,c)格式控制:

用双引号括起来的字符串,它包括两种信息:格式说明,由“%”和格式字符组成,如%d,%f等。普通字符,既需要原样输出的字符。一般都是说明性文字或逗号、空格等。必须项4.1数据输出—printf函数一般格式:4控制台数据输入输出printf(格式控制,输出列表)如:printf("%d,%c\n",i,c)输出列表

需要输出显示的一些数据与格式控制中格式说明个数相同多个数据用“,”隔开可以是常量、变量,也可以是表达式表达式1,表达式2,…,表达式n必须项必须项41输出格式字符串(1)一般形式:%[标志][输出最小宽度][.精度][长度]类型

类型:用以表示输出数据的类型格式字符意义d,i以十进制形式输出带符号整数(正数不输出符号)o以八进制形式输出无符号整数(不输出前缀0)x,X以十六进制形式输出无符号整数(不输出前缀Ox)u以十进制形式输出无符号整数f以小数形式输出单、双精度实数e,E以指数形式输出单、双精度实数g,G以%f或%e中较短的输出宽度输出单、双精度实数c输出单个字符s输出字符串42输出格式字符串(3)一般形式:%[标志][输出最小宽度][.精度][长度]类型

长度:格式符为h,l,L三种,h表示按短型量输出,l和L表示按长型量输出。输出最小宽度:用十进制整数来表示。精度:以“.”开头,后跟十进制整数。若实际位数多于定义的宽度,则按实际位数输出,若实际位数少于定义的宽度则补以空格或0。如果输出为数字,则表示小数的位数;如果输出的是字符,则表示输出字符的个数;若实际位数大于所定义的精度数,则截去超过的部分。43输出格式字符串(2)一般形式:%[标志][输出最小宽度][.精度][长度]类型

标志:标志字符为-、+、#、空格四种

标志意义-结果左对齐,右边填空格+输出符号(正号或负号)空格输出值为正时冠以空格,为负时冠以负号#对c,s,d,u类无影响;对o类,在输出时加前缀o;对x类,在输出时加前缀0x#include<stdio.h>voidmain(){ printf("%12.5f\n",123.1234567); printf("%12f\n",123.1234567); printf("%12.5g\n",123.1234567); printf("%5.10s%s\n","abcdefghijklm","a"); printf("%12.8d\n",12345);}域宽12,精度5123.12346123.123457123.12abcdefghija00012345未指定精度,默认6位域宽12,有效位5位最少5个字符,最大域宽10域宽12,未必须最少显示8位,不足时左恻补0课堂练习:4控制台数据输入输出4.1数据输出—printf函数语法含义

:从屏幕上依次读入用户输入的字符,根据其指定格式进行数据转换,再存入地址对应存储空间。4.2数据输入—scanf函数一般格式:4控制台数据输入输出scanf(格式控制,地址列表)如:scanf("%d%c",&i,&c)地址1,地址2,…,地址n易错点46输入格式字符串(1)一般形式:%[*][输入数据宽度][长度]类型类型:表示输入数据的类型格式字符意义d,i输入十进制整数o输入八进制整数x输入十六进制整数u输入无符号十进制整数f或e输入实型数(用小数形式或指数形式)c输入单个字符s输入字符串必须项必须项47输入格式字符串(2)一般形式:%[*][输入数据宽度][长度]类型长度:长度格式符为l(L)和h,l表示输入长整型数据(如%ld)和双精度浮点数(如%lf)。h表示输入短整型数据。“*”符:用以表示该输入项,读入后不赋予相应的变量,即跳过该输入值。宽度:用十进制整数指定输入的宽度(即字符数)。输入数据流的分析及数据提取若有宽度控制,则根据域宽提取数据。根据格式字符的含义从输入流中取得数据,当输入流中数据类型与格式字符要求不符时,认为出错,停止所在scanf函数后面所有项目匹配。匹配格式控制字符串中的非空白字符后再读入当前数据若格式控制中两个格式说明字段之间无其他符号,且无宽度控制,则在读入时根据默认分隔符(空格、Tab、回车)进行区分4控制台数据输入输出4.2数据输入—scanf函数注意依次读入scanf()与输入缓冲区4控制台数据输入输出4.2数据输入—scanf函数13243546576879缓冲区键盘键入数据流&a&b&c&d&e&fscanf(″%d%d″,&a,&b);scanf(″%d%d″,&c,&d);scanf(″%d″,&e);scanf(″%d″,&f);内存数据区键入一行字符并按回车键之后当前输入字符进入缓存区,并开始分析匹配字符输入问题所有空白字符、转义字符都将作为有效字符被接收,因此不能再使用空白或其他字符进行数据项的分隔。4控制台数据输入输出4.2数据输入—scanf函数易出错点#include<stdio.h>voidmain(){

chara,b;scanf("%c",&a);scanf("%c",&b);printf("a=%c,b=%c.",a,b);}运行结果:(1)a=a.b=b.(2)a=a,b=.(3)a=a,b=

.测试输入:(1)ab(2)a空格b(3)a回车b执行过程(1)首先从缓冲区中提取需要的数据。(2)如果缓冲区中没有,则等待从键盘输入。(3)遇到下面的情形终止执行:格式参数中的格式项全部匹配完毕——正常结束格式项与输入域不匹配——非正常结束4控制台数据输入输出4.2数据输入—scanf函数524.3字符输入/输出函数putchar函数(字符输出函数)getchar函数(字符输入函数)向终端输出一个字符

一般形式putchar(字符变量)一般形式getchar()从键盘上输入一个字符

4控制台数据输入输出5353本讲小结掌握变量的定义及初始化了解C语言的基本数据类型理解数据类型的存储意义掌握C语言的算术运算符及表达式熟悉C语言的输入输出控制函数了解C语言中常用的数学函数54练习题—计算存款利息问题描述:有1000元,想存一年。有3种方法可选:(1)活期,年利率为r1=0.0036;(2)一年期定期,年利率为r2=0.0275;(3)存两次半年定期,年利率为r3=0.025。请分别计算出一年后按3种方法所得到的本息和。看到问题后,我们需要做什么?把解决问题需要的量用符号表示出来55引例—计算存款利息输入处理输出①输入p0,r1,r2,r3⑤输出p1,p2,p3②

p1=p0*(1+r1)③

p2=p0*(1+r2)④p3=p0*(1+r3/2)*(1+r3/2)/*

引例

程序代码*/#include<stdio.h>intmain(){

floatp0=1000,r1=0.0036,r2=0.0275,r3=0.025,p1,p2,p3;p1=p0*(1+r1);p2=p0*(1+r2);p3=p0*(1+r3/2)*(1+r3/2);printf(“p1=%f\np2=%f\np3=%f\n”,p1,p2,p3);return0;}5656思考题及作业作业练习册1.填空题,(2),(3),(4),(5),(6)2.选择题,(1)—(9)3.程序阅读题,(1),(2),(5)4.程序填空题,(1)预习3.3,3.45757谢谢5858引例中变量的定义返回分析求n个数的平均值的算法输入处理输出求平均值的数的个数n求平均值的每个数的数值num⑥输出avg①输入求平均值的数的个数n;用sum存放

温馨提示

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

评论

0/150

提交评论